[PATCH] configure: add workaround for systems without zlib.pc

Tomi Ollila tomi.ollila at iki.fi
Mon May 12 08:21:51 PDT 2014


On Mon, May 12 2014, Felipe Contreras <felipe.contreras at gmail.com> wrote:

> 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.

I agree with David that this is easier to follow (and don't have those
sneaky zv? -variables ;D

2 comments inline.

>
> Signed-off-by: Felipe Contreras <felipe.contreras at gmail.com>
> ---
>  compat/.gitignore    |  1 +
>  compat/gen_zlib_pc.c | 18 ++++++++++++++++++
>  configure            |  9 +++++++++
>  3 files changed, 28 insertions(+)
>  create mode 100644 compat/.gitignore
>  create mode 100644 compat/gen_zlib_pc.c
>
> diff --git a/compat/.gitignore b/compat/.gitignore
> new file mode 100644
> index 0000000..107ba17
> --- /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 0000000..198a727
> --- /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";

The above is bit different what zlib.pc files have in e.g. Fedora 20 and
Ubuntu 14.04 machines: those have 'Requires: before Libs: (and Cflags:)'
But probably that is unnecessary (and just some sugar coating...?).


> +int main(void)
> +{
> +	printf(template, ZLIB_VERSION);
> +	return 0;
> +}
> diff --git a/configure b/configure
> index 9bde2eb..35dd21f 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 &&

To be consistent what we do elsewhere:

  PKG_CONFIG_PATH=${PKG_CONFIG_PATH:+$PKG_CONFIG_PATH:}compat &&

i.e. don't add ':' in case $PKG_CONFIG_PATH is not defined or is empty string.


Tomi


> +  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
> -- 
> 1.9.2+fc1~45~g3953d93


More information about the notmuch mailing list