Files
pcas/configure/RULES_ARCHS
1999-10-12 20:28:55 +00:00

92 lines
2.2 KiB
Plaintext

#
# $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