Removed all references to HOST_ARCH including the file gcc.cfg.in. All

host programs are now compiled with automake generated rules.  This was
done after discussions with Ralf Corsepius and Eric Norum.
This commit is contained in:
Joel Sherrill
1999-10-26 14:22:55 +00:00
parent 2782e69ff0
commit 65a60cd427
10 changed files with 4 additions and 474 deletions

View File

@@ -217,19 +217,6 @@
Your own private configuration file. Specifies which of the above Your own private configuration file. Specifies which of the above
files you want to include. files you want to include.
Example: custom/pc386.cfg
CONFIG.$(HOST_ARCH).OS = $(RTEMS_ROOT)/make/os/HPUX-9.0.cfg
# HOST Compiler config file
# You may also want to specify where the compiler resides here.
CC_$(HOST_ARCH)_DIR=/usr/local
CONFIG.$(HOST_ARCH).CC = $(RTEMS_ROOT)/make/compilers/gcc.cfg
## Target compiler config file, if any
CC_$(TARGET_ARCH)_DIR=$(RTEMS_GNUTOOLS)
CONFIG.$(TARGET_ARCH).CC = $(RTEMS_ROOT)/make/compilers/gcc-pc386.cfg
generic rules file generic rules file
------------------ ------------------
@@ -306,10 +293,6 @@
a number of MAKE variables are automatically set and maintained by a number of MAKE variables are automatically set and maintained by
the config files. the config files.
CONFIG.$(HOST_ARCH).CC
-- full path of C compilation config file, set by custom
config file.
PROJECT_RELEASE PROJECT_RELEASE
-- release/install directory -- release/install directory
[ $(PROJECT_ROOT) ] [ $(PROJECT_ROOT) ]
@@ -329,10 +312,6 @@
ARCH -- target sub-directory for object code ARCH -- target sub-directory for object code
[ eg: o-pc386 or o-pc386-debug ] [ eg: o-pc386 or o-pc386-debug ]
HOST_ARCH
-- host machine architecture name
[ eg: sun4, sparc on SVR4 ]
VARIANTS -- full list of all possible values for $(ARCH); VARIANTS -- full list of all possible values for $(ARCH);
used mainly for 'make clean' used mainly for 'make clean'
[ eg: "o-pc386 o-pc386-debug o-pc386-profile" ] [ eg: "o-pc386 o-pc386-debug o-pc386-profile" ]

View File

@@ -10,12 +10,6 @@ rtems_make_compilersdir=$(rtems_makedir)/compilers
## At the moment all actively supported configurations ## At the moment all actively supported configurations
## use gcc-target-default.cfg only. ## use gcc-target-default.cfg only.
rtems_make_compilers_DATA= \ rtems_make_compilers_DATA= \
gcc.cfg \
gcc-target-default.cfg gcc-target-default.cfg
if MAINTAINER_MODE
$(srcdir)/gcc.cfg.in: $(top_srcdir)/@RTEMS_TOPdir@/make/compilers/gcc.cfg.in
cp $< $@
endif
include $(top_srcdir)/../../../automake/local.am include $(top_srcdir)/../../../automake/local.am

View File

