diff --git a/Makefile b/Makefile index d75e7139..5fdff095 100644 --- a/Makefile +++ b/Makefile @@ -6,29 +6,15 @@ NAME = openrc VERSION = 1.0 PKG = $(NAME)-$(VERSION) -SUBDIR = conf.d etc init.d man net sh src +SUBDIR = conf.d etc init.d man net runlevels sh src TOPDIR = . include $(TOPDIR)/default.mk include $(TOPDIR)/Makefile.$(OS) install:: - # Don't install runlevels if they already exist - if ! test -d $(DESTDIR)/etc/runlevels ; then \ - (cd runlevels; $(MAKE) install) ; \ - test -d runlevels.$(OS) && (cd runlevels.$(OS); $(MAKE) install) ; \ - $(INSTALL_DIR) $(DESTDIR)/etc/runlevels/single || exit $$? ; \ - $(INSTALL_DIR) $(DESTDIR)/etc/runlevels/nonetwork || exit $$? ; \ - fi ln -snf ../../$(RC_LIB)/sh/net.sh $(DESTDIR)/etc/init.d/$(NET_LO) || exit $$? ln -snf ../../$(RC_LIB)/sh/functions.sh $(DESTDIR)/etc/init.d || exit $$? - # Handle lib correctly - if test $(LIB) != "lib" ; then \ - sed -i'.bak' -e 's,/lib/,/$(LIB)/,g' $(DESTDIR)/$(RC_LIB)/sh/functions.sh || exit $$? ; \ - rm -f $(DESTDIR)/$(RC_LIB)/sh/functions.sh.bak ; \ - sed -i'.bak' -e 's,/lib/,/$(LIB)/,g' $(DESTDIR)/$(RC_LIB)/sh/rc-functions.sh || exit $$? ; \ - rm -f $(DESTDIR)/$(RC_LIB)/sh/rc-functions.sh.bak ; \ - fi diststatus: if test -d .svn ; then \ @@ -51,6 +37,4 @@ distit: dist: diststatus distit -.PHONY: layout dist distit diststatus - # vim: set ts=4 : diff --git a/default.mk b/default.mk index 869e051c..6ec11c31 100644 --- a/default.mk +++ b/default.mk @@ -33,21 +33,18 @@ clean:: install:: $(_SUBDIR) -install:: $(BIN) $(CONF) $(CONF_APPEND) $(MAN8) +install:: $(BIN) $(CONF) $(CONF_APPEND) if test -n "$(DIR)" ; then $(INSTALL) -d $(DESTDIR)$(DIR) || exit $$?; fi if test -n "$(BIN)" ; then $(INSTALL) $(BIN) $(DESTDIR)$(DIR) || exit $$?; fi - if test -n "$(CONF)" ; then $(INSTALL) -m 0644 $(CONF) $(DESTDIR)$(DIR) || exit $$?; fi - for x in $(CONF_APPEND) ; do \ + for x in $(CONF); do \ if ! test -e $(DESTDIR)$(DIR)/$$x; then \ $(INSTALL) -m 0644 $$x $(DESTDIR)$(DIR) || exit $$?; \ fi; \ done - for x in $(CONF_APPEND) ; do \ + for x in $(CONF_APPEND); do \ if test -e $(DESTDIR)$(DIR)/$$x; then \ cat $$x >> $(DESTDIR)$(DIR)/$$x || exit $$?; \ else \ $(INSTALL) -m 0644 $$x $(DESTDIR)$(DIR) || exit $$?; \ fi; \ done - -.PHONY: all clean install diff --git a/etc.BSD/Makefile b/etc.BSD/Makefile index 61df479d..6ddb3448 100644 --- a/etc.BSD/Makefile +++ b/etc.BSD/Makefile @@ -1,5 +1,5 @@ DIR = /etc -FILES = rc rc.shutdown +CONF = rc rc.shutdown TOPDIR = .. include $(TOPDIR)/default.mk diff --git a/runlevels.BSD/Makefile b/runlevels.BSD/Makefile index a130621f..6c47cc7f 100644 --- a/runlevels.BSD/Makefile +++ b/runlevels.BSD/Makefile @@ -1,12 +1,21 @@ BOOTLEVEL = net.lo0 sysctl syscons DEFAULT = -install: - install -d -m 0755 $(DESTDIR)/etc/runlevels/boot || exit $$? - for x in $(BOOT) ; do ln -snf ../../init.d/"$$x" $(DESTDIR)/etc/runlevels/boot/"$$x" || exit $$? ; done - install -d -m 0755 $(DESTDIR)/etc/runlevels/default || exit $$? - for x in $(DEFAULT) ; do ln -snf ../../init.d/"$$x" $(DESTDIR)/etc/runlevels/default/"$$x" || exit $$? ; done +LEVELDIR = $(DESTDIR)/etc/runlevels +BOOTDIR = $(LEVELDIR)/boot +DEFAULTDIR = $(LEVELDIR)/default -.PHONY: all clean +install: + if ! test -d "$(BOOTDIR)" ; then \ + $(INSTALL) -d $(BOOTDIR) || exit $$?; \ + for x in $(BOOT); do ln -snf ../../init.d/"$$x" $(BOOTDIR)/"$$x" || exit $$? ; done \ + fi + if ! test -d "$(DEFAULTDIR)" ; then \ + $(INSTALL) -d $(DEFAULTDIR) || exit $$?; \ + for x in $(DEFAULT); do ln -snf ../../init.d/"$$x" $(DEFAULTDIR)/"$$x" || exit $$? ; done \ + fi + +all: +clean: # vim: set ts=4 : diff --git a/runlevels.Linux/Makefile b/runlevels.Linux/Makefile index 3fe69d83..f3ccc551 100644 --- a/runlevels.Linux/Makefile +++ b/runlevels.Linux/Makefile @@ -1,12 +1,21 @@ BOOT = consolefont keymaps modules net.lo DEFAULT = hdparm -install: - install -d -m 0755 $(DESTDIR)/etc/runlevels/boot || exit $$? - for x in $(BOOT) ; do ln -snf ../../init.d/"$$x" $(DESTDIR)/etc/runlevels/boot/"$$x" || exit $$? ; done - install -d -m 0755 $(DESTDIR)/etc/runlevels/default || exit $$? - for x in $(DEFAULT) ; do ln -snf ../../init.d/"$$x" $(DESTDIR)/etc/runlevels/default/"$$x" || exit $$? ; done +LEVELDIR = $(DESTDIR)/etc/runlevels +BOOTDIR = $(LEVELDIR)/boot +DEFAULTDIR = $(LEVELDIR)/default -.PHONY: all clean +install: + if ! test -d "$(BOOTDIR)" ; then \ + $(INSTALL) -d $(BOOTDIR) || exit $$?; \ + for x in $(BOOT); do ln -snf ../../init.d/"$$x" $(BOOTDIR)/"$$x" || exit $$? ; done \ + fi + if ! test -d "$(DEFAULTDIR)" ; then \ + $(INSTALL) -d $(DEFAULTDIR) || exit $$?; \ + for x in $(DEFAULT); do ln -snf ../../init.d/"$$x" $(DEFAULTDIR)/"$$x" || exit $$? ; done \ + fi + +all: +clean: # vim: set ts=4 : diff --git a/runlevels/Makefile b/runlevels/Makefile index 79041eca..f57eae02 100644 --- a/runlevels/Makefile +++ b/runlevels/Makefile @@ -1,12 +1,21 @@ BOOT = bootmisc checkroot checkfs clock hostname localmount rmnologin urandom DEFAULT = local netmount -install: - install -d -m 0755 $(DESTDIR)/etc/runlevels/boot || exit $$? - for x in $(BOOT) ; do ln -snf ../../init.d/"$$x" $(DESTDIR)/etc/runlevels/boot/"$$x" || exit $$? ; done - install -d -m 0755 $(DESTDIR)/etc/runlevels/default || exit $$? - for x in $(DEFAULT) ; do ln -snf ../../init.d/"$$x" $(DESTDIR)/etc/runlevels/default/"$$x" || exit $$? ; done +LEVELDIR = $(DESTDIR)/etc/runlevels +BOOTDIR = $(LEVELDIR)/boot +DEFAULTDIR = $(LEVELDIR)/default -.PHONY: all clean +install: + if ! test -d "$(BOOTDIR)" ; then \ + $(INSTALL) -d $(BOOTDIR) || exit $$?; \ + for x in $(BOOT); do ln -snf ../../init.d/"$$x" $(BOOTDIR)/"$$x" || exit $$? ; done \ + fi + if ! test -d "$(DEFAULTDIR)" ; then \ + $(INSTALL) -d $(DEFAULTDIR) || exit $$?; \ + for x in $(DEFAULT); do ln -snf ../../init.d/"$$x" $(DEFAULTDIR)/"$$x" || exit $$? ; done \ + fi + +all: +clean: # vim: set ts=4 : diff --git a/sh/Makefile b/sh/Makefile index 0be6c650..af610ca7 100644 --- a/sh/Makefile +++ b/sh/Makefile @@ -5,3 +5,12 @@ BIN = gendepends.sh net.sh rc-mount.sh rc-help.sh runscript.sh TOPDIR = .. include $(TOPDIR)/default.mk + +install:: + # Handle lib correctly + if test $(LIB) != "lib" ; then \ + sed -i'.bak' -e 's,/lib/,/$(LIB)/,g' $(DESTDIR)/$(RC_LIB)/sh/functions.sh || exit $$? ; \ + rm -f $(DESTDIR)/$(RC_LIB)/sh/functions.sh.bak ; \ + sed -i'.bak' -e 's,/lib/,/$(LIB)/,g' $(DESTDIR)/$(RC_LIB)/sh/rc-functions.sh || exit $$? ; \ + rm -f $(DESTDIR)/$(RC_LIB)/sh/rc-functions.sh.bak ; \ + fi diff --git a/src/Makefile b/src/Makefile index 0e449194..966f9339 100644 --- a/src/Makefile +++ b/src/Makefile @@ -6,12 +6,6 @@ # to type make instead of gmake, but also so that other distros can pick # it up and not rely on GNU Make. -# NOTE:- FreeBSD and DragonFly have no way of optionally including files -# that works with GNU make and vice versa. NetBSD and OpenBSD makes do. -# You can get a patch from -# http://www.freebsd.org/cgi/query-pr.cgi?pr=standards/116081 -# to fix this. - CC ?= gcc CFLAGS += -O2 -pipe LDFLAGS += -L. @@ -22,7 +16,7 @@ check_gcc=$(shell if $(CC) $(1) -S -o /dev/null -xc /dev/null >/dev/null 2>&1; \ # pmake check for extra cflags WEXTRA != for x in -Wdeclaration-after-statement -Wsequence-point -Wextra; do \ - if $(CC) -Wdeclaration-after-statement -S -o /dev/null -xc /dev/null >/dev/null 2>&1; \ + if $(CC) -W$$x -S -o /dev/null -xc /dev/null >/dev/null 2>&1; \ then echo -n "$$x "; fi \ done @@ -101,6 +95,9 @@ include Makefile.$(PAM) all: .depend $(TARGET) +version.h: + sed -n -e 's/^VERSION =[[:space:]]*\([^[:space:]]*\).*/#define VERSION "\1\"/p' ../Makefile > version.h + $(LIBEINFOOBJS): $(CC) $(CPPFLAGS) $(CFLAGS) -fPIC -c $< $(LIBEINFOSO): einfo.map $(LIBEINFOOBJS) @@ -160,10 +157,10 @@ install:: $(TARGET) clean-links: rm -f $(ALL_LINKS) -clean:: +clean:: clean-links echo > .depend touch -r Makefile .depend - rm -f $(TARGET) + rm -f $(TARGET) version.h rm -f *.o *~ *.core *.so *.a check: @@ -171,7 +168,5 @@ check: include .depend _DEPS != ls *.c *.h -.depend: $(_DEPS)$(wildcard *.c *.h) +.depend: version.h $(_DEPS)$(wildcard *.c *.h) $(CC) $(CPPFLAGS) -MM *.c > .depend - -.PHONY: all clean clean-links install links