# # $Id$ # ifndef T_A all: install ACTIONS += inc ACTIONS += build ACTIONS += install ACTIONS += buildInstall ACTIONS += depends ACTIONS += rebuild actionPart = $(word 1, $(subst $(DIVIDER), ,$@)) archPart = $(word 2, $(subst $(DIVIDER), ,$@)) # # hostActionArchTargets # hostArchs = $(HOST_ARCH) hostActionArchTargets = $(foreach x, $(ACTIONS),\ $(foreach arch,$(hostArchs), $(x)$(DIVIDER)$(arch))) ifeq (Makefile, $(wildcard Makefile)) hostDirs = $(addprefix O.,$(hostArchs)) $(hostActionArchTargets) :: $(hostDirs) $(MAKE) -C O.$(archPart) -f ../Makefile TOP=../$(TOP) T_A=$(archPart) $(actionPart) $(hostArchs) : % :: O.% $(MAKE) -C O.$@ -f ../Makefile TOP=../$(TOP) T_A=$@ else $(hostActionArchTargets) : $(hostArchs) : endif # # crossActionArchTargets # crossArchs = $(filter-out $(hostArchs),$(BUILD_ARCHS)) crossActionArchTargets = $(foreach x, $(ACTIONS), \ $(foreach arch, $(CROSS_COMPILER_TARGET_ARCHS), $(x)$(DIVIDER)$(arch))) ifeq (Makefile, $(wildcard Makefile)) crossDirs = $(addprefix O.,$(crossArchs)) $(crossActionArchTargets) :: $(crossDirs) $(MAKE) -C O.$(archPart) -f ../Makefile TOP=../$(TOP) T_A=$(archPart) $(actionPart) $(crossArchs) : % :: O.% $(MAKE) -C O.$@ -f ../Makefile TOP=../$(TOP) T_A=$@ else $(crossActionArchTargets) : $(crossArchs) : endif $(hostDirs) :: $(PERL) $(TOOLS)/makeMakefile.pl $@ $(TOP) $(crossDirs) :: $(PERL) $(TOOLS)/makeMakefile.pl $@ $(TOP) # # host/cross action targets # $(ACTIONS) : % : %$(DIVIDER)host %$(DIVIDER)cross HostActionTargets = $(foreach x, $(ACTIONS) clean, $(x)$(DIVIDER)host) CrossActionTargets = $(foreach x, $(ACTIONS) clean, $(x)$(DIVIDER)cross) $(HostActionTargets) : %$(DIVIDER)host : $(addprefix %$(DIVIDER), $(hostArchs)) $(CrossActionTargets) : %$(DIVIDER)cross : $(addprefix %$(DIVIDER), $(crossArchs)) % : %$(DIVIDER)host %$(DIVIDER)cross # # arch targets # host : $(hostArchs) cross : $(crossArchs) # # special clean rule # clean :: $(RMDIR) $(hostDirs) $(crossDirs) clean$(DIVIDER)% :: $(RMDIR) O.$* .PHONY :: $(HostActionTargets) .PHONY :: $(CrossActionTargets) .PHONY :: $(crossActionArchTargets) .PHONY :: $(hostActionArchTargets) .PHONY :: $(hostArchs) $(crossArchs) .PHONY :: $(ACTIONS) clean all host cross endif