Try to fix case where we can't getpgid() treating pid == pgid.
[oweals/dinit.git] / src / Makefile
1 include ../mconfig
2
3 ifeq ($(BUILD_SHUTDOWN),yes)
4   SHUTDOWN=shutdown
5 endif
6
7 dinit_objects = dinit.o load-service.o service.o proc-service.o baseproc-service.o control.o dinit-log.o \
8                 dinit-main.o run-child-proc.o
9
10 objects = $(dinit_objects) dinitctl.o shutdown.o
11
12 all: dinit dinitctl $(SHUTDOWN)
13
14 # Look for a suitable build config file and use it.
15 ../mconfig:
16         @UNAME=`uname`;\
17         if [ -f "../configs/mconfig.$$UNAME" ]; then \
18             echo "Found configuration for OS: $$UNAME"; \
19             ln -sf "configs/mconfig.$$UNAME" ../mconfig; \
20         else \
21             echo "No config available. Please create suitable mconfig file."; \
22         fi
23
24 includes/mconfig.h: mconfig-gen
25         ./mconfig-gen SBINDIR=$(SBINDIR) SYSCONTROLSOCKET=$(SYSCONTROLSOCKET) \
26                 $(if $(USE_UTMPX),USE_UTMPX=$(USE_UTMPX),) > includes/mconfig.h
27
28 mconfig-gen: mconfig-gen.cc ../mconfig
29         $(CXX) $(CXXOPTS) -o mconfig-gen mconfig-gen.cc $(LDFLAGS)
30
31 $(dinit_objects): includes/mconfig.h
32
33 dinit: $(dinit_objects)
34         $(CXX) -o dinit $(dinit_objects) $(LDFLAGS)
35
36 dinitctl: dinitctl.o
37         $(CXX) -o dinitctl dinitctl.o $(LDFLAGS)
38         
39 shutdown: shutdown.o
40         $(CXX) -o shutdown shutdown.o $(LDFLAGS)
41
42 $(objects): %.o: %.cc
43         $(CXX) $(CXXOPTS) -MMD -MP -Iincludes -Idasynq -c $< -o $@
44
45 check:
46         $(MAKE) -C tests check
47
48 run-cppcheck:
49         cppcheck --std=c++11 -Iincludes -Idasynq --force --enable=all *.cc 2>../cppcheck-report.txt
50
51 install: all
52         install -d $(DESTDIR)$(SBINDIR)
53         install -s dinit dinitctl $(SHUTDOWN) $(DESTDIR)$(SBINDIR)
54 ifeq ($(BUILD_SHUTDOWN),yes)
55         ln $(DESTDIR)$(SBINDIR)/shutdown $(DESTDIR)$(SBINDIR)/halt
56         ln $(DESTDIR)$(SBINDIR)/shutdown $(DESTDIR)$(SBINDIR)/reboot
57 endif
58
59 clean:
60         rm -f *.o *.d
61         rm -f dinit dinitctl shutdown mconfig-gen
62         rm -f includes/mconfig.h
63         $(MAKE) -C tests clean
64
65 -include $(objects:.o=.d)