Blame configure.ac

Packit f58a13
AC_INIT([cronie],[1.5.2],[mmaslano@redhat.com,tmraz@fedoraproject.org])
Packit f58a13
AC_CONFIG_HEADER([config.h])
Packit f58a13
AC_PREREQ(2.60)
Packit f58a13
Packit f58a13
AM_INIT_AUTOMAKE
Packit f58a13
Packit f58a13
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])],
Packit f58a13
			    [AC_SUBST([AM_DEFAULT_VERBOSITY], [1])])
Packit f58a13
Packit f58a13
AC_CANONICAL_HOST
Packit f58a13
Packit f58a13
dnl Checks for programs.
Packit f58a13
Packit f58a13
AC_PROG_CC
Packit f58a13
AC_PROG_INSTALL
Packit f58a13
AC_PROG_LN_S
Packit f58a13
Packit f58a13
dnl Check for _GNU_SOURCE
Packit f58a13
AC_USE_SYSTEM_EXTENSIONS
Packit f58a13
Packit f58a13
AC_CHECK_HEADERS( \
Packit f58a13
        dirent.h \
Packit f58a13
        fcntl.h \
Packit f58a13
        getopt.h \
Packit f58a13
        glob.h \
Packit f58a13
        limits.h \
Packit f58a13
        paths.h \
Packit f58a13
        pty.h \
Packit f58a13
        selinux/selinux.h \
Packit f58a13
        stddef.h \
Packit f58a13
        stdint.h \
Packit f58a13
        sys/audit.h \
Packit f58a13
        sys/inotify.h \
Packit f58a13
        sys/stat.h \
Packit f58a13
        sys/stream.h \
Packit f58a13
        sys/stropts.h \
Packit f58a13
        sys/time.h \
Packit f58a13
        sys/timers.h \
Packit f58a13
        sys/types.h \
Packit f58a13
        sys/cdefs.h \
Packit f58a13
        sys/fcntl.h \
Packit f58a13
        time.h \
Packit f58a13
        unistd.h \
Packit f58a13
        util.h \
Packit f58a13
        utime.h \
Packit f58a13
)
Packit f58a13
Packit f58a13
AC_CHECK_FUNCS( \
Packit f58a13
       fcntl \
Packit f58a13
       lockf \
Packit f58a13
       flock \
Packit f58a13
       fchown \
Packit f58a13
       fchgrp \
Packit f58a13
)
Packit f58a13
Packit f58a13
dnl Checks for typedefs, structures, and compiler characteristics.
Packit f58a13
AC_C_CONST
Packit f58a13
AC_TYPE_SIGNAL
Packit f58a13
AC_TYPE_UID_T
Packit f58a13
AC_TYPE_MODE_T
Packit f58a13
AC_TYPE_OFF_T
Packit f58a13
AC_TYPE_PID_T
Packit f58a13
AC_TYPE_SIZE_T
Packit f58a13
AC_STRUCT_TM
Packit f58a13
AC_CHECK_MEMBERS([struct tm.tm_gmtoff],,,[#include <time.h>])
Packit f58a13
Packit f58a13
dnl Checking for programs
Packit f58a13
Packit f58a13
AC_ARG_WITH([editor],
Packit f58a13
  [AC_HELP_STRING([--with-editor=EDITOR], [path to default editor])],
Packit f58a13
  [editor_defined="$with_editor"],
Packit f58a13
  [editor_defined="no"])
Packit f58a13
AS_IF([test "x$editor_defined" = "xno"], [
Packit f58a13
  AC_PATH_PROG([editor_defined], [vi], [/usr/bin/vi])
Packit f58a13
])
Packit f58a13
AC_DEFINE_UNQUOTED([EDITOR], ["$editor_defined"], [default editor])
Packit f58a13
Packit f58a13
AC_MSG_CHECKING(username to run under)
Packit f58a13
AC_ARG_WITH(daemon_username,
Packit f58a13
[AS_HELP_STRING([--with-daemon_username=DAEMON_USERNAME], [Username to run under (default daemon) ])],
Packit f58a13
[ case "$withval" in
Packit f58a13
  no)
Packit f58a13
    AC_MSG_ERROR(Need DAEMON_USERNAME.)
Packit f58a13
    ;;
Packit f58a13
  yes)
Packit f58a13
    DAEMON_USERNAME=daemon
Packit f58a13
    AC_MSG_RESULT(daemon)
Packit f58a13
    ;;
Packit f58a13
  *)
Packit f58a13
    DAEMON_USERNAME="$withval";
Packit f58a13
    AC_MSG_RESULT($withval)
Packit f58a13
    ;;
Packit f58a13
    esac ],
