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

From: Eli Zaretskii <[email-masked]>
Date: Mon, 17 Feb 2014 16:48:52 +0200

> Date: Mon, 17 Feb 2014 12:42:52 +0100
> From: Dani Moncayo <[email-masked]>
> Cc: [email-masked]
> 
> /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.

Don't specify relative file names in DESTDIR, that's not supported.
>From the GNU Coding Standards:

  7.2.4 `DESTDIR': Support for Staged Installs
  --------------------------------------------

  `DESTDIR' is a variable prepended to each installed target file, like
  this:

       $(INSTALL_PROGRAM) foo $(DESTDIR)$(bindir)/foo
       $(INSTALL_DATA) libfoo.a $(DESTDIR)$(libdir)/libfoo.a

     The `DESTDIR' variable is specified by the user on the `make'
  command line as an absolute file name.  For example:
               ^^^^^^^^^^^^^^^^^^^^^^^^
       make DESTDIR=/tmp/stage install