--- Makefile.orig 2017-09-28 07:44:12.000000000 -0600 +++ Makefile 2018-04-12 21:33:16.347207853 -0600 @@ -125,7 +125,7 @@ OPTFLAGS = -DGMPRATIONAL -Wuninitial #OPTFLAGS = -DGMPRATIONAL -Wuninitialized -fno-omit-frame-pointer -O3 -msse2 -ftree-vectorizer-verbose=2 -ffast-math #-DNDEBUG #OPTFLAGS = -DGMPRATIONAL -Wuninitialized -fno-omit-frame-pointer -O3 -mavx -msse2 -ftree-vectorizer-verbose=2 -ffast-math #-DNDEBUG -CFLAGS = $(OPTFLAGS) $(GPROFFLAG) $(STACTDUMP_OPTIONS) $(ADDITIONALINCLUDEOPTIONS) -std=c++0x -g $(CDDDEFINE_PREFIX) #-pedantic +CFLAGS = $(OPTFLAGS) $(GPROFFLAG) $(STACTDUMP_OPTIONS) $(ADDITIONALINCLUDEOPTIONS) -std=c++11 -g $(CDDDEFINE_PREFIX) #-pedantic #CFLAGS = $(OPTFLAGS) $(GPROFFLAG) $(STACTDUMP_OPTIONS) $(ADDITIONALINCLUDEOPTIONS) -D_GLIBCXX_DEBUG -std=c++0x -g $(CDDDEFINE_PREFIX) #-pedantic CCFLAGS = $(CFLAGS) FFLAGS = $(OPTFLAGS) @@ -211,15 +211,6 @@ CATSOBJECTS = lp_cdd.o \ tropicaldeterminant.o \ determinantpoly.o \ traverser_sphere.o \ - gfanlib_zcone.o \ - gfanlib_symmetry.o \ - gfanlib_symmetriccomplex.o \ - gfanlib_polyhedralfan.o \ - gfanlib_zfan.o \ - gfanlib_polymakefile.o \ - gfanlib_mixedvolume.o \ - gfanlib_circuittableint.o \ - gfanlib_paralleltraverser.o \ padic.o \ integergb.o \ traverser_resultantfan.o \ @@ -227,7 +218,6 @@ CATSOBJECTS = lp_cdd.o \ traverser_resultantfanspecialization.o \ myassert.o \ traverser_bsptree.o \ - gfanlib_traversal.o \ tropicalcurve.o \ packedmonomial.o \ gmpallocator.o \ @@ -387,14 +377,24 @@ GFANLIBFILES= gfanlib.h \ gfanlib_tropicalhomotopy.h \ # gfanlib_tableau.h \ we do not yet support this one +GFANLIBOBJECTS = gfanlib_polyhedralfan.o \ + gfanlib_zcone.o \ + gfanlib_symmetriccomplex.o \ + gfanlib_polymakefile.o \ + gfanlib_zfan.o \ + gfanlib_symmetry.o \ + gfanlib_circuittableint.o \ + gfanlib_mixedvolume.o \ + gfanlib_paralleltraverser.o \ + gfanlib_traversal.o EXECS = $(MAIN) # When compiling symmetrictraversal.cpp as any other file, it causes the program to crash in certain situations. # (compiling with gcc version 4.7.2 and running gfan _tropicaltraverse on a starting cone for Grassmann3_7) # Either this is a bug in the code or in the compiler. The bug disappears by compiling with -fno-guess-branch-probability -src/symmetrictraversal.o: src/symmetrictraversal.cpp - $(CXX) $(CFLAGS) -fno-guess-branch-probability -c src/symmetrictraversal.cpp -o src/symmetrictraversal.o +#src/symmetrictraversal.o: src/symmetrictraversal.cpp +# $(CXX) $(CFLAGS) -fno-guess-branch-probability -c src/symmetrictraversal.cpp -o src/symmetrictraversal.o # If compiling with clang, use the line below instead: # $(CXX) $(CFLAGS) -c src/symmetrictraversal.cpp -o src/symmetrictraversal.o @@ -406,6 +406,7 @@ OBJECTS = $(addprefix src/,$(SOPLEX_OBJ $(SAGE_OBJECTS) \ $(addprefix src/,$(CATSOBJECTS)) \ $(addprefix src/,$(APPOBJECTS)) \ + src/libgfan.so \ src/symmetrictraversal.o all: $(MAIN) @@ -420,7 +421,42 @@ default: $(OBJECTS) $(ADDITIONALOBJECTS) $(MAIN): $(OBJECTS) # $(CCLINKER) $(OBJECTS) $(ADDITIONALLINKOPTIONS) $(GPROFFLAG) -lpthread -o $(MAIN) - $(CCLINKER) $(OBJECTS) $(ADDITIONALLINKOPTIONS) $(GPROFFLAG) -lpthread -rdynamic -o $(MAIN) + $(CCLINKER) $(OBJECTS) $(ADDITIONALLINKOPTIONS) $(GPROFFLAG) -L src -lgfan -lpthread -o $(MAIN) + +src/libgfan.so: $(addprefix src/,$(GFANLIBOBJECTS)) + $(CCLINKER) $(CCFLAGS) $(ADDITIONALLINKOPTIONS) -shared -Wl,-h,libgfan.so.0 -o src/libgfan.so.0.0.0 $^ -lgmp -lpthread + ln -s libgfan.so.0.0.0 src/libgfan.so.0 + ln -s libgfan.so.0 src/libgfan.so + +src/gfanlib_polyhedralfan.o: src/gfanlib_polyhedralfan.cpp + $(CXX) $(CCFLAGS) -fPIC -c $< -o $@ + +src/gfanlib_zcone.o: src/gfanlib_zcone.cpp + $(CXX) $(CCFLAGS) -fPIC -c $< -o $@ + +src/gfanlib_symmetriccomplex.o: src/gfanlib_symmetriccomplex.cpp + $(CXX) $(CCFLAGS) -fPIC -c $< -o $@ + +src/gfanlib_polymakefile.o: src/gfanlib_polymakefile.cpp + $(CXX) $(CCFLAGS) -fPIC -c $< -o $@ + +src/gfanlib_zfan.o: src/gfanlib_zfan.cpp + $(CXX) $(CCFLAGS) -fPIC -c $< -o $@ + +src/gfanlib_symmetry.o: src/gfanlib_symmetry.cpp + $(CXX) $(CCFLAGS) -fPIC -c $< -o $@ + +src/gfanlib_circuittableint.o: src/gfanlib_circuittableint.cpp + $(CXX) $(CCFLAGS) -fPIC -c $< -o $@ + +src/gfanlib_mixedvolume.o: src/gfanlib_mixedvolume.cpp + $(CXX) $(CCFLAGS) -fPIC -c $< -o $@ + +src/gfanlib_paralleltraverser.o: src/gfanlib_paralleltraverser.cpp + $(CXX) $(CCFLAGS) -fPIC -c $< -o $@ + +src/gfanlib_traversal.o: src/gfanlib_traversal.cpp + $(CXX) $(CCFLAGS) -fPIC -c $< -o $@ release: rm -f -r $(RELEASEDIR)/*