X-Git-Url: http://git.kpe.io/?p=snark14.git;a=blobdiff_plain;f=Makefile;h=198d8acbc3add69f4dd259d9ec560a3ececcbfa8;hp=cd3e3d3ab48451a3641be8d64d05edb0dc3292b6;hb=HEAD;hpb=2ac93173052548d00e6b3d980b64bfaed7b1b96c diff --git a/Makefile b/Makefile index cd3e3d3..198d8ac 100644 --- a/Makefile +++ b/Makefile @@ -1,21 +1,22 @@ # Makefile to build an instance of snark14 +.PHONY: all install clean PREFIX = . -XERCES = ~/snark14kmr +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/snark14 +SNARK14D = $(PREFIX)/src/snark OBJDIR = build BINDIR = bin @@ -24,7 +25,7 @@ LIBSDIR = lib LDIGFILED = $(LIBSDIR)/libDIGFile.so LDIGFILESD = $(LIBSDIR)/libDIGFileSnark.so LDIGFILERD = $(LIBSDIR)/libDIGRand.so -LSNARK14 = $(LIBSDIR)/libsnark14.a +LSNARK14D = $(LIBSDIR)/libsnark14.so SRC_CXX = $(foreach dir,src/snark,$(wildcard src/snark/*.cpp)) SRC_C = $(foreach dir,src/snark,$(wildcard src/snark/*.c)) @@ -32,7 +33,6 @@ OBJ_CXX = $(patsubst src/snark/%.cpp,build/%.o,$(SRC_CXX)) OBJ_C = $(patsubst src/snark/%.c,build/%.o,$(SRC_C)) INCLUDES = -I./include $(addprefix -I,$(DIGFILED),$(DIGFILESD),$(DIGFILERD)) -Iinclude/DIGFile -Iinclude/DIGFileSnark -Iinclude/DIGRand -I/usr/include -#LIBPATH = -L$(PREFIX)/lib -L$(XERCES)/lib LIBPATH = -L$(PREFIX)/lib LIBS = $(LIBPATH) -lm -lxerces-c -lDIGFile -lDIGFileSnark -lDIGRand @@ -43,23 +43,29 @@ 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) $(LSNARK14D) -all: $(OBJDIR) $(LIBSDIR) $(BINDIR) $(BINDIR)/$(SNARK14) $(BINDIR)/$(DISPLAY) $(BINDIR)/$(INPUT) - -$(BINDIR)/$(SNARK14): $(LDIGFILED) $(LDIGFILESD) $(LDIGFILERD) $(OBJ_C) $(OBJ_CXX) $(LSNARK14) +$(BINDIR)/$(SNARK14): $(LDIGFILED) $(LDIGFILESD) $(LDIGFILERD) $(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 $(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 $@ $< @@ -73,9 +79,9 @@ $(LDIGFILESD) : $(DIGFILESD) $(LDIGFILERD) : $(DIGFILERD) $(MAKE) --directory=$< - -$(LSNARK14) : $(SNARK14D) - $(MAKE) --directory=$< +# Make shared library +$(LSNARK14D) : $(OBJ_CXX) $(OBJ_C) + $(LD) --shared $(LDFLAGS) -o $(LSNARK14D) $(OBJ_CXX) $(OBJ_C) $(LIBS) $(OBJDIR): @mkdir -p $@ @@ -86,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