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=
11304515SpfgSTATUSARG=
12219732Sume
13282434Sgjbfor x do
14219732Sume	opt=${x%%=*}
15219732Sume	var=${x#*=}
16219732Sume	case "$opt" in
17219732Sume	--os|OS) OS=$var;;
18219732Sume	--with-cc|CC) CC=$var;;
19219732Sume	--debug) DEBUG=$var;;
20219732Sume	--disable-debug) DEBUG=no;;
21219732Sume	--enable-debug) DEBUG=yes;;
22282434Sgjb	--prefix) PREFIX=$var;;
23219732Sume	--sysconfdir) SYSCONFDIR=$var;;
24219732Sume	--bindir|--sbindir) SBINDIR=$var;;
25219732Sume	--libexecdir) LIBEXECDIR=$var;;
26219732Sume	--statedir|--localstatedir) STATEDIR=$var;;
27219732Sume	--dbdir) DBDIR=$var;;
28219732Sume	--rundir) RUNDIR=$var;;
29219732Sume	--mandir) MANDIR=$var;;
30219732Sume	--with-ccopts|CFLAGS) CFLAGS=$var;;
31219732Sume	CPPFLAGS) CPPFLAGS=$var;;
32219732Sume	--build) BUILD=$var;;
33219732Sume	--host) HOST=$var;;
34219732Sume	--target) TARGET=$var;;
35219732Sume	--libdir) LIBDIR=$var;;
36219732Sume	--restartcmd) RESTARTCMD=$var;;
37304515Spfg	--rcdir) RCDIR=$var;;
38304515Spfg	--statusarg) STATUSARG=$var;;
39219732Sume	--includedir) eval INCLUDEDIR="$INCLUDEDIR${INCLUDEDIR:+ }$var";;
40219732Sume	--datadir|--infodir) ;; # ignore autotools
41219732Sume	--disable-maintainer-mode|--disable-dependency-tracking) ;;
42219732Sume	--help) echo "See the README file for available options"; exit 0;;
43219732Sume	*) echo "$0: WARNING: unknown option $opt" >&2;;
44219732Sume	esac
45219732Sumedone
46219732Sume
47282434Sgjbif [ -z "$LIBEXECDIR" ]; then
48282434Sgjb	printf "Checking for directory /libexec ... "
49282434Sgjb	if [ -d /libexec ]; then
50282434Sgjb		echo "yes"
51282434Sgjb		LIBEXECDIR=$PREFIX/libexec/resolvconf
52282434Sgjb	else
53282434Sgjb		echo "no"
54282434Sgjb		LIBEXECDIR=$PREFIX/lib/resolvconf
55282434Sgjb	fi
56282434Sgjbfi
57282434Sgjbif [ -z "$RUNDIR" ]; then
58282434Sgjb	printf "Checking for directory /run ... "
59282434Sgjb	if [ -d /run ]; then
60282434Sgjb		echo "yes"
61282434Sgjb		RUNDIR=/run
62282434Sgjb	else
63282434Sgjb		echo "no"
64282434Sgjb		RUNDIR=/var/run
65282434Sgjb	fi
66282434Sgjbfi	
67282434Sgjb
68219732Sume: ${SED:=sed}
69219732Sume
70219732Sume: ${SYSCONFDIR:=$PREFIX/etc}
71219732Sume: ${SBINDIR:=$PREFIX/sbin}
72282434Sgjb: ${LIBEXECDIR:=$PREFIX/libexec/resolvconf}
73219732Sume: ${STATEDIR:=/var}
74219732Sume: ${RUNDIR:=$STATEDIR/run}
75219732Sume: ${MANDIR:=${PREFIX:-/usr}/share/man}
76219732Sume
77219732Sumeeval SYSCONFDIR="$SYSCONFDIR"
78219732Sumeeval SBINDIR="$SBINDIR"
79282434Sgjbeval LIBEXECDIR="$LIBEXECDIR"
80219732Sumeeval VARDIR="$RUNDIR/resolvconf"
81219732Sumeeval MANDIR="$MANDIR"
82219732Sume
83219732SumeCONFIG_MK=config.mk
84219732Sume
85219732Sumeif [ -z "$BUILD" ]; then
86282434Sgjb	# autoconf target triplet: cpu-vendor-os
87282434Sgjb	BUILD=$(uname -m)-unknown-$(uname -s | tr '[:upper:]' '[:lower:]')
88219732Sumefi
89282434Sgjb: ${HOST:=$BUILD}
90219732Sume
91219732Sumeif [ -z "$OS" ]; then
92282434Sgjb	echo "Deriving operating system from ... $HOST"
93282434Sgjb	# Derive OS from cpu-vendor-[kernel-]os
94282434Sgjb	CPU=${HOST%%-*}
95282434Sgjb	REST=${HOST#*-}
96219732Sume	if [ "$CPU" != "$REST" ]; then
97282434Sgjb		VENDOR=${REST%%-*}
98219732Sume		REST=${REST#*-}
99282434Sgjb		if [ "$VENDOR" != "$REST" ]; then
100282434Sgjb			# Use kernel if given, otherwise os
101219732Sume			OS=${REST%%-*}
102219732Sume		else
103219732Sume			# 2 tupple
104282434Sgjb			OS=$VENDOR
105282434Sgjb			VENDOR=
106219732Sume		fi
107219732Sume	fi
108282434Sgjb
109282434Sgjb        # Work with cpu-kernel-os, ie Debian
110282434Sgjb	case "$VENDOR" in
111282434Sgjb	linux*|kfreebsd*) OS=$VENDOR; VENDOR= ;;
112282434Sgjb	esac
113282434Sgjb	# Special case
114282434Sgjb	case "$OS" in
115282434Sgjb	gnu*) OS=hurd;; # No HURD support as yet
116282434Sgjb	esac
117219732Sumefi
118219732Sume
119219732Sumeecho "Configuring openresolv for ... $OS"
120219732Sumerm -rf $CONFIG_MK
121219732Sumeecho "# $OS" >$CONFIG_MK
122219732Sume
123313980Spfgcase "$OS" in
124313980Spfgfreebsd*)
125313980Spfg	# On FreeBSD, /etc/init.d/foo status returns 0 if foo is not enabled
126313980Spfg	# regardless of if it's not running.
127313980Spfg	# So we force onestatus to work around this silly bug.
128313980Spfg	if [ -z "$STATUSARG" ]; then
129313980Spfg		STATUSARG="onestatus"
130313980Spfg	fi
131313980Spfg	;;
132313980Spfglinux*)
133313980Spfg	# cksum does't support -a and netpgp is rare
134313980Spfg	echo "CKSUM=		sha256sum --tag" >>$CONFIG_MK
135313980Spfg	echo "PGP=		gpg2" >>$CONFIG_MK
136313980Spfg	;;
137313980Spfgesac
138304515Spfg
139304515Spfgfor x in SYSCONFDIR SBINDIR LIBEXECDIR VARDIR MANDIR RESTARTCMD RCDIR STATUSARG
140304515Spfgdo
141219732Sume	eval v=\$$x
142219732Sume	# Make files look nice for import
143219732Sume	l=$((10 - ${#x}))
144219732Sume	unset t
145219732Sume	[ $l -gt 3 ] && t="	"
146219732Sume	echo "$x=$t	$v" >>$CONFIG_MK
147219732Sumedone
148219732Sume
149219732Sumeecho
150219732Sumeecho "   SYSCONFDIR =		$SYSCONFDIR"
151219732Sumeecho "   SBINDIR =		$SBINDIR"
152219732Sumeecho "   LIBEXECDIR =		$LIBEXECDIR"
153219732Sumeecho "   VARDIR =		$RUNDIR"
154219732Sumeecho "   MANDIR =		$MANDIR"
155219732Sumeecho
156304515Spfgecho "   RESTARTCMD =		$RESTARTCMD"
157304515Spfgecho "   RCDIR =		$RCDIR"
158304515Spfgecho "   STATUSARG =		$STATUSARG"
159304515Spfgecho
160