Subject: Re: [PATCH 1/1] perl: fix installing modules from contrib

From: Ævar Arnfjörð Bjarmason <[email-masked]>
Date: Tue, 03 Apr 2018 12:49:47 +0200

On Tue, Apr 03 2018, Christian Hesse wrote:

> Commit 20d2a30f (Makefile: replace perl/Makefile.PL with simple make rules)
> removed a target that allowed Makefiles from contrib/ to get the correct
> install path. This introduces a new target for main Makefile and fixes
> installation for Mediawiki module.
>
> Signed-off-by: Christian Hesse <[email-masked]>
> ---
>  Makefile                   | 2 ++
>  contrib/mw-to-git/Makefile | 4 ++--
>  2 files changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index a1d8775ad..bcaf50495 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -2002,6 +2002,8 @@ GIT-PERL-DEFINES: FORCE
>  		echo "$$FLAGS" >$@; \
>  	    fi
>
> +perllibdir:
> +	@echo $(perllibdir_SQ)
>
>  .PHONY: gitweb
>  gitweb:
> diff --git a/contrib/mw-to-git/Makefile b/contrib/mw-to-git/Makefile
> index a4b6f7a2c..0a6e59579 100644
> --- a/contrib/mw-to-git/Makefile
> +++ b/contrib/mw-to-git/Makefile
> @@ -21,8 +21,8 @@ HERE=contrib/mw-to-git/
>  INSTALL = install
>
>  SCRIPT_PERL_FULL=$(patsubst %,$(HERE)/%,$(SCRIPT_PERL))
> -INSTLIBDIR=$(shell $(MAKE) -C $(GIT_ROOT_DIR)/perl \
> -                -s --no-print-directory instlibdir)
> +INSTLIBDIR=$(shell $(MAKE) -C $(GIT_ROOT_DIR)/ \
> +                -s --no-print-directory perllibdir=$(perllibdir) perllibdir)
>  DESTDIR_SQ = $(subst ','\'',$(DESTDIR))
>  INSTLIBDIR_SQ = $(subst ','\'',$(INSTLIBDIR))

Thanks, I (obviously) missed that when getting rid of the perl/Makefile.

This fixes it up for now, but it seems we're going to need some solution
to make this work with the in-flight RUNTIME_PREFIX Dan's been working
on.

I think the best solution for that, not just for this but for most of
contrib/ in general, is to simply move it into our main tree out of
contrib/, and introduce some Makefile flags for whether or not you'd
want to install such-and-such from contrib.

That would probably be easier than the current arrangement, and we could
do things like say we always want to run tests for contrib/ stuff, even
though we're not installing it.