####################################################################### # $Header$ # Simplified Wrapper and Interface Generator (SWIG) # ####################################################################### prefix = @prefix@ exec_prefix= @exec_prefix@ srcdir = @ROOT_DIR@ SHELL = /bin/sh CC = @CC@ CXX = @CXX@ LIBS = SWIG_LIB = $(prefix)/lib/swig1.3 BIN_DIR = $(exec_prefix)/bin LIB_DIR = $(prefix)/lib GOAL := all OBJS_FILE := $(srcdir)/objs.tmp OBJS = `cat $(OBJS_FILE)` MODULES := `ls Source/` ##################################################################### # TARGET: swig ##################################################################### swig: GOAL := all swig: MODULES := SWIG1.1 Modules1.1 Swig Preprocessor swig: _recurse DOH $(CXX) $(OBJS) $(LIBS) -o swig ##################################################################### # TARGET: experiment ##################################################################### experiment: GOAL := experiment experiment: MODULES := Swig Preprocessor LParse Experiment Swim experiment: _recurse DOH SWILL $(CC) $(OBJS) $(LIBS) -o swig ##################################################################### # TARGET: clean ##################################################################### clean: GOAL := clean clean: _recurse rm -f swig ##################################################################### # TARGET: nuke ##################################################################### nuke: GOAL := nuke nuke: clean _recurse rm -f Makefile Makefile.template config.* ##################################################################### # TARGET: _recurse (UTILITY) ##################################################################### # this target recurses through the directories in $(MODULES), executing # $(MAKE) $(GOAL) in each one, with the variable OBJS_FILE set to # the name of a file into which will be recorded the names of the # relevant object files. See the "swig" target for an example. _recurse: @ORIG_DIR=`pwd`; \ echo "" > $(OBJS_FILE); \ for i in $(MODULES); \ do \ if [ -d Source/$$i -a -f Source/$$i/Makefile ]; then \ (cd Source/$$i && $(MAKE) $(GOAL) OBJS_FILE=$(OBJS_FILE)) || exit 1; \ cd $$ORIG_DIR ;\ fi \ done; ##################################################################### # TARGET: DOH (an independent project) ##################################################################### DOH: cd Source/DOH; $(MAKE) ls Source/DOH/Doh/*.o >> $(OBJS_FILE) ##################################################################### # TARGET: SWILL (an independent project) ##################################################################### SWILL: cd Source/SWILL; $(MAKE) ls Source/SWILL/SWILL/*.o >> $(OBJS_FILE) ##################################################################### # TARGETS: install & friends ##################################################################### INSTALL = ./install-sh -c INSTALL_DATA = ${INSTALL} -m 644 INSTALL_PROGRAM= ${INSTALL} -m 755 install: install-main install-lib @echo "Installation complete" install-main: @for i in $(LIB_DIR) $(BIN_DIR); \ do \ if [ ! -d $$i ] ; then \ mkdir $$i; \ echo "Making directory $$i"; \ chmod 755 $$i;\ else true; \ fi; \ done; @echo "Installing $(BIN_DIR)/swig" @$(INSTALL_PROGRAM) swig $(BIN_DIR)/swig install-lib: @for i in $(SWIG_LIB) ; \ do \ if [ ! -d $$i ] ; then \ mkdir $$i; \ echo "Making directory $$i"; \ chmod 755 $$i;\ else true; \ fi; \ done; @echo "Installing the SWIG library" # cd $(SWIG_LIB); rm -rf * @for i in $(SWIG_LIB)/tcl $(SWIG_LIB)/perl5 $(SWIG_LIB)/python $(SWIG_LIB)/guile ; \ do \ if [ ! -d $$i ] ; then \ mkdir $$i; \ echo "Making directory $$i"; \ chmod 755 $$i;\ else true; \ fi; \ done; @cd Lib; for i in *.i *.swg; \ do \ echo "Installing Lib/$$i"; \ ../$(INSTALL_DATA) $$i $(SWIG_LIB)/$$i; \ done; @cd Lib/tcl; for i in *.i *.swg; \ do \ echo "Installing Lib/tcl/$$i"; \ ../../$(INSTALL_DATA) $$i $(SWIG_LIB)/tcl/$$i; \ done; @cd Lib/perl5; for i in *.i *.swg Makefile.pl; \ do \ echo "Installing Lib/perl5/$$i"; \ ../../$(INSTALL_DATA) $$i $(SWIG_LIB)/perl5/$$i; \ done; @cd Lib/python; for i in *.i *.swg; \ do \ echo "Installing Lib/python/$$i"; \ ../../$(INSTALL_DATA) $$i $(SWIG_LIB)/python/$$i; \ done; @cd Lib/guile; for i in *.i *.swg; \ do \ echo "Installing Lib/guile/$$i"; \ ../../$(INSTALL_DATA) $$i $(SWIG_LIB)/guile/$$i; \ done;