summaryrefslogtreecommitdiffstats
path: root/zpu/sw/ecos/repository/pkgconf
diff options
context:
space:
mode:
Diffstat (limited to 'zpu/sw/ecos/repository/pkgconf')
-rw-r--r--zpu/sw/ecos/repository/pkgconf/rules.mak210
1 files changed, 210 insertions, 0 deletions
diff --git a/zpu/sw/ecos/repository/pkgconf/rules.mak b/zpu/sw/ecos/repository/pkgconf/rules.mak
new file mode 100644
index 0000000..e043efa
--- /dev/null
+++ b/zpu/sw/ecos/repository/pkgconf/rules.mak
@@ -0,0 +1,210 @@
+#=============================================================================
+#
+# rules.mak
+#
+# Generic rules for inclusion by all package makefiles.
+#
+#=============================================================================
+#####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
+##
+## eCos is free software; you can redistribute it and/or modify it under
+## the terms of the GNU General Public License as published by the Free
+## Software Foundation; either version 2 or (at your option) any later version.
+##
+## eCos is distributed in the hope that it will be useful, but WITHOUT ANY
+## WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+## for more details.
+##
+## You should have received a copy of the GNU General Public License along
+## with eCos; if not, write to the Free Software Foundation, Inc.,
+## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+##
+## As a special exception, if other files instantiate templates or use macros
+## or inline functions from this file, or you compile this file and link it
+## with other works to produce a work based on this file, this file does not
+## by itself cause the resulting work to be covered by the GNU General Public
+## License. However the source code for this file must still be made available
+## in accordance with section (3) of the GNU General Public License.
+##
+## This exception does not invalidate any other reasons why a work based on
+## this file might be covered by the GNU General Public License.
+##
+## Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
+## at http://sources.redhat.com/ecos/ecos-license/
+## -------------------------------------------
+#####ECOSGPLCOPYRIGHTEND####
+#=============================================================================
+#####DESCRIPTIONBEGIN####
+#
+# Author(s): jld
+# Contributors: bartv
+# Date: 1999-11-04
+# Purpose: Generic rules for inclusion by all package makefiles
+# Description:
+#
+#####DESCRIPTIONEND####
+#=============================================================================
+
+# FIXME: This definition belongs in the top-level makefile.
+export HOST_CC := gcc
+
+.PHONY: default build clean tests headers mlt_headers
+
+# include any dependency rules generated previously
+ifneq ($(wildcard *.deps),)
+include $(wildcard *.deps)
+endif
+
+# GCC since 2.95 does -finit-priority by default so remove it from old HALs
+CFLAGS := $(subst -finit-priority,,$(CFLAGS))
+
+# -fvtable-gc is known to be broken in all recent GCC.
+CFLAGS := $(subst -fvtable-gc,,$(CFLAGS))
+
+# To support more recent GCC whilst preserving existing behaviour, we need
+# to increase the inlining limit globally from the default 600. Note this
+# will break GCC 2.95 based tools and earlier. You must use "make OLDGCC=1"
+# to avoid this.
+ifneq ($(OLDGCC),1)
+CFLAGS := -finline-limit=7000 $(CFLAGS)
+endif
+
+# Separate C++ flags out from C flags.
+ACTUAL_CFLAGS = $(CFLAGS)
+ACTUAL_CFLAGS := $(subst -fno-rtti,,$(ACTUAL_CFLAGS))
+ACTUAL_CFLAGS := $(subst -frtti,,$(ACTUAL_CFLAGS))
+ACTUAL_CFLAGS := $(subst -Woverloaded-virtual,,$(ACTUAL_CFLAGS))
+ACTUAL_CFLAGS := $(subst -fvtable-gc,,$(ACTUAL_CFLAGS))
+
+ACTUAL_CXXFLAGS = $(subst -Wstrict-prototypes,,$(CFLAGS))
+
+# pattern matching rules to generate a library object from source code
+# object filenames are prefixed to avoid name clashes
+# a single dependency rule is generated (file extension = ".o.d")
+%.o.d : %.c
+ifeq ($(HOST),CYGWIN)
+ @mkdir -p `cygpath -w "$(dir $@)" | sed "s@\\\\\\\\@/@g"`
+else
+ @mkdir -p $(dir $@)
+endif
+ $(CC) -c $(INCLUDE_PATH) -I$(dir $<) $(ACTUAL_CFLAGS) -Wp,-MD,$(@:.o.d=.tmp) -o $(dir $@)$(OBJECT_PREFIX)_$(notdir $(@:.o.d=.o)) $<
+ @sed -e '/^ *\\/d' -e "s#.*: #$@: #" $(@:.o.d=.tmp) > $@
+ @rm $(@:.o.d=.tmp)
+
+%.o.d : %.cxx
+ifeq ($(HOST),CYGWIN)
+ @mkdir -p `cygpath -w "$(dir $@)" | sed "s@\\\\\\\\@/@g"`
+else
+ @mkdir -p $(dir $@)
+endif
+ $(CC) -c $(INCLUDE_PATH) -I$(dir $<) $(ACTUAL_CXXFLAGS) -Wp,-MD,$(@:.o.d=.tmp) -o $(dir $@)$(OBJECT_PREFIX)_$(notdir $(@:.o.d=.o)) $<
+ @sed -e '/^ *\\/d' -e "s#.*: #$@: #" $(@:.o.d=.tmp) > $@
+ @rm $(@:.o.d=.tmp)
+
+%.o.d : %.cpp
+ifeq ($(HOST),CYGWIN)
+ @mkdir -p `cygpath -w "$(dir $@)" | sed "s@\\\\\\\\@/@g"`
+else
+ @mkdir -p $(dir $@)
+endif
+ $(CC) -c $(INCLUDE_PATH) -I$(dir $<) $(ACTUAL_CXXFLAGS) -Wp,-MD,$(@:.o.d=.tmp) -o $(dir $@)$(OBJECT_PREFIX)_$(notdir $(@:.o.d=.o)) $<
+ @sed -e '/^ *\\/d' -e "s#.*: #$@: #" $(@:.o.d=.tmp) > $@
+ @rm $(@:.o.d=.tmp)
+
+%.o.d : %.S
+ifeq ($(HOST),CYGWIN)
+ @mkdir -p `cygpath -w "$(dir $@)" | sed "s@\\\\\\\\@/@g"`
+else
+ @mkdir -p $(dir $@)
+endif
+ $(CC) -c $(INCLUDE_PATH) -I$(dir $<) $(ACTUAL_CFLAGS) -Wp,-MD,$(@:.o.d=.tmp) -o $(dir $@)$(OBJECT_PREFIX)_$(notdir $(@:.o.d=.o)) $<
+ @sed -e '/^ *\\/d' -e "s#.*: #$@: #" $(@:.o.d=.tmp) > $@
+ @rm $(@:.o.d=.tmp)
+
+# pattern matching rules to generate a test object from source code
+# object filenames are not prefixed
+# a single dependency rule is generated (file extension = ".d")
+%.d : %.c
+ifeq ($(HOST),CYGWIN)
+ @mkdir -p `cygpath -w "$(dir $@)" | sed "s@\\\\\\\\@/@g"`
+else
+ @mkdir -p $(dir $@)
+endif
+ $(CC) -c $(INCLUDE_PATH) -I$(dir $<) $(ACTUAL_CFLAGS) -Wp,-MD,$(@:.d=.tmp) -o $(@:.d=.o) $<
+ @sed -e '/^ *\\/d' -e "s#.*: #$@: #" $(@:.d=.tmp) > $@
+ @rm $(@:.d=.tmp)
+
+%.d : %.cxx
+ifeq ($(HOST),CYGWIN)
+ @mkdir -p `cygpath -w "$(dir $@)" | sed "s@\\\\\\\\@/@g"`
+else
+ @mkdir -p $(dir $@)
+endif
+ $(CC) -c $(INCLUDE_PATH) -I$(dir $<) $(ACTUAL_CXXFLAGS) -Wp,-MD,$(@:.d=.tmp) -o $(@:.d=.o) $<
+ @sed -e '/^ *\\/d' -e "s#.*: #$@: #" $(@:.d=.tmp) > $@
+ @rm $(@:.d=.tmp)
+
+%.d : %.cpp
+ifeq ($(HOST),CYGWIN)
+ @mkdir -p `cygpath -w "$(dir $@)" | sed "s@\\\\\\\\@/@g"`
+else
+ @mkdir -p $(dir $@)
+endif
+ $(CC) -c $(INCLUDE_PATH) -I$(dir $<) $(ACTUAL_CXXFLAGS) -Wp,-MD,$(@:.d=.tmp) -o $(@:.d=.o) $<
+ @sed -e '/^ *\\/d' -e "s#.*: #$@: #" $(@:.d=.tmp) > $@
+ @rm $(@:.d=.tmp)
+
+%.d : %.S
+ifeq ($(HOST),CYGWIN)
+ @mkdir -p `cygpath -w "$(dir $@)" | sed "s@\\\\\\\\@/@g"`
+else
+ @mkdir -p $(dir $@)
+endif
+ $(CC) -c $(INCLUDE_PATH) -I$(dir $<) $(ACTUAL_CFLAGS) -Wp,-MD,$(@:.d=.tmp) -o $(@:.d=.o) $<
+ @sed -e '/^ *\\/d' -e "s#.*: #$@: #" $(@:.d=.tmp) > $@
+ @rm $(@:.d=.tmp)
+
+# rule to generate a test executable from object code
+$(PREFIX)/tests/$(PACKAGE)/%$(EXEEXT): %.d $(wildcard $(PREFIX)/lib/target.ld) $(wildcard $(PREFIX)/lib/*.[ao])
+ifeq ($(HOST),CYGWIN)
+ @mkdir -p `cygpath -w "$(dir $@)" | sed "s@\\\\\\\\@/@g"`
+else
+ @mkdir -p $(dir $@)
+endif
+ifneq ($(IGNORE_LINK_ERRORS),)
+ -$(CC) -L$(PREFIX)/lib -Ttarget.ld -o $@ $(<:.d=.o) $(LDFLAGS)
+else
+ $(CC) -L$(PREFIX)/lib -Ttarget.ld -o $@ $(<:.d=.o) $(LDFLAGS)
+endif
+
+# rule to generate all tests and create a dependency file "tests.deps" by
+# concatenating the individual dependency rule files (file extension = ".d")
+# generated during compilation
+tests: tests.stamp
+
+TESTS := $(TESTS:.cpp=)
+TESTS := $(TESTS:.cxx=)
+TESTS := $(TESTS:.c=)
+TESTS := $(TESTS:.S=)
+tests.stamp: $(foreach target,$(TESTS),$(target).d $(PREFIX)/tests/$(PACKAGE)/$(target)$(EXEEXT))
+ifneq ($(strip $(TESTS)),)
+ @cat $(TESTS:%=%.d) > $(@:.stamp=.deps)
+endif
+ @touch $@
+
+# rule to clean the build tree
+clean:
+ @find . -type f -print | grep -v makefile | xargs rm -f
+
+# rule to copy MLT files
+mlt_headers: $(foreach x,$(MLT),$(PREFIX)/include/pkgconf/$(notdir $x))
+
+$(foreach x,$(MLT),$(PREFIX)/include/pkgconf/$(notdir $x)): $(MLT)
+ @cp $(dir $<)/$(notdir $@) $(PREFIX)/include/pkgconf
+ @chmod u+w $(PREFIX)/include/pkgconf/$(notdir $@)
+
+# end of file
OpenPOWER on IntegriCloud