]> gitweb.michael.orlitzky.com - apply-default-acl.git/blobdiff - configure.ac
configure.ac: "autoupdate" to autoconf-2.71.
[apply-default-acl.git] / configure.ac
index 7fe66377651f115fa0a808b3372a0fed31755c5e..5704fdd4b7c168b87f0a409deb38648c0c1e8711 100644 (file)
@@ -1,21 +1,62 @@
-#                                               -*- Autoconf -*-
-# Process this file with autoconf to produce a configure script.
+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_MACRO_DIRS([m4])
 
-AC_PREREQ([2.68])
-AC_INIT([reapply_default_acl], [0.0.2], [michael@orlitzky.com])
-AM_INIT_AUTOMAKE
-AC_CONFIG_SRCDIR([src/reapply_default_acl.c])
-AC_CONFIG_FILES([Makefile src/Makefile])
+# 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 <fcntl.h>]])
+AC_CHECK_DECLS([O_NOFOLLOW],
+               [],
+               [AC_MSG_ERROR(missing required O_NOFOLLOW flag in fcntl.h)],
+               [[#include <fcntl.h>]])
+AC_CHECK_DECLS([O_PATH],
+               [],
+               [AC_MSG_ERROR(missing required O_PATH flag in fcntl.h)],
+               [[#define _GNU_SOURCE
+                #include <fcntl.h>]])
 
+# 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