Subject: bug#16772: Failure in "make install" on MS-Windows

From: Dani Moncayo <[email-masked]>
Date: Mon, 17 Feb 2014 12:42:52 +0100

> Dani, could you please try this patch?
>
> === modified file 'nt/Makefile.in'
> --- nt/Makefile.in 2014-02-13 03:19:57 +0000
> +++ nt/Makefile.in 2014-02-17 02:37:26 +0000
> @@ -172,5 +172,5 @@
>    $(INSTALL_PROGRAM) $(INSTALL_STRIP) $${file}
> "$(DESTDIR)${bindir}"/`echo $${file} | sed -e 's/${EXEEXT}$$//' -e
> '$(TRANSFORM)'`${EXEEXT} ; \
>   done
> - $(INSTALL_DATA) README.W32 "$(DESTDIR)${datadir}/emacs/$(version)"
> + $(INSTALL_DATA) $(srcdir)/README.W32 "$(DESTDIR)${datadir}/emacs/$(version)"
>
>  uninstall:

I've tried the patch:  I've gone to the build directory and done "make
install prefix='../myinstalldir' GZIP_INFO= GZIP_PROG=".  The process
has ended up this way:

Installing utilities for users to run.
umask 022; /bin/mkdir -p "../myinstalldir/bin"
for file in runemacs.exe addpm.exe ; do \
  /bin/install -c  ${file} "../myinstalldir/bin"/`echo ${file} | sed
-e 's/.exe$//' -e 's,x,x,'`.exe ; \
done
/bin/install -c -m 644 /C/msys/home/dani/emacs/repo/nt/README.W32
"../myinstalldir/share/emacs/24.3.50"
/bin/install: cannot create regular file
`../myinstalldir/share/emacs/24.3.50': No such file or directory
Makefile:168: recipe for target `install' failed
make[1]: *** [install] Error 1
make[1]: Leaving directory `/usr/home/dani/emacs/build/nt'
Makefile:509: recipe for target `install-nt' failed
make: *** [install-nt] Error 2

The problem, I think, is that $(DESTDIR) contains literally the prefix
I gave ("../myinstalldir"), which is a relative path (to the "current"
directory - at the moment of the "make install"), but since we are now
in "nt/Makefile", the current working directory is "<build-dir>/nt",
and therefore, relative references like this one don't refer to the
intended location.

If I specify an absolute path as prefix in "make install", the the
process seems to complete successfully.

-- 
Dani Moncayo