URL
https://opencores.org/ocsvn/or1k/or1k/trunk
Subversion Repositories or1k
[/] [or1k/] [trunk/] [rtems-20020807/] [make/] [compilers/] [gcc-target-default.cfg] - Rev 1768
Go to most recent revision | Compare with Previous | Blame | View Log
## Shared compiler for all GNU tools configurations## gcc-target-default.cfg,v 1.35 2002/01/22 17:35:22 joel 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# NOTE: CPU_CFLAGS should probably be renamed to CPU_CPPFLAGS# NOTE: CPU_DEFINES should probably be merged with CPU_CFLAGSCPPFLAGS += $(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_DIRRTEMS_LIBC_INCLUDES := -I$(RTEMS_LIBC_DIR)/includeendif# Used for posix bspsCPPFLAGS += \-I$(PROJECT_INCLUDE) \$(RTEMS_LIBC_INCLUDES)else# Used for embedded bsps# Ask gcc where it finds its own include filesGCC_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)/includeendif# default location of Standard C Libraryifndef LIBC_LIBCLIBC_LIBC=$(RTEMS_LIBC_DIR)/lib/libc.aendififndef LIBC_LIBMLIBC_LIBM=$(RTEMS_LIBC_DIR)/lib/libm.aendifelse# NOTE: GCCSPECS probably belongs to CPPFLAGS# Unfortunately, many custom/*.cfg files do not pass CPPFLAGS# to their gcc-2.8 make-exe rulesGCCSPECS = -B$(PROJECT_RELEASE)/lib/ -specs bsp_specs -qrtemsCC += $(GCCSPECS)CXX += $(GCCSPECS)CPPFLAGS +=# default location of Standard C Libraryifndef LIBC_LIBCLIBC_LIBC=$(shell $(CC) $(CPU_CFLAGS) -print-file-name=libc.a $(GCCSED))endififndef LIBC_LIBMLIBC_LIBM=$(shell $(CC) $(CPU_CFLAGS) -print-file-name=libm.a $(GCCSED))endifendif# 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-unusedCXXFLAGS_DEBUG_V+=ifeq ($(RTEMS_USE_GCC272),no)CFLAGS_DEBUG_V+=-qrtems_debugCXXFLAGS_DEBUG_V+=-qrtems_debugendif# when debugging, optimize flag: typically empty# some compilers do allow optimization with their "-g"CFLAGS_OPTIMIZE_V=-gCXXFLAGS_OPTIMIZE_V=-g# profile flag; use gprof(1)CFLAGS_PROFILE_V=-pgCXXFLAGS_PROFILE_V=-pgifndef AUTOMAKE# default is to optimizeCFLAGS_OPTIMIZE =$(CFLAGS_OPTIMIZE_V)CXXFLAGS_OPTIMIZE=$(CXXFLAGS_OPTIMIZE_V)endififndef AUTOMAKECFLAGS += $(CFLAGS_OPTIMIZE) $(CFLAGS_DEBUG) $(CFLAGS_PROFILE)CXXFLAGS += $(CXXFLAGS_OPTIMIZE) $(CXXFLAGS_DEBUG) $(CXXFLAGS_PROFILE)endif# List of library paths without -LLD_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 linkLDFLAGS_INCOMPLETE = -r# Special linker options when building lib.soLDFLAGS_DYNAMIC_V = ??# Some dynamic linking systems want the preferred name recorded in the binary# ref: src/libxil/MakefileLDFLAGS_DYNAMIC_LIBNAME_V = -h $(DYNAMIC_VERSION_LIBNAME)# ld flags for profiling, debuggingLDFLAGS_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 *.BAKCLOBBER_CC =## Client compiler and support tools## CPP command to write file to standard outputCPP=$(CC) -E -w -Wp,-$$# 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 awayDEPEND=Depends-${ARCH}CLEAN_DEPEND=$(DEPEND).tmpCLOBBER_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)endifdepend: 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=elseSTART_FILE=$(PROJECT_RELEASE)/lib/$(START_BASE)$(LIB_VARIANT).oendifCONSTRUCTOR=LIBC_LOW=ifndef LIBGCCLIBGCC = $(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/librtemsbsp$(LIBSUFFIX_VA) \$(PROJECT_RELEASE)/lib/librtemscpu$(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)endifendifLINK_LIBS += $(LD_LIBS)## Allow user to override link commands (to build a prom image, perhaps)#ifndef LINKCMDSLINKCMDS=$(PROJECT_RELEASE)/lib/linkcmdsendififeq ($(RTEMS_USE_GCC272),yes)define make-rel$(LD) $(LDFLAGS_INCOMPLETE) $(XLDFLAGS) -o $@ $^endefelsedefine make-rel$(LINK.c) $(AM_CFLAGS) $(AM_LDFLAGS) \-qnolinkcmds -nostdlib -Wl,-r $(XLDFLAGS) -o $@ $^endefendif
Go to most recent revision | Compare with Previous | Blame | View Log
