#!/bin/sh
space=' '
tab=' '
nl='
'
IFS=" $nl"
usage="usage: mkpkg [--debug] [--flavor flavor] [--platform platform]"
debug=0
flavor=vanilla
while test $ case "$1" in
--debug)
set -x
debug=1
PPFLAGS="--debug${PPFLAGS+$space}${PPFLAGS}"
;;
--flavor=?*)
flavor=`echo "$1" | sed -n 's/^--flavor=\(.*\)/\1/p'`
PPVARS="${PPVARS}${PPVARS+$space}flavor=$flavor"
;;
--flavor)
if [ $ echo "$usage" 1>&2
exit 1
fi
flavor="$2"
PPVARS="${PPVARS}${PPVARS+$space}flavor=$flavor"
shift
;;
--platform=?*)
arg=`echo "$1" | sed -n 's/^--platform=\(.*\)/\1/p'`
PPFLAGS="${PPFLAGS}${PPFLAGS+$space}--platform $arg"
;;
--platform)
if [ $ echo "$usage" 1>&2
exit 1
fi
PPFLAGS="${PPFLAGS}${PPFLAGS+$space}--platform $2"
shift
;;
*)
configure_opts="${configure_opts}${configure_opts+$tab}$1"
;;
esac
shift
done
top_srcdir=`dirname $0`
platform=`$top_srcdir/pp --probe` || exit 1
osrelease=`echo "$platform" | sed -e 's/^[^0-9]*//' -e 's/-.*$//'`
prefix=/usr/local
case "$platform" in
*-s390*|*-sparc*|*-alpha*)
F_PIE=-fPIE
;;
*)
F_PIE=-fpie
;;
esac
case "$platform" in
hpux*)
if [ -z "$CC" -a -x /opt/ansic/bin/cc ]; then
CC=/opt/ansic/bin/cc; export CC
if [ -z "$CFLAGS" ]; then
CFLAGS=-O; export CFLAGS
fi
else
configure_opts="${configure_opts}${configure_opts+$tab}--disable-zlib"
fi
;;
esac
case "$platform" in
centos*|rhel*)
prefix=/usr
if [ $osrelease -ge 50 ]; then
export CFLAGS="$F_PIE" LDFLAGS="-pie"
configure_opts="${configure_opts}${configure_opts+$tab}--with-linux-audit"
fi
configure_opts="$configure_opts
--prefix=$prefix
--with-logging=syslog
--with-logfac=authpriv
--with-pam
--with-pam-login
--enable-zlib
--with-editor=/bin/vi
--with-env-editor
--with-ignore-dot
--with-tty-tickets
--with-ldap
--with-selinux
--with-passprompt=[sudo] password for %p: "
;;
sles*)
prefix=/usr
if [ $osrelease -ge 10 ]; then
export CFLAGS="$F_PIE" LDFLAGS="-pie"
if [ $osrelease -ge 11 ]; then
configure_opts="${configure_opts}${configure_opts+$tab}--with-selinux"
fi
fi
case "$platform" in
*64*) libexec=lib64;;
*) libexec=lib;;
esac
configure_opts="$configure_opts
--prefix=$prefix
--libexecdir=$prefix/$libexec/sudo
--with-logging=syslog
--with-logfac=auth
--with-all-insults
--with-ignore-dot
--with-tty-tickets
--enable-shell-sets-home
--with-sudoers-mode=0440
--with-pam
--enable-zlib
--with-ldap
--with-env-editor
--with-passprompt=%p\'s password: "
make_opts='docdir=$(datarootdir)/doc/packages/$(PACKAGE_TARNAME)'
;;
deb*|ubu*)
prefix=/usr
case "$platform" in
ubu*)
configure_opts="${configure_opts}${configure_opts+$tab}--enable-admin-flag${tab}--without-lecture"
;;
esac
if test "$flavor" = "ldap"; then
configure_opts="${configure_opts}${configure_opts+$tab}--with-ldap
--with-ldap-conf-file=/etc/sudo-ldap.conf"
fi
configure_opts="$configure_opts
--prefix=/usr
--with-all-insults
--with-exempt=sudo
--with-pam
--enable-zlib
--with-fqdn
--with-logging=syslog
--with-logfac=authpriv
--with-env-editor
--with-editor=/usr/bin/editor
--with-timeout=15
--with-password-timeout=0
--with-passprompt=[sudo] password for %p:
--with-timedir=/var/lib/sudo
--disable-root-mailer
--disable-setresuid
--with-sendmail=/usr/sbin/sendmail
--mandir=/usr/share/man
--libexecdir=/usr/lib/sudo
--with-secure-path=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin"
;;
*)
if test "$flavor" = "ldap"; then
configure_opts="${configure_opts}${configure_opts+$tab}--with-ldap"
fi
configure_opts="$configure_opts
--prefix=$prefix
--with-insults=disabled
--with-logging=syslog
--with-logfac=auth
--with-editor=/usr/bin/vim:/usr/bin/vi:/bin/vi
--with-env-editor"
;;
esac
OIFS="$IFS"
IFS=" $nl"
set -- $configure_opts $extra_opts
IFS="$OIFS"
if [ -r Makefile ]; then
make $make_opts distclean
fi
$top_srcdir/configure "$@" || exit 1
make $make_opts && make $make_opts PPFLAGS="$PPFLAGS" PPVARS="$PPVARS" package
test $debug -eq 0 && rm -rf destdir