# This file is part of GNU Pies. -*- autoconf -*- # Copyright (C) 2009-2020 Sergey Poznyakoff # # GNU Pies is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # GNU Pies is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Pies. If not, see . AC_PREREQ([2.63]) AC_INIT([GNU Pies], [1.4.96], [bug-pies@gnu.org.ua]) AC_CONFIG_SRCDIR([src/pies.h]) AC_CONFIG_AUX_DIR([build-aux]) AC_CONFIG_HEADERS([config.h]) AM_INIT_AUTOMAKE([1.11 gnits tar-ustar dist-bzip2 std-options silent-rules]) # Enable silent rules by default: AM_SILENT_RULES([yes]) # Checks for programs. AC_PROG_CC gl_EARLY AC_PROG_MAKE_SET AC_PROG_RANLIB AC_PROG_YACC AC_PROG_LEX # Checks for libraries. AC_CHECK_LIB(crypt, crypt) AC_SEARCH_LIBS(socket, socket) AC_SEARCH_LIBS(gethostbyaddr, nsl) # Checks for header files. AC_CHECK_HEADERS([arpa/inet.h fcntl.h netdb.h netinet/in.h stdint.h stdlib.h\ string.h sys/socket.h sys/time.h syslog.h unistd.h utmp.h utmpx.h\ crypt.h shadow.h]) # Checks for typedefs, structures, and compiler characteristics. AC_TYPE_UID_T AC_TYPE_MODE_T AC_TYPE_PID_T AC_TYPE_SIZE_T AC_TYPE_SIGNAL IU_CHECK_MEMBERS([struct msghdr.msg_control, struct msghdr.msg_accrights], , , [#include #include ]) IU_CHECK_MEMBERS([struct utmp.ut_tv, struct utmp.ut_name, struct utmp.ut_user, struct utmp.ut_time, struct utmp.ut_host], , , [#include ]) if test "$ac_cv_header_utmpx_h" = yes; then IU_CHECK_MEMBERS([struct utmpx.ut_tv, struct utmpx.ut_name, struct utmpx.ut_user, struct utmpx.ut_time, struct utmpx.ut_host], , , [#include ]) fi # Checks for library functions. AC_FUNC_CHOWN AC_FUNC_FORK AC_CHECK_FUNCS([alarm dup2 gethostbyname memmove memset select setenv socket strchr strcspn strtol strtoul sysconf getdtablesize vsyslog]) # Gnulib gl_INIT # Grecs GRECS_SETUP([grecs],[tree-api tests git2chg getopt json sockaddr-list parser-meta1]) GRECS_HOST_PROJECT_INCLUDES='-I$(top_srcdir)/gnu -I$(top_builddir)/gnu' # Test for setproctitle MF_PROCTITLE # Gettext. AM_ICONV AM_GNU_GETTEXT([external], [need-formatstring-macros]) AM_GNU_GETTEXT_VERSION([0.19]) # PAM status_pam=maybe AC_ARG_ENABLE([pam], AC_HELP_STRING([--enable-pam], [enable PAM]), [ case "${enableval}" in yes) status_pam=yes ;; no) status_pam=no ;; *) AC_MSG_ERROR([bad value ${enableval} for --enable-pam]) ;; esac],[status_pam=maybe]) AC_SUBST(PAM_LIBS) if test "$status_pam" != "no"; then AC_CHECK_HEADERS(security/pam_appl.h) if test "$ac_cv_header_security_pam_appl_h" = "yes"; then AC_CHECK_LIB(dl, dlopen, [PAM_LIBS="-ldl"]) AC_CHECK_LIB(pam, pam_start, [status_pam=yes PAM_LIBS="-lpam $PAM_LIBS"], [status_pam=no], $PAM_LIBS) else status_pam=no fi fi AM_CONDITIONAL([PAM_COND], [test $status_pam = yes]) if test $status_pam = yes; then AC_DEFINE_UNQUOTED(WITH_PAM, 1, [PAM support enabled]) fi # Build inetd AC_ARG_ENABLE([inetd], AC_HELP_STRING([--enable-inetd], [build and install a replacement for SBINDIR/inetd]), [case $enableval in yes) AC_SUBST([INETD], [inetd]);; no) ;; esac]) sysvinit_status=maybe AC_ARG_ENABLE([sysvinit], AC_HELP_STRING([--enable-sysvinit], [compile the SystemV init support]), [sysvinit_status=$enableval]) if test $sysvinit_status = "maybe"; then AC_TRY_COMPILE([#ifdef HAVE_UTMPX_H # include #else # include #endif ], [int x = RUN_LVL;], [sysvinit_status=yes], [sysvinit_status=no]) fi test $sysvinit_status = "no" PIES_SYSVINIT_ENABLED=$? AC_DEFINE_UNQUOTED([PIES_SYSVINIT_ENABLED],[$PIES_SYSVINIT_ENABLED], [whether SystemV init support is compiled]) AM_CONDITIONAL([PIES_COND_SYSVINIT],[test $sysvinit_status = "yes"]) AH_BOTTOM([ # ifndef ATTRIBUTE_NORETURN # define ATTRIBUTE_NORETURN __attribute__ ((__noreturn__)) # endif ]) # ################################# # Select interface used to close file descriptors greater than or # equal to the given one. # # Variants: # 1. closefrom call (FreeBSD) # 2. F_CLOSEM fcntl (NetBSD, AIX, IRIX) # 3. proc_pidinfo call (Darwin) # 4. /proc/self/fd filesystem (Linux) # 5. Brute force # # The defines created here direct conditionalal compilation in # lib/closefds.c AC_CHECK_FUNCS([closefrom]) AC_CHECK_DECL([F_CLOSEM], AC_DEFINE([HAVE_FCNTL_CLOSEM], [1], [Use F_CLOSEM fcntl for mu_close_fds]), [], [#include #include ]) AC_CHECK_HEADERS([libproc.h]) AC_CHECK_FUNCS([proc_pidinfo]) if test -d "/proc/self/fd" ; then AC_DEFINE([HAVE_PROC_SELF_FD], [1], [Define if you have /proc/self/fd]) fi # ############################## AC_SUBST([DEFAULT_PIES_CONTROL_URL],['unix:///tmp/$${PIES_INSTANCE}.ctl']) AC_ARG_VAR([DEFAULT_PIES_CONTROL_URL], [URL of the default control socket]) AC_SUBST([DEFAULT_INIT_CONTROL_URL],['unix:///dev/init.ctl']) AC_ARG_VAR([DEFAULT_INIT_CONTROL_URL], [URL of the default control socket]) AC_SUBST([EMERGENCY_SHELL],['/sbin/sulogin']) AC_ARG_VAR([EMERGENCY_SHELL],[Filename of the emergency shell]) IMPRIMATUR_INIT # Initialize the test suite. AC_CONFIG_TESTDIR(tests) AC_CONFIG_FILES([tests/Makefile tests/atlocal]) AM_MISSING_PROG([AUTOM4TE], [autom4te]) AC_CONFIG_COMMANDS([status],[ cat <