git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@149 626c5289-ae23-0410-ae9c-e8d60b6d4f22
156 lines
4.8 KiB
Makefile
156 lines
4.8 KiB
Makefile
#######################################################################
|
|
# $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 experiment
|
|
|
|
#####################################################################
|
|
# TARGET: clean
|
|
#####################################################################
|
|
clean: GOAL := clean
|
|
clean: _recurse
|
|
rm -f swig experiment
|
|
|
|
#####################################################################
|
|
# 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;
|