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 --- 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 +- 14 files changed, 171 insertions(+), 106 deletions(-) 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 (limited to 'c') 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 += # -- cgit v1.2.3