From: Davin McCall Date: Sun, 19 Jun 2016 17:05:01 +0000 (+0100) Subject: Add root level Makefile, make "shutdown" be optionally built by "make all" X-Git-Tag: v0.04~30 X-Git-Url: https://git.librecmc.org/?p=oweals%2Fdinit.git;a=commitdiff_plain;h=3a51fe4d85825f80ac9a8eda645991d19fe8e95e Add root level Makefile, make "shutdown" be optionally built by "make all" (BUILD_SHUTDOWN in mconfig) --- diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..3614cbe --- /dev/null +++ b/Makefile @@ -0,0 +1,10 @@ +# Makefile for Dinit. + +all: + $(MAKE) -C src all + +install: + $(MAKE) -C src install + +clean: + $(MAKE) -C src clean diff --git a/mconfig b/mconfig index 3bdb14c..b173e19 100644 --- a/mconfig +++ b/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). diff --git a/src/Makefile b/src/Makefile index b671fd5..a163de0 100644 --- a/src/Makefile +++ b/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