diff options
Diffstat (limited to 'configure')
-rw-r--r-- | configure | 186 |
1 files changed, 186 insertions, 0 deletions
diff --git a/configure b/configure new file mode 100644 index 000000000000..39bdddb65412 --- /dev/null +++ b/configure @@ -0,0 +1,186 @@ +#!/bin/sh +# Try and be like autotools configure, but without autotools + +# Ensure that we do not inherit these from env +OS= +BUILD= +HOST= +TARGET= +RESTARTCMD= +RCDIR= + +for x; do + opt=${x%%=*} + var=${x#*=} + case "$opt" in + --os|OS) OS=$var;; + --with-cc|CC) CC=$var;; + --debug) DEBUG=$var;; + --disable-debug) DEBUG=no;; + --enable-debug) DEBUG=yes;; + --prefix) prefix=$var;; + --sysconfdir) SYSCONFDIR=$var;; + --bindir|--sbindir) SBINDIR=$var;; + --libexecdir) LIBEXECDIR=$var;; + --statedir|--localstatedir) STATEDIR=$var;; + --dbdir) DBDIR=$var;; + --rundir) RUNDIR=$var;; + --mandir) MANDIR=$var;; + --with-ccopts|CFLAGS) CFLAGS=$var;; + CPPFLAGS) CPPFLAGS=$var;; + --build) BUILD=$var;; + --host) HOST=$var;; + --target) TARGET=$var;; + --libdir) LIBDIR=$var;; + --restartcmd) RESTARTCMD=$var;; + --includedir) eval INCLUDEDIR="$INCLUDEDIR${INCLUDEDIR:+ }$var";; + --datadir|--infodir) ;; # ignore autotools + --disable-maintainer-mode|--disable-dependency-tracking) ;; + --help) echo "See the README file for available options"; exit 0;; + *) echo "$0: WARNING: unknown option $opt" >&2;; + esac +done + +: ${SED:=sed} + +: ${PREFIX:=$prefix} +: ${SYSCONFDIR:=$PREFIX/etc} +: ${SBINDIR:=$PREFIX/sbin} +: ${LIBEXECDIR:=$PREFIX/libexec} +: ${STATEDIR:=/var} +: ${RUNDIR:=$STATEDIR/run} +: ${MANDIR:=${PREFIX:-/usr}/share/man} + +eval SYSCONFDIR="$SYSCONFDIR" +eval SBINDIR="$SBINDIR" +eval LIBEXECDIR="$LIBEXECDIR/resolvconf" +eval VARDIR="$RUNDIR/resolvconf" +eval MANDIR="$MANDIR" + +CONFIG_MK=config.mk + +if [ -z "$BUILD" ]; then + BUILD=`uname -m`-`uname -s | tr '[:upper:]' '[:lower:]'` +fi +if [ -z "$HOST" ]; then + [ -z "$TARGET" ] && TARGET=$BUILD + HOST=$TARGET +fi +if [ -z "$TARGET" ]; then + [ -z "$HOST" ] && HOST=$BUILD + TARGET=$HOST +fi + +# Debian and Slackware have linux in different places when dealing with +# autoconf, so we deal with that here. +if [ -z "$OS" ]; then + case "$TARGET" in + *-linux-*|linux-*|*-linux|linux) OS=linux;; + esac +fi + +if [ -z "$OS" ]; then + # Derive OS from cpu-manufacturer-os-kernel + CPU=${TARGET%%-*} + REST=${TARGET#*-} + if [ "$CPU" != "$REST" ]; then + MANU=${REST%%-*} + REST=${REST#*-} + if [ "$MANU" != "$REST" ]; then + OS=${REST%%-*} + REST=${REST#*-} + if [ "$OS" != "$REST" ]; then + KERNEL=${REST%%-*} + else + # 3 tupple + KERNEL=$OS + OS=$MANU + MANU= + fi + else + # 2 tupple + OS=$MANU + MANU= + fi + fi +fi + +echo "Configuring openresolv for ... $OS" +rm -rf $CONFIG_MK +echo "# $OS" >$CONFIG_MK + +for x in SYSCONFDIR SBINDIR LIBEXECDIR VARDIR MANDIR; do + eval v=\$$x + # Make files look nice for import + l=$((10 - ${#x})) + unset t + [ $l -gt 3 ] && t=" " + echo "$x=$t $v" >>$CONFIG_MK +done + +if [ -e /etc/arch-release -a -d /etc/rc.d ]; then + echo "Overriding service status check for Arch Linux" + RCDIR=/etc/rc.d + RESTARTCMD="[ -e /var/run/daemons/\1 ] \&\& /etc/rc.d/\1 restart" + echo "yes" +fi + +if [ -z "$RESTARTCMD" ]; then + printf "Checking for OpenRC ... " + if [ -x /sbin/rc-service ]; then + RESTARTCMD="/sbin/rc-service -e \1 \&\& /sbin/rc-service \1 -- -Ds restart" + echo "yes" + else + echo "no" + fi +fi +if [ -z "$RESTARTCMD" ]; then + printf "Checking for invoke-rc.d ... " + if [ -x /usr/sbin/invoke-rc.d ]; then + RCDIR=/etc/init.d + RESTARTCMD="/usr/sbin/invoke-rc.d --quiet \1 status >/dev/null 2>\&1 \&\& /usr/sbin/invoke-rc.d \1 restart" + echo "yes" + else + echo "no" + fi +fi +if [ -z "$RESTARTCMD" ]; then + printf "Checking for service ... " + if [ -x /sbin/service ]; then + RCDIR=/etc/init.d + RESTARTCMD="/sbin/service \1 \&\& /sbin/service \1 restart" + echo "yes" + else + echo "no" + fi +fi +if [ -z "$RESTARTCMD" ]; then + for x in /etc/init.d/rc.d /etc/rc.d /etc/init.d; do + printf "Checking for $x ... " + if [ -d $x ]; then + RCDIR=$x + RESTARTCMD="$x/\1 status >/dev/null 2>\&1 \&\& $x/\1 restart" + echo "yes" + break + else + echo "no" + fi + done +fi + +if [ -z "$RESTARTCMD" ]; then + echo "WARNING! No means of interacting with system services detected!" + exit 1 +fi + +echo "RCDIR= $RCDIR" >>$CONFIG_MK +# Work around bug in the dash shell as "echo 'foo \1'" does bad things +printf "%s\n" "RESTARTCMD= $RESTARTCMD" >>$CONFIG_MK + +echo +echo " SYSCONFDIR = $SYSCONFDIR" +echo " SBINDIR = $SBINDIR" +echo " LIBEXECDIR = $LIBEXECDIR" +echo " VARDIR = $RUNDIR" +echo " MANDIR = $MANDIR" +echo |