X-Git-Url: http://gitweb.michael.orlitzky.com/?p=apply-default-acl.git;a=blobdiff_plain;f=configure.ac;h=34abc0b259e77f2e846d18fe5419897905d90a31;hp=0ec9c63bb5cd01c718720895e1bacd88d78adac9;hb=HEAD;hpb=4377ba611b05659716456502975c738870428864 diff --git a/configure.ac b/configure.ac index 0ec9c63..5704fdd 100644 --- a/configure.ac +++ b/configure.ac @@ -1,21 +1,62 @@ -# -*- Autoconf -*- -# Process this file with autoconf to produce a configure script. - -AC_PREREQ([2.68]) -AC_INIT([apply-default-acl], [0.0.4], [michael@orlitzky.com]) -AM_INIT_AUTOMAKE +AC_PREREQ([2.71]) +AC_INIT([apply-default-acl],[0.4.4],[michael@orlitzky.com]) +# Store build artifacts in this directory to keep the house clean. +AC_CONFIG_AUX_DIR([build-aux]) +AM_INIT_AUTOMAKE([-Wall foreign no-dist-gzip dist-xz tar-ustar]) +AC_CONFIG_FILES([Makefile src/Makefile src/libadacl.pc]) AC_CONFIG_SRCDIR([src/apply-default-acl.c]) -AC_CONFIG_FILES([Makefile src/Makefile]) +AC_CONFIG_MACRO_DIRS([m4]) + +# Not used, but keeps the build log clean. +AC_CONFIG_HEADERS([config.h]) + +# Adds --with-pkgconfigdir to the ./configure script and defines +# the @pkgconfigdir@ variable to be used elsewhere. +PKG_INSTALLDIR # Checks for programs. AC_PROG_CC +AM_PROG_AR + +# Predefined header checks. +AC_HEADER_DIRENT # dirent.h +AC_HEADER_STAT # sys/stat.h +AC_HEADER_STDBOOL # stdbool.h -# Checks for header files. -AC_CHECK_HEADERS([limits.h stdlib.h string.h sys/acl.h unistd.h]) +# Check for header files not covered by the predefined macros above. +AC_HEADER_REQUIRE(acl/libacl.h) +AC_HEADER_REQUIRE(fcntl.h) +AC_HEADER_REQUIRE(getopt.h) +AC_HEADER_REQUIRE(libgen.h) +AC_HEADER_REQUIRE(limits.h) +AC_HEADER_REQUIRE(linux/xattr.h) +AC_HEADER_REQUIRE(sys/acl.h) +AC_HEADER_REQUIRE(unistd.h) -# Checks for typedefs, structures, and compiler characteristics. -AC_HEADER_STDBOOL -AC_TYPE_MODE_T +# We need openat() with O_NOFOLLOW from POSIX-2008. Without them, we +# can't operate securely; I would rather refuse to be built. +AC_CHECK_FUNC(openat, + [], + AC_MSG_ERROR(missing required openat function)) +AC_CHECK_DECLS([O_DIRECTORY], + [], + [AC_MSG_ERROR(missing required O_DIRECTORY flag in fcntl.h)], + [[#include ]]) +AC_CHECK_DECLS([O_NOFOLLOW], + [], + [AC_MSG_ERROR(missing required O_NOFOLLOW flag in fcntl.h)], + [[#include ]]) +AC_CHECK_DECLS([O_PATH], + [], + [AC_MSG_ERROR(missing required O_PATH flag in fcntl.h)], + [[#define _GNU_SOURCE + #include ]]) +# And check for the GNU/BSD extension asprintf(), which lets us avoid +# praying to the PATH_MAX gods while constructing long paths. +AC_CHECK_FUNC(asprintf, + [], + AC_MSG_ERROR(missing required asprintf function)) +LT_INIT([disable-static]) AC_OUTPUT