22 CREATABLEPATHS:= |
22 CREATABLEPATHS:= |
23 CLEANTARGETS:= |
23 CLEANTARGETS:= |
24 |
24 |
25 .PHONY:: PP_EXPORTS |
25 .PHONY:: PP_EXPORTS |
26 |
26 |
|
27 ifneq ($(filter win,$(HOSTPLATFORM)),) |
|
28 SBS:=$(subst \,/,$(SBS_HOME)/bin/sbs.bat) |
|
29 else |
|
30 SBS:=$(SBS_HOME)/bin/sbs |
|
31 endif |
27 |
32 |
28 SBS := $(subst \,/,$(SBS_HOME)/bin/sbs) |
|
29 |
33 |
30 define doexports |
34 define doexports |
31 PP_EXPORTS:: |
35 PP_EXPORTS:: |
32 $(call startrule,makefile_generation_exports) \ |
36 $(call startrule,makefile_generation_exports) \ |
33 export TALON_DESCRAMBLE=0; \ |
37 $(SBS) --toolcheck=off --export-only $(component_list) $(config_list) -f- -m $(MAKEFILE_PATH).exports $(CLI_OPTIONS) \ |
34 $(SBS) --export-only $(component_list) $(config_list) -f- -m $(SBS_BUILD_DIR)/makefiles_export.mk $(cli_options) --mo=DESCRAMBLE:= --mo=TALON_DESCRAMBLE:=0 | $(GNUSED) 's#]I*]>#XXX#' \ |
|
35 $(call endrule,makefile_generation_exports) |
38 $(call endrule,makefile_generation_exports) |
36 |
39 |
37 CLEANTARGETS:=$$(CLEANTARGETS) $(SBS_BUILD_DIR)/makefiles_export.mk |
40 CLEANTARGETS:=$$(CLEANTARGETS) $(MAKEFILE_PATH).exports |
38 endef |
41 endef |
39 |
42 |
40 # Generate makefiles for particular bldinf |
43 # Generate makefiles for particular bldinf |
41 # $(1) = source target source target...... |
44 # $(1) = source target source target...... |
42 define generate_makefiles |
45 define generate_makefiles |
43 |
46 |
44 $$(info XXX component_list=$(COMPONENT_PATHS) makefile=$(MAKEFILE_PATH)) |
47 ALL:: $(MAKEFILE_PATH) |
45 |
48 |
46 ifeq ($(NO_BUILD),1) |
49 $(MAKEFILE_PATH): $(COMPONENT_PATHS) $(if $(DOEXPORT),| PP_EXPORTS ) |
47 ALL:: $(MAKEFILE_PATH) |
|
48 else |
|
49 include $(MAKEFILE_PATH) |
|
50 endif |
|
51 |
|
52 $(MAKEFILE_PATH): $(COMPONENT_PATHS) | PP_EXPORTS |
|
53 $(call startrule,makefile_generation) \ |
50 $(call startrule,makefile_generation) \ |
54 export TALON_DESCRAMBLE=0; \ |
51 $(SBS) --noexport --toolcheck=off -n $(CLI_OPTIONS) $(component_list) $(config_list) -m $$@ -f- \ |
55 $(SBS) --toolcheck=off -n $(CLI_OPTIONS) $(component_list) $(config_list) -m $$@ -f- --mo=DESCRAMBLE:= --mo=TALON_DESCRAMBLE:=0 | $(GNUSED) 's#\]\][>]#XXX#' && \ |
|
56 $(MAKE) -j 8 -f $$@.resource_deps \ |
|
57 $(call endrule,makefile_generation) |
52 $(call endrule,makefile_generation) |
58 |
53 |
59 CLEANTARGETS:=$$(CLEANTARGETS) $(MAKEFILE_PATH) |
54 CLEANTARGETS:=$$(CLEANTARGETS) $(MAKEFILE_PATH) |
60 |
55 |
61 endef |
56 endef |
62 |
57 |
63 # Create config list for commands |
58 # Create config list for commands |
64 config_list:=$(addprefix -c ,$(CONFIGS)) |
59 config_list:=$(addprefix -c ,$(CONFIGS)) |
65 component_list:=$(addprefix -b ,$(COMPONENT_PATHS)) |
60 component_list:=$(addprefix -b ,$(COMPONENT_PATHS)) |
66 $(info COMFIG_LIST: $(config_list)) |
|
67 |
61 |
68 $(eval $(doexports)) |
62 $(if $(FLMDEBUG),$(info <debug>build.flm: configlist: $(config_list)</debug>)) |
|
63 |
|
64 # Do exports only if asked. This doesn't work brilliantly in emake |
|
65 # since exports are often duplicated in some components - leads to conflicts |
|
66 # and rebuilds. Better to export before trying to do parallel parsing at all. |
|
67 $(if $(DOEXPORT),$(eval $(doexports)),$(if $(FLMDEBUG),$(info <debug>build.flm: Exports off </debug>))) |
69 |
68 |
70 # Create the Makefiles |
69 # Create the Makefiles |
71 $(eval $(call generate_makefiles)) |
70 $(eval $(call generate_makefiles)) |
72 |
71 |
|
72 CREATABLEPATHS:=$(CREATABLEPATHS) $(dir $(MAKEFILE_PATH)) |
|
73 |
73 $(eval $(call GenerateStandardCleanTarget,$(CLEANTARGETS),$(CREATABLEPATHS),)) |
74 $(eval $(call GenerateStandardCleanTarget,$(CLEANTARGETS),$(CREATABLEPATHS),)) |
74 $(call makepath,$(CREATABLEPATHS)) |
75 $(call makepath,$(CREATABLEPATHS)) |
75 |
76 |