1*4882a593Smuzhiyun#/bin/bash 2*4882a593Smuzhiyun 3*4882a593Smuzhiyunset -e 4*4882a593Smuzhiyun 5*4882a593Smuzhiyuncollect_bin() 6*4882a593Smuzhiyun{ 7*4882a593Smuzhiyun cp $BUILD_DIR/librkcrypto.so $TARGET_LIB_DIR 8*4882a593Smuzhiyun cp $BUILD_DIR/librkcrypto.a $TARGET_LIB_DIR 9*4882a593Smuzhiyun cp $BUILD_DIR/test/librkcrypto_test $TARGET_BIN_DIR 10*4882a593Smuzhiyun echo "copy target files to $TARGET_LIB_DIR success" 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun # export head files 13*4882a593Smuzhiyun cp $SCRIPT_DIR/include/rkcrypto_otp_key.h $TARGET_INCLUDE_DIR 14*4882a593Smuzhiyun cp $SCRIPT_DIR/include/rkcrypto_common.h $TARGET_INCLUDE_DIR 15*4882a593Smuzhiyun cp $SCRIPT_DIR/include/rkcrypto_core.h $TARGET_INCLUDE_DIR 16*4882a593Smuzhiyun cp $SCRIPT_DIR/include/rkcrypto_mem.h $TARGET_INCLUDE_DIR 17*4882a593Smuzhiyun echo "copy head files to $TARGET_INCLUDE_DIR success" 18*4882a593Smuzhiyun} 19*4882a593Smuzhiyun 20*4882a593Smuzhiyunbuild() 21*4882a593Smuzhiyun{ 22*4882a593Smuzhiyun echo "build $ARM_BIT libraries and binaries" 23*4882a593Smuzhiyun TARGET_LIB_DIR=$SCRIPT_DIR/out/target/lib/$ARM_BIT/ 24*4882a593Smuzhiyun TARGET_BIN_DIR=$SCRIPT_DIR/out/target/bin/$ARM_BIT/ 25*4882a593Smuzhiyun TARGET_INCLUDE_DIR=$SCRIPT_DIR/out/target/include/ 26*4882a593Smuzhiyun BUILD_DIR=$SCRIPT_DIR/out/build/$ARM_BIT/ 27*4882a593Smuzhiyun mkdir -p $TARGET_LIB_DIR 28*4882a593Smuzhiyun mkdir -p $TARGET_BIN_DIR 29*4882a593Smuzhiyun mkdir -p $TARGET_INCLUDE_DIR 30*4882a593Smuzhiyun mkdir -p $BUILD_DIR 31*4882a593Smuzhiyun cd $BUILD_DIR 32*4882a593Smuzhiyun cmake $SCRIPT_DIR $DBUILD 33*4882a593Smuzhiyun make -j12 34*4882a593Smuzhiyun} 35*4882a593Smuzhiyun 36*4882a593SmuzhiyunBUILD_PARA="$1" 37*4882a593SmuzhiyunSCRIPT_DIR=$(pwd) 38*4882a593Smuzhiyun 39*4882a593SmuzhiyunTOOLCHAIN_PREBUILTS=$SCRIPT_DIR/../../../prebuilts 40*4882a593SmuzhiyunTOOLCHAIN_PATH_ARM32=gcc/linux-x86/arm/gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf/bin 41*4882a593SmuzhiyunTOOLCHAIN_PATH_AARCH64=gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin 42*4882a593SmuzhiyunCROSS_COMPILE32=$TOOLCHAIN_PREBUILTS/$TOOLCHAIN_PATH_ARM32/arm-none-linux-gnueabihf-gcc 43*4882a593SmuzhiyunCROSS_COMPILE64=$TOOLCHAIN_PREBUILTS/$TOOLCHAIN_PATH_AARCH64/aarch64-none-linux-gnu-gcc 44*4882a593SmuzhiyunCROSS_COMPILE32_GXX=$TOOLCHAIN_PREBUILTS/$TOOLCHAIN_PATH_ARM32/arm-none-linux-gnueabihf-g++ 45*4882a593SmuzhiyunCROSS_COMPILE64_GXX=$TOOLCHAIN_PREBUILTS/$TOOLCHAIN_PATH_AARCH64/aarch64-none-linux-gnu-g++ 46*4882a593Smuzhiyun 47*4882a593Smuzhiyunif [ $# -eq 0 ]; then 48*4882a593Smuzhiyun # build both 32-bit and 64-bit 49*4882a593Smuzhiyun DBUILD="-DCMAKE_C_COMPILER=$CROSS_COMPILE32 \ 50*4882a593Smuzhiyun -DCMAKE_CXX_COMPILER=$CROSS_COMPILE32_GXX" 51*4882a593Smuzhiyun ARM_BIT="arm" 52*4882a593Smuzhiyun build 53*4882a593Smuzhiyun collect_bin 54*4882a593Smuzhiyun 55*4882a593Smuzhiyun DBUILD="-DCMAKE_C_COMPILER=$CROSS_COMPILE64 \ 56*4882a593Smuzhiyun -DCMAKE_CXX_COMPILER=$CROSS_COMPILE64_GXX" 57*4882a593Smuzhiyun ARM_BIT="arm64" 58*4882a593Smuzhiyun build 59*4882a593Smuzhiyun collect_bin 60*4882a593Smuzhiyunelse 61*4882a593Smuzhiyun if [ $BUILD_PARA == "32" ]; then 62*4882a593Smuzhiyun DBUILD="-DCMAKE_C_COMPILER=$CROSS_COMPILE32 \ 63*4882a593Smuzhiyun -DCMAKE_CXX_COMPILER=$CROSS_COMPILE32_GXX" 64*4882a593Smuzhiyun ARM_BIT="arm" 65*4882a593Smuzhiyun else 66*4882a593Smuzhiyun DBUILD="-DCMAKE_C_COMPILER=$CROSS_COMPILE64 \ 67*4882a593Smuzhiyun -DCMAKE_CXX_COMPILER=$CROSS_COMPILE64_GXX" 68*4882a593Smuzhiyun ARM_BIT="arm64" 69*4882a593Smuzhiyun fi 70*4882a593Smuzhiyun 71*4882a593Smuzhiyun build 72*4882a593Smuzhiyun collect_bin 73*4882a593Smuzhiyunfi 74