diff options
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 126 |
1 files changed, 82 insertions, 44 deletions
diff --git a/configure.ac b/configure.ac index f753c2a..3d0b8d4 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ dnl Process this file with autoconf to produce a configure script. -# Copyright (C) 2002-2014 Free Software Foundation, Inc. +# Copyright (C) 2002-2022 Free Software Foundation, Inc. # # This file is part of LIBTASN1. # @@ -16,34 +16,35 @@ dnl Process this file with autoconf to produce a configure script. # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. -AC_PREREQ([2.63]) -AC_INIT([GNU Libtasn1],[4.14],[help-libtasn1@gnu.org]) -AC_CONFIG_AUX_DIR([build-aux]) -AC_CONFIG_MACRO_DIRS([m4 m4-gl]) -AC_CONFIG_HEADERS(config.h) -AM_INIT_AUTOMAKE([foreign 1.10 -Wall -Wno-override]) -AM_SILENT_RULES([yes]) +AC_INIT([GNU Libtasn1], + m4_esyscmd([build-aux/git-version-gen .tarball-version]), + [help-libtasn1@gnu.org]) # Library code modified: REVISION++ # Interfaces changed/added/removed: CURRENT++ REVISION=0 # Interfaces added: AGE++ # Interfaces removed: AGE=0 -AC_SUBST(LT_CURRENT, 11) -AC_SUBST(LT_REVISION, 6) -AC_SUBST(LT_AGE, 5) +AC_SUBST(LT_CURRENT, 12) +AC_SUBST(LT_REVISION, 3) +AC_SUBST(LT_AGE, 6) -# Generate version defines for include file -AC_SUBST([ASN1_VERSION_MAJOR], [`echo $VERSION|cut -d'.' -f1`]) -AC_SUBST([ASN1_VERSION_MINOR], [`echo $VERSION|cut -d'.' -f2`]) -# Let's activate the following line as soon as we change to extended version numbering -#AC_SUBST([ASN1_VERSION_PATCH], [`echo $VERSION|cut -d'.' -f3`]) -AC_SUBST([ASN1_VERSION_PATCH], [`echo 0`]) -AC_SUBST([ASN1_VERSION_NUMBER], [`printf '0x%02x%02x%02x' $ASN1_VERSION_MAJOR $ASN1_VERSION_MINOR $ASN1_VERSION_PATCH`]) -AC_CONFIG_FILES([lib/includes/libtasn1.h]) +AC_SUBST([MAJOR_VERSION], [`echo $PACKAGE_VERSION|cut -d'.' -f1`]) +AC_SUBST([MINOR_VERSION], [`echo $PACKAGE_VERSION|cut -d'.' -f2`]) +AC_SUBST([PATCH_VERSION], [`echo $PACKAGE_VERSION.0|cut -d. -f3|cut -d- -f1`]) +AC_SUBST([NUMBER_VERSION], [`printf '0x%02x%02x%02x' $MAJOR_VERSION $MINOR_VERSION $PATCH_VERSION`]) +AC_MSG_NOTICE([$PACKAGE_NAME $PACKAGE_VERSION $PACKAGE_TARNAME $MAJOR_VERSION.$MINOR_VERSION.$PATCH_VERSION $NUMBER_VERSION $LT_CURRENT:$LT_REVISION:$LT_AGE $DLL_VERSION]) + +AC_CONFIG_AUX_DIR([build-aux]) +AC_CONFIG_MACRO_DIR([m4]) +AC_CONFIG_HEADERS(config.h) + +AM_INIT_AUTOMAKE([-Wall -Wno-portability]) +AM_SILENT_RULES([yes]) AC_PROG_CC gl_EARLY +sgl_EARLY AC_PROG_YACC AC_ARG_ENABLE(doc, @@ -51,62 +52,99 @@ AC_ARG_ENABLE(doc, enable_doc=$enableval, enable_doc=yes) AM_CONDITIONAL(ENABLE_DOC, test "$enable_doc" != "no") -AC_CHECK_FUNCS([clock_gettime]) +AC_CHECK_FUNCS([clock_gettime fmemopen]) -dnl Checks for programs. AM_MISSING_PROG(HELP2MAN, help2man, $missing_dir) -AC_LIBTOOL_WIN32_DLL -AM_PROG_AR -AM_PROG_LIBTOOL +LT_INIT([win32-dll]) GTK_DOC_CHECK(1.2) AC_CHECK_SIZEOF(unsigned long int, 4) AC_CHECK_SIZEOF(unsigned int, 4) -# For gnulib compatibility modules. gl_INIT +sgl_INIT + +AX_CODE_COVERAGE AC_ARG_ENABLE([gcc-warnings], [AS_HELP_STRING([--disable-gcc-warnings], - [disable GCC warnings (for developers)])], + [disable GCC warnings (for developers)])], [case $enableval in yes|no) ;; *) AC_MSG_ERROR([bad value $enableval for gcc-warnings option]) ;; esac - gcc_warnings=$enableval], - [gcc_warnings=yes] + gl_gcc_warnings=$enableval], + [gl_gcc_warnings=yes] ) -WARN_CFLAGS="" -if test "$gcc_warnings" = yes;then - WARN_CFLAGS="$WARN_CFLAGS -Wall" +if test "$gl_gcc_warnings" = yes; then + gl_MANYWARN_ALL_GCC([warnings]) + nw= + nw="$nw -Wsystem-headers" # Don't let system headers trigger warnings + nw="$nw -Wc++-compat" # We don't care strongly about C++ compilers + nw="$nw -Wundef" # All compiler preprocessors support #if UNDEF + nw="$nw -Wtraditional" # All compilers nowadays support ANSI C + nw="$nw -Wconversion" # These warnings usually don't point to mistakes. + nw="$nw -Wpadded" # Padding internal structs doesn't help. + nw="$nw -Wunused-macros" # Lot's of warnings in ASN1.y + nw="$nw -Woverlength-strings" # Modern compilers handle strings > 4096 gracefully + nw="$nw -Wsuggest-attribute=pure" # Asked for several nodes handling functions + + gl_MANYWARN_COMPLEMENT([warnings], [$warnings], [$nw]) + for w in $warnings; do + gl_WARN_ADD([$w]) + done + + gl_WARN_ADD([-Wno-type-limits]) # Too many warnings from gnulib macros + gl_WARN_ADD([-Wformat-truncation=1]) + gl_WARN_ADD([-Wimplicit-fallthrough=2]) + gl_WARN_ADD([-Wno-unused-parameter]) + gl_WARN_ADD([-fdiagnostics-show-option]) + gl_WARN_ADD([-fdiagnostics-color=always]) # colors even when using ccache fi -AC_SUBST([WARN_CFLAGS]) -AX_CODE_COVERAGE +AC_ARG_ENABLE([fuzzing], + [AS_HELP_STRING([--enable-fuzzing], [Turn on fuzzing build (for developers)])], + [enable_fuzzing=yes; AC_SUBST([LIB_FUZZING_ENGINE])], [enable_fuzzing=no; LIB_FUZZING_ENGINE=""]) +AM_CONDITIONAL([FUZZING], [test "$enable_fuzzing" = "yes"]) + +OLD_LIBS=$LIBS +AC_SEARCH_LIBS([dlsym], [dl dld]) +FUZZ_LIBS=$LIBS +LIBS=$OLD_LIBS +AC_SUBST([FUZZ_LIBS]) AC_CONFIG_FILES([ Makefile doc/Makefile - doc/cyclo/Makefile doc/reference/Makefile examples/Makefile + fuzz/Makefile lib/Makefile lib/gl/Makefile + lib/includes/libtasn1.h lib/libtasn1.pc src/Makefile + src/gl/Makefile tests/Makefile ]) AC_OUTPUT -AC_MSG_NOTICE([summary of build options: - - version: ${VERSION} shared $LT_CURRENT:$LT_REVISION:$LT_AGE - Host type: ${host} - Install prefix: ${prefix} - Compiler: ${CC} - Warning flags: errors: ${WERROR_CFLAGS} warnings: ${WARN_CFLAGS} - Library types: Shared=${enable_shared}, Static=${enable_static} - Valgrind: ${VALGRIND} - Version script: $have_ld_version_script +AC_MSG_NOTICE([Summary of build options: + + Version: ${VERSION} + Libtool version $LT_CURRENT:$LT_REVISION:$LT_AGE + DLL version: $DLL_VERSION + Header version: major $MAJOR_VERSION minor $MINOR_VERSION patch $PATCH_VERSION number $NUMBER_VERSION + Build/host system: ${build} / ${host} + Install prefix: ${prefix} + Compiler: ${CC} + Warning flags: ${WARN_CFLAGS} + CFLAGS: ${CFLAGS} ${CPPFLAGS} + LDFlags: ${LDFLAGS} + Documentation: ${enable_doc} + Library types: Shared=${enable_shared}, Static=${enable_static} + Valgrind: $gl_cv_prog_valgrind_works ${VALGRIND} + Version script: $have_ld_version_script + Fuzzing build: $enable_fuzzing $LIB_FUZZING_ENGINE ]) |