Blob Blame History Raw
--- 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)/*