blob: e7417276f0acc5cb208e365f002e08fe27d6dc99 [file] [log] [blame]
Brian Aker95d9fd52012-10-15 22:44:03 -04001AC_INIT([tlsdate],[0.0.1],[jacob at appelbaum.net])
2AC_CONFIG_AUX_DIR([config])
3AC_CONFIG_MACRO_DIR([m4])
David Goulet0809df12012-07-31 23:27:34 -04004
Brian Aker95d9fd52012-10-15 22:44:03 -04005AC_CANONICAL_TARGET
6AC_ARG_PROGRAM
7AC_USE_SYSTEM_EXTENSIONS
8
9AM_INIT_AUTOMAKE([-Wall -Werror -Wno-portability subdir-objects foreign tar-ustar])
10
11AC_PREREQ([2.63])
12
Brian Akerb12abad2012-10-16 01:25:00 -040013AC_CONFIG_HEADERS([config.h:config.in])dnl Keep filename to 8.3 for MS-DOS.
Brian Aker95d9fd52012-10-15 22:44:03 -040014
15LT_PREREQ([2.2])
David Goulet0809df12012-07-31 23:27:34 -040016LT_INIT
Brian Aker95d9fd52012-10-15 22:44:03 -040017LT_LANG([C])
18gl_VISIBILITY
19m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
Jacob Appelbaum5de8b0a2012-02-02 01:43:22 +010020
Brian Akerb12abad2012-10-16 01:25:00 -040021CONFIG_EXTRA
Jacob Appelbaum5de8b0a2012-02-02 01:43:22 +010022
Jacob Appelbaum96390032012-07-15 15:53:13 -040023dnl Here we should build a small program to fetch the build system time in a portable
24dnl manner. We have no Win32 users, we can fix this if we ever find one that
25dnl cares.
26COMPILE_DATE=`date +%s`
Brian Aker95d9fd52012-10-15 22:44:03 -040027AC_SUBST([COMPILE_DATE])
Jacob Appelbaum96390032012-07-15 15:53:13 -040028AC_DEFINE_UNQUOTED([RECENT_COMPILE_DATE],
29 [(uint32_t) ${COMPILE_DATE}],
30 [Time in seconds since the Disco epoch at build time])
31
Brian Aker870a3142012-10-17 02:10:49 -040032# Build up the directory we will use to install certs
33TLSDATE_CA_ROOTS="${sysconfdir}/$PACKAGE_NAME/ca-roots"
34AC_SUBST([TLSDATE_CA_ROOTS])
35
Jacob Appelbaum5de8b0a2012-02-02 01:43:22 +010036# Required headers
Brian Aker33fe4bf2012-10-17 00:30:18 -040037# First check to see if openssl is installed
Brian Akere601a4d2012-10-17 01:24:51 -040038AC_CHECK_HEADERS([openssl/ssl.h], ,[AC_MSG_ERROR([OpenSSL is not installed, openssl/sslh is missing])])
Brian Aker33fe4bf2012-10-17 00:30:18 -040039
Brian Aker6fa3a082012-10-17 00:16:32 -040040AC_CHECK_HEADERS([arpa/inet.h], ,[AC_MSG_ERROR([Required headers missing; compilation will not succeed])])
41AC_CHECK_HEADERS([getopt.h], ,[AC_MSG_ERROR([Required headers missing; compilation will not succeed])])
42AC_CHECK_HEADERS([grp.h], ,[AC_MSG_ERROR([Required headers missing; compilation will not succeed])])
43AC_CHECK_HEADERS([openssl/bio.h], ,[AC_MSG_ERROR([Required headers missing; compilation will not succeed])])
44AC_CHECK_HEADERS([openssl/err.h], ,[AC_MSG_ERROR([Required headers missing; compilation will not succeed])])
45AC_CHECK_HEADERS([openssl/evp.h], ,[AC_MSG_ERROR([Required headers missing; compilation will not succeed])])
Brian Aker6fa3a082012-10-17 00:16:32 -040046AC_CHECK_HEADERS([pwd.h], ,[AC_MSG_ERROR([Required headers missing; compilation will not succeed])])
47AC_CHECK_HEADERS([stdint.h], ,[AC_MSG_ERROR([Required headers missing; compilation will not succeed])])
48AC_CHECK_HEADERS([stdio.h], ,[AC_MSG_ERROR([Required headers missing; compilation will not succeed])])
49AC_CHECK_HEADERS([stdlib.h], ,[AC_MSG_ERROR([Required headers missing; compilation will not succeed])])
50AC_CHECK_HEADERS([sys/mman.h], ,[AC_MSG_ERROR([Required headers missing; compilation will not succeed])])
51AC_CHECK_HEADERS([sys/time.h], ,[AC_MSG_ERROR([Required headers missing; compilation will not succeed])])
52AC_CHECK_HEADERS([sys/types.h], ,[AC_MSG_ERROR([Required headers missing; compilation will not succeed])])
53AC_CHECK_HEADERS([sys/wait.h], ,[AC_MSG_ERROR([Required headers missing; compilation will not succeed])])
54AC_CHECK_HEADERS([time.h], ,[AC_MSG_ERROR([Required headers missing; compilation will not succeed])])
55AC_CHECK_HEADERS([unistd.h], ,[AC_MSG_ERROR([Required headers missing; compilation will not succeed])])
Jacob Appelbaum5de8b0a2012-02-02 01:43:22 +010056
Brian Aker6fa3a082012-10-17 00:16:32 -040057AC_CHECK_FUNCS([setresuid])
58AC_CHECK_FUNCS([gettimeofday])
Christian Grothoffbd15a222012-02-14 00:40:57 +010059
Brian Akerd4ad5192012-10-16 03:55:56 -040060# Check for -lrt
61AC_CHECK_LIB([rt], [clock_gettime], [
62 RT_LIB="-lrt"
63 AC_SUBST(RT_LIB)
64 AC_DEFINE([HAVE_LIBRT], [1], [Have clock_gettime])
65 ],[
Brian Akere601a4d2012-10-17 01:24:51 -040066 AC_MSG_ERROR([Your system lacks clock_gettime])
Brian Akerd4ad5192012-10-16 03:55:56 -040067 ])
68
Brian Akerb12abad2012-10-16 01:25:00 -040069# Debug and hardening flags all in one shot
70# Alwas do this at the end, otherwise you end up filtering system/other libraries
71AC_DEFUN([LOCAL_CHECK_FLAGS],[
72 AC_REQUIRE([AX_CHECK_LINK_FLAG])
73 AC_REQUIRE([AX_APPEND_COMPILE_FLAGS])
74 AC_LANG_PUSH([C])
75 CFLAGS=
76 LIBS=
77 AX_APPEND_COMPILE_FLAGS([-g -O1 -Wall])
78 AX_APPEND_COMPILE_FLAGS([-fno-strict-aliasing])
79 AX_APPEND_COMPILE_FLAGS([-D_FORTIFY_SOURCE=2 -fstack-protector-all])
80 AX_APPEND_COMPILE_FLAGS([-fwrapv -fPIE -Wstack-protector])
Brian Aker870a3142012-10-17 02:10:49 -040081 AX_APPEND_COMPILE_FLAGS([--param=ssp-buffer-size=1])
82 AX_CHECK_LINK_FLAG([-z relro -z now])
83 AX_CHECK_LINK_FLAG([-pie])
Brian Akerb12abad2012-10-16 01:25:00 -040084 AC_LANG_POP
85 ])
86LOCAL_CHECK_FLAGS
87
Brian Aker95d9fd52012-10-15 22:44:03 -040088AC_CONFIG_FILES([Makefile])
89AC_OUTPUT