~ubuntu-branches/ubuntu/wily/afnix/wily

« back to all changes in this revision

Viewing changes to .pc/NoStaticLibs.patch/cnf/mak/afnix-rule.mak

  • Committer: Bazaar Package Importer
  • Author(s): Anibal Monsalve Salazar
  • Date: 2011-03-16 21:31:18 UTC
  • mfrom: (1.1.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20110316213118-gk4k3ez3e5d2huna
Tags: 2.0.0-1
* QA upload.
* New upstream release
* Debian source format is 3.0 (quilt)
* Fix debhelper-but-no-misc-depends
* Fix ancient-standards-version
* Fix package-contains-linda-override
* debhelper compatibility is 7
* Fix dh-clean-k-is-deprecated

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# ----------------------------------------------------------------------------
 
2
# - afnix-rule                                                               -
 
3
# - afnix generic rule makefile configuration                                -
 
4
# ----------------------------------------------------------------------------
 
5
# - This program is  free software;  you can  redistribute it and/or  modify -
 
6
# - it provided that this copyright notice is kept intact.                   -
 
7
# -                                                                          -
 
8
# - This  program  is  distributed in the hope  that it  will be useful, but -
 
9
# - without  any   warranty;  without  even   the   implied    warranty   of -
 
10
# - merchantability  or fitness for a particular purpose. In not event shall -
 
11
# - the copyright holder be  liable for  any direct, indirect, incidental or -
 
12
# - special damages arising in any way out of the use of this software.      -
 
13
# ----------------------------------------------------------------------------
 
14
# - copyright (c) 1999-2011 amaury darsch                                    -
 
15
# ----------------------------------------------------------------------------
 
16
 
 
17
ifeq ($(CCMODE),debug)
 
18
  ENVFLAGS      = $(STDEVFLAGS) $(PLTEVFLAGS)
 
19
  CPPFLAGS      = $(STDCCFLAGS) $(PLTCCFLAGS) $(CPPCCFLAGS) $(DEBUGFLAGS)
 
20
  CXXFLAGS      = $(STDCCFLAGS) $(PLTCCFLAGS) $(CXXCCFLAGS) $(DEBUGFLAGS)
 
21
  CCDEFINE      = $(STDDEFINES) $(PLTDEFINES) $(DBGDEFINES)
 
22
endif
 
23
 
 
24
ifeq ($(CCMODE),optimized)
 
25
  ENVFLAGS      = $(STDEVFLAGS) $(PLTEVFLAGS)
 
26
  CPPFLAGS      = $(STDCCFLAGS) $(PLTCCFLAGS) $(CPPCCFLAGS) $(OPTCCFLAGS)
 
27
  CXXFLAGS      = $(STDCCFLAGS) $(PLTCCFLAGS) $(CXXCCFLAGS) $(OPTCCFLAGS)
 
28
  CCDEFINE      = $(STDDEFINES) $(PLTDEFINES) $(OPTDEFINES)
 
29
endif
 
30
 
 
31
ifeq ($(CCMODE),profiled)
 
32
  ENVFLAGS      = $(STDEVFLAGS) $(PLTEVFLAGS)
 
33
  CPPFLAGS      = $(STDCCFLAGS) $(PLTCCFLAGS) $(CPPCCFLAGS) $(PFLCCFLAGS)
 
34
  CXXFLAGS      = $(STDCCFLAGS) $(PLTCCFLAGS) $(CXXCCFLAGS) $(PFLCCFLAGS)
 
35
  CCDEFINE      = $(STDDEFINES) $(PLTDEFINES) $(DBGDEFINES)
 
36
endif
 
37
 
 
38
ifeq ($(CCMODE),coverage)
 
39
  ENVFLAGS      = $(STDEVFLAGS) $(PLTEVFLAGS)
 
40
  CPPFLAGS      = $(STDCCFLAGS) $(PLTCCFLAGS) $(CPPCCFLAGS) $(COVCCFLAGS)
 
41
  CXXFLAGS      = $(STDCCFLAGS) $(PLTCCFLAGS) $(CXXCCFLAGS) $(COVCCFLAGS)
 
42
  CCDEFINE      = $(STDDEFINES) $(PLTDEFINES) $(DBGDEFINES)
 
43
endif
 
44
 
 
45
PPFLAGS         = $(CPPFLAGS)   $(EXTCPPFLAGS)
 
46
XXFLAGS         = $(CXXFLAGS)   $(EXTCXXFLAGS)
 
47
DEFINES         = $(CCDEFINE)   $(EXTCCDEFINE)
 
48
PPINCLS         = $(STDINCLUDE) $(INCLUDE)
 
49
XXINCLS         = $(STDINCLUDE) $(EXTINCLUDES) $(INCLUDE)
 
50
 
 
51
# ----------------------------------------------------------------------------
 
52
# - project file rules                                                       -
 
53
# ----------------------------------------------------------------------------
 
54
 
 
55
HPPSRCS         = $(wildcard *.hpp)
 
56
CPPSRCS         = $(wildcard *.cpp)
 
57
CXXSRCS         = $(wildcard *.cxx)
 
58
 
 
59
CPPOBJS         = $(CPPSRCS:.cpp=.o)
 
60
CXXOBJS         = $(CXXSRCS:.cxx=.o)
 
61
CPPLOBJ         = $(CPPLSRC:.cpp=.o)
 
62
CXXLOBJ         = $(CXXLSRC:.cxx=.o)
 
63
OBJECTS         = $(CPPOBJS) $(CXXOBJS) $(CPPLOBJ) $(CXXLOBJ)
 
64
 
 
65
ifneq ($(TRGLIB),)
 
66
ARLIB           = lib$(TRGLIB).$(AREXT)
 
67
DYLIB           = lib$(TRGLIB).$(DYEXT)
 
68
endif
 
69
 
 
70
ifeq ($(LKMODE),soname)
 
71
SOMAJ           = $(DYLIB).$(MAJOR)
 
72
SOMIN           = $(DYLIB).$(MAJOR).$(MINOR)
 
73
SONAME          = $(SOMIN)
 
74
SOVRS           = $(DYLIB).$(MAJOR).$(MINOR).$(PATCH)
 
75
endif
 
76
 
 
77
ifeq ($(LKMODE),dylib)
 
78
DYMAJ           = lib$(TRGLIB).$(MAJOR).$(DYEXT)
 
79
DYMIN           = lib$(TRGLIB).$(MAJOR).$(MINOR).$(DYEXT)
 
80
DYVRS           = lib$(TRGLIB).$(MAJOR).$(MINOR).$(PATCH).$(DYEXT)
 
81
endif
 
82
 
 
83
# mark the file as loaded
 
84
ifeq ($(AFNIX-RULE-LOAD),)
 
85
AFNIX-RULE-LOAD = 1
 
86
endif
 
87
 
 
88
# ----------------------------------------------------------------------------
 
89
# - compilation rules                                                        -
 
90
# ----------------------------------------------------------------------------
 
91
 
 
92
ifeq ($(CCRULE),no)
 
93
%.o : %.cpp
 
94
%.o : %.cxx
 
95
else
 
96
-include *.d
 
97
 
 
98
%.o   : %.cpp 
 
99
        $(ENVFLAGS) $(CC) $(PPFLAGS) $(DEFINES) $(PPINCLS) -o $@ -c $<
 
100
 
 
101
%.o   : %.cxx 
 
102
        $(ENVFLAGS) $(CC) $(XXFLAGS) $(DEFINES) $(XXINCLS) -o $@ -c $<
 
103
endif
 
104
 
 
105
# ----------------------------------------------------------------------------
 
106
# - archive rules                                                            -
 
107
# ----------------------------------------------------------------------------
 
108
 
 
109
ifneq ($(ARLIB),)
 
110
 
 
111
ifeq ($(PLATNAME),darwin)
 
112
$(ARLIB) : $(OBJECTS)
 
113
        @$(RM) $@
 
114
        $(ENVFLAGS) $(AR) $(ARFLAGS) $@ $(OBJECTS)
 
115
        $(ENVFLAGS) $(RANLIB) $@
 
116
        @$(MKDIR) $(BLDLIB)
 
117
        @$(CP) $@ $(BLDLIB)
 
118
else
 
119
$(ARLIB) : $(OBJECTS)
 
120
        @$(RM) $@
 
121
        $(ENVFLAGS) $(AR) $(ARFLAGS) $@ $(OBJECTS)
 
122
        @$(MKDIR) $(BLDLIB)
 
123
        @$(CP) $@ $(BLDLIB)
 
124
endif
 
125
 
 
126
install-arlib: $(ARLIB)
 
127
        @$(MKDIR) $(LIBDIR)
 
128
        @$(CP)    $(ARLIB) $(LIBDIR)
 
129
.PHONY: install-arlib
 
130
else
 
131
install-arlib: $(ARLIB)
 
132
        @$(MKDIR) $(LIBDIR)
 
133
.PHONY: install-arlib
 
134
endif
 
135
 
 
136
# ----------------------------------------------------------------------------
 
137
# - dynamic linking rules                                                    -
 
138
# ----------------------------------------------------------------------------
 
139
 
 
140
# dynamic linking rules
 
141
ifeq ($(LKTYPE),dynamic)
 
142
 
 
143
# use generic linking mode
 
144
ifeq ($(LKMODE),generic)
 
145
$(DYLIB) : $(OBJECTS)
 
146
        $(ENVFLAGS) $(LD) $(LDFLAGS) -o $@ $(OBJECTS) $(EXTLIB)
 
147
        @$(MKDIR)   $(BLDLIB)
 
148
        @$(CP)   $@ $(BLDLIB)
 
149
 
 
150
install-dylib : $(DYLIB)
 
151
        @$(MKDIR)       $(LIBDIR)
 
152
        @$(CP) $(DYLIB) $(LIBDIR)
 
153
.PHONY: install-dylib
 
154
endif
 
155
 
 
156
# use soname linking mode
 
157
ifeq  ($(LKMODE),soname)
 
158
$(SOVRS) : $(OBJECTS)
 
159
        $(ENVFLAGS) $(LD) $(LDFLAGS) -o $(SOVRS) $(OBJECTS) $(EXTLIB)
 
160
 
 
161
$(DYLIB) : $(SOVRS)
 
162
        @$(MKDIR)        $(BLDLIB)
 
163
        @$(CP) $(SOVRS)  $(BLDLIB)
 
164
        @$(RM) $(BLDLIB)/$(DYLIB)
 
165
        @$(RM) $(BLDLIB)/$(SOMIN)
 
166
        @$(LN) $(SOVRS)  $(BLDLIB)/$(SOMIN)
 
167
        @$(LN) $(SOMIN)  $(BLDLIB)/$(DYLIB)
 
168
 
 
169
install-dylib : $(DYLIB)
 
170
        @$(MKDIR)        $(LIBDIR)
 
171
        @$(CP) $(SOVRS)  $(LIBDIR)
 
172
        @$(RM) $(LIBDIR)/$(SOMIN)
 
173
        @$(RM) $(LIBDIR)/$(DYLIB)
 
174
        @$(LN) $(SOVRS)  $(LIBDIR)/$(SOMIN)
 
175
        @$(LN) $(SOMIN)  $(LIBDIR)/$(DYLIB)
 
176
.PHONY: install-dylib
 
177
endif
 
178
 
 
179
# use dylib linking mode
 
180
ifeq  ($(LKMODE),dylib)
 
181
$(DYVRS) : $(OBJECTS)
 
182
        @$(RM) $@
 
183
        $(ENVFLAGS) $(LD) $(LDFLAGS) -install_name $(DYMAJ) -o $(DYVRS) \
 
184
                    $(OBJECTS) $(EXTLIB)
 
185
 
 
186
$(DYLIB) : $(DYVRS)
 
187
        @$(MKDIR)        $(BLDLIB)
 
188
        @$(CP) $(DYVRS)  $(BLDLIB)
 
189
        @$(RM) $(BLDLIB)/$(DYLIB)
 
190
        @$(RM) $(BLDLIB)/$(DYMAJ)
 
191
        @$(RM) $(BLDLIB)/$(DYMIN)
 
192
        @$(LN) $(DYVRS)  $(BLDLIB)/$(DYLIB)
 
193
        @$(LN) $(DYVRS)  $(BLDLIB)/$(DYMAJ)
 
194
        @$(LN) $(DYVRS)  $(BLDLIB)/$(DYMIN)
 
195
 
 
196
install-dylib : $(DYLIB)
 
197
        @$(MKDIR)        $(LIBDIR)
 
198
        @$(CP) $(DYVRS)  $(LIBDIR)
 
199
        @$(RM) $(LIBDIR)/$(DYLIB)
 
200
        @$(RM) $(LIBDIR)/$(DYMAJ)
 
201
        @$(RM) $(LIBDIR)/$(DYMIN)
 
202
        @$(LN) $(DYVRS)  $(LIBDIR)/$(DYLIB)
 
203
        @$(LN) $(DYVRS)  $(LIBDIR)/$(DYMAJ)
 
204
        @$(LN) $(DYVRS)  $(LIBDIR)/$(DYMIN)
 
205
.PHONY: install-dylib
 
206
endif
 
207
 
 
208
# else clause for dynamic linking
 
209
else
 
210
install-dylib:
 
211
        @$(MKDIR) $(LIBDIR)
 
212
.PHONY: install-dylib
 
213
endif
 
214
 
 
215
install-lib: install-arlib install-dylib
 
216
.PHONY: install-lib
 
217
 
 
218
# ----------------------------------------------------------------------------
 
219
# - library rules                                                            -
 
220
# ----------------------------------------------------------------------------
 
221
 
 
222
ifneq ($(HPPSRCS),)
 
223
build-hpp : $(HPPSRCS)
 
224
        @$(MKDIR) $(BLDHDR)/$(TRGDIR)
 
225
        @for i in *.hpp; do\
 
226
           $(CMP) $$i $(BLDHDR)/$(TRGDIR)/$$i || \
 
227
           $(CP)  $$i $(BLDHDR)/$(TRGDIR)/$$i; \
 
228
         done
 
229
else
 
230
build-hpp:
 
231
.PHONY: build-hpp
 
232
endif
 
233
 
 
234
ifneq ($(TRGLIB),)
 
235
ifeq  ($(LKTYPE),dynamic)
 
236
$(TRGLIB) : $(ARLIB) $(DYLIB) build-hpp
 
237
endif
 
238
ifeq  ($(LKTYPE),static)
 
239
$(TRGLIB) : $(ARLIB) build-hpp
 
240
endif
 
241
endif
 
242
 
 
243
# ----------------------------------------------------------------------------
 
244
# - target rules                                                             -
 
245
# ----------------------------------------------------------------------------
 
246
 
 
247
ifneq ($(TARGETS),)
 
248
targets: $(TARGETS)
 
249
        @$(MKDIR) $(BLDBIN)
 
250
        @$(CP)    $(TARGETS) $(BLDBIN)
 
251
.PHONY: targets
 
252
 
 
253
ifeq ($(LKTYPE),dynamic)
 
254
$(TARGETS) : $(OBJECTS)
 
255
        $(ENVFLAGS) $(LK) -Wl,-rpath=/usr/lib/afnix,-rpath-link,/usr/lib/afnix $(LKFLAGS) -o $@ $(OBJECTS) $(EXELIBS) $(EXESLIB)
 
256
endif
 
257
ifeq ($(LKTYPE),static)
 
258
$(TARGETS) : $(OBJECTS)
 
259
        $(ENVFLAGS) $(LK) $(LKFLAGS) -o $@ $(OBJECTS) $(STALIBS) $(EXESLIB)
 
260
endif
 
261
endif
 
262
 
 
263
# ----------------------------------------------------------------------------
 
264
# - testers rules                                                            -
 
265
# ----------------------------------------------------------------------------
 
266
 
 
267
ifneq ($(TESTALS),)
 
268
$(TESTALS) :
 
269
        @$(AEXEC) -v --prefix=$(BLDDIR) \
 
270
                     --binexe=$(AXIEXE) --binopt=$(AXIOPT) $@
 
271
.PHONY: $(TESTALS)
 
272
 
 
273
test: $(TESTALS)
 
274
.PHONY: test
 
275
endif
 
276
 
 
277
ifneq ($(TESTERS),)
 
278
$(TESTERS) : % : %.o
 
279
        $(LK) $(LKFLAGS) -o $@ $@.o $(EXELIBS) $(EXESLIB)
 
280
 
 
281
test: $(TESTERS:%=%.exe)
 
282
ifeq ($(DLYPATH),)
 
283
$(TESTERS:%=%.exe): %.exe : %
 
284
        @$(BEXEC) -v --prefix=$(BLDDIR) $<
 
285
else
 
286
$(TESTERS:%=%.exe): %.exe : %
 
287
        @$(BEXEC) -v --prefix=$(BLDDIR) --libdir=$(DLYPATH) $<
 
288
endif
 
289
.PHONY: test $(TESTERS:%=%.exe)
 
290
endif
 
291
 
 
292
# ----------------------------------------------------------------------------
 
293
# - status rule                                                              -
 
294
# ----------------------------------------------------------------------------
 
295
 
 
296
status::
 
297
        @echo 'build version          :' $(VERSION)
 
298
        @echo 'prefix                 :' $(PREFIX)
 
299
        @echo 'bin directory (BINDIR) :' $(BINDIR)
 
300
        @echo 'lib directory (LIBDIR) :' $(LIBDIR)
 
301
        @echo 'hdr directory (HDRDIR) :' $(HDRDIR)
 
302
        @echo 'doc directory (DOCDIR) :' $(DOCDIR)
 
303
        @echo 'man directory (MANDIR) :' $(MANDIR)
 
304
        @echo 'etc directory (ETCDIR) :' $(ETCDIR)
 
305
        @echo 'prj directory (PRJDIR) :' $(PRJDIR)
 
306
.PHONY: status
 
307
 
 
308
# ----------------------------------------------------------------------------
 
309
# - generic clean                                                            -
 
310
# ----------------------------------------------------------------------------
 
311
 
 
312
clean::
 
313
        @$(RM) *.o *.d *~ core *.so *.so.* *.a *.dylib *.bb *.bbg *.da
 
314
        @$(RM) core *.core core.* .gdb_history gmon.out
 
315
.PHONY: clean