[807] | 1 | # $Id: swig.gmk,v 1.6 2006/06/25 14:07:23 ahoward Exp $ |
---|
| 2 | # -------------------------------------------------------------- |
---|
| 3 | # swig.gmk Michael Dressel |
---|
| 4 | # -------------------------------------------------------------- |
---|
| 5 | |
---|
| 6 | libdirWrapper = $(G4WORKDIR)/tmp/$(G4SYSTEM)/$(name) |
---|
| 7 | |
---|
| 8 | |
---|
| 9 | SWIGINC = $(wildcard include/*.i) |
---|
| 10 | TMP = $(subst .i,_wrap.cc,$(SWIGINC)) |
---|
| 11 | TMPD = $(subst .i,_wrap.d,$(SWIGINC)) |
---|
| 12 | TMPO = $(subst .i,_wrap.o,$(SWIGINC)) |
---|
| 13 | TMPSO = $(subst .i,.so,$(SWIGINC)) |
---|
| 14 | SWIGCC = $(subst include,src,$(TMP)) |
---|
| 15 | SWIGD = $(subst include/,$(libdirWrapper)/,$(TMPD)) |
---|
| 16 | objectfilesWrapper = $(subst include,$(libdirWrapper),$(TMPO)) |
---|
| 17 | SWIGSO = $(subst include/,$(libdirWrapper)/_,$(TMPSO)) |
---|
| 18 | |
---|
| 19 | moduleName = $(subst Wrapper,,$(name)) |
---|
| 20 | |
---|
| 21 | |
---|
| 22 | .PHONY: all swigClean |
---|
| 23 | |
---|
| 24 | all: ${G4WORKDIR}/tmp/${G4SYSTEM}/$(name) $(SWIGD) $(SWIGCC) ${G4WORKDIR}/tmp/${G4SYSTEM}/$(name) |
---|
| 25 | CXXFLAGS += -w |
---|
| 26 | |
---|
| 27 | |
---|
| 28 | ifdef G4ANALYSIS_USE |
---|
| 29 | SWIGFLAGS += -DG4ANALYSIS_USE |
---|
| 30 | endif |
---|
| 31 | |
---|
| 32 | |
---|
| 33 | MYLIBS = $(subst -l$(name),,$(LDLIBS)) |
---|
| 34 | |
---|
| 35 | $(SWIGSO): $(objectfilesWrapper) $(SWIG_OBJ_DEP) |
---|
| 36 | @echo Creating shared library: $(libdirWrapper)/$@ |
---|
| 37 | $(CXX) -Wl,-soname,$(@F) -shared $(LDFLAGS) $(objectfilesWrapper) $(SWIG_OBJ_DEP) $(MYLIBS) -lc -o $(SWIGSO) |
---|
| 38 | |
---|
| 39 | src/%_wrap.cc: include/%.i |
---|
| 40 | $(SWIG) -python -c++ -shadow -no_default $(SWIGFLAGS) \ |
---|
| 41 | ${SWIG_INCDIRS} \ |
---|
| 42 | -o $@ $< |
---|
| 43 | @mv src/$(moduleName).py ./ |
---|
| 44 | |
---|
| 45 | ${G4WORKDIR}/tmp/${G4SYSTEM}/$(name): |
---|
| 46 | @mkdir ${G4WORKDIR}/tmp/${G4SYSTEM}/$(name) |
---|
| 47 | |
---|
| 48 | swigClean: |
---|
| 49 | @echo Cleaning up $(moduleName).py, $(SWIGCC) |
---|
| 50 | @rm -f $(moduleName).py |
---|
| 51 | @rm -f $(SWIGCC) |
---|