aboutsummaryrefslogtreecommitdiffstats
path: root/src/gpg-error-config-test.sh
diff options
context:
space:
mode:
authorNIIBE Yutaka <[email protected]>2018-09-10 23:57:23 +0000
committerNIIBE Yutaka <[email protected]>2018-09-11 00:32:57 +0000
commit78b679a778ddf37b8952f1808fd8c52cc8163f17 (patch)
treecd72001ae97275ef581712e4de75fc83ce539770 /src/gpg-error-config-test.sh
parentgpgscm: Suppress warnings for GCC > 6. (diff)
downloadlibgpg-error-78b679a778ddf37b8952f1808fd8c52cc8163f17.tar.gz
libgpg-error-78b679a778ddf37b8952f1808fd8c52cc8163f17.zip
Make gpg-error-config compatible to pkg-config.
* configure.ac (AC_CONFIG_FILES): Generate src/gpg-error.pc, as well as src/gpg-error-config-old and src/gpg-error-config-new. * src/Makefile.am (pkgconfigdir, pkgconfig_DATA): New. (EXTRA_DIST): Add gpg-error-config-new.in, gpg-error-config-test.sh, and gpg-error.pc.in. (CLEANFILES): Add gpg-error-config gpg-error-config-test.log. (TESTS): New. (gpg-error-config): New target. * src/gpg-error-config-new.in: New. * src/gpg-error-config-test.sh: New. * src/gpg-error.pc.in: New. * src/gpg-error.m4 (GPG_ERROR_MT_CFLAGS): Use --variable. (GPG_ERROR_MT_LIBS, gpg_error_config_host): Likewise. -- This change is to privide gpg-error.pc for pkg-config, so that developers can use pkg-config to configure their applications. The gpg-error-config script is also kept supported for applications which want to avoid dependency of pkg-config. Note that new gpg-error-config script uses gpg-error.pc as master data, so that it can keep compatibility to pkg-config easily. In the new gpg-error-config script, features are added to increase compatibility to pkg-config, like --variable option and multiple module support. However, it is not meant to oriented to be a full-fledged version of pkg-config, only a small set of features is supported. To be conservative, new gpg-error-config is checked at build time against old gpg-error-config. On the host which fails, old gpg-error-config will be installed with a warning. GnuPG-bug-id: 4085 Signed-off-by: NIIBE Yutaka <[email protected]>
Diffstat (limited to 'src/gpg-error-config-test.sh')
-rwxr-xr-xsrc/gpg-error-config-test.sh86
1 files changed, 86 insertions, 0 deletions
diff --git a/src/gpg-error-config-test.sh b/src/gpg-error-config-test.sh
new file mode 100755
index 0000000..7f97ead
--- /dev/null
+++ b/src/gpg-error-config-test.sh
@@ -0,0 +1,86 @@
+#!/bin/sh
+
+PKG_CONFIG_PATH="."
+
+export PKG_CONFIG_PATH
+
+if [ "$1" = --old-new ]; then
+ PKG_CONFIG_CMD=./gpg-error-config-old
+else
+ PKG_CONFIG_CMD="pkg-config gpg-error"
+ if ! $PKG_CONFIG_CMD --exists >/dev/null; then
+ exit 77 # Skip tests
+ fi
+fi
+
+test_failed=""
+
+failure () {
+ (
+ echo "Test result: $*"
+ echo "====================: $PKG_CONFIG_CMD"
+ echo "$OUTPUT_OLD"
+ echo "====================: gpg-error-config-new"
+ echo "$OUTPUT_NEW"
+ echo "===================="
+ ) >> gpg-error-config-test.log
+ test_failed=yes
+}
+
+rm -f gpg-error-config-test.log
+
+OUTPUT_OLD=$($PKG_CONFIG_CMD --libs)
+OUTPUT_NEW=$(./gpg-error-config-new --libs)
+[ "$OUTPUT_OLD" = "$OUTPUT_NEW" ] || failure --libs
+
+OUTPUT_OLD=$($PKG_CONFIG_CMD --cflags)
+OUTPUT_NEW=$(./gpg-error-config-new --cflags)
+[ "$OUTPUT_OLD" = "$OUTPUT_NEW" ] || failure --cflags
+
+OUTPUT_OLD=$($PKG_CONFIG_CMD --cflags --libs)
+OUTPUT_NEW=$(./gpg-error-config-new --cflags --libs)
+[ "$OUTPUT_OLD" = "$OUTPUT_NEW" ] || failure --cflags --libs
+
+if [ "$PKG_CONFIG_CMD" = ./gpg-error-config-old ]; then
+ OUTPUT_OLD=$($PKG_CONFIG_CMD --version)
+ OUTPUT_NEW=$(./gpg-error-config-new --version)
+ [ "$OUTPUT_OLD" = "$OUTPUT_NEW" ] || failure --version
+
+ OUTPUT_OLD=$($PKG_CONFIG_CMD --mt --libs)
+ OUTPUT_NEW=$(./gpg-error-config-new --mt --libs)
+ [ "$OUTPUT_OLD" = "$OUTPUT_NEW" ] || failure --mt --libs
+
+ OUTPUT_OLD=$($PKG_CONFIG_CMD --mt --cflags)
+ OUTPUT_NEW=$(./gpg-error-config-new --mt --cflags)
+ [ "$OUTPUT_OLD" = "$OUTPUT_NEW" ] || failure --mt --cflags
+
+ OUTPUT_OLD=$($PKG_CONFIG_CMD --cflags --libs)
+ OUTPUT_NEW=$(./gpg-error-config-new --cflags --libs)
+ [ "$OUTPUT_OLD" = "$OUTPUT_NEW" ] || failure --cflags --libs
+
+ OUTPUT_OLD=$($PKG_CONFIG_CMD --mt --cflags --libs)
+ OUTPUT_NEW=$(./gpg-error-config-new --mt --cflags --libs)
+ [ "$OUTPUT_OLD" = "$OUTPUT_NEW" ] || failure --mt --cflags --libs
+
+ OUTPUT_OLD=$($PKG_CONFIG_CMD --variable=mtcflags)
+ OUTPUT_NEW=$(./gpg-error-config-new --variable=mtcflags)
+ [ "$OUTPUT_OLD" = "$OUTPUT_NEW" ] || failure --variable=mtcflags
+
+ OUTPUT_OLD=$($PKG_CONFIG_CMD --variable=mtlibs)
+ OUTPUT_NEW=$(./gpg-error-config-new --variable=mtlibs)
+ [ "$OUTPUT_OLD" = "$OUTPUT_NEW" ] || failure --variable=mtlibs
+
+ OUTPUT_OLD=$($PKG_CONFIG_CMD --variable=host)
+ OUTPUT_NEW=$(./gpg-error-config-new --variable=host)
+ [ "$OUTPUT_OLD" = "$OUTPUT_NEW" ] || failure --variable=host
+fi
+
+if [ -n "$test_failed" ]; then
+ OUTPUT_OLD=$($PKG_CONFIG_CMD --version)
+ OUTPUT_NEW=$(./gpg-error-config-new --version)
+ failure --version
+
+ exit 99
+fi
+
+exit 0