aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Felipe Contreras <felipe.contreras@gmail.com>2014-05-11 22:09:32 -0500
committerGravatar David Bremner <david@tethera.net>2014-06-21 16:40:39 -0300
commit0c698ef0374b671d3b6a8def2d9c113797ceaec3 (patch)
tree8f50497bc5b3af373d20b81b0fa2ce0bded2d4aa
parentdc64ab67207fef897bca88741fc42330793d7bd8 (diff)
configure: add workaround for systems without zlib.pc
Some systems (e.g. FreeBSD) might not have installed the appropriate pkg-config file as they should. We can workaround the issue by creating the .pc file they should have distributed. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
-rw-r--r--compat/.gitignore1
-rw-r--r--compat/gen_zlib_pc.c18
-rwxr-xr-xconfigure9
3 files changed, 28 insertions, 0 deletions
diff --git a/compat/.gitignore b/compat/.gitignore
new file mode 100644
index 00000000..107ba17a
--- /dev/null
+++ b/compat/.gitignore
@@ -0,0 +1 @@
+zlib.pc
diff --git a/compat/gen_zlib_pc.c b/compat/gen_zlib_pc.c
new file mode 100644
index 00000000..198a727c
--- /dev/null
+++ b/compat/gen_zlib_pc.c
@@ -0,0 +1,18 @@
+#include <stdio.h>
+#include <zlib.h>
+
+static const char *template =
+ "prefix=/usr\n"
+ "exec_prefix=${prefix}\n"
+ "libdir=${exec_prefix}/lib\n"
+ "\n"
+ "Name: zlib\n"
+ "Description: zlib compression library\n"
+ "Version: %s\n"
+ "Libs: -lz\n";
+
+int main(void)
+{
+ printf(template, ZLIB_VERSION);
+ return 0;
+}
diff --git a/configure b/configure
index 9bde2eb7..99ab74dc 100755
--- a/configure
+++ b/configure
@@ -340,6 +340,15 @@ else
errors=$((errors + 1))
fi
+if ! pkg-config --exists zlib; then
+ ${CC} ${zlib_cflags} -o compat/gen_zlib_pc \
+ "$srcdir"/compat/gen_zlib_pc.c ${zlib_ldflags} > /dev/null 2>&1 &&
+ compat/gen_zlib_pc > compat/zlib.pc &&
+ PKG_CONFIG_PATH="$PKG_CONFIG_PATH":compat &&
+ export PKG_CONFIG_PATH
+ rm -f compat/gen_zlib_pc
+fi
+
printf "Checking for zlib (>= 1.2.5.2)... "
have_zlib=0
if pkg-config --atleast-version=1.2.5.2 zlib; then