diff packages/pkgconf/makevars @ 0:3111d98ba7b3 ecos-v1_1-release

Initial commit of eCos version 1.1
author jlarmour
date Tue, 11 May 1999 11:16:07 +0000
parents
children 443894e2e912
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/packages/pkgconf/makevars
@@ -0,0 +1,276 @@
+#===============================================================================
+#
+#    makevars
+#
+#    This file allows users to control some aspects of the build process.
+#
+#===============================================================================
+#####COPYRIGHTBEGIN####
+#
+# -------------------------------------------
+# The contents of this file are subject to the Cygnus eCos Public License
+# Version 1.0 (the "License"); you may not use this file except in
+# compliance with the License.  You may obtain a copy of the License at
+# http://sourceware.cygnus.com/ecos
+# 
+# Software distributed under the License is distributed on an "AS IS"
+# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the
+# License for the specific language governing rights and limitations under
+# the License.
+# 
+# The Original Code is eCos - Embedded Cygnus Operating System, released
+# September 30, 1998.
+# 
+# The Initial Developer of the Original Code is Cygnus.  Portions created
+# by Cygnus are Copyright (C) 1998 Cygnus Solutions.  All Rights Reserved.
+# -------------------------------------------
+#
+#####COPYRIGHTEND####
+#===============================================================================
+
+#
+# Some of the commands used to do builds should generally be specified by
+# pkgconf. This is because the commands are target-specific, and it is
+# pkgconf that knows about the target architecture and the information held
+# in the targets file. Never the less it is desirable to allow users to
+# redefine the commands.
+#
+# First, make automatically defines a number of variables unless it is
+# given the -r or --no-builtin-rules arguments. The built-in values are
+# unlikely to be correct when doing cross compilation. The following
+# checks eliminate any such built-in definitions.
+ifeq ($(origin CC),default)
+CC :=
+endif
+ifeq ($(origin CXX),default)
+CXX :=
+endif
+ifeq ($(origin AR),default)
+AR :=
+endif
+ifeq ($(origin LD),default)
+LD :=
+endif
+ifeq ($(origin CP),default)
+CP :=
+endif
+ifeq ($(origin RM),default)
+RM :=
+endif
+ifeq ($(origin TOUCH),default)
+TOUCH :=
+endif
+ifeq ($(origin CAT),default)
+CAT :=
+endif
+ifeq ($(origin TAIL),default)
+TAIL :=
+endif
+
+#
+# At this stage all of the variables identifying commands will be empty
+# or undefined strings, or they will have been set on the make command
+# line or in environment variables.
+#
+# For each command that is not currently defined, a default value
+# is defined here. Users may make a persistent change to the commands by
+# commenting out the default value and filling in an alternative one.
+#
+ifeq ($(CC),)
+CC	:= $(PKGCONF_CC)
+#CC	:=
+endif
+ifeq ($(CXX),)
+CXX     := $(PKGCONF_CXX)
+#CXX	:=
+endif
+ifeq ($(AR),)
+AR	:= $(PKGCONF_AR)
+#AR	:=
+endif
+ifeq ($(LD),)
+LD	:= $(PKGCONF_LD)
+#LD	:=
+endif
+ifeq ($(OBJCOPY),)
+OBJCOPY	:= $(PKGCONF_OBJCOPY)
+#OBJCOPY :=
+endif
+ifeq ($(CP),)
+CP	:= install -m 0644
+#CP	:=
+endif
+ifeq ($(RM),)
+RM	:= rm -f
+#RM	:=
+endif
+ifeq ($(TOUCH),)
+TOUCH	:= touch
+#TOUCH	:=
+endif
+ifeq ($(CAT),)
+CAT	:= cat
+#CAT	:=
+endif
+ifeq ($(TAIL),)
+TAIL	:= tail
+#tail	:=
+endif
+
+#
+# Next deal with the various compiler flags. None of the flags should
+# conflict with any built-in variables, so it is sufficient to check
+# that a given flag has not been defined on the make command line or via
+# an environment variable.
+#
+# As with the command variables, users can disable the default
+# settings by commenting out one line and filling in the next line.
+#
+# There are five categories of flags:
+# 1) architecture-related, i.e. -mthis -mthat -mthe-other
+# 2) error and warning related, e.g. -Wall -Werror
+# 3) language-related, e.g. -fno-rtti for C++ code
+# 4) debug and code generation, e.g. -g -O2
+# 5) everything else, e.g. -DCYG_RELEASE_DEBUG
+#
+# For each category there are four variables. The first one, e.g.
+# ARCHFLAGS, is used for all build operations. The second, e.g.
+# CARCHFLAGS, is used only when compiling to C code (in addition to
+# the generic ARCHFLAGS). The third, e.g. CXXARCHFLAGS is used when
+# compiling C++ code and the last, LDARCHFLAGS, is used when linking
+# executables (typically test programs).
+#
+
+ifeq ($(ARCHFLAGS),)
+ARCHFLAGS 	:= $(PKGCONF_ARCHFLAGS)
+#ARCHFLAGS	:=
+endif
+ifeq ($(CARCHFLAGS),)
+CARCHFLAGS 	:= $(PKGCONF_CARCHFLAGS)
+#CARCHFLAGS	:=
+endif
+ifeq ($(CXXARCHFLAGS),)
+CXXARCHFLAGS 	:= $(PKGCONF_CXXARCHFLAGS)
+#CXXARCHFLAGS	:=
+endif
+ifeq ($(LDARCHFLAGS),)
+LDARCHFLAGS 	:= $(PKGCONF_LDARCHFLAGS)
+#LDARCHFLAGS	:=
+endif
+ifeq ($(ERRFLAGS),)
+ERRFLAGS 	:= $(PKGCONF_ERRFLAGS)
+#ERRFLAGS	:=
+endif
+ifeq ($(CERRFLAGS),)
+CERRFLAGS 	:= $(PKGCONF_CERRFLAGS)
+#CERRFLAGS	:=
+endif
+ifeq ($(CXXERRFLAGS),)
+CXXERRFLAGS 	:= $(PKGCONF_CXXERRFLAGS)
+#CXXERRFLAGS	:=
+endif
+ifeq ($(LDERRFLAGS),)
+LDERRFLAGS 	:= $(PKGCONF_LDERRFLAGS)
+#LDERRFLAGS	:=
+endif
+ifeq ($(LANGFLAGS),)
+LANGFLAGS 	:= $(PKGCONF_LANGFLAGS)
+#LANGFLAGS	:=
+endif
+ifeq ($(CLANGFLAGS),)
+CLANGFLAGS 	:= $(PKGCONF_CLANGFLAGS)
+#CLANGFLAGS	:=
+endif
+ifeq ($(CXXLANGFLAGS),)
+CXXLANGFLAGS 	:= $(PKGCONF_CXXLANGFLAGS)
+#CXXLANGFLAGS	:=
+endif
+ifeq ($(LDLANGFLAGS),)
+LDLANGFLAGS 	:= $(PKGCONF_LDLANGFLAGS)
+#LDLANGFLAGS	:=
+endif
+ifeq ($(DBGFLAGS),)
+DBGFLAGS 	:= $(PKGCONF_DBGFLAGS)
+#DBGFLAGS	:=
+endif
+ifeq ($(CDBGFLAGS),)
+CDBGFLAGS 	:= $(PKGCONF_CDBGFLAGS)
+#CDBGFLAGS	:=
+endif
+ifeq ($(CXXDBGFLAGS),)
+CXXDBGFLAGS 	:= $(PKGCONF_CXXDBGFLAGS)
+#CXXDBGFLAGS	:=
+endif
+ifeq ($(LDDBGFLAGS),)
+LDDBGFLAGS 	:= $(PKGCONF_LDDBGFLAGS)
+#LDDBGFLAGS	:=
+endif
+ifeq ($(EXTRAFLAGS),)
+EXTRAFLAGS 	:= $(PKGCONF_EXTRAFLAGS)
+#EXTRAFLAGS	:=
+endif
+ifeq ($(CEXTRAFLAGS),)
+CEXTRAFLAGS 	:= $(PKGCONF_CEXTRAFLAGS)
+#CEXTRAFLAGS	:=
+endif
+ifeq ($(CXXEXTRAFLAGS),)
+CXXEXTRAFLAGS 	:= $(PKGCONF_CXXEXTRAFLAGS)
+#CXXEXTRAFLAGS	:=
+endif
+ifeq ($(LDEXTRAFLAGS),)
+LDEXTRAFLAGS 	:= $(PKGCONF_LDEXTRAFLAGS)
+#LDEXTRAFLAGS	:=
+endif
+
+#
+# Now combine all the above flags, so that the build rules are actually legible.
+#
+CFLAGS 		:= $(ARCHFLAGS)  $(CARCHFLAGS)
+CFLAGS 		:= $(CFLAGS) $(ERRFLAGS)   $(CERRFLAGS)
+CFLAGS 		:= $(CFLAGS) $(LANGFLAGS)  $(CLANGFLAGS)
+CFLAGS 		:= $(CFLAGS) $(DBGFLAGS)   $(CDBGFLAGS)
+CFLAGS 		:= $(CFLAGS) $(EXTRAFLAGS) $(CEXTRAFLAGS)
+CFLAGS		:= $(strip $(CFLAGS))
+
+CXXFLAGS 	:= $(ARCHFLAGS)  $(CXXARCHFLAGS)
+CXXFLAGS 	:= $(CXXFLAGS) $(ERRFLAGS)   $(CXXERRFLAGS)
+CXXFLAGS 	:= $(CXXFLAGS) $(LANGFLAGS)  $(CXXLANGFLAGS)
+CXXFLAGS 	:= $(CXXFLAGS) $(DBGFLAGS)   $(CXXDBGFLAGS)
+CXXFLAGS 	:= $(CXXFLAGS) $(EXTRAFLAGS) $(CXXEXTRAFLAGS)
+CXXFLAGS	:= $(strip $(CXXFLAGS))
+
+LDFLAGS 	:= $(ARCHFLAGS)  $(LDARCHFLAGS)
+LDFLAGS 	:= $(LDFLAGS) $(ERRFLAGS)   $(LDERRFLAGS)
+LDFLAGS 	:= $(LDFLAGS) $(LANGFLAGS)  $(LDLANGFLAGS)
+LDFLAGS 	:= $(LDFLAGS) $(DBGFLAGS)   $(LDDBGFLAGS)
+LDFLAGS 	:= $(LDFLAGS) $(EXTRAFLAGS) $(LDEXTRAFLAGS)
+LDFLAGS		:= $(strip $(LDFLAGS))
+
+#
+# Clear the default INCLUDE_PATH. This will be set up in
+# makrules.src et al. on the basis of the VPATH environment
+# variable.
+INCLUDE_PATH :=
+
+#
+# Finally, it is possible for users to change the rules that actually
+# perform most of the build operations.
+
+$(PACKAGE)_%.o : %.c
+	$(CC)  -c $(INCLUDE_PATH) $(CFLAGS) -Wp,-MD,$(@:.o=.tmp) -o $@ $< 
+	@echo -e "\\n$@ : $< \\\\" > $(@:.o=.d)
+	@$(TAIL) -n +2 $(@:.o=.tmp) >> $(@:.o=.d)
+	@$(RM) $(@:.o=.tmp)
+
+$(PACKAGE)_%.o : %.cxx
+	$(CXX) -c $(INCLUDE_PATH) $(CXXFLAGS) -Wp,-MD,$(@:.o=.tmp) -o $@ $< 
+	@echo -e "\\n$@ : $< \\\\" > $(@:.o=.d)
+	@$(TAIL) -n +2 $(@:.o=.tmp) >> $(@:.o=.d)
+	@$(RM) $(@:.o=.tmp)
+
+$(PACKAGE)_%.o : %.S
+	$(CXX)  -c $(INCLUDE_PATH) $(CFLAGS) -Wp,-MD,$(@:.o=.tmp) -o $@ $< 
+	@echo -e "\\n$@ : $< \\\\" > $(@:.o=.d)
+	@$(TAIL) -n +2 $(@:.o=.tmp) >> $(@:.o=.d)
+	@$(RM) $(@:.o=.tmp)
+