Build: autogenerate dependency files (*.d)
[oweals/dinit.git] / src / Makefile
1 -include ../mconfig
2
3 ifeq ($(BUILD_SHUTDOWN),yes)
4   SHUTDOWN=shutdown
5 endif
6
7 objects = dinit.o load_service.o service.o control.o dinit-log.o dinitctl.o shutdown.o
8
9 dinit_objects = dinit.o load_service.o service.o control.o dinit-log.o
10
11 all: dinit dinitctl $(SHUTDOWN)
12
13 dinit: $(dinit_objects)
14         $(CXX) -o dinit $(dinit_objects) $(EXTRA_LIBS)
15
16 dinitctl: dinitctl.o
17         $(CXX) -o dinitctl dinitctl.o $(EXTRA_LIBS)
18         
19 shutdown: shutdown.o
20         $(CXX) -o shutdown shutdown.o
21
22 $(objects): %.o: %.cc service.h dinit-log.h control.h control-cmds.h cpbuffer.h
23         $(CXX) $(CXXOPTS) -Idasynq -c $< -o $@
24
25 install: all
26         install -d $(DESTDIR)/sbin
27         install -s dinit dinitctl $(SHUTDOWN) $(DESTDIR)/sbin
28 ifeq ($(BUILD_SHUTDOWN),yes)
29         install halt reboot $(DESTDIR)/sbin
30 endif
31
32 clean:
33         rm -f *.o
34         rm -f dinit dinitctl shutdown
35
36 $(objects:.o=.d): %.d: %.cc
37         $(CXX) -Idasynq -MM -MG -MF $@ $<
38
39 include $(objects:.o=.d)