Restore msg class for S/MIME after move
[gpgol.git] / configure.ac
index 3297975..df72031 100644 (file)
 
 # Process this file with autoconf to produce a configure script.
 AC_PREREQ(2.59)
-min_automake_version="1.9.4"
+min_automake_version="1.14"
 
 # To build a release you need to create a tag with the version number
 # (git tag -s gpgol-k.n.m) and run "./autogen.sh --force".  Please
 # bump the version number immediately *after* the release and do
 # another commit and push so that the git magic is able to work.
-m4_define([mym4_version], [1.2.1])
+m4_define([mym4_version], [2.4.3])
 
 # Below is m4 magic to extract and compute the git revision number,
 # the decimalized short revision number, a beta version string and a
@@ -40,7 +40,7 @@ GPGOL_FORMS_REVISION=335
 
 NEED_GPG_ERROR_VERSION=1.9
 NEED_GPGME_API=1
-NEED_GPGME_VERSION=1.1.0
+NEED_GPGME_VERSION=1.13.0
 NEED_LIBASSUAN_API=2
 NEED_LIBASSUAN_VERSION=2.0.0
 
@@ -51,6 +51,7 @@ PACKAGE=$PACKAGE_NAME
 PACKAGE_GT=${PACKAGE_NAME}
 VERSION=$PACKAGE_VERSION
 
+AC_CONFIG_AUX_DIR([build-aux])
 AC_CONFIG_SRCDIR(src/gpgol.def)
 AM_CONFIG_HEADER(config.h)
 AC_CANONICAL_TARGET()
@@ -134,11 +135,13 @@ case "${host}" in
         have_w32_system=yes
         ;;
     *)
