Browse Source

msm: camera: common: Remove shell commands from android makefiles

Remove direct shell commands from Android makefiles to better make use
of android function definitions.
Also changes mmrm dependency to be based on whether or not the driver
is detected in the build before setting it as a dependency.

CRs-Fixed: 3298147
Change-Id: I0d5f2c9eb34ac635604c515638c9f00e29ae0b2a
Signed-off-by: Suraj Dongre <[email protected]>
Suraj Dongre 3 years ago
parent
commit
a97e0b887a
5 changed files with 69 additions and 34 deletions
  1. 42 18
      Android.mk
  2. 4 0
      Kbuild
  3. 22 0
      dependency.mk
  4. 0 15
      drivers/cam_req_mgr/Makefile
  5. 1 1
      include/uapi/Android.mk

+ 42 - 18
Android.mk

@@ -12,39 +12,63 @@ ifeq ($(call is-board-platform-in-list, $(TARGET_BOARD_PLATFORM)),true)
 LOCAL_PATH := $(call my-dir)
 LOCAL_PATH := $(call my-dir)
 # Path to DLKM make scripts
 # Path to DLKM make scripts
 DLKM_DIR := $(TOP)/device/qcom/common/dlkm
 DLKM_DIR := $(TOP)/device/qcom/common/dlkm
+
 # List of board platforms for which MMRM driver API should be enabled
 # List of board platforms for which MMRM driver API should be enabled
-MMRM_BOARDS := taro parrot kalama
+MMRM_BOARDS := taro parrot kalama pineapple
+
+CAMERA_SRC_FILES := \
+                    $(addprefix $(LOCAL_PATH)/, $(call all-named-files-under,*.h,drivers dt-bindings include))\
+                    $(addprefix $(LOCAL_PATH)/, $(call all-named-files-under,*.mk,config))\
+                    $(addprefix $(LOCAL_PATH)/, $(call all-named-files-under,*.c,drivers))\
+                    $(LOCAL_PATH)/dependency.mk \
+                    $(LOCAL_PATH)/board.mk      \
+                    $(LOCAL_PATH)/product.mk    \
+                    $(LOCAL_PATH)/Kbuild
+
+# Target for pre-sil symbols
+ifeq ($(CONFIG_CAM_PRESIL), y)
+$(warning camera-kernel: Enabling Pre-Sil Kbuild Options!)
+KBUILD_OPTIONS := CONFIG_CAM_PRESIL=y
+include $(CLEAR_VARS)
+$(warning camera-kernel: Enabling Pre-Sil build, exporting symbols!)
+LOCAL_SRC_FILES           := $(CAMERA_SRC_FILES)
+LOCAL_MODULE              := camera-kernel-symvers
+LOCAL_MODULE_STEM         := Module.symvers
+LOCAL_MODULE_KBUILD_NAME  := Module.symvers
+LOCAL_MODULE_PATH         := $(KERNEL_MODULES_OUT)
+# Check build for optional dependencies
+include $(LOCAL_PATH)/dependency.mk
+
+include $(DLKM_DIR)/Build_external_kernelmodule.mk
+endif
 
 
 # Kbuild options
 # Kbuild options
-KBUILD_OPTIONS := CAMERA_KERNEL_ROOT=$(shell pwd)/$(LOCAL_PATH)
-KBUILD_OPTIONS += KERNEL_ROOT=$(shell pwd)/kernel/msm-$(TARGET_KERNEL_VERSION)/
+KBUILD_OPTIONS := CAMERA_KERNEL_ROOT=$(TOP)/$(LOCAL_PATH)
+KBUILD_OPTIONS += KERNEL_ROOT=$(TOP)/kernel_platform/common
 KBUILD_OPTIONS += MODNAME=camera
 KBUILD_OPTIONS += MODNAME=camera
 KBUILD_OPTIONS += BOARD_PLATFORM=$(TARGET_BOARD_PLATFORM)
 KBUILD_OPTIONS += BOARD_PLATFORM=$(TARGET_BOARD_PLATFORM)
 
 
 # Clear shell environment variables from previous android module during build
 # Clear shell environment variables from previous android module during build
 include $(CLEAR_VARS)
 include $(CLEAR_VARS)
 # For incremental compilation support.
 # For incremental compilation support.
