URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
Compare Revisions
- This comparison shows the changes necessary to convert path
/openrisc/trunk/rtos/rtems/make/compilers
- from Rev 30 to Rev 173
- ↔ Reverse comparison
Rev 30 → Rev 173
/gcc-target-default.cfg
0,0 → 1,301
# |
# Shared compiler for all GNU tools configurations |
# |
# $Id: gcc-target-default.cfg,v 1.2 2001-09-27 12:02:51 chris Exp $ |
# |
|
## |
# 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 |
# XCPPFLAGS, XCFLAGS, XCXXFLAGS, XASFLAGS |
# are used to add flags from the shell |
# cf. make.info ("Implicit rules/variables" for details) |
|
# NOTE: Should these go to CPPFLAGS ? |
CFLAGS_DEFAULT=-g -Wall -ansi -fasm |
|
# NOTE: CPU_CFLAGS should probably be renamed to CPU_CPPFLAGS |
# NOTE: CPU_DEFINES should probably be merged with CPU_CFLAGS |
CPPFLAGS += $(CPU_DEFINES) $(CPU_CFLAGS) $(DEFINES) $(XCPPFLAGS) |
CFLAGS = $(CFLAGS_DEFAULT) $(XCFLAGS) |
CXXFLAGS = $(CFLAGS_DEFAULT) $(XCXXFLAGS) |
ASFLAGS = $(CPU_ASFLAGS) $(XASFLAGS) |
|
ifeq ($(RTEMS_USE_GCC272),yes) |
ifeq ($(RTEMS_CROSS_TARGET),no) |
|
ifdef RTEMS_LIBC_DIR |
RTEMS_LIBC_INCLUDES := -I$(RTEMS_LIBC_DIR)/include |
endif |
|
# Used for posix bsps |
CPPFLAGS += \ |
-I$(PROJECT_INCLUDE) \ |
$(RTEMS_LIBC_INCLUDES) |
else |
# Used for embedded bsps |
# Ask gcc where it finds its own include files |
GCC_INCLUDE=$(shell $(CC) $(CPU_CFLAGS) -print-file-name=include $(GCCSED)) |
|
CPPFLAGS += -nostdinc \ |
-I$(PROJECT_INCLUDE) \ |
-I$(GCC_INCLUDE) \ |
-I$(RTEMS_LIBC_DIR)/sys-include \ |
-I$(RTEMS_LIBC_DIR)/include |
endif |
|
# default location of Standard C Library |
ifndef LIBC_LIBC |
LIBC_LIBC=$(RTEMS_LIBC_DIR)/lib/libc.a |
endif |
|
ifndef LIBC_LIBM |
LIBC_LIBM=$(RTEMS_LIBC_DIR)/lib/libm.a |
endif |
|
else |
# NOTE: GCCSPECS probably belongs to CPPFLAGS |
# Unfortunately, many custom/*.cfg files do not pass CPPFLAGS |
# to their gcc-2.8 make-exe rules |
GCCSPECS = -B$(PROJECT_RELEASE)/lib/ -specs bsp_specs -qrtems |
|
CC += $(GCCSPECS) |
CXX += $(GCCSPECS) |
|
CPPFLAGS += |
|
# default location of Standard C Library |
ifndef LIBC_LIBC |
LIBC_LIBC=$(shell $(CC) $(CPU_CFLAGS) -print-file-name=libc.a $(GCCSED)) |
endif |
|
ifndef LIBC_LIBM |
LIBC_LIBM=$(shell $(CC) $(CPU_CFLAGS) -print-file-name=libm.a $(GCCSED)) |
endif |
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 ($(HAS_CPLUSPLUS),yes) |
CPLUS_LD_LIBS += $(PROJECT_RELEASE)/lib/librtems++$(LIBSUFFIX_VA) |
endif |
|
# debug flag; |
CFLAGS_DEBUG_V+=-Wno-unused |
|
ifeq ($(RTEMS_USE_GCC272),no) |
CFLAGS_DEBUG_V+=-qrtems_debug |
endif |
|
# profile flag; use gprof(1) |
CFLAGS_PROFILE_V=-pg |
|
ifndef AUTOMAKE |
# default is to optimize |
CFLAGS_OPTIMIZE=$(CFLAGS_OPTIMIZE_V) |
endif |
|
# dynamic libraries |
#CFLAGS_DYNAMIC_V=-fpic |
#ASFLAGS_DYNAMIC_V= |
|
ifndef AUTOMAKE |
CFLAGS += $(CFLAGS_OPTIMIZE) $(CFLAGS_DEBUG) $(CFLAGS_PROFILE) |
endif |
|
# List of library paths without -L |
LD_PATHS= $(PROJECT_RELEASE)/lib |
|
# 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 = |
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 |
# |
|
# CPP command to write file to standard output |
CPP=$(CC) -E -ansi -w -Wp,-$$ |
|
# flags set by cc when running cpp |
# NOTE: CPP_CC_FLAGS does not seem to be used anywhere |
# 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 |
|
# |
# How to compile stuff into ${ARCH} subdirectory |
# |
|
${ARCH}/%.o: %.c |
${COMPILE.c} $(AM_CPPFLAGS) $(AM_CFLAGS) -o $@ $< |
|
${ARCH}/%.o: %.cc |
${COMPILE.cc} $(AM_CPPFLAGS) $(AM_CXXFLAGS) -o $@ $< |
|
${ARCH}/%.o: %.cpp |
${COMPILE.cc} $(AM_CPPFLAGS) $(AM_CXXFLAGS) -o $@ $< |
|
${ARCH}/%.o: %.cxx |
${COMPILE.cc} $(AM_CPPFLAGS) $(AM_CXXFLAGS) -o $@ $< |
|
${ARCH}/%.o: %.C |
${COMPILE.cc} $(AM_CPPFLAGS) $(AM_CXXFLAGS) -o $@ $< |
|
${ARCH}/%.o: %.S |
${COMPILE.S} $(AM_CPPFLAGS) -DASM -o $@ $< |
|
# Make foo.rel from foo.o |
${ARCH}/%.rel: ${ARCH}/%.o |
${make-rel} |
|
# create $(ARCH)/pgm from pgm.sh |
${ARCH}/%: %.sh |
$(RM) $@ |
$(CP) $< $@ |
$(CHMOD) +x $@ |
|
# Dependency files for use by gmake |
# NOTE: we don't put them into $(ARCH) |
# so that 'make clean' doesn't blow it away |
|
DEPEND=Depends-${ARCH} |
|
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-am: $(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) $(AM_CPPFLAGS) $(AM_CFLAGS) -M $^ | \ |
$(SED) -e 's?^\(.*\)\.o[ ]*:?$$(ARCH)/\1.o:?' \ |
-e 's?$(ARCH)/?$$(ARCH)/?' >$(DEPEND).tmp |
$(MV) $(DEPEND).tmp $(DEPEND) |
endif |
depend: depend-am |
|
# spell out all the LINK_FILE's, rather than using -lbsp, so |
# that $(LINK_FILES) can be a dependency |
|
# Start file must be one of |
# $(PROJECT_RELEASE)/lib/start$(LIB_VARIANT).o |
# $(PROJECT_RELEASE)/lib/asmiface$(LIB_VARIANT).o |
# It defaults to start.o, but an app can override it. |
|
ifeq ($(START_BASE),) |
START_FILE= |
else |
START_FILE=$(PROJECT_RELEASE)/lib/$(START_BASE)$(LIB_VARIANT).o |
endif |
|
CONSTRUCTOR= |
|
LIBC_LOW= |
|
ifndef LIBGCC |
LIBGCC = $(shell $(CC) $(CFLAGS) -print-libgcc-file-name $(GCCSED)) |
endif |
|
# |
# NOTE: a rule to link an rtems' application should look similar to this |
# (cf. "make-exe" in make/custom/*.cfg): |
# |
# gcc27: |
# $(PGM): $(LINK_FILES) |
# $(LD) $(LDFLAGS) -o $@ $(LINK_OBJS) \ |
# --start-group $(LINK_LIBS) --end-group |
# |
# gcc28: |
# $(PGM): $(LINK_FILES) |
# $(CC) $(CFLAGS) -o $@ $(LINK_OBJS) $(LINK_LIBS) |
# |
|
LINK_OBJS =\ |
$(CONSTRUCTOR) \ |
$(OBJS) \ |
$(MANAGERS_NOT_WANTED:%=$(PROJECT_RELEASE)/lib/no-%$(LIB_VARIANT).rel) |
|
LINK_FILES =\ |
$(START_FILE) \ |
$(CONSTRUCTOR) \ |
$(OBJS) \ |
$(MANAGERS_NOT_WANTED:%=$(PROJECT_RELEASE)/lib/no-%$(LIB_VARIANT).rel) \ |
$(PROJECT_RELEASE)/lib/librtemsall$(LIBSUFFIX_VA) |
|
ifeq ($(RTEMS_USE_GCC272),yes) |
LINK_LIBS = $(PROJECT_RELEASE)/lib/librtemsall$(LIBSUFFIX_VA) |
ifeq ($(RTEMS_CROSS_TARGET),yes) |
# NOTE: add libc and libgcc only for embedded targets |
# LIBC_LIBM should not be needed by rtems itself. |
# FIXME: If a BSP requires libm, its make/custom/*.cfg file should add |
# LIBC_LIBM to LINK_LIBS (untested) |
LINK_LIBS += $(LIBC_LIBC) $(LIBGCC) |
endif |
endif |
|
LINK_LIBS += $(LD_LIBS) |
|
# |
# Allow user to override link commands (to build a prom image, perhaps) |
# |
ifndef LINKCMDS |
LINKCMDS=$(PROJECT_RELEASE)/lib/linkcmds |
endif |
|
ifeq ($(RTEMS_USE_GCC272),yes) |
define make-rel |
$(LD) $(LDFLAGS_INCOMPLETE) $(XLDFLAGS) -o $@ $^ |
endef |
else |
define make-rel |
$(LINK.c) $(AM_CFLAGS) $(AM_LDFLAGS) \ |
-qnolinkcmds -nostdlib -Wl,-r $(XLDFLAGS) -o $@ $^ |
endef |
endif |
/gcc-portsw.cfg
0,0 → 1,290
# |
# gcc-no_bsp.cfg,v 1.13 1995/12/19 19:59:57 joel Exp |
# |
# This is for the amd29k portsw board. |
# |
# THIS IS NOT A GNU TOOLS BASED PORT!!! |
# |
|
# Prefix on the installed GNU tools |
# Just use the native tools |
GNU_TOOLS_PREFIX= |
|
# 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 |
# |
# Possible defines include: |
# -DRTEMS_LIBC using libc bundled with RTEMS |
# -DRTEMS_NEWLIB using CYGNUS libc |
# -DMALLOC_PROVIDED must be used for newlib reent struct |
|
DEFINES:= $(LIBC_DEFINES) |
|
GCC_INCLUDE=. |
|
# Note: normally we do not want the standard include files |
# Also we usually include a "libc_include" directory |
CPPFLAGS=$(XCPPFLAGS) $(DEFINES) \ |
-I$(RTEMS_LIBC_DIR)/include \ |
-I$(PROJECT_INCLUDE) \ |
-I/opt/29k/src/inc |
|
# |
# Local tailoring (on the command line) can be done by setting XCFLAGS |
# 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 = -NB -bwc -nocrt0 -Ml -m -g -Hansi -Hon=Pointers_compatible -Hon=Pointers_compatible_with_ints -Dinline= -D___AM29K__ -Hnocopyr |
|
# optimize flag: typically -0, could use -O4 or -fast |
# -O4 is ok for RTEMS |
# -Os to optimize for size |
CFLAGS_OPTIMIZE_V=-Os |
|
# debug flag; typically -g |
CFLAGS_DEBUG_V=-g -O0 -DRTEMS_DEBUG -DSTACK_CHECKER_ON |
|
# profile flag; use gprof(1) |
CFLAGS_PROFILE_V= |
|
# default is to optimize |
CFLAGS_OPTIMIZE=$(CFLAGS_OPTIMIZE_V) |
|
# dynamic libraries |
CFLAGS_DYNAMIC_V=-fpic |
#ASFLAGS_DYNAMIC_V= |
|
CFLAGS=$(CFLAGS_DEFAULT) $(CFLAGS_OPTIMIZE) $(CFLAGS_DEBUG) $(CFLAGS_PROFILE) |
|
# List of library paths without -L |
LD_PATHS= $(PROJECT_RELEASE)/lib |
|
# 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 = -i |
|
# 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 = |
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=/opt/29k/bin/hc29 |
CXX=$(CC) |
CCC=$(CXX) |
|
# CPP command to write file to standard output |
CPP=$(CC) -E |
|
# flags set by cc when running cpp |
CPP_CC_FLAGS=-D__STDC__ |
|
AS=/opt/29k/bin/as29 |
ASPP=ERROR_NO_ASPP |
|
ASFLAGS=-l -fcgimosx |
|
# NOTE: should never use full path .. but there is no guarantee ld, etc |
# will be in the same directory as gcc.. so hope they are in the path |
# Don't do this on a real target!!! |
LD=/opt/29k/bin/ld29 |
NM=/opt/29k/bin/nm29 |
AR=echo making library |
# 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 |
|
# NOTE: see comment on ld, nm, ar |
SIZE=size |
|
# |
# Command to convert a normal archive to one searchable by $(LD) |
# Not needed on SVR4 |
# |
|
MKLIB=/opt/29k/bin/lib29 |
|
# |
# How to compile stuff into ${ARCH} subdirectory |
# |
# NOTE: we override COMPILE.c |
# |
|
COMPILE.c=$(CC) -c $(CFLAGS) $(CPPFLAGS) $(XCFLAGS) |
|
${ARCH}/%.o: %.c |
${COMPILE.c} -o $@ $< |
$(CHMOD) -f g+w $@ |
|
${ARCH}/%.o: %.cc |
${COMPILE.c} -o $@ $< |
$(CHMOD) -f g+w $@ |
|
${ARCH}/%.o: %.s |
${COMPILE.c} -DASM -o $@ $< |
$(CHMOD) -f g+w $@ |
|
${ARCH}/%.o: %.S |
$(CP) $*.s $(ARCH)/$*.c |
$(CPP) $(CPPFLAGS) $(ARCH)/$*.c > $(ARCH)/$*.s |
${COMPILE.c} -o $@ $(ARCH)/$*.s |
$(CHMOD) -f g+w $@ |
$(RM) $(ARCH)/$*.c |
|
# Specify our own default rule for this to prevent having CFLAGS and |
# CPPFLAGS being passed to linker |
${ARCH}/%: ${ARCH}/%.o |
${CC} ${LDFLAGS} -o $@ $@.o ${LD_LIBS} |
$(CHMOD) -f g+w $@ |
|
# Make foo.rel from foo.o |
${ARCH}/%.rel: ${ARCH}/%.o |
${LD} $(LDFLAGS_INCOMPLETE) -o $@ $^ |
$(CHMOD) -f g+w $@ |
|
# create $(ARCH)/pgm from pgm.sh |
${ARCH}/%: %.sh |
$(RM) $@ |
$(CP) $< $@ |
$(CHMOD) +x $@ |
$(CHMOD) -f g+w $@ |
|
# Dependency files for use by gmake |
# NOTE: we don't put them into $(ARCH) |
# so that 'make clean' doesn't blow it away |
|
DEPEND=Depends-${ARCH} |
|
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) -Hmake $^ | \ |
$(SED) -e 's?^\(.*\)\.o[ ]*:?$$(ARCH)/\1.o:?' \ |
-e 's?$(ARCH)/?$$(ARCH)/?' >$(DEPEND).tmp |
|
$(MV) $(DEPEND).tmp $(DEPEND) |
$(CHMOD) -f g+w $(DEPEND) |
endif |
|
|
# spell out all the LINK_FILE's, rather than using -lbsp, so |
# that $(LINK_FILES) can be a dependency |
|
# Start file must be one of |
# $(PROJECT_RELEASE)/lib/start$(LIB_VARIANT).o |
# $(PROJECT_RELEASE)/lib/asmiface$(LIB_VARIANT).o |
# It defaults to start.o, but an app can override it. |
|
# Note: Normally RTEMS provides a start file... |
START_FILE= $(PROJECT_RELEASE)/lib/crt0$(LIB_VARIANT).o $(PROJECT_RELEASE)/lib/register$(LIB_VARIANT).o |
|
LIBC_LOW= $(PROJECT_RELEASE)/lib/libcsupport$(LIBSUFFIX_VA) |
|
LIBGCC = $(shell $(CC) $(CFLAGS) -print-libgcc-file-name $(GCCSED)) |
|
LIBOSBOOT=/home/src/amd29k/sps2000/netrom.o |
|
LINK_FILES= \ |
$(START_FILE) \ |
$(OBJS) \ |
$(MANAGERS_NOT_WANTED:%=$(PROJECT_RELEASE)/lib/no-%$(LIB_VARIANT).rel) \ |
$(PROJECT_RELEASE)/lib/libbsp$(LIBSUFFIX_VA) \ |
$(LD_LIBS) \ |
$(PROJECT_RELEASE)/lib/libtest$(LIBSUFFIX_VA) \ |
$(PROJECT_RELEASE)/lib/librtems$(LIBSUFFIX_VA) \ |
$(LIBC_LOW) \ |
$(PROJECT_RELEASE)/lib/libmisc$(LIBSUFFIX_VA) \ |
$(LIBC_LIBC) \ |
$(LIBC_EXTRALIBS) \ |
$(LIBC_LIBM) |
# /home/craigl/osbdbg.o |
|
# 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 |
|
define make-exe |
if [ $(NO_ROM) ]; then echo "\n\nskipping ROM compile\n"; else \ |
$(CC) -nocrt0 -cmd$(PROJECT_RELEASE)/lib/romlink -u _times -u _gettimeofday \ |
-u _sleep -o $(basename $@).out $(LIBOSBOOT) $(LINK_FILES); \ |
romcoff -r -t -l -b $(basename $@).out raminit.o; \ |
rm $(basename $@).out; \ |
$(CC) -m -u _times -u _gettimeofday -u _sleep -o $(basename $@).romcof $(LIBOSBOOT) \ |
$(LINK_FILES) raminit.o -nocrt0 -cmd$(PROJECT_RELEASE)/lib/romlink > $(basename $@).rommap ; \ |
rm raminit.o ; \ |
$(CHMOD) -f g+w $(basename $@).romcof; \ |
/opt/green/coff2sr -noS5 $(basename $@).romcof -o $(basename $@).srec; \ |
$(CHMOD) -f g+w $(basename $@).srec; \ |
fi |
if [ $(CREATE_MAP) ]; then \ |
$(CC) -m -u _times -u _gettimeofday -u _sleep -o $(basename $@).exe $(LINK_FILES) -nocrt0 -cmd$(PROJECT_RELEASE)/lib/ramlink > $(basename $@).rammap; \ |
else \ |
rm $(basename $@).rommap > /dev/null 2> /dev/null ; \ |
$(CC) -u _times -u _gettimeofday -u _sleep -o $(basename $@).exe $(LINK_FILES) -nocrt0 -cmd$(PROJECT_RELEASE)/lib/ramlink; \ |
fi |
$(CHMOD) -f g+w $(basename $@).exe |
# $(CC) -o $(basename $@).exe $(LINK_FILES) -nocrt0 -cmd/opt/29k/lib/link030.cmd |
$(NM) -g $(basename $@).exe > $(basename $@).num |
$(CHMOD) -f g+w $(basename $@).num |
# $(SIZE) $(basename $@).exe |
endef |
|
define make-rel |
$(LD) $(LDFLAGS_INCOMPLETE) $(XLDFLAGS) -o $@ $(OBJS) |
$(CHMOD) -f g+w $@ |
endef |
/gcc-no_bsp.cfg
0,0 → 1,288
# |
# $Id: gcc-no_bsp.cfg,v 1.2 2001-09-27 12:02:51 chris Exp $ |
# |
# gcc 2.6.x compiler for a "native" nocpu/nobsp system |
# Compiler (and tools) configuration |
# |
|
# Prefix on the installed GNU tools |
# Just use the native tools |
GNU_TOOLS_PREFIX= |
|
# Additional target names (other than debug, profile) |
TARGET_VARIANTS += |
|
# |
# Pre-processor defines using the target options header file. |
# |
# Local tailoring (on the command line) can be done by setting XCFLAGS |
# or XCPPFLAGS -- neither of which are never set in the Makefile's |
# |
|
CPPFLAGS=$(CFLAGS) $(XCPPFLAGS) $(DEFINES) |
|
CPLUS_CPPFLAGS=$(CFLAGS) $(XCPPFLAGS) $(DEFINES) |
|
# 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. |
# |
# RTEMS_DEBUG (RTEMS) |
# If defined, debug checks in RTEMS and support library code are enabled. |
|
define make-target-options |
echo "/* #define NDEBUG 1 */ " >>$@ |
echo "#define RTEMS_TEST_NO_PAUSE 1" >>$@ |
echo "/* #define STACK_CHECKER_ON 1 */" >>$@ |
echo "/* #define RTEMS_DEBUG 1 */" >>$@ |
endef |
|
# |
# Local tailoring (on the command line) can be done by setting XCFLAGS |
# 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 |
|
# |
# This contains the compiler options necessary to select the CPU model |
# and (hopefully) optimize for it. |
# |
CPU_CFLAGS = |
|
CFLAGS_DEFAULT = $(CPU_CFLAGS) -Wall -ansi -fasm |
|
# optimize flag: typically -0, could use -O4 or -fast |
# -O4 is ok for RTEMS |
CFLAGS_OPTIMIZE_V=-O4 -fomit-frame-pointer |
|
# debug flag; typically -g |
CFLAGS_DEBUG_V=-g -Wno-unused |
|
# profile flag; use gprof(1) |
CFLAGS_PROFILE_V=-pg |
|
# default is to optimize |
CFLAGS_OPTIMIZE=$(CFLAGS_OPTIMIZE_V) |
|
# dynamic libraries |
CFLAGS_DYNAMIC_V=-fpic |
# ASFLAGS_DYNAMIC_V= |
|
CFLAGS=$(CFLAGS_DEFAULT) $(CFLAGS_OPTIMIZE) $(CFLAGS_DEBUG) $(CFLAGS_PROFILE) \ |
-I $(PROJECT_INCLUDE) |
|
# List of library paths without -L |
LD_PATHS= $(PROJECT_RELEASE)/lib |
|
# 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 = |
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=gcc |
CXX=$(CC) |
CCC=$(CXX) |
|
# CPP command to write file to standard output |
CPP=$(CC) -E |
|
# flags set by cc when running cpp |
CPP_CC_FLAGS=-D__STDC__ |
|
AS=as |
ASPP=ERROR_NO_ASPP |
|
ASFLAGS= |
|
|
# NOTE: should never use full path .. but there is no guarantee ld, etc |
# will be in the same directory as gcc.. so hope they are in the path |
# Don't do this on a real target!!! |
LD=ld |
NM=nm |
AR=ar |
# 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 |
|
# NOTE: see comment on ld, nm, ar |
SIZE=size |
|
# |
# Command to convert a normal archive to one searchable by $(LD) |
# Not needed on SVR4 |
# |
|
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 $@ $< |
|
${ARCH}/%.o: %.S |
${COMPILE.c} -DASM -o $@ $< |
|
${ARCH}/%.o: %.s |
$(CPP) $(CPPFLAGS) - <$*.s >$(ARCH)/$*.i |
$(AS) $(ASFLAGS) -o $@ $(ARCH)/$*.i |
# $(RM) $(ARCH)/$*.i |
|
# Specify our own default rule for this to prevent having CFLAGS and |
# CPPFLAGS being passed to linker |
${ARCH}/%: ${ARCH}/%.o |
${CC} ${LDFLAGS} -o $@ $@.o ${LD_LIBS} |
|
# Make foo.rel from foo.o |
${ARCH}/%.rel: ${ARCH}/%.o |
${LD} $(LDFLAGS_INCOMPLETE) -o $@ $^ |
|
# create $(ARCH)/pgm from pgm.sh |
${ARCH}/%: %.sh |
$(RM) $@ |
$(CP) $< $@ |
$(CHMOD) +x $@ |
|
# Dependency files for use by gmake |
# NOTE: we don't put them into $(ARCH) |
# so that 'make clean' doesn't blow it away |
|
DEPEND=Depends-${ARCH} |
|
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 |
|
|
# 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), $(MANAGER_LIST)) |
MANAGERS_NOT_WANTED:=$(filter-out $(MANAGERS_REQUIRED), $(MANAGERS_NOT_WANTED)) |
|
# spell out all the LINK_FILE's, rather than using -lbsp, so |
# that $(LINK_FILES) can be a dependency |
|
# Start file must be one of |
# $(PROJECT_RELEASE)/lib/start$(LIB_VARIANT).o |
# $(PROJECT_RELEASE)/lib/asmiface$(LIB_VARIANT).o |
# It defaults to start.o, but an app can override it. |
|
# Note: Normally RTEMS provides a start file... |
START_FILE= |
|
CONSTRUCTOR= |
|
LIBGCC = $(shell $(CC) $(CFLAGS) -print-libgcc-file-name $(GCCSED)) |
|
LINK_FILES= $(START_FILE) \ |
$(CONSTRUCTOR) \ |
$(OBJS) \ |
$(MANAGERS_NOT_WANTED:%=$(PROJECT_RELEASE)/lib/no-%$(LIB_VARIANT).rel) \ |
$(LD_LIBS) \ |
$(LIBC_EXTRA_LIBS) \ |
$(PROJECT_RELEASE)/lib/libtest$(LIBSUFFIX_VA) \ |
$(PROJECT_RELEASE)/lib/librtemsall$(LIBSUFFIX_VA) \ |
$(LIBC_LIBM) $(LIBC_LIBC) $(LIBGCC) |
|
# 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 |
|
# On Solaris at least you need to had /usr/ucblib/libucb.a |
|
define make-exe |
$(CC) -o $(basename $@).exe $(LINK_FILES) -lc -lm |
$(NM) -n $(basename $@).exe > $(basename $@).num |
$(SIZE) $(basename $@).exe |
endef |
|
define make-rel |
$(LD) $(LDFLAGS_INCOMPLETE) $(XLDFLAGS) -o $@ $(OBJS) |
endef |
/Makefile.am
0,0 → 1,10
## |
## $Id: Makefile.am,v 1.2 2001-09-27 12:02:51 chris Exp $ |
## |
|
AUTOMAKE_OPTIONS = foreign 1.4 |
|
EXTRA_DIST = gcc-no_bsp.cfg gcc-portsw.cfg gcc-target-default.cfg |
|
## ------------------------------------------------------- |
include $(top_srcdir)/automake/host.am |