configure revision 282434
1219732Sume#!/bin/sh 2219732Sume# Try and be like autotools configure, but without autotools 3219732Sume 4219732Sume# Ensure that we do not inherit these from env 5219732SumeOS= 6219732SumeBUILD= 7219732SumeHOST= 8219732SumeTARGET= 9219732SumeRESTARTCMD= 10219732SumeRCDIR= 11219732Sume 12282434Sgjbfor x do 13219732Sume opt=${x%%=*} 14219732Sume var=${x#*=} 15219732Sume case "$opt" in 16219732Sume --os|OS) OS=$var;; 17219732Sume --with-cc|CC) CC=$var;; 18219732Sume --debug) DEBUG=$var;; 19219732Sume --disable-debug) DEBUG=no;; 20219732Sume --enable-debug) DEBUG=yes;; 21282434Sgjb --prefix) PREFIX=$var;; 22219732Sume --sysconfdir) SYSCONFDIR=$var;; 23219732Sume --bindir|--sbindir) SBINDIR=$var;; 24219732Sume --libexecdir) LIBEXECDIR=$var;; 25219732Sume --statedir|--localstatedir) STATEDIR=$var;; 26219732Sume --dbdir) DBDIR=$var;; 27219732Sume --rundir) RUNDIR=$var;; 28219732Sume --mandir) MANDIR=$var;; 29219732Sume --with-ccopts|CFLAGS) CFLAGS=$var;; 30219732Sume CPPFLAGS) CPPFLAGS=$var;; 31219732Sume --build) BUILD=$var;; 32219732Sume --host) HOST=$var;; 33219732Sume --target) TARGET=$var;; 34219732Sume --libdir) LIBDIR=$var;; 35219732Sume --restartcmd) RESTARTCMD=$var;; 36219732Sume --includedir) eval INCLUDEDIR="$INCLUDEDIR${INCLUDEDIR:+ }$var";; 37219732Sume --datadir|--infodir) ;; # ignore autotools 38219732Sume --disable-maintainer-mode|--disable-dependency-tracking) ;; 39219732Sume --help) echo "See the README file for available options"; exit 0;; 40219732Sume *) echo "$0: WARNING: unknown option $opt" >&2;; 41219732Sume esac 42219732Sumedone 43219732Sume 44282434Sgjbif [ -z "$LIBEXECDIR" ]; then 45282434Sgjb printf "Checking for directory /libexec ... " 46282434Sgjb if [ -d /libexec ]; then 47282434Sgjb echo "yes" 48282434Sgjb LIBEXECDIR=$PREFIX/libexec/resolvconf 49282434Sgjb else 50282434Sgjb echo "no" 51282434Sgjb LIBEXECDIR=$PREFIX/lib/resolvconf 52282434Sgjb fi 53282434Sgjbfi 54282434Sgjbif [ -z "$RUNDIR" ]; then 55282434Sgjb printf "Checking for directory /run ... " 56282434Sgjb if [ -d /run ]; then 57282434Sgjb echo "yes" 58282434Sgjb RUNDIR=/run 59282434Sgjb else 60282434Sgjb echo "no" 61282434Sgjb RUNDIR=/var/run 62282434Sgjb fi 63282434Sgjbfi 64282434Sgjb 65219732Sume: ${SED:=sed} 66219732Sume 67219732Sume: ${SYSCONFDIR:=$PREFIX/etc} 68219732Sume: ${SBINDIR:=$PREFIX/sbin} 69282434Sgjb: ${LIBEXECDIR:=$PREFIX/libexec/resolvconf} 70219732Sume: ${STATEDIR:=/var} 71219732Sume: ${RUNDIR:=$STATEDIR/run} 72219732Sume: ${MANDIR:=${PREFIX:-/usr}/share/man} 73219732Sume 74219732Sumeeval SYSCONFDIR="$SYSCONFDIR" 75219732Sumeeval SBINDIR="$SBINDIR" 76282434Sgjbeval LIBEXECDIR="$LIBEXECDIR" 77219732Sumeeval VARDIR="$RUNDIR/resolvconf" 78219732Sumeeval MANDIR="$MANDIR" 79219732Sume 80219732SumeCONFIG_MK=config.mk 81219732Sume 82219732Sumeif [ -z "$BUILD" ]; then 83282434Sgjb # autoconf target triplet: cpu-vendor-os 84282434Sgjb BUILD=$(uname -m)-unknown-$(uname -s | tr '[:upper:]' '[:lower:]') 85219732Sumefi 86282434Sgjb: ${HOST:=$BUILD} 87219732Sume 88219732Sumeif [ -z "$OS" ]; then 89282434Sgjb echo "Deriving operating system from ... $HOST" 90282434Sgjb # Derive OS from cpu-vendor-[kernel-]os 91282434Sgjb CPU=${HOST%%-*} 92282434Sgjb REST=${HOST#*-} 93219732Sume if [ "$CPU" != "$REST" ]; then 94282434Sgjb VENDOR=${REST%%-*} 95219732Sume REST=${REST#*-} 96282434Sgjb if [ "$VENDOR" != "$REST" ]; then 97282434Sgjb # Use kernel if given, otherwise os 98219732Sume OS=${REST%%-*} 99219732Sume else 100219732Sume # 2 tupple 101282434Sgjb OS=$VENDOR 102282434Sgjb VENDOR= 103219732Sume fi 104219732Sume fi 105282434Sgjb 106282434Sgjb # Work with cpu-kernel-os, ie Debian 107282434Sgjb case "$VENDOR" in 108282434Sgjb linux*|kfreebsd*) OS=$VENDOR; VENDOR= ;; 109282434Sgjb esac 110282434Sgjb # Special case 111282434Sgjb case "$OS" in 112282434Sgjb gnu*) OS=hurd;; # No HURD support as yet 113282434Sgjb esac 114219732Sumefi 115219732Sume 116219732Sumeecho "Configuring openresolv for ... $OS" 117219732Sumerm -rf $CONFIG_MK 118219732Sumeecho "# $OS" >$CONFIG_MK 119219732Sume 120219732Sumefor x in SYSCONFDIR SBINDIR LIBEXECDIR VARDIR MANDIR; do 121219732Sume eval v=\$$x 122219732Sume # Make files look nice for import 123219732Sume l=$((10 - ${#x})) 124219732Sume unset t 125219732Sume [ $l -gt 3 ] && t=" " 126219732Sume echo "$x=$t $v" >>$CONFIG_MK 127219732Sumedone 128219732Sume 129282434Sgjbif [ -z "$RESTARTCMD" ]; then 130282434Sgjb printf "Checking for systemd ... " 131282434Sgjb if [ -x /bin/systemctl ]; then 132282434Sgjb RESTARTCMD="/bin/systemctl try-restart \1" 133282434Sgjb echo "yes" 134282434Sgjb elif [ -x /usr/bin/systemctl ]; then 135282434Sgjb RESTARTCMD="/usr/bin/systemctl try-restart \1" 136282434Sgjb echo "yes" 137282434Sgjb else 138282434Sgjb echo "no" 139282434Sgjb fi 140219732Sumefi 141219732Sume 142282434Sgjb# Arch upgraded to systemd, so this check has to be just after systemd 143282434Sgjb# but higher than the others 144219732Sumeif [ -z "$RESTARTCMD" ]; then 145282434Sgjb printf "Checking for Arch ... " 146282434Sgjb if [ -e /etc/arch-release -a -d /etc/rc.d ]; then 147282434Sgjb RCDIR=/etc/rc.d 148282434Sgjb RESTARTCMD="[ -e /var/run/daemons/\1 ] \&\& /etc/rc.d/\1 restart" 149282434Sgjb echo "yes" 150282434Sgjb else 151282434Sgjb echo "no" 152282434Sgjb fi 153282434Sgjbfi 154282434Sgjb 155282434Sgjbif [ -z "$RESTARTCMD" ]; then 156219732Sume printf "Checking for OpenRC ... " 157219732Sume if [ -x /sbin/rc-service ]; then 158282434Sgjb RESTARTCMD="if /sbin/rc-service -e \1; then /sbin/rc-service \1 -- -Ds restart; fi" 159219732Sume echo "yes" 160219732Sume else 161219732Sume echo "no" 162219732Sume fi 163219732Sumefi 164219732Sumeif [ -z "$RESTARTCMD" ]; then 165219732Sume printf "Checking for invoke-rc.d ... " 166219732Sume if [ -x /usr/sbin/invoke-rc.d ]; then 167219732Sume RCDIR=/etc/init.d 168282434Sgjb RESTARTCMD="if /usr/sbin/invoke-rc.d --quiet \1 status >/dev/null 2>\&1; then /usr/sbin/invoke-rc.d \1 restart; fi" 169219732Sume echo "yes" 170219732Sume else 171219732Sume echo "no" 172219732Sume fi 173219732Sumefi 174219732Sumeif [ -z "$RESTARTCMD" ]; then 175219732Sume printf "Checking for service ... " 176219732Sume if [ -x /sbin/service ]; then 177219732Sume RCDIR=/etc/init.d 178282434Sgjb RESTARTCMD="if /sbin/service \1; then /sbin/service \1 restart; fi" 179219732Sume echo "yes" 180219732Sume else 181219732Sume echo "no" 182219732Sume fi 183219732Sumefi 184219732Sumeif [ -z "$RESTARTCMD" ]; then 185282434Sgjb printf "Checking for runit... " 186282434Sgjb if [ -x /bin/sv ]; then 187282434Sgjb RESTARTCMD="/bin/sv try-restart \1" 188282434Sgjb echo "yes" 189282434Sgjb elif [ -x /usr/bin/sv ]; then 190282434Sgjb RESTARTCMD="/usr/bin/sv try-restart \1" 191282434Sgjb echo "yes" 192282434Sgjb else 193282434Sgjb echo "no" 194282434Sgjb fi 195282434Sgjbfi 196282434Sgjbif [ -z "$RESTARTCMD" ]; then 197219732Sume for x in /etc/init.d/rc.d /etc/rc.d /etc/init.d; do 198219732Sume printf "Checking for $x ... " 199219732Sume if [ -d $x ]; then 200219732Sume RCDIR=$x 201282434Sgjb RESTARTCMD="if $x/\1 status >/dev/null 2>\&1; then $x/\1 restart; fi" 202219732Sume echo "yes" 203219732Sume break 204219732Sume else 205219732Sume echo "no" 206219732Sume fi 207219732Sume done 208219732Sumefi 209219732Sume 210219732Sumeif [ -z "$RESTARTCMD" ]; then 211282434Sgjb echo "$0: WARNING: No means of interacting with system services detected!" 212219732Sume exit 1 213219732Sumefi 214219732Sume 215219732Sumeecho "RCDIR= $RCDIR" >>$CONFIG_MK 216219732Sume# Work around bug in the dash shell as "echo 'foo \1'" does bad things 217219732Sumeprintf "%s\n" "RESTARTCMD= $RESTARTCMD" >>$CONFIG_MK 218219732Sume 219219732Sumeecho 220219732Sumeecho " SYSCONFDIR = $SYSCONFDIR" 221219732Sumeecho " SBINDIR = $SBINDIR" 222219732Sumeecho " LIBEXECDIR = $LIBEXECDIR" 223219732Sumeecho " VARDIR = $RUNDIR" 224219732Sumeecho " MANDIR = $MANDIR" 225219732Sumeecho 226