From 96886a3d45bd8a76e15a48c06e98b020f5f047e4 Mon Sep 17 00:00:00 2001 From: Pablo Wolochwianski Date: Tue, 8 Aug 2017 15:23:59 -0300 Subject: [PATCH] Add Varnish5 compatibility --- Makefile.am | 15 +++++++++++---- autogen.sh | 15 ++++++++++++--- configure.ac | 44 ++++++++++++++++++++++++++++++++++---------- 3 files changed, 57 insertions(+), 17 deletions(-) diff --git a/Makefile.am b/Makefile.am index cacfc13..1b711c8 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,18 +1,25 @@ -ACLOCAL_AMFLAGS = -I m4 +ACLOCAL_AMFLAGS = -I m4 -I ${LIBVARNISHAPI_DATAROOTDIR}/aclocal SUBDIRS = src -EXTRA_DIST = README.rst +DISTCHECK_CONFIGURE_FLAGS = \ + VMOD_DIR='$${libdir}/varnish/vmods' + +EXTRA_DIST = README.rst LICENSE CHANGES.rst + +doc_DATA = README.rst LICENSE dist_man_MANS = vmod_urlcode.3 MAINTAINERCLEANFILES = $(dist_man_MANS) vmod_urlcode.3: README.rst + +%.1 %.2 %.3 %.4 %.5 %.6 %.7 %.8 %.9: if HAVE_RST2MAN - ${RST2MAN} README.rst $@ + ${RST2MAN} $< $@ else @echo "========================================" @echo "You need rst2man installed to make dist" @echo "========================================" @false -endif +endif \ No newline at end of file diff --git a/autogen.sh b/autogen.sh index 9a12ef5..953756b 100755 --- a/autogen.sh +++ b/autogen.sh @@ -35,10 +35,19 @@ else esac fi +# check for varnishapi.m4 in custom paths +dataroot=$(pkg-config --variable=datarootdir varnishapi 2>/dev/null) +if [ -z "$dataroot" ] ; then + cat >&2 <<'EOF' +Package varnishapi was not found in the pkg-config search path. +Perhaps you should add the directory containing `varnishapi.pc' +to the PKG_CONFIG_PATH environment variable +EOF + exit 1 +fi set -ex - -aclocal -I m4 +aclocal -I m4 -I ${dataroot}/aclocal $LIBTOOLIZE --copy --force autoheader automake --add-missing --copy --foreign -autoconf +autoconf \ No newline at end of file diff --git a/configure.ac b/configure.ac index 026f535..3294e1f 100644 --- a/configure.ac +++ b/configure.ac @@ -1,7 +1,8 @@ AC_PREREQ(2.59) -AC_COPYRIGHT([Copyright (c) 2011 Varnish Software AS]) -AC_INIT([libvmod-urlcode], [master]) +AC_COPYRIGHT([Copyright (c) 2011-2016 Varnish Software]) +AC_INIT([libvmod-urlcode], [1.0.1]) AC_CONFIG_MACRO_DIR([m4]) +m4_ifndef([VARNISH_VMOD_INCLUDES], AC_MSG_ERROR([Need varnish.m4])) AC_CONFIG_SRCDIR(src/vmod_urlcode.vcc) AM_CONFIG_HEADER(config.h) @@ -22,6 +23,8 @@ AC_PROG_INSTALL AC_PROG_LIBTOOL AC_PROG_MAKE_SET +AC_CHECK_LIB(mhash, mhash_count, [AC_DEFINE([HAVE_MHASH],[1],[Define we have mhash])], + [AC_MSG_ERROR([libvmod-urlcode requires libmhash.])]) # Check for rst utilities AC_CHECK_PROGS(RST2MAN, [rst2man rst2man.py], "no") if test "x$RST2MAN" = "xno"; then @@ -29,26 +32,47 @@ if test "x$RST2MAN" = "xno"; then fi AM_CONDITIONAL(HAVE_RST2MAN, [test "x$RST2MAN" != "xno"]) -# Check for pkg-config -PKG_PROG_PKG_CONFIG - # Checks for header files. AC_HEADER_STDC AC_CHECK_HEADERS([sys/stdlib.h]) -# Check for python -AC_CHECK_PROGS(PYTHON, [python3 python3.1 python3.2 python2.7 python2.6 python2.5 python2 python], [AC_MSG_ERROR([Python is needed to build this vmod, please install python.])]) +# backwards compat with older pkg-config +# - pull in AC_DEFUN from pkg.m4 +m4_ifndef([PKG_CHECK_VAR], [ +# PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, +# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +# ------------------------------------------- +# Retrieves the value of the pkg-config variable for the given module. +AC_DEFUN([PKG_CHECK_VAR], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl + +_PKG_CONFIG([$1], [variable="][$3]["], [$2]) +AS_VAR_COPY([$1], [pkg_cv_][$1]) + +AS_VAR_IF([$1], [""], [$5], [$4])dnl +])# PKG_CHECK_VAR +]) + +PKG_CHECK_MODULES([libvarnishapi], [varnishapi]) +PKG_CHECK_VAR([LIBVARNISHAPI_DATAROOTDIR], [varnishapi], [datarootdir]) +PKG_CHECK_VAR([LIBVARNISHAPI_BINDIR], [varnishapi], [bindir]) +PKG_CHECK_VAR([LIBVARNISHAPI_SBINDIR], [varnishapi], [sbindir]) +AC_SUBST([LIBVARNISHAPI_DATAROOTDIR]) # Varnish include files tree VARNISH_VMOD_INCLUDES VARNISH_VMOD_DIR VARNISH_VMODTOOL -AC_PATH_PROG([VARNISHTEST], [varnishtest]) -AC_PATH_PROG([VARNISHD], [varnishd]) +AC_PATH_PROG([VARNISHTEST], [varnishtest], [], + [$LIBVARNISHAPI_BINDIR:$LIBVARNISHAPI_SBINDIR:$PATH]) +AC_PATH_PROG([VARNISHD], [varnishd], [], + [$LIBVARNISHAPI_SBINDIR:$LIBVARNISHAPI_BINDIR:$PATH]) + AC_CONFIG_FILES([ Makefile src/Makefile ]) -AC_OUTPUT +AC_OUTPUT \ No newline at end of file