@@ -1,203 +0,0 @@
#
# $Id$
#
# gcc 2.6.x native compiler
# Compiler (and tools) configuration
#
# Additional target names (other than debug, profile)
TARGET_VARIANTS +=
#
# Pre-processor defines.
# Local tailoring (on the command line) can be done by setting XCPPFLAGS
# which is never set in the Makefile's
#
CPPFLAGS=$(XCPPFLAGS) $(DEFINES)
#
# Local tailoring (on the command line) can be done by setting CFLAGS
# which is never set in the Makefile's
#
#
# 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 in the leaf
# Makefiles by the 'debug:' and 'profile:' targets to their _V values.
#
# default flags
CFLAGS_DEFAULT = @CC_CFLAGS_DEFAULT@
# Under MS-DOS do not use pipes
# It turns out the pipes don't work with some non-gas assemblers either. :(
# ifneq ($(RTEMS_HOST),msdos)
# # CFLAGS_DEFAULT += -pipe
# CFLAGS_DEFAULT +=
# endif
# Additional target names (other than debug, profile)
# optimize flag: typically -0, could use -O4 or -fast
# -O4 is ok for RTEMS
CFLAGS_OPTIMIZE_V=-O
# debug flag; typically -g
CFLAGS_DEBUG_V=@CC_CFLAGS_DEBUG_V@
# when debugging, optimize flag: typically empty
# some compilers do allow optimization with their "-g"
CFLAGS_DEBUG_OPTIMIZE_V=
# profile flag; use gprof(1)
CFLAGS_PROFILE_V=@CC_CFLAGS_PROFILE_V@
# default is to optimize
CFLAGS_OPTIMIZE=$(CFLAGS_OPTIMIZE_V)
# dynamic libraries
CFLAGS_DYNAMIC_V=-fpic
ASFLAGS_DYNAMIC_V=
# XCFLAGS are now local flags to avoid conflict with cygnus configure
XCFLAGS=$(CFLAGS_OPTIMIZE) $(CFLAGS_DEBUG) $(CFLAGS_PROFILE) \
$(CFLAGS_DEFAULT)
# List of library paths without -L
LD_PATHS=
# libraries you want EVERYONE to link with
LD_LIBS=
# ld flag to ensure pure-text
LDFLAGS_MUST_BE_PURE_V =
# ld flag for [un]shared objects
LDFLAGS_STATIC_LIBRARIES_V =
LDFLAGS_SHARED_LIBRARIES_V =
# ld flag for incomplete link
LDFLAGS_INCOMPLETE = -r
# Special linker options when building lib.so
LDFLAGS_DYNAMIC_V = ??
# Some dynamic linking systems want the preferred name recorded in the binary
# ref: src/libxil/Makefile
LDFLAGS_DYNAMIC_LIBNAME_V = -h $(DYNAMIC_VERSION_LIBNAME)
# ld flags for profiling, debugging
LDFLAGS_PROFILE_V = @CC_LDFLAGS_PROFILE_V@
LDFLAGS_DEBUG_V =
LDFLAGS=$(LDFLAGS_PROFILE) $(LDFLAGS_DEBUG) $(LD_PATHS:%=-L %)
#
# Stuff to clean and clobber for the compiler and its tools
#
CLEAN_CC = a.out *.o *.BAK
CLOBBER_CC =
#
# Client compiler and support tools
#
# CC_FOR_BUILD=gcc -O
# override CC=$(CC_FOR_BUILD)
CC=@CC@
# CPP command to write file to standard output
CPP=$(CC) -E
# flags set by cc when running cpp
CPP_CC_FLAGS=-D__STDC__
# egrep regexp to ignore symbol table entries in ar archives.
# Only used to make sure we skip them when coalescing libraries.
# skip __.SYMDEF and empty names (maybe bug in ranlib??).
AR_SYMBOL_TABLE="HIGHLY-UNLIKELY-TO-CONFLICT"
ARFLAGS=ruv
#
# Command to convert a normal archive to one searchable by $(LD)
# Not needed on SVR4
# FIXME: Should be handled by autoconf. Doesn't matter, because
# rtems doesn't have any host-libraries until now.
#
MKLIB=echo library is complete:
#
# How to compile stuff into ${ARCH} subdirectory
#
# NOTE: we override COMPILE.c
#
COMPILE.c=$(CC) $(CFLAGS) $(CPPFLAGS) $(XCFLAGS) -c
${ARCH}/%.o: %.c
${COMPILE.c} -o $@ $<
${ARCH}/%.o: %.cc
${COMPILE.c} -o $@ $<
# assembly runs gasp
${ARCH}/%.o: %.s
$(CPP) ${CPPFLAGS} $< | $(SED) 's/% /%/g' | $(SED) 's/^#.*//' >$(ARCH)/$*.i
$(AS) -o $@ $(ARCH)/$*.i
$(RM) $(ARCH)/$*.i
# Link host applications.
define make-exe
${CC} ${LDFLAGS} -o $@ $^ ${LD_LIBS}
endef
# Specify our own default rule for this to prevent having CFLAGS and
# CPPFLAGS being passed to linker
#
# NOTE: This rule is only used as fallback for host-tool makefiles
# which don't provide their own rule
${ARCH}/%$(EXEEXT): ${ARCH}/%.o
$(make-exe)
# create $(ARCH)/pgm from pgm.sh
${ARCH}/%: %.sh
$(RM) $@
$(CP) $< $@
$(CHMOD) +x $@
# Dependency files for use by gmake
# NOTE: we don't put in $(TARGET_ARCH)
# so that 'make clean' doesn't blow it away
DEPEND=Depends-$(TARGET_ARCH:o-%=%)
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'
#
depend: $(C_FILES) $(CC_FILES) $(S_FILES)
ifneq ($(words $(C_FILES) $(CC_FILES) $(S_FILES)), 0)
# 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.c) -M $^ | \
$(SED) -e 's?^\(.*\)\.o[ ]*:?$$(ARCH)/\1.o:?' \
-e 's?$(ARCH)/?$$(ARCH)/?' >$(DEPEND).tmp
$(MV) $(DEPEND).tmp $(DEPEND)
endif
define make-rel
$(LD) $(LDFLAGS_INCOMPLETE) $(XLDFLAGS) -o $@ $(OBJS)
endef

