123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197 |
- #
- # Usege : make -f <proj_root>/Build/makefile -C <proj_root>
- #
- BUILD_SCRIPT_VERSION := 1.2.3
- .PHONY : app_version app_clean build_version
- all : app_build
- clean : app_clean
- version : build_version
- #PROJ_ROOT := $(call BSLASH2SLASH,$(PROJ_PATH))
- PROJ_ROOT := .
- BUILD_ROOT := $(PROJ_ROOT)/Build
- include $(BUILD_ROOT)/basedef.mk
- include $(PROJ_ROOT)/project_def.prop
- -include $(PROJ_ROOT)/build_def.prop
- include $(BUILD_ROOT)/funcs.mk
- -include $(BUILD_ROOT)/tooldef.mk
- -include $(BUILD_ROOT)/flags.mk
- -include $(BUILD_ROOT)/platform.mk
- APPTYPE := $(type)
- OUTPUT_DIR := $(PROJ_ROOT)/$(BUILD_CONFIG)
- OBJ_OUTPUT := $(OUTPUT_DIR)/${BUILD_ARCH}/objs
- LOWER_APPNAME := $(call LOWER_CASE,$(APPNAME))
- APPID2 := $(subst $(basename $(APPID)).,,$(APPID))
- ifeq ($(strip $(APPTYPE)),app)
- APPFILE := $(OUTPUT_DIR)/$(LOWER_APPNAME)
- endif
- ifeq ($(strip $(APPTYPE)),staticLib)
- APPFILE := $(OUTPUT_DIR)/${BUILD_ARCH}/lib$(LOWER_APPNAME).a
- endif
- ifeq ($(strip $(APPTYPE)),sharedLib)
- APPFILE := $(OUTPUT_DIR)/${BUILD_ARCH}/lib$(LOWER_APPNAME).so
- endif
- ifneq ($(strip $(PLATFORM_INCS)),)
- PLATFORM_INCS_FILE := $(OBJ_OUTPUT)/platform_incs_file.inc
- endif
- include $(BUILD_ROOT)/build_c.mk
- ifeq ($(strip $(APPTYPE)),app)
- EXT_OP := -fPIE
- endif
- ifeq ($(strip $(APPTYPE)),staticLib)
- EXT_OP := -fPIE
- endif
- ifeq ($(strip $(APPTYPE)),sharedLib)
- EXT_OP := -fPIC
- endif
- C_OPT := $(COMPILE_FLAGS) $(TC_COMPILER_MISC) $(RS_COMPILER_MISC) $(EXT_OP) --sysroot="$(SYSROOT)" -Werror-implicit-function-declaration $(M_OPT)
- CPP_OPT := $(CPP_COMPILE_FLAGS) $(TC_COMPILER_MISC) $(RS_COMPILER_MISC) $(EXT_OP) --sysroot="$(SYSROOT)" -Werror-implicit-function-declaration $(M_OPT)
- C_OPT_FILE := $(PLATFORM_INCS_FILE)
- OBJS := #
- # Global C/C++
- ifeq ($(strip $(USER_ROOT)),)
- USER_ROOT := $(PROJ_ROOT)
- endif
- $(eval $(call C_PROC_RAW,$(OBJ_OUTPUT),$(USER_SRCS),$(USER_INC_DIRS),$(USER_INC_FILES),$(USER_DEFS),$(USER_UNDEFS),$(C_OPT),$(C_OPT_FILE),C,c,$(CC),OBJS))
- $(foreach ext,cpp cxx cc c++ C,$(eval $(call C_PROC_RAW,$(OBJ_OUTPUT),$(USER_SRCS),$(USER_INC_DIRS),$(USER_CPP_INC_FILES),$(USER_CPP_DEFS),$(USER_CPP_UNDEFS),$(CPP_OPT),$(C_OPT_FILE),C++,$(ext),$(CXX),OBJS)))
- # Individual C/C++
- ifneq ($(strip $(USER_EXT_C_KEYS)),)
- $(foreach var,$(USER_EXT_C_KEYS),$(eval $(call C_PROC_RAW,$(OBJ_OUTPUT),$(USER_EXT_$(var)_SRCS),$(USER_EXT_$(var)_INC_DIRS),$(USER_EXT_$(var)_INC_FILES),$(USER_EXT_$(var)_DEFS),$(USER_EXT_$(var)_UNDEFS),$(C_OPT),$(C_OPT_FILE),C,c,$(CC),OBJS)))
- $(foreach ext,cpp cxx cc c++ C,$(foreach var,$(USER_EXT_C_KEYS),$(eval $(call C_PROC_RAW,$(OBJ_OUTPUT),$(USER_EXT_$(var)_SRCS),$(USER_EXT_$(var)_INC_DIRS),$(USER_EXT_$(var)_CPP_INC_FILES),$(USER_EXT_$(var)_CPP_DEFS),$(USER_EXT_$(var)_CPP_UNDEFS),$(C_OPT),$(C_OPT_FILE),C++,$(ext),$(CXX),OBJS))))
- endif
- ifneq ($(strip $(USER_LIB_DIRS)),)
- _ENC_USER_LIB_DIRS := $(call ENCODE_4MAKE,$(USER_LIB_DIRS))
- _ENC_USER_LIB_DIRS := $(addprefix -L,$(_ENC_USER_LIB_DIRS))
- LIBPATHS := $(call DECODE_4MAKE,$(_ENC_USER_LIB_DIRS))
- endif
- LIBS += $(addprefix -l,$(USER_LIBS))
- UOBJS += $(USER_OBJS)
- M_OPT = -MMD -MP -MF"$(@:%.o=%.d)"
- DEPS := $(OBJS:.o=.d)
- ifneq ($(strip $(DEPS)),)
- -include $(PROJ_ROOT)/Build/$(DEPS)
- endif
- ifeq ($(strip $(APPTYPE)),app)
- $(APPFILE) : $(OBJS) $(UOBJS)
- @echo ' Building target: $@'
- @echo ' Invoking: C/C++ Linker'
- $(call MAKEDIRS,$(@D))
- $(CXX) -o $(APPFILE) $(OBJS) $(UOBJS) $(LIBPATHS) -Xlinker --as-needed $(LIBS) $(LINK_FLAGS) $(TC_LINKER_MISC) $(RS_LINKER_MISC) -pie -lpthread --sysroot="$(SYSROOT)" -Xlinker --version-script="$(PROJ_ROOT)/.exportMap" $(RS_LIB_PATHS) $(RS_LIBRARIES) -Xlinker -rpath="/opt/usr/apps/$(APPID)/lib" -Werror-implicit-function-declaration
- @echo ' Finished building target: $@'
- endif
- ifeq ($(strip $(APPTYPE)),staticLib)
- $(APPFILE) : $(OBJS) $(UOBJS)
- @echo ' Building target: $@'
- @echo ' Invoking: Archive utility'
- $(call MAKEDIRS,$(@D))
- $(AR) -r $(APPFILE) $(OBJS) $(UOBJS) $(AR_FLAGS)
- @echo ' Finished building target: $@'
- endif
- ifeq ($(strip $(APPTYPE)),sharedLib)
- $(APPFILE) : $(OBJS) $(UOBJS)
- @echo ' Building target: $@'
- @echo ' Invoking: C/C++ Linker'
- $(call MAKEDIRS,$(@D))
- $(CXX) -o $(APPFILE) $(OBJS) $(UOBJS) $(LIBPATHS) -Xlinker --as-needed $(LIBS) $(LINK_FLAGS) $(TC_LINKER_MISC) $(RS_LINKER_MISC) -shared -lpthread --sysroot="$(SYSROOT)" $(RS_LIB_PATHS) $(RS_LIBRARIES)
- @echo ' Finished building target: $@'
- endif
- $(OBJ_OUTPUT) :
- $(call MAKEDIRS,$@)
- $(OUTPUT_DIR) :
- $(call MAKEDIRS,$@)
- ifneq ($(strip $(PLATFORM_INCS)),)
- $(PLATFORM_INCS_FILE) : $(OBJ_OUTPUT)
- @echo ' Building inc file: $@'
- ifneq ($(findstring Windows,$(OS)),)
- ifneq ($(findstring 3.82,$(MAKE_VERSION)),)
- $(file > $@,$(PLATFORM_INCS))
- else
- @echo $(PLATFORM_INCS) > $@
- endif
- else
- @echo $(PLATFORM_INCS) > $@
- endif
- endif
- include $(BUILD_ROOT)/build_edc.mk
- #ifeq ($(strip $(ENVENTOR_SHARED_RES_PATH)),)
- ENVENTOR_SHARED_RES_PATH ?= $(ENVENTOR_PATH)/share/enventor
- #endif
- EDJ_FILES :=
- # Global EDCs
- ifneq ($(strip $(USER_EDCS)),)
- $(eval $(call EDJ_PROC_RAW,$(OUTPUT_DIR),$(USER_EDCS),$(USER_EDCS_IMAGE_DIRS),$(USER_EDCS_SOUND_DIRS),$(USER_EDCS_FONT_DIRS),EDJ_FILES))
- endif
- # Individual EDCs
- ifneq ($(strip $(USER_EXT_EDC_KEYS)),)
- $(foreach var,$(USER_EXT_EDC_KEYS),$(eval $(call EDJ_PROC_RAW,$(OUTPUT_DIR),$(USER_EXT_$(var)_EDCS),$(USER_EXT_$(var)_EDCS_IMAGE_DIRS),$(USER_EXT_$(var)_EDCS_SOUND_DIRS),$(USER_EXT_$(var)_EDCS_FONT_DIRS),EDJ_FILES)))
- endif
- include $(BUILD_ROOT)/build_po.mk
- MO_FILES :=
- # Global POs
- ifneq ($(strip $(USER_POS)),)
- $(eval $(call MO_PROC_RAW,$(OUTPUT_DIR),$(USER_POS),$(APPID2),MO_FILES))
- endif
- secondary-outputs : $(EDJ_FILES) $(MO_FILES)
- -include appendix.mk
- app_build : $(OUTPUT_DIR) $(APPFILE) secondary-outputs
- @echo ========= done =========
- app_clean :
- rm -f $(APPFILE)
- rm -rf $(OUTPUT_DIR)
- build_version :
- @echo makefile.mk : $(BUILD_SCRIPT_VERSION)
|