diff --git a/etc.BSD/Makefile b/etc.BSD/Makefile index cb466dc0..ef4d783c 100644 --- a/etc.BSD/Makefile +++ b/etc.BSD/Makefile @@ -1,5 +1,14 @@ -DIR= /etc -CONF= $(CONTENTS) +DIR= /etc +SRCS= rc.in +OBJS= ${SRCS:.in=} +CONF= rc.shutdown ${OBJS} -MK= ../mk + +MK= ../mk include ${MK}/scripts.mk +include Makefile.${OS} + +.SUFFIXES: .in +.in: + sed -e s':@TERM@:${DEFTERM}:' $< > $@ + diff --git a/etc.BSD/Makefile.FreeBSD b/etc.BSD/Makefile.FreeBSD new file mode 100644 index 00000000..6f80f3be --- /dev/null +++ b/etc.BSD/Makefile.FreeBSD @@ -0,0 +1 @@ +DEFTERM= cons25 diff --git a/etc.BSD/Makefile.NetBSD b/etc.BSD/Makefile.NetBSD new file mode 100644 index 00000000..993ffda6 --- /dev/null +++ b/etc.BSD/Makefile.NetBSD @@ -0,0 +1 @@ +DEFTERM= vt100 diff --git a/etc.BSD/rc b/etc.BSD/rc deleted file mode 100644 index d1bd1761..00000000 --- a/etc.BSD/rc +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/sh -# Copyright 2007 Roy Marples -# All rights reserved - -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -# SUCH DAMAGE. - -# If $TERM is not set then assume default of cons25 -# This gives us a nice colour boot :) -[ -z "$TERM" -o "$TERM" = "dumb" ] && export TERM="cons25" - -# Handle interrupts -trap : SIGINT -trap "echo 'Boot interrupted'; exit 1" SIGQUIT - -# BSD's init works somewhat differently to sysvinit. -# This block should 'translate' from the way init calls it to the way it would -# be called by sysvinit on linux. -RUNLEVEL="1" /sbin/rc sysinit || exit 1 -RUNLEVEL="1" /sbin/rc boot || exit 1 -PREVLEVEL="1" /sbin/rc default - -# We don't actually care if rc default worked or not, we should exit 0 -# to allow logins -exit 0 diff --git a/etc.BSD/rc.in b/etc.BSD/rc.in new file mode 100644 index 00000000..935cf656 --- /dev/null +++ b/etc.BSD/rc.in @@ -0,0 +1,22 @@ +#!/bin/sh +# Copyright 2007-2008 Roy Marples +# All rights reserved + +# If $TERM is not set then assume default of cons25 +# This gives us a nice colour boot :) +[ -z "$TERM" -o "$TERM" = "dumb" ] && export TERM="@TERM@" + +# Handle interrupts +trap : SIGINT +trap "echo 'Boot interrupted'; exit 1" SIGQUIT + +# BSD's init works somewhat differently to sysvinit. +# This block should 'translate' from the way init calls it to the way it would +# be called by sysvinit on linux. +RUNLEVEL="1" /sbin/rc sysinit || exit 1 +RUNLEVEL="1" /sbin/rc boot || exit 1 +PREVLEVEL="1" /sbin/rc default + +# We don't actually care if rc default worked or not, we should exit 0 +# to allow logins +exit 0 diff --git a/mk/scripts.mk b/mk/scripts.mk index c7254aed..ac231cef 100644 --- a/mk/scripts.mk +++ b/mk/scripts.mk @@ -8,7 +8,7 @@ CONTENTS= ${_CONTENTS}$(shell ${_CONTENTS_SH}) include ${MK}/os.mk -all: +all: ${OBJS} realinstall: ${BIN} ${CONF} ${CONF_APPEND} if test -n "${DIR}"; then ${INSTALL} -d ${DESTDIR}${DIR} || exit $$?; fi @@ -30,3 +30,4 @@ realinstall: ${BIN} ${CONF} ${CONF_APPEND} install: realinstall ${INSTALLAFTER} clean: + rm -f ${OBJS} ${CLEANFILES}