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