]> gitweb.michael.orlitzky.com - apply-default-acl.git/blob - configure.ac
020088283a9f607d9427b970ef8e843678acccaf
[apply-default-acl.git] / configure.ac
1 AC_PREREQ([2.68])
2 AC_INIT([apply-default-acl], [0.4.2], [michael@orlitzky.com])
3 # Store build artifacts in this directory to keep the house clean.
4 AC_CONFIG_AUX_DIR([build-aux])
5 AM_INIT_AUTOMAKE([-Wall foreign no-dist-gzip dist-xz tar-ustar])
6 AC_CONFIG_FILES([Makefile src/Makefile])
7 AC_CONFIG_SRCDIR([src/apply-default-acl.c])
8 AC_CONFIG_MACRO_DIRS([m4])
9
10 # Not used, but keeps the build log clean.
11 AC_CONFIG_HEADERS([config.h])
12
13 # Checks for programs.
14 AC_PROG_CC
15 AM_PROG_AR
16
17 # Predefined header checks.
18 AC_HEADER_DIRENT # dirent.h
19 AC_HEADER_STAT # sys/stat.h
20 AC_HEADER_STDBOOL # stdbool.h
21 AC_HEADER_STDC # stdlib.h string.h (implied: errno.h stdio.h)
22
23 # Check for header files not covered by the predefined macros above.
24 AC_HEADER_REQUIRE(acl/libacl.h)
25 AC_HEADER_REQUIRE(fcntl.h)
26 AC_HEADER_REQUIRE(getopt.h)
27 AC_HEADER_REQUIRE(libgen.h)
28 AC_HEADER_REQUIRE(limits.h)
29 AC_HEADER_REQUIRE(linux/xattr.h)
30 AC_HEADER_REQUIRE(sys/acl.h)
31 AC_HEADER_REQUIRE(unistd.h)
32
33 # We need openat() with O_NOFOLLOW from POSIX-2008. Without them, we
34 # can't operate securely; I would rather refuse to be built.
35 AC_CHECK_FUNC(openat,
36 [],
37 AC_MSG_ERROR(missing required openat function))
38 AC_CHECK_DECLS([O_DIRECTORY],
39 [],
40 [AC_MSG_ERROR(missing required O_DIRECTORY flag in fcntl.h)],
41 [[#include <fcntl.h>]])
42 AC_CHECK_DECLS([O_NOFOLLOW],
43 [],
44 [AC_MSG_ERROR(missing required O_NOFOLLOW flag in fcntl.h)],
45 [[#include <fcntl.h>]])
46 AC_CHECK_DECLS([O_PATH],
47 [],
48 [AC_MSG_ERROR(missing required O_PATH flag in fcntl.h)],
49 [[#define _GNU_SOURCE
50 #include <fcntl.h>]])
51
52 # And check for the GNU/BSD extension asprintf(), which lets us avoid
53 # praying to the PATH_MAX gods while constructing long paths.
54 AC_CHECK_FUNC(asprintf,
55 [],
56 AC_MSG_ERROR(missing required asprintf function))
57
58 LT_INIT([disable-static])
59 AC_OUTPUT