build: Implement SYSROOT feature.
* configure.ac: Document SYSROOT. * m4/gpg-error.m4: Update from libgpg-error master. * src/gpgme.m4: Implement SYSROOT stuff.
This commit is contained in:
parent
b3309f997c
commit
4027a0a897
10
configure.ac
10
configure.ac
@ -83,6 +83,7 @@ AM_INIT_AUTOMAKE
|
||||
AM_MAINTAINER_MODE
|
||||
AC_CANONICAL_HOST
|
||||
AM_SILENT_RULES
|
||||
AC_ARG_VAR(SYSROOT,[locate config scripts also below that directory])
|
||||
|
||||
# Enable GNU extensions on systems that have them.
|
||||
AC_GNU_SOURCE
|
||||
@ -636,3 +637,12 @@ echo "
|
||||
FD Passing: $use_descriptor_passing
|
||||
GPGME Pthread: $have_pthread
|
||||
"
|
||||
if test "x${gpg_config_script_warn}" != x; then
|
||||
cat <<G10EOF
|
||||
Mismatches between the target platform and the to
|
||||
be used libraries have been been detected for:
|
||||
${gpg_config_script_warn}
|
||||
Please check above for warning messages.
|
||||
|
||||
G10EOF
|
||||
fi
|
||||
|
@ -391,8 +391,8 @@ to @acronym{GPGME} take the form @code{_gpgme_*} and @code{_GPGME_*}.
|
||||
|
||||
Because @acronym{GPGME} makes use of the GPG Error library, using
|
||||
@acronym{GPGME} will also use the @code{GPG_ERR_*} name space
|
||||
directly, and the @code{gpg_err*} and @code{gpg_str*} name space
|
||||
indirectly.
|
||||
directly, and the @code{gpg_err*}, @code{gpg_str*}, and @code{gpgrt_*}
|
||||
name space indirectly.
|
||||
|
||||
|
||||
@node Building the Source
|
||||
@ -575,7 +575,10 @@ given.
|
||||
Additionally, the function defines @code{GPGME_CFLAGS} to the flags
|
||||
needed for compilation of the program to find the @file{gpgme.h}
|
||||
header file, and @code{GPGME_LIBS} to the linker flags needed to link
|
||||
the program to the @acronym{GPGME} library.
|
||||
the program to the @acronym{GPGME} library. If the used helper script
|
||||
does not match the target type you are building for a warning is
|
||||
printed and the string @code{libgcrypt} is appended to the variable
|
||||
@code{gpg_config_script_warn}.
|
||||
|
||||
@code{AM_PATH_GPGME_PTH} checks for the version of @acronym{GPGME}
|
||||
that can be used with GNU Pth, and defines @code{GPGME_PTH_CFLAGS} and
|
||||
@ -584,6 +587,16 @@ that can be used with GNU Pth, and defines @code{GPGME_PTH_CFLAGS} and
|
||||
@code{AM_PATH_GPGME_PTHREAD} checks for the version of @acronym{GPGME}
|
||||
that can be used with the native pthread implementation, and defines
|
||||
@code{GPGME_PTHREAD_CFLAGS} and @code{GPGME_PTHREAD_LIBS}.
|
||||
|
||||
This macro searches for @command{gpgme-config} along the PATH. If
|
||||
you are cross-compiling, it is useful to set the environment variable
|
||||
@code{SYSROOT} to the top directory of your target. The macro will
|
||||
then first look for the helper program in the @file{bin} directory
|
||||
below that top directory. An absolute directory name must be used for
|
||||
@code{SYSROOT}. Finally, if the configure command line option
|
||||
@code{--with-gpgme-prefix} is used, only its value is used for the top
|
||||
directory below which the helper script is expected.
|
||||
|
||||
@end defmac
|
||||
|
||||
You can use the defined Autoconf variables like this in your
|
||||
|
@ -1,5 +1,5 @@
|
||||
# gpg-error.m4 - autoconf macro to detect libgpg-error.
|
||||
# Copyright (C) 2002, 2003, 2004, 2011 g10 Code GmbH
|
||||
# Copyright (C) 2002, 2003, 2004, 2011, 2014 g10 Code GmbH
|
||||
#
|
||||
# This file is free software; as a special exception the author gives
|
||||
# unlimited permission to copy and/or distribute it, with or without
|
||||
@ -8,10 +8,21 @@
|
||||
# This file is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
#
|
||||
# Last-changed: 2014-10-02
|
||||
|
||||
|
||||
dnl AM_PATH_GPG_ERROR([MINIMUM-VERSION,
|
||||
dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]])
|
||||
dnl Test for libgpg-error and define GPG_ERROR_CFLAGS and GPG_ERROR_LIBS
|
||||
dnl
|
||||
dnl Test for libgpg-error and define GPG_ERROR_CFLAGS, GPG_ERROR_LIBS,
|
||||
dnl GPG_ERROR_MT_CFLAGS, and GPG_ERROR_MT_LIBS. The _MT_ variants are
|
||||
dnl used for programs requireing real multi thread support.
|
||||
dnl
|
||||
dnl If a prefix option is not used, the config script is first
|
||||
dnl searched in $SYSROOT/bin and then along $PATH. If the used
|
||||
dnl config script does not match the host specification the script
|
||||
dnl is added to the gpg_config_script_warn variable.
|
||||
dnl
|
||||
AC_DEFUN([AM_PATH_GPG_ERROR],
|
||||
[ AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
@ -30,13 +41,26 @@ AC_DEFUN([AM_PATH_GPG_ERROR],
|
||||
AC_ARG_WITH(gpg-error-prefix,,
|
||||
[gpg_error_config_prefix="$withval"])
|
||||
|
||||
if test x$gpg_error_config_prefix != x ; then
|
||||
if test x${GPG_ERROR_CONFIG+set} != xset ; then
|
||||
GPG_ERROR_CONFIG=$gpg_error_config_prefix/bin/gpg-error-config
|
||||
if test x"${GPG_ERROR_CONFIG}" = x ; then
|
||||
if test x"${gpg_error_config_prefix}" != x ; then
|
||||
GPG_ERROR_CONFIG="${gpg_error_config_prefix}/bin/gpg-error-config"
|
||||
else
|
||||
case "${SYSROOT}" in
|
||||
/*)
|
||||
if test -x "${SYSROOT}/bin/gpg-error-config" ; then
|
||||
GPG_ERROR_CONFIG="${SYSROOT}/bin/gpg-error-config"
|
||||
fi
|
||||
;;
|
||||
'')
|
||||
;;
|
||||
*)
|
||||
AC_MSG_WARN([Ignoring \$SYSROOT as it is not an absolute path.])
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
|
||||
AC_PATH_TOOL(GPG_ERROR_CONFIG, gpg-error-config, no)
|
||||
AC_PATH_PROG(GPG_ERROR_CONFIG, gpg-error-config, no)
|
||||
min_gpg_error_version=ifelse([$1], ,0.0,$1)
|
||||
AC_MSG_CHECKING(for GPG Error - version >= $min_gpg_error_version)
|
||||
ok=no
|
||||
@ -64,6 +88,8 @@ AC_DEFUN([AM_PATH_GPG_ERROR],
|
||||
if test $ok = yes; then
|
||||
GPG_ERROR_CFLAGS=`$GPG_ERROR_CONFIG $gpg_error_config_args --cflags`
|
||||
GPG_ERROR_LIBS=`$GPG_ERROR_CONFIG $gpg_error_config_args --libs`
|
||||
GPG_ERROR_MT_CFLAGS=`$GPG_ERROR_CONFIG $gpg_error_config_args --mt --cflags 2>/dev/null`
|
||||
GPG_ERROR_MT_LIBS=`$GPG_ERROR_CONFIG $gpg_error_config_args --mt --libs 2>/dev/null`
|
||||
AC_MSG_RESULT([yes ($gpg_error_config_version)])
|
||||
ifelse([$2], , :, [$2])
|
||||
gpg_error_config_host=`$GPG_ERROR_CONFIG $gpg_error_config_args --host 2>/dev/null || echo none`
|
||||
@ -75,16 +101,21 @@ AC_DEFUN([AM_PATH_GPG_ERROR],
|
||||
*** built for $gpg_error_config_host and thus may not match the
|
||||
*** used host $host.
|
||||
*** You may want to use the configure option --with-gpg-error-prefix
|
||||
*** to specify a matching config script.
|
||||
*** to specify a matching config script or use \$SYSROOT.
|
||||
***]])
|
||||
gpg_config_script_warn="$gpg_config_script_warn libgpg-error"
|
||||
fi
|
||||
fi
|
||||
else
|
||||
GPG_ERROR_CFLAGS=""
|
||||
GPG_ERROR_LIBS=""
|
||||
GPG_ERROR_MT_CFLAGS=""
|
||||
GPG_ERROR_MT_LIBS=""
|
||||
AC_MSG_RESULT(no)
|
||||
ifelse([$3], , :, [$3])
|
||||
fi
|
||||
AC_SUBST(GPG_ERROR_CFLAGS)
|
||||
AC_SUBST(GPG_ERROR_LIBS)
|
||||
AC_SUBST(GPG_ERROR_MT_CFLAGS)
|
||||
AC_SUBST(GPG_ERROR_MT_LIBS)
|
||||
])
|
||||
|
59
src/gpgme.m4
59
src/gpgme.m4
@ -1,5 +1,5 @@
|
||||
# gpgme.m4 - autoconf macro to detect GPGME.
|
||||
# Copyright (C) 2002, 2003, 2004 g10 Code GmbH
|
||||
# Copyright (C) 2002, 2003, 2004, 2014 g10 Code GmbH
|
||||
#
|
||||
# This file is free software; as a special exception the author gives
|
||||
# unlimited permission to copy and/or distribute it, with or without
|
||||
@ -8,6 +8,8 @@
|
||||
# This file is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
#
|
||||
# Last-changed: 2014-10-02
|
||||
|
||||
|
||||
AC_DEFUN([_AM_PATH_GPGME_CONFIG],
|
||||
@ -15,9 +17,25 @@ AC_DEFUN([_AM_PATH_GPGME_CONFIG],
|
||||
AC_HELP_STRING([--with-gpgme-prefix=PFX],
|
||||
[prefix where GPGME is installed (optional)]),
|
||||
gpgme_config_prefix="$withval", gpgme_config_prefix="")
|
||||
if test "x$gpgme_config_prefix" != x ; then
|
||||
GPGME_CONFIG="$gpgme_config_prefix/bin/gpgme-config"
|
||||
if test x"${GPGME_CONFIG}" = x ; then
|
||||
if test x"${gpgme_config_prefix}" != x ; then
|
||||
GPGME_CONFIG="${gpgme_config_prefix}/bin/gpgme-config"
|
||||
else
|
||||
case "${SYSROOT}" in
|
||||
/*)
|
||||
if test -x "${SYSROOT}/bin/gpgme-config" ; then
|
||||
GPGME_CONFIG="${SYSROOT}/bin/gpgme-config"
|
||||
fi
|
||||
;;
|
||||
'')
|
||||
;;
|
||||
*)
|
||||
AC_MSG_WARN([Ignoring \$SYSROOT as it is not an absolute path.])
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
|
||||
AC_PATH_PROG(GPGME_CONFIG, gpgme-config, no)
|
||||
|
||||
if test "$GPGME_CONFIG" != "no" ; then
|
||||
@ -31,10 +49,35 @@ AC_DEFUN([_AM_PATH_GPGME_CONFIG],
|
||||
sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\3/'`
|
||||
])
|
||||
|
||||
|
||||
AC_DEFUN([_AM_PATH_GPGME_CONFIG_HOST_CHECK],
|
||||
[
|
||||
gpgme_config_host=`$GPGME_CONFIG --host 2>/dev/null || echo none`
|
||||
if test x"$gpgme_config_host" != xnone ; then
|
||||
if test x"$gpgme_config_host" != x"$host" ; then
|
||||
AC_MSG_WARN([[
|
||||
***
|
||||
*** The config script $GPGME_CONFIG was
|
||||
*** built for $gpgme_config_host and thus may not match the
|
||||
*** used host $host.
|
||||
*** You may want to use the configure option --with-gpgme-prefix
|
||||
*** to specify a matching config script or use \$SYSROOT.
|
||||
***]])
|
||||
gpg_config_script_warn="$gpg_config_script_warn gpgme"
|
||||
fi
|
||||
fi
|
||||
])
|
||||
|
||||
|
||||
dnl AM_PATH_GPGME([MINIMUM-VERSION,
|
||||
dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]])
|
||||
dnl Test for libgpgme and define GPGME_CFLAGS and GPGME_LIBS.
|
||||
dnl
|
||||
dnl If a prefix option is not used, the config script is first
|
||||
dnl searched in $SYSROOT/bin and then along $PATH. If the used
|
||||
dnl config script does not match the host specification the script
|
||||
dnl is added to the gpg_config_script_warn variable.
|
||||
dnl
|
||||
AC_DEFUN([AM_PATH_GPGME],
|
||||
[ AC_REQUIRE([_AM_PATH_GPGME_CONFIG])dnl
|
||||
tmp=ifelse([$1], ,1:0.4.2,$1)
|
||||
@ -57,7 +100,7 @@ AC_DEFUN([AM_PATH_GPGME],
|
||||
sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
|
||||
if test "$gpgme_version_major" -gt "$req_major"; then
|
||||
ok=yes
|
||||
else
|
||||
else
|
||||
if test "$gpgme_version_major" -eq "$req_major"; then
|
||||
if test "$gpgme_version_minor" -gt "$req_minor"; then
|
||||
ok=yes
|
||||
@ -88,6 +131,7 @@ AC_DEFUN([AM_PATH_GPGME],
|
||||
GPGME_LIBS=`$GPGME_CONFIG --libs`
|
||||
AC_MSG_RESULT(yes)
|
||||
ifelse([$2], , :, [$2])
|
||||
_AM_PATH_GPGME_CONFIG_HOST_CHECK
|
||||
else
|
||||
GPGME_CFLAGS=""
|
||||
GPGME_LIBS=""
|
||||
@ -126,7 +170,7 @@ AC_DEFUN([AM_PATH_GPGME_PTHREAD],
|
||||
sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
|
||||
if test "$gpgme_version_major" -gt "$req_major"; then
|
||||
ok=yes
|
||||
else
|
||||
else
|
||||
if test "$gpgme_version_major" -eq "$req_major"; then
|
||||
if test "$gpgme_version_minor" -gt "$req_minor"; then
|
||||
ok=yes
|
||||
@ -158,6 +202,7 @@ AC_DEFUN([AM_PATH_GPGME_PTHREAD],
|
||||
GPGME_PTHREAD_LIBS=`$GPGME_CONFIG --thread=pthread --libs`
|
||||
AC_MSG_RESULT(yes)
|
||||
ifelse([$2], , :, [$2])
|
||||
_AM_PATH_GPGME_CONFIG_HOST_CHECK
|
||||
else
|
||||
GPGME_PTHREAD_CFLAGS=""
|
||||
GPGME_PTHREAD_LIBS=""
|
||||
@ -195,7 +240,7 @@ AC_DEFUN([AM_PATH_GPGME_GLIB],
|
||||
sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
|
||||
if test "$gpgme_version_major" -gt "$req_major"; then
|
||||
ok=yes
|
||||
else
|
||||
else
|
||||
if test "$gpgme_version_major" -eq "$req_major"; then
|
||||
if test "$gpgme_version_minor" -gt "$req_minor"; then
|
||||
ok=yes
|
||||
@ -226,6 +271,7 @@ AC_DEFUN([AM_PATH_GPGME_GLIB],
|
||||
GPGME_GLIB_LIBS=`$GPGME_CONFIG --glib --libs`
|
||||
AC_MSG_RESULT(yes)
|
||||
ifelse([$2], , :, [$2])
|
||||
_AM_PATH_GPGME_CONFIG_HOST_CHECK
|
||||
else
|
||||
GPGME_GLIB_CFLAGS=""
|
||||
GPGME_GLIB_LIBS=""
|
||||
@ -235,4 +281,3 @@ AC_DEFUN([AM_PATH_GPGME_GLIB],
|
||||
AC_SUBST(GPGME_GLIB_CFLAGS)
|
||||
AC_SUBST(GPGME_GLIB_LIBS)
|
||||
])
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user