View File

@@ -128,5 +128,4 @@ bsp.cfg
custom/Makefile custom/Makefile
custom/default.cfg custom/default.cfg
compilers/Makefile compilers/Makefile
compilers/gcc.cfg
) )

View File

@@ -217,19 +217,6 @@
Your own private configuration file. Specifies which of the above Your own private configuration file. Specifies which of the above
files you want to include. files you want to include.
Example: custom/pc386.cfg
CONFIG.$(HOST_ARCH).OS = $(RTEMS_ROOT)/make/os/HPUX-9.0.cfg
# HOST Compiler config file
# You may also want to specify where the compiler resides here.
CC_$(HOST_ARCH)_DIR=/usr/local
CONFIG.$(HOST_ARCH).CC = $(RTEMS_ROOT)/make/compilers/gcc.cfg
## Target compiler config file, if any
CC_$(TARGET_ARCH)_DIR=$(RTEMS_GNUTOOLS)
CONFIG.$(TARGET_ARCH).CC = $(RTEMS_ROOT)/make/compilers/gcc-pc386.cfg
generic rules file generic rules file
------------------ ------------------
@@ -306,10 +293,6 @@
a number of MAKE variables are automatically set and maintained by a number of MAKE variables are automatically set and maintained by
the config files. the config files.
CONFIG.$(HOST_ARCH).CC
-- full path of C compilation config file, set by custom
config file.
PROJECT_RELEASE PROJECT_RELEASE
-- release/install directory -- release/install directory
[ $(PROJECT_ROOT) ] [ $(PROJECT_ROOT) ]
@@ -329,10 +312,6 @@
ARCH -- target sub-directory for object code ARCH -- target sub-directory for object code
[ eg: o-pc386 or o-pc386-debug ] [ eg: o-pc386 or o-pc386-debug ]
HOST_ARCH
-- host machine architecture name
[ eg: sun4, sparc on SVR4 ]
VARIANTS -- full list of all possible values for $(ARCH); VARIANTS -- full list of all possible values for $(ARCH);
used mainly for 'make clean' used mainly for 'make clean'
[ eg: "o-pc386 o-pc386-debug o-pc386-profile" ] [ eg: "o-pc386 o-pc386-debug o-pc386-profile" ]

View File

@@ -7,8 +7,7 @@ AUTOMAKE_OPTIONS = foreign 1.4
EXTRA_DIST = \ EXTRA_DIST = \
gcc-no_bsp.cfg \ gcc-no_bsp.cfg \
gcc-portsw.cfg \ gcc-portsw.cfg \
gcc-target-default.cfg \ gcc-target-default.cfg
gcc.cfg.in
## ------------------------------------------------------- ## -------------------------------------------------------
include $(top_srcdir)/automake/local.am include $(top_srcdir)/automake/local.am

View File

