From 9ea3832c6cec1db5fc6c72862e2c9fad5e738431 Mon Sep 17 00:00:00 2001 From: Ralf Corsepius Date: Sat, 15 Jun 2002 05:29:18 +0000 Subject: Copied over from the automake/ --- c/src/exec/automake/compile.am | 256 ++++++++++++++++++++++++++++++++++++++++ c/src/exec/automake/lib.am | 22 ++++ c/src/exec/automake/local.am | 38 ++++++ c/src/exec/automake/multilib.am | 33 ++++++ c/src/exec/automake/subdirs.am | 36 ++++++ cpukit/automake/compile.am | 256 ++++++++++++++++++++++++++++++++++++++++ cpukit/automake/lib.am | 22 ++++ cpukit/automake/local.am | 38 ++++++ cpukit/automake/multilib.am | 33 ++++++ cpukit/automake/subdirs.am | 36 ++++++ 10 files changed, 770 insertions(+) create mode 100644 c/src/exec/automake/compile.am create mode 100644 c/src/exec/automake/lib.am create mode 100644 c/src/exec/automake/local.am create mode 100644 c/src/exec/automake/multilib.am create mode 100644 c/src/exec/automake/subdirs.am create mode 100644 cpukit/automake/compile.am create mode 100644 cpukit/automake/lib.am create mode 100644 cpukit/automake/local.am create mode 100644 cpukit/automake/multilib.am create mode 100644 cpukit/automake/subdirs.am diff --git a/c/src/exec/automake/compile.am b/c/src/exec/automake/compile.am new file mode 100644 index 0000000000..22eb1bd2bc --- /dev/null +++ b/c/src/exec/automake/compile.am @@ -0,0 +1,256 @@ +## +## $Id$ +## + +## ------------------------------------------------------------------------- +## NOTE: This file is rather immature and has to be considered to be +## almost experimental. +## +## Expect frequent changes -- It deserves to be cleaned up :( +## ------------------------------------------------------------------------- + +## The section below is based on make/compilers/gcc-target-default.cfg +## used in former versions of RTEMS. + +## +## Set up the flags for the toolchains: +## +## We are considering 3 different building schemes here: +## * Using gcc's being able to accept -specs (aka gcc-2.8 building scheme) +## * Using gcc's not being able to accept -specs (aka gcc-2.7.2 building +## scheme) +## * Using third party toolchains (aka non-gcc building scheme) +## +## Automake conditionals in use: +## RTEMS_USE_GCC .. if we are using GCC + +## NOTES: +## * The gcc-2.8 building scheme is the nominal building scheme and +## is actively supported. +## * The non-gcc building scheme requires manually setting up environment +## variables and is hardly tested at all + +## CFLAGS_OPTIMIZE_V, CFLAGS_DEBUG_V, CFLAGS_PROFILE_V are the values we +## would want the corresponding macros to be set to. +## +## CFLAGS_OPTIMIZE, CFLAGS_DEBUG, CFLAGS_PROFILE are set by the +## 'VARIANT=' targets to their _V values. + +## XCPPFLAGS, XCFLAGS, XCXXFLAGS, XASFLAGS +## are used to add flags from the shell +## cf. make.info ("Implicit rules/variables" for details) + +if RTEMS_USE_GCC +## All the stuff below is specific to gcc + +CFLAGS_DEFAULT=-g -Wall +## gcc >= 2.8.x +GCCSPECS = $(GCC_SPECS) $(RTEMS_BSP_SPECS) +else +## fall back to the old style compilers/*.cfg +## CONFIG.CC is supposed to be provided by .cfg +include $(CONFIG.CC) +endif # RTEMS_USE_GCC + +DEFS = @DEFS@ + +CPPFLAGS = @CPPFLAGS@ $(CPU_DEFINES) \ + $(DEFINES) $(XCPPFLAGS) $(CPPFLAGS_GCC) +CFLAGS = $(CFLAGS_DEFAULT) $(CPU_CFLAGS) $(XCFLAGS) +CXXFLAGS = $(CFLAGS_DEFAULT) $(CPU_CFLAGS) $(XCXXFLAGS) +ASFLAGS = $(CPU_ASFLAGS) $(CPU_CFLAGS) $(XASFLAGS) + +LINK_LIBS = $(LD_LIBS) + +## FIXME: This doesn't seem to be correct +# when debugging, optimize flag: typically empty +# some compilers do allow optimization with their "-g" +CFLAGS_DEBUG_OPTIMIZE_V=-g +CXXFLAGS_DEBUG_OPTIMIZE_V=-g +LDFLAGS_DEBUG_V = + +# profile flag; use gprof(1) +CFLAGS_PROFILE_V=-pg +CXXFLAGS_PROFILE_V=-pg +LDFLAGS_PROFILE_V = + +# List of library paths without -L +LD_PATHS= $(PROJECT_RELEASE)/lib + +# ld flag for incomplete link +LDFLAGS_INCOMPLETE = -r + +# ld flags for profiling, debugging +LDFLAGS=$(LDFLAGS_PROFILE) $(LDFLAGS_DEBUG) $(LD_PATHS:%=-L %) + +# +# Client compiler and support tools +# + +# +# How to compile stuff into ${ARCH} subdirectory +# + +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ + +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +CXXLD = $(CXX) +CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ + +AS = $(CC) +ASCOMPILE = $(AS) $(AM_ASFLAGS) $(ASFLAGS) + +${ARCH}/%.o: %.c + ${COMPILE} -o $@ -c $< + +${ARCH}/%.o: %.cc + ${CXXCOMPILE} -o $@ -c $< + +${ARCH}/%.o: %.cpp + ${CXXCOMPILE} -o $@ -c $< + +${ARCH}/%.o: %.cxx + ${CXXCOMPILE} -o $@ -c $< + +${ARCH}/%.o: %.C + ${CXXCOMPILE} -o $@ -c $< + +${ARCH}/%.o: %.S + ${ASCOMPILE} -DASM -o $@ -c $< + +# Make foo.rel from foo.o +${ARCH}/%.rel: ${ARCH}/%.o + ${make-rel} + +# Dependency files for use by gmake +# NOTE: we don't put them into $(ARCH) +# so that 'make clean' doesn't blow it away + +DEPEND=Depends-${ARCH} + +CLEAN_DEPEND=$(DEPEND).tmp +CLOBBER_DEPEND=$(DEPEND) + +# We deliberately don't have anything depend on the +# $(DEPEND) file; otherwise it will get rebuilt even +# on 'make clean' +# + +## HACK: Specific to gcc +## FIXME: The approach below is known to be conceptionally broken. +depend-am: $(C_FILES) $(CC_FILES) $(S_FILES) +## Use gcc -M to generate dependencies +## Replace foo.o with $(ARCH)/foo.o +## Replace $(ARCH) value with string $(ARCH) +## so that it will for debug and profile cases + $(COMPILE) -M $^ | \ + sed -e 's?^\(.*\)\.o[ ]*:?$$(ARCH)/\1.o:?' \ + -e 's?$(ARCH)/?$$(ARCH)/?' >$(DEPEND).tmp + mv $(DEPEND).tmp $(DEPEND) +depend: depend-am + +# pull in dependencies if they exist +ifeq (${DEPEND},$(wildcard ${DEPEND})) +include ${DEPEND} +@ENDIF@ + + +# spell out all the LINK_FILE's, rather than using -lbsp, so +# that $(LINK_FILES) can be a dependency + +LINK_OBJS = \ + $(OBJS) \ + $(MANAGERS_NOT_WANTED:%=$(PROJECT_RELEASE)/lib/no-%$(LIB_VARIANT).rel) + +LINK_FILES =\ + $(START_FILE) \ + $(OBJS) \ + $(MANAGERS_NOT_WANTED:%=$(PROJECT_RELEASE)/lib/no-%$(LIB_VARIANT).rel) + +if RTEMS_USE_GCC +## gcc >= 2.8 +define make-rel + $(LINK) -qnolinkcmds -nostdlib -Wl,-r $(XLDFLAGS) $^ +endef +else +## non-gcc +define make-rel + $(LINK) $(XLDFLAGS) $^ +endef +endif + +## ------------------------------------------------------------------------- + +## translate VARIANT into VARIANT_V +VARIANT = OPTIMIZE + +VARIANT_OPTIMIZE_V = OPTIMIZE +VARIANT_DEBUG_V = DEBUG +VARIANT_PROFILE_V = PROFILE +VARIANT_optimize_V = OPTIMIZE +VARIANT_debug_V = DEBUG +VARIANT_profile_V = PROFILE + +VARIANT_V = $(VARIANT_$(VARIANT)_V) + +## Setup the variant build subdirectory +ARCH_OPTIMIZE_V = o-optimize +ARCH_DEBUG_V = o-debug +ARCH_PROFILE_V = o-profile + +ARCH__V = $(ARCH_OPTIMIZE_V) +ARCH = $(ARCH_$(VARIANT_V)_V) + +## Setup the library suffix +LIBSUFFIX_OPTIMIZE_V = +LIBSUFFIX_DEBUG_V = _g +LIBSUFFIX_PROFILE_V = _p +LIBSUFFIX__V = $(LIBSUFFIX_OPTIMIZE_V) + +LIB_VARIANT = $(LIBSUFFIX_$(VARIANT_V)_V) +LIBSUFFIX_VA = $(LIB_VARIANT).a + +## These are supposed to be set in make/custom/.cfg +## CFLAGS_OPTIMIZE_V = +## CFLAGS_DEBUG_V = +## CFLAGS_PROFILE_V = +CFLAGS__V = $(CFLAGS_OPTIMIZE_V) + +## ------------------------------------------------------------------------ +## Setup hard-coded flags +if RTEMS_USE_GCC +## gcc >= gcc-2.8 +RTEMS_CFLAGS_OPTIMIZE_V = +RTEMS_CFLAGS_DEBUG_V = -qrtems_debug -Wno-unused +RTEMS_CFLAGS_PROFILE_V = + +## non-gcc +## We can't guess what flags might be required here. +## Pass the values from the environment if you want to apply them. +endif +RTEMS_CFLAGS__V = $(RTEMS_CFLAGS_OPTIMIZE_V) + +## ------------------------------------------------------------------------- + +CC = @CC@ $(GCCSPECS) +CXX = @CXX@ $(GCCSPECS) +CPP = @CPP@ $(GCCSPECS) + +LD = @LD@ +OBJCOPY = @OBJCOPY@ +NM = @NM@ +SIZE = @SIZE@ +STRIP = @STRIP@ + + +## +AM_CPPFLAGS = $(RTEMS_CPPFLAGS) + +AM_CFLAGS = $(RTEMS_CFLAGS_$(VARIANT_V)_V) $(CFLAGS_$(VARIANT_V)_V) +AM_CXXFLAGS = $(RTEMS_CFLAGS_$(VARIANT_V)_V) $(CFLAGS_$(VARIANT_V)_V) diff --git a/c/src/exec/automake/lib.am b/c/src/exec/automake/lib.am new file mode 100644 index 0000000000..7cb9db1148 --- /dev/null +++ b/c/src/exec/automake/lib.am @@ -0,0 +1,22 @@ +## +## $Id$ +## + +## LD = @LD@ +AR = @AR@ +RANLIB = @RANLIB@ + +ARFLAGS = ruv + +define make-library +$(RM) $@ +$(AR) $(ARFLAGS) $@ $^ +$(RANLIB) $@ +endef + +$(PROJECT_RELEASE)/lib$(MULTISUBDIR): + @$(mkinstalldirs) $@ + +TMPINSTALL_FILES = $(PROJECT_RELEASE)/lib$(MULTISUBDIR) + +.PRECIOUS: $(LIB) diff --git a/c/src/exec/automake/local.am b/c/src/exec/automake/local.am new file mode 100644 index 0000000000..ca146e837e --- /dev/null +++ b/c/src/exec/automake/local.am @@ -0,0 +1,38 @@ +## $Id$ + +debug: + @echo + @echo "\"make debug\" is obsolete, instead use:" + @echo " make VARIANT=DEBUG" + @echo + +.PHONY: debug + +profile: + @echo + @echo "\"make profile\" is obsolete, instead use:" + @echo " make VARIANT=PROFILE" + @echo + +.PHONY: profile + +preinstall-am: $(PREINSTALL_FILES) +preinstall: preinstall-am +.PHONY: preinstall preinstall-am + +depend-am: +depend: depend-am +.PHONY: depend depend-am + +${ARCH}: + mkdir ${ARCH} + +clean-local: + $(RM) -r o-optimize o-debug o-profile $(CLEANDIRS) + $(RM) Depends-o-optimize.tmp Depends-o-debug.tmp Depends-o-profile.tmp + +distclean-local: + $(RM) Depends-o-optimize Depends-o-debug Depends-o-profile + +PROJECT_TOOLS = $(PROJECT_RELEASE)/build-tools + diff --git a/c/src/exec/automake/multilib.am b/c/src/exec/automake/multilib.am new file mode 100644 index 0000000000..37a6086616 --- /dev/null +++ b/c/src/exec/automake/multilib.am @@ -0,0 +1,33 @@ +## $Id$ + +if MULTILIB +MULTISRCTOP = +MULTIDIRS = +MULTIDO = true +MULTICLEAN = true +endif + +# Multilib support rules +.PHONY: all-multi mostlyclean-multi clean-multi distclean-multi \ + maintainer-clean-multi + +if MULTILIB +all-recursive: all-multi +mostlyclean-recursive: mostlyclean-multi +clean-recursive: clean-multi +distclean-recursive: distclean-multi +maintainer-clean-recursive: maintainer-clean-multi + +all-multi: + $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do +mostlyclean-multi: + $(MULTICLEAN) $(AM_MAKEFLAGS) DO=mostlyclean multi-clean +clean-multi: + $(MULTICLEAN) $(AM_MAKEFLAGS) DO=clean multi-clean +distclean-multi: + $(MULTICLEAN) $(AM_MAKEFLAGS) DO=distclean multi-clean +maintainer-clean-multi: + $(MULTICLEAN) $(AM_MAKEFLAGS) DO=maintainer-clean multi-clean +else +include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg +endif diff --git a/c/src/exec/automake/subdirs.am b/c/src/exec/automake/subdirs.am new file mode 100644 index 0000000000..3d54285dec --- /dev/null +++ b/c/src/exec/automake/subdirs.am @@ -0,0 +1,36 @@ +## $Id$ + +## Borrowed from automake-1.4 and adapted to RTEMS + +## NOTE: This is a temporary work-around to keep +## RTEMS's non automake standard make targets working. +## Once automake is fully integrated these make targets +## and this file will probably be removed + +depend-recursive \ +preinstall-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ +## This trick allows "-k" to keep its natural meaning when running a +## recursive rule. + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +preinstall: preinstall-recursive +.PHONY: preinstall-recursive + +depend: depend-recursive +.PHONY: depend-recursive diff --git a/cpukit/automake/compile.am b/cpukit/automake/compile.am new file mode 100644 index 0000000000..22eb1bd2bc --- /dev/null +++ b/cpukit/automake/compile.am @@ -0,0 +1,256 @@ +## +## $Id$ +## + +## ------------------------------------------------------------------------- +## NOTE: This file is rather immature and has to be considered to be +## almost experimental. +## +## Expect frequent changes -- It deserves to be cleaned up :( +## ------------------------------------------------------------------------- + +## The section below is based on make/compilers/gcc-target-default.cfg +## used in former versions of RTEMS. + +## +## Set up the flags for the toolchains: +## +## We are considering 3 different building schemes here: +## * Using gcc's being able to accept -specs (aka gcc-2.8 building scheme) +## * Using gcc's not being able to accept -specs (aka gcc-2.7.2 building +## scheme) +## * Using third party toolchains (aka non-gcc building scheme) +## +## Automake conditionals in use: +## RTEMS_USE_GCC .. if we are using GCC + +## NOTES: +## * The gcc-2.8 building scheme is the nominal building scheme and +## is actively supported. +## * The non-gcc building scheme requires manually setting up environment +## variables and is hardly tested at all + +## CFLAGS_OPTIMIZE_V, CFLAGS_DEBUG_V, CFLAGS_PROFILE_V are the values we +## would want the corresponding macros to be set to. +## +## CFLAGS_OPTIMIZE, CFLAGS_DEBUG, CFLAGS_PROFILE are set by the +## 'VARIANT=' targets to their _V values. + +## XCPPFLAGS, XCFLAGS, XCXXFLAGS, XASFLAGS +## are used to add flags from the shell +## cf. make.info ("Implicit rules/variables" for details) + +if RTEMS_USE_GCC +## All the stuff below is specific to gcc + +CFLAGS_DEFAULT=-g -Wall +## gcc >= 2.8.x +GCCSPECS = $(GCC_SPECS) $(RTEMS_BSP_SPECS) +else +## fall back to the old style compilers/*.cfg +## CONFIG.CC is supposed to be provided by .cfg +include $(CONFIG.CC) +endif # RTEMS_USE_GCC + +DEFS = @DEFS@ + +CPPFLAGS = @CPPFLAGS@ $(CPU_DEFINES) \ + $(DEFINES) $(XCPPFLAGS) $(CPPFLAGS_GCC) +CFLAGS = $(CFLAGS_DEFAULT) $(CPU_CFLAGS) $(XCFLAGS) +CXXFLAGS = $(CFLAGS_DEFAULT) $(CPU_CFLAGS) $(XCXXFLAGS) +ASFLAGS = $(CPU_ASFLAGS) $(CPU_CFLAGS) $(XASFLAGS) + +LINK_LIBS = $(LD_LIBS) + +## FIXME: This doesn't seem to be correct +# when debugging, optimize flag: typically empty +# some compilers do allow optimization with their "-g" +CFLAGS_DEBUG_OPTIMIZE_V=-g +CXXFLAGS_DEBUG_OPTIMIZE_V=-g +LDFLAGS_DEBUG_V = + +# profile flag; use gprof(1) +CFLAGS_PROFILE_V=-pg +CXXFLAGS_PROFILE_V=-pg +LDFLAGS_PROFILE_V = + +# List of library paths without -L +LD_PATHS= $(PROJECT_RELEASE)/lib + +# ld flag for incomplete link +LDFLAGS_INCOMPLETE = -r + +# ld flags for profiling, debugging +LDFLAGS=$(LDFLAGS_PROFILE) $(LDFLAGS_DEBUG) $(LD_PATHS:%=-L %) + +# +# Client compiler and support tools +# + +# +# How to compile stuff into ${ARCH} subdirectory +# + +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ + +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +CXXLD = $(CXX) +CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ + +AS = $(CC) +ASCOMPILE = $(AS) $(AM_ASFLAGS) $(ASFLAGS) + +${ARCH}/%.o: %.c + ${COMPILE} -o $@ -c $< + +${ARCH}/%.o: %.cc + ${CXXCOMPILE} -o $@ -c $< + +${ARCH}/%.o: %.cpp + ${CXXCOMPILE} -o $@ -c $< + +${ARCH}/%.o: %.cxx + ${CXXCOMPILE} -o $@ -c $< + +${ARCH}/%.o: %.C + ${CXXCOMPILE} -o $@ -c $< + +${ARCH}/%.o: %.S + ${ASCOMPILE} -DASM -o $@ -c $< + +# Make foo.rel from foo.o +${ARCH}/%.rel: ${ARCH}/%.o + ${make-rel} + +# Dependency files for use by gmake +# NOTE: we don't put them into $(ARCH) +# so that 'make clean' doesn't blow it away + +DEPEND=Depends-${ARCH} + +CLEAN_DEPEND=$(DEPEND).tmp +CLOBBER_DEPEND=$(DEPEND) + +# We deliberately don't have anything depend on the +# $(DEPEND) file; otherwise it will get rebuilt even +# on 'make clean' +# + +## HACK: Specific to gcc +## FIXME: The approach below is known to be conceptionally broken. +depend-am: $(C_FILES) $(CC_FILES) $(S_FILES) +## Use gcc -M to generate dependencies +## Replace foo.o with $(ARCH)/foo.o +## Replace $(ARCH) value with string $(ARCH) +## so that it will for debug and profile cases + $(COMPILE) -M $^ | \ + sed -e 's?^\(.*\)\.o[ ]*:?$$(ARCH)/\1.o:?' \ + -e 's?$(ARCH)/?$$(ARCH)/?' >$(DEPEND).tmp + mv $(DEPEND).tmp $(DEPEND) +depend: depend-am + +# pull in dependencies if they exist +ifeq (${DEPEND},$(wildcard ${DEPEND})) +include ${DEPEND} +@ENDIF@ + + +# spell out all the LINK_FILE's, rather than using -lbsp, so +# that $(LINK_FILES) can be a dependency + +LINK_OBJS = \ + $(OBJS) \ + $(MANAGERS_NOT_WANTED:%=$(PROJECT_RELEASE)/lib/no-%$(LIB_VARIANT).rel) + +LINK_FILES =\ + $(START_FILE) \ + $(OBJS) \ + $(MANAGERS_NOT_WANTED:%=$(PROJECT_RELEASE)/lib/no-%$(LIB_VARIANT).rel) + +if RTEMS_USE_GCC +## gcc >= 2.8 +define make-rel + $(LINK) -qnolinkcmds -nostdlib -Wl,-r $(XLDFLAGS) $^ +endef +else +## non-gcc +define make-rel + $(LINK) $(XLDFLAGS) $^ +endef +endif + +## ------------------------------------------------------------------------- + +## translate VARIANT into VARIANT_V +VARIANT = OPTIMIZE + +VARIANT_OPTIMIZE_V = OPTIMIZE +VARIANT_DEBUG_V = DEBUG +VARIANT_PROFILE_V = PROFILE +VARIANT_optimize_V = OPTIMIZE +VARIANT_debug_V = DEBUG +VARIANT_profile_V = PROFILE + +VARIANT_V = $(VARIANT_$(VARIANT)_V) + +## Setup the variant build subdirectory +ARCH_OPTIMIZE_V = o-optimize +ARCH_DEBUG_V = o-debug +ARCH_PROFILE_V = o-profile + +ARCH__V = $(ARCH_OPTIMIZE_V) +ARCH = $(ARCH_$(VARIANT_V)_V) + +## Setup the library suffix +LIBSUFFIX_OPTIMIZE_V = +LIBSUFFIX_DEBUG_V = _g +LIBSUFFIX_PROFILE_V = _p +LIBSUFFIX__V = $(LIBSUFFIX_OPTIMIZE_V) + +LIB_VARIANT = $(LIBSUFFIX_$(VARIANT_V)_V) +LIBSUFFIX_VA = $(LIB_VARIANT).a + +## These are supposed to be set in make/custom/.cfg +## CFLAGS_OPTIMIZE_V = +## CFLAGS_DEBUG_V = +## CFLAGS_PROFILE_V = +CFLAGS__V = $(CFLAGS_OPTIMIZE_V) + +## ------------------------------------------------------------------------ +## Setup hard-coded flags +if RTEMS_USE_GCC +## gcc >= gcc-2.8 +RTEMS_CFLAGS_OPTIMIZE_V = +RTEMS_CFLAGS_DEBUG_V = -qrtems_debug -Wno-unused +RTEMS_CFLAGS_PROFILE_V = + +## non-gcc +## We can't guess what flags might be required here. +## Pass the values from the environment if you want to apply them. +endif +RTEMS_CFLAGS__V = $(RTEMS_CFLAGS_OPTIMIZE_V) + +## ------------------------------------------------------------------------- + +CC = @CC@ $(GCCSPECS) +CXX = @CXX@ $(GCCSPECS) +CPP = @CPP@ $(GCCSPECS) + +LD = @LD@ +OBJCOPY = @OBJCOPY@ +NM = @NM@ +SIZE = @SIZE@ +STRIP = @STRIP@ + + +## +AM_CPPFLAGS = $(RTEMS_CPPFLAGS) + +AM_CFLAGS = $(RTEMS_CFLAGS_$(VARIANT_V)_V) $(CFLAGS_$(VARIANT_V)_V) +AM_CXXFLAGS = $(RTEMS_CFLAGS_$(VARIANT_V)_V) $(CFLAGS_$(VARIANT_V)_V) diff --git a/cpukit/automake/lib.am b/cpukit/automake/lib.am new file mode 100644 index 0000000000..7cb9db1148 --- /dev/null +++ b/cpukit/automake/lib.am @@ -0,0 +1,22 @@ +## +## $Id$ +## + +## LD = @LD@ +AR = @AR@ +RANLIB = @RANLIB@ + +ARFLAGS = ruv + +define make-library +$(RM) $@ +$(AR) $(ARFLAGS) $@ $^ +$(RANLIB) $@ +endef + +$(PROJECT_RELEASE)/lib$(MULTISUBDIR): + @$(mkinstalldirs) $@ + +TMPINSTALL_FILES = $(PROJECT_RELEASE)/lib$(MULTISUBDIR) + +.PRECIOUS: $(LIB) diff --git a/cpukit/automake/local.am b/cpukit/automake/local.am new file mode 100644 index 0000000000..ca146e837e --- /dev/null +++ b/cpukit/automake/local.am @@ -0,0 +1,38 @@ +## $Id$ + +debug: + @echo + @echo "\"make debug\" is obsolete, instead use:" + @echo " make VARIANT=DEBUG" + @echo + +.PHONY: debug + +profile: + @echo + @echo "\"make profile\" is obsolete, instead use:" + @echo " make VARIANT=PROFILE" + @echo + +.PHONY: profile + +preinstall-am: $(PREINSTALL_FILES) +preinstall: preinstall-am +.PHONY: preinstall preinstall-am + +depend-am: +depend: depend-am +.PHONY: depend depend-am + +${ARCH}: + mkdir ${ARCH} + +clean-local: + $(RM) -r o-optimize o-debug o-profile $(CLEANDIRS) + $(RM) Depends-o-optimize.tmp Depends-o-debug.tmp Depends-o-profile.tmp + +distclean-local: + $(RM) Depends-o-optimize Depends-o-debug Depends-o-profile + +PROJECT_TOOLS = $(PROJECT_RELEASE)/build-tools + diff --git a/cpukit/automake/multilib.am b/cpukit/automake/multilib.am new file mode 100644 index 0000000000..37a6086616 --- /dev/null +++ b/cpukit/automake/multilib.am @@ -0,0 +1,33 @@ +## $Id$ + +if MULTILIB +MULTISRCTOP = +MULTIDIRS = +MULTIDO = true +MULTICLEAN = true +endif + +# Multilib support rules +.PHONY: all-multi mostlyclean-multi clean-multi distclean-multi \ + maintainer-clean-multi + +if MULTILIB +all-recursive: all-multi +mostlyclean-recursive: mostlyclean-multi +clean-recursive: clean-multi +distclean-recursive: distclean-multi +maintainer-clean-recursive: maintainer-clean-multi + +all-multi: + $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do +mostlyclean-multi: + $(MULTICLEAN) $(AM_MAKEFLAGS) DO=mostlyclean multi-clean +clean-multi: + $(MULTICLEAN) $(AM_MAKEFLAGS) DO=clean multi-clean +distclean-multi: + $(MULTICLEAN) $(AM_MAKEFLAGS) DO=distclean multi-clean +maintainer-clean-multi: + $(MULTICLEAN) $(AM_MAKEFLAGS) DO=maintainer-clean multi-clean +else +include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg +endif diff --git a/cpukit/automake/subdirs.am b/cpukit/automake/subdirs.am new file mode 100644 index 0000000000..3d54285dec --- /dev/null +++ b/cpukit/automake/subdirs.am @@ -0,0 +1,36 @@ +## $Id$ + +## Borrowed from automake-1.4 and adapted to RTEMS + +## NOTE: This is a temporary work-around to keep +## RTEMS's non automake standard make targets working. +## Once automake is fully integrated these make targets +## and this file will probably be removed + +depend-recursive \ +preinstall-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ +## This trick allows "-k" to keep its natural meaning when running a +## recursive rule. + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +preinstall: preinstall-recursive +.PHONY: preinstall-recursive + +depend: depend-recursive +.PHONY: depend-recursive -- cgit v1.2.3