build.sh 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255
  1. #!/bin/bash
  2. TOP_FILE_PATH=$(cd "$(dirname "$0")/../.."; pwd)
  3. PARENT_FILE_PATH=$(cd "$(dirname "$0")/.."; pwd)
  4. FILE_PATH=$(cd "$(dirname "$0")"; pwd)
  5. mkdir -p ${FILE_PATH}/cmake
  6. mkdir -p ${FILE_PATH}/install
  7. TargetSystem="${1,,}" # Convert parameter 1 to lower case
  8. #TargetSystem="${1^^}" # Convert parameter 1 to upper case
  9. if [ $# -gt 0 ]; then
  10. case "$TargetSystem" in
  11. "linux" )
  12. echo "Build DDK for Linux system..."
  13. #CROSS_COMPILE=
  14. CROSS_COMPILE=/usr/bin/
  15. #CROSS_COMPILE=/usr/bin/linux-
  16. DRM_INCLUDE_DIR=
  17. Arch="x86"
  18. ;;
  19. "embedded")
  20. echo "Build DDK for Embedded Linux system on ARM platform..."
  21. #CROSS_COMPILE=${TOP_FILE_PATH}/output/host/usr/bin/arm-buildroot-linux-uclibcgnueabihf-
  22. CROSS_COMPILE=${TOP_FILE_PATH}/buildroot/prebuilts/uclibc-4.7.3/bin/arm-buildroot-linux-uclibcgnueabihf-
  23. LINUX_KERNEL_BUILD_DIR=${TOP_FILE_PATH}/output/build/linux-local
  24. DRM_INCLUDE_DIR=
  25. Arch="arm"
  26. ;;
  27. "riscv")
  28. echo "Build DDK for Embedded Linux system on RISC-V platform..."
  29. CROSS_COMPILE=${TOP_FILE_PATH}/work/buildroot_initramfs/host/usr/bin/riscv64-buildroot-linux-gnu-
  30. LINUX_KERNEL_BUILD_DIR=${TOP_FILE_PATH}/work/linux
  31. DRM_INCLUDE_DIR=${TOP_FILE_PATH}/work/buildroot_initramfs/host/riscv64-buildroot-linux-gnu/sysroot/usr/include/drm
  32. Arch="risc-v"
  33. ;;
  34. esac
  35. else
  36. read -p "Which system you would like to build, riscv, embedded or linux?" build_system
  37. TargetSystem="${build_system,,}"
  38. if [ "${TargetSystem}" == "linux" ]; then
  39. echo "Build DDK for Linux system..."
  40. #CROSS_COMPILE=
  41. CROSS_COMPILE=/usr/bin/
  42. #CROSS_COMPILE=/usr/bin/linux-
  43. DRM_INCLUDE_DIR=
  44. Arch="x86"
  45. elif [ "${TargetSystem}" == "embedded" ]; then
  46. echo "Build DDK for Embedded Linux system for ARM platform..."
  47. #CROSS_COMPILE=${TOP_FILE_PATH}/output/host/usr/bin/arm-buildroot-linux-uclibcgnueabihf-
  48. CROSS_COMPILE=${TOP_FILE_PATH}/buildroot/prebuilts/uclibc-4.7.3/bin/arm-buildroot-linux-uclibcgnueabihf-
  49. LINUX_KERNEL_BUILD_DIR=${TOP_FILE_PATH}/output/build/linux-local
  50. DRM_INCLUDE_DIR=
  51. Arch="arm"
  52. elif [ "${TargetSystem}" == "riscv" ]; then
  53. echo "Build DDK for Embedded Linux systemv for RISC-V platform..."
  54. CROSS_COMPILE=${TOP_FILE_PATH}/work/buildroot_initramfs/host/usr/bin/riscv64-buildroot-linux-gnu-
  55. LINUX_KERNEL_BUILD_DIR=${TOP_FILE_PATH}/work/linux
  56. DRM_INCLUDE_DIR=${TOP_FILE_PATH}/work/buildroot_initramfs/host/riscv64-buildroot-linux-gnu/sysroot/usr/include/drm
  57. Arch="risc-v"
  58. elif [ -z "${build_system}" ]; then
  59. echo "Default build DDK for Embedded Linux system for ARM platform..."
  60. #CROSS_COMPILE=${TOP_FILE_PATH}/output/host/usr/bin/arm-buildroot-linux-uclibcgnueabihf-
  61. CROSS_COMPILE=${TOP_FILE_PATH}/buildroot/prebuilts/uclibc-4.7.3/bin/arm-buildroot-linux-uclibcgnueabihf-
  62. LINUX_KERNEL_BUILD_DIR=${TOP_FILE_PATH}/output/build/linux-local
  63. DRM_INCLUDE_DIR=
  64. Arch="arm"
  65. else
  66. echo "Unknown system, quit build process!!!"
  67. exit 0
  68. fi
  69. fi
  70. if [ $# -gt 1 ]; then
  71. case "$2" in
  72. "y" | "Y" | "yes" | "Yes" | "YES" )
  73. #make clean;
  74. echo "Removing cmake and install folder files..."
  75. rm -rf cmake/* install/*
  76. #read -p "Press any key to continue..." ans
  77. ;;
  78. esac
  79. fi
  80. #echo "===== Comment the STF_KERNEL_MODULE macro ====="
  81. #sed -i "s/^#define STF_KERNEL_MODULE/\/\/#define STF_KERNEL_MODULE/g" DDKSource/common/stf_includes/stf_types.h
  82. echo "===== Starting make ISPDDK... ====="
  83. cd ${FILE_PATH}/cmake
  84. ##CROSS_COMPILE=${FILE_PATH}/../output/host/usr/bin/arm-buildroot-linux-uclibcgnueabihf-
  85. #CROSS_COMPILE=${FILE_PATH}/../buildroot/prebuilts/uclibc-4.7.3/bin/arm-buildroot-linux-uclibcgnueabihf-
  86. #LINUX_KERNEL_BUILD_DIR=${FILE_PATH}/../output/build/linux-local
  87. if [ "${Arch}" == "risc-v" ]; then
  88. CMAKE_TOOLCHAIN_FILE_PATH_NAME=${TOP_FILE_PATH}/work/buildroot_initramfs/host/usr/share/buildroot/toolchainfile.cmake
  89. elif [ "${Arch}" == "arm" ]; then
  90. CMAKE_TOOLCHAIN_FILE_PATH_NAME=${TOP_FILE_PATH}/output/host/usr/share/buildroot/toolchainfile.cmake
  91. fi
  92. if [ -z $LINUX_KERNEL_BUILD_DIR ] && [ -z $CROSS_COMPILE ]; then
  93. #echo "No define LINUX_KERNEL_BUILD_DIR and CROSS_COMPILE"
  94. if [ "${Arch}" == "risc-v" ]; then
  95. #${TOP_FILE_PATH}/work/buildroot_initramfs/host/usr/bin/cmake ${FILE_PATH}/DDKSource \
  96. # -DCI_LOG_LEVEL=4 \
  97. # -DCMAKE_TOOLCHAIN_FILE="${CMAKE_TOOLCHAIN_FILE_PATH_NAME}" \
  98. # -DARCH_RISCV="Y" \
  99. # -DCMAKE_INSTALL_PREFIX=${FILE_PATH}/install
  100. cmake ${FILE_PATH}/DDKSource \
  101. -DRUN_PLATFORM="RISCV" \
  102. -DDRM_INCLUDE_DIR=${DRM_INCLUDE_DIR} \
  103. -DCI_LOG_LEVEL=4 \
  104. -DCMAKE_TOOLCHAIN_FILE="${CMAKE_TOOLCHAIN_FILE_PATH_NAME}" \
  105. -DARCH_RISCV="Y" \
  106. -DCMAKE_INSTALL_PREFIX=${FILE_PATH}/install
  107. elif [ "${Arch}" == "arm" ]; then
  108. cmake ${FILE_PATH}/DDKSource \
  109. -DRUN_PLATFORM="ARM" \
  110. -DCI_LOG_LEVEL=4 \
  111. -DCMAKE_TOOLCHAIN_FILE="${CMAKE_TOOLCHAIN_FILE_PATH_NAME}" \
  112. -DCMAKE_INSTALL_PREFIX=${FILE_PATH}/install
  113. else
  114. cmake ${FILE_PATH}/DDKSource \
  115. -DRUN_PLATFORM="UBUNTU" \
  116. -DCI_LOG_LEVEL=4 \
  117. -DCMAKE_INSTALL_PREFIX=${FILE_PATH}/install
  118. fi
  119. elif [ -z $LINUX_KERNEL_BUILD_DIR ]; then
  120. #echo "No define LINUX_KERNEL_BUILD_DIR"
  121. if [ "${Arch}" == "risc-v" ]; then
  122. #${TOP_FILE_PATH}/work/buildroot_initramfs/host/usr/bin/cmake ${FILE_PATH}/DDKSource \
  123. # -DCROSS_COMPILE=$CROSS_COMPILE \
  124. # -DCI_LOG_LEVEL=4 \
  125. # -DCMAKE_TOOLCHAIN_FILE="${CMAKE_TOOLCHAIN_FILE_PATH_NAME}" \
  126. # -DARCH_RISCV="Y" \
  127. # -DCMAKE_INSTALL_PREFIX=${FILE_PATH}/install
  128. cmake ${FILE_PATH}/DDKSource \
  129. -DRUN_PLATFORM="RISCV" \
  130. -DCROSS_COMPILE=$CROSS_COMPILE \
  131. -DDRM_INCLUDE_DIR=${DRM_INCLUDE_DIR} \
  132. -DCI_LOG_LEVEL=4 \
  133. -DCMAKE_TOOLCHAIN_FILE="${CMAKE_TOOLCHAIN_FILE_PATH_NAME}" \
  134. -DARCH_RISCV="Y" \
  135. -DCMAKE_INSTALL_PREFIX=${FILE_PATH}/install
  136. elif [ "${Arch}" == "arm" ]; then
  137. cmake ${FILE_PATH}/DDKSource \
  138. -DRUN_PLATFORM="ARM" \
  139. -DCROSS_COMPILE=$CROSS_COMPILE \
  140. -DCI_LOG_LEVEL=4 \
  141. -DCMAKE_TOOLCHAIN_FILE="${CMAKE_TOOLCHAIN_FILE_PATH_NAME}" \
  142. -DCMAKE_INSTALL_PREFIX=${FILE_PATH}/install
  143. else
  144. cmake ${FILE_PATH}/DDKSource \
  145. -DRUN_PLATFORM="UBUNTU" \
  146. -DCROSS_COMPILE=$CROSS_COMPILE \
  147. -DCI_LOG_LEVEL=4 \
  148. -DCMAKE_INSTALL_PREFIX=${FILE_PATH}/install
  149. fi
  150. elif [ -z $CROSS_COMPILE ]; then
  151. #echo "No define CROSS_COMPILE"
  152. if [ "${Arch}" == "risc-v" ]; then
  153. #${TOP_FILE_PATH}/work/buildroot_initramfs/host/usr/bin/cmake ${FILE_PATH}/DDKSource \
  154. # -DLINUX_KERNEL_BUILD_DIR=${LINUX_KERNEL_BUILD_DIR} \
  155. # -DCI_LOG_LEVEL=4 \
  156. # -DCMAKE_TOOLCHAIN_FILE="${CMAKE_TOOLCHAIN_FILE_PATH_NAME}" \
  157. # -DARCH_RISCV="Y" \
  158. # -DCMAKE_INSTALL_PREFIX=${FILE_PATH}/install
  159. cmake ${FILE_PATH}/DDKSource \
  160. -DRUN_PLATFORM="RISCV" \
  161. -DLINUX_KERNEL_BUILD_DIR=${LINUX_KERNEL_BUILD_DIR} \
  162. -DDRM_INCLUDE_DIR=${DRM_INCLUDE_DIR} \
  163. -DCI_LOG_LEVEL=4 \
  164. -DCMAKE_TOOLCHAIN_FILE="${CMAKE_TOOLCHAIN_FILE_PATH_NAME}" \
  165. -DARCH_RISCV="Y" \
  166. -DCMAKE_INSTALL_PREFIX=${FILE_PATH}/install
  167. elif [ "${Arch}" == "arm" ]; then
  168. cmake ${FILE_PATH}/DDKSource \
  169. -DRUN_PLATFORM="ARM" \
  170. -DLINUX_KERNEL_BUILD_DIR=${LINUX_KERNEL_BUILD_DIR} \
  171. -DCI_LOG_LEVEL=4 \
  172. -DCMAKE_TOOLCHAIN_FILE="${CMAKE_TOOLCHAIN_FILE_PATH_NAME}" \
  173. -DCMAKE_INSTALL_PREFIX=${FILE_PATH}/install
  174. else
  175. cmake ${FILE_PATH}/DDKSource \
  176. -DRUN_PLATFORM="UBUNTU" \
  177. -DLINUX_KERNEL_BUILD_DIR=${LINUX_KERNEL_BUILD_DIR} \
  178. -DCI_LOG_LEVEL=4 \
  179. -DCMAKE_INSTALL_PREFIX=${FILE_PATH}/install
  180. fi
  181. else
  182. #echo "Defined LINUX_KERNEL_BUILD_DIR and CROSS_COMPILE"
  183. if [ "${Arch}" == "risc-v" ]; then
  184. #${TOP_FILE_PATH}/work/buildroot_initramfs/host/usr/bin/cmake ${FILE_PATH}/DDKSource \
  185. # -DCROSS_COMPILE=$CROSS_COMPILE \
  186. # -DLINUX_KERNEL_BUILD_DIR=${LINUX_KERNEL_BUILD_DIR} \
  187. # -DCI_LOG_LEVEL=4 \
  188. # -DCMAKE_TOOLCHAIN_FILE="${CMAKE_TOOLCHAIN_FILE_PATH_NAME}" \
  189. # -DARCH_RISCV="Y" \
  190. # -DCMAKE_INSTALL_PREFIX=${FILE_PATH}/install
  191. cmake ${FILE_PATH}/DDKSource \
  192. -DRUN_PLATFORM="RISCV" \
  193. -DCROSS_COMPILE=$CROSS_COMPILE \
  194. -DLINUX_KERNEL_BUILD_DIR=${LINUX_KERNEL_BUILD_DIR} \
  195. -DDRM_INCLUDE_DIR=${DRM_INCLUDE_DIR} \
  196. -DCI_LOG_LEVEL=4 \
  197. -DCMAKE_TOOLCHAIN_FILE="${CMAKE_TOOLCHAIN_FILE_PATH_NAME}" \
  198. -DARCH_RISCV="Y" \
  199. -DCMAKE_INSTALL_PREFIX=${FILE_PATH}/install
  200. elif [ "${Arch}" == "arm" ]; then
  201. cmake ${FILE_PATH}/DDKSource \
  202. -DRUN_PLATFORM="ARM" \
  203. -DCROSS_COMPILE=$CROSS_COMPILE \
  204. -DLINUX_KERNEL_BUILD_DIR=${LINUX_KERNEL_BUILD_DIR} \
  205. -DCI_LOG_LEVEL=4 \
  206. -DCMAKE_TOOLCHAIN_FILE="${CMAKE_TOOLCHAIN_FILE_PATH_NAME}" \
  207. -DCMAKE_INSTALL_PREFIX=${FILE_PATH}/install
  208. else
  209. cmake ${FILE_PATH}/DDKSource \
  210. -DRUN_PLATFORM="UBUNTU" \
  211. -DCROSS_COMPILE=$CROSS_COMPILE \
  212. -DLINUX_KERNEL_BUILD_DIR=${LINUX_KERNEL_BUILD_DIR} \
  213. -DCI_LOG_LEVEL=4 \
  214. -DCMAKE_INSTALL_PREFIX=${FILE_PATH}/install
  215. fi
  216. fi
  217. if [ "${Arch}" == "risc-v" ]; then
  218. export ARCH=riscv
  219. elif [ "${Arch}" == "arm" ]; then
  220. export ARCH=arm
  221. fi
  222. #make -p -d
  223. #make -p -d install
  224. make
  225. make install
  226. #${FILE_PATH}/makelib.sh ${FILE_PATH}
  227. #${CROSS_COMPILE}strip -d ${FILE_PATH}/libmantis.a
  228. cd ${FILE_PATH}
  229. #cp ./install/km/Mantis.ko ../image/patch_q3_nand/ko/Mantis.ko
  230. #cp ./install/km/Mantis.ko ../image/ramdisk/root/Mantis.ko
  231. #cp install/ISPC/isp.bin ../image/ramdisk/root/
  232. #cp ./install/ISPC/ISPC_loop ../image/patch_q3_nand/opt/ipnc/ISPC_loop
  233. #echo "===== Un-comment the STF_KERNEL_MODULE macro ====="
  234. #sed -i "s/^\/\/#define STF_KERNEL_MODULE/#define STF_KERNEL_MODULE/g" DDKSource/common/stf_includes/stf_types.h