Packit f58a13
    DAEMON_USERNAME=daemon
Packit f58a13
    AC_MSG_RESULT(daemon)
Packit f58a13
)
Packit f58a13
AC_SUBST(DAEMON_USERNAME)
Packit f58a13
Packit f58a13
AC_MSG_CHECKING(groupname to run under)
Packit f58a13
AC_ARG_WITH(daemon_groupname,
Packit f58a13
[AS_HELP_STRING([--with-daemon_groupname=DAEMON_GROUPNAME], [Groupname to run under (default daemon) ])],
Packit f58a13
[ case "$withval" in
Packit f58a13
  no)
Packit f58a13
    AC_MSG_ERROR(Need DAEMON_GROUPNAME.)
Packit f58a13
    ;;
Packit f58a13
  yes)
Packit f58a13
    DAEMON_GROUPNAME=daemon
Packit f58a13
    AC_MSG_RESULT(daemon)
Packit f58a13
    ;;
Packit f58a13
  *)
Packit f58a13
    DAEMON_GROUPNAME="$withval";
Packit f58a13
    AC_MSG_RESULT($withval)
Packit f58a13
    ;;
Packit f58a13
    esac ],
Packit f58a13
    DAEMON_GROUPNAME=daemon
Packit f58a13
    AC_MSG_RESULT(daemon)
Packit f58a13
)
Packit f58a13
AC_SUBST(DAEMON_GROUPNAME)
Packit f58a13
Packit f58a13
# Check whether inotify is accepted
Packit f58a13
AC_ARG_WITH(inotify,
Packit f58a13
   [AS_HELP_STRING([--with-inotify], [ Enable inotify support])],
Packit f58a13
   [ if test "x$withval" != "xno" ; then
Packit f58a13
       AC_DEFINE(WITH_INOTIFY,1,[Define if you want inotify support.])
Packit f58a13
       AC_CHECK_HEADER([sys/inotify.h], , AC_MSG_ERROR(Inotify support requires sys/inotify.h header))
Packit f58a13
       AC_CHECK_FUNCS(inotify_init inotify_add_watch)
Packit f58a13
     fi
Packit f58a13
   ]
Packit f58a13
)
Packit f58a13
Packit f58a13
AC_ARG_ENABLE(pie,CRONIE_HELP_STRING(--enable-pie,Build cronie as a Position Independent Executable))
Packit f58a13
if test "x$enable_pie" = xyes; then
Packit f58a13
    CFLAGS="$CFLAGS -fPIE -DPIE"
Packit f58a13
    LDFLAGS="$LDFLAGS -pie"
Packit f58a13
fi
Packit f58a13
Packit f58a13
AC_ARG_ENABLE(relro,CRONIE_HELP_STRING(--enable-relro,Build cronie with relro flag))
Packit f58a13
if test "x$enable_relro" = xyes; then
Packit f58a13
    LDFLAGS="$LDFLAGS -Wl,-z,relro -Wl,-z,now"
