diff options
author | Stef Walter <stefw@collabora.co.uk> | 2011-10-06 10:59:50 +0200 |
---|---|---|
committer | Stef Walter <stefw@collabora.co.uk> | 2011-10-06 13:12:08 +0200 |
commit | c6691faa0348ab087e99ab9bd9914e1d5e81fa14 (patch) | |
tree | 185f0bc8ec6c4dc723fb4b40b3a980016be5d71a /configure.ac | |
parent | 5791608b2762d7264c58caaf9fe53d7a16ede1c1 (diff) | |
download | gcr-c6691faa0348ab087e99ab9bd9914e1d5e81fa14.tar.gz gcr-c6691faa0348ab087e99ab9bd9914e1d5e81fa14.tar.bz2 gcr-c6691faa0348ab087e99ab9bd9914e1d5e81fa14.zip |
Split the GCR and GCK libraries out of gnome-keyringsplit
Commits prior to this commit will not build. To build
old releases of Gcr or Gck you should use the gnome-keyring
git module.
This module currently depends on: gtk+ >= 3.0, glib >= 2.28.0,
p11-kit >= 0.6, libgcrypt >= 1.2.2
Additionally it requires asn1Parser for building.
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 395 |
1 files changed, 395 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..424f09f --- /dev/null +++ b/configure.ac @@ -0,0 +1,395 @@ +AC_PREREQ([2.63]) +AC_INIT([gcr], [3.3.1], + [http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-keyring&component=gcr], + [gcr]) + +dnl **************************************************************************** +dnl Library package and libtool versioning +dnl +dnl Updating the libtool versions, follow these instructions sequentially: +dnl 1. If the library source code has changed at all since the last update, then increment revision (‘c:r:a’ becomes ‘c:r+1:a’). +dnl 2. If any interfaces have been added, removed, or changed since the last update, increment current, and set revision to 0. +dnl 3. If any interfaces have been added since the last public release, then increment age. +dnl 4. If any interfaces have been removed or changed since the last public release, then set age to 0. + +# GCK package versioning +GCK_MAJOR=1 +GCK_MINOR=0 +GCK_MICRO=0 + +# GCK libtool versioning +GCK_CURRENT=0 +GCK_REVISION=0 +GCK_AGE=0 + +# GCR package versioning +GCR_MAJOR=3 +GCR_MINOR=0 +GCR_MICRO=0 + +# GCR libtool versioning +GCR_CURRENT=1 +GCR_REVISION=0 +GCR_AGE=0 + +dnl **************************************************************************** + +AM_INIT_AUTOMAKE([1.11 tar-ustar foreign -Wno-portability]) +AM_SANITY_CHECK +AM_CONFIG_HEADER(config.h) +m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) +AM_MAINTAINER_MODE([enable]) + +# ----------------------------------------------------------------------------- +# Basic tools + +AC_GNU_SOURCE +AC_ISC_POSIX +AC_PROG_CC +AC_PROG_CPP +AM_PROG_CC_C_O +AC_PROG_INSTALL +AC_PROG_LN_S +AC_PROG_MAKE_SET +AM_DISABLE_STATIC +AM_PROG_LIBTOOL +IT_PROG_INTLTOOL([0.35.0]) +AC_PATH_PROG(PKG_CONFIG, pkg-config, no) + +GETTEXT_PACKAGE=gcr +AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [The gettext domain name]) +AC_SUBST(GETTEXT_PACKAGE) +AM_GLIB_GNU_GETTEXT + +# ----------------------------------------------------------------------------- +# GLib and GTK+ stuff + +PKG_CHECK_MODULES(GLIB, + glib-2.0 >= 2.28.0 + gmodule-no-export-2.0 + gthread-2.0 + gobject-2.0 + gio-2.0) +AC_SUBST(GLIB_CFLAGS) +AC_SUBST(GLIB_LIBS) + +GLIB_GSETTINGS +GOBJECT_INTROSPECTION_CHECK([1.29]) +AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal) +AC_PATH_PROG(GLIB_MKENUMS, glib-mkenums) + +GTK_DOC_CHECK(1.9) + +PKG_CHECK_MODULES(GTK, gtk+-3.0 >= 3.0) +AC_SUBST(GTK_CFLAGS) +AC_SUBST(GTK_LIBS) + +# -------------------------------------------------------------------- +# Checks for functions +# + +AC_CHECK_FUNCS(timegm, AC_DEFINE(HAVE_TIMEGM,1,[Have timegm])) +AC_CHECK_FUNCS(mlock) + +# -------------------------------------------------------------------- +# p11-kit + +PKG_CHECK_MODULES([P11_KIT], p11-kit-1 >= 0.6) +AC_SUBST(P11_KIT_CFLAGS) +AC_SUBST(P11_KIT_LIBS) + +AC_MSG_CHECKING([where to put pkcs11 module configuration]) +P11_SYSTEM_CONFIG_MODULES=$($PKG_CONFIG p11-kit-1 --variable=p11_system_config_modules) +AC_MSG_RESULT($P11_SYSTEM_CONFIG_MODULES) +AC_SUBST(P11_SYSTEM_CONFIG_MODULES) + +if test "$P11_SYSTEM_CONFIG_MODULES" = ""; then + AC_MSG_ERROR([Could not find location for pkcs11 module config]) +fi + +AC_MSG_CHECKING([module path to install pkcs11 modules]) +AC_ARG_WITH(pkcs11-modules, [ + AC_HELP_STRING([--with-pkcs11-modules=<dir>], + [directory to install PKCS#11 modules]) + ]) +if test -z "$with_pkcs11_modules" ; then + P11_MODULE_PATH=$($PKG_CONFIG p11-kit-1 --variable=p11_module_path) +else + P11_MODULE_PATH="$with_pkcs11_modules" +fi +if test "$P11_MODULE_PATH" = ""; then + AC_MSG_ERROR([Could not find directory to install pkcs11 modules]) +fi +AC_MSG_RESULT($P11_MODULE_PATH) +AC_SUBST(P11_MODULE_PATH) + +pkcs11standalonedir="${libdir}/gnome-keyring/devel" +AC_SUBST(pkcs11standalonedir) + +# -------------------------------------------------------------------- +# GPG support + +AC_PATH_PROGS([GNUPG], [gpg gpg2], ["gpg"]) +AC_DEFINE_UNQUOTED([GPG_EXECUTABLE], ["$GNUPG"], [Path to gpg executable.]) + +# -------------------------------------------------------------------- +# libgcrypt +# + +GCRYPT_VERSION=1.2.2 +GCRYPT_LIBVER=1 + +AM_PATH_LIBGCRYPT($GCRYPT_LIBVER:$GCRYPT_VERSION,, + AC_MSG_ERROR([[ +*** +*** libgcrypt was not found. You may want to get it from +*** ftp://ftp.gnupg.org/gcrypt/libgcrypt/ +*** +]])) +libgcrypt=yes +AC_DEFINE_UNQUOTED(LIBGCRYPT_VERSION, "$GCRYPT_VERSION", [Version of GCRYPT we expect]) + +AC_SUBST([LIBGCRYPT_CFLAGS]) +AC_SUBST([LIBGCRYPT_LIBS]) + +# ------------------------------------------------------------------- +# libtasn1 +# + +AC_PATH_PROG(ASN1PARSER, asn1Parser, no) +if test "$ASN1PARSER" = "no" ; then + AC_MSG_ERROR([asn1Parser tool is not installed, try libtasn1 or a related package]) +fi + +# ---------------------------------------------------------------------- +# mime-database + +AC_ARG_ENABLE(update-mime, + AC_HELP_STRING([--disable-update-mime], + [don't run update-mime-database utility (useful for packages) ])) +AM_CONDITIONAL(WITH_UPDATE_MIME, test "$enable_update_mime" != "no") + +# -------------------------------------------------------------------- +# Compilation and linking options +# + +AC_MSG_CHECKING([for debug mode]) +AC_ARG_ENABLE(debug, + AC_HELP_STRING([--enable-debug=no/default/yes], + [Turn on or off debugging])) + +if test "$enable_debug" != "no"; then + AC_DEFINE_UNQUOTED(WITH_DEBUG, 1, [Print debug output]) + AC_DEFINE_UNQUOTED(_DEBUG, 1, [In debug mode]) + CFLAGS="$CFLAGS -g" +fi + +if test "$enable_debug" = "yes"; then + debug_status="yes (-g, -O0, debug output, testable)" + CFLAGS="$CFLAGS -O0" +elif test "$enable_debug" = "no"; then + debug_status="no (no debug output, not testable, G_DISABLE_ASSERT)" + AC_DEFINE_UNQUOTED(G_DISABLE_ASSERT, 1, [Disable glib assertions]) +else + debug_status="default (-g, debug output, testable)" +fi + +AC_MSG_RESULT($debug_status) + +AC_MSG_CHECKING(for more warnings) +if test "$GCC" = "yes"; then + AC_MSG_RESULT(yes) + CFLAGS="\ + -Wall \ + -Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes \ + -Wnested-externs -Wpointer-arith \ + -Wcast-align -Wsign-compare \ + $CFLAGS" + + # Disable -Werror for now, because of issues with + # strange gtk-doc programs not building cleanly. + # -Werror \ + + for option in -Wno-strict-aliasing -Wno-sign-compare; do + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $option" + AC_MSG_CHECKING([whether gcc understands $option]) + AC_TRY_COMPILE([], [], + has_option=yes, + has_option=no,) + if test $has_option = no; then + CFLAGS="$SAVE_CFLAGS" + fi + AC_MSG_RESULT($has_option) + unset has_option + unset SAVE_CFLAGS + done + unset option +else + AC_MSG_RESULT(no) +fi + +AC_ARG_ENABLE(strict, [ + AS_HELP_STRING([--enable-strict], [Strict code compilation]) + ]) + +AC_MSG_CHECKING([build strict]) + +if test "$enable_strict" = "yes"; then + CFLAGS="$CFLAGS -Werror \ + -DGTK_DISABLE_DEPRECATED \ + -DGDK_DISABLE_DEPRECATED \ + -DG_DISABLE_DEPRECATED \ + -DGDK_PIXBUF_DISABLE_DEPRECATED" + TEST_MODE="thorough" + INTROSPECTION_FLAGS="--warn-error" + AC_DEFINE_UNQUOTED(WITH_STRICT, 1, [More strict checks]) + strict_status="yes (-Werror, thorough tests, fatals, no deprecations)" +else + TEST_MODE="quick" + INTROSPECTION_FLAGS="" + strict_status="no (quick tests, non-fatal warnings)" +fi + +AC_MSG_RESULT($strict_status) +AC_SUBST(INTROSPECTION_FLAGS) +AC_SUBST(TEST_MODE) + +AC_MSG_CHECKING([whether to build with gcov testing]) +AC_ARG_ENABLE([coverage], + AS_HELP_STRING([--enable-coverage], + [Whether to enable coverage testing ]), + [], + [enable_coverage=no]) + +AC_MSG_RESULT([$enable_coverage]) + +if test "$enable_coverage" = "yes"; then + if test "$GCC" != "yes"; then + AC_MSG_ERROR(Coverage testing requires GCC) + fi + + AC_PATH_PROG(GCOV, gcov, no) + if test "$GCOV" = "no" ; then + AC_MSG_ERROR(gcov tool is not available) + fi + + AC_PATH_PROG(LCOV, lcov, no) + if test "$LCOV" = "no" ; then + AC_MSG_ERROR(lcov tool is not installed) + fi + + AC_PATH_PROG(GENHTML, genhtml, no) + if test "$GENHTML" = "no" ; then + AC_MSG_ERROR(lcov's genhtml tool is not installed) + fi + + CFLAGS="$CFLAGS -O0 -g -fprofile-arcs -ftest-coverage" + LDFLAGS="$LDFLAGS -lgcov" +fi + +AM_CONDITIONAL([WITH_COVERAGE], [test "$enable_coverage" = "yes"]) +AC_SUBST(LCOV) +AC_SUBST(GCOV) +AC_SUBST(GENHTML) + +AC_ARG_ENABLE(valgrind, + AC_HELP_STRING([--enable-valgrind], + [Run gnome-keyring-daemon using valgrind])) + +AC_MSG_CHECKING([valgrind]) +valgrind_status="yes" + +AM_CONDITIONAL(WITH_VALGRIND, test "$enable_valgrind" = "run") + +# Run gnome-keyring-daemon under valgrind as default +if test "$enable_valgrind" = "run"; then + AC_PATH_PROG(VALGRIND, valgrind, no) + if test "$VALGRIND" = "no" ; then + AC_MSG_ERROR(valgrind tool is not installed) + fi + + VALGRIND_ARG="--log-file=/tmp/gkr-valgrind.log.%p" + VALGRIND_RUN="$VALGRIND $VALGRIND_ARG " + + AC_DEFINE_UNQUOTED(VALGRIND, "$VALGRIND", [Path to valgrind executable]) + AC_DEFINE_UNQUOTED(VALGRIND_ARG, "$VALGRIND_ARG", [Valgrind arguments]) + + enable_valgrind="yes" + valgrind_status="run" +fi + +AC_SUBST(VALGRIND) +AC_SUBST(VALGRIND_ARG) +AC_SUBST(VALGRIND_RUN) + +# Build valgrind support into code +if test "$enable_valgrind" = "yes"; then + AC_CHECK_HEADER([valgrind/valgrind.h], have_valgrind=yes, have_valgrind=no) + if test "$have_valgrind" = "no"; then + AC_MSG_ERROR(The valgrind headers are missing) + fi + AC_DEFINE_UNQUOTED(WITH_VALGRIND, 1, [Run under valgrind]) + AC_MSG_RESULT(yes) + + +# No valgrind +else + AC_MSG_RESULT(no) + valgrind_status="no" +fi + +# ---------------------------------------------------------------------- + +GCK_LT_RELEASE=$GCK_CURRENT:$GCK_REVISION:$GCK_AGE +AC_SUBST(GCK_LT_RELEASE) +AC_SUBST(GCK_MAJOR) +AC_SUBST(GCK_MINOR) + +GCR_LT_RELEASE=$GCR_CURRENT:$GCR_REVISION:$GCR_AGE +AC_SUBST(GCR_LT_RELEASE) +AC_SUBST(GCR_MAJOR) +AC_SUBST(GCR_MINOR) + +AC_OUTPUT([ +Makefile +docs/Makefile +docs/reference/Makefile +docs/reference/gck/Makefile +docs/reference/gck/version.xml +docs/reference/gcr/Makefile +docs/reference/gcr/version.xml +egg/Makefile +egg/tests/Makefile +gck/gck.pc +gck/Makefile +gck/tests/Makefile +gcr/gcr.pc +gcr/gcr-base.pc +gcr/gcr-viewer.desktop.in +gcr/Makefile +gcr/icons/Makefile +gcr/icons/16x16/Makefile +gcr/icons/22x22/Makefile +gcr/icons/24x24/Makefile +gcr/icons/32x32/Makefile +gcr/icons/48x48/Makefile +gcr/icons/256x256/Makefile +gcr/tests/Makefile +po/Makefile.in +schema/Makefile +testing/Makefile +]) + +# ------------------------------------------------------------------------------ +# Summary +# + +echo +echo "BUILD" +echo " Debug Build: $debug_status" +echo " Strict Compilation: $strict_status" +echo " Introspection: $found_introspection" +echo " Valgrind: $valgrind_status" +echo " Test Coverage: $enable_coverage" +echo |