xref: /openwifi/driver/make_all.sh (revision 456a79570701b889bf36b5e087ad5094d5e4fc6f)
1#!/bin/bash
2
3# Author: Xianjun jiao
4# SPDX-FileCopyrightText: 2019 UGent
5# SPDX-License-Identifier: AGPL-3.0-or-later
6
7print_usage () {
8    echo "You must enter at least 2 arguments: \$XILINX_DIR ARCH_BIT(32 or 64)"
9    echo "Further arguments (maximum 5) will be converted to #define argument in pre_def.h"
10    echo " "
11}
12
13print_usage
14
15if [ "$#" -lt 2 ]; then
16    exit 1
17fi
18
19OPENWIFI_DIR=$(pwd)/../
20XILINX_DIR=$1
21ARCH_OPTION=$2
22
23echo OPENWIFI_DIR $OPENWIFI_DIR
24echo XILINX_DIR $XILINX_DIR
25echo ARCH_OPTION $ARCH_OPTION
26
27if [ -f "$OPENWIFI_DIR/LICENSE" ]; then
28    echo "\$OPENWIFI_DIR is found!"
29else
30    echo "\$OPENWIFI_DIR is not correct. Please check!"
31    exit 1
32fi
33
34if [ -d "$XILINX_DIR/Vitis" ]; then
35    echo "\$XILINX_DIR is found!"
36else
37    echo "\$XILINX_DIR is not correct. Please check!"
38    exit 1
39fi
40
41if [ "$ARCH_OPTION" != "32" ] && [ "$ARCH_OPTION" != "64" ]; then
42    echo "\$ARCH_OPTION is not correct. Should be 32 or 64. Please check!"
43    exit 1
44else
45    echo "\$ARCH_OPTION is valid!"
46fi
47
48echo "#define USE_NEW_RX_INTERRUPT 1" > pre_def.h
49if [[ -n $3 ]]; then
50    DEFINE1=$3
51    echo DEFINE1 $DEFINE1
52    echo "#define $DEFINE1" >> pre_def.h
53fi
54if [[ -n $4 ]]; then
55    DEFINE2=$4
56    echo DEFINE2 $DEFINE2
57    echo "#define $DEFINE2" >> pre_def.h
58fi
59if [[ -n $5 ]]; then
60    DEFINE3=$5
61    echo DEFINE3 $DEFINE3
62    echo "#define $DEFINE3" >> pre_def.h
63fi
64if [[ -n $6 ]]; then
65    DEFINE4=$6
66    echo DEFINE4 $DEFINE4
67    echo "#define $DEFINE4" >> pre_def.h
68fi
69if [[ -n $7 ]]; then
70    DEFINE5=$7
71    echo DEFINE5 $DEFINE5
72    echo "#define $DEFINE5" >> pre_def.h
73fi
74
75source $XILINX_DIR/Vitis/2021.1/settings64.sh
76if [ "$ARCH_OPTION" == "64" ]; then
77    LINUX_KERNEL_SRC_DIR=$OPENWIFI_DIR/adi-linux-64/
78    ARCH="arm64"
79    CROSS_COMPILE="aarch64-linux-gnu-"
80else
81    LINUX_KERNEL_SRC_DIR=$OPENWIFI_DIR/adi-linux/
82    ARCH="arm"
83    CROSS_COMPILE="arm-linux-gnueabihf-"
84fi
85
86# check if user entered the right path to analog device linux
87if [ -d "$LINUX_KERNEL_SRC_DIR" ]; then
88    echo "setup linux kernel path ${LINUX_KERNEL_SRC_DIR}"
89else
90    echo "Error: path to adi linux: ${LINUX_KERNEL_SRC_DIR} not found. Can not continue."
91    exit 1
92fi
93
94set -x
95
96home_dir=$(pwd)
97
98cd $OPENWIFI_DIR/driver/
99if git log -1; then
100    echo "#define GIT_REV 0x"$(git log -1 --pretty=%h) > git_rev.h
101else
102    echo "#define GIT_REV 0xFFFFFFFF" > git_rev.h
103fi
104cd $OPENWIFI_DIR/driver/openofdm_tx
105make KDIR=$LINUX_KERNEL_SRC_DIR ARCH=$ARCH CROSS_COMPILE=$CROSS_COMPILE
106cd $OPENWIFI_DIR/driver/openofdm_rx
107make KDIR=$LINUX_KERNEL_SRC_DIR ARCH=$ARCH CROSS_COMPILE=$CROSS_COMPILE
108cd $OPENWIFI_DIR/driver/tx_intf
109make KDIR=$LINUX_KERNEL_SRC_DIR ARCH=$ARCH CROSS_COMPILE=$CROSS_COMPILE
110cd $OPENWIFI_DIR/driver/rx_intf
111make KDIR=$LINUX_KERNEL_SRC_DIR ARCH=$ARCH CROSS_COMPILE=$CROSS_COMPILE
112cd $OPENWIFI_DIR/driver/xpu
113make KDIR=$LINUX_KERNEL_SRC_DIR ARCH=$ARCH CROSS_COMPILE=$CROSS_COMPILE
114# cd $OPENWIFI_DIR/driver/ad9361
115# make KDIR=$LINUX_KERNEL_SRC_DIR ARCH=$ARCH CROSS_COMPILE=$CROSS_COMPILE
116
117cd $OPENWIFI_DIR/driver/side_ch
118./make_driver.sh $XILINX_DIR $ARCH_OPTION
119
120cd $OPENWIFI_DIR/driver/
121make KDIR=$LINUX_KERNEL_SRC_DIR ARCH=$ARCH CROSS_COMPILE=$CROSS_COMPILE
122
123cd $home_dir
124