Makefile 2.9 KB

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