add ubuntu package to INSTALL
[snark14.git] / Makefile
index e0b36a68847f74ca2ee554dd81f864c0af0668a9..198d8acbc3add69f4dd259d9ec560a3ececcbfa8 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,20 +1,22 @@
 # Makefile to build an instance of snark14
+.PHONY: all install clean
 
 PREFIX     = .
-XERCES     = /usr/local/snark14
+XERCES     = .
 
 CC         = gcc
 CXX        = g++
 LD         = g++
 
-CFLAGS    = -O4 -fPIC -DLINUX -D_REENTRANT -w -Wunused-parameter
-CXXFLAGS  = -O4 -fPIC -DLINUX -D_REENTRANT -w -Wunused-parameter
+CFLAGS    = -O4 -msse4 -fPIC -DLINUX -D_REENTRANT -w -Wunused-parameter
+CXXFLAGS  = -O4 -msse4 -fPIC -DLINUX -D_REENTRANT -w -Wunused-parameter
 
 LDFLAGS   = 
 
 DIGFILED   = $(PREFIX)/src/DIGFile
 DIGFILESD  = $(PREFIX)/src/DIGFileSnark
 DIGFILERD  = $(PREFIX)/src/DIGRand
+SNARK14D   = $(PREFIX)/src/snark
 
 OBJDIR     = build
 BINDIR     = bin
@@ -23,15 +25,16 @@ LIBSDIR    = lib
 LDIGFILED  = $(LIBSDIR)/libDIGFile.so
 LDIGFILESD = $(LIBSDIR)/libDIGFileSnark.so
 LDIGFILERD = $(LIBSDIR)/libDIGRand.so