-LOCAL_SRC_FILES             :=  \
-                                $(shell find $(LOCAL_PATH)/config -L -type f)      \
-                                $(shell find $(LOCAL_PATH)/drivers -L -type f)     \
-                                $(shell find $(LOCAL_PATH)/dt-bindings -L -type f) \
-                                $(shell find $(LOCAL_PATH)/include -L -type f)     \
-                                $(LOCAL_PATH)/Android.mk \
-                                $(LOCAL_PATH)/board.mk   \
-                                $(LOCAL_PATH)/product.mk \
-                                $(LOCAL_PATH)/Kbuild
+LOCAL_SRC_FILES             := $(CAMERA_SRC_FILES)
 LOCAL_MODULE_PATH           := $(KERNEL_MODULES_OUT)
 LOCAL_MODULE_PATH           := $(KERNEL_MODULES_OUT)
 LOCAL_MODULE                := camera.ko
 LOCAL_MODULE                := camera.ko
 LOCAL_MODULE_TAGS           := optional
 LOCAL_MODULE_TAGS           := optional
 #LOCAL_MODULE_KBUILD_NAME   := camera.ko
 #LOCAL_MODULE_KBUILD_NAME   := camera.ko
 #LOCAL_MODULE_DEBUG_ENABLE  := true
 #LOCAL_MODULE_DEBUG_ENABLE  := true
 
 
-ifeq ($(call is-board-platform-in-list, $(MMRM_BOARDS)),true)
-$(warning camera-kernel: Adding msm-mmrm dependency!)
-KBUILD_OPTIONS += KBUILD_EXTRA_SYMBOLS=$(shell pwd)/$(call intermediates-dir-for,DLKM,mmrm-module-symvers)/Module.symvers
-LOCAL_REQUIRED_MODULES        := mmrm-module-symvers
-LOCAL_ADDITIONAL_DEPENDENCIES := $(call intermediates-dir-for,DLKM,mmrm-module-symvers)/Module.symvers
-endif
+# Check build for optional dependencies
+include $(LOCAL_PATH)/dependency.mk
+
+# $(info LOCAL_SRC_FILES = $(LOCAL_SRC_FILES))
+# $(info intermediates mmrm symvers path = $(call intermediates-dir-for,DLKM,mmrm-module-symvers))
+# $(info CAMERA_EXTRA_SYMBOLS = $(CAMERA_EXTRA_SYMBOLS))
+# $(info CAMERA_EXTRA_CONFIGS = $(CAMERA_EXTRA_CONFIGS))
+# $(info LOCAL_ADDITIONAL_DEPENDENCIES = $(LOCAL_ADDITIONAL_DEPENDENCIES))
+# $(info LOCAL_REQUIRED_MODULES = $(LOCAL_REQUIRED_MODULES))
+# $(info DLKM_DIR = $(DLKM_DIR))
+$(info KBUILD_OPTIONS = $(KBUILD_OPTIONS))
 
 
 ifeq ($(TARGET_BOARD_PLATFORM), lahaina)
 ifeq ($(TARGET_BOARD_PLATFORM), lahaina)
 # Include Kernel DLKM Android.mk target to place generated .ko file in image
 # Include Kernel DLKM Android.mk target to place generated .ko file in image

+ 4 - 0
Kbuild

@@ -54,6 +54,10 @@ ifeq ($(CONFIG_ARCH_PARROT), y)
 include $(CAMERA_KERNEL_ROOT)/config/parrot.mk
 include $(CAMERA_KERNEL_ROOT)/config/parrot.mk
 endif
 endif
 
 
