X-Git-Url: http://git.kpe.io/?p=snark14.git;a=blobdiff_plain;f=Makefile;h=198d8acbc3add69f4dd259d9ec560a3ececcbfa8;hp=e0b36a68847f74ca2ee554dd81f864c0af0668a9;hb=HEAD;hpb=4b9c63b0ad3bac6407cf563e382746a7f5ba8aec diff --git a/Makefile b/Makefile index e0b36a6..198d8ac 100644 --- 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