Makefile 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. include ../mconfig
  2. include ../build/version.conf
  3. STRIPOPTS ?= -s
  4. ifeq ($(BUILD_SHUTDOWN),yes)
  5. SHUTDOWN=$(SHUTDOWN_PREFIX)shutdown
  6. endif
  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 options-processing.o
  9. objects = $(dinit_objects) dinitctl.o dinitcheck.o shutdown.o
  10. all: dinit dinitctl dinitcheck $(SHUTDOWN)
  11. # Look for a suitable build config file and use it.
  12. ../mconfig:
  13. @UNAME=`uname`;\
  14. if [ -f "../configs/mconfig.$$UNAME.sh" ]; then \
  15. echo "Found auto-configuration script for OS: $$UNAME"; \
  16. ( cd ../configs; sh "mconfig.$$UNAME.sh" ) \
  17. elif [ -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. exit 1; \
  23. fi
  24. mconfig-gen: mconfig-gen.cc ../mconfig
  25. $(HOSTCXX) $(HOSTCXXOPTS) -o mconfig-gen mconfig-gen.cc $(HOSTLDFLAGS)
  26. $(objects): ../build/includes/mconfig.h
  27. dinit: $(dinit_objects)
  28. $(CXX) -o dinit $(dinit_objects) $(LDFLAGS)
  29. dinitctl: dinitctl.o
  30. $(CXX) -o dinitctl dinitctl.o $(LDFLAGS)
  31. dinitcheck: dinitcheck.o options-processing.o
  32. $(CXX) -o dinitcheck dinitcheck.o options-processing.o $(LDFLAGS)
  33. $(SHUTDOWNPREFIX)shutdown: shutdown.o
  34. $(CXX) -o $(SHUTDOWNPREFIX)shutdown shutdown.o $(LDFLAGS)
  35. $(objects): %.o: %.cc
  36. $(CXX) $(CXXOPTS) -MMD -MP -Iincludes -Idasynq -I../build/includes -c $< -o $@
  37. check: ../build/includes/mconfig.h
  38. $(MAKE) -C tests check
  39. check-igr: dinit dinitctl dinitcheck
  40. $(MAKE) -C igr-tests check-igr
  41. run-cppcheck:
  42. cppcheck --std=c++11 -Iincludes -Idasynq --force --enable=all *.cc 2>../cppcheck-report.txt
  43. install: all
  44. install -d $(DESTDIR)$(SBINDIR)
  45. install $(STRIPOPTS) dinit dinitctl dinitcheck $(SHUTDOWN) $(DESTDIR)$(SBINDIR)
  46. ifeq ($(BUILD_SHUTDOWN),yes)
  47. ln -f $(DESTDIR)$(SBINDIR)/$(SHUTDOWN) $(DESTDIR)$(SBINDIR)/$(SHUTDOWNPREFIX)halt
  48. ln -f $(DESTDIR)$(SBINDIR)/$(SHUTDOWN) $(DESTDIR)$(SBINDIR)/$(SHUTDOWNPREFIX)reboot
  49. endif
  50. clean:
  51. rm -f *.o *.d
  52. rm -f dinit dinitctl dinitcheck shutdown mconfig-gen
  53. rm -f includes/mconfig.h
  54. $(MAKE) -C tests clean
  55. $(MAKE) -C igr-tests clean
  56. -include $(objects:.o=.d)