aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/gpgrt.texi20
-rw-r--r--src/Makefile.am12
-rw-r--r--src/gpg-error-config.in12
-rw-r--r--src/gpgrt.m4124
4 files changed, 155 insertions, 13 deletions
diff --git a/doc/gpgrt.texi b/doc/gpgrt.texi
index 857973a..cc652f5 100644
--- a/doc/gpgrt.texi
+++ b/doc/gpgrt.texi
@@ -209,17 +209,25 @@ directory in which the header file is located to the compilers include
file search path (via the @option{-I} option).
However, the path to the include file is determined at the time the
-source is configured. To solve this problem, Libgpg-error ships with a small
-helper program @command{gpg-error-config} that knows the path to the
-include file and other configuration options. The options that need
-to be added to the compiler invocation at compile time are output by
-the @option{--cflags} option to @command{gpg-error-config}. The following
-example shows how it can be used at the command line:
+source is configured. To solve this problem, Libgpg-error ships with
+the small helper programs @command{gpg-error-config} and
+@command{gpgrt-config} which both know the path to the include file
+and other configuration options. The options that need to be added to
+the compiler invocation at compile time are output by the
+@option{--cflags} option to @command{gpg-error-config} (or
+@command{gpgrt-config}. The following example shows how it can be
+used at the command line:
@example
gcc -c foo.c $(gpg-error-config --cflags)
@end example
+or with the identical
+
+@example
+gcc -c foo.c $(gpgrt-config --cflags)
+@end example
+
Adding the output of @samp{gpg-error-config --cflags} to the
compiler’s command line will ensure that the compiler can find the
Libgpg-error header file.
diff --git a/src/Makefile.am b/src/Makefile.am
index a95b732..4db7338 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -83,26 +83,27 @@ lock_obj_pub = \
lib_LTLIBRARIES = libgpg-error.la
nodist_include_HEADERS = gpg-error.h gpgrt.h
bin_SCRIPTS = gpg-error-config
+nodist_bin_SCRIPTS = gpgrt-config
m4datadir = $(datadir)/aclocal
-m4data_DATA = gpg-error.m4
+m4data_DATA = gpg-error.m4 gpgrt.m4
EXTRA_DIST = mkstrtable.awk err-sources.h.in err-codes.h.in \
mkerrnos.awk errnos.in README \
mkerrcodes.awk mkerrcodes1.awk mkerrcodes2.awk mkerrcodes.c \
mkheader.c gpg-error.h.in mkw32errmap.c w32-add.h w32ce-add.h \
- err-sources.h err-codes.h gpg-error-config.in gpg-error.m4 \
+ err-sources.h err-codes.h gpg-error-config.in gpg-error.m4 gpgrt.m4 \
gpg-error.vers gpg-error.def.in \
versioninfo.rc.in gpg-error.w32-manifest.in \
$(lock_obj_pub)
BUILT_SOURCES = err-sources.h err-codes.h code-to-errno.h code-from-errno.h \
err-sources-sym.h err-codes-sym.h errnos-sym.h gpg-error.h gpgrt.h \
- gpg-error.def mkw32errmap.map.c
+ gpgrt-config gpg-error.def mkw32errmap.map.c
tmp_files = _mkerrcodes.h _gpg-error.def.h mkw32errmap.tab.h mkw32errmap.map.c
CLEANFILES = err-sources.h err-codes.h code-to-errno.h code-from-errno.h \
- gpg-error.h gpgrt.h \
+ gpg-error.h gpgrt.h gpgrt-config \
mkerrcodes mkerrcodes.h gpg-error.def mkw32errmap.tab.h \
mkw32errmap.map.c err-sources-sym.h err-codes-sym.h errnos-sym.h \
gpg-extra/errno.h mkheader $(tmp_files) lock-obj-pub.native.h
@@ -317,6 +318,9 @@ gpg-error.h: Makefile mkheader $(parts_of_gpg_error_h) \
gpgrt.h: gpg-error.h
cp gpg-error.h gpgrt.h
+gpgrt-config: gpg-error-config
+ cp gpg-error-config gpgrt-config
+
install-data-local:
if HAVE_W32CE_SYSTEM
-$(MKDIR_P) "$(DESTDIR)$(includedir)/gpg-extra"
diff --git a/src/gpg-error-config.in b/src/gpg-error-config.in
index bc1c583..aa7cb67 100644
--- a/src/gpg-error-config.in
+++ b/src/gpg-error-config.in
@@ -8,7 +8,7 @@
# 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.
-
+# SPDX-License-Identifier: FSFULLR
prefix=@prefix@
exec_prefix=@exec_prefix@
@@ -16,13 +16,19 @@ includedir=@includedir@
libdir=@libdir@
isubdirafter="@GPG_ERROR_CONFIG_ISUBDIRAFTER@"
+if echo "$0" | grep gpg-error-config 2>/dev/null >/dev/null; then
+ myname="gpg-error-config"
+else
+ myname="gpgrt-config"
+fi
+
output=""
mt=no
usage()
{
cat <<EOF
-Usage: gpg-error-config [OPTIONS]
+Usage: $myname [OPTIONS]
Options:
[--mt] (must be the first option)
[--prefix]
@@ -67,7 +73,7 @@ while test $# -gt 0; do
output="$output -I$includedir"
fi
# Note: -idirafter is a gcc extension. It is only used on
- # systems where gcc is the only compiler we support.
+ # systems where gcc is the only compiler we support (WindowsCE).
for i in $isubdirafter; do
output="$output -idirafter ${includedir}/${i}"
done
diff --git a/src/gpgrt.m4 b/src/gpgrt.m4
new file mode 100644
index 0000000..8c2b6f9
--- /dev/null
+++ b/src/gpgrt.m4
@@ -0,0 +1,124 @@
+# gpgrt.m4 - autoconf macro to detect libgpgrt
+# Copyright (C) 2002, 2003, 2004, 2011, 2014, 2017 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
+# modifications, as long as this notice is preserved.
+#
+# 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.
+# SPDX-License-Identifier: FSFULLR
+#
+# Last-changed: 2014-10-02
+# Note: This is a duplicate of gpg-error.m4 with uses the future name
+# of libgpg-error to prepare for a smooth migration in some distant
+# time.
+
+dnl AM_PATH_GPGRT([MINIMUM-VERSION,
+dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]])
+dnl
+dnl Test for libgpgrt and define GPGRT_CFLAGS, GPGRT_LIBS,
+dnl GPG_ERROR_MT_CFLAGS, and GPG_ERROR_MT_LIBS. The _MT_ variants are
+dnl used for programs requiring 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_GPGRT],
+[ AC_REQUIRE([AC_CANONICAL_HOST])
+ gpgrt_config_prefix=""
+ dnl --with-libgpg-error-prefix=PFX is the preferred name for this option,
+ dnl since that is consistent with how our three siblings use the directory/
+ dnl package name in --with-$dir_name-prefix=PFX.
+ AC_ARG_WITH(libgpg-error-prefix,
+ AC_HELP_STRING([--with-libgpg-error-prefix=PFX],
+ [prefix where GPG Error is installed (optional)]),
+ [gpgrt_config_prefix="$withval"])
+
+ dnl Accept --with-gpg-error-prefix and make it work the same as
+ dnl --with-libgpg-error-prefix above, for backwards compatibility,
+ dnl but do not document this old, inconsistently-named option.
+ AC_ARG_WITH(gpg-error-prefix,,
+ [gpgrt_config_prefix="$withval"])
+
+ if test x"${GPGRT_CONFIG}" = x ; then
+ if test x"${gpgrt_config_prefix}" != x ; then
+ GPGRT_CONFIG="${gpgrt_config_prefix}/bin/gpg-error-config"
+ else
+ case "${SYSROOT}" in
+ /*)
+ if test -x "${SYSROOT}/bin/gpg-error-config" ; then
+ GPGRT_CONFIG="${SYSROOT}/bin/gpg-error-config"
+ fi
+ ;;
+ '')
+ ;;
+ *)
+ AC_MSG_WARN([Ignoring \$SYSROOT as it is not an absolute path.])
+ ;;
+ esac
+ fi
+ fi
+
+ AC_PATH_PROG(GPGRT_CONFIG, gpg-error-config, no)
+ min_gpgrt_version=ifelse([$1], ,0.0,$1)
+ AC_MSG_CHECKING(for GPG Error - version >= $min_gpgrt_version)
+ ok=no
+ if test "$GPGRT_CONFIG" != "no" \
+ && test -f "$GPGRT_CONFIG" ; then
+ req_major=`echo $min_gpgrt_version | \
+ sed 's/\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
+ req_minor=`echo $min_gpgrt_version | \
+ sed 's/\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
+ gpgrt_config_version=`$GPGRT_CONFIG $gpgrt_config_args --version`
+ major=`echo $gpgrt_config_version | \
+ sed 's/\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'`
+ minor=`echo $gpgrt_config_version | \
+ sed 's/\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'`
+ if test "$major" -gt "$req_major"; then
+ ok=yes
+ else
+ if test "$major" -eq "$req_major"; then
+ if test "$minor" -ge "$req_minor"; then
+ ok=yes
+ fi
+ fi
+ fi
+ fi
+ if test $ok = yes; then
+ GPGRT_CFLAGS=`$GPGRT_CONFIG $gpgrt_config_args --cflags`
+ GPGRT_LIBS=`$GPGRT_CONFIG $gpgrt_config_args --libs`
+ GPGRT_MT_CFLAGS=`$GPGRT_CONFIG $gpgrt_config_args --mt --cflags 2>/dev/null`
+ GPGRT_MT_LIBS=`$GPGRT_CONFIG $gpgrt_config_args --mt --libs 2>/dev/null`
+ AC_MSG_RESULT([yes ($gpgrt_config_version)])
+ ifelse([$2], , :, [$2])
+ gpgrt_config_host=`$GPGRT_CONFIG $gpgrt_config_args --host 2>/dev/null || echo none`
+ if test x"$gpgrt_config_host" != xnone ; then
+ if test x"$gpgrt_config_host" != x"$host" ; then
+ AC_MSG_WARN([[
+***
+*** The config script $GPGRT_CONFIG was
+*** built for $gpgrt_config_host and thus may not match the
+*** used host $host.
+*** You may want to use the configure option --with-libgpg-error-prefix
+*** to specify a matching config script or use \$SYSROOT.
+***]])
+ gpg_config_script_warn="$gpg_config_script_warn libgpg-error"
+ fi
+ fi
+ else
+ GPGRT_CFLAGS=""
+ GPGRT_LIBS=""
+ GPGRT_MT_CFLAGS=""
+ GPGRT_MT_LIBS=""
+ AC_MSG_RESULT(no)
+ ifelse([$3], , :, [$3])
+ fi
+ AC_SUBST(GPGRT_CFLAGS)
+ AC_SUBST(GPGRT_LIBS)
+ AC_SUBST(GPGRT_MT_CFLAGS)
+ AC_SUBST(GPGRT_MT_LIBS)
+])