diff --git a/Makefile.config b/Makefile.config index 344f3677..222b157b 100644 --- a/Makefile.config +++ b/Makefile.config @@ -10,6 +10,10 @@ ifeq ($(UNAME), Linux) CXXFLAGS += -fPIC -D__STDC_LIMIT_MACROS -DSW_SNAPPY -fopenmp LDFLAGS += -shared -fopenmp MANIFEST = MANIFEST.nx + ifneq (, $(strip $(shell ldconfig -p | grep libarpack))) + CXXFLAGS += -DF77_POST + LIBS += -larpack + endif else ifeq ($(UNAME), Darwin) # OS X flags SWIGFLAGS += -D_CMPWARN -D__stdcall -DSW_SNAPPY -DNONUMPY @@ -26,6 +30,10 @@ else ifeq ($(UNAME), Darwin) CXXOPENMP = endif MANIFEST = MANIFEST.mac + ifneq (, $(strip $(shell ld -larpack 2>&1 | grep symbol))) + CXXFLAGS += -DF77_POST + LIBS += -larpack + endif else ifeq ($(shell uname -o), Cygwin) # Cygwin flags SWIGFLAGS += -D_CMPWARN -D__stdcall -DSW_SNAPPY -DNONUMPY diff --git a/swig/Makefile b/swig/Makefile index a6fbae09..f237266a 100644 --- a/swig/Makefile +++ b/swig/Makefile @@ -5,7 +5,7 @@ # Build instructions for Mac OS X and Linux: # make # make dist -# +# # Build instructions for Windows: # - run swig in Cygwin to generate snap_wrap.cxx and snap.py # make swig-win @@ -38,32 +38,21 @@ snap_wrap.cxx: snap.i snap_types.i tvec.i pneanet.i tmodenet.i tcrossnet.i pungr snap_wrap.o: snap_wrap.cxx g++ $(CXXFLAGS) -c snap_wrap.cxx -I$(SNAPDIR) -I$(SNAPADVDIR) -I$(GLIBDIR) -I/usr/include/python2.6 -I/usr/include/python2.7 -I/usr/lib/python2.7/dist-packages/numpy/core/include -Snap.o: +Snap.o: $(CC) $(CXXFLAGS) -c $(SNAPDIR)/Snap.cpp -I$(SNAPDIR) -I$(SNAPADVDIR) -I$(GLIBDIR) -cliques.o: - $(CC) $(CXXFLAGS) -c $(SNAPADVDIR)/cliques.cpp -I$(SNAPDIR) -I$(SNAPADVDIR) -I$(GLIBDIR) - -agm.o: - $(CC) $(CXXFLAGS) -c $(SNAPADVDIR)/agm.cpp -I$(SNAPDIR) -I$(SNAPADVDIR) -I$(GLIBDIR) - -agmfast.o: - $(CC) $(CXXFLAGS) -c $(SNAPADVDIR)/agmfast.cpp -I$(SNAPDIR) -I$(SNAPADVDIR) -I$(GLIBDIR) - -agmfit.o: - $(CC) $(CXXFLAGS) -c $(SNAPADVDIR)/agmfit.cpp -I$(SNAPDIR) -I$(SNAPADVDIR) -I$(GLIBDIR) - -biasedrandomwalk.o: - $(CC) $(CXXFLAGS) -c $(SNAPADVDIR)/biasedrandomwalk.cpp -I$(SNAPDIR) -I$(SNAPADVDIR) -I$(GLIBDIR) - -word2vec.o: - $(CC) $(CXXFLAGS) -c $(SNAPADVDIR)/word2vec.cpp -I$(SNAPDIR) -I$(SNAPADVDIR) -I$(GLIBDIR) +OBJS = $(addsuffix .o, cliques agm agmfast agmfit biasedrandomwalk motifcluster word2vec n2v) -n2v.o: - $(CC) $(CXXFLAGS) -c $(SNAPADVDIR)/n2v.cpp -I$(SNAPDIR) -I$(SNAPADVDIR) -I$(GLIBDIR) +$(OBJS): %.o: + $(CC) $(CXXFLAGS) -c $(SNAPADVDIR)/$*.cpp -I$(SNAPDIR) -I$(SNAPADVDIR) -I$(GLIBDIR) -_snap.so: snap_wrap.o Snap.o cliques.o agm.o agmfast.o agmfit.o biasedrandomwalk.o word2vec.o n2v.o - g++ $(LDFLAGS) -o _snap.so snap_wrap.o Snap.o cliques.o agm.o agmfast.o agmfit.o biasedrandomwalk.o word2vec.o n2v.o $(LIBS) +ifeq (, $(findstring -larpack, $(LIBS))) +_snap.so: $(filter-out motifcluster.o, $(OBJS)) +else +_snap.so: $(OBJS) +endif +_snap.so: snap_wrap.o Snap.o + g++ $(LDFLAGS) -o _snap.so $^ $(LIBS) snap.py: snap_wrap.cxx diff --git a/swig/snap.i b/swig/snap.i index 6d993359..bab35b74 100644 --- a/swig/snap.i +++ b/swig/snap.i @@ -20,8 +20,9 @@ Version = "3.0.2" #include "agm.h" #include "agmfast.h" #include "agmfit.h" +#include "motifcluster.h" #include "n2v.h" - + /* #include "Engine.h" */ #include "snapswig.h" @@ -108,6 +109,9 @@ Version = "3.0.2" %ignore TVec< TPair< TStr,TAttrType > >::TVec(TSIn &); //%ignore Schema::Load; +%ignore TVec::GetPrimHashCd; +%ignore TVec::GetSecHashCd; + %ignore TVec::Intrs; %ignore TVec::IntrsLen; %ignore TVec::AddSorted; @@ -225,6 +229,7 @@ Version = "3.0.2" %include "agm.h" %include "agmfast.h" %include "agmfit.h" +%include "motifcluster.h" %include "n2v.h" //%template(Schema) TVec< TPair< TStr, TAttrType> >; @@ -538,6 +543,9 @@ Version = "3.0.2" //%template(TStrIntSH) TStrHash; //%template(TStrToIntVSH) TStrHash; +// define vector types +%template(WeightVH) TVec; + // define keydat types //%template(TChChHI) THashKeyDatI ; //%template(TChTrIntHI) THashKeyDatI ; diff --git a/swig/tvec.i b/swig/tvec.i index fe2afd2d..004e1c6f 100644 --- a/swig/tvec.i +++ b/swig/tvec.i @@ -513,6 +513,10 @@ TIntStrStrTrV.__setitem__ = setitem_vec TIntStrStrTrV.__iter__ = itervec TIntStrStrTrV.__len__ = len_vec TIntStrStrTrV.__delitem__ = delitem_vec +WeightVH.__getitem__ = getitem_vec +WeightVH.__setitem__ = setitem_vec +WeightVH.__iter__ = itervec +WeightVH.__len__ = len_vec +WeightVH.__delitem__ = delitem_vec %} #endif -