2016-06-01 01:08:43 +02:00
|
|
|
# -*- Autoconf -*-
|
|
|
|
# Process this file with autoconf to produce a configure script.
|
|
|
|
|
|
|
|
AC_PREREQ([2.69])
|
|
|
|
AC_INIT([libbrandt], [0.1], [teichm@net.in.tum.de])
|
|
|
|
|
|
|
|
AM_INIT_AUTOMAKE([1.15])
|
2016-07-13 01:05:08 +02:00
|
|
|
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
|
2016-06-01 01:08:43 +02:00
|
|
|
|
2016-06-19 22:37:31 +02:00
|
|
|
AC_CONFIG_SRCDIR([brandt.c])
|
2016-07-13 13:43:07 +02:00
|
|
|
AC_CONFIG_HEADERS([brandt_config.h])
|
|
|
|
|
|
|
|
# Checks for header files.
|
|
|
|
AC_CHECK_HEADERS([stdint.h stdlib.h string.h unistd.h])
|
2016-06-01 01:08:43 +02:00
|
|
|
|
|
|
|
# Checks for programs.
|
|
|
|
AC_PROG_CC_C99
|
2016-06-01 09:59:39 +02:00
|
|
|
LT_INIT([pic-only])
|
2016-06-01 01:08:43 +02:00
|
|
|
|
2016-07-12 23:22:11 +02:00
|
|
|
# fix std
|
|
|
|
CC=$(echo "${CC}" | sed 's/-std=gnu99/-std=c99/')
|
2016-07-13 00:30:46 +02:00
|
|
|
CPP=$(echo "${CPP}" | sed 's/-std=gnu99/-std=c99/')
|
2016-07-12 23:22:11 +02:00
|
|
|
|
2016-07-13 01:05:08 +02:00
|
|
|
# Checks for typedefs, structures, and compiler characteristics.
|
|
|
|
AC_TYPE_SIZE_T
|
|
|
|
AC_TYPE_UINT16_T
|
|
|
|
|
2016-06-01 01:08:43 +02:00
|
|
|
# Checks for libraries.
|
2016-06-28 22:11:18 +02:00
|
|
|
AC_SEARCH_LIBS([gcry_check_version], [gcrypt], [], [AC_MSG_ERROR([unable to find the gcry_check_version() function from libgcrypt])])
|
2016-06-01 01:08:43 +02:00
|
|
|
|
|
|
|
# Checks for header files.
|
2016-06-28 22:11:18 +02:00
|
|
|
AC_CHECK_HEADER(gcrypt.h, [], [AC_MSG_ERROR([unable to find the gcrypt.h header file from libgcrypt])], [])
|
2016-06-01 01:08:43 +02:00
|
|
|
|
2016-07-12 23:22:11 +02:00
|
|
|
SAVE_LIBS=$LIBS
|
2016-07-13 11:11:34 +02:00
|
|
|
|
2016-07-13 13:38:46 +02:00
|
|
|
libgnunetutil=0
|
2016-07-13 11:11:34 +02:00
|
|
|
AC_MSG_CHECKING([for libgnunetutil])
|
|
|
|
AC_ARG_WITH(gnunet,
|
|
|
|
[AS_HELP_STRING([--with-gnunet=PFX], [base of GNUnet installation])],
|
|
|
|
[AC_MSG_RESULT([given as $with_gnunet])],
|
|
|
|
[AC_MSG_RESULT(not given)
|
|
|
|
with_gnunet=yes])
|
|
|
|
AS_CASE([$with_gnunet],
|
|
|
|
[yes], [],
|
|
|
|
[no], [AC_MSG_ERROR([--with-gnunet is required])],
|
|
|
|
[LDFLAGS="-L$with_gnunet/lib $LDFLAGS"
|
|
|
|
CPPFLAGS="-I$with_gnunet/include $CPPFLAGS"])
|
|
|
|
AC_CHECK_HEADERS([gnunet/platform.h gnunet/gnunet_util_lib.h],
|
|
|
|
[AC_CHECK_LIB([gnunetutil], [GNUNET_SCHEDULER_run], libgnunetutil=1)],
|
|
|
|
[], [#ifdef HAVE_GNUNET_PLATFORM_H
|
|
|
|
#include <gnunet/platform.h>
|
|
|
|
#endif])
|
|
|
|
AS_IF([test $libgnunetutil != 1],
|
|
|
|
[AC_MSG_ERROR([[
|
|
|
|
***
|
|
|
|
*** You need libgnunetutil to build this program.
|
|
|
|
*** This library is part of GNUnet, available at
|
|
|
|
*** https://gnunet.org
|
|
|
|
*** ]])])
|
|
|
|
|
2016-07-12 23:22:11 +02:00
|
|
|
# restore LIBS
|
|
|
|
LIBS=$SAVE_LIBS
|
2016-06-01 01:08:43 +02:00
|
|
|
|
2016-07-13 13:43:07 +02:00
|
|
|
|
|
|
|
# Adam shostack suggests the following for Windows:
|
|
|
|
# -D_FORTIFY_SOURCE=2 -fstack-protector-all
|
|
|
|
AC_ARG_ENABLE(gcc-hardening,
|
|
|
|
AS_HELP_STRING(--enable-gcc-hardening, enable compiler security checks),
|
|
|
|
[if test x$enableval = xyes; then
|
|
|
|
CFLAGS="$CFLAGS -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-all"
|
|
|
|
CFLAGS="$CFLAGS -fwrapv -fPIE -Wstack-protector"
|
|
|
|
CFLAGS="$CFLAGS --param ssp-buffer-size=1"
|
|
|
|
LDFLAGS="$LDFLAGS -pie"
|
|
|
|
fi])
|
|
|
|
|
|
|
|
|
|
|
|
# Linker hardening options
|
|
|
|
# Currently these options are ELF specific - you can't use this with MacOSX
|
|
|
|
AC_ARG_ENABLE(linker-hardening,
|
|
|
|
AS_HELP_STRING(--enable-linker-hardening, enable linker security fixups),
|
|
|
|
[if test x$enableval = xyes; then
|
|
|
|
LDFLAGS="$LDFLAGS -z relro -z now"
|
|
|
|
fi])
|
|
|
|
|
|
|
|
# Checks for typedefs, structures, and compiler characteristics.
|
|
|
|
AC_TYPE_PID_T
|
|
|
|
AC_TYPE_SIZE_T
|
|
|
|
AC_TYPE_UINT16_T
|
|
|
|
AC_TYPE_UINT32_T
|
|
|
|
AC_TYPE_UINT64_T
|
|
|
|
AC_TYPE_INTMAX_T
|
|
|
|
AC_TYPE_UINTMAX_T
|
|
|
|
|
|
|
|
|
2016-06-12 00:26:05 +02:00
|
|
|
AC_CONFIG_FILES([
|
|
|
|
Makefile
|
|
|
|
doc/Makefile
|
|
|
|
])
|
2016-06-01 01:08:43 +02:00
|
|
|
AC_OUTPUT
|