-# 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).
-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)
$(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