Makefile 2.2 KB

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