+LSNARK14D  = $(LIBSDIR)/libsnark14.so
 
 SRC_CXX    = $(foreach dir,src/snark,$(wildcard src/snark/*.cpp))
 SRC_C      = $(foreach dir,src/snark,$(wildcard src/snark/*.c))
 OBJ_CXX    = $(patsubst src/snark/%.cpp,build/%.o,$(SRC_CXX))
 OBJ_C      = $(patsubst src/snark/%.c,build/%.o,$(SRC_C))
-INCLUDES   = -I./include -I$(XERCES)/include $(addprefix -I,$(DIGFILED),$(DIGFILESD),$(DIGFILERD)) -Iinclude/DIGFile -Iinclude/DIGFileSnark -Iinclude/DIGRand -I/usr/include
+INCLUDES   = -I./include $(addprefix -I,$(DIGFILED),$(DIGFILESD),$(DIGFILERD)) -Iinclude/DIGFile -Iinclude/DIGFileSnark -Iinclude/DIGRand -I/usr/include
 
-LIBPATH   = -L$(PREFIX)/lib -L$(XERCES)/lib
-LIBS      = $(LIBPATH) -lm -lxerces-c -lxerces-depdom -lDIGFile -lDIGFileSnark -lDIGRand
+LIBPATH   = -L$(PREFIX)/lib
+LIBS      = $(LIBPATH) -lm -lxerces-c -lDIGFile -lDIGFileSnark -lDIGRand
 
 SNARK14    = snark14
 INPUT      = snark14Input
@@ -40,11 +43,15 @@ INPUT_INC  = $(foreach dir,tools/Input,$(wildcard tools/Input/*.h))
 DISPLAY    = snark14Display
 DISPLAY_SRC  = $(foreach dir,tools/Display,$(wildcard tools/Display/*.cpp))
 DISPLAY_INC  = $(foreach dir,tools/Display,$(wildcard tools/Display/*.hpp))
-
-all: $(OBJDIR) $(LIBSDIR) $(BINDIR) $(BINDIR)/$(SNARK14) $(BINDIR)/$(DISPLAY) $(BINDIR)/$(INPUT)
+all: $(OBJDIR) $(LIBSDIR) $(BINDIR) $(BINDIR)/$(SNARK14) $(BINDIR)/$(DISPLAY) $(BINDIR)/$(INPUT) $(LSNARK14D)
 
 $(BINDIR)/$(SNARK14): $(LDIGFILED) $(LDIGFILESD) $(LDIGFILERD) $(OBJ_C) $(OBJ_CXX)
-       $(LD) $(LIBS) $(LDFLAGS) -o bin/$(SNARK14) $(OBJ_C) $(OBJ_CXX)
+       $(LD) $(LIBPATH) $(LDFLAGS) $(OBJ_C) $(OBJ_CXX) $(LIBS) -o bin/$(SNARK14)
+
+# Does not link correctly with shared library file libsnark14.so
+#$(BINDIR)/$(SNARK14): $(LDIGFILED) $(LDIGFILESD) $(LDIGFILERD) $(LSNARK14D)
+#      $(LD) $(LIBPATH) $(LDFLAGS) -o bin/$(SNARK14) $(LIBS) -lsnark14
 
 $(BINDIR)/$(DISPLAY): $(DISPLAY_SRC) $(DISPLAY_INC)
        cd tools/Display ; make
@@ -52,11 +59,13 @@ $(BINDIR)/$(DISPLAY): $(DISPLAY_SRC) $(DISPLAY_INC)
 $(BINDIR)/$(INPUT): $(INPUT_SRC) $(INPUT_INC)
        cd tools/Input ; make
 
-$(OBJDIR)/%.o : src/snark/%.c src/snark/.deps/%.Po
-       $(CC) -c $(CFLAGS) $(INCLUDES) -MT $@ -MD -MP -MF $(word 2,$^) -o $@ $<
+$(OBJDIR)/%.o : src/snark/%.c #src/snark/.deps/%.Po
+#      $(CC) -c $(CFLAGS) $(INCLUDES) -MT $@ -MD -MP -MF $(word 2,$^) $< -o $@ 
+       $(CC) -c $(CFLAGS) $(INCLUDES) -MT $@ -MD -MP $< -o $@ 
 
-$(OBJDIR)/%.o : src/snark/%.cpp src/snark/.deps/%.Po
-       $(CXX) -c $(CXXFLAGS) $(INCLUDES) -MT $@ -MD -MP -MF $(word 2,$^) -o $@ $<
+$(OBJDIR)/%.o : src/snark/%.cpp #src/snark/.deps/%.Po
+#      $(CXX) -c $(CXXFLAGS) $(INCLUDES) -MT $@ -MD -MP -MF $(word 2,$^) -o $@ $<
+       $(CXX) -c $(CXXFLAGS) $(INCLUDES) -MT $@ -MD -MP -o $@ $<
 
 $(OBJDIR)/bckray.o : src/snark/bckray.cpp
        $(CXX) -c $(CXXFLAGS) $(INCLUDES) -MT $@ -MD -MP -o $@ $<
@@ -70,6 +79,10 @@ $(LDIGFILESD) : $(DIGFILESD)
 $(LDIGFILERD) : $(DIGFILERD)
        $(MAKE) --directory=$<
 
+# Make shared library
+$(LSNARK14D) : $(OBJ_CXX) $(OBJ_C)
+       $(LD) --shared $(LDFLAGS) -o $(LSNARK14D) $(OBJ_CXX) $(OBJ_C) $(LIBS)
+
 $(OBJDIR):
        @mkdir -p $@
 
@@ -79,10 +92,16 @@ $(LIBSDIR):
 $(BINDIR):
        @mkdir -p $@
 
+install:
+       @cp lib/* /usr/local/lib/.
+       @ldconfig
+       @cp bin/* /usr/local/bin/.
+
 clean:
        @rm -rf $(BINDIR) $(OBJDIR) $(LIBSDIR) $(LDIGFILED) $(LDIGFILESD) $(LDIGFILERD)
        @rm -rf $(DIGFILED)/*.o $(DIGFILESD)/*.o $(DIGFILERD)/*.o src/snark/*.o
+       @rm -rf qt-x11-free-*
        @cd tools/Input ; make clean
        @cd tools/Display ; make clean
-
+       @cd examples ; make clean