-# -*- Autoconf -*-
-# Process this file with autoconf to produce a configure script.
-
AC_PREREQ([2.68])
-AC_INIT([apply-default-acl], [0.0.6], [michael@orlitzky.com])
-AM_INIT_AUTOMAKE([foreign]) # don't bug me a bout README, NEWS, etc.
+AC_INIT([apply-default-acl], [0.3.0], [michael@orlitzky.com])
+AM_INIT_AUTOMAKE([-Wall foreign no-dist-gzip dist-xz])
AC_CONFIG_SRCDIR([src/apply-default-acl.c])
AC_CONFIG_FILES([Makefile src/Makefile])
AC_HEADER_STAT # sys/stat.h
AC_HEADER_STDBOOL # stdbool.h
AC_HEADER_STDC # stdlib.h string.h (implied: errno.h limits.h stdio.h)
-AC_TYPE_MODE_T
# Check for header files not covered by the predefined macros above.
-AC_CHECK_HEADERS([ fcntl.h ftw.h getopt.h libgen.h limits.h sys/acl.h ])
-AC_CHECK_HEADERS([ sys/libacl.h sys/types.h unistd.h ])
+AC_CHECK_HEADERS([ fcntl.h ftw.h getopt.h libgen.h limits.h linux/xattr.h ])
+AC_CHECK_HEADERS([ sys/acl.h sys/libacl.h sys/types.h unistd.h ])
-LT_INIT
+# 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>]])
+LT_INIT
AC_OUTPUT