xref: /openwifi/driver/make_all.sh (revision e9919b37855b0860999a5e7314b49062162af71e)
12ee67178SXianjun Jiao#!/bin/bash
2a6085186SLina Ceballos
39e463211SJiao Xianjun# Author: Xianjun jiao
49e463211SJiao Xianjun# SPDX-FileCopyrightText: 2019 UGent
5a6085186SLina Ceballos# SPDX-License-Identifier: AGPL-3.0-or-later
6a6085186SLina Ceballos
7*e9919b37SXianjun Jiaoprint_usage () {
8*e9919b37SXianjun Jiao    echo "You must enter at least 2 arguments: \$XILINX_DIR ARCH_BIT(32 or 64)"
9*e9919b37SXianjun Jiao    echo "Further arguments (maximum 5) will be converted to #define argument in pre_def.h"
10*e9919b37SXianjun Jiao    echo " "
11*e9919b37SXianjun Jiao}
12*e9919b37SXianjun Jiao
13*e9919b37SXianjun Jiaoprint_usage
14*e9919b37SXianjun Jiao
15*e9919b37SXianjun Jiaoif [ "$#" -lt 2 ]; then
162ee67178SXianjun Jiao    exit 1
172ee67178SXianjun Jiaofi
182ee67178SXianjun Jiao
19abdb610fSJiao XianjunOPENWIFI_DIR=$(pwd)/../
20abdb610fSJiao XianjunXILINX_DIR=$1
21abdb610fSJiao XianjunARCH_OPTION=$2
22b73660adSXianjun Jiao
23*e9919b37SXianjun Jiaoecho OPENWIFI_DIR $OPENWIFI_DIR
24*e9919b37SXianjun Jiaoecho XILINX_DIR $XILINX_DIR
25*e9919b37SXianjun Jiaoecho ARCH_OPTION $ARCH_OPTION
26*e9919b37SXianjun Jiao
27b73660adSXianjun Jiaoif [ -f "$OPENWIFI_DIR/LICENSE" ]; then
28b73660adSXianjun Jiao    echo "\$OPENWIFI_DIR is found!"
29b73660adSXianjun Jiaoelse
30b73660adSXianjun Jiao    echo "\$OPENWIFI_DIR is not correct. Please check!"
31b73660adSXianjun Jiao    exit 1
32b73660adSXianjun Jiaofi
33b73660adSXianjun Jiao
34b73660adSXianjun Jiaoif [ -d "$XILINX_DIR/SDK" ]; then
35b73660adSXianjun Jiao    echo "\$XILINX_DIR is found!"
36b73660adSXianjun Jiaoelse
37b73660adSXianjun Jiao    echo "\$XILINX_DIR is not correct. Please check!"
38b73660adSXianjun Jiao    exit 1
39b73660adSXianjun Jiaofi
40b73660adSXianjun Jiao
41febc5adfSXianjun Jiaoif [ "$ARCH_OPTION" != "32" ] && [ "$ARCH_OPTION" != "64" ]; then
42febc5adfSXianjun Jiao    echo "\$ARCH_OPTION is not correct. Should be 32 or 64. Please check!"
432ee67178SXianjun Jiao    exit 1
44febc5adfSXianjun Jiaoelse
45febc5adfSXianjun Jiao    echo "\$ARCH_OPTION is valid!"
46febc5adfSXianjun Jiaofi
47febc5adfSXianjun Jiao
48*e9919b37SXianjun Jiaoecho "#define USE_NEW_RX_INTERRUPT 1" > pre_def.h
49*e9919b37SXianjun Jiaoif [[ -n $3 ]]; then
50*e9919b37SXianjun Jiao    DEFINE1=$3
51*e9919b37SXianjun Jiao    echo DEFINE1 $DEFINE1
52*e9919b37SXianjun Jiao    echo "#define $DEFINE1" >> pre_def.h
53*e9919b37SXianjun Jiaofi
54*e9919b37SXianjun Jiaoif [[ -n $4 ]]; then
55*e9919b37SXianjun Jiao    DEFINE2=$4
56*e9919b37SXianjun Jiao    echo DEFINE2 $DEFINE2
57*e9919b37SXianjun Jiao    echo "#define $DEFINE2" >> pre_def.h
58*e9919b37SXianjun Jiaofi
59*e9919b37SXianjun Jiaoif [[ -n $5 ]]; then
60*e9919b37SXianjun Jiao    DEFINE3=$5
61*e9919b37SXianjun Jiao    echo DEFINE3 $DEFINE3
62*e9919b37SXianjun Jiao    echo "#define $DEFINE3" >> pre_def.h
63*e9919b37SXianjun Jiaofi
64*e9919b37SXianjun Jiaoif [[ -n $6 ]]; then
65*e9919b37SXianjun Jiao    DEFINE4=$6
66*e9919b37SXianjun Jiao    echo DEFINE4 $DEFINE4
67*e9919b37SXianjun Jiao    echo "#define $DEFINE4" >> pre_def.h
68*e9919b37SXianjun Jiaofi
69*e9919b37SXianjun Jiaoif [[ -n $7 ]]; then
70*e9919b37SXianjun Jiao    DEFINE5=$7
71*e9919b37SXianjun Jiao    echo DEFINE5 $DEFINE5
72*e9919b37SXianjun Jiao    echo "#define $DEFINE5" >> pre_def.h
73*e9919b37SXianjun Jiaofi
74*e9919b37SXianjun Jiao
75febc5adfSXianjun Jiaosource $XILINX_DIR/SDK/2018.3/settings64.sh
76febc5adfSXianjun Jiaoif [ "$ARCH_OPTION" == "64" ]; then
77febc5adfSXianjun Jiao    LINUX_KERNEL_SRC_DIR=$OPENWIFI_DIR/adi-linux-64/
78febc5adfSXianjun Jiao    ARCH="arm64"
79febc5adfSXianjun Jiao    CROSS_COMPILE="aarch64-linux-gnu-"
80febc5adfSXianjun Jiaoelse
81febc5adfSXianjun Jiao    LINUX_KERNEL_SRC_DIR=$OPENWIFI_DIR/adi-linux/
82febc5adfSXianjun Jiao    ARCH="arm"
83febc5adfSXianjun Jiao    CROSS_COMPILE="arm-linux-gnueabihf-"
842ee67178SXianjun Jiaofi
852ee67178SXianjun Jiao
862ee67178SXianjun Jiao# check if user entered the right path to analog device linux
87febc5adfSXianjun Jiaoif [ -d "$LINUX_KERNEL_SRC_DIR" ]; then
88febc5adfSXianjun Jiao    echo " setup linux kernel path ${LINUX_KERNEL_SRC_DIR}"
892ee67178SXianjun Jiaoelse
90febc5adfSXianjun Jiao    echo "Error: path to adi linux: ${LINUX_KERNEL_SRC_DIR} not found. Can not continue."
912ee67178SXianjun Jiao    exit 1
922ee67178SXianjun Jiaofi
932ee67178SXianjun Jiao
94febc5adfSXianjun Jiaoset -x
95febc5adfSXianjun Jiao
96b73660adSXianjun Jiaohome_dir=$(pwd)
972ee67178SXianjun Jiao
98b73660adSXianjun Jiaocd $OPENWIFI_DIR/driver/
998dc97f7fSXianjun Jiaoif git log -1; then
1000a92505dSXianjun Jiao    echo "#define GIT_REV 0x"$(git log -1 --pretty=%h) > git_rev.h
1018dc97f7fSXianjun Jiaoelse
1028dc97f7fSXianjun Jiao    echo "#define GIT_REV 0xFFFFFFFF" > git_rev.h
1038dc97f7fSXianjun Jiaofi
104febc5adfSXianjun Jiaomake KDIR=$LINUX_KERNEL_SRC_DIR ARCH=$ARCH CROSS_COMPILE=$CROSS_COMPILE
105b73660adSXianjun Jiaocd $OPENWIFI_DIR/driver/openofdm_tx
106febc5adfSXianjun Jiaomake KDIR=$LINUX_KERNEL_SRC_DIR ARCH=$ARCH CROSS_COMPILE=$CROSS_COMPILE
107b73660adSXianjun Jiaocd $OPENWIFI_DIR/driver/openofdm_rx
108febc5adfSXianjun Jiaomake KDIR=$LINUX_KERNEL_SRC_DIR ARCH=$ARCH CROSS_COMPILE=$CROSS_COMPILE
109b73660adSXianjun Jiaocd $OPENWIFI_DIR/driver/tx_intf
110febc5adfSXianjun Jiaomake KDIR=$LINUX_KERNEL_SRC_DIR ARCH=$ARCH CROSS_COMPILE=$CROSS_COMPILE
111b73660adSXianjun Jiaocd $OPENWIFI_DIR/driver/rx_intf
112febc5adfSXianjun Jiaomake KDIR=$LINUX_KERNEL_SRC_DIR ARCH=$ARCH CROSS_COMPILE=$CROSS_COMPILE
113b73660adSXianjun Jiaocd $OPENWIFI_DIR/driver/xpu
114febc5adfSXianjun Jiaomake KDIR=$LINUX_KERNEL_SRC_DIR ARCH=$ARCH CROSS_COMPILE=$CROSS_COMPILE
11556fcab20SXianjun Jiao# cd $OPENWIFI_DIR/driver/ad9361
11656fcab20SXianjun Jiao# make KDIR=$LINUX_KERNEL_SRC_DIR ARCH=$ARCH CROSS_COMPILE=$CROSS_COMPILE
1172ee67178SXianjun Jiao
118b73660adSXianjun Jiaocd $home_dir
119