Browse Source

Add root level Makefile, make "shutdown" be optionally built by "make all"
(BUILD_SHUTDOWN in mconfig)

Davin McCall 7 years ago
parent
commit
3a51fe4d85
3 changed files with 25 additions and 12 deletions
  1. 10 0
      Makefile
  2. 4 6
      mconfig
  3. 11 6
      src/Makefile

+ 10 - 0
Makefile

@@ -0,0 +1,10 @@
+# Makefile for Dinit.
+
+all:
+	$(MAKE) -C src all
+
+install:
+	$(MAKE) -C src install
+
+clean:
+	$(MAKE) -C src clean

+ 4 - 6
mconfig

@@ -1,14 +1,12 @@
-# LLVM/clang++ with libc++ on Linux
-#CXX=clang++
-#CXXOPTS=-stdlib=libc++ -std=gnu++11 -Os -Wall -fno-rtti
-#EXTRA_LIBS=-lc++abi
-
-# GCC. Note with GCC 5,5.1,5.2 the new C++11 ABI is buggy.
+# Linux (GCC). Note with GCC 5,5.1,5.2 the new C++11 ABI is buggy.
 CXX=g++
 CXXOPTS=-D_GLIBCXX_USE_CXX11_ABI=0 -std=gnu++11 -Os -Wall -Wno-invalid-offsetof -fno-rtti
 EXTRA_LIBS=
+BUILD_SHUTDOWN=yes
 
 # OpenBSD, tested with GCC 4.9.3 and gmake:
 #CXX=eg++
 #CXXOPTS=-D_GLIBCXX_USE_CXX11_ABI=0 -std=gnu++11 -Os -Wall -fno-rtti
 #EXTRA_LIBS=
+#BUILD_SHUTDOWN=no
+# (shutdown command not available for OpenBSD yet).

+ 11 - 6
src/Makefile

@@ -1,12 +1,14 @@
 -include ../mconfig
 
+ifeq ($(BUILD_SHUTDOWN),yes)
+  SHUTDOWN=shutdown
+endif
+
 objects = dinit.o load_service.o service.o control.o dinit-log.o dinitctl.o shutdown.o dinit-reboot.o
 
 dinit_objects = dinit.o load_service.o service.o control.o dinit-log.o
 
-all: dinit dinitctl
-
-shutdown-utils: shutdown
+all: dinit dinitctl $(SHUTDOWN)
 
 dinit: $(dinit_objects)
 	$(CXX) -o dinit $(dinit_objects) $(EXTRA_LIBS)
@@ -23,9 +25,12 @@ dinit-reboot: dinit-reboot.o
 $(objects): %.o: %.cc service.h dinit-log.h control.h control-cmds.h cpbuffer.h
 	$(CXX) $(CXXOPTS) -Idasynq -c $< -o $@
 
-#install: all
-
-#install.man:
+install: all
+	install -d $(DESTDIR)/sbin
+	install -s dinit dinitctl $(SHUTDOWN) $(DESTDIR)/sbin
+ifeq ($(BUILD_SHUTDOWN),yes)
+	install halt reboot $(DESTDIR)/sbin
+endif
 
 clean:
 	rm -f *.o