From a4dc4fbcc1b131061dcccd5cdcc2395d9a2ba784 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Mon, 15 Apr 2024 15:17:26 +0200 Subject: Adding upstream version 23.7. Signed-off-by: Daniel Baumann --- configure.ac | 233 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 233 insertions(+) create mode 100644 configure.ac (limited to 'configure.ac') diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..81c8a0a --- /dev/null +++ b/configure.ac @@ -0,0 +1,233 @@ +dnl Process this file with autoconf to produce a configure script. +AC_PREREQ([2.69]) +AC_CONFIG_MACRO_DIR([m4]) +AC_INIT([psmisc],[m4_esyscmd(misc/git-version-gen .tarball-version)],[],[],[],[https://www.gitlab.com/psmisc/psmisc]) +AM_INIT_AUTOMAKE([foreign 1.11 subdir-objects -Wall -Wno-portability tar-pax no-dist-gzip dist-xz]) +AM_SILENT_RULES([yes]) +AC_CONFIG_SRCDIR([src/comm.h]) +AC_CONFIG_HEADERS([config.h]) + +dnl Checks for programs. +AC_USE_SYSTEM_EXTENSIONS(_GNU_SOURCE) +AC_PROG_CXX +AC_PROG_LN_S +AC_PROG_CC + +AC_DEFUN([PSMISC_PROG_PO4A], [ + AC_REQUIRE([AM_NLS]) + AC_CHECK_PROGS([PO4A], [po4a]) + AS_IF([test "$USE_NLS" = "yes" && test -n "$PO4A"], [ + USE_PO4A=yes + ], [ + USE_PO4A=no + ]) + AC_SUBST([USE_PO4A]) +]) +PSMISC_PROG_PO4A + +dnl checks for options +# SELinux support - off by default +DL_LIB= +AC_SUBST([WITH_SELINUX]) +AC_ARG_ENABLE([selinux], + [AS_HELP_STRING([--enable-selinux], [Enable Security-Enhanced Linux features])], + [enable_selinux=$enableval], + [enable_selinux="no"]) +if test "$enable_selinux" = "yes"; then + AC_DEFINE([WITH_SELINUX], [1], [Use Security-Enhanced Linux features]) + AC_SEARCH_LIBS([dlopen], [dl], [], + [AC_MSG_ERROR([dynamic linking unavailable, circumvent with --disable-selinux])]) + if test "x$ac_cv_search_dlopen" != "xnone required"; then + DL_LIB="$ac_cv_search_dlopen" + fi +fi +AC_SUBST([DL_LIB]) + +# AppArmor support - off by default +DL_LIB= +AC_SUBST([WITH_AppArmor]) +AC_ARG_ENABLE([apparmor], + [AS_HELP_STRING([--enable-apparmor], [Enable AppArmor features])], + [enable_apparmor=$enableval], + [enable_apparmor="no"]) +if test "$enable_apparmor" = "yes"; then + AC_DEFINE([WITH_APPARMOR], [1], [Use AppArmor features]) + AC_SEARCH_LIBS([dlopen], [dl], [], + [AC_MSG_ERROR([dynamic linking unavailable, circumvent with --disable-apparmor])]) + AC_CHECK_HEADER([sys/apparmor.h], [], + [AC_MSG_ERROR([Need AppArmor header files, circumvent with --disable-apparmor])]) + if test "x$ac_cv_search_dlopen" != "xnone required"; then + DL_LIB="$ac_cv_search_dlopen" + fi +fi +AC_SUBST([DL_LIB]) + +AC_CHECK_DECLS([SYS_statx], + [has_syscall_statx="yes"], + [has_syscall_statx="no"], + [[#include ]] +) + +# Check for linux specific statx(2) system call +AC_CHECK_HEADERS([sys/syscall.h]) +AC_CHECK_FUNCS([statx]) +AC_CHECK_DECLS([STATX_TYPE]) + +AC_SUBST([WITH_STATX]) +AC_ARG_ENABLE([statx], + [AS_HELP_STRING([--disable-statx], [Do not use linux specific statx(2) system call as replacement for stat(2), lstat(2), and fstat(2)])], + [], [enable_statx="yes"]) +if test "$enable_statx" = "yes"; then + AC_DEFINE([WITH_STATX], [1], [Use statx system call]) + if test "$has_syscall_statx" = "no" && "$have_statx" = "no"; then + AC_MSG_ERROR([statx() and SYS_statx not found, use --disable-statx to not use statx]) + fi + fi + +# Enable hardened compile and link flags +AC_ARG_ENABLE([harden_flags], + [AS_HELP_STRING([--disable-harden-flags], [disable hardened compilier and linker flags])], + [enable_harden_flags=$enableval], + [enable_harden_flags="yes"]) + +dnl ipv4 only option +AC_SUBST([WITH_IPV6]) +AC_ARG_ENABLE([ipv6], + [AS_HELP_STRING([--disable-ipv6], [Disable IPv6 checks (for uClibc)])], + [enable_ipv6=$enableval], + [enable_ipv6="yes"]) +if test "$enable_ipv6" = "yes"; then + AC_DEFINE([WITH_IPV6], [1], [Use IPv6 checks]) +fi + +dnl Checks for libraries. +AC_CHECK_LIB([tinfo], [tgetent], [TERMCAP_LIB=-ltinfo], + [ AC_CHECK_LIB([ncurses], [tgetent], [TERMCAP_LIB=-lncurses], + [ AC_CHECK_LIB([termcap], [tgetent], [TERMCAP_LIB=-ltermcap], + [ AC_MSG_ERROR([Cannot find tinfo, ncurses or termcap libraries]) + ] ) + ] ) + ] ) +AC_SUBST([TERMCAP_LIB]) + +dnl Checks for header files. +AC_HEADER_DIRENT + +AC_HEADER_SYS_WAIT +AC_CHECK_HEADERS([arpa/inet.h fcntl.h langinfo.h libintl.h limits.h locale.h mntent.h netdb.h netinet/in.h stdlib.h string.h sys/ioctl.h sys/socket.h termios.h unistd.h]) + +dnl Checks for typedefs, structures, and compiler characteristics. +AC_C_CONST +AC_TYPE_PID_T +AC_TYPE_SIZE_T +AC_CHECK_MEMBERS([struct stat.st_rdev]) +AC_TYPE_UID_T + +# Check that harden CFLAGS and LDFLAGS will compile +AS_IF([test "$enable_harden_flags" = "yes"], + HARDEN_CFLAGS="-g -O2 -fstack-protector-strong -Wformat -Werror=format-security" + [HARDEN_LDFLAGS="-Wl,-z,relro"] + [ AC_MSG_CHECKING([compiler supports harden flags]) + save_harden_cflags="$CFLAGS" + CFLAGS="$CFLAGS $HARDEN_CFLAGS" + AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,,)], + [AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no]); HARDEN_CFLAGS=''] + ) + CFLAGS="$save_harden_cflags"], + [HARDEN_CFLAGS="" + HARDEN_LDFLAGS=""]) +AC_SUBST([HARDEN_CFLAGS]) +AC_SUBST([HARDEN_LDFLAGS]) + +dnl Check for language stuff +AM_GNU_GETTEXT_VERSION([0.21]) +AM_GNU_GETTEXT([external]) + +dnl Must be after the gettext stuff as it sets build_cpu +AC_CHECK_MEMBERS([struct user_regs_struct.orig_eax, + struct user_regs_struct.eax, + struct user_regs_struct.ebx, + struct user_regs_struct.ecx, + struct user_regs_struct.edx, + struct user_regs_struct.orig_rax, + struct user_regs_struct.rax, + struct user_regs_struct.rdi, + struct user_regs_struct.rsi, + struct user_regs_struct.rdx], [],[], + [#include + #include ]) +AC_CHECK_MEMBERS([struct pt_regs.orig_gpr3, + struct pt_regs.gpr], [],[], [#include ]) +AC_CHECK_MEMBERS([struct pt_regs.uregs],[],[], [#include ]) +AC_CHECK_MEMBERS([struct user_pt_regs.regs],[],[], [#include ]) +AC_CHECK_MEMBERS([struct pt_regs.regs, + struct pt_regs.cp0_status],[],[], [#include ]) +AC_CHECK_MEMBERS([struct pt_regs.orig_d0, + struct pt_regs.d0],[],[], [#include ]) + +case ${host_os} in + gnu*) + want_fuser=no + ;; + *) + want_fuser=yes + ;; +esac +AM_CONDITIONAL(WANT_FUSER, test $want_fuser = yes) + +AM_CONDITIONAL(WANT_PEEKFD_I386, + test $ac_cv_member_struct_user_regs_struct_orig_eax = yes && + test $ac_cv_member_struct_user_regs_struct_eax = yes && + test $ac_cv_member_struct_user_regs_struct_ebx = yes && + test $ac_cv_member_struct_user_regs_struct_ecx = yes && + test $ac_cv_member_struct_user_regs_struct_edx = yes ) +AM_CONDITIONAL(WANT_PEEKFD_X86_64, + test $ac_cv_member_struct_user_regs_struct_orig_rax = yes && + test $ac_cv_member_struct_user_regs_struct_rax = yes && + test $ac_cv_member_struct_user_regs_struct_rdi = yes && + test $ac_cv_member_struct_user_regs_struct_rsi = yes && + test $ac_cv_member_struct_user_regs_struct_rdx = yes ) +AM_CONDITIONAL(WANT_PEEKFD_PPC, + test $ac_cv_member_struct_pt_regs_orig_gpr3 = yes && + test $ac_cv_member_struct_pt_regs_gpr = yes ) +AM_CONDITIONAL(WANT_PEEKFD_ARM, + test $ac_cv_member_struct_pt_regs_uregs = yes) +AM_CONDITIONAL(WANT_PEEKFD_ARM64, + test $ac_cv_member_struct_user_pt_regs_regs = yes) +AM_CONDITIONAL(WANT_PEEKFD_MIPS, + test $build_cpu = mipsel && + test $ac_cv_member_struct_pt_regs_regs = yes && + test $ac_cv_member_struct_pt_regs_cp0_status = yes) +AM_CONDITIONAL(WANT_PEEKFD_M68K, + test $ac_cv_member_struct_pt_regs_orig_d0 = yes && + test $ac_cv_member_struct_pt_regs_d0 = yes) + +dnl Checks for library functions. +AC_FUNC_CLOSEDIR_VOID +AC_FUNC_GETMNTENT +AC_PROG_GCC_TRADITIONAL +AC_FUNC_LSTAT +AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK +AC_FUNC_MALLOC +AC_FUNC_MEMCMP +AC_FUNC_REALLOC +AC_FUNC_STAT +AC_CHECK_FUNCS([atexit getmntent memset nl_langinfo regcomp rpmatch setlocale socket strcasecmp strchr strdup strerror strpbrk strrchr strtoul]) + +dnl Checks for Large File System +AC_SYS_LARGEFILE + +if test x"$DEJAGNU" = x +then + DEJAGNU="/dev/null" +fi +AC_SUBST(DEJAGNU) + +AC_CONFIG_FILES([Makefile + doc/Makefile + icons/Makefile + po/Makefile.in + man-po/Makefile + testsuite/Makefile]) +AC_OUTPUT -- cgit v1.2.3