|
Packit |
96c956 |
#!/bin/sh
|
|
Packit |
96c956 |
# =======================================================================
|
|
Packit |
96c956 |
#
|
|
Packit |
96c956 |
# chronyd/chronyc - Programs for keeping computer clocks accurate.
|
|
Packit |
96c956 |
#
|
|
Packit |
96c956 |
# Copyright (C) Richard P. Curnow 1997-2003
|
|
Packit |
96c956 |
# Copyright (C) Bryan Christianson 2016
|
|
Packit |
96c956 |
# Copyright (C) Miroslav Lichvar 2009, 2012-2018
|
|
Packit |
96c956 |
# Copyright (C) Stefan R. Filipek 2019
|
|
Packit |
96c956 |
#
|
|
Packit |
96c956 |
# =======================================================================
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
# This configure script determines the operating system type and version
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
# ======================================================================
|
|
Packit |
96c956 |
# FUNCTIONS
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
#{{{ test_code
|
|
Packit |
96c956 |
test_code () {
|
|
Packit |
96c956 |
name=$1
|
|
Packit |
96c956 |
headers=$2
|
|
Packit |
96c956 |
cflags=$3
|
|
Packit |
96c956 |
ldflags=$4
|
|
Packit |
96c956 |
code=$5
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
printf "%s" "Checking for $name : "
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
(
|
|
Packit |
96c956 |
echo "#include \"config.h\""
|
|
Packit |
96c956 |
for h in $headers; do
|
|
Packit |
96c956 |
echo "#include <$h>"
|
|
Packit |
96c956 |
done
|
|
Packit |
96c956 |
echo "int main(int argc, char **argv) {"
|
|
Packit |
96c956 |
echo "$code"
|
|
Packit |
96c956 |
echo "return 0; }"
|
|
Packit |
96c956 |
) > docheck.c
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
echo "docheck.c:" >> config.log
|
|
Packit |
96c956 |
cat docheck.c >> config.log
|
|
Packit |
96c956 |
echo $MYCC $MYCFLAGS $MYCPPFLAGS $cflags -o docheck docheck.c $ldflags \
|
|
Packit |
96c956 |
$MYLDFLAGS >> config.log
|
|
Packit |
96c956 |
$MYCC $MYCFLAGS $MYCPPFLAGS $cflags -o docheck docheck.c $ldflags \
|
|
Packit |
96c956 |
$MYLDFLAGS >> config.log 2>&1
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
if [ $? -eq 0 ]
|
|
Packit |
96c956 |
then
|
|
Packit |
96c956 |
echo "Yes"
|
|
Packit |
96c956 |
result=0
|
|
Packit |
96c956 |
else
|
|
Packit |
96c956 |
echo "No"
|
|
Packit |
96c956 |
result=1
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
rm -f docheck.c docheck
|
|
Packit |
96c956 |
echo >> config.log
|
|
Packit |
96c956 |
return $result
|
|
Packit |
96c956 |
}
|
|
Packit |
96c956 |
#}}}
|
|
Packit |
96c956 |
#{{{ usage
|
|
Packit |
96c956 |
usage () {
|
|
Packit |
96c956 |
cat <
|
|
Packit |
96c956 |
\`configure' configures this package to adapt to many kinds of systems.
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
Usage: ./configure [OPTION]...
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
Defaults for the options are specified in brackets.
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
Configuration:
|
|
Packit |
96c956 |
-h, --help display this help and exit
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
Installation directories:
|
|
Packit |
96c956 |
--prefix=PREFIX install architecture-independent files in PREFIX
|
|
Packit |
96c956 |
[/usr/local]
|
|
Packit |
96c956 |
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
|
|
Packit |
96c956 |
[PREFIX]
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
By default, \`make install' will install all the files in
|
|
Packit |
96c956 |
\`/usr/local/bin', \`/usr/local/lib' etc. You can specify
|
|
Packit |
96c956 |
an installation prefix other than \`/usr/local' using \`--prefix',
|
|
Packit |
96c956 |
for instance \`--prefix=$HOME'.
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
For better control, use the options below.
|
|
Packit |
96c956 |
--disable-readline Disable line editing support
|
|
Packit |
96c956 |
--without-readline Don't use GNU readline even if it is available
|
|
Packit |
96c956 |
--without-editline Don't use editline even if it is available
|
|
Packit |
96c956 |
--with-readline-includes=DIR Specify where readline include directory is
|
|
Packit |
96c956 |
--with-readline-library=DIR Specify where readline lib directory is
|
|
Packit |
96c956 |
--with-ncurses-library=DIR Specify where ncurses lib directory is
|
|
Packit |
96c956 |
--disable-sechash Disable support for hashes other than MD5
|
|
Packit |
96c956 |
--without-nettle Don't use nettle even if it is available
|
|
Packit |
96c956 |
--without-nss Don't use NSS even if it is available
|
|
Packit |
96c956 |
--without-tomcrypt Don't use libtomcrypt even if it is available
|
|
Packit |
96c956 |
--disable-cmdmon Disable command and monitoring support
|
|
Packit |
96c956 |
--disable-ntp Disable NTP support
|
|
Packit |
96c956 |
--disable-refclock Disable reference clock support
|
|
Packit |
96c956 |
--disable-phc Disable PHC refclock driver
|
|
Packit |
96c956 |
--disable-pps Disable PPS refclock driver
|
|
Packit |
96c956 |
--disable-ipv6 Disable IPv6 support
|
|
Packit |
96c956 |
--disable-rtc Don't include RTC even on Linux
|
|
Packit |
96c956 |
--disable-privdrop Disable support for dropping root privileges
|
|
Packit |
96c956 |
--without-libcap Don't use libcap even if it is available
|
|
Packit |
96c956 |
--enable-scfilter Enable support for system call filtering
|
|
Packit |
96c956 |
--without-seccomp Don't use seccomp even if it is available
|
|
Packit |
96c956 |
--disable-asyncdns Disable asynchronous name resolving
|
|
Packit |
96c956 |
--disable-forcednsretry Don't retry on permanent DNS error
|
|
Packit |
96c956 |
--without-clock-gettime Don't use clock_gettime() even if it is available
|
|
Packit |
96c956 |
--disable-timestamping Disable support for SW/HW timestamping
|
|
Packit |
96c956 |
--enable-ntp-signd Enable support for MS-SNTP authentication in Samba
|
|
Packit |
96c956 |
--with-ntp-era=SECONDS Specify earliest assumed NTP time in seconds
|
|
Packit |
96c956 |
since 1970-01-01 [50*365 days ago]
|
|
Packit |
96c956 |
--with-user=USER Specify default chronyd user [root]
|
|
Packit |
96c956 |
--with-hwclockfile=PATH Specify default path to hwclock(8) adjtime file
|
|
Packit |
96c956 |
--with-pidfile=PATH Specify default pidfile [/var/run/chrony/chronyd.pid]
|
|
Packit |
96c956 |
--with-rtcdevice=PATH Specify default path to RTC device [/dev/rtc]
|
|
Packit |
96c956 |
--with-sendmail=PATH Path to sendmail binary [/usr/lib/sendmail]
|
|
Packit |
96c956 |
--enable-debug Enable debugging support
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
Fine tuning of the installation directories:
|
|
Packit |
96c956 |
--sysconfdir=DIR chrony.conf location [/etc]
|
|
Packit |
96c956 |
--bindir=DIR user executables [EPREFIX/bin]
|
|
Packit |
96c956 |
--sbindir=DIR system admin executables [EPREFIX/sbin]
|
|
Packit |
96c956 |
--datarootdir=DIR data root [PREFIX/share]
|
|
Packit |
96c956 |
--mandir=DIR man documentation [DATAROOTDIR/man]
|
|
Packit |
96c956 |
--docdir=DIR documentation root [DATAROOTDIR/doc/chrony]
|
|
Packit |
96c956 |
--localstatedir=DIR modifiable single-machine data [/var]
|
|
Packit |
96c956 |
--chronyrundir=DIR location for chrony sockets [LOCALSTATEDIR/run/chrony]
|
|
Packit |
96c956 |
--chronyvardir=DIR location for chrony data [LOCALSTATEDIR/lib/chrony]
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
Overriding system detection when cross-compiling:
|
|
Packit |
96c956 |
--host-system=OS Specify system name (uname -s)
|
|
Packit |
96c956 |
--host-release=REL Specify system release (uname -r)
|
|
Packit |
96c956 |
--host-machine=CPU Specify machine (uname -m)
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
Some influential environment variables:
|
|
Packit |
96c956 |
CC C compiler command
|
|
Packit |
96c956 |
CFLAGS C compiler flags
|
|
Packit |
96c956 |
CPPFLAGS C preprocessor flags, e.g. -I<include dir> if you have
|
|
Packit |
96c956 |
headers in a nonstandard directory <include dir>
|
|
Packit |
96c956 |
LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
|
|
Packit |
96c956 |
nonstandard directory <lib dir>
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
Use these variables to override the choices made by \`configure' or to help
|
|
Packit |
96c956 |
it to find libraries and programs with nonstandard names/locations.
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
EOF
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
}
|
|
Packit |
96c956 |
#}}}
|
|
Packit |
96c956 |
#{{{
|
|
Packit |
96c956 |
add_def () {
|
|
Packit |
96c956 |
if [ "x$2" = "x" ]; then
|
|
Packit |
96c956 |
echo "#define $1 1" >> config.h
|
|
Packit |
96c956 |
else
|
|
Packit |
96c956 |
echo "#define $1 $2" >> config.h
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
}
|
|
Packit |
96c956 |
#}}}
|
|
Packit |
96c956 |
#{{{ pkg_config
|
|
Packit |
96c956 |
pkg_config () {
|
|
Packit |
96c956 |
type pkg-config > /dev/null 2> /dev/null || return 1
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
pkg-config $@ 2> /dev/null
|
|
Packit |
96c956 |
}
|
|
Packit |
96c956 |
#}}}
|
|
Packit |
96c956 |
#{{{ get_features
|
|
Packit |
96c956 |
get_features () {
|
|
Packit |
96c956 |
ff=1
|
|
Packit |
96c956 |
for f; do
|
|
Packit |
96c956 |
if [ "$ff" = "0" ]; then
|
|
Packit |
96c956 |
printf " "
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
if grep "define FEAT_$f" config.h > /dev/null; then
|
|
Packit |
96c956 |
printf "%s" "+$f"
|
|
Packit |
96c956 |
else
|
|
Packit |
96c956 |
printf "%s" "-$f"
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
ff=0
|
|
Packit |
96c956 |
done
|
|
Packit |
96c956 |
}
|
|
Packit |
96c956 |
#}}}
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
# ======================================================================
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
OPERATINGSYSTEM=`uname -s`
|
|
Packit |
96c956 |
VERSION=`uname -r`
|
|
Packit |
96c956 |
MACHINE=`uname -m`
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
EXTRA_LIBS=""
|
|
Packit |
96c956 |
EXTRA_CLI_LIBS=""
|
|
Packit |
96c956 |
EXTRA_OBJECTS=""
|
|
Packit |
96c956 |
EXTRA_DEFS=""
|
|
Packit |
96c956 |
SYSDEFS=""
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
feat_debug=0
|
|
Packit |
96c956 |
feat_cmdmon=1
|
|
Packit |
96c956 |
feat_ntp=1
|
|
Packit |
96c956 |
feat_refclock=1
|
|
Packit |
96c956 |
feat_readline=1
|
|
Packit |
96c956 |
try_readline=1
|
|
Packit |
96c956 |
try_editline=1
|
|
Packit |
96c956 |
feat_sechash=1
|
|
Packit |
96c956 |
try_nettle=1
|
|
Packit |
96c956 |
try_nss=1
|
|
Packit |
96c956 |
try_tomcrypt=1
|
|
Packit |
96c956 |
feat_rtc=1
|
|
Packit |
96c956 |
try_rtc=0
|
|
Packit |
96c956 |
feat_droproot=1
|
|
Packit |
96c956 |
try_libcap=-1
|
|
Packit |
96c956 |
try_clockctl=0
|
|
Packit |
96c956 |
feat_scfilter=0
|
|
Packit |
96c956 |
try_seccomp=-1
|
|
Packit |
96c956 |
priv_ops=""
|
|
Packit |
96c956 |
readline_lib=""
|
|
Packit |
96c956 |
readline_inc=""
|
|
Packit |
96c956 |
ncurses_lib=""
|
|
Packit |
96c956 |
feat_ipv6=1
|
|
Packit |
96c956 |
feat_phc=1
|
|
Packit |
96c956 |
try_phc=0
|
|
Packit |
96c956 |
feat_pps=1
|
|
Packit |
96c956 |
try_setsched=0
|
|
Packit |
96c956 |
try_lockmem=0
|
|
Packit |
96c956 |
feat_asyncdns=1
|
|
Packit |
96c956 |
feat_forcednsretry=1
|
|
Packit |
96c956 |
try_clock_gettime=1
|
|
Packit |
96c956 |
try_recvmmsg=1
|
|
Packit |
96c956 |
feat_timestamping=1
|
|
Packit |
96c956 |
try_timestamping=0
|
|
Packit |
96c956 |
feat_ntp_signd=0
|
|
Packit |
96c956 |
ntp_era_split=""
|
|
Packit |
96c956 |
use_pthread=0
|
|
Packit |
96c956 |
default_user="root"
|
|
Packit |
96c956 |
default_hwclockfile=""
|
|
Packit |
96c956 |
default_pidfile="/var/run/chrony/chronyd.pid"
|
|
Packit |
96c956 |
default_rtcdevice="/dev/rtc"
|
|
Packit |
96c956 |
mail_program="/usr/lib/sendmail"
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
for option
|
|
Packit |
96c956 |
do
|
|
Packit |
96c956 |
case "$option" in
|
|
Packit |
96c956 |
--enable-debug )
|
|
Packit |
96c956 |
feat_debug=1
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
--disable-readline )
|
|
Packit |
96c956 |
feat_readline=0
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
--without-readline )
|
|
Packit |
96c956 |
try_readline=0
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
--without-editline )
|
|
Packit |
96c956 |
try_editline=0
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
--with-readline-library=* )
|
|
Packit |
96c956 |
readline_lib=-L`echo $option | sed -e 's/^.*=//;'`
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
--with-readline-includes=* )
|
|
Packit |
96c956 |
readline_inc=-I`echo $option | sed -e 's/^.*=//;'`
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
--with-ncurses-library=* )
|
|
Packit |
96c956 |
ncurses_lib=-L`echo $option | sed -e 's/^.*=//;'`
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
--prefix=* | --install_prefix=* )
|
|
Packit |
96c956 |
SETPREFIX=`echo $option | sed -e 's/[^=]*=//;'`
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
--exec-prefix=* )
|
|
Packit |
96c956 |
SETEPREFIX=`echo $option | sed -e 's/[^=]*=//;'`
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
--sysconfdir=* )
|
|
Packit |
96c956 |
SETSYSCONFDIR=`echo $option | sed -e 's/^.*=//;'`
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
--bindir=* )
|
|
Packit |
96c956 |
SETBINDIR=`echo $option | sed -e 's/^.*=//;'`
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
--sbindir=* )
|
|
Packit |
96c956 |
SETSBINDIR=`echo $option | sed -e 's/^.*=//;'`
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
--datarootdir=* )
|
|
Packit |
96c956 |
SETDATAROOTDIR=`echo $option | sed -e 's/^.*=//;'`
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
--mandir=* )
|
|
Packit |
96c956 |
SETMANDIR=`echo $option | sed -e 's/^.*=//;'`
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
--docdir=* )
|
|
Packit |
96c956 |
SETDOCDIR=`echo $option | sed -e 's/^.*=//;'`
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
--localstatedir=* )
|
|
Packit |
96c956 |
SETLOCALSTATEDIR=`echo $option | sed -e 's/^.*=//;'`
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
--chronyrundir=* | --chronysockdir=* )
|
|
Packit |
96c956 |
SETCHRONYRUNDIR=`echo $option | sed -e 's/^.*=//;'`
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
--chronyvardir=* )
|
|
Packit |
96c956 |
SETCHRONYVARDIR=`echo $option | sed -e 's/^.*=//;'`
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
--disable-cmdmon)
|
|
Packit |
96c956 |
feat_cmdmon=0
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
--disable-ntp)
|
|
Packit |
96c956 |
feat_ntp=0
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
--disable-refclock)
|
|
Packit |
96c956 |
feat_refclock=0
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
--disable-rtc)
|
|
Packit |
96c956 |
feat_rtc=0
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
--disable-ipv6)
|
|
Packit |
96c956 |
feat_ipv6=0
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
--disable-phc)
|
|
Packit |
96c956 |
feat_phc=0
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
--disable-pps)
|
|
Packit |
96c956 |
feat_pps=0
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
--disable-privdrop)
|
|
Packit |
96c956 |
feat_droproot=0
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
--without-libcap|--disable-linuxcaps)
|
|
Packit |
96c956 |
try_libcap=0
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
--enable-scfilter)
|
|
Packit |
96c956 |
feat_scfilter=1
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
--disable-scfilter)
|
|
Packit |
96c956 |
feat_scfilter=0
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
--without-seccomp)
|
|
Packit |
96c956 |
try_seccomp=0
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
--disable-asyncdns)
|
|
Packit |
96c956 |
feat_asyncdns=0
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
--disable-forcednsretry)
|
|
Packit |
96c956 |
feat_forcednsretry=0
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
--without-clock-gettime)
|
|
Packit |
96c956 |
try_clock_gettime=0
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
--disable-timestamping)
|
|
Packit |
96c956 |
feat_timestamping=0
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
--enable-ntp-signd)
|
|
Packit |
96c956 |
feat_ntp_signd=1
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
--with-ntp-era=* )
|
|
Packit |
96c956 |
ntp_era_split=`echo $option | sed -e 's/^.*=//;'`
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
--with-user=* )
|
|
Packit |
96c956 |
default_user=`echo $option | sed -e 's/^.*=//;'`
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
--with-hwclockfile=* )
|
|
Packit |
96c956 |
default_hwclockfile=`echo $option | sed -e 's/^.*=//;'`
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
--with-pidfile=* )
|
|
Packit |
96c956 |
default_pidfile=`echo $option | sed -e 's/^.*=//;'`
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
--with-rtcdevice=* )
|
|
Packit |
96c956 |
default_rtcdevice=`echo $option | sed -e 's/^.*=//;'`
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
--with-sendmail=* )
|
|
Packit |
96c956 |
mail_program=`echo $option | sed -e 's/^.*=//;'`
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
--disable-sechash )
|
|
Packit |
96c956 |
feat_sechash=0
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
--without-nettle )
|
|
Packit |
96c956 |
try_nettle=0
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
--without-nss )
|
|
Packit |
96c956 |
try_nss=0
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
--without-tomcrypt )
|
|
Packit |
96c956 |
try_tomcrypt=0
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
--host-system=* )
|
|
Packit |
96c956 |
OPERATINGSYSTEM=`echo $option | sed -e 's/^.*=//;'`
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
--host-release=* )
|
|
Packit |
96c956 |
VERSION=`echo $option | sed -e 's/^.*=//;'`
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
--host-machine=* )
|
|
Packit |
96c956 |
MACHINE=`echo $option | sed -e 's/^.*=//;'`
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
--help | -h )
|
|
Packit |
96c956 |
usage
|
|
Packit |
96c956 |
exit 0
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
* )
|
|
Packit |
96c956 |
echo "Unrecognized option : " $option
|
|
Packit |
96c956 |
esac
|
|
Packit |
96c956 |
done
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
rm -f config.h config.log
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
SYSTEM=${OPERATINGSYSTEM}-${MACHINE}
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
case $OPERATINGSYSTEM in
|
|
Packit |
96c956 |
Linux)
|
|
Packit |
96c956 |
EXTRA_OBJECTS="sys_generic.o sys_linux.o sys_timex.o sys_posix.o"
|
|
Packit |
96c956 |
[ $try_libcap != "0" ] && try_libcap=1
|
|
Packit |
96c956 |
try_rtc=1
|
|
Packit |
96c956 |
[ $try_seccomp != "0" ] && try_seccomp=1
|
|
Packit |
96c956 |
try_timestamping=1
|
|
Packit |
96c956 |
try_setsched=1
|
|
Packit |
96c956 |
try_lockmem=1
|
|
Packit |
96c956 |
try_phc=1
|
|
Packit |
96c956 |
add_def LINUX
|
|
Packit |
96c956 |
echo "Configuring for " $SYSTEM
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
FreeBSD)
|
|
Packit |
96c956 |
# recvmmsg() seems to be broken on FreeBSD 11.0 and it's just
|
|
Packit |
96c956 |
# a wrapper around recvmsg()
|
|
Packit |
96c956 |
try_recvmmsg=0
|
|
Packit |
96c956 |
EXTRA_OBJECTS="sys_generic.o sys_netbsd.o sys_timex.o sys_posix.o"
|
|
Packit |
96c956 |
try_setsched=1
|
|
Packit |
96c956 |
try_lockmem=1
|
|
Packit |
96c956 |
add_def FREEBSD
|
|
Packit |
96c956 |
if [ $feat_droproot = "1" ]; then
|
|
Packit |
96c956 |
add_def FEAT_PRIVDROP
|
|
Packit |
96c956 |
priv_ops="ADJUSTTIME ADJUSTTIMEX SETTIME BINDSOCKET"
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
echo "Configuring for $SYSTEM"
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
NetBSD)
|
|
Packit |
96c956 |
EXTRA_OBJECTS="sys_generic.o sys_netbsd.o sys_timex.o sys_posix.o"
|
|
Packit |
96c956 |
try_clockctl=1
|
|
Packit |
96c956 |
try_setsched=1
|
|
Packit |
96c956 |
try_lockmem=1
|
|
Packit |
96c956 |
add_def NETBSD
|
|
Packit |
96c956 |
echo "Configuring for $SYSTEM"
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
Darwin)
|
|
Packit |
96c956 |
EXTRA_OBJECTS="sys_macosx.o"
|
|
Packit |
96c956 |
EXTRA_LIBS="-lresolv"
|
|
Packit |
96c956 |
EXTRA_CLI_LIBS="-lresolv"
|
|
Packit |
96c956 |
add_def MACOSX
|
|
Packit |
96c956 |
if [ $feat_droproot = "1" ]; then
|
|
Packit |
96c956 |
add_def FEAT_PRIVDROP
|
|
Packit |
96c956 |
priv_ops="ADJUSTTIME SETTIME BINDSOCKET"
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
major=`echo $VERSION | cut -d. -f1`
|
|
Packit |
96c956 |
# ntp_adjtime is not available in macOS 10.12 (Darwin 16.x.x) and earlier
|
|
Packit |
96c956 |
if [ $major -gt "16" ]; then
|
|
Packit |
96c956 |
add_def HAVE_MACOS_SYS_TIMEX
|
|
Packit |
96c956 |
EXTRA_OBJECTS="$EXTRA_OBJECTS sys_generic.o sys_netbsd.o sys_timex.o"
|
|
Packit |
96c956 |
if [ $feat_droproot = "1" ]; then
|
|
Packit |
96c956 |
priv_ops="$priv_ops ADJUSTTIMEX"
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
echo "Configuring for macOS (" $SYSTEM "macOS version" $VERSION ")"
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
SunOS)
|
|
Packit |
96c956 |
EXTRA_OBJECTS="sys_generic.o sys_solaris.o sys_timex.o sys_posix.o"
|
|
Packit |
96c956 |
EXTRA_LIBS="-lsocket -lnsl -lresolv"
|
|
Packit |
96c956 |
EXTRA_CLI_LIBS="-lsocket -lnsl -lresolv"
|
|
Packit |
96c956 |
try_setsched=1
|
|
Packit |
96c956 |
try_lockmem=1
|
|
Packit |
96c956 |
add_def SOLARIS
|
|
Packit |
96c956 |
# These are needed to have msg_control in struct msghdr
|
|
Packit |
96c956 |
add_def __EXTENSIONS__
|
|
Packit |
96c956 |
add_def _XOPEN_SOURCE 1
|
|
Packit |
96c956 |
add_def _XOPEN_SOURCE_EXTENDED 1
|
|
Packit |
96c956 |
if [ $feat_droproot = "1" ]; then
|
|
Packit |
96c956 |
add_def FEAT_PRIVDROP
|
|
Packit |
96c956 |
priv_ops="ADJUSTTIMEX SETTIME BINDSOCKET"
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
echo "Configuring for Solaris (" $SYSTEM "SunOS version" $VERSION ")"
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
* )
|
|
Packit |
96c956 |
echo "error: $SYSTEM is not supported (yet?)"
|
|
Packit |
96c956 |
exit 1
|
|
Packit |
96c956 |
;;
|
|
Packit |
96c956 |
esac
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
if [ $feat_debug = "1" ]; then
|
|
Packit |
96c956 |
add_def FEAT_DEBUG
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
add_def DEBUG $feat_debug
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
if [ $feat_cmdmon = "1" ]; then
|
|
Packit |
96c956 |
add_def FEAT_CMDMON
|
|
Packit |
96c956 |
EXTRA_OBJECTS="$EXTRA_OBJECTS cmdmon.o manual.o pktlength.o"
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
if [ $feat_ntp = "1" ]; then
|
|
Packit |
96c956 |
add_def FEAT_NTP
|
|
Packit |
96c956 |
EXTRA_OBJECTS="$EXTRA_OBJECTS ntp_core.o ntp_io.o ntp_sources.o"
|
|
Packit |
96c956 |
if [ $feat_ntp_signd = "1" ]; then
|
|
Packit |
96c956 |
add_def FEAT_SIGND
|
|
Packit |
96c956 |
EXTRA_OBJECTS="$EXTRA_OBJECTS ntp_signd.o"
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
else
|
|
Packit |
96c956 |
feat_asyncdns=0
|
|
Packit |
96c956 |
feat_timestamping=0
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
if [ "$feat_cmdmon" = "1" ] || [ $feat_ntp = "1" ]; then
|
|
Packit |
96c956 |
EXTRA_OBJECTS="$EXTRA_OBJECTS addrfilt.o clientlog.o keys.o nameserv.o"
|
|
Packit |
96c956 |
else
|
|
Packit |
96c956 |
feat_ipv6=0
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
if [ $feat_refclock = "1" ]; then
|
|
Packit |
96c956 |
add_def FEAT_REFCLOCK
|
|
Packit |
96c956 |
EXTRA_OBJECTS="$EXTRA_OBJECTS refclock.o refclock_phc.o refclock_pps.o refclock_shm.o refclock_sock.o"
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
MYCC="$CC"
|
|
Packit |
96c956 |
MYCFLAGS="$CFLAGS"
|
|
Packit |
96c956 |
MYCPPFLAGS="$CPPFLAGS"
|
|
Packit |
96c956 |
MYLDFLAGS="$LDFLAGS"
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
if [ "x$MYCC" = "x" ]; then
|
|
Packit |
96c956 |
for cc in gcc clang cc ""; do
|
|
Packit |
96c956 |
if [ "x$cc" = "x" ]; then
|
|
Packit |
96c956 |
echo "error: no C compiler found"
|
|
Packit |
96c956 |
exit 1
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
MYCC=$cc
|
|
Packit |
96c956 |
if test_code "$MYCC" '' '' '' ''; then
|
|
Packit |
96c956 |
break
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
done
|
|
Packit |
96c956 |
else
|
|
Packit |
96c956 |
if ! test_code "$MYCC" '' '' '' ''; then
|
|
Packit |
96c956 |
echo "error: C compiler $MYCC cannot create executables"
|
|
Packit |
96c956 |
exit 1
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
if [ "x$MYCFLAGS" = "x" ]; then
|
|
Packit |
96c956 |
MYCFLAGS="-O2 -g"
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
TESTCFLAGS="-D_FORTIFY_SOURCE=2 -fPIE"
|
|
Packit |
96c956 |
TESTLDFLAGS="-pie -Wl,-z,relro,-z,now"
|
|
Packit |
96c956 |
if test_code 'hardening compiler options' '' "$TESTCFLAGS" "$TESTLDFLAGS" ''; then
|
|
Packit |
96c956 |
MYCFLAGS="$MYCFLAGS $TESTCFLAGS"
|
|
Packit |
96c956 |
MYLDFLAGS="$MYLDFLAGS $TESTLDFLAGS"
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
TESTCFLAGS="-fstack-protector-strong --param=ssp-buffer-size=4"
|
|
Packit |
96c956 |
if test_code '-fstack-protector-strong' '' "$TESTCFLAGS" '' ''; then
|
|
Packit |
96c956 |
MYCFLAGS="$MYCFLAGS $TESTCFLAGS"
|
|
Packit |
96c956 |
else
|
|
Packit |
96c956 |
TESTCFLAGS="-fstack-protector --param=ssp-buffer-size=4"
|
|
Packit |
96c956 |
if test_code '-fstack-protector' '' "$TESTCFLAGS" '' ''; then
|
|
Packit |
96c956 |
MYCFLAGS="$MYCFLAGS $TESTCFLAGS"
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
if [ "x$MYCC" = "xgcc" ] || [ "x$MYCC" = "xclang" ]; then
|
|
Packit |
96c956 |
MYCFLAGS="$MYCFLAGS -Wmissing-prototypes -Wall"
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
if test_code '64-bit time_t' 'time.h' '' '' '
|
|
Packit |
96c956 |
char x[sizeof(time_t) > 4 ? 1 : -1] = {0};
|
|
Packit |
96c956 |
return x[0];'
|
|
Packit |
96c956 |
then
|
|
Packit |
96c956 |
add_def HAVE_LONG_TIME_T 1
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
if [ "x$ntp_era_split" != "x" ]; then
|
|
Packit |
96c956 |
split_seconds=$ntp_era_split
|
|
Packit |
96c956 |
split_days=0
|
|
Packit |
96c956 |
else
|
|
Packit |
96c956 |
if [ "x$SOURCE_DATE_EPOCH" != "x" ]; then
|
|
Packit |
96c956 |
split_seconds=$SOURCE_DATE_EPOCH
|
|
Packit |
96c956 |
else
|
|
Packit |
96c956 |
split_seconds=`date '+%s'`
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
if [ "x$split_seconds" = "x" ]; then
|
|
Packit |
96c956 |
echo "error: could not get current time, --with-ntp-era option is needed"
|
|
Packit |
96c956 |
exit 1
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
split_days=$((50 * 365))
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
add_def NTP_ERA_SPLIT "(${split_seconds}LL - $split_days * 24 * 3600)"
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
date_format='+%Y-%m-%dT%H:%M:%SZ'
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
# Print the full NTP interval if a suitable date is found
|
|
Packit |
96c956 |
if [ "x`date -u -d '1970-01-01 UTC 9 days ago 5 seconds 3 seconds' \
|
|
Packit |
96c956 |
$date_format 2> /dev/null`" = "x1969-12-23T00:00:08Z" ]
|
|
Packit |
96c956 |
then
|
|
Packit |
96c956 |
time1="`date -u -d "1970-01-01 UTC $split_days days ago $split_seconds seconds" \
|
|
Packit |
96c956 |
$date_format`"
|
|
Packit |
96c956 |
time2="`date -u -d "1970-01-01 UTC $split_days days ago $split_seconds seconds 4294967296 seconds" \
|
|
Packit |
96c956 |
$date_format`"
|
|
Packit |
96c956 |
echo "NTP time mapped to $time1/$time2"
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
MATHCODE='return (int) pow(2.0, log(sqrt((double)argc)));'
|
|
Packit |
96c956 |
if test_code 'math' 'math.h' '' '' "$MATHCODE"; then
|
|
Packit |
96c956 |
LIBS=""
|
|
Packit |
96c956 |
else
|
|
Packit |
96c956 |
if test_code 'math in -lm' 'math.h' '' '-lm' "$MATHCODE"; then
|
|
Packit |
96c956 |
LIBS="-lm"
|
|
Packit |
96c956 |
else
|
|
Packit |
96c956 |
echo "error: could not compile/link a program which uses sqrt(), log(), pow()"
|
|
Packit |
96c956 |
exit 1
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
if test_code 'struct in_pktinfo' 'sys/socket.h netinet/in.h' '' '' '
|
|
Packit |
96c956 |
struct in_pktinfo ipi;
|
|
Packit |
96c956 |
return sizeof (ipi.ipi_spec_dst.s_addr) + IP_PKTINFO;'
|
|
Packit |
96c956 |
then
|
|
Packit |
96c956 |
add_def HAVE_IN_PKTINFO
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
if [ $feat_ipv6 = "1" ] && \
|
|
Packit |
96c956 |
test_code 'IPv6 support' 'arpa/inet.h sys/socket.h netinet/in.h' '' "$EXTRA_LIBS" '
|
|
Packit |
96c956 |
struct sockaddr_in6 n;
|
|
Packit |
96c956 |
char p[100];
|
|
Packit |
96c956 |
n.sin6_addr = in6addr_any;
|
|
Packit |
96c956 |
return !inet_ntop(AF_INET6, &n.sin6_addr.s6_addr, p, sizeof(p));'
|
|
Packit |
96c956 |
then
|
|
Packit |
96c956 |
add_def FEAT_IPV6
|
|
Packit |
96c956 |
if test_code 'struct in6_pktinfo' 'sys/socket.h netinet/in.h' '' '' '
|
|
Packit |
96c956 |
return sizeof (struct in6_pktinfo) + IPV6_PKTINFO;'
|
|
Packit |
96c956 |
then
|
|
Packit |
96c956 |
add_def HAVE_IN6_PKTINFO
|
|
Packit |
96c956 |
else
|
|
Packit |
96c956 |
if test_code 'struct in6_pktinfo with _GNU_SOURCE' 'sys/socket.h netinet/in.h' \
|
|
Packit |
96c956 |
'-D_GNU_SOURCE' '' 'return sizeof (struct in6_pktinfo) + IPV6_PKTINFO;'
|
|
Packit |
96c956 |
then
|
|
Packit |
96c956 |
add_def _GNU_SOURCE
|
|
Packit |
96c956 |
add_def HAVE_IN6_PKTINFO
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
if [ $try_clock_gettime = "1" ]; then
|
|
Packit |
96c956 |
if test_code 'clock_gettime()' 'time.h' '' '' \
|
|
Packit |
96c956 |
'clock_gettime(CLOCK_REALTIME, NULL);'
|
|
Packit |
96c956 |
then
|
|
Packit |
96c956 |
add_def HAVE_CLOCK_GETTIME
|
|
Packit |
96c956 |
else
|
|
Packit |
96c956 |
if test_code 'clock_gettime() in -lrt' 'time.h' '' '-lrt' \
|
|
Packit |
96c956 |
'clock_gettime(CLOCK_REALTIME, NULL);'
|
|
Packit |
96c956 |
then
|
|
Packit |
96c956 |
add_def HAVE_CLOCK_GETTIME
|
|
Packit |
96c956 |
EXTRA_LIBS="$EXTRA_LIBS -lrt"
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
if test_code 'getaddrinfo()' 'sys/types.h sys/socket.h netdb.h' '' "$EXTRA_LIBS" \
|
|
Packit |
96c956 |
'return getaddrinfo(0, 0, 0, 0);'
|
|
Packit |
96c956 |
then
|
|
Packit |
96c956 |
add_def HAVE_GETADDRINFO
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
if [ $feat_asyncdns = "1" ] && \
|
|
Packit |
96c956 |
test_code 'pthread' 'pthread.h' '-pthread' '' \
|
|
Packit |
96c956 |
'return (int)pthread_create((void *)1, NULL, (void *)1, NULL);'
|
|
Packit |
96c956 |
then
|
|
Packit |
96c956 |
add_def FEAT_ASYNCDNS
|
|
Packit |
96c956 |
add_def USE_PTHREAD_ASYNCDNS
|
|
Packit |
96c956 |
EXTRA_OBJECTS="$EXTRA_OBJECTS nameserv_async.o"
|
|
Packit |
96c956 |
use_pthread=1
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
if test_code 'arc4random_buf()' 'stdlib.h' '' '' 'arc4random_buf(NULL, 0);'; then
|
|
Packit |
96c956 |
add_def HAVE_ARC4RANDOM
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
if test_code 'getrandom()' 'stdlib.h sys/random.h' '' '' \
|
|
Packit |
96c956 |
'return getrandom(NULL, 256, 0);'; then
|
|
Packit |
96c956 |
add_def HAVE_GETRANDOM
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
RECVMMSG_CODE='
|
|
Packit |
96c956 |
struct mmsghdr hdr;
|
|
Packit |
96c956 |
return !recvmmsg(0, &hdr, 1, MSG_DONTWAIT, 0);'
|
|
Packit |
96c956 |
if [ $try_recvmmsg = "1" ]; then
|
|
Packit |
96c956 |
if test_code 'recvmmsg()' 'sys/socket.h' '' "$EXTRA_LIBS" "$RECVMMSG_CODE"; then
|
|
Packit |
96c956 |
add_def HAVE_RECVMMSG
|
|
Packit |
96c956 |
else
|
|
Packit |
96c956 |
if test_code 'recvmmsg() with _GNU_SOURCE' 'sys/socket.h' '-D_GNU_SOURCE' \
|
|
Packit |
96c956 |
"$EXTRA_LIBS" "$RECVMMSG_CODE"
|
|
Packit |
96c956 |
then
|
|
Packit |
96c956 |
add_def _GNU_SOURCE
|
|
Packit |
96c956 |
add_def HAVE_RECVMMSG
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
if [ $feat_timestamping = "1" ] && [ $try_timestamping = "1" ] &&
|
|
Packit |
96c956 |
test_code 'SW/HW timestamping' 'sys/types.h sys/socket.h linux/net_tstamp.h
|
|
Packit |
96c956 |
linux/errqueue.h linux/ptp_clock.h' '' '' '
|
|
Packit |
96c956 |
int val = SOF_TIMESTAMPING_SOFTWARE | SOF_TIMESTAMPING_RX_SOFTWARE |
|
|
Packit |
96c956 |
SOF_TIMESTAMPING_RAW_HARDWARE | SOF_TIMESTAMPING_OPT_CMSG;
|
|
Packit |
96c956 |
return sizeof (struct scm_timestamping) + SCM_TSTAMP_SND + PTP_SYS_OFFSET +
|
|
Packit |
96c956 |
setsockopt(0, SOL_SOCKET, SO_SELECT_ERR_QUEUE + SO_TIMESTAMPING,
|
|
Packit |
96c956 |
&val, sizeof (val));'
|
|
Packit |
96c956 |
then
|
|
Packit |
96c956 |
add_def HAVE_LINUX_TIMESTAMPING
|
|
Packit |
96c956 |
EXTRA_OBJECTS="$EXTRA_OBJECTS hwclock.o ntp_io_linux.o"
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
if test_code 'other timestamping options' \
|
|
Packit |
96c956 |
'sys/types.h sys/socket.h linux/net_tstamp.h' '' '' '
|
|
Packit |
96c956 |
struct scm_ts_pktinfo pktinfo;
|
|
Packit |
96c956 |
pktinfo.if_index = pktinfo.pkt_length = 0;
|
|
Packit |
96c956 |
return pktinfo.if_index + pktinfo.pkt_length + HWTSTAMP_FILTER_NTP_ALL +
|
|
Packit |
96c956 |
SCM_TIMESTAMPING_PKTINFO +
|
|
Packit |
96c956 |
SOF_TIMESTAMPING_OPT_PKTINFO + SOF_TIMESTAMPING_OPT_TX_SWHW;'; then
|
|
Packit |
96c956 |
add_def HAVE_LINUX_TIMESTAMPING_RXFILTER_NTP 1
|
|
Packit |
96c956 |
add_def HAVE_LINUX_TIMESTAMPING_OPT_PKTINFO 1
|
|
Packit |
96c956 |
add_def HAVE_LINUX_TIMESTAMPING_OPT_TX_SWHW 1
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
timepps_h=""
|
|
Packit |
96c956 |
if [ $feat_refclock = "1" ] && [ $feat_pps = "1" ]; then
|
|
Packit |
96c956 |
if test_code '<sys/timepps.h>' 'inttypes.h time.h sys/timepps.h' '' '' ''; then
|
|
Packit |
96c956 |
timepps_h="sys/timepps.h"
|
|
Packit |
96c956 |
add_def HAVE_SYS_TIMEPPS_H
|
|
Packit |
96c956 |
else
|
|
Packit |
96c956 |
if test_code '<timepps.h>' 'inttypes.h time.h timepps.h' '' '' ''; then
|
|
Packit |
96c956 |
timepps_h="timepps.h"
|
|
Packit |
96c956 |
add_def HAVE_TIMEPPS_H
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
if [ "x$timepps_h" != "x" ] && \
|
|
Packit |
96c956 |
test_code 'PPSAPI' "inttypes.h string.h time.h $timepps_h" '' '' '
|
|
Packit |
96c956 |
pps_handle_t h = 0;
|
|
Packit |
96c956 |
pps_info_t i;
|
|
Packit |
96c956 |
struct timespec ts;
|
|
Packit |
96c956 |
return time_pps_fetch(h, PPS_TSFMT_TSPEC, &i, &ts);'
|
|
Packit |
96c956 |
then
|
|
Packit |
96c956 |
add_def FEAT_PPS
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
if [ $feat_droproot = "1" ] && [ $try_libcap = "1" ] && \
|
|
Packit |
96c956 |
test_code \
|
|
Packit |
96c956 |
libcap \
|
|
Packit |
96c956 |
'sys/types.h pwd.h sys/prctl.h sys/capability.h grp.h' \
|
|
Packit |
96c956 |
'' '-lcap' \
|
|
Packit |
96c956 |
'prctl(PR_SET_KEEPCAPS, 1);cap_set_proc(cap_from_text("cap_sys_time=ep"));'
|
|
Packit |
96c956 |
then
|
|
Packit |
96c956 |
add_def FEAT_PRIVDROP
|
|
Packit |
96c956 |
EXTRA_LIBS="$EXTRA_LIBS -lcap"
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
if [ $feat_droproot = "1" ] && [ $try_clockctl = "1" ] && \
|
|
Packit |
96c956 |
test_code '<sys/clockctl.h>' 'sys/clockctl.h' '' '' ''
|
|
Packit |
96c956 |
then
|
|
Packit |
96c956 |
add_def FEAT_PRIVDROP
|
|
Packit |
96c956 |
priv_ops="BINDSOCKET"
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
if [ $feat_scfilter = "1" ] && [ $try_seccomp = "1" ] && \
|
|
Packit |
96c956 |
test_code seccomp 'seccomp.h' '' '-lseccomp' \
|
|
Packit |
96c956 |
'seccomp_init(SCMP_ACT_KILL);'
|
|
Packit |
96c956 |
then
|
|
Packit |
96c956 |
add_def FEAT_SCFILTER
|
|
Packit |
96c956 |
# NAME2IPADDRESS shouldn't be enabled with other operations as the helper
|
|
Packit |
96c956 |
# process works on one request at the time and the async resolver could
|
|
Packit |
96c956 |
# block the main thread
|
|
Packit |
96c956 |
priv_ops="NAME2IPADDRESS RELOADDNS"
|
|
Packit |
96c956 |
EXTRA_LIBS="$EXTRA_LIBS -lseccomp"
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
if [ "x$priv_ops" != "x" ]; then
|
|
Packit |
96c956 |
EXTRA_OBJECTS="$EXTRA_OBJECTS privops.o"
|
|
Packit |
96c956 |
add_def PRIVOPS_HELPER
|
|
Packit |
96c956 |
for o in $priv_ops; do
|
|
Packit |
96c956 |
add_def PRIVOPS_$o
|
|
Packit |
96c956 |
done
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
if [ $feat_rtc = "1" ] && [ $try_rtc = "1" ] && \
|
|
Packit |
96c956 |
test_code '<linux/rtc.h>' 'sys/ioctl.h linux/rtc.h' '' '' \
|
|
Packit |
96c956 |
'ioctl(1, RTC_UIE_ON&RTC_UIE_OFF&RTC_RD_TIME&RTC_SET_TIME, 0&RTC_UF);'
|
|
Packit |
96c956 |
then
|
|
Packit |
96c956 |
EXTRA_OBJECTS="$EXTRA_OBJECTS rtc_linux.o"
|
|
Packit |
96c956 |
add_def FEAT_RTC
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
if [ $feat_refclock = "1" ] && [ $feat_phc = "1" ] && [ $try_phc = "1" ] && \
|
|
Packit |
96c956 |
grep '#define HAVE_CLOCK_GETTIME' config.h > /dev/null && \
|
|
Packit |
96c956 |
test_code '<linux/ptp_clock.h>' 'sys/ioctl.h linux/ptp_clock.h' '' '' \
|
|
Packit |
96c956 |
'ioctl(1, PTP_CLOCK_GETCAPS + PTP_SYS_OFFSET, 0);'
|
|
Packit |
96c956 |
then
|
|
Packit |
96c956 |
grep 'HAVE_LINUX_TIMESTAMPING' config.h > /dev/null ||
|
|
Packit |
96c956 |
EXTRA_OBJECTS="$EXTRA_OBJECTS hwclock.o"
|
|
Packit |
96c956 |
add_def FEAT_PHC
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
if [ $try_setsched = "1" ] && \
|
|
Packit |
96c956 |
test_code \
|
|
Packit |
96c956 |
'pthread_setschedparam()' \
|
|
Packit |
96c956 |
'pthread.h sched.h' '-pthread' '' '
|
|
Packit |
96c956 |
struct sched_param sched;
|
|
Packit |
96c956 |
sched_get_priority_max(SCHED_FIFO);
|
|
Packit |
96c956 |
pthread_setschedparam(pthread_self(), SCHED_FIFO, &sched);'
|
|
Packit |
96c956 |
then
|
|
Packit |
96c956 |
add_def HAVE_PTHREAD_SETSCHEDPARAM
|
|
Packit |
96c956 |
use_pthread=1
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
if [ $try_lockmem = "1" ] && \
|
|
Packit |
96c956 |
test_code \
|
|
Packit |
96c956 |
'mlockall()' \
|
|
Packit |
96c956 |
'sys/mman.h' '' '' '
|
|
Packit |
96c956 |
mlockall(MCL_CURRENT|MCL_FUTURE);'
|
|
Packit |
96c956 |
then
|
|
Packit |
96c956 |
add_def HAVE_MLOCKALL
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
if [ $try_lockmem = "1" ] && \
|
|
Packit |
96c956 |
test_code \
|
|
Packit |
96c956 |
'setrlimit(RLIMIT_MEMLOCK, ...)' \
|
|
Packit |
96c956 |
'sys/resource.h' '' '' '
|
|
Packit |
96c956 |
struct rlimit rlim;
|
|
Packit |
96c956 |
setrlimit(RLIMIT_MEMLOCK, &rlim);'
|
|
Packit |
96c956 |
then
|
|
Packit |
96c956 |
add_def HAVE_SETRLIMIT_MEMLOCK
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
if [ $feat_forcednsretry = "1" ]
|
|
Packit |
96c956 |
then
|
|
Packit |
96c956 |
add_def FORCE_DNSRETRY
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
READLINE_LINK=""
|
|
Packit |
96c956 |
if [ $feat_readline = "1" ]; then
|
|
Packit |
96c956 |
if [ $try_editline = "1" ]; then
|
|
Packit |
96c956 |
if test_code editline 'stdio.h editline/readline.h' \
|
|
Packit |
96c956 |
"$readline_inc" "$readline_lib -ledit" \
|
|
Packit |
96c956 |
'add_history(readline("prompt"));'
|
|
Packit |
96c956 |
then
|
|
Packit |
96c956 |
add_def FEAT_READLINE
|
|
Packit |
96c956 |
add_def USE_EDITLINE
|
|
Packit |
96c956 |
MYCPPFLAGS="$MYCPPFLAGS $readline_inc"
|
|
Packit |
96c956 |
READLINE_LINK="$readline_lib -ledit"
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
if [ "x$READLINE_LINK" = "x" ] && [ $try_readline = "1" ]; then
|
|
Packit |
96c956 |
if test_code readline 'stdio.h readline/readline.h readline/history.h' \
|
|
Packit |
96c956 |
"$readline_inc" "$readline_lib -lreadline" \
|
|
Packit |
96c956 |
'add_history(readline("prompt"));'
|
|
Packit |
96c956 |
then
|
|
Packit |
96c956 |
add_def FEAT_READLINE
|
|
Packit |
96c956 |
MYCPPFLAGS="$MYCPPFLAGS $readline_inc"
|
|
Packit |
96c956 |
READLINE_LINK="$readline_lib -lreadline"
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
if [ "x$READLINE_LINK" = "x" ] && [ $try_readline = "1" ]; then
|
|
Packit |
96c956 |
if test_code 'readline with -lncurses' \
|
|
Packit |
96c956 |
'stdio.h readline/readline.h readline/history.h' \
|
|
Packit |
96c956 |
"$readline_inc" "$readline_lib $ncurses_lib -lreadline -lncurses" \
|
|
Packit |
96c956 |
'add_history(readline("prompt"));'
|
|
Packit |
96c956 |
then
|
|
Packit |
96c956 |
add_def FEAT_READLINE
|
|
Packit |
96c956 |
MYCPPFLAGS="$MYCPPFLAGS $readline_inc"
|
|
Packit |
96c956 |
READLINE_LINK="$readline_lib $ncurses_lib -lreadline -lncurses"
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
EXTRA_CLI_LIBS="$EXTRA_CLI_LIBS $READLINE_LINK"
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
HASH_OBJ="hash_intmd5.o"
|
|
Packit |
96c956 |
HASH_LINK=""
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
if [ $feat_sechash = "1" ] && [ "x$HASH_LINK" = "x" ] && [ $try_nettle = "1" ]; then
|
|
Packit |
96c956 |
test_cflags="`pkg_config --cflags nettle`"
|
|
Packit |
96c956 |
test_link="`pkg_config --libs nettle`"
|
|
Packit |
96c956 |
if test_code 'nettle' 'nettle/nettle-meta.h nettle/sha2.h' \
|
|
Packit |
96c956 |
"$test_cflags" "$test_link" \
|
|
Packit |
96c956 |
'return nettle_hashes[0]->context_size;'
|
|
Packit |
96c956 |
then
|
|
Packit |
96c956 |
HASH_OBJ="hash_nettle.o"
|
|
Packit |
96c956 |
HASH_LINK="$test_link"
|
|
Packit |
96c956 |
LIBS="$LIBS $HASH_LINK"
|
|
Packit |
96c956 |
MYCPPFLAGS="$MYCPPFLAGS $test_cflags"
|
|
Packit |
96c956 |
add_def FEAT_SECHASH
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
if [ $feat_sechash = "1" ] && [ "x$HASH_LINK" = "x" ] && [ $try_nss = "1" ]; then
|
|
Packit |
96c956 |
test_cflags="`pkg_config --cflags nss`"
|
|
Packit |
96c956 |
test_link="`pkg_config --libs-only-L nss` -lfreebl3"
|
|
Packit |
96c956 |
if test_code 'NSS' 'nss.h hasht.h nsslowhash.h' \
|
|
Packit |
96c956 |
"$test_cflags" "$test_link" \
|
|
Packit |
96c956 |
'NSSLOWHASH_Begin(NSSLOWHASH_NewContext(NSSLOW_Init(), HASH_AlgSHA512));'
|
|
Packit |
96c956 |
then
|
|
Packit |
96c956 |
HASH_OBJ="hash_nss.o"
|
|
Packit |
96c956 |
HASH_LINK="$test_link"
|
|
Packit |
96c956 |
LIBS="$LIBS $HASH_LINK"
|
|
Packit |
96c956 |
MYCPPFLAGS="$MYCPPFLAGS $test_cflags"
|
|
Packit |
96c956 |
add_def FEAT_SECHASH
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
if [ $feat_sechash = "1" ] && [ "x$HASH_LINK" = "x" ] && [ $try_tomcrypt = "1" ]; then
|
|
Packit |
96c956 |
if test_code 'tomcrypt' 'tomcrypt.h' '-I/usr/include/tomcrypt' '-ltomcrypt' \
|
|
Packit |
96c956 |
'hash_memory_multi(find_hash("md5"), NULL, NULL, NULL, 0, NULL, 0);'
|
|
Packit |
96c956 |
then
|
|
Packit |
96c956 |
HASH_OBJ="hash_tomcrypt.o"
|
|
Packit |
96c956 |
HASH_LINK="-ltomcrypt"
|
|
Packit |
96c956 |
LIBS="$LIBS $HASH_LINK"
|
|
Packit |
96c956 |
MYCPPFLAGS="$MYCPPFLAGS -I/usr/include/tomcrypt"
|
|
Packit |
96c956 |
add_def FEAT_SECHASH
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
if [ $use_pthread = "1" ]; then
|
|
Packit |
96c956 |
MYCFLAGS="$MYCFLAGS -pthread"
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
SYSCONFDIR=/etc
|
|
Packit |
96c956 |
if [ "x$SETSYSCONFDIR" != "x" ]; then
|
|
Packit |
96c956 |
SYSCONFDIR=$SETSYSCONFDIR
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
PREFIX=/usr/local
|
|
Packit |
96c956 |
if [ "x$SETPREFIX" != "x" ]; then
|
|
Packit |
96c956 |
PREFIX=$SETPREFIX
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
EPREFIX=${PREFIX}
|
|
Packit |
96c956 |
if [ "x$SETEPREFIX" != "x" ]; then
|
|
Packit |
96c956 |
EPREFIX=$SETEPREFIX
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
BINDIR=${EPREFIX}/bin
|
|
Packit |
96c956 |
if [ "x$SETBINDIR" != "x" ]; then
|
|
Packit |
96c956 |
BINDIR=$SETBINDIR
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
SBINDIR=${EPREFIX}/sbin
|
|
Packit |
96c956 |
if [ "x$SETSBINDIR" != "x" ]; then
|
|
Packit |
96c956 |
SBINDIR=$SETSBINDIR
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
DATAROOTDIR=${PREFIX}/share
|
|
Packit |
96c956 |
if [ "x$SETDATAROOTDIR" != "x" ]; then
|
|
Packit |
96c956 |
DATAROOTDIR=$SETDATAROOTDIR
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
MANDIR=${DATAROOTDIR}/man
|
|
Packit |
96c956 |
if [ "x$SETMANDIR" != "x" ]; then
|
|
Packit |
96c956 |
MANDIR=$SETMANDIR
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
DOCDIR=${DATAROOTDIR}/doc/chrony
|
|
Packit |
96c956 |
if [ "x$SETDOCDIR" != "x" ]; then
|
|
Packit |
96c956 |
DOCDIR=$SETDOCDIR
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
LOCALSTATEDIR=/var
|
|
Packit |
96c956 |
if [ "x$SETLOCALSTATEDIR" != "x" ]; then
|
|
Packit |
96c956 |
LOCALSTATEDIR=$SETLOCALSTATEDIR
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
CHRONYRUNDIR=${LOCALSTATEDIR}/run/chrony
|
|
Packit |
96c956 |
if [ "x$SETCHRONYRUNDIR" != "x" ]; then
|
|
Packit |
96c956 |
CHRONYRUNDIR=$SETCHRONYRUNDIR
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
CHRONYVARDIR=${LOCALSTATEDIR}/lib/chrony
|
|
Packit |
96c956 |
if [ "x$SETCHRONYVARDIR" != "x" ]; then
|
|
Packit |
96c956 |
CHRONYVARDIR=$SETCHRONYVARDIR
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
add_def DEFAULT_CONF_FILE "\"$SYSCONFDIR/chrony.conf\""
|
|
Packit |
96c956 |
add_def DEFAULT_HWCLOCK_FILE "\"$default_hwclockfile\""
|
|
Packit |
96c956 |
add_def DEFAULT_PID_FILE "\"$default_pidfile\""
|
|
Packit |
96c956 |
add_def DEFAULT_RTC_DEVICE "\"$default_rtcdevice\""
|
|
Packit |
96c956 |
add_def DEFAULT_USER "\"$default_user\""
|
|
Packit |
96c956 |
add_def DEFAULT_COMMAND_SOCKET "\"$CHRONYRUNDIR/chronyd.sock\""
|
|
Packit |
96c956 |
add_def MAIL_PROGRAM "\"$mail_program\""
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
common_features="`get_features SECHASH IPV6 DEBUG`"
|
|
Packit |
96c956 |
chronyc_features="`get_features READLINE`"
|
|
Packit |
96c956 |
chronyd_features="`get_features CMDMON NTP REFCLOCK RTC PRIVDROP SCFILTER SIGND ASYNCDNS`"
|
|
Packit |
96c956 |
add_def CHRONYC_FEATURES "\"$chronyc_features $common_features\""
|
|
Packit |
96c956 |
add_def CHRONYD_FEATURES "\"$chronyd_features $common_features\""
|
|
Packit |
96c956 |
echo "Features : $chronyd_features $chronyc_features $common_features"
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
if [ -f version.txt ]; then
|
|
Packit |
96c956 |
CHRONY_VERSION="`cat version.txt`"
|
|
Packit |
96c956 |
else
|
|
Packit |
96c956 |
CHRONY_VERSION="DEVELOPMENT"
|
|
Packit |
96c956 |
fi
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
add_def CHRONY_VERSION "\"${CHRONY_VERSION}\""
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
for f in Makefile doc/Makefile test/unit/Makefile
|
|
Packit |
96c956 |
do
|
|
Packit |
96c956 |
echo Creating $f
|
|
Packit |
96c956 |
sed -e "s%@EXTRA_OBJECTS@%${EXTRA_OBJECTS}%;\
|
|
Packit |
96c956 |
s%@CC@%${MYCC}%;\
|
|
Packit |
96c956 |
s%@CFLAGS@%${MYCFLAGS}%;\
|
|
Packit |
96c956 |
s%@CPPFLAGS@%${MYCPPFLAGS}%;\
|
|
Packit |
96c956 |
s%@LIBS@%${LIBS}%;\
|
|
Packit |
96c956 |
s%@LDFLAGS@%${MYLDFLAGS}%;\
|
|
Packit |
96c956 |
s%@EXTRA_LIBS@%${EXTRA_LIBS}%;\
|
|
Packit |
96c956 |
s%@EXTRA_CLI_LIBS@%${EXTRA_CLI_LIBS}%;\
|
|
Packit |
96c956 |
s%@HASH_OBJ@%${HASH_OBJ}%;\
|
|
Packit |
96c956 |
s%@SYSCONFDIR@%${SYSCONFDIR}%;\
|
|
Packit |
96c956 |
s%@BINDIR@%${BINDIR}%;\
|
|
Packit |
96c956 |
s%@SBINDIR@%${SBINDIR}%;\
|
|
Packit |
96c956 |
s%@DOCDIR@%${DOCDIR}%;\
|
|
Packit |
96c956 |
s%@MANDIR@%${MANDIR}%;\
|
|
Packit |
96c956 |
s%@LOCALSTATEDIR@%${LOCALSTATEDIR}%;\
|
|
Packit |
96c956 |
s%@CHRONYRUNDIR@%${CHRONYRUNDIR}%;\
|
|
Packit |
96c956 |
s%@CHRONYVARDIR@%${CHRONYVARDIR}%;\
|
|
Packit |
96c956 |
s%@DEFAULT_HWCLOCK_FILE@%${default_hwclockfile}%;\
|
|
Packit |
96c956 |
s%@DEFAULT_PID_FILE@%${default_pidfile}%;\
|
|
Packit |
96c956 |
s%@DEFAULT_RTC_DEVICE@%${default_rtcdevice}%;\
|
|
Packit |
96c956 |
s%@DEFAULT_USER@%${default_user}%;\
|
|
Packit |
96c956 |
s%@CHRONY_VERSION@%${CHRONY_VERSION}%;" \
|
|
Packit |
96c956 |
< ${f}.in > $f
|
|
Packit |
96c956 |
done
|
|
Packit |
96c956 |
|
|
Packit |
96c956 |
# =======================================================================
|
|
Packit |
96c956 |
# vim:et:sw=2:ht=2:sts=2:fdm=marker:cms=#%s
|
|
Packit |
96c956 |
|