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
|
AM_MAINTAINER_MODE
|
||||||
AC_CANONICAL_HOST
|
AC_CANONICAL_HOST
|
||||||
AM_SILENT_RULES
|
AM_SILENT_RULES
|
||||||
|
AC_ARG_VAR(SYSROOT,[locate config scripts also below that directory])
|
||||||
|
|
||||||
# Enable GNU extensions on systems that have them.
|
# Enable GNU extensions on systems that have them.
|
||||||
AC_GNU_SOURCE
|
AC_GNU_SOURCE
|
||||||
@ -636,3 +637,12 @@ echo "
|
|||||||
FD Passing: $use_descriptor_passing
|
FD Passing: $use_descriptor_passing
|
||||||
GPGME Pthread: $have_pthread
|
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
|
Because @acronym{GPGME} makes use of the GPG Error library, using
|
||||||
@acronym{GPGME} will also use the @code{GPG_ERR_*} name space
|
@acronym{GPGME} will also use the @code{GPG_ERR_*} name space
|
||||||
directly, and the @code{gpg_err*} and @code{gpg_str*} name space
|
directly, and the @code{gpg_err*}, @code{gpg_str*}, and @code{gpgrt_*}
|
||||||
indirectly.
|
name space indirectly.
|
||||||
|
|
||||||
|
|
||||||
@node Building the Source
|
@node Building the Source
|
||||||
@ -575,7 +575,10 @@ given.
|
|||||||
Additionally, the function defines @code{GPGME_CFLAGS} to the flags
|
Additionally, the function defines @code{GPGME_CFLAGS} to the flags
|
||||||
needed for compilation of the program to find the @file{gpgme.h}
|
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
|
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}
|
@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
|
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}
|
@code{AM_PATH_GPGME_PTHREAD} checks for the version of @acronym{GPGME}
|
||||||
that can be used with the native pthread implementation, and defines
|
that can be used with the native pthread implementation, and defines
|
||||||
@code{GPGME_PTHREAD_CFLAGS} and @code{GPGME_PTHREAD_LIBS}.
|
@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
|
@end defmac
|
||||||
|
|
||||||
You can use the defined Autoconf variables like this in your
|
You can use the defined Autoconf variables like this in your
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# gpg-error.m4 - autoconf macro to detect libgpg-error.
|
# 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
|
# This file is free software; as a special exception the author gives
|
||||||
# unlimited permission to copy and/or distribute it, with or without
|
# 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
|
# 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
|
# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
|
||||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
#
|
||||||
|
# Last-changed: 2014-10-02
|
||||||
|
|
||||||
|
|
||||||
dnl AM_PATH_GPG_ERROR([MINIMUM-VERSION,
|
dnl AM_PATH_GPG_ERROR([MINIMUM-VERSION,
|
||||||
dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]])
|
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
|
dnl
|
||||||
AC_DEFUN([AM_PATH_GPG_ERROR],
|
AC_DEFUN([AM_PATH_GPG_ERROR],
|
||||||
[ AC_REQUIRE([AC_CANONICAL_HOST])
|
[ AC_REQUIRE([AC_CANONICAL_HOST])
|
||||||
@ -30,13 +41,26 @@ AC_DEFUN([AM_PATH_GPG_ERROR],
|
|||||||
AC_ARG_WITH(gpg-error-prefix,,
|
AC_ARG_WITH(gpg-error-prefix,,
|
||||||
[gpg_error_config_prefix="$withval"])
|
[gpg_error_config_prefix="$withval"])
|
||||||
|
|
||||||
if test x$gpg_error_config_prefix != x ; then
|
if test x"${GPG_ERROR_CONFIG}" = x ; then
|
||||||
if test x${GPG_ERROR_CONFIG+set} != xset ; then
|
if test x"${gpg_error_config_prefix}" != x ; then
|
||||||
GPG_ERROR_CONFIG=$gpg_error_config_prefix/bin/gpg-error-config
|
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
|
||||||
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)
|
min_gpg_error_version=ifelse([$1], ,0.0,$1)
|
||||||
AC_MSG_CHECKING(for GPG Error - version >= $min_gpg_error_version)
|
AC_MSG_CHECKING(for GPG Error - version >= $min_gpg_error_version)
|
||||||
ok=no
|
ok=no
|
||||||
@ -64,6 +88,8 @@ AC_DEFUN([AM_PATH_GPG_ERROR],
|
|||||||
if test $ok = yes; then
|
if test $ok = yes; then
|
||||||
GPG_ERROR_CFLAGS=`$GPG_ERROR_CONFIG $gpg_error_config_args --cflags`
|
GPG_ERROR_CFLAGS=`$GPG_ERROR_CONFIG $gpg_error_config_args --cflags`
|
||||||
GPG_ERROR_LIBS=`$GPG_ERROR_CONFIG $gpg_error_config_args --libs`
|
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)])
|
AC_MSG_RESULT([yes ($gpg_error_config_version)])
|
||||||
ifelse([$2], , :, [$2])
|
ifelse([$2], , :, [$2])
|
||||||
gpg_error_config_host=`$GPG_ERROR_CONFIG $gpg_error_config_args --host 2>/dev/null || echo none`
|
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
|
*** built for $gpg_error_config_host and thus may not match the
|
||||||
*** used host $host.
|
*** used host $host.
|
||||||
*** You may want to use the configure option --with-gpg-error-prefix
|
*** 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
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
GPG_ERROR_CFLAGS=""
|
GPG_ERROR_CFLAGS=""
|
||||||
GPG_ERROR_LIBS=""
|
GPG_ERROR_LIBS=""
|
||||||
|
GPG_ERROR_MT_CFLAGS=""
|
||||||
|
GPG_ERROR_MT_LIBS=""
|
||||||
AC_MSG_RESULT(no)
|
AC_MSG_RESULT(no)
|
||||||
ifelse([$3], , :, [$3])
|
ifelse([$3], , :, [$3])
|
||||||
fi
|
fi
|
||||||
AC_SUBST(GPG_ERROR_CFLAGS)
|
AC_SUBST(GPG_ERROR_CFLAGS)
|
||||||
AC_SUBST(GPG_ERROR_LIBS)
|
AC_SUBST(GPG_ERROR_LIBS)
|
||||||
|
AC_SUBST(GPG_ERROR_MT_CFLAGS)
|
||||||
|
AC_SUBST(GPG_ERROR_MT_LIBS)
|
||||||
])
|
])
|
||||||
|
53
src/gpgme.m4
53
src/gpgme.m4
@ -1,5 +1,5 @@
|
|||||||
# gpgme.m4 - autoconf macro to detect GPGME.
|
# 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
|
# This file is free software; as a special exception the author gives
|
||||||
# unlimited permission to copy and/or distribute it, with or without
|
# 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
|
# 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
|
# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
|
||||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
#
|
||||||
|
# Last-changed: 2014-10-02
|
||||||
|
|
||||||
|
|
||||||
AC_DEFUN([_AM_PATH_GPGME_CONFIG],
|
AC_DEFUN([_AM_PATH_GPGME_CONFIG],
|
||||||
@ -15,9 +17,25 @@ AC_DEFUN([_AM_PATH_GPGME_CONFIG],
|
|||||||
AC_HELP_STRING([--with-gpgme-prefix=PFX],
|
AC_HELP_STRING([--with-gpgme-prefix=PFX],
|
||||||
[prefix where GPGME is installed (optional)]),
|
[prefix where GPGME is installed (optional)]),
|
||||||
gpgme_config_prefix="$withval", gpgme_config_prefix="")
|
gpgme_config_prefix="$withval", gpgme_config_prefix="")
|
||||||
if test "x$gpgme_config_prefix" != x ; then
|
if test x"${GPGME_CONFIG}" = x ; then
|
||||||
GPGME_CONFIG="$gpgme_config_prefix/bin/gpgme-config"
|
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
|
fi
|
||||||
|
;;
|
||||||
|
'')
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
AC_MSG_WARN([Ignoring \$SYSROOT as it is not an absolute path.])
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
AC_PATH_PROG(GPGME_CONFIG, gpgme-config, no)
|
AC_PATH_PROG(GPGME_CONFIG, gpgme-config, no)
|
||||||
|
|
||||||
if test "$GPGME_CONFIG" != "no" ; then
|
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/'`
|
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 AM_PATH_GPGME([MINIMUM-VERSION,
|
||||||
dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]])
|
dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]])
|
||||||
dnl Test for libgpgme and define GPGME_CFLAGS and GPGME_LIBS.
|
dnl Test for libgpgme and define GPGME_CFLAGS and GPGME_LIBS.
|
||||||
dnl
|
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_DEFUN([AM_PATH_GPGME],
|
||||||
[ AC_REQUIRE([_AM_PATH_GPGME_CONFIG])dnl
|
[ AC_REQUIRE([_AM_PATH_GPGME_CONFIG])dnl
|
||||||
tmp=ifelse([$1], ,1:0.4.2,$1)
|
tmp=ifelse([$1], ,1:0.4.2,$1)
|
||||||
@ -88,6 +131,7 @@ AC_DEFUN([AM_PATH_GPGME],
|
|||||||
GPGME_LIBS=`$GPGME_CONFIG --libs`
|
GPGME_LIBS=`$GPGME_CONFIG --libs`
|
||||||
AC_MSG_RESULT(yes)
|
AC_MSG_RESULT(yes)
|
||||||
ifelse([$2], , :, [$2])
|
ifelse([$2], , :, [$2])
|
||||||
|
_AM_PATH_GPGME_CONFIG_HOST_CHECK
|
||||||
else
|
else
|
||||||
GPGME_CFLAGS=""
|
GPGME_CFLAGS=""
|
||||||
GPGME_LIBS=""
|
GPGME_LIBS=""
|
||||||
@ -158,6 +202,7 @@ AC_DEFUN([AM_PATH_GPGME_PTHREAD],
|
|||||||
GPGME_PTHREAD_LIBS=`$GPGME_CONFIG --thread=pthread --libs`
|
GPGME_PTHREAD_LIBS=`$GPGME_CONFIG --thread=pthread --libs`
|
||||||
AC_MSG_RESULT(yes)
|
AC_MSG_RESULT(yes)
|
||||||
ifelse([$2], , :, [$2])
|
ifelse([$2], , :, [$2])
|
||||||
|
_AM_PATH_GPGME_CONFIG_HOST_CHECK
|
||||||
else
|
else
|
||||||
GPGME_PTHREAD_CFLAGS=""
|
GPGME_PTHREAD_CFLAGS=""
|
||||||
GPGME_PTHREAD_LIBS=""
|
GPGME_PTHREAD_LIBS=""
|
||||||
@ -226,6 +271,7 @@ AC_DEFUN([AM_PATH_GPGME_GLIB],
|
|||||||
GPGME_GLIB_LIBS=`$GPGME_CONFIG --glib --libs`
|
GPGME_GLIB_LIBS=`$GPGME_CONFIG --glib --libs`
|
||||||
AC_MSG_RESULT(yes)
|
AC_MSG_RESULT(yes)
|
||||||
ifelse([$2], , :, [$2])
|
ifelse([$2], , :, [$2])
|
||||||
|
_AM_PATH_GPGME_CONFIG_HOST_CHECK
|
||||||
else
|
else
|
||||||
GPGME_GLIB_CFLAGS=""
|
GPGME_GLIB_CFLAGS=""
|
||||||
GPGME_GLIB_LIBS=""
|
GPGME_GLIB_LIBS=""
|
||||||
@ -235,4 +281,3 @@ AC_DEFUN([AM_PATH_GPGME_GLIB],
|
|||||||
AC_SUBST(GPGME_GLIB_CFLAGS)
|
AC_SUBST(GPGME_GLIB_CFLAGS)
|
||||||
AC_SUBST(GPGME_GLIB_LIBS)
|
AC_SUBST(GPGME_GLIB_LIBS)
|
||||||
])
|
])
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user