Subject: bug#14576: "make install" has trouble with non-standard locallisppath directories

From: Eli Zaretskii <[email-masked]>
Date: Sat, 08 Jun 2013 18:05:15 +0300

> From: Juanma Barranquero <[email-masked]>
> Date: Sat, 8 Jun 2013 16:15:33 +0200
> 
> On Windows, using the MSYS build machinery.
> 
> If you need to add a non-default lisp directory to the path, by
> following nt/INSTALL.MSYS recommendation of doing, for example
> 
>   ./nt/msysconfig.sh
> --enable-locallisppath='%emacs_dir%/../site-lisp;%emacs_dir%/share/emacs/24.3.50/site-lisp;%emacs_dir%/share/emacs/site-lisp'
> 
> then "make install" will try to create these directories *in the build
> tree* (not the installation dir), and do a poor job at it. In the
> above case, after make install the build tree will contain these
> directories:
> 
>  %emacs_dir%
>  site-lisp;%emacs_dir%/share/emacs/24.3.50/site-lisp;%emacs_dir%/share/emacs/site-lisp
> 
> "%emacs_dir%" is literal, an unexpanded environment variable.

I removed from nt/INSTALL.MSYS the example that made it sound as if
%emacs_dir% is supported.  The other part of the reason that this
didn't work is that you need to separate the directories with a colon
':', not a semi-colon (another mistake in INSTALL.MSYS that I fixed).

Committed as trunk revision 112894.

Supporting these features will require changes in the top-level
Makefile.in; patches welcome.  IOW, the rest of this report is a
feature request.

> Makefile.in contains this old note:
> 
>   ## I'm not sure creating locallisppath here serves any useful purpose.
>   ## If it has the default value, then the later write_subdir commands
>   ## will ensure all these components exist.
>   ## This will only do something if locallisppath has a non-standard value.
>   ## Is it really Emacs's job to create those directories?
>   ## Should we also be ensuring they contain subdirs.el files?
>   ## It would be easy to do, just use write_subdir.
> 
> and indeed, I would argue that is not Emacs' job to create them. If
> the user is knowledgeable enough to have to use
> --enable-locallisppath, s/he'll also know enough to make sure the
> directories exist and contain subdirs.el as required.

This is IMO unrelated.