Rewrite makefile
authorCryptoManiac <balthazar@yandex.ru>
Sun, 14 Dec 2014 03:47:09 +0000 (07:47 +0400)
committerCryptoManiac <balthazar@yandex.ru>
Sun, 14 Dec 2014 03:47:09 +0000 (07:47 +0400)
Makefile
obj/.gitignore [new file with mode: 0644]

index bd68417..c5c575b 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,14 +1,31 @@
-dnsseed: dns.o bitcoin.o netbase.o protocol.o db.o main.o util.o
-       $(CXX) -pthread -o dnsseed dns.o bitcoin.o netbase.o protocol.o db.o main.o util.o -l crypto
+LINK:=$(CXX)
 
-clean:
-       rm -f *.o
-       rm -f dnsseed
+LIBS = -lcrypto
+OBJS = obj/bitcoin.o obj/db.o obj/dns.o obj/main.o obj/netbase.o obj/protocol.o obj/util.o
+
+all: dnsseed
+
+-include obj/*.P
 
-%.o: %.cpp bitcoin.h netbase.h protocol.h db.h serialize.h uint256.h util.h
-       $(CXX) -DUSE_IPV6 -pthread -Wno-invalid-offsetof -c -o $@ $<
+obj/dns.o: dns.c
+       $(CC) -c -pthread -std=c99 -MMD -MF $(@:%.o=%.d) -o $@ $<
+       @cp $(@:%.o=%.d) $(@:%.o=%.P); \
+         sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
+             -e '/^$$/ d' -e 's/$$/ :/' < $(@:%.o=%.d) >> $(@:%.o=%.P); \
+         rm -f $(@:%.o=%.d)
 
-dns.o: dns.c
-       $(CC) -pthread -std=c99 dns.c -c -o dns.o
+obj/%.o: %.cpp
+       $(CXX) -c -DUSE_IPV6 -pthread -Wno-invalid-offsetof -MMD -MF $(@:%.o=%.d) -o $@ $<
+       @cp $(@:%.o=%.d) $(@:%.o=%.P); \
+         sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
+             -e '/^$$/ d' -e 's/$$/ :/' < $(@:%.o=%.d) >> $(@:%.o=%.P); \
+         rm -f $(@:%.o=%.d)
 
-%.o: %.cpp
+dnsseed: $(OBJS:obj/%=obj/%)
+       $(LINK) -pthread -o $@ $^ $(LIBS)
+
+
+clean:
+       rm -f obj/*.o
+       rm -f obj/*.P
+       rm -f dnsseed
diff --git a/obj/.gitignore b/obj/.gitignore
new file mode 100644 (file)
index 0000000..c330091
--- /dev/null
@@ -0,0 +1,3 @@
+*
+!.gitignore
+!zerocoin