# We can build either as part of a standalone Kernel build or as # an external module. Determine which mechanism is being used ifeq ($(MODNAME),) KERNEL_BUILD := 1 else KERNEL_BUILD := 0 endif ifeq ($(KERNEL_BUILD), 1) # These are configurable via Kconfig for kernel-based builds # Need to explicitly configure for Android-based builds AUDIO_BLD_DIR := $(shell pwd)/kernel/msm-5.4 AUDIO_ROOT := $(AUDIO_BLD_DIR)/techpack/audio endif ifeq ($(CONFIG_SND_SOC_AUTO), y) ifdef CONFIG_SND_SOC_SA8155 include $(AUDIO_ROOT)/config/sa8155auto.conf INCS += -include $(AUDIO_ROOT)/config/sa8155autoconf.h endif ifdef CONFIG_SND_SOC_SA6155 include $(AUDIO_ROOT)/config/sa6155auto.conf INCS += -include $(AUDIO_ROOT)/config/sa6155autoconf.h endif ifdef CONFIG_SND_SOC_GVM include $(AUDIO_ROOT)/config/gvmauto.conf INCS += -include $(AUDIO_ROOT)/config/gvmautoconf.h endif ifdef CONFIG_SND_SOC_SA7255 include $(AUDIO_ROOT)/config/sa7255auto.conf INCS += -include $(AUDIO_ROOT)/config/sa7255autoconf.h endif else ifeq ($(KERNEL_BUILD), 0) ifeq ($(CONFIG_ARCH_SM8150), y) ifdef CONFIG_SND_SOC_SA8155 include $(AUDIO_ROOT)/config/sa8155auto.conf INCS += -include $(AUDIO_ROOT)/config/sa8155autoconf.h else include $(AUDIO_ROOT)/config/sm8150auto.conf INCS += -include $(AUDIO_ROOT)/config/sm8150autoconf.h endif endif ifeq ($(CONFIG_ARCH_SM6150), y) ifdef CONFIG_SND_SOC_SA6155 include $(AUDIO_ROOT)/config/sa6155auto.conf INCS += -include $(AUDIO_ROOT)/config/sa6155autoconf.h else include $(AUDIO_ROOT)/config/sm6150auto.conf INCS += -include $(AUDIO_ROOT)/config/sm6150autoconf.h endif endif ifeq ($(CONFIG_ARCH_TRINKET), y) include $(AUDIO_ROOT)/config/sm6150auto.conf export INCS += -include $(AUDIO_ROOT)/config/sm6150autoconf.h endif ifeq ($(CONFIG_ARCH_KONA), y) include $(AUDIO_ROOT)/config/konaauto.conf INCS += -include $(AUDIO_ROOT)/config/konaautoconf.h endif ifeq ($(CONFIG_ARCH_WAIPIO), y) include $(AUDIO_ROOT)/config/waipioauto.conf INCS += -include $(AUDIO_ROOT)/config/waipioautoconf.h endif ifeq ($(CONFIG_ARCH_KALAMA), y) include $(AUDIO_ROOT)/config/kalamaauto.conf INCS += -include $(AUDIO_ROOT)/config/kalamaautoconf.h endif ifeq ($(CONFIG_ARCH_PINEAPPLE), y) include $(AUDIO_ROOT)/config/pineappleauto.conf INCS += -include $(AUDIO_ROOT)/config/pineappleautoconf.h endif ifeq ($(CONFIG_ARCH_PITTI), y) include $(AUDIO_ROOT)/config/pittiauto.conf INCS += -include $(AUDIO_ROOT)/config/pittiautoconf.h endif ifeq ($(CONFIG_ARCH_LITO), y) include $(AUDIO_ROOT)/config/litoauto.conf export INCS += -include $(AUDIO_ROOT)/config/litoautoconf.h endif ifeq ($(CONFIG_ARCH_KHAJE), y) include $(AUDIO_ROOT)/config/bengalauto.conf export INCS += -include $(AUDIO_ROOT)/config/bengalautoconf.h endif ifeq ($(CONFIG_ARCH_HOLI), y) include $(AUDIO_ROOT)/config/holiauto.conf INCS += -include $(AUDIO_ROOT)/config/holiautoconf.h endif ifeq ($(CONFIG_ARCH_BLAIR), y) include $(AUDIO_ROOT)/config/holiauto.conf INCS += -include $(AUDIO_ROOT)/config/holiautoconf.h endif ifeq ($(CONFIG_ARCH_SDMSHRIKE), y) include $(AUDIO_ROOT)/config/sm8150auto.conf INCS += -include $(AUDIO_ROOT)/config/sm8150autoconf.h endif ifeq ($(CONFIG_ARCH_QCS405), y) include $(AUDIO_ROOT)/config/qcs405auto.conf export INCS += -include $(AUDIO_ROOT)/config/qcs405autoconf.h endif ifeq ($(CONFIG_QTI_QUIN_GVM), y) include $(AUDIO_ROOT)/config/gvmauto.conf INCS += -include $(AUDIO_ROOT)/config/gvmautoconf.h endif ifeq ($(CONFIG_ARCH_SDXLEMUR), y) include $(AUDIO_ROOT)/config/sdxlemurauto.conf export INCS += -include $(AUDIO_ROOT)/config/sdxlemurautoconf.h endif endif endif # As per target team, build is done as follows: # Defconfig : build with default flags # Slub : defconfig + CONFIG_SLUB_DEBUG := y + # CONFIG_SLUB_DEBUG_ON := y + CONFIG_PAGE_POISONING := y # Perf : Using appropriate msmXXXX-perf_defconfig # # Shipment builds (user variants) should not have any debug feature # enabled. This is identified using 'TARGET_BUILD_VARIANT'. Slub builds # are identified using the CONFIG_SLUB_DEBUG_ON configuration. Since # there is no other way to identify defconfig builds, QTI internal # representation of perf builds (identified using the string 'perf'), # is used to identify if the build is a slub or defconfig one. This # way no critical debug feature will be enabled for perf and shipment # builds. Other OEMs are also protected using the TARGET_BUILD_VARIANT # config. ############ UAPI ############ UAPI_DIR := uapi/audio UAPI_INC := -I$(AUDIO_ROOT)/include/$(UAPI_DIR) ############ COMMON ############ COMMON_DIR := include COMMON_INC := -I$(AUDIO_ROOT)/$(COMMON_DIR) ############ ASoC Codecs ############ ifdef CONFIG_WCD9XXX_CODEC_CORE CORE_OBJS += wcd9xxx-rst.o CORE_OBJS += wcd9xxx-core-init.o CORE_OBJS += wcd9xxx-core.o CORE_OBJS += wcd9xxx-irq.o CORE_OBJS += wcd9xxx-slimslave.o CORE_OBJS += wcd9xxx-utils.o CORE_OBJS += wcd9335-regmap.o CORE_OBJS += wcd9335-tables.o CORE_OBJS += msm-cdc-pinctrl.o CORE_OBJS += msm-cdc-supply.o CORE_OBJS += wcd934x/wcd934x-regmap.o CORE_OBJS += wcd934x/wcd934x-tables.o endif ifdef CONFIG_WCD9XXX_CODEC_CORE_V2 CORE_OBJS += wcd9xxx-core-init.o CORE_OBJS += msm-cdc-pinctrl.o CORE_OBJS += msm-cdc-supply.o endif ifdef CONFIG_SND_SOC_WCD9XXX_V2 ifdef CONFIG_WCD9XXX_CODEC_CORE WCD9XXX_OBJS += wcd9xxx-common-v2.o WCD9XXX_OBJS += wcd9xxx-resmgr-v2.o WCD9XXX_OBJS += wcd-dsp-utils.o WCD9XXX_OBJS += wcd-dsp-mgr.o else WCD9XXX_OBJS += wcd-clsh.o endif WCD9XXX_OBJS += wcdcal-hwdep.o WCD9XXX_OBJS += wcd9xxx-soc-init.o WCD9XXX_OBJS += audio-ext-clk-up.o endif ifdef CONFIG_SND_SOC_WCD9335 WCD9335_OBJS += wcd9335.o endif ifdef CONFIG_SND_SOC_WSA881X WSA881X_OBJS += wsa881x.o WSA881X_OBJS += wsa881x-tables.o WSA881X_OBJS += wsa881x-regmap.o WSA881X_OBJS += wsa881x-temp-sensor.o endif ifdef CONFIG_SND_SOC_SWR_DMIC SWR_DMIC_OBJS += swr-dmic.o endif ifdef CONFIG_SND_SOC_WSA881X_ANALOG INCS += -include $(KERNEL_SRC)/drivers/base/regmap/internal.h WSA881X_ANALOG_OBJS += wsa881x-analog.o WSA881X_ANALOG_OBJS += wsa881x-tables-analog.o WSA881X_ANALOG_OBJS += wsa881x-regmap-analog.o ifndef CONFIG_WSA881X_TEMP_SENSOR_DISABLE WSA881X_ANALOG_OBJS += wsa881x-temp-sensor.o endif endif ifdef CONFIG_SND_SOC_MSM_STUB STUB_OBJS += msm_stub.o endif ifdef CONFIG_SND_SOC_WCD_SPI SPI_OBJS += wcd-spi.o endif ifdef CONFIG_SND_SOC_WCD_CPE WCD_CPE_OBJS += wcd_cpe_core.o WCD_CPE_OBJS += wcd_cpe_services.o endif ifdef CONFIG_SND_SOC_WCD_MBHC MBHC_OBJS += wcd-mbhc-v2.o endif ifdef CONFIG_SND_SOC_WCD_MBHC_ADC MBHC_OBJS += wcd-mbhc-adc.o endif ifdef CONFIG_SND_SOC_WCD_MBHC_LEGACY MBHC_OBJS += wcd-mbhc-legacy.o endif ifdef CONFIG_SND_SOC_MSM_HDMI_CODEC_RX HDMICODEC_OBJS += msm_hdmi_codec_rx.o endif ifdef CONFIG_SND_SOC_WCD_IRQ CORE_OBJS += wcd-irq.o endif ifdef CONFIG_SND_SWR_HAPTICS SWR_HAP_OBJS += swr-haptics.o endif ifdef CONFIG_LPASS_BT_SWR LPASS_BT_SWR_OBJS += lpass-bt-swr.o endif LINUX_INC += -Iinclude/linux INCS += $(COMMON_INC) \ $(UAPI_INC) EXTRA_CFLAGS += $(INCS) CDEFINES += -DANI_LITTLE_BYTE_ENDIAN \ -DANI_LITTLE_BIT_ENDIAN \ -DDOT11F_LITTLE_ENDIAN_HOST \ -DANI_COMPILER_TYPE_GCC \ -DANI_OS_TYPE_ANDROID=6 \ -DPTT_SOCK_SVC_ENABLE \ -Wall\ -Werror\ -D__linux__ KBUILD_CPPFLAGS += $(CDEFINES) # Currently, for versions of gcc which support it, the kernel Makefile # is disabling the maybe-uninitialized warning. Re-enable it for the # AUDIO driver. Note that we must use EXTRA_CFLAGS here so that it # will override the kernel settings. ifeq ($(call cc-option-yn, -Wmaybe-uninitialized),y) EXTRA_CFLAGS += -Wmaybe-uninitialized endif #EXTRA_CFLAGS += -Wmissing-prototypes ifeq ($(call cc-option-yn, -Wheader-guard),y) EXTRA_CFLAGS += -Wheader-guard endif ifeq ($(KERNEL_BUILD), 1) obj-y += wcd934x/ obj-y += wcd937x/ obj-y += wcd938x/ obj-y += wcd939x/ obj-y += wcd9378/ obj-y += bolero/ obj-y += lpass-cdc/ obj-y += wsa884x/ obj-y += wsa883x/ obj-y += rouleur/ obj-y += ./ endif # Module information used by KBuild framework obj-$(CONFIG_WCD9XXX_CODEC_CORE) += wcd_core_dlkm.o obj-$(CONFIG_WCD9XXX_CODEC_CORE_V2) += wcd_core_dlkm.o wcd_core_dlkm-y := $(CORE_OBJS) obj-$(CONFIG_SND_SOC_WCD9XXX_V2) += wcd9xxx_dlkm.o wcd9xxx_dlkm-y := $(WCD9XXX_OBJS) obj-$(CONFIG_SND_SOC_WCD9335) += wcd9335_dlkm.o wcd9335_dlkm-y := $(WCD9335_OBJS) obj-$(CONFIG_SND_SOC_WSA881X) += wsa881x_dlkm.o wsa881x_dlkm-y := $(WSA881X_OBJS) obj-$(CONFIG_SND_SOC_SWR_DMIC) += swr_dmic_dlkm.o swr_dmic_dlkm-y := $(SWR_DMIC_OBJS) obj-$(CONFIG_SND_SOC_WSA881X_ANALOG) += wsa881x_analog_dlkm.o wsa881x_analog_dlkm-y := $(WSA881X_ANALOG_OBJS) obj-$(CONFIG_SND_SOC_MSM_STUB) += stub_dlkm.o stub_dlkm-y := $(STUB_OBJS) obj-$(CONFIG_SND_SOC_WCD_CPE) += wcd_cpe_dlkm.o wcd_cpe_dlkm-y := $(WCD_CPE_OBJS) obj-$(CONFIG_SND_SOC_WCD_SPI) += wcd_spi_dlkm.o wcd_spi_dlkm-y := $(SPI_OBJS) obj-$(CONFIG_SND_SOC_WCD_MBHC) += mbhc_dlkm.o mbhc_dlkm-y := $(MBHC_OBJS) obj-$(CONFIG_SND_SOC_MSM_HDMI_CODEC_RX) += hdmi_dlkm.o hdmi_dlkm-y := $(HDMICODEC_OBJS) obj-$(CONFIG_SND_SWR_HAPTICS) += swr_haptics_dlkm.o swr_haptics_dlkm-y := $(SWR_HAP_OBJS) obj-$(CONFIG_LPASS_BT_SWR) += lpass_bt_swr_dlkm.o lpass_bt_swr_dlkm-y := $(LPASS_BT_SWR_OBJS)