Standard LEX variable doesn't work in Make.

Brian Inglis
Sun Nov 27 03:04:00 GMT 2016

On 2016-11-25 17:08, Hans-Bernhard Bröker wrote:
> Am 25.11.2016 um 15:31 schrieb Brian Inglis:
>> One solution, and the most common in Cygwin, is the package flex should
>> create a symlink lex if no such symlink or exe exists;
> In this case I believe that would be less than fully correct, because
> flex is not a clean drop-in replacement for generic lex. For that one
> has to add the '-l' flag. So instead of a symlink one would use a
> wrapper script much like the 'yacc' script found in the 'bison'
> package, i.e.:
>     #! /bin/sh
>     exec /usr/bin/flex -l "$@"

On Debian both yacc and bison.yacc are alternatives;

>> or by the FHS,
>> create a group of alternatives, with a slave alternative for each of
>> its public components e.g. bin, man, info, etc. files.
> I don't think 'alternatives' is applicable here. We're not looking at
> several packages providing the same file --- we're looking at
> * single packages offering the same executable under more than one
> name, causing it to express different personalities, like ex ->
> vi.exe, view -> vi.exe, latex --> pdftex.exe,

and all vi, vim, nvi, elvis etc. links are handled via alternatives:
it's used as the canonical example in
> * a subsystem like texlive installing a truckload of executable
> scripts somewhere else, and links from /bin to them.

but tex uses no alternatives.

> So while I agree that the 'alternatives' mechanism could, or even
> should be used more in Cygwin, I don't think this is one of the cases
> where that applies.

Cygwin currently seems to follow the RH/RHEL/Fedora model using it in
limited cases. Not running Cygwin/X I don't know if it is used for X
or Gnome packages, where it is used extensively in Debian-based distros.
One commenter on Debian notes it is also used for: "
- cases where you've got a common name referring to specific name
   (like emacs-->/usr/bin/emacs20)
- cases where an older style name refers to the modern equivalent
   (maybe cc-->/usr/bin/gcc or csh-->/usr/bin/tcsh or rcp-->/usr/bin/scp)
- cases where a Unix-style name refers to the modern GNU equivalent
   (like yacc-->/usr/bin/bison)."
and I'd add it is also used for some versioned .so files and language
variants, so it appears it can apply wherever the packager decides it
Cygport currently supports it for postinstall(/preremove) in the berkdb
cygclass and Google shows some other packages also appear to use it.
Perhaps Cygwin packages should use it more, whenever symlink creation
is considered for some component.

Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada

Problem reports:
Unsubscribe info:

More information about the Cygwin mailing list