Bundles / Build /

makefile

  1. BUILD_SCRIPT_VERSION := 1.0.7
  2.  
  3. all : app_build
  4.  
  5. clean : app_clean
  6.  
  7. version : make_version
  8.  
  9.  
  10. BSLASH := \\#
  11. BSLASH2SLASH = $(subst $(BSLASH),/,$(1))
  12. REMOVE_TAIL = $(patsubst %/,%,$(1))
  13.  
  14. PROJ_ROOT := $(call BSLASH2SLASH,$(PROJPATH))
  15.  
  16. -include $(PROJ_ROOT)/project_def.prop
  17. -include basedef.mk
  18. -include tooldef.mk
  19. -include flags.mk
  20. # deprecated. use build_def.prop file instead
  21. #-include prepost.mk
  22.  
  23. APPTYPE := $(type)
  24.  
  25. OBJ_OUTPUT := $(call BSLASH2SLASH,$(OUTPUT_DIR)/objs)
  26.  
  27. OS_NAME = $(shell $(UNAME))
  28.  
  29. #LOWER_APPNAME := $(shell echo translit($(APPNAME),[A-Z],[a-z])|$(M4))
  30. LOWER_APPNAME := $(shell echo $(APPNAME)|$(TR) [A-Z] [a-z])
  31.  
  32. ifeq ($(strip $(APPTYPE)),app)
  33. APPFILE := $(OUTPUT_DIR)/$(LOWER_APPNAME)
  34. endif
  35. ifeq ($(strip $(APPTYPE)),staticLib)
  36. APPFILE := $(OUTPUT_DIR)/lib$(LOWER_APPNAME).a
  37. endif
  38. ifeq ($(strip $(APPTYPE)),sharedLib)
  39. APPFILE := $(OUTPUT_DIR)/lib$(LOWER_APPNAME).so
  40. endif
  41.  
  42. ifneq ($(strip $(PLATFORM_INCS)),)
  43. PLATFORM_INCS_FILE := $(OBJ_OUTPUT)/platform_incs_file.inc
  44. endif
  45.  
  46. FIND_FILES = $(shell $(FIND) $(PROJ_ROOT)/$(dir $(1)) -type f -name $(notdir $(1)) -printf '$(dir $(1))%P ')
  47.  
  48. NORMAL_SRCS := $(filter-out %*.c %*.cpp %*.cxx %*.cc %*.c++ %*.C,$(USER_SRCS))
  49. WIDLCARD_SRCS := $(filter %*.c %*.cpp %*.cxx %*.cc %*.c++ %*.C,$(USER_SRCS))
  50. ALL_SRCS := $(NORMAL_SRCS) $(foreach var,$(WIDLCARD_SRCS),$(call FIND_FILES,$(var)))
  51.  
  52. C_SRCS := $(filter %.c,$(ALL_SRCS))
  53. CPP_SRCS := $(filter %.cpp,$(ALL_SRCS))
  54. CXX_SRCS := $(filter %.cxx,$(ALL_SRCS))
  55. CC_SRCS := $(filter %.cc,$(ALL_SRCS))
  56. CPLUSPLUS_SRCS := $(filter %.c++,$(ALL_SRCS))
  57. CPRIME_SRCS := $(filter %.C,$(ALL_SRCS))
  58.  
  59. USER_EDCS := $(subst $(BSLASH),/,$(USER_EDCS))
  60. NORMAL_EDCS := $(filter-out %*.edc,$(USER_EDCS))
  61. WIDLCARD_EDCS := $(filter %*.edc,$(USER_EDCS))
  62. EDCS := $(NORMAL_EDCS) $(foreach var,$(WIDLCARD_EDCS),$(call FIND_FILES,$(var)))
  63.  
  64. NORMAL_POS := $(filter-out %*.po,$(USER_POS))
  65. WIDLCARD_POS := $(filter %*.po,$(USER_POS))
  66. POS := $(NORMAL_POS) $(foreach var,$(WIDLCARD_POS),$(call FIND_FILES,$(var)))
  67.  
  68. LIBPATHS := $(addprefix -L$(PROJ_ROOT)/,$(USER_LIB_DIRS)) \
  69. $(addprefix -L,$(USER_LIB_DIRS_ABS))
  70. LIBS += $(addprefix -l,$(USER_LIBS))
  71. UOBJS := $(addprefix $(PROJ_ROOT)/,$(USER_OBJS)) \
  72. $(USER_OBJS_ABS)
  73.  
  74. M_OPT = -MMD -MP -MF"$(@:%.o=%.d)"
  75.  
  76. FUNC_C2O = $(patsubst %.c,$(OBJ_OUTPUT)/%.o,$(1))
  77. FUNC_CPP2O = $(patsubst %.cpp,$(OBJ_OUTPUT)/%.o,$(1))
  78. FUNC_CXX2O = $(patsubst %.cxx,$(OBJ_OUTPUT)/%.o,$(1))
  79. FUNC_CC2O = $(patsubst %.cc,$(OBJ_OUTPUT)/%.o,$(1))
  80. FUNC_CPLUSPLUS2O = $(patsubst %.c++,$(OBJ_OUTPUT)/%.o,$(1))
  81. FUNC_CPRIME2O = $(patsubst %.C,$(OBJ_OUTPUT)/%.o,$(1))
  82. FUNC_EDC2EDJ = $(patsubst %.edc,$(OUTPUT_DIR)/%.edj,$(1))
  83. FUNC_PO2MO = $(patsubst %.po,$(OUTPUT_DIR)/res/locale/%/LC_MESSAGES/$(subst $(basename $(APPID)).,,$(APPID)).mo,$(notdir $(1)))
  84.  
  85.  
  86. C_OBJS := $(call FUNC_C2O,$(C_SRCS))
  87. CPP_OBJS := $(call FUNC_CPP2O,$(CPP_SRCS))
  88. CXX_OBJS := $(call FUNC_CXX2O,$(CXX_SRCS))
  89. CC_OBJS := $(call FUNC_CC2O,$(CC_SRCS))
  90. CPLUSPLUS_OBJS := $(call FUNC_CPLUSPLUS2O,$(CPLUSPLUS_SRCS))
  91. CPRIME_OBJS := $(call FUNC_CPRIME2O,$(CPRIME_SRCS))
  92. OBJS := $(C_OBJS) $(CPP_OBJS) $(CXX_OBJS) $(CC_OBJS) $(CPLUSPLUS_OBJS) $(CPRIME_OBJS)
  93. EDJ_FILES := $(call FUNC_EDC2EDJ,$(EDCS))
  94. MO_FILES := $(call FUNC_PO2MO,$(POS))
  95. DEPS := $(OBJS:.o=.d)
  96.  
  97.  
  98. ifneq ($(strip $(DEPS)),)
  99. -include $(DEPS)
  100. endif
  101.  
  102. ifeq ($(strip $(APPTYPE)),app)
  103. $(APPFILE) : $(OBJS) $(UOBJS)
  104. @echo ' Building target: $@'
  105. @echo ' Invoking: C/C++ Linker'
  106. @$(MKDIR) $(MKDIR_OP) $(subst $(BSLASH),/,$(@D))
  107. $(CXX) -o "$(APPFILE)" $(OBJS) $(UOBJS) $(LIBPATHS) -Xlinker --as-needed $(LIBS) $(LINK_FLAGS) $(TC_LINKER_MISC) $(RS_LINKER_MISC) -pie -lpthread -Xlinker -rpath="/home/developer/sdk_tools/lib" --sysroot="$(SYSROOT)" -Xlinker --version-script="$(PROJ_PATH)/.exportMap" -L"$(SBI_SYSROOT)/usr/lib" $(RS_LIBRARIES) -Xlinker -rpath="/opt/usr/apps/$(APPID)/lib" -Werror-implicit-function-declaration
  108. @echo ' Finished building target: $@'
  109. endif
  110. ifeq ($(strip $(APPTYPE)),staticLib)
  111. $(APPFILE) : $(OBJS) $(UOBJS)
  112. @echo ' Building target: $@'
  113. @echo ' Invoking: Archive utility'
  114. @$(MKDIR) $(MKDIR_OP) $(subst $(BSLASH),/,$(@D))
  115. $(AR) -r "$(APPFILE)" $(OBJS) $(UOBJS) $(AR_FLAGS)
  116. @echo ' Finished building target: $@'
  117. endif
  118. ifeq ($(strip $(APPTYPE)),sharedLib)
  119. $(APPFILE) : $(OBJS) $(UOBJS)
  120. @echo ' Building target: $@'
  121. @echo ' Invoking: C/C++ Linker'
  122. @$(MKDIR) $(MKDIR_OP) $(subst $(BSLASH),/,$(@D))
  123. $(CXX) -o "$(APPFILE)" $(OBJS) $(UOBJS) $(LIBPATHS) -Xlinker --as-needed $(LIBS) $(LINK_FLAGS) $(TC_LINKER_MISC) $(RS_LINKER_MISC) -shared -lpthread --sysroot="$(SYSROOT)" -L"$(SYSROOT)/usr/lib" $(RS_LIBRARIES)
  124. @echo ' Finished building target: $@'
  125. endif
  126.  
  127.  
  128. ifneq ($(strip $(C_SRCS)),)
  129. CDEFS += $(addprefix -D,$(USER_DEFS))
  130. CDEFS += $(addprefix -U,$(USER_UNDEFS))
  131.  
  132. INCS := $(addprefix -I$(PROJ_ROOT)/,$(USER_INC_DIRS)) \
  133. $(addprefix -I,$(USER_INC_DIRS_ABS)) \
  134. $(addprefix -include$(PROJ_ROOT)/,$(USER_INC_FILES)) \
  135. $(addprefix -include,$(USER_INC_FILES_ABS))
  136.  
  137. $(C_OBJS) : $(OBJ_OUTPUT)/%.o : $(PROJ_ROOT)/%.c $(PLATFORM_INCS_FILE)
  138. @echo ' Building file: $<'
  139. @echo ' Invoking: C Compiler'
  140. @$(MKDIR) $(MKDIR_OP) $(subst $(BSLASH),/,$(@D))
  141. ifeq ($(strip $(APPTYPE)),sharedLib)
  142. $(CC) -c $< -o $@ $(CDEFS) $(INCS) -I"pch" $(COMPILE_FLAGS) $(TC_COMPILER_MISC) $(RS_COMPILER_MISC) -fPIC --sysroot="$(SYSROOT)" -Werror-implicit-function-declaration $(M_OPT) @$(PLATFORM_INCS_FILE)
  143. else
  144. $(CC) -c $< -o $@ $(CDEFS) $(INCS) -I"pch" $(COMPILE_FLAGS) $(TC_COMPILER_MISC) $(RS_COMPILER_MISC) -fPIE --sysroot="$(SYSROOT)" -Werror-implicit-function-declaration $(M_OPT) @$(PLATFORM_INCS_FILE)
  145. endif
  146. @echo ' Finished building: $<'
  147. endif
  148.  
  149. ifneq ($(strip $(CPP_SRCS) $(CXX_SRCS) $(CC_SRCS) $(CPLUSPLUS_SRCS) $(CPRIME_SRCS)),)
  150. CPPDEFS += $(addprefix -D,$(USER_CPP_DEFS))
  151. CPPDEFS += $(addprefix -U,$(USER_CPP_UNDEFS))
  152.  
  153. CPP_INCS := $(addprefix -I$(PROJ_ROOT)/,$(USER_CPP_INC_DIRS)) \
  154. $(addprefix -I,$(USER_CPP_INC_DIRS_ABS)) \
  155. $(addprefix -include$(PROJ_ROOT)/,$(USER_CPP_INC_FILES)) \
  156. $(addprefix -include,$(USER_CPP_INC_FILES_ABS))
  157.  
  158. ifneq ($(strip $(CPP_SRCS)),)
  159. $(CPP_OBJS) : $(OBJ_OUTPUT)/%.o : $(PROJ_ROOT)/%.cpp $(PLATFORM_INCS_FILE)
  160. @echo ' Building file: $<'
  161. @echo ' Invoking: C++ Compiler'
  162. @$(MKDIR) $(MKDIR_OP) $(subst $(BSLASH),/,$(@D))
  163. ifeq ($(strip $(APPTYPE)),sharedLib)
  164. $(CXX) -c $< -o $@ $(CPPDEFS) $(CPP_INCS) -I"pch" $(CPP_COMPILE_FLAGS) $(TC_COMPILER_MISC) $(RS_COMPILER_MISC) -fPIC --sysroot="$(SYSROOT)" -Werror-implicit-function-declaration $(M_OPT) @$(PLATFORM_INCS_FILE)
  165. else
  166. $(CXX) -c $< -o $@ $(CPPDEFS) $(CPP_INCS) -I"pch" $(CPP_COMPILE_FLAGS) $(TC_COMPILER_MISC) $(RS_COMPILER_MISC) -fPIE --sysroot="$(SYSROOT)" -Werror-implicit-function-declaration $(M_OPT) @$(PLATFORM_INCS_FILE)
  167. endif
  168. @echo ' Finished building: $<'
  169. endif
  170.  
  171. ifneq ($(strip $(CXX_SRCS)),)
  172. $(CXX_OBJS) : $(OBJ_OUTPUT)/%.o : $(PROJ_ROOT)/%.cxx $(PLATFORM_INCS_FILE)
  173. @echo ' Building file: $<'
  174. @echo ' Invoking: C++ Compiler'
  175. @$(MKDIR) $(MKDIR_OP) $(subst $(BSLASH),/,$(@D))
  176. ifeq ($(strip $(APPTYPE)),sharedLib)
  177. $(CXX) -c $< -o $@ $(CPPDEFS) $(CPP_INCS) -I"pch" $(CPP_COMPILE_FLAGS) $(TC_COMPILER_MISC) $(RS_COMPILER_MISC) -fPIC --sysroot="$(SYSROOT)" -Werror-implicit-function-declaration $(M_OPT) @$(PLATFORM_INCS_FILE)
  178. else
  179. $(CXX) -c $< -o $@ $(CPPDEFS) $(CPP_INCS) -I"pch" $(CPP_COMPILE_FLAGS) $(TC_COMPILER_MISC) $(RS_COMPILER_MISC) -fPIE --sysroot="$(SYSROOT)" -Werror-implicit-function-declaration $(M_OPT) @$(PLATFORM_INCS_FILE)
  180. endif
  181. @echo ' Finished building: $<'
  182. endif
  183.  
  184. ifneq ($(strip $(CC_SRCS)),)
  185. $(CC_OBJS) : $(OBJ_OUTPUT)/%.o : $(PROJ_ROOT)/%.cc $(PLATFORM_INCS_FILE)
  186. @echo ' Building file: $<'
  187. @echo ' Invoking: C++ Compiler'
  188. @$(MKDIR) $(MKDIR_OP) $(subst $(BSLASH),/,$(@D))
  189. ifeq ($(strip $(APPTYPE)),sharedLib)
  190. $(CXX) -c $< -o $@ $(CPPDEFS) $(CPP_INCS) -I"pch" $(CPP_COMPILE_FLAGS) $(TC_COMPILER_MISC) $(RS_COMPILER_MISC) -fPIC --sysroot="$(SYSROOT)" -Werror-implicit-function-declaration $(M_OPT) @$(PLATFORM_INCS_FILE)
  191. else
  192. $(CXX) -c $< -o $@ $(CPPDEFS) $(CPP_INCS) -I"pch" $(CPP_COMPILE_FLAGS) $(TC_COMPILER_MISC) $(RS_COMPILER_MISC) -fPIE --sysroot="$(SYSROOT)" -Werror-implicit-function-declaration $(M_OPT) @$(PLATFORM_INCS_FILE)
  193. endif
  194. @echo ' Finished building: $<'
  195. endif
  196.  
  197. ifneq ($(strip $(CPLUSPLUS_SRCS)),)
  198. $(CPLUSPLUS_OBJS) : $(OBJ_OUTPUT)/%.o : $(PROJ_ROOT)/%.c++ $(PLATFORM_INCS_FILE)
  199. @echo ' Building file: $<'
  200. @echo ' Invoking: C++ Compiler'
  201. @$(MKDIR) $(MKDIR_OP) $(subst $(BSLASH),/,$(@D))
  202. ifeq ($(strip $(APPTYPE)),sharedLib)
  203. $(CXX) -c $< -o $@ $(CPPDEFS) $(CPP_INCS) -I"pch" $(CPP_COMPILE_FLAGS) $(TC_COMPILER_MISC) $(RS_COMPILER_MISC) -fPIC --sysroot="$(SYSROOT)" -Werror-implicit-function-declaration $(M_OPT) @$(PLATFORM_INCS_FILE)
  204. else
  205. $(CXX) -c $< -o $@ $(CPPDEFS) $(CPP_INCS) -I"pch" $(CPP_COMPILE_FLAGS) $(TC_COMPILER_MISC) $(RS_COMPILER_MISC) -fPIE --sysroot="$(SYSROOT)" -Werror-implicit-function-declaration $(M_OPT) @$(PLATFORM_INCS_FILE)
  206. endif
  207. @echo ' Finished building: $<'
  208. endif
  209.  
  210. ifneq ($(strip $(CPRIME_SRCS)),)
  211. $(CPRIME_OBJS) : $(OBJ_OUTPUT)/%.o : $(PROJ_ROOT)/%.C $(PLATFORM_INCS_FILE)
  212. @echo ' Building file: $<'
  213. @echo ' Invoking: C++ Compiler'
  214. @$(MKDIR) $(MKDIR_OP) $(subst $(BSLASH),/,$(@D))
  215. ifeq ($(strip $(APPTYPE)),sharedLib)
  216. $(CXX) -c $< -o $@ $(CPPDEFS) $(CPP_INCS) -I"pch" $(CPP_COMPILE_FLAGS) $(TC_COMPILER_MISC) $(RS_COMPILER_MISC) -fPIC --sysroot="$(SYSROOT)" -Werror-implicit-function-declaration $(M_OPT) @$(PLATFORM_INCS_FILE)
  217. else
  218. $(CXX) -c $< -o $@ $(CPPDEFS) $(CPP_INCS) -I"pch" $(CPP_COMPILE_FLAGS) $(TC_COMPILER_MISC) $(RS_COMPILER_MISC) -fPIE --sysroot="$(SYSROOT)" -Werror-implicit-function-declaration $(M_OPT) @$(PLATFORM_INCS_FILE)
  219. endif
  220. @echo ' Finished building: $<'
  221. endif
  222.  
  223. endif
  224.  
  225.  
  226. $(OBJ_OUTPUT) :
  227. @echo ' Building directory: $@'
  228. @$(MKDIR) $(MKDIR_OP) $(OBJ_OUTPUT)
  229.  
  230. preproc : $(OBJ_OUTPUT)
  231. ifneq ($(strip $(PREBUILD_COMMAND)),)
  232. ifneq ($(strip $(PREBUILD_DESC)),)
  233. @echo $(PREBUILD_DESC)
  234. endif
  235. @echo $(shell $(PREBUILD_COMMAND))
  236. endif
  237.  
  238.  
  239. postproc :
  240. ifneq ($(strip $(POSTBUILD_COMMAND)),)
  241. ifneq ($(strip $(POSTBUILD_DESC)),)
  242. @echo $(POSTBUILD_DESC)
  243. endif
  244. @echo $(shell $(POSTBUILD_COMMAND))
  245. endif
  246.  
  247. ifneq ($(strip $(PLATFORM_INCS)),)
  248. $(PLATFORM_INCS_FILE) : $(OBJ_OUTPUT)
  249. @echo ' Building inc file: $@'
  250. ifneq ($(findstring Linux,$(OS_NAME)),)
  251. @echo $(PLATFORM_INCS) > $@
  252. else
  253. ifneq ($(findstring 3.82,$(MAKE_VERSION)),)
  254. $(file > $@,$(PLATFORM_INCS))
  255. else
  256. @echo $(PLATFORM_INCS) > $@
  257. endif
  258. endif
  259. endif
  260.  
  261. ALL_EDJ_FILES :=
  262.  
  263. define EDJ_PROC
  264. ALL_EDCS := $$(subst $(BSLASH),/,$$($(2)))
  265. NORMAL_EDCS := $$(filter-out %*.edc,$$(ALL_EDCS))
  266. WIDLCARD_EDCS := $$(filter %*.edc,$$(ALL_EDCS))
  267. EDCS := $$(NORMAL_EDCS) $$(foreach var_edc,$$(WIDLCARD_EDCS),$$(call FIND_FILES,$$(var_edc)))
  268.  
  269. ifneq ($$(strip $$(EDCS)),)
  270. EDJ_FILES := $$(call FUNC_EDC2EDJ,$$(EDCS))
  271.  
  272. ALL_EDJ_FILES += $$(EDJ_FILES)
  273.  
  274. EDC_$(1)_COMPILER_FLAGS := -id "$$(SDK_TOOLPATH)/enventor/share/enventor/images"
  275. EDC_$(1)_COMPILER_FLAGS += -sd "$$(SDK_TOOLPATH)/enventor/share/enventor/sounds"
  276. EDC_$(1)_COMPILER_FLAGS += -fd "$$(SDK_TOOLPATH)/enventor/share/enventor/fonts"
  277.  
  278. ifneq ($$(strip $(3)),)
  279. EDC_$(1)_COMPILER_FLAGS += $$(addprefix -id $$(PROJ_PATH)/,$$($(3)))
  280. endif
  281. ifneq ($$(strip $(4)),)
  282. EDC_$(1)_COMPILER_FLAGS += $$(addprefix -id ,$$($(4)))
  283. endif
  284. ifneq ($$(strip $(5)),)
  285. EDC_$(1)_COMPILER_FLAGS += $$(addprefix -sd $$(PROJ_PATH)/,$$($(5)))
  286. endif
  287. ifneq ($$(strip $(6)),)
  288. EDC_$(1)_COMPILER_FLAGS += $$(addprefix -sd ,$$($(6)))
  289. endif
  290. ifneq ($$(strip $(7)),)
  291. EDC_$(1)_COMPILER_FLAGS += $$(addprefix -fd $$(PROJ_PATH)/,$$($(7)))
  292. endif
  293. ifneq ($$(strip $(8)),)
  294. EDC_$(1)_COMPILER_FLAGS += $$(addprefix -fd ,$$($(8)))
  295. endif
  296.  
  297. $$(EDJ_FILES) : $$(OUTPUT_DIR)/%.edj : $$(PROJ_ROOT)/%.edc
  298. @echo ' Building file: $$<'
  299. @echo ' Invoking: EDC Resource Compiler'
  300. @$$(MKDIR) $$(MKDIR_OP) $$(subst $$(BSLASH),/,$$(@D))
  301. $$(EDJE_CC) $$(EDC_$(1)_COMPILER_FLAGS) $$(CDEFS) "$$<" "$$@"
  302. @echo ' Finished building: $$<'
  303. endif
  304. endef
  305.  
  306. # Global EDCs
  307. ifneq ($(strip $(USER_EDCS)),)
  308. $(eval $(call EDJ_PROC,,USER_EDCS,USER_EDCS_IMAGE_DIRS,USER_EDCS_IMAGE_DIRS_ABS,USER_EDCS_SOUND_DIRS,USER_EDCS_SOUND_DIRS_ABS,USER_EDCS_FONT_DIRS,USER_EDCS_FONT_DIRS_ABS))
  309. endif
  310.  
  311. # Individual EDCs
  312. ifneq ($(strip $(USER_EXT_EDC_KEYS)),)
  313. $(foreach var,$(USER_EXT_EDC_KEYS),$(eval $(call EDJ_PROC,$(var),USER_EXT_$(var)_EDCS,USER_EXT_$(var)_EDCS_IMAGE_DIRS,USER_EXT_$(var)_EDCS_IMAGE_DIRS_ABS,USER_EXT_$(var)_EDCS_SOUND_DIRS,USER_EXT_$(var)_EDCS_SOUND_DIRS_ABS,USER_EXT_$(var)_EDCS_FONT_DIRS,USER_EXT_$(var)_EDCS_FONT_DIRS_ABS)))
  314. endif
  315.  
  316.  
  317. ifneq ($(strip $(POS)),)
  318. define MO_RULE
  319. $(call FUNC_PO2MO,$(1)) : $(PROJ_ROOT)/$(1)
  320. @echo ' Building file: $$<'
  321. @echo ' Invoking: msgfmt String Formatter'
  322. @$$(MKDIR) $$(MKDIR_OP) $$(subst $$(BSLASH),/,$$(@D))
  323. $$(MSGFMT) -o $$@ $$<
  324. @echo ' Finished building: $$<'
  325. endef
  326.  
  327. $(foreach var,$(POS),$(eval $(call MO_RULE,$(var))))
  328. endif
  329.  
  330.  
  331. secondary-outputs : $(ALL_EDJ_FILES) $(MO_FILES)
  332.  
  333. -include appendix.mk
  334.  
  335.  
  336. app_build : preproc $(APPFILE) secondary-outputs postproc
  337.  
  338. app_clean :
  339. rm -f "$(APPFILE)"
  340. rm -rf "$(OUTPUT_DIR)"
  341.  
  342. make_version :
  343. @echo $(BUILD_SCRIPT_VERSION)