4 # See the LICENSE file for the license associated with this file.
6 AC_INIT([libtpms], [0.6.0])
8 AC_CONFIG_SRCDIR(Makefile.am)
10 AM_CONFIG_HEADER(config.h)
12 AC_CONFIG_MACRO_DIR([m4])
14 AM_INIT_AUTOMAKE([foreign 1.6 subdir-objects])
16 LIBTPMS_VER_MAJOR=`echo $PACKAGE_VERSION | awk -F. '{print $1}'`
17 LIBTPMS_VER_MINOR=`echo $PACKAGE_VERSION | awk -F. '{print $2}'`
18 LIBTPMS_VER_MICRO=`echo $PACKAGE_VERSION | awk -F. '{print $3}'`
19 LIBTPMS_VERSION=$PACKAGE_VERSION
20 LIBTPMS_VERSION_INFO=`expr $LIBTPMS_VER_MAJOR + $LIBTPMS_VER_MINOR`:$LIBTPMS_VER_MICRO:$LIBTPMS_VER_MINOR
22 AC_SUBST([LIBTPMS_VER_MAJOR])
23 AC_SUBST([LIBTPMS_VER_MINOR])
24 AC_SUBST([LIBTPMS_VER_MICRO])
25 AC_SUBST([LIBTPMS_VERSION])
26 AC_SUBST([LIBTPMS_VERSION_INFO])
29 AC_MSG_CHECKING([for debug-enabled build])
30 AC_ARG_ENABLE(debug, AC_HELP_STRING([--enable-debug], [create a debug build]),
31 [if test "$enableval" = "yes"; then
41 # If the user has not set CFLAGS, do something appropriate
42 test_CFLAGS=${CFLAGS+set}
43 if test "$test_CFLAGS" != set; then
44 if test "$DEBUG" == "yes"; then
45 CFLAGS="-O0 -g -DDEBUG"
49 elif test "$DEBUG" == "yes"; then
50 CFLAGS="$CFLAGS -O0 -g -DDEBUG"
54 if test "$DEBUG" == "yes"; then
55 debug_defines="-DTPM_DEBUG"
56 # Enable the following only if ABSOLUTELY necessary
57 # volatile state will be written and behavior changes
58 #"-DTPM_VOLATILE_STORE"
60 AC_SUBST(DEBUG_DEFINES, $debug_defines)
64 AC_ARG_WITH([openssl],
65 AC_HELP_STRING([--with-openssl],
66 [build libtpms with openssl library]),
68 [AES_set_encrypt_key],
70 AC_MSG_ERROR(Faulty openssl crypto library))
71 AC_CHECK_HEADERS([openssl/aes.h],[],
72 AC_MSG_ERROR(Is openssl-devel/libssl-dev installed?))
73 AC_MSG_RESULT([Building with openssl crypto library])
80 AM_CONDITIONAL(LIBTPMS_USE_FREEBL, true)
81 AM_CONDITIONAL(LIBTPMS_USE_OPENSSL, false)
82 AC_DEFINE([USE_FREEBL_CRYPTO_LIBRARY],
84 [use freebl crypto library])
88 AC_CHECK_HEADERS([gmp.h],[],
89 AC_MSG_ERROR(gmp-devel/libgmp-dev is bad))
91 CFLAGS="$(nspr-config --cflags)"
92 if test $? -ne 0; then
93 AC_MSG_ERROR(Could not find nspr-config. Is nspr-devel/libnspr4-dev installed?)
96 AC_CHECK_HEADERS([plbase64.h],[],
97 AC_MSG_ERROR(You must install nspr-devel/libnspr4-dev))
99 CFLAGS="$(nss-config --cflags) $CFLAGS"
100 if test $? -ne 0; then
101 AC_MSG_ERROR(Could not find nss-config. Is nss-devel/libnss3-dev installed?)
103 CPPFLAGS="$CPPFLAGS $CFLAGS"
104 AC_CHECK_HEADERS([sslerr.h],[],
105 AC_MSG_ERROR(nss-devel/libnss3-dev is bad))
107 # Check for missing headers
108 AC_CHECK_HEADERS([blapi.h],[],
109 AC_MSG_ERROR(nss-softokn-freebl-devel/libnss3-dev is missing blapi.h))
110 # Check for missing freebl library or missing library functions
112 LIBS="$(nss-config --libs) $(nspr-config --libs)"
113 AC_SEARCH_LIBS([AES_CreateContext], [freebl],[],
114 AC_MSG_ERROR("Could not find AES_CreateContext(). Is nss-softokn-freebl-devel/libnss3-dev installed?"),
117 CFLAGS="$CFLAGS_save $CFLAGS"
120 AM_CONDITIONAL(LIBTPMS_USE_FREEBL, false)
121 AM_CONDITIONAL(LIBTPMS_USE_OPENSSL, true)
122 AC_DEFINE([USE_OPENSSL_CRYPTO_LIBRARY],
124 [use openssl crypto library])
133 #AM_GNU_GETTEXT_VERSION([0.15])
134 #AM_GNU_GETTEXT([external])
142 # Some version of gcc fail with -Wstack-protector enabled
143 TMP="$($CC -fstack-protector-strong 2>&1)"
144 if echo $TMP | $GREP 'unrecognized command line option' >/dev/null; then
145 HARDENING_CFLAGS="-fstack-protector "
147 HARDENING_CFLAGS="-fstack-protector-strong "
150 dnl Must not have -O0 but must have a -O for -D_FORTIFY_SOURCE=2
151 TMP1="$(echo $CFLAGS | sed -n 's/.*\(-O0\).*/\1/p')"
152 TMP2="$(echo $CFLAGS | sed -n 's/.*\(-O\).*/\1/p')"
153 if test -z "$TMP1" && test -n "$TPM2"; then
154 HARDENING_CFLAGS+="-D_FORTIFY_SOURCE=2 "
156 dnl Check ld for 'relro' and 'now'
157 if $LD --help 2>&1 | $GREP '\-z relro ' > /dev/null; then
158 HARDENING_CFLAGS+="-Wl,-z,relro "
160 if $LD --help 2>&1 | $GREP '\-z now ' > /dev/null; then
161 HARDENING_CFLAGS+="-Wl,-z,now "
163 AC_SUBST([HARDENING_CFLAGS])
165 if test "$test_CFLAGS" != set; then
166 CFLAGS="$CFLAGS -Wall -Werror -Wreturn-type -Wsign-compare"
169 AC_CONFIG_FILES(Makefile \
172 include/libtpms/Makefile \
173 include/libtpms/tpm_library.h \
181 if test -z "$enable_debug" ; then
186 echo "CFLAGS=$CFLAGS"
187 echo "HARDENING_CFLAGS=$HARDENING_CFLAGS"
188 echo "LDFLAGS=$LDFLAGS"
190 echo "Version to build : $PACKAGE_VERSION"
191 echo "Crypto library : $cryptolib"
192 echo "Debug build : $enable_debug"