# Makefile to build an instance of snark14 .PHONY: all install clean PREFIX = . XERCES = . CC = gcc CXX = g++ LD = g++ 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 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 $(addprefix -I,$(DIGFILED),$(DIGFILESD),$(DIGFILERD)) -Iinclude/DIGFile -Iinclude/DIGFileSnark -Iinclude/DIGRand -I/usr/include LIBPATH = -L$(PREFIX)/lib LIBS = $(LIBPATH) -lm -lxerces-c -lDIGFile -lDIGFileSnark -lDIGRand SNARK14 = snark14 INPUT = snark14Input INPUT_SRC = $(foreach dir,tools/Input,$(wildcard tools/Input/*.cpp)) 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) $(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 $@ $(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 $@ $< $(CXX) -c $(CXXFLAGS) $(INCLUDES) -MT $@ -MD -MP -o $@ $< $(OBJDIR)/bckray.o : src/snark/bckray.cpp $(CXX) -c $(CXXFLAGS) $(INCLUDES) -MT $@ -MD -MP -o $@ $< $(LDIGFILED) : $(DIGFILED) $(MAKE) --directory=$< $(LDIGFILESD) : $(DIGFILESD) $(MAKE) --directory=$< $(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 $@ $(LIBSDIR): @mkdir -p $@ $(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