0010-Support-Linux-Style-Makefile-for-SSDK.patch 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281
  1. From 2276a0b93751f015ef719dedf9a0d4b55ae684d5 Mon Sep 17 00:00:00 2001
  2. From: crao <[email protected]>
  3. Date: Tue, 15 Nov 2022 18:50:01 +0800
  4. Subject: [PATCH 10/14] Support Linux-Style Makefile for SSDK
  5. Change-Id: I8c4399433b6422ef6192f70bf08b0d3023cc94b6
  6. Signed-off-by: crao <[email protected]>
  7. ---
  8. Makefile | 15 +++++++++++++
  9. Makefile.modules | 16 ++++++++++++++
  10. make/defs.mk | 1 +
  11. make/linux_opt.mk | 54 ++++++++++++++++++++++++++++-------------------
  12. make/target.mk | 12 +++++++++++
  13. src/api/Makefile | 2 +-
  14. 6 files changed, 77 insertions(+), 23 deletions(-)
  15. create mode 100644 Makefile.modules
  16. --- a/Makefile
  17. +++ b/Makefile
  18. @@ -12,6 +12,9 @@ include ./make/$(OS)_opt.mk
  19. SUB_DIR=$(patsubst %/, %, $(dir $(wildcard src/*/Makefile)))
  20. SUB_LIB=$(subst src/, , $(SUB_DIR))
  21. +####################################################################
  22. +# SSDK-Style Makefile
  23. +####################################################################
  24. all: $(BIN_DIR) kslib
  25. mkdir -p ./temp/;cd ./temp;cp ../build/bin/ssdk_ks_km.a ./;ar -x ssdk_ks_km.a; cp ../ko_Makefile ./Makefile;
  26. make -C $(SYS_PATH) M=$(PRJ_PATH)/temp/ CROSS_COMPILE=$(TOOLPREFIX) modules
  27. @@ -20,6 +23,18 @@ all: $(BIN_DIR) kslib
  28. rm -Rf ./temp/*.o ./temp/*.ko ./temp/*.a
  29. @echo "---Build [SSDK-$(VERSION)] at $(BUILD_DATE) finished."
  30. +####################################################################
  31. +# LNX Modules-Style Makefile
  32. +####################################################################
  33. +modules: $(BIN_DIR) kslib_c
  34. + cp Makefile.modules ./Makefile;
  35. + make -C $(SYS_PATH) M=$(PRJ_PATH)/ $(LNX_MAKEOPTS) modules
  36. + cp *.ko build/bin;
  37. + @echo "---Build [SSDK-$(VERSION)] at $(BUILD_DATE) finished."
  38. +
  39. +kslib_c:
  40. + $(foreach i, $(SUB_LIB), $(MAKE) MODULE_TYPE=KSLIB -C src/$i src_list_loop || exit 1;)
  41. +
  42. kslib:kslib_o
  43. $(AR) -r $(BIN_DIR)/$(KS_MOD)_$(RUNMODE).a $(wildcard $(BLD_DIR)/KSLIB/*.o)
  44. --- /dev/null
  45. +++ b/Makefile.modules
  46. @@ -0,0 +1,16 @@
  47. +####################################################################
  48. +# Add All Local Flags
  49. +####################################################################
  50. +ccflags-y += $(LNX_LOCAL_CFLAGS) -Wno-error
  51. +
  52. +####################################################################
  53. +# Build Object List
  54. +####################################################################
  55. +SRC_LIST := $(shell cat $(PRJ_PATH)/src_list.dep)
  56. +OBJ_LIST := $(patsubst %.c,%.o,$(SRC_LIST))
  57. +
  58. +####################################################################
  59. +# Linux Kernel Module
  60. +####################################################################
  61. +obj-m := qca-ssdk.o
  62. +qca-ssdk-objs := $(OBJ_LIST)
  63. --- a/make/defs.mk
  64. +++ b/make/defs.mk
  65. @@ -7,6 +7,7 @@ ifeq (,$(findstring $(LIB), $(COMPONENTS
  66. endif
  67. SRC_FILE=$(addprefix $(PRJ_PATH)/$(LOC_DIR)/, $(SRC_LIST))
  68. +LOC_SRC_FILE=$(addprefix $(LOC_DIR)/, $(SRC_LIST))
  69. OBJ_LIST=$(SRC_LIST:.c=.o)
  70. OBJ_FILE=$(addprefix $(DST_DIR)/, $(OBJ_LIST))
  71. --- a/make/linux_opt.mk
  72. +++ b/make/linux_opt.mk
  73. @@ -295,7 +295,7 @@ ifeq (TRUE, $(DEBUG_ON))
  74. MODULE_CFLAG += -g
  75. endif
  76. -MODULE_CFLAG += $(OPT_FLAG) -Wall -DVERSION=\"$(VERSION)\" -DBUILD_DATE=\"$(BUILD_DATE)\" -DOS=\"$(OS)\" -D"KBUILD_STR(s)=\#s" -D"KBUILD_MODNAME=KBUILD_STR(qca-ssdk)"
  77. +MODULE_CFLAG += $(OPT_FLAG) -Wall -DVERSION=\"$(VERSION)\" -DBUILD_DATE=\"$(BUILD_DATE)\" -DOS=\"$(OS)\" -D"KBUILD_STR(s)=\#s"
  78. MODULE_INC += -I$(PRJ_PATH)/include \
  79. -I$(PRJ_PATH)/include/common \
  80. @@ -450,7 +450,7 @@ ifeq (KSLIB, $(MODULE_TYPE))
  81. MODULE_CFLAG += -DKVER34
  82. MODULE_CFLAG += -DKVER32
  83. MODULE_CFLAG += -DLNX26_22
  84. - MODULE_INC += -I$(SYS_PATH) \
  85. + SYS_INC += -I$(SYS_PATH) \
  86. -I$(TOOL_PATH)/../lib/gcc/$(TARGET_NAME)/$(GCC_VERSION)/include/ \
  87. -I$(SYS_PATH)/include \
  88. -I$(SYS_PATH)/source/include \
  89. @@ -473,7 +473,7 @@ ifeq (KSLIB, $(MODULE_TYPE))
  90. MODULE_CFLAG += -DKVER32
  91. MODULE_CFLAG += -DLNX26_22
  92. ifeq ($(ARCH), arm64)
  93. - MODULE_INC += -I$(SYS_PATH) \
  94. + SYS_INC += -I$(SYS_PATH) \
  95. -I$(TOOL_PATH)/../lib/gcc/$(TARGET_NAME)/$(GCC_VERSION)/include/ \
  96. -I$(SYS_PATH)/include \
  97. -I$(SYS_PATH)/source \
  98. @@ -492,13 +492,13 @@ ifeq (KSLIB, $(MODULE_TYPE))
  99. -I$(SYS_PATH)/source/include/uapi
  100. ifneq ($(wildcard $(SYS_PATH)/include/linux/kconfig.h),)
  101. - MODULE_INC += -include $(SYS_PATH)/include/linux/kconfig.h
  102. + SYS_INC += -include $(SYS_PATH)/include/linux/kconfig.h
  103. else
  104. - MODULE_INC += -include $(KERNEL_SRC)/include/linux/kconfig.h
  105. + SYS_INC += -include $(KERNEL_SRC)/include/linux/kconfig.h
  106. endif
  107. else ifeq ($(ARCH), arm)
  108. - MODULE_INC += -I$(SYS_PATH) \
  109. + SYS_INC += -I$(SYS_PATH) \
  110. -I$(TOOL_PATH)/../lib/gcc/$(TARGET_NAME)/$(GCC_VERSION)/include/ \
  111. -I$(TOOL_PATH)/../lib/gcc/$(TARGET_NAME)/7.5.0/include/ \
  112. -I$(TOOL_PATH)/../../lib/armv7a-vfp-neon-rdk-linux-gnueabi/gcc/arm-rdk-linux-gnueabi/4.8.4/include/ \
  113. @@ -522,13 +522,13 @@ ifeq (KSLIB, $(MODULE_TYPE))
  114. -I$(TOOL_PATH)/../../lib/arm-rdk-linux-gnueabi/gcc/arm-rdk-linux-gnueabi/9.3.0/include/
  115. ifneq ($(wildcard $(SYS_PATH)/include/linux/kconfig.h),)
  116. - MODULE_INC += -include $(SYS_PATH)/include/linux/kconfig.h
  117. + SYS_INC += -include $(SYS_PATH)/include/linux/kconfig.h
  118. else
  119. - MODULE_INC += -include $(KERNEL_SRC)/include/linux/kconfig.h
  120. + SYS_INC += -include $(KERNEL_SRC)/include/linux/kconfig.h
  121. endif
  122. else
  123. - MODULE_INC += -I$(SYS_PATH) \
  124. + SYS_INC += -I$(SYS_PATH) \
  125. -I$(TOOL_PATH)/../lib/gcc/$(TARGET_NAME)/$(GCC_VERSION)/include/ \
  126. -I$(SYS_PATH)/include \
  127. -I$(SYS_PATH)/source \
  128. @@ -564,7 +564,7 @@ ifeq (KSLIB, $(MODULE_TYPE))
  129. MODULE_CFLAG += -DLNX26_22
  130. ifeq ($(ARCH), arm64)
  131. KCONF_FILE = $(SYS_PATH)/source/include/linux/kconfig.h
  132. - MODULE_INC += -I$(SYS_PATH) \
  133. + SYS_INC += -I$(SYS_PATH) \
  134. -I$(TOOL_PATH)/../lib/gcc/$(TARGET_NAME)/$(GCC_VERSION)/include/ \
  135. -I$(SYS_PATH)/include \
  136. -I$(SYS_PATH)/source/include \
  137. @@ -581,7 +581,7 @@ ifeq (KSLIB, $(MODULE_TYPE))
  138. -I$(SYS_PATH)/source/arch/arm64/include/asm/mach \
  139. -include $(KCONF_FILE)
  140. else ifeq ($(ARCH), arm)
  141. - MODULE_INC += -I$(SYS_PATH) \
  142. + SYS_INC += -I$(SYS_PATH) \
  143. -I$(TOOL_PATH)/../lib/gcc/$(TARGET_NAME)/$(GCC_VERSION)/include/ \
  144. -I$(TOOL_PATH)/../../lib/armv7a-vfp-neon-rdk-linux-gnueabi/gcc/arm-rdk-linux-gnueabi/4.8.4/include/ \
  145. -I$(SYS_PATH)/include \
  146. @@ -604,7 +604,7 @@ ifeq (KSLIB, $(MODULE_TYPE))
  147. MODULE_CFLAG += -DKVER34
  148. MODULE_CFLAG += -DKVER32
  149. MODULE_CFLAG += -DLNX26_22
  150. - MODULE_INC += -I$(SYS_PATH) \
  151. + SYS_INC += -I$(SYS_PATH) \
  152. -I$(TOOL_PATH)/../lib/gcc/$(TARGET_NAME)/$(GCC_VERSION)/include/ \
  153. -I$(TOOL_PATH)/../../lib/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/5.3.0/include/ \
  154. -I$(TOOL_PATH)/../../lib/armv7a-vfp-neon-rdk-linux-gnueabi/gcc/arm-rdk-linux-gnueabi/4.8.4/include/ \
  155. @@ -627,10 +627,10 @@ ifeq (KSLIB, $(MODULE_TYPE))
  156. -I$(EXT_PATH) \
  157. -I$(SYS_PATH)/source/arch/arm/include/asm/mach
  158. ifneq ($(wildcard $(SYS_PATH)/include/linux/kconfig.h),)
  159. - MODULE_INC += \
  160. + SYS_INC += \
  161. -include $(SYS_PATH)/include/linux/kconfig.h
  162. else
  163. - MODULE_INC += \
  164. + SYS_INC += \
  165. -include $(SYS_PATH)/source/include/linux/kconfig.h
  166. endif
  167. @@ -641,7 +641,7 @@ ifeq (KSLIB, $(MODULE_TYPE))
  168. MODULE_CFLAG += -DKVER32
  169. MODULE_CFLAG += -DLNX26_22
  170. MODULE_CFLAG += -Werror
  171. - MODULE_INC += -I$(SYS_PATH) \
  172. + SYS_INC += -I$(SYS_PATH) \
  173. -I$(SYS_PATH)/include \
  174. -I$(SYS_PATH)/source/include \
  175. -I$(SYS_PATH)/source/arch/arm/mach-msm/include \
  176. @@ -657,7 +657,7 @@ ifeq (KSLIB, $(MODULE_TYPE))
  177. MODULE_CFLAG += -DKVER32
  178. MODULE_CFLAG += -DLNX26_22
  179. ifeq (mips, $(CPU))
  180. - MODULE_INC += -I$(SYS_PATH) \
  181. + SYS_INC += -I$(SYS_PATH) \
  182. -I$(SYS_PATH)/include \
  183. -I$(SYS_PATH)/arch/mips/include \
  184. -I$(SYS_PATH)/arch/mips/include/asm/mach-ar7240 \
  185. @@ -678,7 +678,7 @@ ifeq (KSLIB, $(MODULE_TYPE))
  186. -O2 -fno-pic -pipe -mabi=32 -march=mips32r2 -DMODULE -mlong-calls -DEXPORT_SYMTAB
  187. endif
  188. else
  189. - MODULE_INC += -I$(SYS_PATH) \
  190. + SYS_INC += -I$(SYS_PATH) \
  191. -I$(SYS_PATH)/include \
  192. -I$(SYS_PATH)/arch/arm/include \
  193. -I$(SYS_PATH)/arch/arm/include/asm \
  194. @@ -695,7 +695,7 @@ ifeq (KSLIB, $(MODULE_TYPE))
  195. MODULE_CFLAG += -DKVER26
  196. MODULE_CFLAG += -DLNX26_22
  197. ifeq (mips, $(CPU))
  198. - MODULE_INC += -I$(SYS_PATH) \
  199. + SYS_INC += -I$(SYS_PATH) \
  200. -I$(SYS_PATH)/include \
  201. -I$(SYS_PATH)/arch/mips/include \
  202. -I$(SYS_PATH)/arch/mips/include/asm/mach-ar7240 \
  203. @@ -708,7 +708,7 @@ ifeq (KSLIB, $(MODULE_TYPE))
  204. -O2 -fno-pic -pipe -mabi=32 -march=mips32r2 -DMODULE -mlong-calls -DEXPORT_SYMTAB
  205. endif
  206. else
  207. - MODULE_INC += -I$(SYS_PATH) \
  208. + SYS_INC += -I$(SYS_PATH) \
  209. -I$(SYS_PATH)/include \
  210. -I$(SYS_PATH)/arch/arm/include \
  211. -I$(SYS_PATH)/arch/arm/include/asm \
  212. @@ -721,8 +721,7 @@ ifeq (KSLIB, $(MODULE_TYPE))
  213. endif
  214. - MODULE_CFLAG += -D__KERNEL__ -DKERNEL_MODULE $(CPU_CFLAG)
  215. -
  216. + MODULE_CFLAG += -D__KERNEL__ -DKERNEL_MODULE
  217. endif
  218. @@ -748,4 +747,15 @@ ifneq (TRUE, $(KERNEL_MODE))
  219. endif
  220. endif
  221. -LOCAL_CFLAGS += $(MODULE_INC) $(MODULE_CFLAG) $(EXTRA_CFLAGS)
  222. +LOCAL_CFLAGS += $(MODULE_INC) $(SYS_INC) $(MODULE_CFLAG) $(EXTRA_CFLAGS)
  223. +
  224. +####################################################################
  225. +# cflags for SSDK-Style Makefile
  226. +####################################################################
  227. +LOCAL_CFLAGS += $(CPU_CFLAG) -D"KBUILD_MODNAME=KBUILD_STR(qca-ssdk)"
  228. +
  229. +####################################################################
  230. +# cflags for LNX Modules-Style Makefile
  231. +####################################################################
  232. +LNX_LOCAL_CFLAGS += $(MODULE_INC) $(MODULE_CFLAG) ${EXTRA_INC}
  233. +export LNX_LOCAL_CFLAGS
  234. --- a/make/target.mk
  235. +++ b/make/target.mk
  236. @@ -3,6 +3,18 @@ include $(PRJ_PATH)/make/$(OS)_opt.mk
  237. include $(PRJ_PATH)/make/tools.mk
  238. +####################################################################
  239. +# LNX Modules-Style Makefile
  240. +####################################################################
  241. +src_list_loop: src_list
  242. + $(foreach i, $(SUB_DIR), $(MAKE) -C $(i) src_list_loop || exit 1;)
  243. +
  244. +src_list:
  245. + echo -n "$(LOC_SRC_FILE) " >> $(PRJ_PATH)/src_list.dep
  246. +
  247. +####################################################################
  248. +# SSDK-Style Makefile
  249. +####################################################################
  250. obj: $(OBJ_LIST)
  251. $(OBJ_LOOP)
  252. --- a/src/api/Makefile
  253. +++ b/src/api/Makefile
  254. @@ -1,4 +1,4 @@
  255. -LOC_DIR=src/sal
  256. +LOC_DIR=src/api
  257. LIB=API
  258. include $(PRJ_PATH)/make/config.mk