The map::at method does not always exist, so instead use map::find.
[cumulus.git] / Makefile
index 1822adc..bf6561c 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,28 @@
-CXXFLAGS=-O -Wall -D_FILE_OFFSET_BITS=64 -g
-LDFLAGS=-g
+PACKAGES=sqlite3 uuid
+DEBUG=-g
+CXXFLAGS=-O -Wall -D_FILE_OFFSET_BITS=64 $(DEBUG) \
+        $(shell pkg-config --cflags $(PACKAGES)) \
+        -DCUMULUS_VERSION=$(shell cat version)
+LDFLAGS=$(DEBUG) $(shell pkg-config --libs $(PACKAGES))
 
-OBJS=scandir.o sha1.o store.o
+SRCS=chunk.cc localdb.cc metadata.cc ref.cc remote.cc scandir.cc sha1.cc \
+     store.cc subfile.cc util.cc
+OBJS=$(SRCS:.cc=.o)
 
-scandir : $(OBJS)
+cumulus : $(OBJS)
        $(CXX) $(LDFLAGS) -o $@ $^
+
+version : NEWS
+       (git describe || (head -n1 NEWS | cut -d" " -f1)) >version 2>/dev/null
+$(OBJS) : version
+
+clean :
+       rm -f $(OBJS) cumulus version
+
+dep :
+       touch Makefile.dep
+       makedepend -fMakefile.dep $(SRCS)
+
+.PHONY : clean dep
+
+-include *.dep