@@ -1,203 +0,0 @@
#
# $Id$
#
# gcc 2.6.x native compiler
# Compiler (and tools) configuration
#
# Additional target names (other than debug, profile)
TARGET_VARIANTS +=
#
# Pre-processor defines.
# Local tailoring (on the command line) can be done by setting XCPPFLAGS
# which is never set in the Makefile's
#
CPPFLAGS=$(XCPPFLAGS) $(DEFINES)
#
# Local tailoring (on the command line) can be done by setting CFLAGS
# which is never set in the Makefile's
#
#
# 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 in the leaf
# Makefiles by the 'debug:' and 'profile:' targets to their _V values.
#
# default flags
CFLAGS_DEFAULT = @CC_CFLAGS_DEFAULT@
# Under MS-DOS do not use pipes
# It turns out the pipes don't work with some non-gas assemblers either. :(
# ifneq ($(RTEMS_HOST),msdos)
# # CFLAGS_DEFAULT += -pipe
# CFLAGS_DEFAULT +=
# endif
# Additional target names (other than debug, profile)
# optimize flag: typically -0, could use -O4 or -fast
# -O4 is ok for RTEMS
CFLAGS_OPTIMIZE_V=-O
# debug flag; typically -g
CFLAGS_DEBUG_V=@CC_CFLAGS_DEBUG_V@
# when debugging, optimize flag: typically empty
# some compilers do allow optimization with their "-g"
CFLAGS_DEBUG_OPTIMIZE_V=
# profile flag; use gprof(1)
CFLAGS_PROFILE_V=@CC_CFLAGS_PROFILE_V@
# default is to optimize
CFLAGS_OPTIMIZE=$(CFLAGS_OPTIMIZE_V)
# dynamic libraries
CFLAGS_DYNAMIC_V=-fpic
ASFLAGS_DYNAMIC_V=
# XCFLAGS are now local flags to avoid conflict with cygnus configure
XCFLAGS=$(CFLAGS_OPTIMIZE) $(CFLAGS_DEBUG) $(CFLAGS_PROFILE) \
$(CFLAGS_DEFAULT)
# List of library paths without -L
LD_PATHS=
# libraries you want EVERYONE to link with
LD_LIBS=
# ld flag to ensure pure-text
LDFLAGS_MUST_BE_PURE_V =
# ld flag for [un]shared objects
LDFLAGS_STATIC_LIBRARIES_V =
LDFLAGS_SHARED_LIBRARIES_V =
# ld flag for incomplete link
LDFLAGS_INCOMPLETE = -r
# Special linker options when building lib.so
LDFLAGS_DYNAMIC_V = ??
# Some dynamic linking systems want the preferred name recorded in the binary
# ref: src/libxil/Makefile
LDFLAGS_DYNAMIC_LIBNAME_V = -h $(DYNAMIC_VERSION_LIBNAME)
# ld flags for profiling, debugging
LDFLAGS_PROFILE_V = @CC_LDFLAGS_PROFILE_V@
LDFLAGS_DEBUG_V =
LDFLAGS=$(LDFLAGS_PROFILE) $(LDFLAGS_DEBUG) $(LD_PATHS:%=-L %)
#
# Stuff to clean and clobber for the compiler and its tools
#
CLEAN_CC = a.out *.o *.BAK
CLOBBER_CC =
#
# Client compiler and support tools
#
# CC_FOR_BUILD=gcc -O
# override CC=$(CC_FOR_BUILD)
CC=@CC@
# CPP command to write file to standard output
CPP=$(CC) -E
# flags set by cc when running cpp
CPP_CC_FLAGS=-D__STDC__
# egrep regexp to ignore symbol table entries in ar archives.
# Only used to make sure we skip them when coalescing libraries.
# skip __.SYMDEF and empty names (maybe bug in ranlib??).
AR_SYMBOL_TABLE="HIGHLY-UNLIKELY-TO-CONFLICT"
ARFLAGS=ruv
#
# Command to convert a normal archive to one searchable by $(LD)
# Not needed on SVR4
# FIXME: Should be handled by autoconf. Doesn't matter, because
# rtems doesn't have any host-libraries until now.
#
MKLIB=echo library is complete:
#
# How to compile stuff into ${ARCH} subdirectory
#
# NOTE: we override COMPILE.c
#
COMPILE.c=$(CC) $(CFLAGS) $(CPPFLAGS) $(XCFLAGS) -c
${ARCH}/%.o: %.c
${COMPILE.c} -o $@ $<
${ARCH}/%.o: %.cc
${COMPILE.c} -o $@ $<
# assembly runs gasp
${ARCH}/%.o: %.s
$(CPP) ${CPPFLAGS} $< | $(SED) 's/% /%/g' | $(SED) 's/^#.*//' >$(ARCH)/$*.i
$(AS) -o $@ $(ARCH)/$*.i
$(RM) $(ARCH)/$*.i
# Link host applications.
define make-exe
${CC} ${LDFLAGS} -o $@ $^ ${LD_LIBS}
endef
# Specify our own default rule for this to prevent having CFLAGS and
# CPPFLAGS being passed to linker
#
# NOTE: This rule is only used as fallback for host-tool makefiles
# which don't provide their own rule
${ARCH}/%$(EXEEXT): ${ARCH}/%.o
$(make-exe)
# create $(ARCH)/pgm from pgm.sh
${ARCH}/%: %.sh
$(RM) $@
$(CP) $< $@
$(CHMOD) +x $@
# Dependency files for use by gmake
# NOTE: we don't put in $(TARGET_ARCH)
# so that 'make clean' doesn't blow it away
DEPEND=Depends-$(TARGET_ARCH:o-%=%)
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'
#
depend: $(C_FILES) $(CC_FILES) $(S_FILES)
ifneq ($(words $(C_FILES) $(CC_FILES) $(S_FILES)), 0)
# 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.c) -M $^ | \
$(SED) -e 's?^\(.*\)\.o[ ]*:?$$(ARCH)/\1.o:?' \
-e 's?$(ARCH)/?$$(ARCH)/?' >$(DEPEND).tmp
$(MV) $(DEPEND).tmp $(DEPEND)
endif
define make-rel
$(LD) $(LDFLAGS_INCOMPLETE) $(XLDFLAGS) -o $@ $(OBJS)
endef