Packit f58a13
fi
Packit f58a13
Packit f58a13
AC_ARG_ENABLE(bsd, BSD_STRING(--enable-bsd,Build cronie with BSD specific parts))
Packit f58a13
Packit f58a13
# Check whether user wants SELinux support
Packit f58a13
SELINUX_MSG="no"
Packit f58a13
LIBSELINUX=""
Packit f58a13
AC_ARG_WITH(selinux,
Packit f58a13
        [AS_HELP_STRING([--with-selinux], [Enable SELinux support])],
Packit f58a13
        [ if test "x$withval" != "xno" ; then
Packit f58a13
                saved_LIBS="$LIBS"
Packit f58a13
                AC_DEFINE(WITH_SELINUX,1,[Define if you want SELinux support.])
Packit f58a13
                SELINUX_MSG="yes"
Packit f58a13
                AC_CHECK_HEADER([selinux/selinux.h], ,AC_MSG_ERROR(SELinux support requires selinux.h header))
Packit f58a13
                AC_CHECK_LIB(selinux, setexeccon, [ LIBSELINUX="-lselinux" ],
Packit f58a13
                    AC_MSG_ERROR(SELinux support requires libselinux library))
Packit f58a13
                AC_CHECK_FUNCS(getseuserbyname get_default_context_with_level)
Packit f58a13
                LIBS="$saved_LIBS"
Packit f58a13
                AC_SUBST(LIBSELINUX)
Packit f58a13
        fi ]
Packit f58a13
)
Packit f58a13
Packit f58a13
AC_ARG_WITH(pam, [AS_HELP_STRING([--with-pam], [Build with PAM support])])
Packit f58a13
AC_ARG_ENABLE(pam, [AS_HELP_STRING([--enable-pam], [Alias for --with-pam])])
Packit f58a13
Packit f58a13
# Check that with_pam and enable_pam are consistent.
Packit f58a13
# If neither one is set, the default is "no."
Packit f58a13
if test -z "$with_pam"; then
Packit f58a13
	with_pam=${enable_pam:-no}
Packit f58a13
elif test -n "$enable_pam" && test "$with_pam" != "$enable_pam"; then
Packit f58a13
	AC_MSG_ERROR(
Packit f58a13
	  [Contradicting --with/without-pam and --enable/disable-pam options.])
Packit f58a13
fi
Packit f58a13
Packit f58a13
AM_CONDITIONAL([PAM], [test "$with_pam" != no])
Packit f58a13
Packit f58a13
if test "$with_pam" != no; then
Packit f58a13
	AC_DEFINE(WITH_PAM, 1, [Define if you want to enable PAM support])
Packit f58a13
	pam_appl_h_found=no
Packit f58a13
	AC_CHECK_HEADERS([pam/pam_appl.h security/pam_appl.h],
Packit f58a13
		[pam_appl_h_found=yes])
Packit f58a13
	test "$pam_appl_h_found" = yes ||
Packit f58a13
		AC_MSG_ERROR([PAM headers not found])
Packit f58a13
Packit f58a13
	saved_LIBS="$LIBS"
Packit f58a13
	AC_CHECK_LIB([dl], [dlopen], [libdl_found=yes], [libdl_found=no])
Packit f58a13
	AC_CHECK_LIB(pam, pam_set_item, , AC_MSG_ERROR([*** libpam missing]))
Packit f58a13
	AC_CHECK_FUNCS([pam_getenvlist pam_putenv])
Packit f58a13
	LIBS="$saved_LIBS"
Packit f58a13
Packit f58a13
	case $libdl_found:" $LIBS " in #(
Packit f58a13
	*" -ldl "*) LIBPAM= ;; #(
Packit f58a13
	yes:*) LIBPAM=-ldl ;; # libdl found, but is not in $LIBS
Packit f58a13
	esac
Packit f58a13
	AC_SUBST([LIBPAM], ["-lpam $LIBPAM"])