+ifdef ($(KBUILD_EXTRA_CONFIGS))
+include $(KBUILD_EXTRA_CONFIGS)
+endif
+
 # List of all camera-kernel headers
 # List of all camera-kernel headers
 cam_include_dirs := $(shell dirname `find $(CAMERA_KERNEL_ROOT) -name '*.h'` | uniq)
 cam_include_dirs := $(shell dirname `find $(CAMERA_KERNEL_ROOT) -name '*.h'` | uniq)
 
 

+ 22 - 0
dependency.mk

@@ -0,0 +1,22 @@
+# SPDX-License-Identifier: GPL-2.0-only
+
+# Check if this board's product.mk finds msm-mmrm.ko driver
+ifeq ($(findstring msm-mmrm.ko,$(BOARD_VENDOR_KERNEL_MODULES)), msm-mmrm.ko)
+# Assume if msm-mmrm.ko driver is found, then symbols will be required!
+
+ifeq ($(call is-board-platform-in-list, $(MMRM_BOARDS)),true)
+# Add MMRM driver symbols, requires absolute path
+CAM_MMRM_EXTRA_SYMBOLS ?= $(realpath $(TOP))/$(call intermediates-dir-for,DLKM,mmrm-module-symvers)/Module.symvers
+$(info camera-kernel: Found msm-mmrm driver, adding symbol dependency! $(CAM_MMRM_EXTRA_SYMBOLS))
+ifneq ($(TARGET_BOARD_PLATFORM), pineapple)
+LOCAL_REQUIRED_MODULES    := mmrm-module-symvers
+endif # End of check lanai
+CAM_MMRM_EXTRA_CONFIGS ?= $(TOP)/vendor/qcom/opensource/mmrm-driver/config/waipiommrm.conf
+LOCAL_ADDITIONAL_DEPENDENCIES := $(call intermediates-dir-for,DLKM,mmrm-module-symvers)/Module.symvers
+
+endif # End of check for board platform MMRM_BOARDS
+
+endif # End of find msm-mmrm driver
+
+KBUILD_OPTIONS += KBUILD_EXTRA_SYMBOLS=$(CAM_MMRM_EXTRA_SYMBOLS)
+KBUILD_OPTIONS += KBUILD_EXTRA_CONFIGS=$(CAM_MMRM_EXTRA_CONFIGS)

+ 0 - 15
drivers/cam_req_mgr/Makefile

@@ -1,15 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-
-ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_core
-ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_smmu/
-ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils
-ccflags-y += -I$(srctree)/include/
-ccflags-y += -I$(srctree)/
-
-obj-$(CONFIG_SPECTRA_CAMERA) += cam_req_mgr_core.o\
-				cam_req_mgr_dev.o \
-				cam_req_mgr_util.o \
-				cam_req_mgr_workq.o \
-				cam_mem_mgr.o \
-				cam_req_mgr_timer.o \
-				cam_req_mgr_debug.o

+ 1 - 1
include/uapi/Android.mk

@@ -4,7 +4,7 @@ LOCAL_PATH := $(call my-dir)
 LOCAL_EXPORT_CAMERA_UAPI_INCLUDE := $(LOCAL_PATH)/camera/
 LOCAL_EXPORT_CAMERA_UAPI_INCLUDE := $(LOCAL_PATH)/camera/
 
 
 CAMERA_HEADERS := $(call all-subdir-named-files,*.h)
 CAMERA_HEADERS := $(call all-subdir-named-files,*.h)
-KERNEL_SCRIPTS := $(shell pwd)/kernel/msm-$(TARGET_KERNEL_VERSION)/scripts
+KERNEL_SCRIPTS := $(LOCAL_PATH)/kernel/msm-$(TARGET_KERNEL_VERSION)/scripts
 
 
 include $(CLEAR_VARS)
 include $(CLEAR_VARS)
 LOCAL_MODULE := camera-uapi
 LOCAL_MODULE := camera-uapi