diff options
Diffstat (limited to 'Android.mk')
-rw-r--r-- | Android.mk | 288 |
1 files changed, 288 insertions, 0 deletions
diff --git a/Android.mk b/Android.mk new file mode 100644 index 0000000..939b038 --- /dev/null +++ b/Android.mk @@ -0,0 +1,288 @@ +# If FLASHKIT_INSTALL_PATH is set it is assumed to be part of a flashkit build +# in the forest, otherwise it is assumed to be a build of loader_communication +# to use together with MFA +ifeq ($(FLASHKIT_INSTALL_PATH),) + PRIVATE_BUILDTYPE_FLASHKIT=false +else + PRIVATE_BUILDTYPE_FLASHKIT=true +endif + +ifeq ($(PRIVATE_BUILDTYPE_FLASHKIT), true) +#Build of loader_communication for flashkit +#Android makefile to build loader communication as a part of Android Build +include $(CLEAR_VARS) + +.phony: config-lcm build-lcm install-lcm config-lcd build-lcd install-lcd clean-lcm distclean-lcm clean-lcd distclean-lcd clobber + +#Source location +PRIVATE_LC_TOOLS_PATH := $(abspath $(TOOLS_PATH)) +PRIVATE_LC_LOADERS_DIR := $(PRIVATE_LC_TOOLS_PATH)/platform/flash_kit/loaders + +PRIVATE_LC_LCM_DIR := $(PRIVATE_LC_TOOLS_PATH)/platform/flash_kit/loader_communication/lcmodule +PRIVATE_LC_LCD_DIR := $(PRIVATE_LC_TOOLS_PATH)/platform/flash_kit/loader_communication + +#Output +PRIVATE_LC_FLASH_KIT_TOOL_DIR := $(FLASHKIT_INSTALL_BASE)/flashkit + +PRIVATE_LC_LCM_OUT_DIR = $(abspath $(TOP))/$(TARGET_OUT_INTERMEDIATES)/FLASHKIT/LCM +PRIVATE_LC_LCD_OUT_DIR = $(abspath $(TOP))/$(TARGET_OUT_INTERMEDIATES)/FLASHKIT/LCD + +PRIVATE_LC_LCM_INSTALLDIR := $(abspath $(TOP))/$(TARGET_OUT_INTERMEDIATES)/FLASHKIT/LOADERS/loader_communication_module +PRIVATE_LC_LCMLIB_INSTALLDIR := $(PRIVATE_LC_FLASH_KIT_TOOL_DIR)/flash-tool-backend/native/ +PRIVATE_LC_LCD_INSTALLDIR := $(PRIVATE_LC_FLASH_KIT_TOOL_DIR)/flash-tool-backend/native/ + +#Other flags +PRIVATE_LC_LCD_FLAGS := LCD_INSTALLDIR=$(PRIVATE_LC_LCD_INSTALLDIR) PATH=$(PATH) + +PRIVATE_LC_LCM_FLAGS := LCM_PATH=$(PRIVATE_LC_LCM_DIR) LOADER_DIR=$(PRIVATE_LC_LOADERS_DIR) \ + LCMLIB_INSTALLDIR=$(PRIVATE_LC_LCMLIB_INSTALLDIR) \ + LCMLDR_INSTALLDIR=$(PRIVATE_LC_LCM_INSTALLDIR) PATH=$(PATH) + +#LCM TARGETS +.PHONY: config-lcm +config-lcm: + mkdir -p $(PRIVATE_LC_LCMLIB_INSTALLDIR) + mkdir -p $(PRIVATE_LC_LCM_OUT_DIR) + $(MAKE) -C $(PRIVATE_LC_LCM_DIR) $(PRIVATE_LC_LCM_FLAGS) CONFIG_DIR=$(PRIVATE_LC_LCM_OUT_DIR) BUILDFOLDER=$(PRIVATE_LC_LCM_OUT_DIR) config + +.PHONY: build-lcm +build-lcm: config-lcm + $(MAKE) -C $(PRIVATE_LC_LCM_DIR) $(PRIVATE_LC_LCM_FLAGS) CONFIG_DIR=$(PRIVATE_LC_LCM_OUT_DIR) build + +.PHONY: install-lcm +install-lcm: build-lcm + $(MAKE) -C $(PRIVATE_LC_LCM_DIR) $(PRIVATE_LC_LCM_FLAGS) CONFIG_DIR=$(PRIVATE_LC_LCM_OUT_DIR) install + +.PHONY: clean-lcm +clean-lcm: + $(MAKE) -C $(PRIVATE_LC_LCM_DIR) $(PRIVATE_LC_LCM_FLAGS) CONFIG_DIR=$(PRIVATE_LC_LCM_OUT_DIR) clean + +.PHONY: distclean-lcm +distclean-lcm: + $(MAKE) -C $(PRIVATE_LC_LCM_DIR) $(PRIVATE_LC_LCM_FLAGS) CONFIG_DIR=$(PRIVATE_LC_LCM_OUT_DIR) distclean + +#LCD TARGETS +.PHONY: config-lcd +config-lcd: + mkdir -p $(PRIVATE_LC_LCD_INSTALLDIR) + mkdir -p $(PRIVATE_LC_LCD_OUT_DIR) + $(MAKE) -C $(PRIVATE_LC_LCD_DIR) $(PRIVATE_LC_LCD_FLAGS) CONFIG_DIR=$(PRIVATE_LC_LCD_OUT_DIR) BUILDFOLDER=$(PRIVATE_LC_LCD_OUT_DIR) config + +.PHONY: build-lcd +build-lcd: config-lcd + $(MAKE) -C $(PRIVATE_LC_LCD_DIR) $(PRIVATE_LC_LCD_FLAGS) CONFIG_DIR=$(PRIVATE_LC_LCD_OUT_DIR) build + +.PHONY: install-lcd +install-lcd: build-lcd + $(MAKE) -C $(PRIVATE_LC_LCD_DIR) $(PRIVATE_LC_LCD_FLAGS) CONFIG_DIR=$(PRIVATE_LC_LCD_OUT_DIR) install + +.PHONY: clean-lcd +clean-lcd: + $(MAKE) -C $(PRIVATE_LC_LCD_DIR) $(PRIVATE_LC_LCD_FLAGS) CONFIG_DIR=$(PRIVATE_LC_LCD_OUT_DIR) clean + +.PHONY: distclean-lcd +distclean-lcd: + $(MAKE) -C $(PRIVATE_LC_LCD_DIR) $(PRIVATE_LC_LCD_FLAGS) CONFIG_DIR=$(PRIVATE_LC_LCD_OUT_DIR) distclean + +clean clobber: clean-lcm clean-lcd + +st-ericsson-flashkit: config-lcm build-lcm install-lcm config-lcd build-lcd install-lcd + +else +#MFA build of loader_communication +#Android makefile to build loader communication as an Android shared library object + +# build liblcdriver.so +LOCAL_PATH := $(my-dir) +XSL_LOCAL_PATH := $(LOCAL_PATH) + +# Path for the tool used for automatic code generation +PRIVATE_CLASSPATH := $(LOCAL_PATH)/lcmodule/tools/xalan-j_2_7_1/xalan.jar org.apache.xalan.xslt.Process + +include $(CLEAR_VARS) +LOCAL_MODULE_NAME := libSecurityAlgorithms.a +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_CLASS := STATIC_LIBRARY +LOCAL_PREBUILT_LIBS:= \ + source/security_algorithms/ARM/$(LOCAL_MODULE_NAME) +include $(BUILD_MULTI_PREBUILT) +include $(CLEAR_VARS) + +LOCAL_MODULE := liblcdriver +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_CLASS := SHARED_LIBRARIES + +# Automatic Code Generation +LOCAL_AUTO_DIR := $(local-intermediates-dir)/source/autogen +LOCAL_CONFIG_PATH := $(LOCAL_PATH)/source/config + +# Generate lcdriver_error_codes.h +GEN := $(LOCAL_AUTO_DIR)/lcdriver_error_codes.h +$(GEN) : $(shell mkdir -p $(LOCAL_AUTO_DIR)) +$(GEN) : PRIVATE_INPUT_XML := $(LOCAL_CONFIG_PATH)/lcdriver_error_codes.xml +$(GEN) : PRIVATE_INPUT_XSL = $(XSL_LOCAL_PATH)/source/config/$(patsubst %.h,%_h.xsl,$(patsubst %.cpp,%_cpp.xsl,$(@F))) +$(GEN) : $(PRIVATE_INPUT_XML) $(PRIVATE_INPUT_XSL) +$(GEN) : PRIVATE_CUSTOM_TOOL = java -classpath $(PRIVATE_CLASSPATH) -in $(PRIVATE_INPUT_XML) -xsl $(PRIVATE_INPUT_XSL) -out $@ -PARAM target lcm +$(GEN) : + $(transform-generated-source) + @echo $@ + +LOCAL_GENERATED_SOURCES += $(GEN) + +# Generate a2_command_ids.h, a2_commands.h, a2_commands_impl.h, and a2_commands_marshal.cpp +GEN := $(LOCAL_AUTO_DIR)/a2_command_ids.h $(LOCAL_AUTO_DIR)/a2_commands.h $(LOCAL_AUTO_DIR)/a2_commands_impl.h $(LOCAL_AUTO_DIR)/a2_commands_marshal.cpp +$(GEN) : $(shell mkdir -p $(LOCAL_AUTO_DIR)) +$(GEN) : PRIVATE_INPUT_XML := $(LOCAL_CONFIG_PATH)/a2_commands.xml +$(GEN) : PRIVATE_INPUT_XSL = $(XSL_LOCAL_PATH)/source/config/$(patsubst %.h,%_h.xsl,$(patsubst %.cpp,%_cpp.xsl,$(@F))) +$(GEN) : $(PRIVATE_INPUT_XML) $(PRIVATE_INPUT_XSL) +$(GEN) : PRIVATE_CUSTOM_TOOL = java -classpath $(PRIVATE_CLASSPATH) -in $(PRIVATE_INPUT_XML) -xsl $(PRIVATE_INPUT_XSL) -out $@ -PARAM target lcm +$(GEN) : + $(transform-generated-source) + @echo $@ + +LOCAL_GENERATED_SOURCES += $(GEN) + +# Generate command_ids.h, commands.h, commands_impl.h, and commands_marshal.cpp +GEN := $(LOCAL_AUTO_DIR)/command_ids.h $(LOCAL_AUTO_DIR)/commands.h $(LOCAL_AUTO_DIR)/commands_impl.h $(LOCAL_AUTO_DIR)/commands_marshal.cpp +$(GEN) : $(shell mkdir -p $(LOCAL_AUTO_DIR)) +$(GEN) : PRIVATE_INPUT_XML := $(LOCAL_CONFIG_PATH)/commands.xml +$(GEN) : PRIVATE_INPUT_XSL = $(XSL_LOCAL_PATH)/source/config/$(patsubst %.h,%_h.xsl,$(patsubst %.cpp,%_cpp.xsl,$(@F))) +$(GEN) : $(PRIVATE_INPUT_XML) $(PRIVATE_INPUT_XSL) +$(GEN) : PRIVATE_CUSTOM_TOOL = java -classpath $(PRIVATE_CLASSPATH) -in $(PRIVATE_INPUT_XML) -xsl $(PRIVATE_INPUT_XSL) -out $@ -PARAM target lcm +$(GEN) : + $(transform-generated-source) + @echo $@ + +LOCAL_GENERATED_SOURCES += $(GEN) + +LOCAL_SRC_FILES := \ + source/utilities/Serialization.cpp\ + source/utilities/Logger.cpp\ + source/utilities/MemMappedFile.cpp\ + source/utilities/CaptiveThreadObject.cpp\ + source/utilities/BulkHandler.cpp\ + source/CEH/ProtromRpcInterface.cpp\ + source/CEH/commands_impl.cpp\ + source/CEH/a2_commands_impl.cpp\ + source/CEH/ZRpcInterface.cpp\ + source/CEH/CmdResult.cpp\ + source/LcmInterface.cpp\ + source/LCDriverThread.cpp\ + source/LCDriverMethods.cpp\ + source/LCDriverEntry.cpp\ + source/LCDriver.cpp\ + source/LCM/Hash.cpp\ + source/LCM/Buffers.cpp\ + source/LCM/Queue.cpp\ + source/LCM/Timer.cpp\ + source/api_wrappers/linux/CThreadWrapper.cpp\ + source/api_wrappers/linux/CWaitableObject.cpp\ + source/api_wrappers/linux/CSemaphore.cpp\ + source/api_wrappers/linux/CSemaphoreQueue.cpp\ + source/api_wrappers/linux/CEventObject.cpp\ + source/api_wrappers/linux/CWaitableObjectCollection.cpp\ + source/api_wrappers/linux/OS.cpp\ + source/LCDriverInterface.cpp + +LOCAL_C_INCLUDES := \ + $(TOP)/external/stlport/stlport\ + $(TOP)/bionic\ + $(TOP)/bionic/libc/include\ + $(LOCAL_PATH)/source\ + $(LOCAL_PATH)/source/api_wrappers/linux\ + $(LOCAL_PATH)/source/utilities\ + $(LOCAL_PATH)/source/LCM\ + $(LOCAL_PATH)/source/LCM/include\ + $(LOCAL_PATH)/source/security_algorithms\ + $(LOCAL_PATH)/source/CEH\ + $(LOCAL_AUTO_DIR) + +LOCAL_CFLAGS := -Wall -fPIC -fvisibility=hidden -fno-strict-aliasing -DLCDRIVER_EXPORTS + +LOCAL_SHARED_LIBRARIES := libc libdl libstlport + +LOCAL_WHOLE_STATIC_LIBRARIES := libSecurityAlgorithms +LOCAL_PRELINK_MODULE := false + +include $(BUILD_SHARED_LIBRARY) + +# build liblcm.so +include $(CLEAR_VARS) + +LOCAL_MODULE := liblcm +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_CLASS := SHARED_LIBRARIES +LOCAL_AUTO_DIR := $(local-intermediates-dir)/lcmodule/source/autogen +LOCAL_CONFIG_PATH := $(LOCAL_PATH)/lcmodule/source/cnh1606344_ldr_communication_module/config + +# Generate error_codes.h +GEN := $(LOCAL_AUTO_DIR)/error_codes.h +$(GEN) : $(shell mkdir -p $(LOCAL_AUTO_DIR)) +$(GEN) : PRIVATE_INPUT_XML := $(LOCAL_CONFIG_PATH)/error_codes.xml +$(GEN) : PRIVATE_INPUT_XSL := $(LOCAL_CONFIG_PATH)/errorcode_h.xsl +$(GEN) : $(PRIVATE_INPUT_XML) $(PRIVATE_INPUT_XSL) +$(GEN) : PRIVATE_CUSTOM_TOOL = java -classpath $(PRIVATE_CLASSPATH) -in $(PRIVATE_INPUT_XML) -xsl $(PRIVATE_INPUT_XSL) -out $@ -PARAM target lcm +$(GEN) : + $(transform-generated-source) + @echo $@ + +LOCAL_GENERATED_SOURCES += $(GEN) + +# Generate command_ids.h and commands.h +GEN := $(LOCAL_AUTO_DIR)/command_ids.h $(LOCAL_AUTO_DIR)/commands.h +$(GEN) : $(shell mkdir -p $(LOCAL_AUTO_DIR)) +$(GEN) : PRIVATE_INPUT_XML := $(LOCAL_CONFIG_PATH)/commands.xml +$(GEN) : PRIVATE_INPUT_XSL = $(LOCAL_CONFIG_PATH)/$(patsubst %.h,%_h.xsl,$(patsubst %.cpp,%_cpp.xsl,$(@F))) +$(GEN) : $(PRIVATE_INPUT_XML) $(PRIVATE_INPUT_XSL) +$(GEN) : PRIVATE_CUSTOM_TOOL = java -classpath $(PRIVATE_CLASSPATH) -in $(PRIVATE_INPUT_XML) -xsl $(PRIVATE_INPUT_XSL) -out $@ -PARAM target lcm +$(GEN) : + $(transform-generated-source) + @echo $@ + +LOCAL_GENERATED_SOURCES += $(GEN) + +LOCAL_SRC_FILES := \ + lcmodule/source/cnh1605204_ldr_transport_layer/source/bulk_protocol.c\ + lcmodule/source/cnh1605204_ldr_transport_layer/source/command_protocol.c\ + lcmodule/source/cnh1605204_ldr_transport_layer/source/protrom_protocol.c\ + lcmodule/source/cnh1605204_ldr_transport_layer/source/protrom_transport.c\ + lcmodule/source/cnh1605204_ldr_transport_layer/source/r15_transport_layer.c\ + lcmodule/source/cnh1605204_ldr_transport_layer/source/a2_transport.c\ + lcmodule/source/cnh1605204_ldr_transport_layer/source/a2_protocol.c\ + lcmodule/source/cnh1605204_ldr_transport_layer/source/a2_speedflash.c\ + lcmodule/source/cnh1605204_ldr_transport_layer/source/z_transport.c\ + lcmodule/source/cnh1605205_ldr_network_layer/source/a2_header.c\ + lcmodule/source/cnh1605205_ldr_network_layer/source/a2_network.c\ + lcmodule/source/cnh1605205_ldr_network_layer/source/r15_header.c\ + lcmodule/source/cnh1605205_ldr_network_layer/source/r15_network_layer.c\ + lcmodule/source/cnh1605205_ldr_network_layer/source/z_network.c\ + lcmodule/source/cnh1605205_ldr_network_layer/source/protrom_header.c\ + lcmodule/source/cnh1605205_ldr_network_layer/source/protrom_network.c\ + lcmodule/source/cnh1606344_ldr_communication_module/source/communication_service.c\ + lcmodule/source/cnh1606344_ldr_communication_module/source/protrom_family.c\ + lcmodule/source/cnh1606344_ldr_communication_module/source/z_family.c\ + lcmodule/source/cnh1606344_ldr_communication_module/source/r15_family.c\ + lcmodule/source/cnh1606344_ldr_communication_module/source/a2_family.c\ + lcmodule/source/serialization.c + +LOCAL_C_INCLUDES := \ + $(LOCAL_PATH)/lcmodule/source/legacy_compatibility/\ + $(LOCAL_PATH)/lcmodule/source/cnh1605204_ldr_transport_layer/include/\ + $(LOCAL_PATH)/lcmodule/source/cnh1605205_ldr_network_layer/include/\ + $(LOCAL_PATH)/lcmodule/source/cnh1606344_ldr_communication_module/include/\ + $(LOCAL_PATH)/lcmodule/source/cnh1605720_ldr_time_utilities/include/\ + $(LOCAL_PATH)/lcmodule/source/cnh1605551_ldr_utilities/include/\ + $(LOCAL_PATH)/lcmodule/source/cnh1605551_ldr_utilities/communication_abstraction/\ + $(LOCAL_PATH)/lcmodule/source/cnh1605203_ldr_communication_buffer/include/\ + $(LOCAL_PATH)/lcmodule/source/cnh1605721_ldr_security_algorithms/include/\ + $(LOCAL_AUTO_DIR) + +LOCAL_CFLAGS := -Wall -fPIC -fvisibility=hidden -fno-strict-aliasing -DUINT64_SUPPORTED -DSINT64_SUPPORTED -DINT64_BASE_TYPE="long long" -DCFG_ENABLE_A2_FAMILY -DLCM_EXPORTS + +LOCAL_SHARED_LIBRARIES := libc + +LOCAL_PRELINK_MODULE := false + +include $(BUILD_SHARED_LIBRARY) + +endif |