Packit f58a13
fi
Packit f58a13
Packit f58a13
AC_DEFINE(DEBUGGING,1,[Code will be built with debug info.])
Packit f58a13
Packit f58a13
AC_DEFINE(MAILARG,"/usr/sbin/sendmail",[There will be path to sendmail.])
Packit f58a13
Packit f58a13
AC_DEFINE(MAILFMT,"%s -FCronDaemon -i -odi -oem -oi -t -f %s",
Packit f58a13
[-i    = don't terminate on "." by itself
Packit f58a13
-Fx   = Set full-name of sender
Packit f58a13
-odi  = Option Deliverymode Interactive
Packit f58a13
-oem  = Option Errors Mailedtosender
Packit f58a13
-oi   = Ignore "." alone on a line
Packit f58a13
-t    = Get recipient from headers
Packit f58a13
-f %s = Envelope sender address
Packit f58a13
-d = undocumented but common flag.])
Packit f58a13
Packit f58a13
AC_DEFINE(SYSLOG,1,[Using syslog for log messages.])
Packit f58a13
Packit f58a13
AC_DEFINE(CAPITALIZE_FOR_PS, 1, [if you have a tm_gmtoff member in struct tm])
Packit f58a13
Packit f58a13
# Check whether user wants Linux audit support
Packit f58a13
AC_ARG_WITH(audit,
Packit f58a13
        [AS_HELP_STRING([--with-audit], [Enable audit trails])],
Packit f58a13
        [ if test "x$withval" != "xno" ; then
Packit f58a13
                saved_LIBS="$LIBS"
Packit f58a13
                AC_DEFINE(WITH_AUDIT,1,[Define if you want Audit trails.])
Packit f58a13
                AC_CHECK_HEADER([libaudit.h], ,AC_MSG_ERROR(Audit trails requires libaudit.h header))
Packit f58a13
                AC_CHECK_LIB(audit, audit_open, [ LIBAUDIT="-laudit" ],
Packit f58a13
                    AC_MSG_ERROR(Audit support needs audit libraries.))
Packit f58a13
                LIBS="$saved_LIBS"
Packit f58a13
                AC_SUBST(LIBAUDIT)
Packit f58a13
        fi ]
Packit f58a13
)
Packit f58a13
Packit f58a13
AC_ARG_ENABLE(syscrontab,
Packit f58a13
	[AS_HELP_STRING([--enable-syscrontab], [Build cronie with system crontab enabled.])],
Packit f58a13
	[ if test "x$enableval" != xno; then
Packit f58a13
		AC_DEFINE(ENABLE_SYSCRONTAB,1,[Define if you want system crontab.])
Packit f58a13
	fi ], [AC_DEFINE(ENABLE_SYSCRONTAB,1,[Define if you want system crontab.])]
Packit f58a13
)
Packit f58a13
Packit f58a13
dnl CRONIE_VAR_DEFAULT (VAR, DESCRIPTION, DEFAULT)
Packit f58a13
dnl --------------------------------------------
Packit f58a13
AC_DEFUN([CRONIE_CONF_VAR],
Packit f58a13
[AC_ARG_VAR([$1], [$2 @<:@$3@:>@])
Packit f58a13
if test "$$1" = ""; then
Packit f58a13
	$1='$3'
Packit f58a13
fi
Packit f58a13
])
Packit f58a13
Packit f58a13
AC_DEFUN([ANACRON_CONF_VAR],
Packit f58a13
[AC_ARG_VAR([$1], [$2 @<:@$3@:>@])
Packit f58a13
if test "$$1" = ""; then
Packit f58a13
	    $1='$3'
Packit f58a13
		fi
Packit f58a13
])
Packit f58a13
Packit f58a13
CRONIE_CONF_VAR([SYSCRONTAB], [the current working directory of the running daemon], [${sysconfdir}/crontab])
Packit f58a13
CRONIE_CONF_VAR([SYS_CROND_DIR], [the current working directory of the running daemon], [${sysconfdir}/cron.d])
Packit f58a13
CRONIE_CONF_VAR([SPOOL_DIR], [the directory where all the user cron tabs reside], [${localstatedir}/spool/cron])
Packit f58a13
Packit f58a13
AC_ARG_ENABLE([anacron], [AS_HELP_STRING([--enable-anacron], [Build also anacron.])])
Packit f58a13
AM_CONDITIONAL([ANACRON], [test "$enable_anacron" = yes])
Packit f58a13
if test "$enable_anacron" != no; then
Packit f58a13
	ANACRON_CONF_VAR([ANACRON_SPOOL_DIR],[The path for anacron locks.],[${localstatedir}/spool/anacron])
Packit f58a13
	ANACRON_CONF_VAR([ANACRONTAB],[The anacron table for regular jobs.],[${sysconfdir}/anacrontab])
Packit f58a13
fi
Packit f58a13
Packit f58a13
AC_CONFIG_FILES([Makefile src/Makefile man/Makefile anacron/Makefile])
Packit f58a13
AC_OUTPUT
Packit f58a13