| #!/bin/bash |
| |
| set -e |
| set -o errtrace |
| trap 'echo Fatal error: script $0 aborting at line $LINENO, command \"$BASH_COMMAND\" returned $?; exit 1' ERR |
| |
| PRODUCT_LIST="sirocco" |
| |
| NUM_JOBS=$(grep -c processor /proc/cpuinfo) |
| |
| ################################################### |
| # Setup build toollchain |
| ################################################### |
| sdk_top_dir=$(readlink -e $(dirname $0)/..) |
| TOP_DIR=$(readlink -e ${sdk_top_dir}/..) |
| |
| #export ARCH and build related envs. |
| source ${TOP_DIR}/sdk/build_scripts/setup_env.sh |
| |
| kver=5.4 |
| tool_path=${CROSS_COMPILER_DIR} |
| kernel_path=$(readlink -e ${sdk_top_dir}/../kernel) |
| |
| makeflags="KVER=${kver} TOOL_PATH=${tool_path} SYS_PATH=${kernel_path} TOOLPREFIX=${CROSS_COMPILE} CHIP_TYPE=MP ISISC_ENABLE=enable HK_CHIP=enable" |
| |
| ################################################## |
| # Build Kernel Module |
| ################################################## |
| function BuildKModule() { |
| # make kernel module |
| echo "Build qca-ssdk" |
| ${CROSS_MAKE} ${makeflags} V=1 |
| } |
| |
| ################################################## |
| # Build & Install |
| ################################################## |
| function BuildAndInstall() { |
| local product=$1 |
| local eureka_src_path=$(readlink -e $2) |
| if [ -z ${eureka_src_path} ]; then |
| echo "eureka_src_path doesn't exist" |
| exit 1 |
| fi |
| |
| # clean previous build |
| make ${makeflags} clean |
| |
| # build module |
| BuildKModule |
| |
| # install module |
| echo "Install qca-ssdk.ko" |
| local module_target_dir="$(GetModulePath ${eureka_src_path} ${product})" |
| mkdir -p ${module_target_dir} |
| cp -f build/bin/qca-ssdk.ko ${module_target_dir}/. |
| } |
| |
| function Usage() { |
| cat << EOF |
| Usage: |
| $0 <product> <eureka_src_path> |
| Valid products: ${PRODUCT_LIST} |
| EOF |
| } |
| |
| function IsProductValid() { |
| local product |
| local ret=1 |
| |
| for product in ${PRODUCT_LIST}; do |
| if [ "${product}" == "$1" ]; then |
| ret=0 |
| break |
| fi |
| done |
| |
| return ${ret} |
| } |
| |
| ######################### |
| ####### Main Entry ###### |
| ######################### |
| if (( $# < 2 )); then |
| Usage |
| else |
| if IsProductValid $1; then |
| BuildAndInstall $1 $2 |
| else |
| echo "$1 is a invalid product" |
| Usage |
| fi |
| fi |