2000-10-27 14:55:24 +00:00
|
|
|
#!/bin/sh
|
2003-09-03 20:58:38 +00:00
|
|
|
# Copyright (C) 1999, 2002, 2003 Free Software Foundation, Inc.
|
2002-08-23 19:48:30 +00:00
|
|
|
#
|
|
|
|
# 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.
|
2000-10-27 14:55:24 +00:00
|
|
|
|
2018-11-12 00:03:49 +00:00
|
|
|
prefix="@prefix@"
|
|
|
|
exec_prefix="@exec_prefix@"
|
|
|
|
version="@PACKAGE_VERSION@"
|
|
|
|
api_version="@GPGME_CONFIG_API_VERSION@"
|
|
|
|
my_host="@GPGME_CONFIG_HOST@"
|
2000-10-27 14:55:24 +00:00
|
|
|
|
2009-03-13 14:19:55 +00:00
|
|
|
# Make sure that no weird locale setting messes up our sed regexps etc.
|
|
|
|
LC_COLLATE=C
|
|
|
|
LC_ALL=C
|
|
|
|
LANG=C
|
|
|
|
|
2011-04-06 18:10:45 +00:00
|
|
|
# GPGME's own cflags and libs
|
|
|
|
cflags="-I@includedir@"
|
|
|
|
libs="-L@libdir@"
|
|
|
|
|
2006-07-29 14:40:16 +00:00
|
|
|
# Network libraries.
|
2009-10-20 15:54:01 +00:00
|
|
|
assuan_cflags="@LIBASSUAN_CFLAGS@"
|
|
|
|
assuan_libs="@LIBASSUAN_LIBS@"
|
2006-07-29 14:40:16 +00:00
|
|
|
|
2003-09-03 01:15:56 +00:00
|
|
|
# Configure libgpg-error.
|
2003-07-28 12:09:04 +00:00
|
|
|
gpg_error_cflags="@GPG_ERROR_CFLAGS@"
|
|
|
|
gpg_error_libs="@GPG_ERROR_LIBS@"
|
2003-06-06 02:35:45 +00:00
|
|
|
|
2003-09-03 01:15:56 +00:00
|
|
|
# Configure thread packages.
|
|
|
|
thread_modules=""
|
|
|
|
|
core: Use gpgrt locking for thread safeness
* configure.ac: Require libgpg-error 1.17. No longer
check for pthread.
* doc/gpgme.texi: Document removed neccessity for thread
safe gpgme flavours.
* src/sema.h (DEFINE_GLOBAL_LOCK),
(DEFINE_STATIC_LOCK, INIT_LOCK, DECLARE_LOCK)
(DESTROY_LOCK, LOCK, UNLOCK): Change to gpgrt equivalents.
* src/posix-sema.c, src/w32-sema.c: Removed.
* src/Makefile.am: Remove libpthread and
Update accordingly.
* src/ath.c, src/ath.h (ath_mutex_init)
(ath_mutex_destroy, ath_mutex_lock, ath_mutex_unlock): Removed.
* src/ath.h (ATH_MUTEX_INITIALIZER): Removed.
* src/version.c (do_subsystem_inits): sema_subsystem_init is
no longer required.
* tests/gpg/Makefile.am: Add new threading tests.
(t_thread1_LDADD, t_cancel_LDADD):
Use just gpgme.
* tests/gpg/t-thread-keylist-verify.c,
tests/gpg/t-thread-keylist.c: New.
* src/gpgme-config.in: Use -lgpgme for thread-model pthread.
--
Using gpgrt locks instead of pthread locks removes
the neccessity to link pthread directly to gpgme and
have a different, thread safe flavor of gpgme. Now
gpgme is thread-safe if the conditions mentioned
in the doc are met.
As the cpp bindings linked against libgpgme
and not libgpgme-pthread this fixes threading problems
with them.
libgpgme-pthread is removed but gpgme-config still supports
--thread=pthread for compatibility with find scripts.
2016-11-08 14:32:14 +00:00
|
|
|
# For compatibility we keep proving the
|
|
|
|
# thread modules variable.
|
|
|
|
thread_modules="$thread_modules pthread"
|
2006-03-06 10:33:57 +00:00
|
|
|
libs_pthread="-lpthread"
|
|
|
|
cflags_pthread=""
|
|
|
|
|
2016-08-21 13:49:03 +00:00
|
|
|
avail_lang='c @GPGME_CONFIG_AVAIL_LANG@'
|
|
|
|
|
2005-11-17 18:45:14 +00:00
|
|
|
# Configure glib.
|
|
|
|
libs_glib="@GLIB_LIBS@"
|
|
|
|
cflags_glib="@GLIB_CFLAGS@"
|
|
|
|
with_glib=
|
2003-09-03 01:15:56 +00:00
|
|
|
|
|
|
|
output=""
|
2000-10-27 14:55:24 +00:00
|
|
|
|
|
|
|
usage()
|
|
|
|
{
|
2003-09-03 01:15:56 +00:00
|
|
|
cat <<EOF
|
|
|
|
Usage: gpgme-config [OPTIONS]
|
2000-10-27 14:55:24 +00:00
|
|
|
Options:
|
2016-08-21 13:49:03 +00:00
|
|
|
--prefix
|
|
|
|
--exec-prefix
|
|
|
|
--version
|
|
|
|
--api-version
|
|
|
|
--host
|
|
|
|
--libs
|
|
|
|
--cflags
|
|
|
|
--print-lang Print available language bindings
|
|
|
|
--have-lang=LANG Return success if LANG is available
|
2000-10-27 14:55:24 +00:00
|
|
|
EOF
|
2003-09-03 01:15:56 +00:00
|
|
|
exit $1
|
2000-10-27 14:55:24 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
if test $# -eq 0; then
|
2003-09-03 01:15:56 +00:00
|
|
|
usage 1 1>&2
|
2000-10-27 14:55:24 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
while test $# -gt 0; do
|
2003-09-03 01:15:56 +00:00
|
|
|
case "$1" in
|
|
|
|
-*=*)
|
|
|
|
optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'`
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
optarg=
|
|
|
|
;;
|
|
|
|
esac
|
2000-10-27 14:55:24 +00:00
|
|
|
|
2003-09-03 01:15:56 +00:00
|
|
|
case $1 in
|
2004-03-03 15:15:41 +00:00
|
|
|
--prefix=*)
|
|
|
|
# For compatibility reasons with old M4 macros, we ignore
|
|
|
|
# setting of prefix.
|
|
|
|
;;
|
2003-09-03 01:15:56 +00:00
|
|
|
--prefix)
|
|
|
|
output="$output $prefix"
|
|
|
|
;;
|
2004-03-03 15:15:41 +00:00
|
|
|
--exec-prefix=*)
|
|
|
|
;;
|
2003-09-03 01:15:56 +00:00
|
|
|
--exec-prefix)
|
|
|
|
output="$output $exec_prefix"
|
|
|
|
;;
|
2005-11-17 18:45:14 +00:00
|
|
|
--glib)
|
|
|
|
with_glib=yes
|
|
|
|
;;
|
2003-09-03 01:15:56 +00:00
|
|
|
--version)
|
2018-11-12 00:03:49 +00:00
|
|
|
echo "$version"
|
2003-09-03 01:15:56 +00:00
|
|
|
exit 0
|
|
|
|
;;
|
2004-05-21 19:49:38 +00:00
|
|
|
--api-version)
|
2018-11-12 00:03:49 +00:00
|
|
|
echo "$api_version"
|
2004-05-21 19:49:38 +00:00
|
|
|
exit 0
|
|
|
|
;;
|
2011-04-06 18:10:45 +00:00
|
|
|
--host)
|
2018-11-12 00:03:49 +00:00
|
|
|
echo "$my_host"
|
2011-04-06 18:10:45 +00:00
|
|
|
exit 0
|
|
|
|
;;
|
2003-09-03 01:15:56 +00:00
|
|
|
--cflags)
|
2011-04-06 18:10:45 +00:00
|
|
|
result=
|
|
|
|
tmp_c=
|
|
|
|
tmp_g=
|
2003-09-03 01:15:56 +00:00
|
|
|
case "$thread_module" in
|
2011-04-06 18:10:45 +00:00
|
|
|
pthread) tmp_c="$cflags_pthread" ;;
|
2003-09-03 01:15:56 +00:00
|
|
|
esac
|
2011-04-06 18:10:45 +00:00
|
|
|
test "x$with_glib" = "xyes" && tmp_g="$cflags_glib"
|
|
|
|
for i in $cflags $tmp_c $assuan_cflags $gpg_error_cflags $tmp_g ; do
|
|
|
|
skip=no
|
|
|
|
case $i in
|
|
|
|
-I/usr/include|-I/include)
|
|
|
|
skip=yes
|
|
|
|
;;
|
|
|
|
-I*)
|
|
|
|
for j in $result ; do
|
|
|
|
if test x"$j" = x"$i" ; then
|
|
|
|
skip=yes
|
|
|
|
break;
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
if test $skip = no ; then
|
|
|
|
result="$result $i"
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
output="$output $result"
|
|
|
|
;;
|
2003-09-03 01:15:56 +00:00
|
|
|
--libs)
|
2011-04-06 18:10:45 +00:00
|
|
|
result=
|
|
|
|
tmp_x=
|
2003-09-03 01:15:56 +00:00
|
|
|
case "$thread_module" in
|
core: Use gpgrt locking for thread safeness
* configure.ac: Require libgpg-error 1.17. No longer
check for pthread.
* doc/gpgme.texi: Document removed neccessity for thread
safe gpgme flavours.
* src/sema.h (DEFINE_GLOBAL_LOCK),
(DEFINE_STATIC_LOCK, INIT_LOCK, DECLARE_LOCK)
(DESTROY_LOCK, LOCK, UNLOCK): Change to gpgrt equivalents.
* src/posix-sema.c, src/w32-sema.c: Removed.
* src/Makefile.am: Remove libpthread and
Update accordingly.
* src/ath.c, src/ath.h (ath_mutex_init)
(ath_mutex_destroy, ath_mutex_lock, ath_mutex_unlock): Removed.
* src/ath.h (ATH_MUTEX_INITIALIZER): Removed.
* src/version.c (do_subsystem_inits): sema_subsystem_init is
no longer required.
* tests/gpg/Makefile.am: Add new threading tests.
(t_thread1_LDADD, t_cancel_LDADD):
Use just gpgme.
* tests/gpg/t-thread-keylist-verify.c,
tests/gpg/t-thread-keylist.c: New.
* src/gpgme-config.in: Use -lgpgme for thread-model pthread.
--
Using gpgrt locks instead of pthread locks removes
the neccessity to link pthread directly to gpgme and
have a different, thread safe flavor of gpgme. Now
gpgme is thread-safe if the conditions mentioned
in the doc are met.
As the cpp bindings linked against libgpgme
and not libgpgme-pthread this fixes threading problems
with them.
libgpgme-pthread is removed but gpgme-config still supports
--thread=pthread for compatibility with find scripts.
2016-11-08 14:32:14 +00:00
|
|
|
# deprecated
|
|
|
|
pthread) tmp_l="-lgpgme" ;;
|
2003-09-03 01:15:56 +00:00
|
|
|
*)
|
2011-04-06 18:10:45 +00:00
|
|
|
if test "x$with_glib" = "xyes" ; then
|
|
|
|
tmp_l="-lgpgme-glib"
|
|
|
|
tmp_x="$libs_glib"
|
2005-11-17 18:45:14 +00:00
|
|
|
else
|
2011-04-06 18:10:45 +00:00
|
|
|
tmp_l="-lgpgme"
|
2005-11-17 18:45:14 +00:00
|
|
|
fi
|
|
|
|
;;
|
2003-09-03 01:15:56 +00:00
|
|
|
esac
|
2011-04-06 18:10:45 +00:00
|
|
|
for i in $libs $tmp_l $assuan_libs $gpg_error_libs $tmp_x; do
|
|
|
|
skip=no
|
|
|
|
case $i in
|
|
|
|
-L/usr/lib|-L/lib)
|
|
|
|
skip=yes
|
|
|
|
;;
|
|
|
|
-L*|-l*)
|
|
|
|
for j in $result ; do
|
|
|
|
if test x"$j" = x"$i" ; then
|
|
|
|
skip=yes
|
|
|
|
break;
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
if test $skip = no ; then
|
|
|
|
result="$result $i"
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
output="$output $result"
|
2003-09-03 01:15:56 +00:00
|
|
|
;;
|
|
|
|
--thread=*)
|
|
|
|
for thread_mod in $thread_modules; do
|
|
|
|
if test "$thread_mod" = "$optarg"; then
|
|
|
|
thread_module="$optarg";
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
if test "x$thread_module" = "x"; then
|
|
|
|
usage 1 1>&2
|
|
|
|
fi
|
|
|
|
;;
|
2016-08-21 13:49:03 +00:00
|
|
|
--print-lang)
|
|
|
|
output="$avail_lang"
|
|
|
|
;;
|
|
|
|
--have-lang=*)
|
|
|
|
for lang in $avail_lang; do
|
|
|
|
if test x"$lang" = x"$optarg"; then
|
|
|
|
exit 0
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
exit 1
|
|
|
|
;;
|
2007-01-26 12:08:12 +00:00
|
|
|
--get-gpg)
|
2016-08-21 13:49:03 +00:00
|
|
|
# Deprecated
|
2007-01-26 12:08:12 +00:00
|
|
|
output="$output @GPG@"
|
|
|
|
;;
|
|
|
|
--get-gpgsm)
|
2016-08-21 13:49:03 +00:00
|
|
|
# Deprecated
|
2007-01-26 12:08:12 +00:00
|
|
|
output="$output @GPGSM@"
|
|
|
|
;;
|
2003-09-03 01:15:56 +00:00
|
|
|
*)
|
|
|
|
usage 1 1>&2
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
shift
|
2000-10-27 14:55:24 +00:00
|
|
|
done
|
|
|
|
|
2003-09-03 01:15:56 +00:00
|
|
|
echo $output
|