annotate packages/pkgconf/rules.mak @ 1777:c16341b1bac6 default tip

* Added execute permissions to files missed in conversion from CVS
author alexs
date Mon, 12 Oct 2009 02:26:09 +0100
parents a49652af5b92
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
76
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
1 #=============================================================================
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
2 #
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
3 # rules.mak
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
4 #
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
5 # Generic rules for inclusion by all package makefiles.
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
6 #
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
7 #=============================================================================
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 204
diff changeset
8 #####ECOSGPLCOPYRIGHTBEGIN####
210
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
9 ## -------------------------------------------
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
10 ## This file is part of eCos, the Embedded Configurable Operating System.
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
11 ## Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
12 ##
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
13 ## eCos is free software; you can redistribute it and/or modify it under
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
14 ## the terms of the GNU General Public License as published by the Free
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
15 ## Software Foundation; either version 2 or (at your option) any later version.
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
16 ##
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
17 ## eCos is distributed in the hope that it will be useful, but WITHOUT ANY
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
18 ## WARRANTY; without even the implied warranty of MERCHANTABILITY or
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
19 ## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
20 ## for more details.
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
21 ##
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
22 ## You should have received a copy of the GNU General Public License along
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
23 ## with eCos; if not, write to the Free Software Foundation, Inc.,
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
24 ## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
25 ##
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
26 ## As a special exception, if other files instantiate templates or use macros
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
27 ## or inline functions from this file, or you compile this file and link it
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
28 ## with other works to produce a work based on this file, this file does not
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
29 ## by itself cause the resulting work to be covered by the GNU General Public
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
30 ## License. However the source code for this file must still be made available
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
31 ## in accordance with section (3) of the GNU General Public License.
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
32 ##
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
33 ## This exception does not invalidate any other reasons why a work based on
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
34 ## this file might be covered by the GNU General Public License.
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
35 ##
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
36 ## Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
37 ## at http://sources.redhat.com/ecos/ecos-license/
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
38 ## -------------------------------------------
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 204
diff changeset
39 #####ECOSGPLCOPYRIGHTEND####
76
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
40 #=============================================================================
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
41 #####DESCRIPTIONBEGIN####
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
42 #
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
43 # Author(s): jld
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
44 # Contributors: bartv
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
45 # Date: 1999-11-04
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
46 # Purpose: Generic rules for inclusion by all package makefiles
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
47 # Description:
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
48 #
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
49 #####DESCRIPTIONEND####
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
50 #=============================================================================
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
51
196
9b55e9c69693 Merge from eCos master repository on 2001-11-23-15:32:03-GMT
jlarmour
parents: 176
diff changeset
52 # FIXME: This definition belongs in the top-level makefile.
9b55e9c69693 Merge from eCos master repository on 2001-11-23-15:32:03-GMT
jlarmour
parents: 176
diff changeset
53 export HOST_CC := gcc
9b55e9c69693 Merge from eCos master repository on 2001-11-23-15:32:03-GMT
jlarmour
parents: 176
diff changeset
54
76
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
55 .PHONY: default build clean tests headers mlt_headers
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
56
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
57 # include any dependency rules generated previously
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
58 ifneq ($(wildcard *.deps),)
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
59 include $(wildcard *.deps)
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
60 endif
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
61
1331
22c47e969126 * pkgconf/rules.mak: Remove -finit-priority and -fvtable-gc
jlarmour
parents: 1313
diff changeset
62 # GCC since 2.95 does -finit-priority by default so remove it from old HALs
22c47e969126 * pkgconf/rules.mak: Remove -finit-priority and -fvtable-gc
jlarmour
parents: 1313
diff changeset
63 CFLAGS := $(subst -finit-priority,,$(CFLAGS))
1537
a49652af5b92 * pkgconf/rules.mak: When linking, $LDFLAGS must be after target.ld
jlarmour
parents: 1331
diff changeset
64
a49652af5b92 * pkgconf/rules.mak: When linking, $LDFLAGS must be after target.ld
jlarmour
parents: 1331
diff changeset
65 # -fvtable-gc is known to be broken in all recent GCC.
1331
22c47e969126 * pkgconf/rules.mak: Remove -finit-priority and -fvtable-gc
jlarmour
parents: 1313
diff changeset
66 CFLAGS := $(subst -fvtable-gc,,$(CFLAGS))
22c47e969126 * pkgconf/rules.mak: Remove -finit-priority and -fvtable-gc
jlarmour
parents: 1313
diff changeset
67
1537
a49652af5b92 * pkgconf/rules.mak: When linking, $LDFLAGS must be after target.ld
jlarmour
parents: 1331
diff changeset
68 # To support more recent GCC whilst preserving existing behaviour, we need
a49652af5b92 * pkgconf/rules.mak: When linking, $LDFLAGS must be after target.ld
jlarmour
parents: 1331
diff changeset
69 # to increase the inlining limit globally from the default 600. Note this
a49652af5b92 * pkgconf/rules.mak: When linking, $LDFLAGS must be after target.ld
jlarmour
parents: 1331
diff changeset
70 # will break GCC 2.95 based tools and earlier. You must use "make OLDGCC=1"
a49652af5b92 * pkgconf/rules.mak: When linking, $LDFLAGS must be after target.ld
jlarmour
parents: 1331
diff changeset
71 # to avoid this.
a49652af5b92 * pkgconf/rules.mak: When linking, $LDFLAGS must be after target.ld
jlarmour
parents: 1331
diff changeset
72 ifneq ($(OLDGCC),1)
a49652af5b92 * pkgconf/rules.mak: When linking, $LDFLAGS must be after target.ld
jlarmour
parents: 1331
diff changeset
73 CFLAGS := -finline-limit=7000 $(CFLAGS)
a49652af5b92 * pkgconf/rules.mak: When linking, $LDFLAGS must be after target.ld
jlarmour
parents: 1331
diff changeset
74 endif
a49652af5b92 * pkgconf/rules.mak: When linking, $LDFLAGS must be after target.ld
jlarmour
parents: 1331
diff changeset
75
1313
68ee1bf08a38 Workaround problems with GCC 3.3.x - BUG 1000035
gthomas
parents: 210
diff changeset
76 # Separate C++ flags out from C flags.
68ee1bf08a38 Workaround problems with GCC 3.3.x - BUG 1000035
gthomas
parents: 210
diff changeset
77 ACTUAL_CFLAGS = $(CFLAGS)
68ee1bf08a38 Workaround problems with GCC 3.3.x - BUG 1000035
gthomas
parents: 210
diff changeset
78 ACTUAL_CFLAGS := $(subst -fno-rtti,,$(ACTUAL_CFLAGS))
1537
a49652af5b92 * pkgconf/rules.mak: When linking, $LDFLAGS must be after target.ld
jlarmour
parents: 1331
diff changeset
79 ACTUAL_CFLAGS := $(subst -frtti,,$(ACTUAL_CFLAGS))
1313
68ee1bf08a38 Workaround problems with GCC 3.3.x - BUG 1000035
gthomas
parents: 210
diff changeset
80 ACTUAL_CFLAGS := $(subst -Woverloaded-virtual,,$(ACTUAL_CFLAGS))
68ee1bf08a38 Workaround problems with GCC 3.3.x - BUG 1000035
gthomas
parents: 210
diff changeset
81 ACTUAL_CFLAGS := $(subst -fvtable-gc,,$(ACTUAL_CFLAGS))
171
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents: 163
diff changeset
82
1331
22c47e969126 * pkgconf/rules.mak: Remove -finit-priority and -fvtable-gc
jlarmour
parents: 1313
diff changeset
83 ACTUAL_CXXFLAGS = $(CFLAGS)
22c47e969126 * pkgconf/rules.mak: Remove -finit-priority and -fvtable-gc
jlarmour
parents: 1313
diff changeset
84
76
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
85 # pattern matching rules to generate a library object from source code
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
86 # object filenames are prefixed to avoid name clashes
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
87 # a single dependency rule is generated (file extension = ".o.d")
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
88 %.o.d : %.c
171
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents: 163
diff changeset
89 ifeq ($(HOST),CYGWIN)
204
c044cdf1c4f7 Fix rules.mak properly this time
jlarmour
parents: 203
diff changeset
90 @mkdir -p `cygpath -w "$(dir $@)" | sed "s@\\\\\\\\@/@g"`
171
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents: 163
diff changeset
91 else
76
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
92 @mkdir -p $(dir $@)
171
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents: 163
diff changeset
93 endif
1313
68ee1bf08a38 Workaround problems with GCC 3.3.x - BUG 1000035
gthomas
parents: 210
diff changeset
94 $(CC) -c $(INCLUDE_PATH) -I$(dir $<) $(ACTUAL_CFLAGS) -Wp,-MD,$(@:.o.d=.tmp) -o $(dir $@)$(OBJECT_PREFIX)_$(notdir $(@:.o.d=.o)) $<
163
0d2b193a635f Merge from eCos master repository on 2001-06-22-17:38:39-BST
jlarmour
parents: 141
diff changeset
95 @sed -e '/^ *\\/d' -e "s#.*: #$@: #" $(@:.o.d=.tmp) > $@
76
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
96 @rm $(@:.o.d=.tmp)
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
97
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
98 %.o.d : %.cxx
171
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents: 163
diff changeset
99 ifeq ($(HOST),CYGWIN)
204
c044cdf1c4f7 Fix rules.mak properly this time
jlarmour
parents: 203
diff changeset
100 @mkdir -p `cygpath -w "$(dir $@)" | sed "s@\\\\\\\\@/@g"`
171
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents: 163
diff changeset
101 else
76
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
102 @mkdir -p $(dir $@)
171
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents: 163
diff changeset
103 endif
1331
22c47e969126 * pkgconf/rules.mak: Remove -finit-priority and -fvtable-gc
jlarmour
parents: 1313
diff changeset
104 $(CC) -c $(INCLUDE_PATH) -I$(dir $<) $(ACTUAL_CXXFLAGS) -Wp,-MD,$(@:.o.d=.tmp) -o $(dir $@)$(OBJECT_PREFIX)_$(notdir $(@:.o.d=.o)) $<
163
0d2b193a635f Merge from eCos master repository on 2001-06-22-17:38:39-BST
jlarmour
parents: 141
diff changeset
105 @sed -e '/^ *\\/d' -e "s#.*: #$@: #" $(@:.o.d=.tmp) > $@
76
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
106 @rm $(@:.o.d=.tmp)
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
107
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 204
diff changeset
108 %.o.d : %.cpp
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 204
diff changeset
109 ifeq ($(HOST),CYGWIN)
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 204
diff changeset
110 @mkdir -p `cygpath -w "$(dir $@)" | sed "s@\\\\\\\\@/@g"`
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 204
diff changeset
111 else
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 204
diff changeset
112 @mkdir -p $(dir $@)
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 204
diff changeset
113 endif
1331
22c47e969126 * pkgconf/rules.mak: Remove -finit-priority and -fvtable-gc
jlarmour
parents: 1313
diff changeset
114 $(CC) -c $(INCLUDE_PATH) -I$(dir $<) $(ACTUAL_CXXFLAGS) -Wp,-MD,$(@:.o.d=.tmp) -o $(dir $@)$(OBJECT_PREFIX)_$(notdir $(@:.o.d=.o)) $<
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 204
diff changeset
115 @sed -e '/^ *\\/d' -e "s#.*: #$@: #" $(@:.o.d=.tmp) > $@
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 204
diff changeset
116 @rm $(@:.o.d=.tmp)
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 204
diff changeset
117
76
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
118 %.o.d : %.S
171
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents: 163
diff changeset
119 ifeq ($(HOST),CYGWIN)
204
c044cdf1c4f7 Fix rules.mak properly this time
jlarmour
parents: 203
diff changeset
120 @mkdir -p `cygpath -w "$(dir $@)" | sed "s@\\\\\\\\@/@g"`
171
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents: 163
diff changeset
121 else
76
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
122 @mkdir -p $(dir $@)
171
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents: 163
diff changeset
123 endif
1313
68ee1bf08a38 Workaround problems with GCC 3.3.x - BUG 1000035
gthomas
parents: 210
diff changeset
124 $(CC) -c $(INCLUDE_PATH) -I$(dir $<) $(ACTUAL_CFLAGS) -Wp,-MD,$(@:.o.d=.tmp) -o $(dir $@)$(OBJECT_PREFIX)_$(notdir $(@:.o.d=.o)) $<
163
0d2b193a635f Merge from eCos master repository on 2001-06-22-17:38:39-BST
jlarmour
parents: 141
diff changeset
125 @sed -e '/^ *\\/d' -e "s#.*: #$@: #" $(@:.o.d=.tmp) > $@
76
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
126 @rm $(@:.o.d=.tmp)
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
127
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
128 # pattern matching rules to generate a test object from source code
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
129 # object filenames are not prefixed
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
130 # a single dependency rule is generated (file extension = ".d")
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
131 %.d : %.c
171
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents: 163
diff changeset
132 ifeq ($(HOST),CYGWIN)
204
c044cdf1c4f7 Fix rules.mak properly this time
jlarmour
parents: 203
diff changeset
133 @mkdir -p `cygpath -w "$(dir $@)" | sed "s@\\\\\\\\@/@g"`
171
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents: 163
diff changeset
134 else
76
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
135 @mkdir -p $(dir $@)
171
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents: 163
diff changeset
136 endif
1313
68ee1bf08a38 Workaround problems with GCC 3.3.x - BUG 1000035
gthomas
parents: 210
diff changeset
137 $(CC) -c $(INCLUDE_PATH) -I$(dir $<) $(ACTUAL_CFLAGS) -Wp,-MD,$(@:.d=.tmp) -o $(@:.d=.o) $<
176
3902ef905c9c Merge from eCos master repository on 2001-08-03-06:43:13-BST
jlarmour
parents: 171
diff changeset
138 @sed -e '/^ *\\/d' -e "s#.*: #$@: #" $(@:.d=.tmp) > $@
76
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
139 @rm $(@:.d=.tmp)
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
140
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
141 %.d : %.cxx
171
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents: 163
diff changeset
142 ifeq ($(HOST),CYGWIN)
204
c044cdf1c4f7 Fix rules.mak properly this time
jlarmour
parents: 203
diff changeset
143 @mkdir -p `cygpath -w "$(dir $@)" | sed "s@\\\\\\\\@/@g"`
171
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents: 163
diff changeset
144 else
76
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
145 @mkdir -p $(dir $@)
171
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents: 163
diff changeset
146 endif
1331
22c47e969126 * pkgconf/rules.mak: Remove -finit-priority and -fvtable-gc
jlarmour
parents: 1313
diff changeset
147 $(CC) -c $(INCLUDE_PATH) -I$(dir $<) $(ACTUAL_CXXFLAGS) -Wp,-MD,$(@:.d=.tmp) -o $(@:.d=.o) $<
176
3902ef905c9c Merge from eCos master repository on 2001-08-03-06:43:13-BST
jlarmour
parents: 171
diff changeset
148 @sed -e '/^ *\\/d' -e "s#.*: #$@: #" $(@:.d=.tmp) > $@
76
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
149 @rm $(@:.d=.tmp)
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
150
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 204
diff changeset
151 %.d : %.cpp
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 204
diff changeset
152 ifeq ($(HOST),CYGWIN)
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 204
diff changeset
153 @mkdir -p `cygpath -w "$(dir $@)" | sed "s@\\\\\\\\@/@g"`
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 204
diff changeset
154 else
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 204
diff changeset
155 @mkdir -p $(dir $@)
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 204
diff changeset
156 endif
1331
22c47e969126 * pkgconf/rules.mak: Remove -finit-priority and -fvtable-gc
jlarmour
parents: 1313
diff changeset
157 $(CC) -c $(INCLUDE_PATH) -I$(dir $<) $(ACTUAL_CXXFLAGS) -Wp,-MD,$(@:.d=.tmp) -o $(@:.d=.o) $<
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 204
diff changeset
158 @sed -e '/^ *\\/d' -e "s#.*: #$@: #" $(@:.d=.tmp) > $@
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 204
diff changeset
159 @rm $(@:.d=.tmp)
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 204
diff changeset
160
76
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
161 %.d : %.S
171
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents: 163
diff changeset
162 ifeq ($(HOST),CYGWIN)
204
c044cdf1c4f7 Fix rules.mak properly this time
jlarmour
parents: 203
diff changeset
163 @mkdir -p `cygpath -w "$(dir $@)" | sed "s@\\\\\\\\@/@g"`
171
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents: 163
diff changeset
164 else
76
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
165 @mkdir -p $(dir $@)
171
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents: 163
diff changeset
166 endif
1313
68ee1bf08a38 Workaround problems with GCC 3.3.x - BUG 1000035
gthomas
parents: 210
diff changeset
167 $(CC) -c $(INCLUDE_PATH) -I$(dir $<) $(ACTUAL_CFLAGS) -Wp,-MD,$(@:.d=.tmp) -o $(@:.d=.o) $<
176
3902ef905c9c Merge from eCos master repository on 2001-08-03-06:43:13-BST
jlarmour
parents: 171
diff changeset
168 @sed -e '/^ *\\/d' -e "s#.*: #$@: #" $(@:.d=.tmp) > $@
76
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
169 @rm $(@:.d=.tmp)
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
170
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
171 # rule to generate a test executable from object code
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
172 $(PREFIX)/tests/$(PACKAGE)/%$(EXEEXT): %.d $(wildcard $(PREFIX)/lib/target.ld) $(wildcard $(PREFIX)/lib/*.[ao])
171
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents: 163
diff changeset
173 ifeq ($(HOST),CYGWIN)
204
c044cdf1c4f7 Fix rules.mak properly this time
jlarmour
parents: 203
diff changeset
174 @mkdir -p `cygpath -w "$(dir $@)" | sed "s@\\\\\\\\@/@g"`
171
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents: 163
diff changeset
175 else
76
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
176 @mkdir -p $(dir $@)
171
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents: 163
diff changeset
177 endif
76
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
178 ifneq ($(IGNORE_LINK_ERRORS),)
1537
a49652af5b92 * pkgconf/rules.mak: When linking, $LDFLAGS must be after target.ld
jlarmour
parents: 1331
diff changeset
179 -$(CC) -L$(PREFIX)/lib -Ttarget.ld -o $@ $(<:.d=.o) $(LDFLAGS)
76
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
180 else
1537
a49652af5b92 * pkgconf/rules.mak: When linking, $LDFLAGS must be after target.ld
jlarmour
parents: 1331
diff changeset
181 $(CC) -L$(PREFIX)/lib -Ttarget.ld -o $@ $(<:.d=.o) $(LDFLAGS)
76
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
182 endif
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
183
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
184 # rule to generate all tests and create a dependency file "tests.deps" by
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
185 # concatenating the individual dependency rule files (file extension = ".d")
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
186 # generated during compilation
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
187 tests: tests.stamp
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
188
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 204
diff changeset
189 TESTS := $(TESTS:.cpp=)
76
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
190 TESTS := $(TESTS:.cxx=)
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
191 TESTS := $(TESTS:.c=)
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
192 TESTS := $(TESTS:.S=)
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
193 tests.stamp: $(foreach target,$(TESTS),$(target).d $(PREFIX)/tests/$(PACKAGE)/$(target)$(EXEEXT))
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
194 ifneq ($(strip $(TESTS)),)
196
9b55e9c69693 Merge from eCos master repository on 2001-11-23-15:32:03-GMT
jlarmour
parents: 176
diff changeset
195 @cat $(TESTS:%=%.d) > $(@:.stamp=.deps)
76
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
196 endif
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
197 @touch $@
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
198
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
199 # rule to clean the build tree
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
200 clean:
136
a9ac27ec7abc Merge from eCos master repository on 2000-11-17-18:24:25-GMT
jlarmour
parents: 76
diff changeset
201 @find . -type f -print | grep -v makefile | xargs rm -f
76
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
202
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
203 # rule to copy MLT files
141
450e4e1f1e80 Merge from eCos master repository on 2000-11-27-23:09:27-GMT
jlarmour
parents: 136
diff changeset
204 mlt_headers: $(foreach x,$(MLT),$(PREFIX)/include/pkgconf/$(notdir $x))
450e4e1f1e80 Merge from eCos master repository on 2000-11-27-23:09:27-GMT
jlarmour
parents: 136
diff changeset
205
450e4e1f1e80 Merge from eCos master repository on 2000-11-27-23:09:27-GMT
jlarmour
parents: 136
diff changeset
206 $(foreach x,$(MLT),$(PREFIX)/include/pkgconf/$(notdir $x)): $(MLT)
450e4e1f1e80 Merge from eCos master repository on 2000-11-27-23:09:27-GMT
jlarmour
parents: 136
diff changeset
207 @cp $(dir $<)/$(notdir $@) $(PREFIX)/include/pkgconf
450e4e1f1e80 Merge from eCos master repository on 2000-11-27-23:09:27-GMT
jlarmour
parents: 136
diff changeset
208 @chmod u+w $(PREFIX)/include/pkgconf/$(notdir $@)
76
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
209
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
diff changeset
210 # end of file