1587392a5SHajimu UMEMOTO#!/bin/sh 2587392a5SHajimu UMEMOTO# Try and be like autotools configure, but without autotools 3587392a5SHajimu UMEMOTO 4587392a5SHajimu UMEMOTO# Ensure that we do not inherit these from env 5587392a5SHajimu UMEMOTOOS= 6587392a5SHajimu UMEMOTOBUILD= 7587392a5SHajimu UMEMOTOHOST= 8587392a5SHajimu UMEMOTOTARGET= 9587392a5SHajimu UMEMOTORESTARTCMD= 10587392a5SHajimu UMEMOTORCDIR= 11587392a5SHajimu UMEMOTO 12*d7149f4eSGlen Barberfor x do 13587392a5SHajimu UMEMOTO opt=${x%%=*} 14587392a5SHajimu UMEMOTO var=${x#*=} 15587392a5SHajimu UMEMOTO case "$opt" in 16587392a5SHajimu UMEMOTO --os|OS) OS=$var;; 17587392a5SHajimu UMEMOTO --with-cc|CC) CC=$var;; 18587392a5SHajimu UMEMOTO --debug) DEBUG=$var;; 19587392a5SHajimu UMEMOTO --disable-debug) DEBUG=no;; 20587392a5SHajimu UMEMOTO --enable-debug) DEBUG=yes;; 21*d7149f4eSGlen Barber --prefix) PREFIX=$var;; 22587392a5SHajimu UMEMOTO --sysconfdir) SYSCONFDIR=$var;; 23587392a5SHajimu UMEMOTO --bindir|--sbindir) SBINDIR=$var;; 24587392a5SHajimu UMEMOTO --libexecdir) LIBEXECDIR=$var;; 25587392a5SHajimu UMEMOTO --statedir|--localstatedir) STATEDIR=$var;; 26587392a5SHajimu UMEMOTO --dbdir) DBDIR=$var;; 27587392a5SHajimu UMEMOTO --rundir) RUNDIR=$var;; 28587392a5SHajimu UMEMOTO --mandir) MANDIR=$var;; 29587392a5SHajimu UMEMOTO --with-ccopts|CFLAGS) CFLAGS=$var;; 30587392a5SHajimu UMEMOTO CPPFLAGS) CPPFLAGS=$var;; 31587392a5SHajimu UMEMOTO --build) BUILD=$var;; 32587392a5SHajimu UMEMOTO --host) HOST=$var;; 33587392a5SHajimu UMEMOTO --target) TARGET=$var;; 34587392a5SHajimu UMEMOTO --libdir) LIBDIR=$var;; 35587392a5SHajimu UMEMOTO --restartcmd) RESTARTCMD=$var;; 36587392a5SHajimu UMEMOTO --includedir) eval INCLUDEDIR="$INCLUDEDIR${INCLUDEDIR:+ }$var";; 37587392a5SHajimu UMEMOTO --datadir|--infodir) ;; # ignore autotools 38587392a5SHajimu UMEMOTO --disable-maintainer-mode|--disable-dependency-tracking) ;; 39587392a5SHajimu UMEMOTO --help) echo "See the README file for available options"; exit 0;; 40587392a5SHajimu UMEMOTO *) echo "$0: WARNING: unknown option $opt" >&2;; 41587392a5SHajimu UMEMOTO esac 42587392a5SHajimu UMEMOTOdone 43587392a5SHajimu UMEMOTO 44*d7149f4eSGlen Barberif [ -z "$LIBEXECDIR" ]; then 45*d7149f4eSGlen Barber printf "Checking for directory /libexec ... " 46*d7149f4eSGlen Barber if [ -d /libexec ]; then 47*d7149f4eSGlen Barber echo "yes" 48*d7149f4eSGlen Barber LIBEXECDIR=$PREFIX/libexec/resolvconf 49*d7149f4eSGlen Barber else 50*d7149f4eSGlen Barber echo "no" 51*d7149f4eSGlen Barber LIBEXECDIR=$PREFIX/lib/resolvconf 52*d7149f4eSGlen Barber fi 53*d7149f4eSGlen Barberfi 54*d7149f4eSGlen Barberif [ -z "$RUNDIR" ]; then 55*d7149f4eSGlen Barber printf "Checking for directory /run ... " 56*d7149f4eSGlen Barber if [ -d /run ]; then 57*d7149f4eSGlen Barber echo "yes" 58*d7149f4eSGlen Barber RUNDIR=/run 59*d7149f4eSGlen Barber else 60*d7149f4eSGlen Barber echo "no" 61*d7149f4eSGlen Barber RUNDIR=/var/run 62*d7149f4eSGlen Barber fi 63*d7149f4eSGlen Barberfi 64*d7149f4eSGlen Barber 65587392a5SHajimu UMEMOTO: ${SED:=sed} 66587392a5SHajimu UMEMOTO 67587392a5SHajimu UMEMOTO: ${SYSCONFDIR:=$PREFIX/etc} 68587392a5SHajimu UMEMOTO: ${SBINDIR:=$PREFIX/sbin} 69*d7149f4eSGlen Barber: ${LIBEXECDIR:=$PREFIX/libexec/resolvconf} 70587392a5SHajimu UMEMOTO: ${STATEDIR:=/var} 71587392a5SHajimu UMEMOTO: ${RUNDIR:=$STATEDIR/run} 72587392a5SHajimu UMEMOTO: ${MANDIR:=${PREFIX:-/usr}/share/man} 73587392a5SHajimu UMEMOTO 74587392a5SHajimu UMEMOTOeval SYSCONFDIR="$SYSCONFDIR" 75587392a5SHajimu UMEMOTOeval SBINDIR="$SBINDIR" 76*d7149f4eSGlen Barbereval LIBEXECDIR="$LIBEXECDIR" 77587392a5SHajimu UMEMOTOeval VARDIR="$RUNDIR/resolvconf" 78587392a5SHajimu UMEMOTOeval MANDIR="$MANDIR" 79587392a5SHajimu UMEMOTO 80587392a5SHajimu UMEMOTOCONFIG_MK=config.mk 81587392a5SHajimu UMEMOTO 82587392a5SHajimu UMEMOTOif [ -z "$BUILD" ]; then 83*d7149f4eSGlen Barber # autoconf target triplet: cpu-vendor-os 84*d7149f4eSGlen Barber BUILD=$(uname -m)-unknown-$(uname -s | tr '[:upper:]' '[:lower:]') 85587392a5SHajimu UMEMOTOfi 86*d7149f4eSGlen Barber: ${HOST:=$BUILD} 87587392a5SHajimu UMEMOTO 88587392a5SHajimu UMEMOTOif [ -z "$OS" ]; then 89*d7149f4eSGlen Barber echo "Deriving operating system from ... $HOST" 90*d7149f4eSGlen Barber # Derive OS from cpu-vendor-[kernel-]os 91*d7149f4eSGlen Barber CPU=${HOST%%-*} 92*d7149f4eSGlen Barber REST=${HOST#*-} 93587392a5SHajimu UMEMOTO if [ "$CPU" != "$REST" ]; then 94*d7149f4eSGlen Barber VENDOR=${REST%%-*} 95587392a5SHajimu UMEMOTO REST=${REST#*-} 96*d7149f4eSGlen Barber if [ "$VENDOR" != "$REST" ]; then 97*d7149f4eSGlen Barber # Use kernel if given, otherwise os 98587392a5SHajimu UMEMOTO OS=${REST%%-*} 99587392a5SHajimu UMEMOTO else 100587392a5SHajimu UMEMOTO # 2 tupple 101*d7149f4eSGlen Barber OS=$VENDOR 102*d7149f4eSGlen Barber VENDOR= 103587392a5SHajimu UMEMOTO fi 104587392a5SHajimu UMEMOTO fi 105*d7149f4eSGlen Barber 106*d7149f4eSGlen Barber # Work with cpu-kernel-os, ie Debian 107*d7149f4eSGlen Barber case "$VENDOR" in 108*d7149f4eSGlen Barber linux*|kfreebsd*) OS=$VENDOR; VENDOR= ;; 109*d7149f4eSGlen Barber esac 110*d7149f4eSGlen Barber # Special case 111*d7149f4eSGlen Barber case "$OS" in 112*d7149f4eSGlen Barber gnu*) OS=hurd;; # No HURD support as yet 113*d7149f4eSGlen Barber esac 114587392a5SHajimu UMEMOTOfi 115587392a5SHajimu UMEMOTO 116587392a5SHajimu UMEMOTOecho "Configuring openresolv for ... $OS" 117587392a5SHajimu UMEMOTOrm -rf $CONFIG_MK 118587392a5SHajimu UMEMOTOecho "# $OS" >$CONFIG_MK 119587392a5SHajimu UMEMOTO 120587392a5SHajimu UMEMOTOfor x in SYSCONFDIR SBINDIR LIBEXECDIR VARDIR MANDIR; do 121587392a5SHajimu UMEMOTO eval v=\$$x 122587392a5SHajimu UMEMOTO # Make files look nice for import 123587392a5SHajimu UMEMOTO l=$((10 - ${#x})) 124587392a5SHajimu UMEMOTO unset t 125587392a5SHajimu UMEMOTO [ $l -gt 3 ] && t=" " 126587392a5SHajimu UMEMOTO echo "$x=$t $v" >>$CONFIG_MK 127587392a5SHajimu UMEMOTOdone 128587392a5SHajimu UMEMOTO 129*d7149f4eSGlen Barberif [ -z "$RESTARTCMD" ]; then 130*d7149f4eSGlen Barber printf "Checking for systemd ... " 131*d7149f4eSGlen Barber if [ -x /bin/systemctl ]; then 132*d7149f4eSGlen Barber RESTARTCMD="/bin/systemctl try-restart \1" 133*d7149f4eSGlen Barber echo "yes" 134*d7149f4eSGlen Barber elif [ -x /usr/bin/systemctl ]; then 135*d7149f4eSGlen Barber RESTARTCMD="/usr/bin/systemctl try-restart \1" 136*d7149f4eSGlen Barber echo "yes" 137*d7149f4eSGlen Barber else 138*d7149f4eSGlen Barber echo "no" 139*d7149f4eSGlen Barber fi 140*d7149f4eSGlen Barberfi 141*d7149f4eSGlen Barber 142*d7149f4eSGlen Barber# Arch upgraded to systemd, so this check has to be just after systemd 143*d7149f4eSGlen Barber# but higher than the others 144*d7149f4eSGlen Barberif [ -z "$RESTARTCMD" ]; then 145*d7149f4eSGlen Barber printf "Checking for Arch ... " 146587392a5SHajimu UMEMOTO if [ -e /etc/arch-release -a -d /etc/rc.d ]; then 147587392a5SHajimu UMEMOTO RCDIR=/etc/rc.d 148587392a5SHajimu UMEMOTO RESTARTCMD="[ -e /var/run/daemons/\1 ] \&\& /etc/rc.d/\1 restart" 149587392a5SHajimu UMEMOTO echo "yes" 150*d7149f4eSGlen Barber else 151*d7149f4eSGlen Barber echo "no" 152*d7149f4eSGlen Barber fi 153587392a5SHajimu UMEMOTOfi 154587392a5SHajimu UMEMOTO 155587392a5SHajimu UMEMOTOif [ -z "$RESTARTCMD" ]; then 156587392a5SHajimu UMEMOTO printf "Checking for OpenRC ... " 157587392a5SHajimu UMEMOTO if [ -x /sbin/rc-service ]; then 158*d7149f4eSGlen Barber RESTARTCMD="if /sbin/rc-service -e \1; then /sbin/rc-service \1 -- -Ds restart; fi" 159587392a5SHajimu UMEMOTO echo "yes" 160587392a5SHajimu UMEMOTO else 161587392a5SHajimu UMEMOTO echo "no" 162587392a5SHajimu UMEMOTO fi 163587392a5SHajimu UMEMOTOfi 164587392a5SHajimu UMEMOTOif [ -z "$RESTARTCMD" ]; then 165587392a5SHajimu UMEMOTO printf "Checking for invoke-rc.d ... " 166587392a5SHajimu UMEMOTO if [ -x /usr/sbin/invoke-rc.d ]; then 167587392a5SHajimu UMEMOTO RCDIR=/etc/init.d 168*d7149f4eSGlen Barber RESTARTCMD="if /usr/sbin/invoke-rc.d --quiet \1 status >/dev/null 2>\&1; then /usr/sbin/invoke-rc.d \1 restart; fi" 169587392a5SHajimu UMEMOTO echo "yes" 170587392a5SHajimu UMEMOTO else 171587392a5SHajimu UMEMOTO echo "no" 172587392a5SHajimu UMEMOTO fi 173587392a5SHajimu UMEMOTOfi 174587392a5SHajimu UMEMOTOif [ -z "$RESTARTCMD" ]; then 175587392a5SHajimu UMEMOTO printf "Checking for service ... " 176587392a5SHajimu UMEMOTO if [ -x /sbin/service ]; then 177587392a5SHajimu UMEMOTO RCDIR=/etc/init.d 178*d7149f4eSGlen Barber RESTARTCMD="if /sbin/service \1; then /sbin/service \1 restart; fi" 179*d7149f4eSGlen Barber echo "yes" 180*d7149f4eSGlen Barber else 181*d7149f4eSGlen Barber echo "no" 182*d7149f4eSGlen Barber fi 183*d7149f4eSGlen Barberfi 184*d7149f4eSGlen Barberif [ -z "$RESTARTCMD" ]; then 185*d7149f4eSGlen Barber printf "Checking for runit... " 186*d7149f4eSGlen Barber if [ -x /bin/sv ]; then 187*d7149f4eSGlen Barber RESTARTCMD="/bin/sv try-restart \1" 188*d7149f4eSGlen Barber echo "yes" 189*d7149f4eSGlen Barber elif [ -x /usr/bin/sv ]; then 190*d7149f4eSGlen Barber RESTARTCMD="/usr/bin/sv try-restart \1" 191587392a5SHajimu UMEMOTO echo "yes" 192587392a5SHajimu UMEMOTO else 193587392a5SHajimu UMEMOTO echo "no" 194587392a5SHajimu UMEMOTO fi 195587392a5SHajimu UMEMOTOfi 196587392a5SHajimu UMEMOTOif [ -z "$RESTARTCMD" ]; then 197587392a5SHajimu UMEMOTO for x in /etc/init.d/rc.d /etc/rc.d /etc/init.d; do 198587392a5SHajimu UMEMOTO printf "Checking for $x ... " 199587392a5SHajimu UMEMOTO if [ -d $x ]; then 200587392a5SHajimu UMEMOTO RCDIR=$x 201*d7149f4eSGlen Barber RESTARTCMD="if $x/\1 status >/dev/null 2>\&1; then $x/\1 restart; fi" 202587392a5SHajimu UMEMOTO echo "yes" 203587392a5SHajimu UMEMOTO break 204587392a5SHajimu UMEMOTO else 205587392a5SHajimu UMEMOTO echo "no" 206587392a5SHajimu UMEMOTO fi 207587392a5SHajimu UMEMOTO done 208587392a5SHajimu UMEMOTOfi 209587392a5SHajimu UMEMOTO 210587392a5SHajimu UMEMOTOif [ -z "$RESTARTCMD" ]; then 211*d7149f4eSGlen Barber echo "$0: WARNING: No means of interacting with system services detected!" 212587392a5SHajimu UMEMOTO exit 1 213587392a5SHajimu UMEMOTOfi 214587392a5SHajimu UMEMOTO 215587392a5SHajimu UMEMOTOecho "RCDIR= $RCDIR" >>$CONFIG_MK 216587392a5SHajimu UMEMOTO# Work around bug in the dash shell as "echo 'foo \1'" does bad things 217587392a5SHajimu UMEMOTOprintf "%s\n" "RESTARTCMD= $RESTARTCMD" >>$CONFIG_MK 218587392a5SHajimu UMEMOTO 219587392a5SHajimu UMEMOTOecho 220587392a5SHajimu UMEMOTOecho " SYSCONFDIR = $SYSCONFDIR" 221587392a5SHajimu UMEMOTOecho " SBINDIR = $SBINDIR" 222587392a5SHajimu UMEMOTOecho " LIBEXECDIR = $LIBEXECDIR" 223587392a5SHajimu UMEMOTOecho " VARDIR = $RUNDIR" 224587392a5SHajimu UMEMOTOecho " MANDIR = $MANDIR" 225587392a5SHajimu UMEMOTOecho 226