Patch rtems-rc-19991105-1.diff.gz from Ralf Corsepius

<corsepiu@faw.uni-ulm.de> 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 <source-tree>
        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
This commit is contained in:
Joel Sherrill
1999-11-16 15:48:11 +00:00
parent fa3346f509
commit d6c8352925
28 changed files with 129 additions and 110 deletions

View File

@@ -54,7 +54,7 @@ aclocal/tool-paths.m4 \
aclocal/tool-prefix.m4
noinst_SCRIPTS = \
autogen
bootstrap
EXTRA_DIST = \
$(AUTOMAKE_FILES) \

0
autogen → bootstrap Normal file → Executable file
View File

View File

@@ -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)

View File

@@ -98,6 +98,8 @@ AC_SUBST(rtems_bsp_configure)
AC_SUBST(RTEMS_BSP_LIST)
AC_CONFIG_SUBDIRS(make)
AC_OUTPUT(
Makefile
)

17
c/make/Makefile.am Normal file
View File

@@ -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

59
c/make/configure.in Normal file
View File

@@ -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
)

View File

@@ -48,10 +48,6 @@ 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

View File

@@ -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

View File

@@ -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@

View File

@@ -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)

View File

@@ -124,7 +124,6 @@ Makefile
Makefile.inc
main.cfg
host.cfg
target.cfg
bsp.cfg
custom/Makefile
custom/default.cfg

View File

@@ -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

View File

@@ -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

View File

@@ -50,7 +50,7 @@ PACKHEX = @PACKHEX@
#
DEFINES +=
CPPFLAGS += -I$(LIBCC_INCLUDE)
CPPFLAGS +=
CFLAGS +=
LD_PATHS +=

View File

@@ -52,7 +52,7 @@ CPPFLAGS +=
CFLAGS +=
LD_PATHS +=
LD_LIBS += $(LIBC_LIBM)
LD_LIBS += -lm
LDFLAGS +=
#

View File

@@ -14,8 +14,7 @@ README \
directory.cfg \
host.cfg.in \
leaf.cfg \
lib.cfg \
target.cfg.in
lib.cfg
SUBDIRS = \
Templates \

View File

@@ -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)

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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