Android.mk 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. # Android Makefile for WLAN platform modules
  2. ENABLE_WLAN_PLATFORM_DLKM := false
  3. ifeq ($(TARGET_KERNEL_DLKM_DISABLE), true)
  4. ifeq ($(TARGET_KERNEL_DLKM_WLAN_OVERRIDE), true)
  5. ENABLE_WLAN_PLATFORM_DLKM := true
  6. endif
  7. else
  8. ENABLE_WLAN_PLATFORM_DLKM := true
  9. endif
  10. ifeq ($(ENABLE_WLAN_PLATFORM_DLKM), true)
  11. # LOCAL_PATH is a relative path to root build directory.
  12. LOCAL_PATH := $(call my-dir)
  13. LOCAL_MODULE_DDK_BUILD := true
  14. LOCAL_MODULE_DDK_ALLOW_UNSAFE_HEADERS := true
  15. LOCAL_MODULE_KO_DIRS := cnss2/cnss2.ko
  16. LOCAL_MODULE_KO_DIRS += cnss_utils/cnss_plat_ipc_qmi_svc.ko
  17. LOCAL_MODULE_KO_DIRS += cnss_utils/wlan_firmware_service.ko
  18. LOCAL_MODULE_KO_DIRS += cnss_genl/cnss_nl.ko
  19. LOCAL_MODULE_KO_DIRS += cnss_prealloc/cnss_prealloc.ko
  20. LOCAL_MODULE_KO_DIRS += cnss_utils/cnss_utils.ko
  21. LOCAL_MODULE_KO_DIRS += icnss2/icnss2.ko
  22. BOARD_COMMON_DIR ?= device/qcom/common
  23. DLKM_DIR := $(TOP)/$(BOARD_COMMON_DIR)/dlkm
  24. # WLAN_PLATFORM_ROOT needs to be a absolute since it will be used
  25. # for header files. $(TOP) cannot be used here since it will be
  26. # resolved as "." which won't work for Kbuild.
  27. KBUILD_OPTIONS := WLAN_PLATFORM_ROOT=$(abspath $(LOCAL_PATH))
  28. # WLAN_PLATFORM_KBUILD_OPTIONS should be defined from upper level
  29. # Product or Board related Makefiles like wlan.mk.
  30. KBUILD_OPTIONS += $(foreach wlan_platform_kbuild_option, \
  31. $(WLAN_PLATFORM_KBUILD_OPTIONS), \
  32. $(wlan_platform_kbuild_option))
  33. # Sourcing all files is for better incremental compilation.
  34. CNSS_SRC_FILES := \
  35. $(wildcard $(LOCAL_PATH)/*) \
  36. $(wildcard $(LOCAL_PATH)/*/*) \
  37. ifeq ($(TARGET_KERNEL_DLKM_SECURE_MSM_OVERRIDE), true)
  38. KBUILD_OPTIONS += KBUILD_EXTRA_SYMBOLS=$(PWD)/$(call intermediates-dir-for,DLKM,sec-module-symvers)/Module.symvers
  39. endif
  40. # Module.symvers needs to be generated as a intermediate module so that
  41. # other modules which depend on WLAN platform modules can set local
  42. # dependencies to it.
  43. ########################### Module.symvers ############################
  44. include $(CLEAR_VARS)
  45. LOCAL_SRC_FILES := $(CNSS_SRC_FILES)
  46. LOCAL_MODULE := wlan-platform-module-symvers
  47. LOCAL_MODULE_STEM := Module.symvers
  48. LOCAL_MODULE_KBUILD_NAME := Module.symvers
  49. LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT)
  50. include $(DLKM_DIR)/Build_external_kernelmodule.mk
  51. # Below are for Android build system to recognize each module name, so
  52. # they can be installed properly. Since Kbuild is used to compile these
  53. # modules, invoking any of them will cause other modules to be compiled
  54. # as well if corresponding flags are added in KBUILD_OPTIONS from upper
  55. # level Makefiles like wlan.mk.
  56. ################################ cnss2 ################################
  57. include $(CLEAR_VARS)
  58. ifeq ($(TARGET_KERNEL_DLKM_SECURE_MSM_OVERRIDE), true)
  59. LOCAL_REQUIRED_MODULES := sec-module-symvers
  60. LOCAL_ADDITIONAL_DEPENDENCIES += $(call intermediates-dir-for,DLKM,sec-module-symvers)/Module.symvers
  61. endif #TARGET_KERNEL_DLKM_SECURE_MSM_OVERRIDE
  62. LOCAL_SRC_FILES := $(CNSS_SRC_FILES)
  63. LOCAL_MODULE := cnss2.ko
  64. LOCAL_MODULE_KBUILD_NAME := cnss2/cnss2.ko
  65. LOCAL_MODULE_TAGS := optional
  66. LOCAL_MODULE_DEBUG_ENABLE := true
  67. LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT)
  68. include $(DLKM_DIR)/Build_external_kernelmodule.mk
  69. ######################## cnss_plat_ipc_qmi_svc ########################
  70. include $(CLEAR_VARS)
  71. LOCAL_SRC_FILES := $(CNSS_SRC_FILES)
  72. LOCAL_MODULE := cnss_plat_ipc_qmi_svc.ko
  73. LOCAL_MODULE_KBUILD_NAME := cnss_utils/cnss_plat_ipc_qmi_svc.ko
  74. LOCAL_MODULE_TAGS := optional
  75. LOCAL_MODULE_DEBUG_ENABLE := true
  76. LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT)
  77. include $(DLKM_DIR)/Build_external_kernelmodule.mk
  78. ######################## wlan_firmware_service ########################
  79. include $(CLEAR_VARS)
  80. LOCAL_SRC_FILES := $(CNSS_SRC_FILES)
  81. LOCAL_MODULE := wlan_firmware_service.ko
  82. LOCAL_MODULE_KBUILD_NAME := cnss_utils/wlan_firmware_service.ko
  83. LOCAL_MODULE_TAGS := optional
  84. LOCAL_MODULE_DEBUG_ENABLE := true
  85. LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT)
  86. include $(DLKM_DIR)/Build_external_kernelmodule.mk
  87. ############################### cnss_nl ###############################
  88. include $(CLEAR_VARS)
  89. LOCAL_SRC_FILES := $(CNSS_SRC_FILES)
  90. LOCAL_MODULE := cnss_nl.ko
  91. LOCAL_MODULE_KBUILD_NAME := cnss_genl/cnss_nl.ko
  92. LOCAL_MODULE_TAGS := optional
  93. LOCAL_MODULE_DEBUG_ENABLE := true
  94. LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT)
  95. include $(DLKM_DIR)/Build_external_kernelmodule.mk
  96. ############################ cnss_prealloc ############################
  97. include $(CLEAR_VARS)
  98. LOCAL_SRC_FILES := $(CNSS_SRC_FILES)
  99. LOCAL_MODULE := cnss_prealloc.ko
  100. LOCAL_MODULE_KBUILD_NAME := cnss_prealloc/cnss_prealloc.ko
  101. LOCAL_MODULE_TAGS := optional
  102. LOCAL_MODULE_DEBUG_ENABLE := true
  103. LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT)
  104. include $(DLKM_DIR)/Build_external_kernelmodule.mk
  105. ############################ cnss_utils ###############################
  106. include $(CLEAR_VARS)
  107. LOCAL_SRC_FILES := $(CNSS_SRC_FILES)
  108. LOCAL_MODULE := cnss_utils.ko
  109. LOCAL_MODULE_KBUILD_NAME := cnss_utils/cnss_utils.ko
  110. LOCAL_MODULE_TAGS := optional
  111. LOCAL_MODULE_DEBUG_ENABLE := true
  112. LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT)
  113. include $(DLKM_DIR)/Build_external_kernelmodule.mk
  114. ################################ icnss2 ################################
  115. include $(CLEAR_VARS)
  116. LOCAL_SRC_FILES := $(CNSS_SRC_FILES)
  117. LOCAL_MODULE := icnss2.ko
  118. LOCAL_MODULE_KBUILD_NAME := icnss2/icnss2.ko
  119. LOCAL_MODULE_TAGS := optional
  120. LOCAL_MODULE_DEBUG_ENABLE := true
  121. LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT)
  122. include $(DLKM_DIR)/Build_external_kernelmodule.mk
  123. endif #ENABLE_WLAN_PLATFORM_DLKM