# $Id: swig.gmk,v 1.6 2006/06/25 14:07:23 ahoward Exp $ # -------------------------------------------------------------- # swig.gmk Michael Dressel # -------------------------------------------------------------- libdirWrapper = $(G4WORKDIR)/tmp/$(G4SYSTEM)/$(name) SWIGINC = $(wildcard include/*.i) TMP = $(subst .i,_wrap.cc,$(SWIGINC)) TMPD = $(subst .i,_wrap.d,$(SWIGINC)) TMPO = $(subst .i,_wrap.o,$(SWIGINC)) TMPSO = $(subst .i,.so,$(SWIGINC)) SWIGCC = $(subst include,src,$(TMP)) SWIGD = $(subst include/,$(libdirWrapper)/,$(TMPD)) objectfilesWrapper = $(subst include,$(libdirWrapper),$(TMPO)) SWIGSO = $(subst include/,$(libdirWrapper)/_,$(TMPSO)) moduleName = $(subst Wrapper,,$(name)) .PHONY: all swigClean all: ${G4WORKDIR}/tmp/${G4SYSTEM}/$(name) $(SWIGD) $(SWIGCC) ${G4WORKDIR}/tmp/${G4SYSTEM}/$(name) CXXFLAGS += -w ifdef G4ANALYSIS_USE SWIGFLAGS += -DG4ANALYSIS_USE endif MYLIBS = $(subst -l$(name),,$(LDLIBS)) $(SWIGSO): $(objectfilesWrapper) $(SWIG_OBJ_DEP) @echo Creating shared library: $(libdirWrapper)/$@ $(CXX) -Wl,-soname,$(@F) -shared $(LDFLAGS) $(objectfilesWrapper) $(SWIG_OBJ_DEP) $(MYLIBS) -lc -o $(SWIGSO) src/%_wrap.cc: include/%.i $(SWIG) -python -c++ -shadow -no_default $(SWIGFLAGS) \ ${SWIG_INCDIRS} \ -o $@ $< @mv src/$(moduleName).py ./ ${G4WORKDIR}/tmp/${G4SYSTEM}/$(name): @mkdir ${G4WORKDIR}/tmp/${G4SYSTEM}/$(name) swigClean: @echo Cleaning up $(moduleName).py, $(SWIGCC) @rm -f $(moduleName).py @rm -f $(SWIGCC)