Makefile 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. ##
  2. # Copyright (C) 2020 Alibaba Group Holding Limited
  3. ##
  4. ifneq ($(wildcard ../.param),)
  5. include ../.param
  6. endif
  7. #CONFIG_DEBUG_MODE=1
  8. CONFIG_OUT_ENV=hwlinux
  9. CONFIG_BUILD_DRV_EXTRA_PARAM:=""
  10. CONFIG_BUILD_LIB_EXTRA_PARAM:=""
  11. CONFIG_BUILD_TST_EXTRA_PARAM:=""
  12. DIR_TARGET_BASE=bsp/ivs
  13. DIR_TARGET_LIB =bsp/ivs/lib
  14. DIR_TARGET_KO =bsp/ivs/ko
  15. DIR_TARGET_TEST=bsp/ivs/test
  16. MODULE_NAME=IVS
  17. BUILD_LOG_START="\033[47;30m>>> $(MODULE_NAME) $@ begin\033[0m"
  18. BUILD_LOG_END ="\033[47;30m<<< $(MODULE_NAME) $@ end\033[0m"
  19. #
  20. # Do a parallel build with multiple jobs, based on the number of CPUs online
  21. # in this system: 'make -j8' on a 8-CPU system, etc.
  22. #
  23. # (To override it, run 'make JOBS=1' and similar.)
  24. #
  25. ifeq ($(JOBS),)
  26. JOBS := $(shell grep -c ^processor /proc/cpuinfo 2>/dev/null)
  27. ifeq ($(JOBS),)
  28. JOBS := 1
  29. endif
  30. endif
  31. all: info driver lib test install_local_output install_rootfs
  32. .PHONY: info driver lib test install_local_output install_rootfs \
  33. install_prepare install_addons clean_driver clean_lib clean_test clean_output clean
  34. info:
  35. @echo $(BUILD_LOG_START)
  36. @echo " ====== Build Info from repo project ======"
  37. @echo " BUILDROOT_DIR="$(BUILDROOT_DIR)
  38. @echo " CROSS_COMPILE="$(CROSS_COMPILE)
  39. @echo " LINUX_DIR="$(LINUX_DIR)
  40. @echo " ARCH="$(ARCH)
  41. @echo " BOARD_NAME="$(BOARD_NAME)
  42. @echo " KERNEL_ID="$(KERNELVERSION)
  43. @echo " KERNEL_DIR="$(LINUX_DIR)
  44. @echo " INSTALL_DIR_ROOTFS="$(INSTALL_DIR_ROOTFS)
  45. @echo " INSTALL_DIR_SDK="$(INSTALL_DIR_SDK)
  46. @echo " ====== Build configuration by settings ======"
  47. # @echo " CONFIG_DEBUG_MODE="$(CONFIG_DEBUG_MODE)
  48. @echo " CONFIG_OUT_ENV="$(CONFIG_OUT_ENV)
  49. @echo " JOBS="$(JOBS)
  50. @echo $(BUILD_LOG_END)
  51. driver:
  52. @echo $(BUILD_LOG_START)
  53. make -C $(LINUX_DIR) M=$(PWD)/kernel_mode ARCH=$(ARCH) modules
  54. @echo $(BUILD_LOG_END)
  55. clean_driver:
  56. @echo $(BUILD_LOG_START)
  57. make -C kernel_mode KDIR=$(LINUX_DIR) clean
  58. @echo $(BUILD_LOG_END)
  59. lib:
  60. @echo $(BUILD_LOG_START)
  61. make -w -C user_mode hwlinux
  62. @echo $(BUILD_LOG_END)
  63. clean_lib:
  64. @echo $(BUILD_LOG_START)
  65. make clean -C user_mode
  66. @echo $(BUILD_LOG_END)
  67. test: lib driver
  68. @echo $(BUILD_LOG_START)
  69. make -w -C test hwlinux
  70. @echo $(BUILD_LOG_END)
  71. clean_test:
  72. @echo $(BUILD_LOG_START)
  73. make clean -C test
  74. @echo $(BUILD_LOG_END)
  75. install_prepare:
  76. mkdir -p ./output/rootfs/$(DIR_TARGET_KO)
  77. mkdir -p ./output/rootfs/$(DIR_TARGET_LIB)
  78. mkdir -p ./output/rootfs/$(DIR_TARGET_TEST)
  79. install_addons: install_prepare
  80. @echo $(BUILD_LOG_START)
  81. @echo $(BUILD_LOG_END)
  82. install_local_output: driver lib test install_addons
  83. @echo $(BUILD_LOG_START)
  84. find ./kernel_mode -name "*.ko" | xargs -i cp -f {} ./output/rootfs/$(DIR_TARGET_KO)
  85. find ./user_mode -name "*.so" | xargs -i cp -f {} ./output/rootfs/$(DIR_TARGET_LIB)
  86. find ./user_mode -name "*.a" | xargs -i cp -f {} ./output/rootfs/$(DIR_TARGET_LIB)
  87. cp -f ./test/ivs_test ./output/rootfs/$(DIR_TARGET_TEST)
  88. @if [ `command -v tree` != "" ]; then \
  89. tree ./output/rootfs; \
  90. fi
  91. @echo $(BUILD_LOG_END)
  92. install_rootfs: install_local_output
  93. @echo $(BUILD_LOG_START)
  94. @echo $(BUILD_LOG_END)
  95. clean_output:
  96. @echo $(BUILD_LOG_START)
  97. rm -rf ./output
  98. @echo $(BUILD_LOG_END)
  99. clean: clean_output clean_driver clean_lib clean_test