* Alexandre Lissy wrote on Thu, Aug 25, 2011 at 03:26:46PM CEST:
> Path computation for installation in GCC's plugin/melt-modules/ path was
> broken (in fact not updated to the latest changes). Present commit fixes
> this by reading the link targets and installing them.

> --- a/contrib/MELT-Plugin-Makefile
> +++ b/contrib/MELT-Plugin-Makefile
> @@ -288,13 +288,11 @@ install-melt-sources: melt-sources  melt-all-sources
>  ### phony makefile target from melt-build.mk
>  install-melt-modules: melt-modules melt-all-modules
>       $(mkinstalldirs) $(DESTDIR)/$(melt_module_dir)
> -     for d in $(wildcard melt-modules/*); do \
> -       $(mkinstalldirs) $(DESTDIR)/$(melt_module_dir)/`basename $$d` ; \
> -       for f in $$d/*.so ; do \
> -          $(INSTALL_PROGRAM) $$f $(DESTDIR)/$(melt_module_dir)/`basename 
> $$d`/`basename $$f ` ; \
> -       done; \
> +     for l in $(wildcard melt-modules/*); do \

If there are no matches for this wildcard, this will generate
a shell syntax error, unlike the old code.  Perusing the
MELT-Plugin-Makefile, it wasn't obvious whether this can ever
happen in practice or not, but it might be prudent to guard
against it nonetheless.  One common way is to add a ':' in the
for list, and test for != : inside.

> +       $(INSTALL_PROGRAM) `readlink $$l` 
> $(DESTDIR)/$(melt_module_dir)/$$(basename `readlink $$l`) ; \

No slash after $(DESTDIR), please.

>       done
>  
> +
>  ## install the makefile for MELT modules
>  install-melt-mk: melt-module.mk
>       $(mkinstalldirs) $(DESTDIR)/$(libexecsubdir)

Reply via email to