View File

@@ -5,9 +5,6 @@
# #
# Specify here the host and target "architectures" # Specify here the host and target "architectures"
HOST_ARCH=o-$(RTEMS_HOST)
TARGET_ARCH=o-$(RTEMS_BSP)
RTEMS_CPU=unix RTEMS_CPU=unix
RTEMS_CPU_FAMILY=hppa1_1 RTEMS_CPU_FAMILY=hppa1_1
RTEMS_CPU_MODEL=hppa7200 RTEMS_CPU_MODEL=hppa7200

View File

@@ -12,7 +12,6 @@ include $(RTEMS_ROOT)/make/target.cfg
include $(RTEMS_ROOT)/make/host.cfg include $(RTEMS_ROOT)/make/host.cfg
# Specify here the host and target "architectures" # Specify here the host and target "architectures"
HOST_ARCH=o-$(RTEMS_HOST)
ifndef TARGET_ARCH ifndef TARGET_ARCH
TARGET_ARCH=o-$(RTEMS_BSP) TARGET_ARCH=o-$(RTEMS_BSP)
endif endif
@@ -30,10 +29,6 @@ INLINE=inline
INLINE_UPCASE=INLINE INLINE_UPCASE=INLINE
endif endif
# HOST Compiler config file
# You may also want to specify where the compiler resides here.
CONFIG.$(HOST_ARCH).CC = $(PROJECT_ROOT)/make/compilers/gcc.cfg
## Target compiler config file, if any ## Target compiler config file, if any
CONFIG.$(TARGET_ARCH).CC = $(RTEMS_ROOT)/make/compilers/gcc-target-default.cfg CONFIG.$(TARGET_ARCH).CC = $(RTEMS_ROOT)/make/compilers/gcc-target-default.cfg

View File

@@ -34,16 +34,10 @@ MANAGERS := $(patsubst all, $(MANAGER_LIST), $(MANAGERS))
# and finally rip out duplicates # and finally rip out duplicates
MANAGERS := $(sort $(MANAGERS)) MANAGERS := $(sort $(MANAGERS))
# Pull in the desired compiler # Pull in the desired "target" compiler
# This is almost always the "target" compiler. # Programs built on the host use automake generated rules.
# But sometimes, you have to build something on the host.
# Allow for that by allowing individual Makefiles specify $(USE_HOST_COMPILER)
# This will not change $(ARCH) -- binaries will still be place as per target # This will not change $(ARCH) -- binaries will still be place as per target
ifeq (,$(USE_HOST_COMPILER)) include ${CONFIG.$(TARGET_ARCH).CC}
include ${CONFIG.$(TARGET_ARCH).CC}
else
include $(CONFIG.$(HOST_ARCH).CC)
endif
ifeq (${DEPEND},$(wildcard ${DEPEND})) ifeq (${DEPEND},$(wildcard ${DEPEND}))
include ${DEPEND} # pull in dependencies if they exist include ${DEPEND} # pull in dependencies if they exist
endif endif