####################################################################### # $Header$ ####################################################################### prefix = @prefix@ exec_prefix = @exec_prefix@ srcdir = @srcdir@ libdir = @libdir@ ############################################################################## # Compiler and system configuration ############################################################################## SHELL = /bin/sh SWIG_LIB = @swig_lib@ BIN_DIR = @bindir@ TARGET = swig@release_suffix@@EXEEXT@ SOURCE = Source swig: source runtime swig.spec source: @cd $(SOURCE); $(MAKE) swig.spec: swig.spec.in config.status @CONFIG_HEADERS= CONFIG_LINKS= CONFIG_FILES=swig.spec $(SHELL) ./config.status .PHONY: source runtime ##################################################################### # All the languages SWIG speaks (when it wants to) ##################################################################### skip-tcl = [ -z "@TCLINCLUDE@" -o -z "@TCLLIB@" ] skip-perl = [ -z "@PERL@" -o -z "@PERL5EXT@" ] skip-python = [ -z "@PYINCLUDE@" -o -z "@PYLIB@" ] skip-java = [ -z "@JAVA@" -o -z "@JAVAC@" -o -z "@JAVAINC@" ] skip-guile = [ -z "@GUILEINCLUDE@" -o -z "@GUILELIB@" ] skip-mzscheme = [ -z "@MZC@" ] skip-ruby = [ -z "@RUBY@" -o -z "@RUBYINCLUDE@" -o -z "@RUBYLIB@" ] skip-php4 = [ -z "@PHP4@" -o -z "@PHP4INC@" ] skip-ocaml = [ -z "@OCAMLBIN@" -o -z "@OCAMLINC@" ] skip-pike = [ -z "@PIKE@" -o -z "@PIKEINCLUDE@" ] ##################################################################### # Runtime libraries ##################################################################### runtime: @-$(skip-tcl) || (cd Runtime; $(MAKE) tcl) @-$(skip-python) || (cd Runtime; $(MAKE) python) @-$(skip-perl) || (cd Runtime; $(MAKE) perl5) @-$(skip-ruby) || (cd Runtime; $(MAKE) ruby) @-$(skip-guile) || (cd Runtime; $(MAKE) guile) @-$(skip-mzscheme) || (cd Runtime; $(MAKE) mzscheme) @-$(skip-php4) || (cd Runtime; $(MAKE) php4) @-$(skip-ocaml) || (cd Runtime; $(MAKE) ocaml) # @-$(skip-pike) || (cd Runtime; $(MAKE) pike) ##################################################################### # CHECK ##################################################################### ACTION = check chk-set-swiglib = SWIG_LIB=@ROOT_DIR@/Lib chk-set-runtimelib = RUNTIMEDIR=@ROOT_DIR@/Runtime/.libs chk-set-swig = SWIG=@ROOT_DIR@/$(TARGET) chk-set-env = $(chk-set-swiglib) $(chk-set-swig) $(chk-set-runtimelib) chk = $(MAKE) -k -s $(chk-set-env) $(ACTION) check-aliveness: test -x ./$(TARGET) ./$(TARGET) -version ./$(TARGET) -help @$(skip-tcl) || ./$(TARGET) -tcl -help @$(skip-perl) || ./$(TARGET) -perl -help @$(skip-python) || ./$(TARGET) -python -help @$(skip-java) || ./$(TARGET) -java -help @$(skip-guile) || ./$(TARGET) -guile -help @$(skip-mzscheme) || ./$(TARGET) -mzscheme -help @$(skip-ruby) || ./$(TARGET) -ruby -help @$(skip-ocaml) || ./$(TARGET) -ocaml -help @$(skip-php4) || ./$(TARGET) -php4 -help # @$(skip-pike) || ./$(TARGET) -pike -help check-examples: \ check-tcl-examples \ check-perl-examples \ check-python-examples \ check-java-examples \ check-guile-examples \ check-mzscheme-examples \ check-ruby-examples \ check-ocaml-examples \ check-php4-examples \ # check-pike-examples check-%-examples: @passed=true; \ dir="Examples/$*"; \ if $(skip-$*); then \ echo skipping $* $(ACTION); \ elif [ ! -f $$dir/check.list ]; then \ echo skipping $* $(ACTION) "(no $$dir/check.list)"; \ else \ all=`sed '/^#/d' $$dir/check.list`; \ for a in $$all; do \ echo $(ACTION)ing $$dir/$$a; \ (cd $$dir/$$a && $(chk)) \ || passed=false; \ done; \ fi; \ test $$passed = true check-test-suite: \ check-tcl-test-suite \ check-perl-test-suite \ check-python-test-suite \ check-java-test-suite \ check-guile-test-suite \ check-mzscheme-test-suite \ check-ruby-test-suite \ check-ocaml-test-suite \ check-php4-test-suite \ # check-pike-test-suite check-%-test-suite: @passed=true; \ dir="Examples/test-suite/$*"; \ if $(skip-$*); then \ echo skipping $* test-suite $(ACTION); \ elif [ ! -d $$dir ]; then \ echo skipping $* test-suite $(ACTION) "(no dir $$dir)"; \ else \ (cd $$dir && $(chk)) \ || passed=false; \ fi; \ test $$passed = true gifplot-library: @echo $(ACTION)ing Examples/GIFPlot/Lib @cd Examples/GIFPlot/Lib ; $(MAKE) -k -s $(ACTION) check-gifplot: \ check-tcl-gifplot \ check-perl-gifplot \ check-python-gifplot \ check-java-gifplot \ check-guile-gifplot \ check-mzscheme-gifplot \ check-ruby-gifplot \ check-ocaml-gifplot \ check-php4-gifplot \ # check-pike-gifplot check-%-gifplot: gifplot-library @passed=true; \ up=`Tools/capitalize $*`; \ dir="Examples/GIFPlot/$$up"; \ if $(skip-$*); then \ echo skipping $$up $(ACTION); \ elif [ ! -f $$dir/check.list ]; then \ echo skipping $$up $(ACTION) "(no $$dir/check.list)"; \ else \ all=`sed '/^#/d' $$dir/check.list`; \ for a in $$all; do \ echo $(ACTION)ing $$dir/$$a; \ (cd $$dir/$$a && $(chk)) \ || passed=false; \ done; \ fi; \ test $$passed = true check: check-aliveness check-examples check-gifplot check-test-suite ##################################################################### # CLEAN ##################################################################### clean: clean-objects clean-examples clean-gifplot clean-test-suite clean-objects: clean-source clean-runtime clean-source: @echo cleaning Source @cd $(SOURCE); $(MAKE) -s clean @rm -f $(TARGET) distclean-source: @echo dist cleaning Source @cd $(SOURCE); $(MAKE) -s distclean @rm -f $(TARGET) clean-runtime: @echo cleaning Runtime @cd Runtime; $(MAKE) -s clean distclean-dead = config.status config.log config.cache swig.spec Makefile mkmf.log distclean: distclean-source clean-runtime clean-examples clean-gifplot clean-test-suite rm -f $(distclean-dead) clean-examples: @$(MAKE) -k -s check-examples ACTION=clean clean-gifplot: @$(MAKE) -k -s check-gifplot ACTION=clean clean-test-suite: @echo cleaning Examples/test-suite @$(MAKE) -k -s check-test-suite ACTION=clean clean-%-examples: @$(MAKE) -k -s check-$*-examples ACTION=clean clean-%-test-suite: @$(MAKE) -k -s check-$*-test-suite ACTION=clean clean-%-gifplot: @$(MAKE) -k -s check-$*-gifplot ACTION=clean ##################################################################### # TARGETS: install & friends ##################################################################### INSTALL = $(srcdir)/Tools/config/install-sh -c INSTALL_DATA = ${INSTALL} -m 644 INSTALL_PROGRAM = ${INSTALL} -m 755 MKINSTDIRS = $(srcdir)/Tools/config/mkinstalldirs install: install-main install-lib install-runtime @echo "Installation complete" install-main: @echo "Installing SWIG executable" @$(MKINSTDIRS) $(DESTDIR)$(BIN_DIR) @echo "Installing $(BIN_DIR)/$(TARGET)" @$(INSTALL_PROGRAM) $(TARGET) $(DESTDIR)$(BIN_DIR)/$(TARGET) lib-languages = tcl perl5 python guile java mzscheme ruby php4 ocaml pike install-lib: @echo "Installing the SWIG library" @$(MKINSTDIRS) $(DESTDIR)$(SWIG_LIB) @cd $(srcdir)/Lib; for i in *.i *.swg; \ do \ echo "Installing $(DESTDIR)$(SWIG_LIB)/$$i"; \ ../$(INSTALL_DATA) $$i $(DESTDIR)$(SWIG_LIB)/$$i; \ done; @for lang in $(lib-languages); \ do \ dst=$(DESTDIR)$(SWIG_LIB)/$$lang; \ $(MKINSTDIRS) $$dst; \ ( cd $(srcdir)/Lib/$$lang; \ doti="`ls *.i 2>/dev/null`"; \ dotswg="`ls *.swg 2>/dev/null`"; \ if [ -f extra-install.list ]; then \ extra="`sed '/^#/d' extra-install.list`"; \ fi; \ files="`echo $$doti $$dotswg $$extra`"; \ if [ x"$$files" = x ]; then \ echo "Installing nothing from Lib/$$lang"; \ else for file in $$doti $$dotswg $$extra; \ do \ echo "Installing $$dst/$$file"; \ ../../$(INSTALL_DATA) $$file $$dst/$$file; \ done; \ fi ); \ done install-runtime: @cd Runtime; $(MAKE) install ##################################################################### # TARGETS: uninstall & friends ##################################################################### uninstall: uninstall-main uninstall-lib uninstall-runtime @echo "Uninstall complete" uninstall-main: @echo "Uninstalling $(BIN_DIR)/$(TARGET)" rm -f $(DESTDIR)$(BIN_DIR)/$(TARGET); uninstall-lib: @echo "Uninstalling the SWIG library" rm -rf $(DESTDIR)$(SWIG_LIB)/; uninstall-runtime: @cd Runtime; $(MAKE) uninstall ############################################################################ # DIST and other maintenance ############################################################################ # distribution directory dd = @PACKAGE_NAME@-@PACKAGE_VERSION@ srpm = @PACKAGE_NAME@-@PACKAGE_VERSION@ dist: @echo 'Dave, what do you want to do w/ "make dist"?' @echo 'See Makefile.in target "dist-suggested" for an idea.' @echo ' --thi' false dist-suggested: rm -rf $(dd) $(dd).tar.gz cvs export -d $(dd) -r HEAD SWIG tar cf - $(dd) | gzip --best > $(dd).tar.gz rm -rf $(dd) srcrpm: swig.spec rm -fr $(srpm) $(srpm).src.rpm cvs export -d $(srpm) -r HEAD SWIG cp swig.spec $(srpm) tar -cf - $(srpm) | gzip --best > $(srpm).tar.gz rm -fr $(srpm) rpm -ts $(srpm).tar.gz # Makefile ends here