1899
|
1 #######################################################################
|
|
2 # SWIG top level Makefile
|
|
3 #######################################################################
|
|
4
|
|
5 .PHONY: ccache source swig
|
|
6
|
|
7 prefix = @prefix@
|
|
8 exec_prefix = @exec_prefix@
|
|
9 srcdir = @srcdir@
|
|
10 datarootdir = @datarootdir@
|
|
11
|
|
12 ##############################################################################
|
|
13 # Compiler and system configuration
|
|
14 ##############################################################################
|
|
15
|
|
16 SHELL = /bin/sh
|
|
17 SWIG_LIB = @swig_lib@
|
|
18 BIN_DIR = @bindir@
|
|
19 ENABLE_CCACHE = @ENABLE_CCACHE@
|
|
20 TARGET_NOEXE= swig
|
|
21 TARGET = $(TARGET_NOEXE)@EXEEXT@
|
|
22 SOURCE = Source
|
|
23 CCACHE = CCache
|
|
24 DOCS = Doc/Manual
|
|
25 RUNPIPE = \>/dev/null
|
|
26
|
|
27 swig: libfiles source ccache
|
|
28
|
|
29 source:
|
|
30 @cd $(SOURCE) && $(MAKE)
|
|
31
|
|
32 ccache:
|
|
33 test -z "$(ENABLE_CCACHE)" || (cd $(CCACHE) && $(MAKE))
|
|
34
|
|
35 libfiles: $(srcdir)/Lib/swigwarn.swg
|
|
36
|
|
37 # Files required just for the tarball
|
|
38 maintainer: libfiles
|
|
39 @cd $(SOURCE) && $(MAKE) CParse/parser.h
|
|
40
|
|
41 #####################################################################
|
|
42 # Documentation
|
|
43 #####################################################################
|
|
44
|
|
45 docs: docs-main docs-ccache
|
|
46
|
|
47 docs-main:
|
|
48 @echo making docs
|
|
49 @test -d $(DOCS) || exit 0; cd $(DOCS) && $(MAKE) all clean-baks
|
|
50
|
|
51 docs-ccache:
|
|
52 test -z "$(ENABLE_CCACHE)" || (cd $(CCACHE) && $(MAKE) docs)
|
|
53
|
|
54 #####################################################################
|
|
55 # All the languages SWIG speaks (when it wants to)
|
|
56 #####################################################################
|
|
57
|
|
58 skip-tcl = test -n "@SKIP_TCL@"
|
|
59 skip-perl5 = test -n "@SKIP_PERL5@"
|
|
60 skip-python = test -n "@SKIP_PYTHON@"
|
|
61 skip-java = test -n "@SKIP_JAVA@"
|
|
62 skip-guile = test -n "@SKIP_GUILE@"
|
|
63 skip-mzscheme = test -n "@SKIP_MZSCHEME@"
|
|
64 skip-ruby = test -n "@SKIP_RUBY@"
|
|
65 skip-php = test -n "@SKIP_PHP@"
|
|
66 skip-ocaml = test -n "@SKIP_OCAML@"
|
|
67 skip-octave = test -n "@SKIP_OCTAVE@"
|
|
68 skip-pike = test -n "@SKIP_PIKE@"
|
|
69 skip-chicken = test -n "@SKIP_CHICKEN@"
|
|
70 skip-csharp = test -n "@SKIP_CSHARP@"
|
|
71 skip-modula3 = test -n "@SKIP_MODULA3@"
|
|
72 skip-lua = test -n "@SKIP_LUA@"
|
|
73 skip-allegrocl = test -n "@SKIP_ALLEGROCL@"
|
|
74 skip-clisp = test -n "@SKIP_CLISP@"
|
|
75 skip-cffi = test -n "@SKIP_CFFI@"
|
|
76 skip-uffi = test -n "@SKIP_UFFI@"
|
|
77 skip-r = test -n "@SKIP_R@"
|
|
78 skip-go = test -n "@SKIP_GO@"
|
|
79 skip-d = test -n "@SKIP_D@"
|
|
80
|
|
81 # Additional dependencies for some tests
|
|
82 skip-gcj = test -n "@SKIP_GCJ@"
|
|
83 skip-android = test -n "@SKIP_ANDROID@"
|
|
84
|
|
85 #####################################################################
|
|
86 # CHECK
|
|
87 #####################################################################
|
|
88
|
|
89 ACTION = check
|
|
90 NOSKIP =
|
|
91
|
|
92 chk-set-swiglib = SWIG_LIB=@ROOT_DIR@/Lib
|
|
93 chk-set-swig = SWIG=@ROOT_DIR@/$(TARGET)
|
|
94 chk-set-env = $(chk-set-swiglib) $(chk-set-swig)
|
|
95
|
|
96 check-aliveness:
|
|
97 test -x ./$(TARGET)
|
|
98 ./$(TARGET) -version
|
|
99 ./$(TARGET) -help
|
|
100 @$(skip-tcl) || ./$(TARGET) -tcl -help
|
|
101 @$(skip-perl5) || ./$(TARGET) -perl -help
|
|
102 @$(skip-python) || ./$(TARGET) -python -help
|
|
103 @$(skip-java) || ./$(TARGET) -java -help
|
|
104 @$(skip-guile) || ./$(TARGET) -guile -help
|
|
105 @$(skip-mzscheme) || ./$(TARGET) -mzscheme -help
|
|
106 @$(skip-ruby) || ./$(TARGET) -ruby -help
|
|
107 @$(skip-ocaml) || ./$(TARGET) -ocaml -help
|
|
108 @$(skip-octave) || ./$(TARGET) -octave -help
|
|
109 @$(skip-php) || ./$(TARGET) -php -help
|
|
110 @$(skip-pike) || ./$(TARGET) -pike -help
|
|
111 @$(skip-chicken) || ./$(TARGET) -chicken -help
|
|
112 @$(skip-csharp) || ./$(TARGET) -csharp -help
|
|
113 @$(skip-modula3) || ./$(TARGET) -modula3 -help
|
|
114 @$(skip-allegrocl)|| ./$(TARGET) -allegrocl -help
|
|
115 @$(skip-clisp) || ./$(TARGET) -clisp -help
|
|
116 @$(skip-uffi) || ./$(TARGET) -uffi -help
|
|
117 @$(skip-cffi) || ./$(TARGET) -cffi -help
|
|
118 @$(skip-lua) || ./$(TARGET) -lua -help
|
|
119 @$(skip-r) || ./$(TARGET) -r -help
|
|
120 @$(skip-go) || ./$(TARGET) -go -help
|
|
121 @$(skip-d) || ./$(TARGET) -d -help
|
|
122
|
|
123 check-ccache:
|
|
124 test -z "$(ENABLE_CCACHE)" || (cd $(CCACHE) && $(MAKE) check)
|
|
125
|
|
126 # Checks / displays versions of each target language
|
|
127 check-versions: \
|
|
128 check-tcl-version \
|
|
129 check-perl5-version \
|
|
130 check-python-version \
|
|
131 check-java-version \
|
|
132 check-android-version \
|
|
133 check-guile-version \
|
|
134 check-mzscheme-version \
|
|
135 check-ruby-version \
|
|
136 check-ocaml-version \
|
|
137 check-octave-version \
|
|
138 check-php-version \
|
|
139 check-pike-version \
|
|
140 check-chicken-version \
|
|
141 check-csharp-version \
|
|
142 check-modula3-version \
|
|
143 check-lua-version \
|
|
144 check-allegrocl-version \
|
|
145 check-clisp-version \
|
|
146 check-uffi-version \
|
|
147 check-cffi-version \
|
|
148 check-r-version \
|
|
149 check-go-version \
|
|
150 check-d-version
|
|
151
|
|
152 # all examples
|
|
153 check-%-version :
|
|
154 @if test -z "$(skip-$*)"; then \
|
|
155 echo $* unknown; \
|
|
156 exit 1; \
|
|
157 fi
|
|
158 @if $(skip-$*); then \
|
|
159 echo skipping $* version; \
|
|
160 else \
|
|
161 echo showing $* version; \
|
|
162 (cd Examples && $(MAKE) -s $*_version) \
|
|
163 fi
|
|
164
|
|
165 # Checks examples for compilation (does not run them)
|
|
166 check-examples: \
|
|
167 check-tcl-examples \
|
|
168 check-perl5-examples \
|
|
169 check-python-examples \
|
|
170 check-java-examples \
|
|
171 check-android-examples \
|
|
172 check-guile-examples \
|
|
173 check-mzscheme-examples \
|
|
174 check-ruby-examples \
|
|
175 check-ocaml-examples \
|
|
176 check-octave-examples \
|
|
177 check-php-examples \
|
|
178 check-pike-examples \
|
|
179 check-chicken-examples \
|
|
180 check-csharp-examples \
|
|
181 check-modula3-examples \
|
|
182 check-lua-examples \
|
|
183 check-allegrocl-examples \
|
|
184 check-clisp-examples \
|
|
185 check-uffi-examples \
|
|
186 check-cffi-examples \
|
|
187 check-r-examples \
|
|
188 check-go-examples \
|
|
189 check-d-examples
|
|
190
|
|
191 tcl_examples :=$(shell sed '/^\#/d' $(srcdir)/Examples/tcl/check.list)
|
|
192 perl5_examples :=$(shell sed '/^\#/d' $(srcdir)/Examples/perl5/check.list)
|
|
193 python_examples :=$(shell sed '/^\#/d' $(srcdir)/Examples/python/check.list)
|
|
194 java_examples :=$(shell sed '/^\#/d' $(srcdir)/Examples/java/check.list)
|
|
195 android_examples :=$(shell sed '/^\#/d' $(srcdir)/Examples/android/check.list)
|
|
196 guile_examples :=$(shell sed '/^\#/d' $(srcdir)/Examples/guile/check.list)
|
|
197 mzscheme_examples :=$(shell sed '/^\#/d' $(srcdir)/Examples/mzscheme/check.list)
|
|
198 ruby_examples :=$(shell sed '/^\#/d' $(srcdir)/Examples/ruby/check.list)
|
|
199 ocaml_examples :=$(shell sed '/^\#/d' $(srcdir)/Examples/ocaml/check.list)
|
|
200 octave_examples :=$(shell sed '/^\#/d' $(srcdir)/Examples/octave/check.list)
|
|
201 php_examples :=$(shell sed '/^\#/d' $(srcdir)/Examples/php/check.list)
|
|
202 pike_examples :=$(shell sed '/^\#/d' $(srcdir)/Examples/pike/check.list)
|
|
203 chicken_examples :=$(shell sed '/^\#/d' $(srcdir)/Examples/chicken/check.list)
|
|
204 csharp_examples :=$(shell sed '/^\#/d' $(srcdir)/Examples/csharp/check.list)
|
|
205 modula3_examples :=$(shell sed '/^\#/d' $(srcdir)/Examples/modula3/check.list)
|
|
206 lua_examples :=$(shell sed '/^\#/d' $(srcdir)/Examples/lua/check.list)
|
|
207 allegrocl_examples :=
|
|
208 clisp_examples :=
|
|
209 uffi_examples :=
|
|
210 cffi_examples :=
|
|
211 r_examples :=$(shell sed '/^\#/d' $(srcdir)/Examples/r/check.list)
|
|
212 go_examples :=$(shell sed '/^\#/d' $(srcdir)/Examples/go/check.list)
|
|
213 d_examples :=$(shell sed '/^\#/d' $(srcdir)/Examples/d/check.list)
|
|
214
|
|
215 # all examples
|
|
216 check-%-examples :
|
|
217 @if test -z "$(skip-$*)"; then \
|
|
218 echo $* unknown; \
|
|
219 exit 1; \
|
|
220 fi
|
|
221 @if $(skip-$*); then \
|
|
222 echo skipping $* $(ACTION); \
|
|
223 elif test -z "$($(strip $*_examples))"; then \
|
|
224 echo empty $* $(ACTION); \
|
|
225 else \
|
|
226 $(MAKE) -k -s $($*_examples:=.actionexample) LANGUAGE=$* ACTION=$(ACTION); \
|
|
227 fi
|
|
228
|
|
229 # individual example
|
|
230 %.actionexample:
|
|
231 @echo $(ACTION)ing Examples/$(LANGUAGE)/$*
|
|
232 @(cd Examples/$(LANGUAGE)/$* && $(MAKE) -s $(chk-set-env) $(ACTION) RUNPIPE=$(RUNPIPE))
|
|
233
|
|
234 # gcj individual example
|
|
235 java.actionexample:
|
|
236 @if $(skip-gcj); then \
|
|
237 echo "skipping Examples/$(LANGUAGE)/java $(ACTION) (gcj test)"; \
|
|
238 else \
|
|
239 echo $(ACTION)ing Examples/$(LANGUAGE)/java; \
|
|
240 (cd Examples/$(LANGUAGE)/java && $(MAKE) -s $(chk-set-env) $(ACTION)) \
|
|
241 fi
|
|
242
|
|
243 # Checks testcases in the test-suite excluding those which are known to be broken
|
|
244 check-test-suite: \
|
|
245 check-tcl-test-suite \
|
|
246 check-perl5-test-suite \
|
|
247 check-python-test-suite \
|
|
248 check-java-test-suite \
|
|
249 check-guile-test-suite \
|
|
250 check-mzscheme-test-suite \
|
|
251 check-ruby-test-suite \
|
|
252 check-ocaml-test-suite \
|
|
253 check-octave-test-suite \
|
|
254 check-php-test-suite \
|
|
255 check-pike-test-suite \
|
|
256 check-csharp-test-suite \
|
|
257 check-modula3-test-suite \
|
|
258 check-lua-test-suite \
|
|
259 check-allegrocl-test-suite \
|
|
260 check-clisp-test-suite \
|
|
261 check-uffi-test-suite \
|
|
262 check-cffi-test-suite \
|
|
263 check-chicken-test-suite \
|
|
264 check-r-test-suite \
|
|
265 check-go-test-suite \
|
|
266 check-d-test-suite
|
|
267
|
|
268 check-%-test-suite:
|
|
269 @if test -z "$(skip-$*)"; then \
|
|
270 echo $* unknown; \
|
|
271 exit 1; \
|
|
272 fi
|
|
273 @passed=true; \
|
|
274 dir="Examples/test-suite/$*"; \
|
|
275 if $(skip-$*) -a "$(NOSKIP)" != "1"; then \
|
|
276 echo skipping $* test-suite $(ACTION); \
|
|
277 elif [ ! -d $$dir ]; then \
|
|
278 echo warning: cannot $(ACTION) $* test-suite "(no dir $$dir)";\
|
|
279 else \
|
|
280 echo $(ACTION)ing $* test-suite; \
|
|
281 (cd $$dir && $(MAKE) -k -s $(ACTION)) \
|
|
282 || passed=false; \
|
|
283 fi; \
|
|
284 test $$passed = true
|
|
285
|
|
286 # Partial test-suite check - it only invokes SWIG, ie no compilation and no runtime testing
|
|
287 partialcheck-test-suite:
|
|
288 @$(MAKE) -k -s check-test-suite ACTION=partialcheck NOSKIP=1
|
|
289
|
|
290 partialcheck-%-test-suite:
|
|
291 @$(MAKE) -k -s check-$*-test-suite ACTION=partialcheck NOSKIP=1
|
|
292
|
|
293 check: check-aliveness check-ccache check-versions check-examples check-test-suite
|
|
294
|
|
295 # Run known-to-be-broken as well as not broken testcases in the test-suite
|
|
296 all-test-suite: \
|
|
297 all-tcl-test-suite \
|
|
298 all-perl5-test-suite \
|
|
299 all-python-test-suite \
|
|
300 all-java-test-suite \
|
|
301 all-guile-test-suite \
|
|
302 all-mzscheme-test-suite \
|
|
303 all-ruby-test-suite \
|
|
304 all-ocaml-test-suite \
|
|
305 all-octave-test-suite \
|
|
306 all-php-test-suite \
|
|
307 all-pike-test-suite \
|
|
308 all-csharp-test-suite \
|
|
309 all-modula3-test-suite \
|
|
310 all-lua-test-suite \
|
|
311 all-allegrocl-test-suite \
|
|
312 all-clisp-test-suite \
|
|
313 all-uffi-test-suite \
|
|
314 all-cffi-test-suite \
|
|
315 all-chicken-test-suite \
|
|
316 all-r-test-suite \
|
|
317 all-go-test-suite \
|
|
318 all-d-test-suite
|
|
319
|
|
320 all-%-test-suite:
|
|
321 @$(MAKE) -k -s check-$*-test-suite ACTION=all
|
|
322
|
|
323 # Run known-to-be-broken testcases in the test-suite
|
|
324 broken-test-suite: \
|
|
325 broken-tcl-test-suite \
|
|
326 broken-perl5-test-suite \
|
|
327 broken-python-test-suite \
|
|
328 broken-java-test-suite \
|
|
329 broken-guile-test-suite \
|
|
330 broken-mzscheme-test-suite \
|
|
331 broken-ruby-test-suite \
|
|
332 broken-ocaml-test-suite \
|
|
333 broken-octave-test-suite \
|
|
334 broken-php-test-suite \
|
|
335 broken-pike-test-suite \
|
|
336 broken-csharp-test-suite \
|
|
337 broken-modula3-test-suite \
|
|
338 broken-lua-test-suite \
|
|
339 broken-allegrocl-test-suite \
|
|
340 broken-clisp-test-suite \
|
|
341 broken-uffi-test-suite \
|
|
342 broken-cffi-test-suite \
|
|
343 broken-chicken-test-suite \
|
|
344 broken-r-test-suite \
|
|
345 broken-go-test-suite \
|
|
346 broken-d-test-suite
|
|
347
|
|
348 broken-%-test-suite:
|
|
349 @$(MAKE) -k -s check-$*-test-suite ACTION=broken
|
|
350
|
|
351 #####################################################################
|
|
352 # CLEAN
|
|
353 #####################################################################
|
|
354
|
|
355 clean: clean-objects clean-examples clean-test-suite
|
|
356
|
|
357 clean-objects: clean-source clean-ccache
|
|
358
|
|
359 clean-source:
|
|
360 @echo cleaning Source
|
|
361 @cd $(SOURCE) && $(MAKE) -s clean
|
|
362 @rm -f $(TARGET)
|
|
363
|
|
364 clean-examples:
|
|
365 @$(MAKE) -k -s check-examples ACTION=clean
|
|
366
|
|
367 clean-test-suite:
|
|
368 @$(MAKE) -k -s check-test-suite ACTION=clean NOSKIP=1
|
|
369
|
|
370 clean-%-examples:
|
|
371 @$(MAKE) -k -s check-$*-examples ACTION=clean
|
|
372
|
|
373 clean-%-test-suite:
|
|
374 @$(MAKE) -k -s check-$*-test-suite ACTION=clean NOSKIP=1
|
|
375
|
|
376 clean-ccache:
|
|
377 test -z "$(ENABLE_CCACHE)" || (cd $(CCACHE) && $(MAKE) -s clean)
|
|
378
|
|
379 #####################################################################
|
|
380 # DISTCLEAN - clean what configure built
|
|
381 #####################################################################
|
|
382
|
|
383 DISTCLEAN-DEAD = config.status config.log config.cache swig.spec Makefile mkmf.log libtool preinst-swig Lib/ocaml/swigp4.ml
|
|
384
|
|
385 distclean-helper: distclean-test-suite distclean-examples distclean-dead
|
|
386
|
|
387 distclean: distclean-source distclean-ccache distclean-helper
|
|
388
|
|
389 distclean-source:
|
|
390 @echo distcleaning Source
|
|
391 @cd $(SOURCE) && $(MAKE) -s distclean
|
|
392 @rm -f $(TARGET)
|
|
393
|
|
394 distclean-test-suite:
|
|
395 @echo distcleaning Examples/test-suite
|
|
396 @$(MAKE) -k -s check-test-suite ACTION=distclean NOSKIP=1
|
|
397
|
|
398 distclean-examples:
|
|
399 @echo distcleaning Examples
|
|
400 @$(MAKE) -k -s clean-examples
|
|
401 @cd Examples && $(MAKE) -k -s distclean
|
|
402
|
|
403 distclean-ccache:
|
|
404 @test -z "$(ENABLE_CCACHE)" || (cd $(CCACHE) && $(MAKE) -s distclean)
|
|
405
|
|
406 distclean-dead:
|
|
407 rm -f $(DISTCLEAN-DEAD)
|
|
408 rm -rf autom4te.cache
|
|
409
|
|
410 #####################################################################
|
|
411 # MAINTAINER CLEAN - clean what the maintainer builds and ships in
|
|
412 # the distributed tarball - should not delete anything needed to run
|
|
413 # ./configure && make
|
|
414 #####################################################################
|
|
415
|
|
416 maintainer-clean:
|
|
417 @echo maintainer-cleaning source
|
|
418 @cd $(SOURCE) && $(MAKE) -k -s maintainer-clean
|
|
419 @echo maintainer-cleaning CCache
|
|
420 @test -z "$(ENABLE_CCACHE)" || (cd $(CCACHE) && $(MAKE) -s maintainer-clean)
|
|
421 @echo maintainer-cleaning docs
|
|
422 @cd $(DOCS) && $(MAKE) -k -s maintainer-clean
|
|
423 @echo maintainer-cleaning Lib files
|
|
424 @rm -f $(srcdir)/Lib/swigwarn.swg
|
|
425 @echo distcleaning
|
|
426 @$(MAKE) -k -s distclean-helper
|
|
427
|
|
428 #####################################################################
|
|
429 # Update the Lib/swigwarn.swg file
|
|
430 # Note: Generated into the source tree rather than build tree
|
|
431 #####################################################################
|
|
432
|
|
433 $(srcdir)/Lib/swigwarn.swg: $(srcdir)/Source/Include/swigwarn.h
|
|
434 mkdir -p Lib
|
|
435 echo "/* SWIG warning codes */" > $@
|
|
436 cat $? | grep "^#define WARN\|/\*.*\*/\|^[ \t]*$$" | sed 's/^#define \(WARN.*[0-9][0-9]*\)\(.*\)$$/%define SWIG\1 %enddef\2/' >> $@
|
|
437
|
|
438 #####################################################################
|
|
439 # TARGETS: install & friends
|
|
440 #####################################################################
|
|
441
|
|
442 INSTALL = @abs_srcdir@/Tools/config/install-sh -c
|
|
443 INSTALL_DATA = ${INSTALL} -m 644
|
|
444 INSTALL_PROGRAM = ${INSTALL} -m 755
|
|
445 MKINSTDIRS = @abs_srcdir@/Tools/config/install-sh -m 0755 -d
|
|
446 # Use standard autoconf approach to transform executable name using --program-prefix and --program-suffix
|
|
447 transform = @program_transform_name@
|
|
448
|
|
449 install: install-main install-lib install-ccache
|
|
450 @echo "Installation complete"
|
|
451
|
|
452 install-main:
|
|
453 @echo "Installing SWIG executable"
|
|
454 @$(MKINSTDIRS) $(DESTDIR)$(BIN_DIR)
|
|
455 @echo "Installing $(DESTDIR)$(BIN_DIR)/`echo $(TARGET_NOEXE) | sed '$(transform)'`@EXEEXT@"
|
|
456 @$(INSTALL_PROGRAM) $(TARGET) $(DESTDIR)$(BIN_DIR)/`echo $(TARGET_NOEXE) | sed '$(transform)'`@EXEEXT@
|
|
457
|
|
458 lib-languages = gcj typemaps tcl perl5 python guile java mzscheme ruby php ocaml octave \
|
|
459 pike chicken csharp modula3 allegrocl clisp lua cffi uffi r go d
|
|
460
|
|
461 lib-modules = std
|
|
462
|
|
463
|
|
464 install-lib:
|
|
465 @echo "Installing the SWIG library"
|
|
466 @$(MKINSTDIRS) $(DESTDIR)$(SWIG_LIB)
|
|
467 @for file in $(srcdir)/Lib/*.i $(srcdir)/Lib/*.swg ; do \
|
|
468 i=`basename $$file` ; \
|
|
469 echo "Installing $(DESTDIR)$(SWIG_LIB)/$$i"; \
|
|
470 $(INSTALL_DATA) $$file $(DESTDIR)$(SWIG_LIB)/$$i; \
|
|
471 done;
|
|
472 @for lang in $(lib-languages) $(lib-modules); \
|
|
473 do \
|
|
474 echo "Installing language specific files for $$lang"; \
|
|
475 dst=$(DESTDIR)$(SWIG_LIB)/$$lang; \
|
|
476 $(MKINSTDIRS) $$dst; \
|
|
477 (doti="`cd $(srcdir)/Lib/$$lang && ls *.i 2>/dev/null || echo ''`"; \
|
|
478 dotswg="`cd $(srcdir)/Lib/$$lang && ls *.swg 2>/dev/null || echo ''`"; \
|
|
479 if [ -f $(srcdir)/Lib/$$lang/extra-install.list ]; then \
|
|
480 extra="`sed '/^#/d' $(srcdir)/Lib/$$lang/extra-install.list`"; \
|
|
481 fi; \
|
|
482 files="`echo $$doti $$dotswg $$extra`"; \
|
|
483 if [ x"$$files" = x ]; then \
|
|
484 echo "Installing nothing from Lib/$$lang"; \
|
|
485 else for file in $$doti $$dotswg $$extra; \
|
|
486 do \
|
|
487 echo "Installing $$dst/$$file"; \
|
|
488 $(INSTALL_DATA) $(srcdir)/Lib/$$lang/$$file $$dst/$$file; \
|
|
489 done; \
|
|
490 fi) ; \
|
|
491 done
|
|
492
|
|
493 install-ccache:
|
|
494 @test -z "$(ENABLE_CCACHE)" || (cd $(CCACHE) && $(MAKE) -s install)
|
|
495
|
|
496
|
|
497 #####################################################################
|
|
498 # TARGETS: uninstall & friends
|
|
499 #####################################################################
|
|
500
|
|
501 uninstall: uninstall-main uninstall-lib uninstall-ccache
|
|
502 @echo "Uninstall complete"
|
|
503
|
|
504 uninstall-main:
|
|
505 @echo "Uninstalling SWIG executable $(DESTDIR)$(BIN_DIR)/`echo $(TARGET_NOEXE) | sed '$(transform)'`@EXEEXT@"
|
|
506 rm -f $(DESTDIR)$(BIN_DIR)/`echo $(TARGET_NOEXE) | sed '$(transform)'`@EXEEXT@
|
|
507
|
|
508 uninstall-lib:
|
|
509 @echo "Uninstalling the SWIG library"
|
|
510 rm -rf $(DESTDIR)$(SWIG_LIB)/
|
|
511
|
|
512 uninstall-ccache:
|
|
513 test -z "$(ENABLE_CCACHE)" || (cd $(CCACHE) && $(MAKE) uninstall)
|
|
514
|
|
515 ############################################################################
|
|
516 # DIST and other maintenance
|
|
517 ############################################################################
|
|
518
|
|
519 # distribution directory
|
|
520 dd = @PACKAGE_NAME@-@PACKAGE_VERSION@
|
|
521 srpm = @PACKAGE_NAME@-@PACKAGE_VERSION@
|
|
522
|
|
523 dist:
|
|
524 @echo "not implemented - use Tools/makedist.py instead."
|
|
525 false
|
|
526
|
|
527 srcrpm:
|
|
528 rm -fr $(srpm) $(srpm).src.rpm
|
|
529 echo "TODO: update to use git instead of cvs"
|
|
530 cvs export -d $(srpm) -r HEAD SWIG
|
|
531 cp swig.spec $(srpm)
|
|
532 tar -cf - $(srpm) | gzip --best > $(srpm).tar.gz
|
|
533 rm -fr $(srpm)
|
|
534 rpmbuild -ts $(srpm).tar.gz
|
|
535
|
|
536 # Update the autoconf files for detecting host/targets. Automake will do this in
|
|
537 # version 1.10 for our case of not having a top level Makefile.am. Until then we
|
|
538 # can fetch them manually and will have to commit them to Git.
|
|
539 configfiles:
|
|
540 wget ftp://ftp.gnu.org/pub/gnu/config/config.guess -O Tools/config/config.guess
|
|
541 chmod a+x Tools/config/config.guess
|
|
542 wget ftp://ftp.gnu.org/pub/gnu/config/config.sub -O Tools/config/config.sub
|
|
543 chmod a+x Tools/config/config.sub
|
|
544
|
|
545 # Regenerate Makefile if Makefile.in or config.status have changed.
|
|
546 Makefile: $(srcdir)/Makefile.in config.status
|
|
547 $(SHELL) ./config.status
|
|
548
|
|
549 # This target is usually called from Source/Makefile when configure.ac has
|
|
550 # changed.
|
|
551 am--refresh: $(srcdir)/configure
|
|
552
|
|
553 $(srcdir)/configure: $(srcdir)/configure.ac
|
|
554 @echo "Build system is out of date. If the following commands fail, please reconfigure by hand (rerun: ./autogen.sh && ./configure)"
|
|
555 cd $(srcdir) && ./autogen.sh
|
|
556 $(SHELL) ./config.status --recheck
|
|
557
|
|
558 ############################################################################
|
|
559 # Tools
|
|
560 ############################################################################
|
|
561
|
|
562 # Coverity static code analyser build and submit - EMAIL and PASSWORD need specifying
|
|
563 # See http://scan.coverity.com/start/
|
|
564 EMAIL=wsf@fultondesigns.co.uk
|
|
565 PASSWORD=
|
|
566 coverity:
|
|
567 test -n "$(PASSWORD)" || (echo "PASSWORD not set" && false)
|
|
568 $(MAKE) clean-source
|
|
569 rm -rf cov-int
|
|
570 cov-build --dir cov-int $(MAKE) source
|
|
571 tar czvf swig-coverity.tgz cov-int
|
|
572 curl --form file=@swig-coverity.tgz --form project=swig --form password=$(PASSWORD) --form email=$(EMAIL) http://scan5.coverity.com/cgi-bin/upload.py
|
|
573
|
|
574 # Makefile ends here
|