X-Git-Url: http://git.tremily.us/?a=blobdiff_plain;f=acinclude.m4;h=cdfe6e432bac17db51343f85011072282eefa029;hb=9c8608f702ec0f44ae55cd7f33bd8df0a2d48508;hp=88f2e43fa7f93a1189566e249ccc19a767f34559;hpb=ae0d104de2fd61408387f098d6fba96b274f29d0;p=gpgme.git diff --git a/acinclude.m4 b/acinclude.m4 index 88f2e43..cdfe6e4 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -1,449 +1,60 @@ -dnl Macros to configure gpgme - -dnl GNUPG_FIX_HDR_VERSION(FILE, NAME) -dnl Make the version number in gcrypt/gcrypt.h the same as the one here. -dnl (this is easier than to have a .in file just for one substitution) -dnl We must use a temp file in the current directory because make distcheck -dnl install all sourcefiles RO. -dnl (wk 2001-12-18) -AC_DEFUN(GNUPG_FIX_HDR_VERSION, - [ sed "s/^#define $2 \".*/#define $2 \"$VERSION\"/" $srcdir/$1 > fixhdr.tmp - if cmp -s $srcdir/$1 fixhdr.tmp 2>/dev/null; then - rm -f fixhdr.tmp - else - rm -f $srcdir/$1 - if mv fixhdr.tmp $srcdir/$1 ; then - : - else - AC_MSG_ERROR([[ -*** -*** Failed to fix the version string macro $2 in $1. -*** The old file has been saved as fixhdr.tmp -***]]) - fi - AC_MSG_WARN([fixed the $2 macro in $1]) - fi - ]) - - -dnl GNUPG_CHECK_TYPEDEF(TYPE, HAVE_NAME) -dnl Check whether a typedef exists and create a #define $2 if it exists -dnl -AC_DEFUN(GNUPG_CHECK_TYPEDEF, - [ AC_MSG_CHECKING(for $1 typedef) - AC_CACHE_VAL(gnupg_cv_typedef_$1, - [AC_TRY_COMPILE([#include - #include ], [ - #undef $1 - int a = sizeof($1); - ], gnupg_cv_typedef_$1=yes, gnupg_cv_typedef_$1=no )]) - AC_MSG_RESULT($gnupg_cv_typedef_$1) - if test "$gnupg_cv_typedef_$1" = yes; then - AC_DEFINE($2, , - [Define to 1 if $1 is defined in the header file.]) - fi - ]) - -dnl ## -dnl ## GNU Pth - The GNU Portable Threads -dnl ## Copyright (c) 1999-2002 Ralf S. Engelschall -dnl ## -dnl ## This file is part of GNU Pth, a non-preemptive thread scheduling -dnl ## library which can be found at http://www.gnu.org/software/pth/. -dnl ## -dnl ## This library is free software; you can redistribute it and/or -dnl ## modify it under the terms of the GNU Lesser General Public -dnl ## License as published by the Free Software Foundation; either -dnl ## version 2.1 of the License, or (at your option) any later version. -dnl ## -dnl ## This library is distributed in the hope that it will be useful, -dnl ## but WITHOUT ANY WARRANTY; without even the implied warranty of -dnl ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -dnl ## Lesser General Public License for more details. -dnl ## -dnl ## You should have received a copy of the GNU Lesser General Public -dnl ## License along with this library; if not, write to the Free Software -dnl ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 -dnl ## USA, or contact Ralf S. Engelschall . -dnl ## -dnl ## pth.m4: Autoconf macro for locating GNU Pth from within -dnl ## configure.in of third-party software packages -dnl ## - -dnl ## -dnl ## Synopsis: -dnl ## AC_CHECK_PTH([MIN-VERSION [, # minimum Pth version, e.g. 1.2.0 -dnl ## DEFAULT-WITH-PTH [, # default value for --with-pth option -dnl ## DEFAULT-WITH-PTH-TEST [,# default value for --with-pth-test option -dnl ## EXTEND-VARS [, # whether CFLAGS/LDFLAGS/etc are extended -dnl ## ACTION-IF-FOUND [, # action to perform if Pth was found -dnl ## ACTION-IF-NOT-FOUND # action to perform if Pth was not found -dnl ## ]]]]]]) -dnl ## Examples: -dnl ## AC_CHECK_PTH(1.2.0) -dnl ## AC_CHECK_PTH(1.2.0,,,no,CFLAGS="$CFLAGS -DHAVE_PTH $PTH_CFLAGS") -dnl ## AC_CHECK_PTH(1.2.0,yes,yes,yes,CFLAGS="$CFLAGS -DHAVE_PTH") -dnl ## +dnl Macros to configure GPGME +dnl Copyright (C) 2004 g10 Code GmbH dnl -dnl # auxilliary macros -AC_DEFUN(_AC_PTH_ERROR, [dnl -AC_MSG_RESULT([*FAILED*]) -dnl define(_ac_pth_line,dnl -dnl "+------------------------------------------------------------------------+") -dnl echo " _ac_pth_line" 1>&2 -cat <>/ /' 1>&2 -$1 -EOT -dnl echo " _ac_pth_line" 1>&2 -dnl undefine(_ac_pth_line) -exit 1 -]) -AC_DEFUN(_AC_PTH_VERBOSE, [dnl -if test ".$verbose" = .yes; then - AC_MSG_RESULT([ $1]) -fi -]) -dnl # the user macro -AC_DEFUN(AC_CHECK_PTH, [dnl -dnl -dnl # prerequisites -AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([AC_PROG_CPP])dnl +dnl This file is part of GPGME. dnl -PTH_CPPFLAGS='' -PTH_CFLAGS='' -PTH_LDFLAGS='' -PTH_LIBS='' -AC_SUBST(PTH_CPPFLAGS) -AC_SUBST(PTH_CFLAGS) -AC_SUBST(PTH_LDFLAGS) -AC_SUBST(PTH_LIBS) -dnl # command line options -AC_MSG_CHECKING(for GNU Pth) -_AC_PTH_VERBOSE([]) -AC_ARG_WITH(pth,dnl -[ --with-pth[=ARG] Build with GNU Pth Library (default=]ifelse([$2],,yes,$2)[)],dnl -,dnl -with_pth="ifelse([$2],,yes,$2)" -)dnl -AC_ARG_WITH(pth-test,dnl -[ --with-pth-test Perform GNU Pth Sanity Test (default=]ifelse([$3],,yes,$3)[)],dnl -,dnl -with_pth_test="ifelse([$3],,yes,$3)" -)dnl -_AC_PTH_VERBOSE([+ Command Line Options:]) -_AC_PTH_VERBOSE([ o --with-pth=$with_pth]) -_AC_PTH_VERBOSE([ o --with-pth-test=$with_pth_test]) -dnl -dnl # configuration -if test ".$with_pth" != .no; then - _pth_subdir=no - _pth_subdir_opts='' - case "$with_pth" in - subdir:* ) - _pth_subdir=yes - changequote(, )dnl - _pth_subdir_opts=`echo $with_pth | sed -e 's/^subdir:[^ ]*[ ]*//'` - with_pth=`echo $with_pth | sed -e 's/^subdir:\([^ ]*\).*$/\1/'` - changequote([, ])dnl - ;; - esac - _pth_version="" - _pth_location="" - _pth_type="" - _pth_cppflags="" - _pth_cflags="" - _pth_ldflags="" - _pth_libs="" - if test ".$with_pth" = .yes; then - # via config script in $PATH - changequote(, )dnl - _pth_version=`(pth-config --version) 2>/dev/null |\ - sed -e 's/^.*\([0-9]\.[0-9]*[ab.][0-9]*\).*$/\1/'` - changequote([, ])dnl - if test ".$_pth_version" != .; then - _pth_location=`pth-config --prefix` - _pth_type='installed' - _pth_cppflags=`pth-config --cflags` - _pth_cflags=`pth-config --cflags` - _pth_ldflags=`pth-config --ldflags` - _pth_libs=`pth-config --libs` - fi - elif test -d "$with_pth"; then - with_pth=`echo $with_pth | sed -e 's;/*$;;'` - _pth_found=no - # via locally included source tree - if test ".$_pth_subdir" = .yes; then - _pth_location="$with_pth" - _pth_type='local' - _pth_cppflags="-I$with_pth" - _pth_cflags="-I$with_pth" - if test -f "$with_pth/ltconfig"; then - _pth_ldflags="-L$with_pth/.libs" - else - _pth_ldflags="-L$with_pth" - fi - _pth_libs="-lpth" - changequote(, )dnl - _pth_version=`grep '^const char PTH_Hello' $with_pth/pth_vers.c |\ - sed -e 's;^.*Version[ ]*\([0-9]*\.[0-9]*[.ab][0-9]*\)[ ].*$;\1;'` - changequote([, ])dnl - _pth_found=yes - ac_configure_args="$ac_configure_args --enable-subdir $_pth_subdir_opts" - with_pth_test=no - fi - # via config script under a specified directory - # (a standard installation, but not a source tree) - if test ".$_pth_found" = .no; then - for _dir in $with_pth/bin $with_pth; do - if test -f "$_dir/pth-config"; then - test -f "$_dir/pth-config.in" && continue # pth-config in source tree! - changequote(, )dnl - _pth_version=`($_dir/pth-config --version) 2>/dev/null |\ - sed -e 's/^.*\([0-9]\.[0-9]*[ab.][0-9]*\).*$/\1/'` - changequote([, ])dnl - if test ".$_pth_version" != .; then - _pth_location=`$_dir/pth-config --prefix` - _pth_type="installed" - _pth_cppflags=`$_dir/pth-config --cflags` - _pth_cflags=`$_dir/pth-config --cflags` - _pth_ldflags=`$_dir/pth-config --ldflags` - _pth_libs=`$_dir/pth-config --libs` - _pth_found=yes - break - fi - fi - done - fi - # in any subarea under a specified directory - # (either a special installation or a Pth source tree) - if test ".$_pth_found" = .no; then - changequote(, )dnl - _pth_found=0 - for _file in x `find $with_pth -name "pth.h" -type f -print`; do - test .$_file = .x && continue - _dir=`echo $_file | sed -e 's;[^/]*$;;' -e 's;\(.\)/$;\1;'` - _pth_version=`($_dir/pth-config --version) 2>/dev/null |\ - sed -e 's/^.*\([0-9]\.[0-9]*[ab.][0-9]*\).*$/\1/'` - if test ".$_pth_version" = .; then - _pth_version=`grep '^#define PTH_VERSION_STR' $_file |\ - sed -e 's;^#define[ ]*PTH_VERSION_STR[ ]*"\([0-9]*\.[0-9]*[.ab][0-9]*\)[ ].*$;\1;'` - fi - _pth_cppflags="-I$_dir" - _pth_cflags="-I$_dir" - _pth_found=`expr $_pth_found + 1` - done - for _file in x `find $with_pth -name "libpth.[aso]" -type f -print`; do - test .$_file = .x && continue - _dir=`echo $_file | sed -e 's;[^/]*$;;' -e 's;\(.\)/$;\1;'` - _pth_ldflags="-L$_dir" - _pth_libs="-lpth" - _pth_found=`expr $_pth_found + 1` - done - changequote([, ])dnl - if test ".$_pth_found" = .2; then - _pth_location="$with_pth" - _pth_type="uninstalled" - else - _pth_version='' - fi - fi - fi - _AC_PTH_VERBOSE([+ Determined Location:]) - _AC_PTH_VERBOSE([ o path: $_pth_location]) - _AC_PTH_VERBOSE([ o type: $_pth_type]) - if test ".$_pth_version" = .; then - if test ".$with_pth" != .yes; then - _AC_PTH_ERROR([dnl - Unable to locate GNU Pth under $with_pth. - Please specify the correct path to either a GNU Pth installation tree - (use --with-pth=DIR if you used --prefix=DIR for installing GNU Pth in - the past) or to a GNU Pth source tree (use --with-pth=DIR if DIR is a - path to a pth-X.Y.Z/ directory; but make sure the package is already - built, i.e., the "configure; make" step was already performed there).]) - else - _AC_PTH_ERROR([dnl - Unable to locate GNU Pth in any system-wide location (see \$PATH). - Please specify the correct path to either a GNU Pth installation tree - (use --with-pth=DIR if you used --prefix=DIR for installing GNU Pth in - the past) or to a GNU Pth source tree (use --with-pth=DIR if DIR is a - path to a pth-X.Y.Z/ directory; but make sure the package is already - built, i.e., the "configure; make" step was already performed there).]) - fi - fi - dnl # - dnl # Check whether the found version is sufficiently new - dnl # - _req_version="ifelse([$1],,1.0.0,$1)" - for _var in _pth_version _req_version; do - eval "_val=\"\$${_var}\"" - _major=`echo $_val | sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\([[ab.]]\)\([[0-9]]*\)/\1/'` - _minor=`echo $_val | sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\([[ab.]]\)\([[0-9]]*\)/\2/'` - _rtype=`echo $_val | sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\([[ab.]]\)\([[0-9]]*\)/\3/'` - _micro=`echo $_val | sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\([[ab.]]\)\([[0-9]]*\)/\4/'` - case $_rtype in - "a" ) _rtype=0 ;; - "b" ) _rtype=1 ;; - "." ) _rtype=2 ;; - esac - _hex=`echo dummy | awk '{ printf("%d%02d%1d%02d", major, minor, rtype, micro); }' \ - "major=$_major" "minor=$_minor" "rtype=$_rtype" "micro=$_micro"` - eval "${_var}_hex=\"\$_hex\"" - done - _AC_PTH_VERBOSE([+ Determined Versions:]) - _AC_PTH_VERBOSE([ o existing: $_pth_version -> 0x$_pth_version_hex]) - _AC_PTH_VERBOSE([ o required: $_req_version -> 0x$_req_version_hex]) - _ok=0 - if test ".$_pth_version_hex" != .; then - if test ".$_req_version_hex" != .; then - if test $_pth_version_hex -ge $_req_version_hex; then - _ok=1 - fi - fi - fi - if test ".$_ok" = .0; then - _AC_PTH_ERROR([dnl - Found Pth version $_pth_version, but required at least version $_req_version. - Upgrade Pth under $_pth_location to $_req_version or higher first, please.]) - fi - dnl # - dnl # Perform Pth Sanity Compile Check - dnl # - if test ".$with_pth_test" = .yes; then - _ac_save_CPPFLAGS="$CPPFLAGS" - _ac_save_CFLAGS="$CFLAGS" - _ac_save_LDFLAGS="$LDFLAGS" - _ac_save_LIBS="$LIBS" - CPPFLAGS="$CPPFLAGS $_pth_cppflags" - CFLAGS="$CFLAGS $_pth_cflags" - LDFLAGS="$LDFLAGS $_pth_ldflags" - LIBS="$LIBS $_pth_libs" - _AC_PTH_VERBOSE([+ Test Build Environment:]) - _AC_PTH_VERBOSE([ o CPPFLAGS=\"$CPPFLAGS\"]) - _AC_PTH_VERBOSE([ o CFLAGS=\"$CFLAGS\"]) - _AC_PTH_VERBOSE([ o LDFLAGS=\"$LDFLAGS\"]) - _AC_PTH_VERBOSE([ o LIBS=\"$LIBS\"]) - cross_compile=no - define(_code1, [dnl - #include - #include - ]) - define(_code2, [dnl - int main(int argc, char *argv[]) - { - FILE *fp; - if (!(fp = fopen("conftestval", "w"))) - exit(1); - fprintf(fp, "hmm"); - fclose(fp); - pth_init(); - pth_kill(); - if (!(fp = fopen("conftestval", "w"))) - exit(1); - fprintf(fp, "yes"); - fclose(fp); - exit(0); - } - ]) - _AC_PTH_VERBOSE([+ Performing Sanity Checks:]) - _AC_PTH_VERBOSE([ o pre-processor test]) - AC_TRY_CPP(_code1, _ok=yes, _ok=no) - if test ".$_ok" != .yes; then - _AC_PTH_ERROR([dnl - Found GNU Pth $_pth_version under $_pth_location, but - was unable to perform a sanity pre-processor check. This means - the GNU Pth header pth.h was not found. - We used the following build environment: - >> CPP="$CPP" - >> CPPFLAGS="$CPPFLAGS" - See config.log for possibly more details.]) - fi - _AC_PTH_VERBOSE([ o link check]) - AC_TRY_LINK(_code1, _code2, _ok=yes, _ok=no) - if test ".$_ok" != .yes; then - _AC_PTH_ERROR([dnl - Found GNU Pth $_pth_version under $_pth_location, but - was unable to perform a sanity linker check. This means - the GNU Pth library libpth.a was not found. - We used the following build environment: - >> CC="$CC" - >> CFLAGS="$CFLAGS" - >> LDFLAGS="$LDFLAGS" - >> LIBS="$LIBS" - See config.log for possibly more details.]) - fi - _AC_PTH_VERBOSE([ o run-time check]) - AC_TRY_RUN(_code1 _code2, _ok=`cat conftestval`, _ok=no, _ok=no) - if test ".$_ok" != .yes; then - if test ".$_ok" = .no; then - _AC_PTH_ERROR([dnl - Found GNU Pth $_pth_version under $_pth_location, but - was unable to perform a sanity execution check. This usually - means that the GNU Pth shared library libpth.so is present - but \$LD_LIBRARY_PATH is incomplete to execute a Pth test. - In this case either disable this test via --without-pth-test, - or extend \$LD_LIBRARY_PATH, or build GNU Pth as a static - library only via its --disable-shared Autoconf option. - We used the following build environment: - >> CC="$CC" - >> CFLAGS="$CFLAGS" - >> LDFLAGS="$LDFLAGS" - >> LIBS="$LIBS" - See config.log for possibly more details.]) - else - _AC_PTH_ERROR([dnl - Found GNU Pth $_pth_version under $_pth_location, but - was unable to perform a sanity run-time check. This usually - means that the GNU Pth library failed to work and possibly - caused a core dump in the test program. In this case it - is strongly recommended that you re-install GNU Pth and this - time make sure that it really passes its "make test" procedure. - We used the following build environment: - >> CC="$CC" - >> CFLAGS="$CFLAGS" - >> LDFLAGS="$LDFLAGS" - >> LIBS="$LIBS" - See config.log for possibly more details.]) - fi - fi - _extendvars="ifelse([$4],,yes,$4)" - if test ".$_extendvars" != .yes; then - CPPFLAGS="$_ac_save_CPPFLAGS" - CFLAGS="$_ac_save_CFLAGS" - LDFLAGS="$_ac_save_LDFLAGS" - LIBS="$_ac_save_LIBS" - fi +dnl GPGME is free software; you can redistribute it and/or modify it +dnl under the terms of the GNU Lesser General Public License as +dnl published by the Free Software Foundation; either version 2.1 of the +dnl License, or (at your option) any later version. +dnl +dnl GPGME is distributed in the hope that it will be useful, but WITHOUT +dnl ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General +dnl Public License for more details. +dnl +dnl You should have received a copy of the GNU Lesser General Public +dnl License along with this program; if not, write to the Free Software +dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + +dnl GNUPG_CHECK_VA_COPY() +dnl Do some check on how to implement va_copy. +dnl May define MUST_COPY_VA_BY_VAL. +dnl Actual test code taken from glib-1.1. +AC_DEFUN([GNUPG_CHECK_VA_COPY], +[ AC_MSG_CHECKING(whether va_lists must be copied by value) + AC_CACHE_VAL(gnupg_cv_must_copy_va_byval,[ + if test "$cross_compiling" = yes; then + gnupg_cv_must_copy_va_byval=no else - _extendvars="ifelse([$4],,yes,$4)" - if test ".$_extendvars" = .yes; then - if test ".$_pth_subdir" = .yes; then - CPPFLAGS="$CPPFLAGS $_pth_cppflags" - CFLAGS="$CFLAGS $_pth_cflags" - LDFLAGS="$LDFLAGS $_pth_ldflags" - LIBS="$LIBS $_pth_libs" - fi - fi + gnupg_cv_must_copy_va_byval=no + AC_TRY_RUN([ + #include + void f (int i, ...) + { + va_list args1, args2; + va_start (args1, i); + args2 = args1; + if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42) + exit (1); + va_end (args1); + va_end (args2); + } + + int main() + { + f (0, 42); + return 0; + } + ],gnupg_cv_must_copy_va_byval=yes) fi - PTH_CPPFLAGS="$_pth_cppflags" - PTH_CFLAGS="$_pth_cflags" - PTH_LDFLAGS="$_pth_ldflags" - PTH_LIBS="$_pth_libs" - AC_SUBST(PTH_CPPFLAGS) - AC_SUBST(PTH_CFLAGS) - AC_SUBST(PTH_LDFLAGS) - AC_SUBST(PTH_LIBS) - _AC_PTH_VERBOSE([+ Final Results:]) - _AC_PTH_VERBOSE([ o PTH_CPPFLAGS=\"$PTH_CPPFLAGS\"]) - _AC_PTH_VERBOSE([ o PTH_CFLAGS=\"$PTH_CFLAGS\"]) - _AC_PTH_VERBOSE([ o PTH_LDFLAGS=\"$PTH_LDFLAGS\"]) - _AC_PTH_VERBOSE([ o PTH_LIBS=\"$PTH_LIBS\"]) -fi -if test ".$with_pth" != .no; then - AC_MSG_RESULT([version $_pth_version, $_pth_type under $_pth_location]) - ifelse([$5], , :, [$5]) -else - AC_MSG_RESULT([no]) - ifelse([$6], , :, [$6]) -fi + ]) + if test "$gnupg_cv_must_copy_va_byval" = yes; then + AC_DEFINE(MUST_COPY_VA_BYVAL,1,[used to implement the va_copy macro]) + fi + if test "$cross_compiling" = yes; then + AC_MSG_RESULT(assuming $gnupg_cv_must_copy_va_byval) + else + AC_MSG_RESULT($gnupg_cv_must_copy_va_byval) + fi ]) -