dnl Process this file with autoconf to produce a configure script.
-AC_PREREQ(2.61)
+AC_PREREQ(2.69)
AC_INIT([MeshLink], [0.1])
DX_PS_FEATURE(OFF)
DX_INIT_DOXYGEN([MeshLink], [$(top_srcdir)/Doxyfile])
# Enable GNU extensions.
# Define this here, not in acconfig's @TOP@ section, since definitions
# in the latter don't make it into the configure-time tests.
-AC_GNU_SOURCE
+AC_USE_SYSTEM_EXTENSIONS
AC_DEFINE([__USE_BSD], 1, [Enable BSD extensions])
+AC_DEFINE([_POSIX_C_SOURCE], 200809L, [Enable POSIX features])
+AC_DEFINE([_DARWIN_C_SOURCE], 1, [Enable Darwin features])
dnl Checks for programs.
AM_PROG_CC_C_O
AM_PROG_AR
+AC_PROG_CC
AC_PROG_CC_C99
AC_PROG_CXX
AC_PROG_CPP
AC_PROG_INSTALL
AC_PROG_LN_S
-AC_PROG_LIBTOOL
+LT_INIT
AX_PTHREAD
dnl Check and set OS
AC_DEFINE(HAVE_MINGW, 1, [MinGW])
LIBS="$LIBS -lws2_32 -lgdi32 -lcrypt32"
;;
+ *darwin* | *ios*)
+ LIBS="$LIBS -framework Foundation -framework SystemConfiguration"
+ ;;
esac
AM_CONDITIONAL(LINUX, test "$linux" = true)
LIBS="$LIBS -L/sw/lib"
fi
+AX_CHECK_COMPILE_FLAG([-std=c11], [CFLAGS="$CFLAGS -std=c11"])
+
dnl Compiler hardening flags
dnl No -fstack-protector-all because it doesn't work on all platforms or architectures.
]
);
-dnl Allow building without Catta
-AC_ARG_ENABLE([catta], AS_HELP_STRING([--disable-catta], [disable linking with the Catta library]))
-AS_IF([test "x$enable_catta" != "xno"],
- AC_DEFINE(HAVE_CATTA, 1, [Link with Catta])
- AC_CONFIG_SUBDIRS([catta])
-)
-AM_CONDITIONAL(CATTA, test "x$enable_catta" != "xno")
-
dnl UTCP debug flags
AC_ARG_ENABLE([utcp_debug], AS_HELP_STRING([--enable-utcp-debug], [compile utcp with debug output]))
AS_IF([test "x$enable_utcp_debug" = "xyes"],
dnl Checks for header files.
dnl We do this in multiple stages, because unlike Linux all the other operating systems really suck and don't include their own dependencies.
-AC_CHECK_HEADERS([syslog.h sys/file.h sys/param.h sys/resource.h sys/socket.h sys/time.h sys/un.h sys/wait.h netdb.h arpa/inet.h dirent.h curses.h ifaddrs.h])
+AC_CHECK_HEADERS([syslog.h sys/file.h sys/param.h sys/resource.h sys/socket.h sys/time.h sys/un.h sys/wait.h netdb.h arpa/inet.h dirent.h curses.h ifaddrs.h stdatomic.h])
dnl Checks for typedefs, structures, and compiler characteristics.
MeshLink_ATTRIBUTE(__malloc__)
MeshLink_ATTRIBUTE(__warn_unused_result__)
dnl Checks for library functions.
-AC_TYPE_SIGNAL
AC_CHECK_FUNCS([asprintf fchmod fork gettimeofday random pselect select setns strdup usleep getifaddrs freeifaddrs],
[], [], [#include "$srcdir/src/have.h"]
)