From 2758c9f20bbd7360ed1e63fb0505abea46131ee4 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Tue, 14 Apr 1998 22:13:05 +0000 Subject: Ralf Corsepius suggested a way to get rid of UNIX compiler files and use gcc-target-default.cfg --- make/custom/HPUX9-posix.cfg | 96 +++++++++++++++++++++++++++++----- make/custom/Linux-posix.cfg | 117 +++++++++++++++++++++++++++++++----------- make/custom/Solaris-posix.cfg | 83 +++++++++++++++++++++--------- 3 files changed, 230 insertions(+), 66 deletions(-) (limited to 'make') diff --git a/make/custom/HPUX9-posix.cfg b/make/custom/HPUX9-posix.cfg index 27c45280c9..415715ba9d 100644 --- a/make/custom/HPUX9-posix.cfg +++ b/make/custom/HPUX9-posix.cfg @@ -8,8 +8,6 @@ HOST_ARCH=o-$(RTEMS_HOST) TARGET_ARCH=o-$(RTEMS_BSP) -include $(RTEMS_ROOT)/make/main.cfg - RTEMS_CPU=unix RTEMS_CPU_FAMILY=hppa1_1 RTEMS_CPU_MODEL=hppa7200 @@ -18,23 +16,19 @@ RTEMS_UNIX_FLAVOR=hpux # This is the actual bsp directory used during the build process. RTEMS_BSP_FAMILY=posix +include $(RTEMS_ROOT)/make/custom/default.cfg + # use the macros instead of the inline functions # The macros work better when mixed with other compilers. INLINE=macros INLINE_UPCASE=MACRO -# HOST Compiler config file -# You may also want to specify where the compiler resides here. -CC_$(HOST_ARCH)_DIR=$(RTEMS_GNUTOOLS_HOST) -CONFIG.$(HOST_ARCH).CC = $(RTEMS_ROOT)/make/compilers/gcc.cfg - ## Target compiler config file, if any CC_$(TARGET_ARCH)_DIR=$(CC_$(HOST_ARCH)_DIR) -CONFIG.$(TARGET_ARCH).CC = $(RTEMS_ROOT)/make/compilers/gcc-hpux9.cfg +CONFIG.$(TARGET_ARCH).CC = $(RTEMS_ROOT)/make/compilers/gcc-target-default.cfg -# Use the LIBC support for CYGNUS newlib -# RTEMS_LIBC_DIR must already be set (by module file) -RTEMS_USE_NEWLIB=yes +# RTEMS_LIBC_DIR must already be set (by configuration) DOES NOT MATTER +LIBC_DEFINES=-DRTEMS_UNIXLIB -DRTEMS_UNIX -DMALLOC_PROVIDED -DRTEMS_DEBUG # The following define the memory reserved in the executable for the # RTEMS Workspace and the C Program Heap. @@ -42,9 +36,6 @@ RTEMS_USE_NEWLIB=yes LIBC_DEFINES += -DWORKSPACE_MB=2 LIBC_DEFINES += -DHEAPSPACE_MB=1 -# Uncomment the following line if want stack checking should be enabled -#LIBC_DEFINES += -DSTACK_CHECKER_ON - # Define this to yes if this target supports multiprocessor environments. HAS_MP=yes @@ -55,4 +46,81 @@ HAS_KA9Q=no # This target does NOT support the POSIX API. HAS_POSIX_API=no +HAS_POSIX_API=no + +# optimize flag: typically -0, could use -O4 or -fast +# -O4 is ok for RTEMS +CFLAGS_OPTIMIZE_V = -O2 + +# This section makes the target dependent options file. + +# NDEBUG (C library) +# if defined asserts do not generate code. This is commonly used +# as a command line option. +# +# RTEMS_TEST_NO_PAUSE (RTEMS tests) +# do not pause between screens of output in the rtems tests +# +# NO_TABLE_MOVE (SPARC PORT) +# do not have a second trap table -- use the BSP's +# +# STACK_CHECKER_ON (RTEMS support code) +# If defined, stack bounds checking is enabled. +# +# STACK_CHECKER_REPORT_USAGE (RTEMS support code) +# If this and STACK_CHECKER_ON are defined, then a report on stack usage +# per task is printed when the program exits. +# +# RTEMS_DEBUG (RTEMS) +# If defined, debug checks in RTEMS and support library code are enabled. +# +# RTEMS_UNIX (unix) +# Define this to indicate this is an RTEMS UNIX port. + +define make-target-options + echo "/* #define NDEBUG 1 */ " >>$@ + echo "#define RTEMS_TEST_NO_PAUSE 1" >>$@ + echo "/* #define STACK_CHECKER_ON 1 */" >>$@ + echo "/* #define STACK_CHECKER_REPORT_USAGE 1 */" >>$@ + echo "/* #define RTEMS_DEBUG 1 */" >>$@ + echo "#define RTEMS_UNIX 1 " >>$@ +endef + +ifeq ($(RTEMS_USE_GCC272),yes) +define make-exe + $(CC) -o $@ $(LINK_FILES) $(LD_LIBS) $(LIBC_LIBM) $(LIBC_LIBC) + $(NM) -ng $@ > $(basename $@).num + $(SIZE) $@ +endef +else +# +# gcc28 not yet supported +# +endif + # Miscellaneous additions go here +# Setting formerly contained in gcc-hpux9.cfg + +# Not applicable - let's override 'em +LINKCMDS= +START_FILE= +START_BASE= + +# Here is the rule to actually build a $(ARCH)/foo.exe +# It also builds $(ARCH)/foo.sr and $(ARCH)/foo.nm +# Usage ref: src/tests/sptest/sp1/Makefile +# +# 'NODE' is set to 1 or 2 for multi cpu tests (ref: mptests/mp01/node1/Makefile) +# If NODE is set as an environment variable, don't trust it, zero it out. +# (NODE turns out to be a very common environment variable) +ifeq (,$(NODE)) +NODE=0 +else +ifeq "$(origin NODE)" "environment" +NODE=0 +endif +endif + +# Workaround for missing ranlib support in RTEMS +MKLIB=$(AR) s $(@) ; echo library is complete: + diff --git a/make/custom/Linux-posix.cfg b/make/custom/Linux-posix.cfg index c339d4e670..8327c170f0 100644 --- a/make/custom/Linux-posix.cfg +++ b/make/custom/Linux-posix.cfg @@ -4,12 +4,6 @@ # $Id$ # -# Specify here the host and target "architectures" -HOST_ARCH=o-$(RTEMS_HOST) -TARGET_ARCH=o-linux1 - -include $(RTEMS_ROOT)/make/main.cfg - RTEMS_CPU=unix RTEMS_CPU_FAMILY=i386 RTEMS_CPU_MODEL=i486dx @@ -18,45 +12,33 @@ RTEMS_UNIX_FLAVOR=linux # This is the actual bsp directory used during the build process. RTEMS_BSP_FAMILY=posix -# use the inline functions instead of the macros -# ref: src/exec/generic/Makefile -# Need INLINE_UPCASE set to uppercase value of INLINE variable -# ref: make/compilers/gcc-force386.cfg -ifeq ($(RTEMS_USE_MACROS),yes) -INLINE=macros -INLINE_UPCASE= -else -INLINE=inline -INLINE_UPCASE=INLINE -endif +# share the posix bsp +TARGET_ARCH=o-linux1 +RTEMS_BSP=posix -# HOST Compiler config file -# You may also want to specify where the compiler resides here. -CC_$(HOST_ARCH)_DIR=$(RTEMS_GNUTOOLS_HOST) -CONFIG.$(HOST_ARCH).CC = $(RTEMS_ROOT)/make/compilers/gcc.cfg +include $(RTEMS_ROOT)/make/custom/default.cfg ## Target compiler config file, if any -CC_$(TARGET_ARCH)_DIR=$(CC_$(HOST_ARCH)_DIR) -CONFIG.$(TARGET_ARCH).CC = $(RTEMS_ROOT)/make/compilers/gcc-linux1.cfg +CONFIG.$(TARGET_ARCH).CC = $(RTEMS_ROOT)/make/compilers/gcc-target-default.cfg # DO NOT Use the LIBC support for CYGNUS newlib -# RTEMS_LIBC_DIR must already be set (by module file) DOES NOT MATTER +RTEMS_USE_NEWLIB=no + +# RTEMS_LIBC_DIR must already be set (by configuration) DOES NOT MATTER LIBC_DEFINES=-DRTEMS_UNIXLIB -DRTEMS_UNIX -DMALLOC_PROVIDED -DRTEMS_DEBUG -LIBC_INCLUDE=/usr/include -LIBC_LIBC=-lc -LIBC_LIBM=-lm -LIBC_EXTRA_LIBS= # The following define the memory reserved in the executable for the # RTEMS Workspace and the C Program Heap. 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 ($(RTEMS_HAS_CPLUSPLUS),yes) HAS_CPLUSPLUS=yes -LIBCC_INCLUDE=/usr/include/g++ +# No need to set it, gcc knows about them +# LIBCC_INCLUDE=/usr/include/g++ CPLUS_LD_LIBS=-lstdc++ CPLUS_LD_LIBS += $(PROJECT_RELEASE)/lib/librtems++$(LIBSUFFIX_VA) else @@ -73,4 +55,81 @@ HAS_KA9Q=no # This target does NOT support the POSIX API. HAS_POSIX_API=no +# optimize flag: typically -0, could use -O4 or -fast +# -O4 is ok for RTEMS +CFLAGS_OPTIMIZE_V = -O2 + +# This section makes the target dependent options file. + +# NDEBUG (C library) +# if defined asserts do not generate code. This is commonly used +# as a command line option. +# +# RTEMS_TEST_NO_PAUSE (RTEMS tests) +# do not pause between screens of output in the rtems tests +# +# NO_TABLE_MOVE (SPARC PORT) +# do not have a second trap table -- use the BSP's +# +# STACK_CHECKER_ON (RTEMS support code) +# If defined, stack bounds checking is enabled. +# +# STACK_CHECKER_REPORT_USAGE (RTEMS support code) +# If this and STACK_CHECKER_ON are defined, then a report on stack usage +# per task is printed when the program exits. +# +# RTEMS_DEBUG (RTEMS) +# If defined, debug checks in RTEMS and support library code are enabled. +# +# RTEMS_UNIX (unix) +# Define this to indicate this is an RTEMS UNIX port. + +define make-target-options + echo "/* #define NDEBUG 1 */ " >>$@ + echo "#define RTEMS_TEST_NO_PAUSE 1" >>$@ + echo "/* #define STACK_CHECKER_ON 1 */" >>$@ + echo "/* #define STACK_CHECKER_REPORT_USAGE 1 */" >>$@ + echo "/* #define RTEMS_DEBUG 1 */" >>$@ + echo "#define RTEMS_UNIX 1 " >>$@ +endef + +ifeq ($(RTEMS_USE_GCC272),yes) +define make-exe + $(CC) -o $@ $(LINK_FILES) $(LD_LIBS) $(LIBC_LIBM) $(LIBC_LIBC) + $(NM) -ng $@ > $(basename $@).num + $(SIZE) $@ +endef +else +# +# gcc28 not yet supported +# +endif + + +# ***************************************************************** # Miscellaneous additions go here + +# Setting formerly contained in gcc-linux1.cfg + +# Not applicable - let's override 'em +LINKCMDS= +START_FILE= +START_BASE= + +# Here is the rule to actually build a $(ARCH)/foo.exe +# It also builds $(ARCH)/foo.sr and $(ARCH)/foo.nm +# Usage ref: src/tests/sptest/sp1/Makefile +# +# 'NODE' is set to 1 or 2 for multi cpu tests (ref: mptests/mp01/node1/Makefile) +# If NODE is set as an environment variable, don't trust it, zero it out. +# (NODE turns out to be a very common environment variable) +ifeq (,$(NODE)) +NODE=0 +else +ifeq "$(origin NODE)" "environment" +NODE=0 +endif +endif + +# Workaround for missing ranlib support in RTEMS +MKLIB=$(AR) s $(@) ; echo library is complete: diff --git a/make/custom/Solaris-posix.cfg b/make/custom/Solaris-posix.cfg index aeee569900..e1208c9302 100644 --- a/make/custom/Solaris-posix.cfg +++ b/make/custom/Solaris-posix.cfg @@ -4,12 +4,6 @@ # $Id$ # -# Specify here the host and target "architectures" -HOST_ARCH=o-$(RTEMS_HOST) -TARGET_ARCH=o-$(RTEMS_BSP) - -include $(RTEMS_ROOT)/make/main.cfg - RTEMS_CPU=unix RTEMS_CPU_FAMILY=sparc RTEMS_CPU_MODEL=sparc_v8 @@ -18,31 +12,20 @@ RTEMS_UNIX_FLAVOR=solaris # This is the actual bsp directory used during the build process. RTEMS_BSP_FAMILY=posix -# use the inline functions instead of the macros -# ref: src/exec/generic/Makefile -# Need INLINE_UPCASE set to uppercase value of INLINE variable -# ref: make/compilers/gcc-force386.cfg -ifeq (${RTEMS_USE_MACROS},yes) -INLINE=macros -INLINE_UPCASE= -else -INLINE=inline -INLINE_UPCASE=INLINE -endif +# share the posix bsp +TARGET_ARCH=o-solaris2 +RTEMS_BSP=posix -# HOST Compiler config file -# You may also want to specify where the compiler resides here. -CC_$(HOST_ARCH)_DIR=$(RTEMS_GNUTOOLS_HOST) -CONFIG.$(HOST_ARCH).CC = $(RTEMS_ROOT)/make/compilers/gcc.cfg +include $(RTEMS_ROOT)/make/default.cfg ## Target compiler config file, if any -CC_$(TARGET_ARCH)_DIR=$(CC_$(HOST_ARCH)_DIR) -CONFIG.$(TARGET_ARCH).CC = $(RTEMS_ROOT)/make/compilers/gcc-solaris2.cfg +CONFIG.$(TARGET_ARCH).CC = $(RTEMS_ROOT)/make/compilers/gcc-target-default.cfg # Use the LIBC support for CYGNUS newlib # RTEMS_LIBC_DIR must already be set (by module file) RTEMS_USE_NEWLIB=no +LIBC_DEFINES=-DRTEMS_UNIXLIB -DRTEMS_UNIX -DMALLOC_PROVIDED -DRTEMS_DEBUG LIBC_LIBM=-lm # Define this to yes if C++ is included in the development environment @@ -67,4 +50,58 @@ HAS_KA9Q=no # This target does NOT support the POSIX API. HAS_POSIX_API=no +# optimize flag: typically -0, could use -O4 or -fast +# -O4 is ok for RTEMS +CFLAGS_OPTIMIZE_V = -O2 + +# This section makes the target dependent options file. + +# NDEBUG (C library) +# if defined asserts do not generate code. This is commonly used +# as a command line option. +# +# RTEMS_TEST_NO_PAUSE (RTEMS tests) +# do not pause between screens of output in the rtems tests +# +# NO_TABLE_MOVE (SPARC PORT) +# do not have a second trap table -- use the BSP's +# +# STACK_CHECKER_ON (RTEMS support code) +# If defined, stack bounds checking is enabled. +# +# STACK_CHECKER_REPORT_USAGE (RTEMS support code) +# If this and STACK_CHECKER_ON are defined, then a report on stack usage +# per task is printed when the program exits. +# +# RTEMS_DEBUG (RTEMS) +# If defined, debug checks in RTEMS and support library code are enabled. +# +# RTEMS_UNIX (unix) +# Define this to indicate this is an RTEMS UNIX port. + +define make-target-options + echo "/* #define NDEBUG 1 */ " >>$@ + echo "#define RTEMS_TEST_NO_PAUSE 1" >>$@ + echo "/* #define STACK_CHECKER_ON 1 */" >>$@ + echo "/* #define STACK_CHECKER_REPORT_USAGE 1 */" >>$@ + echo "/* #define RTEMS_DEBUG 1 */" >>$@ + echo "#define RTEMS_UNIX 1 " >>$@ +endef + +ifeq ($(RTEMS_USE_GCC272),yes) +define make-exe + $(CC) -o $@ $(LINK_FILES) $(LD_LIBS) $(LIBC_LIBM) $(LIBC_LIBC) + $(NM) -ng $@ > $(basename $@).num + $(SIZE) $@ +endef +else +# +# gcc28 not yet supported +# +endif + + +# ***************************************************************** + + # Miscellaneous additions go here -- cgit v1.2.3