mirror of https://github.com/wolfSSL/wolfTPM.git
Fix to handle `CFLAGS`. Added generation of configuration options in `wolftpm/options.h`. Cleanup of the `configure.ac`.
parent
114bd8974c
commit
dfe634be13
|
@ -27,3 +27,4 @@ RemoteSystemsTempFiles
|
|||
*.libs
|
||||
examples/wrap/wrap_test
|
||||
examples/native/native_test
|
||||
wolftpm/options.h
|
||||
|
|
117
configure.ac
117
configure.ac
|
@ -8,11 +8,14 @@ AC_INIT([wolftpm],[1.1.0],[https://github.com/wolfssl/wolfTPM/issues],[wolftpm],
|
|||
AC_PREREQ([2.63])
|
||||
AC_CONFIG_AUX_DIR([build-aux])
|
||||
|
||||
# The following sets CFLAGS to empty if unset on command line.
|
||||
: ${CFLAGS=""}
|
||||
: ${AR_FLAGS="cr"}
|
||||
|
||||
# Test ar for the "U" option. Should be checked before the libtool macros.
|
||||
xxx_ar_flags=$((ar --help) 2>&1)
|
||||
AS_CASE([$xxx_ar_flags],[*'use actual timestamps and uids/gids'*],[: ${AR_FLAGS="Ucru"}])
|
||||
|
||||
AC_CANONICAL_HOST
|
||||
AC_CANONICAL_BUILD
|
||||
|
||||
AM_INIT_AUTOMAKE([1.11 -Wall -Werror -Wno-portability foreign tar-ustar subdir-objects no-define color-tests])
|
||||
|
||||
|
@ -34,6 +37,7 @@ WOLFTPM_LIBRARY_VERSION=2:0:0
|
|||
# +- increment if interfaces have been added, removed or changed
|
||||
AC_SUBST([WOLFTPM_LIBRARY_VERSION])
|
||||
|
||||
|
||||
LT_PREREQ([2.2])
|
||||
LT_INIT([disable-static], [win32-dll])
|
||||
LT_LANG([C])
|
||||
|
@ -49,34 +53,28 @@ m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
|
|||
# Checks for programs.
|
||||
AC_PROG_CC
|
||||
AM_PROG_CC_C_O
|
||||
AC_PROG_CC_C_O
|
||||
AC_PROG_INSTALL
|
||||
|
||||
# Checks for header files.
|
||||
AC_HEADER_STDC
|
||||
AC_CHECK_SIZEOF(long long, 8)
|
||||
AC_CHECK_SIZEOF(long, 4)
|
||||
AC_CHECK_SIZEOF([long long], 8)
|
||||
AC_CHECK_SIZEOF([long], 4)
|
||||
|
||||
# Check headers/libs
|
||||
AC_CHECK_FUNCS([gethostbyname])
|
||||
AC_CHECK_FUNCS([getaddrinfo])
|
||||
AC_CHECK_FUNCS([gettimeofday])
|
||||
AC_CHECK_FUNCS([inet_ntoa])
|
||||
AC_CHECK_FUNCS([memset])
|
||||
AC_CHECK_FUNCS([socket])
|
||||
AC_CHECK_FUNCS([signal])
|
||||
AC_CHECK_LIB(network,socket)
|
||||
AC_CHECK_FUNCS([gethostbyname getaddrinfo gettimeofday inet_ntoa memset socket])
|
||||
AC_CHECK_LIB([network],[socket])
|
||||
|
||||
# DEBUG
|
||||
DEBUG_CFLAGS="-g -O0"
|
||||
DEBUG_CPPFLAGS="-DDEBUG -DDEBUG_WOLFTPM"
|
||||
DEBUG_CFLAGS="-g -O0 -DDEBUG_WOLFTPM"
|
||||
|
||||
# Optimizations
|
||||
OPTIMIZE_CFLAGS="-O2"
|
||||
|
||||
AX_DEBUG
|
||||
AS_IF([test "x$ax_enable_debug" = "xyes"],
|
||||
[AM_CFLAGS="$DEBUG_CFLAGS $AM_CFLAGS"
|
||||
AM_CPPFLAGS="$DEBUG_CPPFLAGS $AM_CPPFLAGS"],
|
||||
[AM_CFLAGS="$AM_CFLAGS -O2"
|
||||
AM_CPPFLAGS="-DNDEBUG $AM_CFLAGS"])
|
||||
[AM_CFLAGS="$DEBUG_CFLAGS $AM_CFLAGS -DDEBUG"],
|
||||
[AM_CFLAGS="$AM_CFLAGS $OPTIMIZE_CFLAGS -DNDEBUG"])
|
||||
|
||||
|
||||
AX_PTHREAD([
|
||||
# If AX_PTHREAD is adding -Qunused-arguments, need to prepend with
|
||||
|
@ -88,16 +86,15 @@ AX_PTHREAD([
|
|||
|
||||
# Checks for typedefs, structures, and compiler characteristics.
|
||||
if test "$ac_cv_sizeof_long" = "8"; then
|
||||
AM_CPPFLAGS="$AM_CPPFLAGS -DSIZEOF_LONG=8"
|
||||
AM_CFLAGS="$AM_CFLAGS -DSIZEOF_LONG=8"
|
||||
else
|
||||
if test "$ac_cv_sizeof_long_long" = "8"; then
|
||||
AM_CPPFLAGS="$AM_CPPFLAGS -DSIZEOF_LONG_LONG=8"
|
||||
AM_CFLAGS="$AM_CFLAGS -DSIZEOF_LONG_LONG=8"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
TAO_REQUIRE_LIBWOLFSSL
|
||||
AM_CPPFLAGS="$AM_CPPFLAGS -DDHAVE_WOLFSSL_OPTIONS -DHAVE_CYASSL_OPTIONS"
|
||||
|
||||
|
||||
# Examples
|
||||
|
@ -128,6 +125,9 @@ AM_CONDITIONAL([BUILD_WRAPPER], [test "x$ENABLED_WRAPPER" = "xyes"])
|
|||
# HARDEN FLAGS
|
||||
AX_HARDEN_CC_COMPILER_FLAGS
|
||||
|
||||
OPTION_FLAGS="$CFLAGS $CPPFLAGS $AM_CFLAGS"
|
||||
|
||||
|
||||
CREATE_HEX_VERSION
|
||||
AC_SUBST([AM_CPPFLAGS])
|
||||
AC_SUBST([AM_CFLAGS])
|
||||
|
@ -136,6 +136,7 @@ AC_SUBST([AM_LDFLAGS])
|
|||
# FINAL
|
||||
AC_CONFIG_FILES([Makefile])
|
||||
AC_CONFIG_FILES([wolftpm/version.h])
|
||||
AC_CONFIG_FILES([wolftpm/options.h])
|
||||
|
||||
AX_CREATE_GENERIC_CONFIG
|
||||
AX_AM_JOBSERVER([yes])
|
||||
|
@ -148,6 +149,78 @@ echo "Running make clean..."
|
|||
make clean >/dev/null 2>&1
|
||||
echo
|
||||
|
||||
# generate user options header
|
||||
echo "---"
|
||||
echo "Generating user options header..."
|
||||
|
||||
|
||||
OPTION_FILE="wolftpm/options.h"
|
||||
rm -f $OPTION_FILE
|
||||
|
||||
echo "/* wolftpm options.h" > $OPTION_FILE
|
||||
echo " * generated from configure options" >> $OPTION_FILE
|
||||
echo " *" >> $OPTION_FILE
|
||||
echo " * Copyright (C) 2006-2018 wolfSSL Inc." >> $OPTION_FILE
|
||||
echo " *" >> $OPTION_FILE
|
||||
echo " * * This file is part of wolfTPM." >> $OPTION_FILE
|
||||
echo " *" >> $OPTION_FILE
|
||||
echo " */" >> $OPTION_FILE
|
||||
|
||||
echo "" >> $OPTION_FILE
|
||||
echo "#ifndef WOLFMTPM_OPTIONS_H" >> $OPTION_FILE
|
||||
echo "#define WOLFMTPM_OPTIONS_H" >> $OPTION_FILE
|
||||
echo "" >> $OPTION_FILE
|
||||
echo "" >> $OPTION_FILE
|
||||
echo "#ifdef __cplusplus" >> $OPTION_FILE
|
||||
echo "extern \"C\" {" >> $OPTION_FILE
|
||||
echo "#endif" >> $OPTION_FILE
|
||||
echo "" >> $OPTION_FILE
|
||||
|
||||
for option in $OPTION_FLAGS; do
|
||||
defonly=`echo $option | sed 's/-D//'`
|
||||
if test "$defonly" != "$option"
|
||||
then
|
||||
noequalsign=`echo $defonly | sed 's/=/ /'`
|
||||
if test "$noequalsign" = "NDEBUG" || test "$noequalsign" = "DEBUG"
|
||||
then
|
||||
echo "not outputting (N)DEBUG to $OPTION_FILE"
|
||||
continue
|
||||
fi
|
||||
|
||||
# allow user to igonore system options
|
||||
ignoresys=no
|
||||
if [[[ $noequalsign == _* ]]] ;
|
||||
then
|
||||
ignoresys=yes
|
||||
echo "#ifndef WOLFSSL_OPTIONS_IGNORE_SYS" >> $OPTION_FILE
|
||||
fi
|
||||
|
||||
noarg=`echo $defonly | sed 's/=.*//'`
|
||||
echo "#undef $noarg" >> $OPTION_FILE
|
||||
echo "#define $noequalsign" >> $OPTION_FILE
|
||||
|
||||
if test "$ignoresys" = "yes"
|
||||
then
|
||||
echo "#endif" >> $OPTION_FILE
|
||||
fi
|
||||
|
||||
echo "" >> $OPTION_FILE
|
||||
else
|
||||
echo "option w/o begin -D is $option, not saving to $OPTION_FILE"
|
||||
fi
|
||||
done
|
||||
|
||||
echo "" >> $OPTION_FILE
|
||||
echo "#ifdef __cplusplus" >> $OPTION_FILE
|
||||
echo "}" >> $OPTION_FILE
|
||||
echo "#endif" >> $OPTION_FILE
|
||||
echo "" >> $OPTION_FILE
|
||||
echo "" >> $OPTION_FILE
|
||||
echo "#endif /* WOLFMTPM_OPTIONS_H */" >> $OPTION_FILE
|
||||
echo "" >> $OPTION_FILE
|
||||
echo
|
||||
|
||||
|
||||
# output config summary
|
||||
echo "---"
|
||||
echo "Configuration summary for $PACKAGE_NAME version $VERSION"
|
||||
|
|
|
@ -60,11 +60,13 @@
|
|||
# AX_APPEND_COMPILE_FLAGS([-Wlogical-op],,[$ax_append_compile_cflags_extra])
|
||||
# AX_APPEND_COMPILE_FLAGS([-fstack-check],,[$ax_append_compile_cflags_extra]) -- problems with fastmath stack size checks
|
||||
# AX_APPEND_COMPILE_FLAGS([-floop-parallelize-all],,[$ax_append_compile_cflags_extra]) -- causes RSA verify problem on x64
|
||||
# AX_APPEND_COMPILE_FLAGS([-Wunreachable-code],,[$ax_append_compile_cflags_extra]) -- older clang and when gcc had it are buggy
|
||||
# AX_APPEND_COMPILE_FLAGS([-fPIE],,[$ax_append_compile_cflags_extra]) -- Flag for executables not libraries
|
||||
|
||||
#serial 4
|
||||
#serial 4.2
|
||||
# changes: deleted the clearing of CFLAGS
|
||||
|
||||
AC_DEFUN([AX_HARDEN_LINKER_FLAGS], [
|
||||
AC_REQUIRE([AX_CHECK_LINK_FLAG])
|
||||
AC_REQUIRE([AX_VCS_CHECKOUT])
|
||||
AC_REQUIRE([AX_DEBUG])
|
||||
|
||||
|
@ -93,12 +95,10 @@
|
|||
])
|
||||
|
||||
AC_DEFUN([AX_HARDEN_CC_COMPILER_FLAGS], [
|
||||
AC_REQUIRE([AX_APPEND_COMPILE_FLAGS])
|
||||
AC_REQUIRE([AX_HARDEN_LINKER_FLAGS])
|
||||
|
||||
AC_LANG_PUSH([C])
|
||||
|
||||
CFLAGS=
|
||||
ac_cv_warnings_as_errors=no
|
||||
ax_append_compile_cflags_extra=
|
||||
AS_IF([test "$ac_cv_vcs_checkout" = "yes"],[
|
||||
|
@ -227,7 +227,6 @@
|
|||
])
|
||||
|
||||
AC_DEFUN([AX_CC_OTHER_FLAGS], [
|
||||
AC_REQUIRE([AX_APPEND_COMPILE_FLAGS])
|
||||
AC_REQUIRE([AX_HARDEN_CC_COMPILER_FLAGS])
|
||||
|
||||
AC_LANG_PUSH([C])
|
||||
|
|
|
@ -8,4 +8,5 @@ nobase_include_HEADERS+= \
|
|||
wolftpm/tpm2_tis.h \
|
||||
wolftpm/tpm2_wrap.h \
|
||||
wolftpm/version.h \
|
||||
wolftpm/visibility.h
|
||||
wolftpm/visibility.h \
|
||||
wolftpm/options.h
|
||||
|
|
|
@ -0,0 +1,39 @@
|
|||
/* options.h.in
|
||||
*
|
||||
* Copyright (C) 2006-2018 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfTPM.
|
||||
*
|
||||
* wolfTPM is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* wolfTPM is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||
*/
|
||||
|
||||
|
||||
/* default blank options for autoconf */
|
||||
|
||||
#ifndef WOLFTPM_OPTIONS_H
|
||||
#define WOLFTPM_OPTIONS_H
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* WOLFTPM_OPTIONS_H */
|
Loading…
Reference in New Issue