-    AC_MSG_ERROR([[
+    AC_MSG_NOTICE([[
 ***
-*** This software my only be build for W32 systems.  Use
+*** This software is only useful for W32 systems.  Use
 ***     ./autogen.sh --build-w32
 *** to prepare it for such a build.
+***
+*** For your current host only tests will be built!
 ***]])
        ;;
 esac
@@ -156,7 +159,7 @@ if test "$have_w32_system" = yes; then
 fi
 AM_CONDITIONAL(HAVE_W32_SYSTEM, test "$have_w32_system" = yes)
 
-
+AM_CONDITIONAL(BUILD_W64, test "$host" = "x86_64-w64-mingw32")
 
 #
 # Checks for libraries.
@@ -165,6 +168,7 @@ AM_CONDITIONAL(HAVE_W32_SYSTEM, test "$have_w32_system" = yes)
 
 AM_PATH_GPGME("$NEED_GPGME_API:$NEED_GPGME_VERSION",
                have_gpgme=yes,have_gpgme=no)
+AM_PATH_GPGMEPP(have_gpgmepp=yes,have_gpgmepp=no)
 AM_PATH_GPG_ERROR("$NEED_GPG_ERROR_VERSION",
                   have_gpg_error=yes,have_gpg_error=no)
 AC_DEFINE(GPG_ERR_SOURCE_DEFAULT, GPG_ERR_SOURCE_USER_2,
@@ -174,7 +178,7 @@ AM_PATH_LIBASSUAN("$NEED_LIBASSUAN_API:$NEED_LIBASSUAN_VERSION",
 
 
 # Note, that autogen.sh greps for the next line.
-AM_GNU_GETTEXT_VERSION(0.12.1)
+AM_GNU_GETTEXT_VERSION([0.12.1])
 AM_GNU_GETTEXT([external])
 # We always want NLs, despite what the above macro figures out.
 USE_NLS=yes
@@ -183,7 +187,8 @@ USE_NLS=yes
 AC_HEADER_STDC
 AC_CHECK_HEADERS(string.h unistd.h langinfo.h termio.h locale.h)
 
-AC_CHECK_FUNCS(stpcpy)
+# Check for functions
+AC_REPLACE_FUNCS(stpcpy)
 
 # Checks for typedefs, structures, and compiler characteristics.
 AC_C_CONST
@@ -202,23 +207,27 @@ fi
 if test "$GCC" = yes; then
     CFLAGS="$CFLAGS -Wall -mms-bitfields -fno-strict-aliasing"
     CXXFLAGS="$CXXFLAGS -Wall -mms-bitfields -fno-strict-aliasing"
+    # Hardening flags
+    # Stack protection
+    # -fstack-protector-all -Wstack-protector --param ssp-buffer-size=4
+    # causes gpgol not to be loaded by Outlook due to a runtime error.
+    # This needs to be analysed but could be an incompatibility between
+    # gcc's stack protection and COM / Outlook system calls.
+    if test "$have_w32_system" = yes; then
+        HARDENING="-Wl,--dynamicbase -Wl,--nxcompat -fno-exceptions -D_FORTIFY_SOURCE=2 -O0"
+    else
+        HARDENING="-fPIC"
+    fi
+    CFLAGS="$CFLAGS $HARDENING"
+    CXXFLAGS="$CXXFLAGS $HARDENING"
+
     if test "$USE_MAINTAINER_MODE" = "yes"; then
-        CFLAGS="$CFLAGS -Wcast-align -Wshadow -Wstrict-prototypes"
-        CFLAGS="$CFLAGS -Wno-format-y2k -Wformat-security"
+        CFLAGS="$CFLAGS -Werror -Wcast-align -Wshadow -Wstrict-prototypes"
+        CFLAGS="$CFLAGS -Wformat-security"
         CFLAGS="$CFLAGS -W -Wno-sign-compare"
-        CXXFLAGS="$CXXFLAGS -Wcast-align -Wshadow"
-        CXXFLAGS="$CXXFLAGS -Wno-format-y2k -Wformat-security"
+        CXXFLAGS="$CXXFLAGS -Werror -Wcast-align -Wshadow"
+        CXXFLAGS="$CXXFLAGS -Wformat-security"
         CXXFLAGS="$CXXFLAGS -W -Wno-sign-compare"
-        AC_MSG_CHECKING([if gcc supports -Wno-missing-field-initializers])
-        _gcc_cflags_save=$CFLAGS
-        CFLAGS="-Wno-missing-field-initializers"
-        AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],_gcc_mfi=yes,_gcc_mfi=no)
-        AC_MSG_RESULT($_gcc_mfi)
-        CFLAGS=$_gcc_cflags_save;
-        if test x"$_gcc_mfi" = xyes ; then
-          CFLAGS="$CFLAGS -Wno-missing-field-initializers"
-          CXXFLAGS="$CXXFLAGS -Wno-missing-field-initializers"
-        fi
     fi
 
     AC_MSG_CHECKING([if gcc supports -Wno-pointer-sign])
@@ -236,8 +245,6 @@ fi
 
 AC_SUBST(W32LIBS)
 
-
-
 #
 # Print errors here so that they are visible all
 # together and the user can acquire them all together.
@@ -263,6 +270,14 @@ if test "$have_gpgme" = "no"; then
 *** (at least version $NEED_GPGME_VERSION is required.)
 ***]])
 fi
+if test "$have_gpgmepp" = "no"; then
+   die=yes
+   AC_MSG_NOTICE([[
+***
+*** You need the C++ language binding for gpgme to build this program.
+** Ensure that GPGME was compiled with --enabled-languages=cpp
+***]])
+fi
 if test "$have_libassuan" = "no"; then
    die=yes
    AC_MSG_NOTICE([[
@@ -284,10 +299,13 @@ fi
 
 AC_CONFIG_FILES([ Makefile
 src/Makefile
+src/icons/Makefile
 src/versioninfo.rc
 forms/Makefile
 doc/Makefile
 po/Makefile.in
 m4/Makefile
+tests/Makefile
 ])
+
 AC_OUTPUT