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