From d6c8352925bc2286b24f01b8cfababa16782b1f5 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Tue, 16 Nov 1999 15:48:11 +0000 Subject: Patch rtems-rc-19991105-1.diff.gz from Ralf Corsepius which does the following: This is the configuration cleanup patch: Main changes: * TARGET_ARCH removed * target.cfg.in moved to c/make/target.cfg.in (Only configured once for all BSPs of a target) * BARE_XXX variables appended to bsp.cfg.in * autogen renamed to bootstrap * removed stray variables from make/custom/*.cfg To apply: cd rm c/src/make/target.cfg.in cp autogen bootstrap mkdir c/make cp make/target.cfg.in c/make/target.cfg.in rm make/target.cfg.in rm autogen patch -p1 < rtems-rc-19991105-1.diff --- Makefile.am | 2 +- autogen | 114 ---------------------------- bootstrap | 114 ++++++++++++++++++++++++++++ c/Makefile.am | 1 + c/configure.in | 2 + c/make/Makefile.am | 17 +++++ c/make/configure.in | 59 ++++++++++++++ c/make/target.cfg.in | 69 +++++++++++++++++ c/src/make/Makefile.am | 4 +- c/src/make/bsp.cfg.in | 4 + c/src/make/compilers/gcc-target-default.cfg | 23 +++--- c/src/make/configure.in | 1 - c/src/make/custom/default.cfg.in | 10 +-- c/src/make/main.cfg.in | 10 +-- c/src/make/target.cfg.in | 73 ------------------ c/src/tests/samples/cdtest/Makefile.in | 2 +- c/src/tests/samples/paranoia/Makefile.in | 2 +- make/Makefile.am | 3 +- make/compilers/gcc-target-default.cfg | 23 +++--- make/custom/FreeBSD-posix.cfg | 7 -- make/custom/HPUX9-posix.cfg | 1 - make/custom/Linux-posix.cfg | 7 -- make/custom/Solaris-posix.cfg | 7 -- make/custom/bare.cfg | 2 - make/custom/default.cfg | 7 +- make/custom/gen68360.cfg | 2 - make/custom/mvme162.cfg | 2 - make/custom/ods68302.cfg | 9 +-- make/leaf.cfg | 18 ++--- make/main.cfg | 10 +-- 30 files changed, 312 insertions(+), 293 deletions(-) delete mode 100644 autogen create mode 100755 bootstrap create mode 100644 c/make/Makefile.am create mode 100644 c/make/configure.in create mode 100644 c/make/target.cfg.in delete mode 100644 c/src/make/target.cfg.in diff --git a/Makefile.am b/Makefile.am index 36a7dd8c6e..45d3b9b9e4 100644 --- a/Makefile.am +++ b/Makefile.am @@ -54,7 +54,7 @@ aclocal/tool-paths.m4 \ aclocal/tool-prefix.m4 noinst_SCRIPTS = \ -autogen +bootstrap EXTRA_DIST = \ $(AUTOMAKE_FILES) \ diff --git a/autogen b/autogen deleted file mode 100644 index 2672595433..0000000000 --- a/autogen +++ /dev/null @@ -1,114 +0,0 @@ -#!/bin/sh -# -# helps bootstrapping, when checked out from CVS -# requires GNU autoconf and GNU automake -# -# $Id$ - -# this is not meant to be exported outside the source tree - -# NOTE: Inspired by libtool's autogen script - -# to be run from the toplevel directory of RTEMS' -# source tree - -progname=`basename $0` -verbose=""; -quiet="false" -mode="generate" - -usage() -{ - echo - echo "usage: ${progname} [-h|-q|-v]" - echo - echo "options:" - echo " -h .. display this message and exit"; - echo " -q .. quiet, don't display directories"; - echo " -v .. verbose, pass -v to automake when invoking automake" - echo " -c .. clean, remove all aclocal/autoconf/automake generated files" - echo - exit 1; -} - -if test ! -f VERSION; then - echo "${progname}:" - echo " Please change directory to RTEMS's toplevel directory" - exit 1; -fi - -while test $# -gt 0; do -case $1 in --h|--he|--hel|--help) - usage ;; --q|--qu|--qui|--quie|--quiet) - quiet="true"; - shift;; --v|--ve|--ver|--verb|--verbo|--verbos|--verbose) - verbose="-v"; - shift;; --c|--cl|--cle|--clea|--clean) - mode="clean"; - shift;; --*) echo "unknown option $1" ; - usage ;; -*) echo "invalid parameter $1" ; - usage ;; -esac -done - -pwd=`pwd`; - -case $mode in -generate) - confs=`find $pwd -name 'configure.in' -print` - aclocal_dir=$pwd/aclocal - for i in $confs; do - dir=`dirname $i`; - ( test "$quiet" = "true" || echo "$dir"; - cd $dir; - aclocal -I $aclocal_dir; - autoconf; - test -f Makefile.am && automake $verbose ; - test -n "`grep CONFIG_HEADER configure.in`" && autoheader ; - test -f Makefile.am && test -n "`grep 'stamp-h\.in' Makefile.in`" \ - && echo timestamp > stamp-h.in - ) - done - ;; -clean) - test "$quiet" = "true" || echo "removing automake generated Makefile.in files" - files=`find . -name 'Makefile.am' -print | sed -e 's%\.am%\.in%g'` ; - for i in $files; do if test -f $i; then - rm -f $i - test "$verbose" = "-v" && echo "$i" - fi; done - - test "$quiet" = "true" || echo "removing configure files" - files=`find . -name 'configure' -print` ; - test "$verbose" = "-v" && test -n "$files" && echo "$files" ; - for i in $files; do if test -f $i; then - rm -f $i - test "$verbose" = "-v" && echo "$i" - fi; done - - test "$quiet" = "true" || echo "removing aclocal.m4 files" - files=`find . -name 'aclocal.m4' -print` ; - test "$verbose" = "-v" && test -n "$files" && echo "$files" ; - for i in $files; do if test -f $i; then - rm -f $i - test "$verbose" = "-v" && echo "$i" - fi; done - - find . -name '*~' -print | xargs rm -f - find . -name '*.orig' -print | xargs rm -f - find . -name '*.rej' -print | xargs rm -f - find . -name 'config.status' -print | xargs rm -f - find . -name 'config.log' -print | xargs rm -f - find . -name 'config.cache' -print | xargs rm -f - find . -name 'Makefile' -print | xargs rm -f - find . -name '.deps' -print | xargs rm -rf - find . -name '.libs' -print | xargs rm -rf - find . -name 'stamp-h.in' | xargs rm -rf - ;; -esac diff --git a/bootstrap b/bootstrap new file mode 100755 index 0000000000..2672595433 --- /dev/null +++ b/bootstrap @@ -0,0 +1,114 @@ +#!/bin/sh +# +# helps bootstrapping, when checked out from CVS +# requires GNU autoconf and GNU automake +# +# $Id$ + +# this is not meant to be exported outside the source tree + +# NOTE: Inspired by libtool's autogen script + +# to be run from the toplevel directory of RTEMS' +# source tree + +progname=`basename $0` +verbose=""; +quiet="false" +mode="generate" + +usage() +{ + echo + echo "usage: ${progname} [-h|-q|-v]" + echo + echo "options:" + echo " -h .. display this message and exit"; + echo " -q .. quiet, don't display directories"; + echo " -v .. verbose, pass -v to automake when invoking automake" + echo " -c .. clean, remove all aclocal/autoconf/automake generated files" + echo + exit 1; +} + +if test ! -f VERSION; then + echo "${progname}:" + echo " Please change directory to RTEMS's toplevel directory" + exit 1; +fi + +while test $# -gt 0; do +case $1 in +-h|--he|--hel|--help) + usage ;; +-q|--qu|--qui|--quie|--quiet) + quiet="true"; + shift;; +-v|--ve|--ver|--verb|--verbo|--verbos|--verbose) + verbose="-v"; + shift;; +-c|--cl|--cle|--clea|--clean) + mode="clean"; + shift;; +-*) echo "unknown option $1" ; + usage ;; +*) echo "invalid parameter $1" ; + usage ;; +esac +done + +pwd=`pwd`; + +case $mode in +generate) + confs=`find $pwd -name 'configure.in' -print` + aclocal_dir=$pwd/aclocal + for i in $confs; do + dir=`dirname $i`; + ( test "$quiet" = "true" || echo "$dir"; + cd $dir; + aclocal -I $aclocal_dir; + autoconf; + test -f Makefile.am && automake $verbose ; + test -n "`grep CONFIG_HEADER configure.in`" && autoheader ; + test -f Makefile.am && test -n "`grep 'stamp-h\.in' Makefile.in`" \ + && echo timestamp > stamp-h.in + ) + done + ;; +clean) + test "$quiet" = "true" || echo "removing automake generated Makefile.in files" + files=`find . -name 'Makefile.am' -print | sed -e 's%\.am%\.in%g'` ; + for i in $files; do if test -f $i; then + rm -f $i + test "$verbose" = "-v" && echo "$i" + fi; done + + test "$quiet" = "true" || echo "removing configure files" + files=`find . -name 'configure' -print` ; + test "$verbose" = "-v" && test -n "$files" && echo "$files" ; + for i in $files; do if test -f $i; then + rm -f $i + test "$verbose" = "-v" && echo "$i" + fi; done + + test "$quiet" = "true" || echo "removing aclocal.m4 files" + files=`find . -name 'aclocal.m4' -print` ; + test "$verbose" = "-v" && test -n "$files" && echo "$files" ; + for i in $files; do if test -f $i; then + rm -f $i + test "$verbose" = "-v" && echo "$i" + fi; done + + find . -name '*~' -print | xargs rm -f + find . -name '*.orig' -print | xargs rm -f + find . -name '*.rej' -print | xargs rm -f + find . -name 'config.status' -print | xargs rm -f + find . -name 'config.log' -print | xargs rm -f + find . -name 'config.cache' -print | xargs rm -f + find . -name 'Makefile' -print | xargs rm -f + find . -name '.deps' -print | xargs rm -rf + find . -name '.libs' -print | xargs rm -rf + find . -name 'stamp-h.in' | xargs rm -rf + ;; +esac diff --git a/c/Makefile.am b/c/Makefile.am index d5ef7eb128..949c8171d7 100644 --- a/c/Makefile.am +++ b/c/Makefile.am @@ -12,6 +12,7 @@ RTEMS_BSP = $(RTEMS_BSP_LIST) ## The '.' in SUBDIRS ensures that local make-targets (xxx-am) will be ## triggered before $(RTEMS_BSP_LIST) subdirectories are made. SUBDIRS= \ +make \ . \ $(RTEMS_BSP) diff --git a/c/configure.in b/c/configure.in index 60f92356da..2df416b8b4 100644 --- a/c/configure.in +++ b/c/configure.in @@ -98,6 +98,8 @@ AC_SUBST(rtems_bsp_configure) AC_SUBST(RTEMS_BSP_LIST) +AC_CONFIG_SUBDIRS(make) + AC_OUTPUT( Makefile ) diff --git a/c/make/Makefile.am b/c/make/Makefile.am new file mode 100644 index 0000000000..b1d7b6367f --- /dev/null +++ b/c/make/Makefile.am @@ -0,0 +1,17 @@ +## +## $Id$ +## + +AUTOMAKE_OPTIONS = foreign 1.4 +ACLOCAL_AMFLAGS = -I $(RTEMS_TOPdir)/aclocal + +rtems_makedir=$(prefix)/make + +GENERIC_FILES = \ +target.cfg + +rtems_make_DATA = \ +$(GENERIC_FILES) + +include $(top_srcdir)/../../automake/subdirs.am +include $(top_srcdir)/../../automake/local.am diff --git a/c/make/configure.in b/c/make/configure.in new file mode 100644 index 0000000000..9f1b3ec83c --- /dev/null +++ b/c/make/configure.in @@ -0,0 +1,59 @@ +dnl Process this file with autoconf to produce a configure script. +dnl +dnl $Id$ + +dnl +dnl This script configures the configuration files below c/make/ +dnl + +AC_PREREQ(2.13) +AC_INIT(target.cfg.in) +RTEMS_TOP(../..) +AC_CONFIG_AUX_DIR(../..) + +RTEMS_CANONICAL_TARGET_CPU + +AM_INIT_AUTOMAKE(rtems-c-make,$RTEMS_VERSION,no) +AM_MAINTAINER_MODE + +RTEMS_ENABLE_MULTIPROCESSING +RTEMS_ENABLE_POSIX +RTEMS_ENABLE_NETWORKING +RTEMS_ENABLE_RDBG +RTEMS_ENABLE_INLINES +RTEMS_ENABLE_CXX +RTEMS_ENABLE_GCC28 +RTEMS_ENABLE_LIBCDIR + +RTEMS_CHECK_CPU +RTEMS_CANONICAL_HOST + +RTEMS_PROJECT_ROOT + +dnl check target cc +RTEMS_PROG_CC_FOR_TARGET + +dnl check for g++ +if test "$RTEMS_HAS_CPLUSPLUS" = "yes"; then + RTEMS_PROG_CXX_FOR_TARGET +fi + +RTEMS_CANONICALIZE_TOOLS + +AC_SUBST(rtems_cv_prog_cc_cross) +AC_SUBST(RTEMS_HAS_POSIX) +AC_SUBST(RTEMS_HOST) +AC_SUBST(RTEMS_HAS_MULTIPROCESSING) +AC_SUBST(RTEMS_HAS_POSIX_API) +AC_SUBST(RTEMS_HAS_NETWORKING) +AC_SUBST(RTEMS_HAS_RDBG) +AC_SUBST(RTEMS_HAS_CPLUSPLUS) +AC_SUBST(RTEMS_USE_MACROS) +AC_SUBST(RTEMS_USE_GCC272) +AC_SUBST(RTEMS_LIBC_DIR) +AC_SUBST(RTEMS_CPU) + +AC_OUTPUT( +Makefile +target.cfg +) diff --git a/c/make/target.cfg.in b/c/make/target.cfg.in new file mode 100644 index 0000000000..4fa72f6ed8 --- /dev/null +++ b/c/make/target.cfg.in @@ -0,0 +1,69 @@ +# +# $Id$ +# +# Target specific settings. +# + +prefix = @prefix@ + +CFLAGS = @CFLAGS@ +CPPFLAGS = @CPPFLAGS@ +DEFS = @DEFS@ +LDFLAGS = +LIBS = @LIBS@ + +CC = @CC_FOR_TARGET@ +AS = @AS_FOR_TARGET@ +AR = @AR_FOR_TARGET@ +NM = @NM_FOR_TARGET@ +LD = @LD_FOR_TARGET@ +SIZE = @SIZE_FOR_TARGET@ +STRIP = @STRIP_FOR_TARGET@ +OBJCOPY = @OBJCOPY_FOR_TARGET@ +RANLIB = @RANLIB_FOR_TARGET@ + +CXX = @CXX_FOR_TARGET@ + +export CC +export AS +export LD +export NM +export AR +export SIZE +export OBJCOPY + +export CXX + +RTEMS_CROSS_TARGET=@rtems_cv_prog_cc_cross@ + +RTEMS_HOST = @RTEMS_HOST@ +RTEMS_HAS_MULTIPROCESSING = @RTEMS_HAS_MULTIPROCESSING@ +RTEMS_HAS_POSIX_API = @RTEMS_HAS_POSIX_API@ +RTEMS_HAS_ITRON_API = @RTEMS_HAS_ITRON_API@ +RTEMS_HAS_NETWORKING = @RTEMS_HAS_NETWORKING@ +RTEMS_HAS_RDBG = @RTEMS_HAS_RDBG@ +RTEMS_HAS_CPLUSPLUS = @RTEMS_HAS_CPLUSPLUS@ +RTEMS_USE_MACROS = @RTEMS_USE_MACROS@ +RTEMS_USE_GCC272 = @RTEMS_USE_GCC272@ +RTEMS_LIBC_DIR = @RTEMS_LIBC_DIR@ +RTEMS_CPU = @RTEMS_CPU@ + +XCFLAGS=$(CFLAGS_FOR_TARGET) + +export RTEMS_BSP +export RTEMS_CUSTOM +export PROJECT_ROOT + +# List (possibly empty) of required managers +# We require: +# region -- used by lib/libcsupport for malloc() +# ext -- used by libc for libc reentrancy hooks + +MANAGERS_REQUIRED=region ext sem + +# Create a RTEMS executable based on MANAGERS which was set in +# app's Makefile + +MANAGERS_NOT_WANTED=$(filter-out $(MANAGERS) \ + $(MANAGERS_REQUIRED), $(MANAGER_LIST)) + diff --git a/c/src/make/Makefile.am b/c/src/make/Makefile.am index 2ea706e37a..a149c4a3ac 100644 --- a/c/src/make/Makefile.am +++ b/c/src/make/Makefile.am @@ -8,7 +8,7 @@ ACLOCAL_AMFLAGS = -I $(RTEMS_TOPdir)/aclocal rtems_makedir=$(prefix)/make GENERIC_FILES = \ -host.cfg target.cfg +host.cfg MAKE_FILES = README \ directory.cfg leaf.cfg \ @@ -37,8 +37,6 @@ $(srcdir)/main.cfg.in: $(top_srcdir)/@RTEMS_TOPdir@/make/main.cfg $(srcdir)/host.cfg.in: $(top_srcdir)/@RTEMS_TOPdir@/make/host.cfg.in cp $< $@ -$(srcdir)/target.cfg.in: $(top_srcdir)/@RTEMS_TOPdir@/make/target.cfg.in - cp $< $@ endif SUBDIRS = compilers custom diff --git a/c/src/make/bsp.cfg.in b/c/src/make/bsp.cfg.in index e0ddae8cda..12d64f3890 100644 --- a/c/src/make/bsp.cfg.in +++ b/c/src/make/bsp.cfg.in @@ -29,3 +29,7 @@ HAS_CPLUSPLUS = @HAS_CPLUSPLUS@ ## Does this BSP support RTEMS's networking ? ## HAS_NETWORKING = @HAS_NETWORKING@ + +## Only used for the bare bsp +BARE_CPU_MODEL = @BARE_CPU_MODEL@ +BARE_CPU_CFLAGS = @BARE_CPU_CFLAGS@ diff --git a/c/src/make/compilers/gcc-target-default.cfg b/c/src/make/compilers/gcc-target-default.cfg index 529bc4b742..f91c2a6e31 100644 --- a/c/src/make/compilers/gcc-target-default.cfg +++ b/c/src/make/compilers/gcc-target-default.cfg @@ -82,7 +82,7 @@ endif # Define this to yes if C++ is included in the development environment. # This requires that at least the GNU C++ compiler and libg++ be installed. -ifeq ($(RTEMS_HAS_CPLUSPLUS),yes) +ifeq ($(HAS_CPLUSPLUS),yes) CPLUS_LD_LIBS += $(PROJECT_RELEASE)/lib/librtems++$(LIBSUFFIX_VA) endif @@ -172,13 +172,15 @@ MKLIB=$(RANLIB) # # How to compile stuff into ${ARCH} subdirectory # +# OBSOLETE: we use make's default rules now +# # NOTE: we override COMPILE.[c|cc|S] # because gmake default rules use TARGET_ARCH for different purposes # - -COMPILE.c=$(CC) $(CPPFLAGS) $(CFLAGS) -c -COMPILE.cc=$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -COMPILE.S=$(CC) $(ASFLAGS) $(CPPFLAGS) -c +# +# COMPILE.c=$(CC) $(CPPFLAGS) $(CFLAGS) -c +# COMPILE.cc=$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c +# COMPILE.S=$(CC) $(ASFLAGS) $(CPPFLAGS) -c ${ARCH}/%.o: %.c ${COMPILE.c} -o $@ $< @@ -198,13 +200,6 @@ ${ARCH}/%.o: %.C ${ARCH}/%.o: %.S ${COMPILE.S} -DASM -o $@ $< -# OBSOLETE: the rule above should be equivalent. -# strip out C++ style comments. -# ${ARCH}/%.o: %.S -# sed -e 's/\/\/.*$$//' < $< | \ -# $(CPP) $(CPPFLAGS) -I. -I$(srcdir) -DASM - >$(ARCH)/$*.i -# $(AS) $(ASFLAGS) -o $@ $(ARCH)/$*.i - # Make foo.rel from foo.o ${ARCH}/%.rel: ${ARCH}/%.o ${LD} $(LDFLAGS_INCOMPLETE) -o $@ $^ @@ -216,10 +211,10 @@ ${ARCH}/%: %.sh $(CHMOD) +x $@ # Dependency files for use by gmake -# NOTE: we don't put in $(TARGET_ARCH) +# NOTE: we don't put them into $(ARCH) # so that 'make clean' doesn't blow it away -DEPEND=Depends-$(TARGET_ARCH:o-%=%) +DEPEND=Depends-${ARCH} CLEAN_DEPEND=$(DEPEND).tmp CLOBBER_DEPEND=$(DEPEND) diff --git a/c/src/make/configure.in b/c/src/make/configure.in index 3047f719e2..3ccd3b7387 100644 --- a/c/src/make/configure.in +++ b/c/src/make/configure.in @@ -124,7 +124,6 @@ Makefile Makefile.inc main.cfg host.cfg -target.cfg bsp.cfg custom/Makefile custom/default.cfg diff --git a/c/src/make/custom/default.cfg.in b/c/src/make/custom/default.cfg.in index aaf1507538..7f6f5e51a9 100644 --- a/c/src/make/custom/default.cfg.in +++ b/c/src/make/custom/default.cfg.in @@ -8,20 +8,14 @@ # $Id$ # -include $(RTEMS_ROOT)/make/target.cfg +include $(RTEMS_ROOT)/../make/target.cfg include $(RTEMS_ROOT)/make/host.cfg -# Specify here the host and target "architectures" -HOST_ARCH=o-$(RTEMS_HOST) -ifndef TARGET_ARCH -TARGET_ARCH=o-@RTEMS_BSP@ -endif - include $(RTEMS_ROOT)/make/main.cfg include $(RTEMS_ROOT)/make/bsp.cfg ## Target compiler config file, if any -CONFIG.$(TARGET_ARCH).CC = $(RTEMS_ROOT)/make/compilers/gcc-target-default.cfg +CONFIG.CC = $(RTEMS_ROOT)/make/compilers/gcc-target-default.cfg ## GCC specs extension file location RTEMS_BSP_SPECS = $(PROJECT_ROOT)/@RTEMS_BSP@/lib/bsp_specs diff --git a/c/src/make/main.cfg.in b/c/src/make/main.cfg.in index 9122a0a75c..664b496d6f 100644 --- a/c/src/make/main.cfg.in +++ b/c/src/make/main.cfg.in @@ -17,11 +17,11 @@ PROJECT_INCLUDE=$(PROJECT_RELEASE)/lib/include PROJECT_TOOLS = $(PROJECT_RELEASE)/build-tools # -# Target architecture; may be changed as per 'make "ARCH=${TARGET_ARCH}-debug"' +# Target architecture; may be changed as per 'make "ARCH=debug"' # This is where the object files get put. # -ARCH=${TARGET_ARCH} +ARCH=o-optimize VARIANT= @@ -43,12 +43,12 @@ MAKEFILE=Makefile # # Target variant names # -TARGET_VARIANTS = debug profile +TARGET_VARIANTS = optimize debug profile # -# Generate list of object directories: sun4, sun4-debug, sun4-profile +# Generate list of object directories: o-optimize, o-debug, o-profile # -VARIANTS=${TARGET_ARCH} ${TARGET_VARIANTS:%=${TARGET_ARCH}-%} +VARIANTS=${TARGET_VARIANTS:%=o-%} # # List of "recursion-able" targets for directory Makefiles diff --git a/c/src/make/target.cfg.in b/c/src/make/target.cfg.in deleted file mode 100644 index a49cf8a8e3..0000000000 --- a/c/src/make/target.cfg.in +++ /dev/null @@ -1,73 +0,0 @@ -# -# $Id$ -# -# Target specific settings. -# - -prefix = @prefix@ - -CFLAGS = @CFLAGS@ -CPPFLAGS = @CPPFLAGS@ -DEFS = @DEFS@ -LDFLAGS = -LIBS = @LIBS@ - -CC = @CC_FOR_TARGET@ -AS = @AS_FOR_TARGET@ -AR = @AR_FOR_TARGET@ -NM = @NM_FOR_TARGET@ -LD = @LD_FOR_TARGET@ -SIZE = @SIZE_FOR_TARGET@ -STRIP = @STRIP_FOR_TARGET@ -OBJCOPY = @OBJCOPY_FOR_TARGET@ -RANLIB = @RANLIB_FOR_TARGET@ - -CXX = @CXX_FOR_TARGET@ - -export CC -export AS -export LD -export NM -export AR -export SIZE -export OBJCOPY - -export CXX - -RTEMS_CROSS_TARGET=@rtems_cv_prog_cc_cross@ - -RTEMS_HOST = @RTEMS_HOST@ -RTEMS_HAS_MULTIPROCESSING = @RTEMS_HAS_MULTIPROCESSING@ -RTEMS_HAS_POSIX_API = @RTEMS_HAS_POSIX_API@ -RTEMS_HAS_ITRON_API = @RTEMS_HAS_ITRON_API@ -RTEMS_HAS_NETWORKING = @RTEMS_HAS_NETWORKING@ -RTEMS_HAS_RDBG = @RTEMS_HAS_RDBG@ -RTEMS_HAS_CPLUSPLUS = @RTEMS_HAS_CPLUSPLUS@ -RTEMS_USE_MACROS = @RTEMS_USE_MACROS@ -RTEMS_USE_GCC272 = @RTEMS_USE_GCC272@ -RTEMS_LIBC_DIR = @RTEMS_LIBC_DIR@ -RTEMS_CPU = @RTEMS_CPU@ - -# the following are only used for the bare bsp -BARE_CPU_MODEL = @BARE_CPU_MODEL@ -BARE_CPU_CFLAGS = @BARE_CPU_CFLAGS@ - -XCFLAGS=$(CFLAGS_FOR_TARGET) - -export RTEMS_BSP -export RTEMS_CUSTOM -export PROJECT_ROOT - -# List (possibly empty) of required managers -# We require: -# region -- used by lib/libcsupport for malloc() -# ext -- used by libc for libc reentrancy hooks - -MANAGERS_REQUIRED=region ext sem - -# Create a RTEMS executable based on MANAGERS which was set in -# app's Makefile - -MANAGERS_NOT_WANTED=$(filter-out $(MANAGERS) \ - $(MANAGERS_REQUIRED), $(MANAGER_LIST)) - diff --git a/c/src/tests/samples/cdtest/Makefile.in b/c/src/tests/samples/cdtest/Makefile.in index 71da922768..39fb1ed0f4 100644 --- a/c/src/tests/samples/cdtest/Makefile.in +++ b/c/src/tests/samples/cdtest/Makefile.in @@ -50,7 +50,7 @@ PACKHEX = @PACKHEX@ # DEFINES += -CPPFLAGS += -I$(LIBCC_INCLUDE) +CPPFLAGS += CFLAGS += LD_PATHS += diff --git a/c/src/tests/samples/paranoia/Makefile.in b/c/src/tests/samples/paranoia/Makefile.in index b00435434e..24e689f7cd 100644 --- a/c/src/tests/samples/paranoia/Makefile.in +++ b/c/src/tests/samples/paranoia/Makefile.in @@ -52,7 +52,7 @@ CPPFLAGS += CFLAGS += LD_PATHS += -LD_LIBS += $(LIBC_LIBM) +LD_LIBS += -lm LDFLAGS += # diff --git a/make/Makefile.am b/make/Makefile.am index 7ff122f692..b463e14b0e 100644 --- a/make/Makefile.am +++ b/make/Makefile.am @@ -14,8 +14,7 @@ README \ directory.cfg \ host.cfg.in \ leaf.cfg \ -lib.cfg \ -target.cfg.in +lib.cfg SUBDIRS = \ Templates \ diff --git a/make/compilers/gcc-target-default.cfg b/make/compilers/gcc-target-default.cfg index 529bc4b742..f91c2a6e31 100644 --- a/make/compilers/gcc-target-default.cfg +++ b/make/compilers/gcc-target-default.cfg @@ -82,7 +82,7 @@ endif # Define this to yes if C++ is included in the development environment. # This requires that at least the GNU C++ compiler and libg++ be installed. -ifeq ($(RTEMS_HAS_CPLUSPLUS),yes) +ifeq ($(HAS_CPLUSPLUS),yes) CPLUS_LD_LIBS += $(PROJECT_RELEASE)/lib/librtems++$(LIBSUFFIX_VA) endif @@ -172,13 +172,15 @@ MKLIB=$(RANLIB) # # How to compile stuff into ${ARCH} subdirectory # +# OBSOLETE: we use make's default rules now +# # NOTE: we override COMPILE.[c|cc|S] # because gmake default rules use TARGET_ARCH for different purposes # - -COMPILE.c=$(CC) $(CPPFLAGS) $(CFLAGS) -c -COMPILE.cc=$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -COMPILE.S=$(CC) $(ASFLAGS) $(CPPFLAGS) -c +# +# COMPILE.c=$(CC) $(CPPFLAGS) $(CFLAGS) -c +# COMPILE.cc=$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c +# COMPILE.S=$(CC) $(ASFLAGS) $(CPPFLAGS) -c ${ARCH}/%.o: %.c ${COMPILE.c} -o $@ $< @@ -198,13 +200,6 @@ ${ARCH}/%.o: %.C ${ARCH}/%.o: %.S ${COMPILE.S} -DASM -o $@ $< -# OBSOLETE: the rule above should be equivalent. -# strip out C++ style comments. -# ${ARCH}/%.o: %.S -# sed -e 's/\/\/.*$$//' < $< | \ -# $(CPP) $(CPPFLAGS) -I. -I$(srcdir) -DASM - >$(ARCH)/$*.i -# $(AS) $(ASFLAGS) -o $@ $(ARCH)/$*.i - # Make foo.rel from foo.o ${ARCH}/%.rel: ${ARCH}/%.o ${LD} $(LDFLAGS_INCOMPLETE) -o $@ $^ @@ -216,10 +211,10 @@ ${ARCH}/%: %.sh $(CHMOD) +x $@ # Dependency files for use by gmake -# NOTE: we don't put in $(TARGET_ARCH) +# NOTE: we don't put them into $(ARCH) # so that 'make clean' doesn't blow it away -DEPEND=Depends-$(TARGET_ARCH:o-%=%) +DEPEND=Depends-${ARCH} CLEAN_DEPEND=$(DEPEND).tmp CLOBBER_DEPEND=$(DEPEND) diff --git a/make/custom/FreeBSD-posix.cfg b/make/custom/FreeBSD-posix.cfg index c0f79df4f5..99c111bf49 100644 --- a/make/custom/FreeBSD-posix.cfg +++ b/make/custom/FreeBSD-posix.cfg @@ -10,7 +10,6 @@ RTEMS_UNIX_FLAVOR=freebsd # This is the actual bsp directory used during the build process. RTEMS_BSP_FAMILY=posix -TARGET_ARCH=o-freebsd2 include $(RTEMS_ROOT)/make/custom/default.cfg @@ -24,12 +23,6 @@ LIBC_DEFINES += -DWORKSPACE_MB=2 LIBC_DEFINES += -DHEAPSPACE_MB=1 -# Define this to yes if C++ is included in the development environment -# This requires that at least the GNU C++ compiler and libg++ be installed. -ifeq ($(HAS_CPLUSPLUS),yes) -CPLUS_LD_LIBS += $(PROJECT_RELEASE)/lib/librtems++$(LIBSUFFIX_VA) -endif - # optimize flag: typically -0, could use -O4 or -fast # -O4 is ok for RTEMS CFLAGS_OPTIMIZE_V = -O2 diff --git a/make/custom/HPUX9-posix.cfg b/make/custom/HPUX9-posix.cfg index 554d673c90..700f5f48f6 100644 --- a/make/custom/HPUX9-posix.cfg +++ b/make/custom/HPUX9-posix.cfg @@ -12,7 +12,6 @@ RTEMS_UNIX_FLAVOR=hpux # This is the actual bsp directory used during the build process. RTEMS_BSP_FAMILY=posix -TARGET_ARCH=o-hpux9 include $(RTEMS_ROOT)/make/custom/default.cfg diff --git a/make/custom/Linux-posix.cfg b/make/custom/Linux-posix.cfg index 22597b84b9..4b84c2b3cb 100644 --- a/make/custom/Linux-posix.cfg +++ b/make/custom/Linux-posix.cfg @@ -11,7 +11,6 @@ RTEMS_UNIX_FLAVOR=linux # This is the actual bsp directory used during the build process. RTEMS_BSP_FAMILY=posix -TARGET_ARCH=o-linux1 include $(RTEMS_ROOT)/make/custom/default.cfg @@ -26,12 +25,6 @@ LIBC_DEFINES += -DHEAPSPACE_MB=1 DEFINES += -D_BSD_SOURCE -# Define this to yes if C++ is included in the development environment -# This requires that at least the GNU C++ compiler and libg++ be installed. -ifeq ($(HAS_CPLUSPLUS),yes) -CPLUS_LD_LIBS += $(PROJECT_RELEASE)/lib/librtems++$(LIBSUFFIX_VA) -endif - # optimize flag: typically -0, could use -O4 or -fast # -O4 is ok for RTEMS CFLAGS_OPTIMIZE_V = -O2 diff --git a/make/custom/Solaris-posix.cfg b/make/custom/Solaris-posix.cfg index 0547a9fd3f..3f3f1f29d2 100644 --- a/make/custom/Solaris-posix.cfg +++ b/make/custom/Solaris-posix.cfg @@ -11,7 +11,6 @@ RTEMS_UNIX_FLAVOR=solaris # This is the actual bsp directory used during the build process. RTEMS_BSP_FAMILY=posix -TARGET_ARCH=o-solaris2 include $(RTEMS_ROOT)/make/custom/default.cfg @@ -23,12 +22,6 @@ LIBC_DEFINES +=-DRTEMS_UNIXLIB -DRTEMS_UNIX -DMALLOC_PROVIDED -DRTEMS_DEBUG DEFINES += -D__EXTENSIONS__ -Dsolaris2 -# Define this to yes if C++ is included in the development environment -# This requires that at least the GNU C++ compiler and libg++ be installed. -ifeq ($(HAS_CPLUSPLUS),yes) -CPLUS_LD_LIBS=$(PROJECT_RELEASE)/lib/librtems++$(LIBSUFFIX_VA) -endif - # optimize flag: typically -0, could use -O4 or -fast # -O4 is ok for RTEMS CFLAGS_OPTIMIZE_V = -O2 diff --git a/make/custom/bare.cfg b/make/custom/bare.cfg index 8ad849e4be..a1b5381e68 100644 --- a/make/custom/bare.cfg +++ b/make/custom/bare.cfg @@ -11,8 +11,6 @@ RTEMS_BSP=bare RTEMS_CPU_MODEL=$(BARE_CPU_MODEL) -TARGET_ARCH=o-$(RTEMS_BSP_FAMILY)-$(BARE_CPU_MODEL) - CPU_CFLAGS=$(BARE_CPU_CFLAGS) include $(RTEMS_ROOT)/make/custom/default.cfg diff --git a/make/custom/default.cfg b/make/custom/default.cfg index 8084579c69..4e3452c8e0 100644 --- a/make/custom/default.cfg +++ b/make/custom/default.cfg @@ -11,11 +11,6 @@ include $(RTEMS_ROOT)/make/target.cfg include $(RTEMS_ROOT)/make/host.cfg -# Specify here the host and target "architectures" -ifndef TARGET_ARCH -TARGET_ARCH=o-$(RTEMS_BSP) -endif - include $(RTEMS_ROOT)/make/main.cfg include $(RTEMS_ROOT)/$(RTEMS_BSP)/make/bsp.cfg @@ -30,7 +25,7 @@ INLINE_UPCASE=INLINE endif ## Target compiler config file, if any -CONFIG.$(TARGET_ARCH).CC = $(RTEMS_ROOT)/make/compilers/gcc-target-default.cfg +CONFIG.CC = $(RTEMS_ROOT)/make/compilers/gcc-target-default.cfg ## GCC specs extension file location RTEMS_BSP_SPECS = $(PROJECT_ROOT)/$(RTEMS_BSP)/lib/bsp_specs diff --git a/make/custom/gen68360.cfg b/make/custom/gen68360.cfg index e3efedcc93..f73c052888 100644 --- a/make/custom/gen68360.cfg +++ b/make/custom/gen68360.cfg @@ -7,10 +7,8 @@ RTEMS_CPU=m68k ifeq ($(RTEMS_GEN68360_COMPANION_MODE),yes) -TARGET_ARCH=o-gen68360_040 RTEMS_CPU_MODEL=m68040 else -TARGET_ARCH=o-gen68360 RTEMS_CPU_MODEL=mcpu32 endif diff --git a/make/custom/mvme162.cfg b/make/custom/mvme162.cfg index e770662b2e..66787178f6 100644 --- a/make/custom/mvme162.cfg +++ b/make/custom/mvme162.cfg @@ -10,14 +10,12 @@ RTEMS_CPU=m68k ifeq ($(RTEMS_MVME162_MODEL),mvme162lx) -TARGET_ARCH=o-mvme162lx RTEMS_CPU_MODEL=m68lc040 else ifeq ($(RTEMS_MVME162_MODEL),) RTEMS_MVME162_MODEL=mvme162 -TARGET_ARCH=o-mvme162 RTEMS_CPU_MODEL=m68040 endif # mvme162 - mc68040 diff --git a/make/custom/ods68302.cfg b/make/custom/ods68302.cfg index 325fc9170e..6a11e170a2 100644 --- a/make/custom/ods68302.cfg +++ b/make/custom/ods68302.cfg @@ -31,14 +31,7 @@ CPU_DEFINES = \ CFLAGS_OPTIMIZE_V=-O4 -fomit-frame-pointer # debugging please -CFLAGS_DEBUG_V+=-g - -# Define this to yes if C++ is included in the development environment. -# This requires that at least the GNU C++ compiler and libg++ be installed. -ifeq ($(RTEMS_HAS_CPLUSPLUS),yes) -HAS_CPLUSPLUS=yes -CPLUS_LD_LIBS=$(PROJECT_RELEASE)/lib/librtems++$(LIBSUFFIX_VA) -endif +CFLAGS_DEBUG_V = START_BASE=start302 diff --git a/make/leaf.cfg b/make/leaf.cfg index 06407755ae..e96c68732b 100644 --- a/make/leaf.cfg +++ b/make/leaf.cfg @@ -37,7 +37,7 @@ MANAGERS := $(sort $(MANAGERS)) # Pull in the desired "target" compiler # Programs built on the host use automake generated rules. # This will not change $(ARCH) -- binaries will still be place as per target -include ${CONFIG.$(TARGET_ARCH).CC} +include ${CONFIG.CC} ifeq (${DEPEND},$(wildcard ${DEPEND})) include ${DEPEND} # pull in dependencies if they exist endif @@ -46,14 +46,14 @@ endif # Builtin targets for compilation variants # debug: - $(MAKE) -f $(MAKEFILE) MAKEFILE=$(MAKEFILE) "ARCH=${TARGET_ARCH}-debug" \ + $(MAKE) -f $(MAKEFILE) MAKEFILE=$(MAKEFILE) "ARCH=o-debug" \ "CFLAGS_DEBUG=$(CFLAGS_DEBUG_V)" \ "CFLAGS_OPTIMIZE=$(CFLAGS_DEBUG_OPTIMIZE_V)" \ "LDFLAGS_DEBUG=$(LDFLAGS_DEBUG_V)" $(TARGET_VA) profile: $(MAKE) -f $(MAKEFILE) \ - MAKEFILE=$(MAKEFILE) "ARCH=${TARGET_ARCH}-profile" \ + MAKEFILE=$(MAKEFILE) "ARCH=o-profile" \ "CFLAGS_PROFILE=$(CFLAGS_PROFILE_V)" \ "LDFLAGS_PROFILE=$(LDFLAGS_PROFILE_V)" $(TARGET_VA) @@ -63,9 +63,9 @@ profile: # build something "the same" way. # -VARIANT-$(TARGET_ARCH)-v = -VARIANT-$(TARGET_ARCH)-debug-v = debug -VARIANT-$(TARGET_ARCH)-profile-v = profile +VARIANT-o-optimize-v = +VARIANT-o-debug-v = debug +VARIANT-o-profile-v = profile VARIANT_VA = $(VARIANT-$(ARCH)-v) @@ -86,9 +86,9 @@ TARGET_VA = $(TARGET_$@_V) # Useful for installing libraries. # -LIBSUFFIX_$(TARGET_ARCH)_V= -LIBSUFFIX_$(TARGET_ARCH)-debug_V=_g -LIBSUFFIX_$(TARGET_ARCH)-profile_V=_p +LIBSUFFIX_o-optimize_V= +LIBSUFFIX_o-debug_V=_g +LIBSUFFIX_o-profile_V=_p LIB_VARIANT=$(LIBSUFFIX_$(ARCH)_V) LIBSUFFIX_VA = $(LIB_VARIANT).a diff --git a/make/main.cfg b/make/main.cfg index d40846b108..9808816a9d 100644 --- a/make/main.cfg +++ b/make/main.cfg @@ -17,11 +17,11 @@ PROJECT_INCLUDE=$(PROJECT_RELEASE)/lib/include PROJECT_TOOLS = $(PROJECT_RELEASE)/build-tools # -# Target architecture; may be changed as per 'make "ARCH=${TARGET_ARCH}-debug"' +# Target architecture; may be changed as per 'make "ARCH=debug"' # This is where the object files get put. # -ARCH=${TARGET_ARCH} +ARCH=o-optimize VARIANT= @@ -43,12 +43,12 @@ MAKEFILE=Makefile # # Target variant names # -TARGET_VARIANTS = debug profile +TARGET_VARIANTS = optimize debug profile # -# Generate list of object directories: sun4, sun4-debug, sun4-profile +# Generate list of object directories: o-optimize, o-debug, o-profile # -VARIANTS=${TARGET_ARCH} ${TARGET_VARIANTS:%=${TARGET_ARCH}-%} +VARIANTS=${TARGET_VARIANTS:%=o-%} # # List of "recursion-able" targets for directory Makefiles -- cgit v1.2.3