-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