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= 113f2a60a1SPedro F. GiffuniSTATUSARG= 12587392a5SHajimu UMEMOTO 13d7149f4eSGlen Barberfor x do 14587392a5SHajimu UMEMOTO opt=${x%%=*} 15587392a5SHajimu UMEMOTO var=${x#*=} 16587392a5SHajimu UMEMOTO case "$opt" in 17587392a5SHajimu UMEMOTO --os|OS) OS=$var;; 18587392a5SHajimu UMEMOTO --with-cc|CC) CC=$var;; 19587392a5SHajimu UMEMOTO --debug) DEBUG=$var;; 20587392a5SHajimu UMEMOTO --disable-debug) DEBUG=no;; 21587392a5SHajimu UMEMOTO --enable-debug) DEBUG=yes;; 22d7149f4eSGlen Barber --prefix) PREFIX=$var;; 23587392a5SHajimu UMEMOTO --sysconfdir) SYSCONFDIR=$var;; 24587392a5SHajimu UMEMOTO --bindir|--sbindir) SBINDIR=$var;; 25587392a5SHajimu UMEMOTO --libexecdir) LIBEXECDIR=$var;; 26587392a5SHajimu UMEMOTO --statedir|--localstatedir) STATEDIR=$var;; 27587392a5SHajimu UMEMOTO --dbdir) DBDIR=$var;; 28587392a5SHajimu UMEMOTO --rundir) RUNDIR=$var;; 29587392a5SHajimu UMEMOTO --mandir) MANDIR=$var;; 30587392a5SHajimu UMEMOTO --with-ccopts|CFLAGS) CFLAGS=$var;; 31587392a5SHajimu UMEMOTO CPPFLAGS) CPPFLAGS=$var;; 32587392a5SHajimu UMEMOTO --build) BUILD=$var;; 33587392a5SHajimu UMEMOTO --host) HOST=$var;; 34587392a5SHajimu UMEMOTO --target) TARGET=$var;; 35587392a5SHajimu UMEMOTO --libdir) LIBDIR=$var;; 36587392a5SHajimu UMEMOTO --restartcmd) RESTARTCMD=$var;; 373f2a60a1SPedro F. Giffuni --rcdir) RCDIR=$var;; 383f2a60a1SPedro F. Giffuni --statusarg) STATUSARG=$var;; 39587392a5SHajimu UMEMOTO --includedir) eval INCLUDEDIR="$INCLUDEDIR${INCLUDEDIR:+ }$var";; 40587392a5SHajimu UMEMOTO --datadir|--infodir) ;; # ignore autotools 41587392a5SHajimu UMEMOTO --disable-maintainer-mode|--disable-dependency-tracking) ;; 42587392a5SHajimu UMEMOTO --help) echo "See the README file for available options"; exit 0;; 43587392a5SHajimu UMEMOTO *) echo "$0: WARNING: unknown option $opt" >&2;; 44587392a5SHajimu UMEMOTO esac 45587392a5SHajimu UMEMOTOdone 46587392a5SHajimu UMEMOTO 47d7149f4eSGlen Barberif [ -z "$LIBEXECDIR" ]; then 48d7149f4eSGlen Barber printf "Checking for directory /libexec ... " 49d7149f4eSGlen Barber if [ -d /libexec ]; then 50d7149f4eSGlen Barber echo "yes" 51d7149f4eSGlen Barber LIBEXECDIR=$PREFIX/libexec/resolvconf 52d7149f4eSGlen Barber else 53d7149f4eSGlen Barber echo "no" 54d7149f4eSGlen Barber LIBEXECDIR=$PREFIX/lib/resolvconf 55d7149f4eSGlen Barber fi 56d7149f4eSGlen Barberfi 57d7149f4eSGlen Barberif [ -z "$RUNDIR" ]; then 58d7149f4eSGlen Barber printf "Checking for directory /run ... " 59d7149f4eSGlen Barber if [ -d /run ]; then 60d7149f4eSGlen Barber echo "yes" 61d7149f4eSGlen Barber RUNDIR=/run 62d7149f4eSGlen Barber else 63d7149f4eSGlen Barber echo "no" 64d7149f4eSGlen Barber RUNDIR=/var/run 65d7149f4eSGlen Barber fi 66d7149f4eSGlen Barberfi 67d7149f4eSGlen Barber 68587392a5SHajimu UMEMOTO: ${SED:=sed} 69587392a5SHajimu UMEMOTO 70587392a5SHajimu UMEMOTO: ${SYSCONFDIR:=$PREFIX/etc} 71587392a5SHajimu UMEMOTO: ${SBINDIR:=$PREFIX/sbin} 72d7149f4eSGlen Barber: ${LIBEXECDIR:=$PREFIX/libexec/resolvconf} 73587392a5SHajimu UMEMOTO: ${STATEDIR:=/var} 74587392a5SHajimu UMEMOTO: ${RUNDIR:=$STATEDIR/run} 75587392a5SHajimu UMEMOTO: ${MANDIR:=${PREFIX:-/usr}/share/man} 76587392a5SHajimu UMEMOTO 77587392a5SHajimu UMEMOTOeval SYSCONFDIR="$SYSCONFDIR" 78587392a5SHajimu UMEMOTOeval SBINDIR="$SBINDIR" 79d7149f4eSGlen Barbereval LIBEXECDIR="$LIBEXECDIR" 80587392a5SHajimu UMEMOTOeval VARDIR="$RUNDIR/resolvconf" 81587392a5SHajimu UMEMOTOeval MANDIR="$MANDIR" 82587392a5SHajimu UMEMOTO 83587392a5SHajimu UMEMOTOCONFIG_MK=config.mk 84587392a5SHajimu UMEMOTO 85587392a5SHajimu UMEMOTOif [ -z "$BUILD" ]; then 86d7149f4eSGlen Barber # autoconf target triplet: cpu-vendor-os 87d7149f4eSGlen Barber BUILD=$(uname -m)-unknown-$(uname -s | tr '[:upper:]' '[:lower:]') 88587392a5SHajimu UMEMOTOfi 89d7149f4eSGlen Barber: ${HOST:=$BUILD} 90587392a5SHajimu UMEMOTO 91587392a5SHajimu UMEMOTOif [ -z "$OS" ]; then 92d7149f4eSGlen Barber echo "Deriving operating system from ... $HOST" 93d7149f4eSGlen Barber # Derive OS from cpu-vendor-[kernel-]os 94d7149f4eSGlen Barber CPU=${HOST%%-*} 95d7149f4eSGlen Barber REST=${HOST#*-} 96587392a5SHajimu UMEMOTO if [ "$CPU" != "$REST" ]; then 97d7149f4eSGlen Barber VENDOR=${REST%%-*} 98587392a5SHajimu UMEMOTO REST=${REST#*-} 99d7149f4eSGlen Barber if [ "$VENDOR" != "$REST" ]; then 100d7149f4eSGlen Barber # Use kernel if given, otherwise os 101587392a5SHajimu UMEMOTO OS=${REST%%-*} 102587392a5SHajimu UMEMOTO else 103587392a5SHajimu UMEMOTO # 2 tupple 104d7149f4eSGlen Barber OS=$VENDOR 105d7149f4eSGlen Barber VENDOR= 106587392a5SHajimu UMEMOTO fi 107587392a5SHajimu UMEMOTO fi 108d7149f4eSGlen Barber 109d7149f4eSGlen Barber # Work with cpu-kernel-os, ie Debian 110d7149f4eSGlen Barber case "$VENDOR" in 111d7149f4eSGlen Barber linux*|kfreebsd*) OS=$VENDOR; VENDOR= ;; 112d7149f4eSGlen Barber esac 113d7149f4eSGlen Barber # Special case 114d7149f4eSGlen Barber case "$OS" in 115d7149f4eSGlen Barber gnu*) OS=hurd;; # No HURD support as yet 116d7149f4eSGlen Barber esac 117587392a5SHajimu UMEMOTOfi 118587392a5SHajimu UMEMOTO 119587392a5SHajimu UMEMOTOecho "Configuring openresolv for ... $OS" 120587392a5SHajimu UMEMOTOrm -rf $CONFIG_MK 121587392a5SHajimu UMEMOTOecho "# $OS" >$CONFIG_MK 122587392a5SHajimu UMEMOTO 123*87b2cfceSPedro F. Giffunicase "$OS" in 124*87b2cfceSPedro F. Giffunifreebsd*) 1253f2a60a1SPedro F. Giffuni # On FreeBSD, /etc/init.d/foo status returns 0 if foo is not enabled 1263f2a60a1SPedro F. Giffuni # regardless of if it's not running. 1273f2a60a1SPedro F. Giffuni # So we force onestatus to work around this silly bug. 1283f2a60a1SPedro F. Giffuni if [ -z "$STATUSARG" ]; then 129*87b2cfceSPedro F. Giffuni STATUSARG="onestatus" 1303f2a60a1SPedro F. Giffuni fi 131*87b2cfceSPedro F. Giffuni ;; 132*87b2cfceSPedro F. Giffunilinux*) 133*87b2cfceSPedro F. Giffuni # cksum does't support -a and netpgp is rare 134*87b2cfceSPedro F. Giffuni echo "CKSUM= sha256sum --tag" >>$CONFIG_MK 135*87b2cfceSPedro F. Giffuni echo "PGP= gpg2" >>$CONFIG_MK 136*87b2cfceSPedro F. Giffuni ;; 137*87b2cfceSPedro F. Giffuniesac 1383f2a60a1SPedro F. Giffuni 1393f2a60a1SPedro F. Giffunifor x in SYSCONFDIR SBINDIR LIBEXECDIR VARDIR MANDIR RESTARTCMD RCDIR STATUSARG 1403f2a60a1SPedro F. Giffunido 141587392a5SHajimu UMEMOTO eval v=\$$x 142587392a5SHajimu UMEMOTO # Make files look nice for import 143587392a5SHajimu UMEMOTO l=$((10 - ${#x})) 144587392a5SHajimu UMEMOTO unset t 145587392a5SHajimu UMEMOTO [ $l -gt 3 ] && t=" " 146587392a5SHajimu UMEMOTO echo "$x=$t $v" >>$CONFIG_MK 147587392a5SHajimu UMEMOTOdone 148587392a5SHajimu UMEMOTO 149587392a5SHajimu UMEMOTOecho 150587392a5SHajimu UMEMOTOecho " SYSCONFDIR = $SYSCONFDIR" 151587392a5SHajimu UMEMOTOecho " SBINDIR = $SBINDIR" 152587392a5SHajimu UMEMOTOecho " LIBEXECDIR = $LIBEXECDIR" 153587392a5SHajimu UMEMOTOecho " VARDIR = $RUNDIR" 154587392a5SHajimu UMEMOTOecho " MANDIR = $MANDIR" 155587392a5SHajimu UMEMOTOecho 1563f2a60a1SPedro F. Giffuniecho " RESTARTCMD = $RESTARTCMD" 1573f2a60a1SPedro F. Giffuniecho " RCDIR = $RCDIR" 1583f2a60a1SPedro F. Giffuniecho " STATUSARG = $STATUSARG" 1593f2a60a1SPedro F. Giffuniecho 160