This is the mail archive of the
automake@gnu.org
mailing list for the automake project.
Re: Programs differing only by ".exe" suffix: subtle Libtool 1.3
- To: Alexandre Oliva <oliva@dcc.unicamp.br>
- Subject: Re: Programs differing only by ".exe" suffix: subtle Libtool 1.3
- From: "Gary V. Vaughan" <gary@oranda.demon.co.uk>
- Date: Tue, 25 May 1999 22:03:16 +0100 (BST)
- Cc: bug-libtool@gnu.org, Automake List <automake@gnu.org>, "Matthew D. Langston" <langston@SLAC.Stanford.EDU>, Thomas Tanner <tanner@gmx.de>
On 25-May-99 Alexandre Oliva wrote:
> On May 23, 1999, Thomas Tanner <tanner@gmx.de> wrote:
>
>> On 22-May-99 Matthew D. Langston wrote:
>>> In a nutshell, an Automake/Libtool package becomes "broken" when two
>>> programs (i.e. in some Automake "_PROGRAMS" primary) differ in their
>>> names only by the suffix ".exe". For example, the following snippet
>>> from `Makefile.am' works as expected:
>
>> Thanks. Fixed.
>
> Yep, but your fix will break msdos/djgpp :-(
Ah. I hadn't noticed =(O|
> We could add *msdos* and *djgpp* to the list of matches, but I fear we
> might forget some platform, so I'd rather revert the patch for 1.3.2,
> for considering it too risky, and install a proper fix for 1.4, which
> would involve checking for AC_EXEEXT in AC_LIBTOOL_SETUP and arrange
> that the detected extension is passed to ltconfig, and that ltconfig
> creates a sed script to provide the script name, given the executable
> name, and stores it in the configuration section of libtool.
I agree. 1.4 is probably some months away, and it would be nice to not
have to maintain 1.3.2 too much...
> What do you think, should we just add more alternatives to .exe
> removal or retain the 1.3 behavior in 1.3.2?
I think we should revert the patch for 1.3.2.
Unfortunately the correct fix is somewhat more complicated than how you
describe it. As you know, because the win32 kernel insists that all files with
an .exe suffix do not have their magic number checked and are simply executed
as binaries, we are creating wrapper scripts with the exe suffix stripped. The
problem that this introduces is that any make rules which depend on the
presence of the .exe file will trigger if shared libraries have been built by
libtool and wrapper scripts are used. In other words, when using shared
libraries on win32 with libtool. all executables are rebuilt every time make is
run (because the .exe file is not present even after a successful link).
I'm not even sure how to fix this cleanly. I fear it may involve yet more
stamp-files and changes to automake =(O|
Cheers,
Gary.
--
___ _ ___ __ _ email:gary@oranda.demon.co.uk
/ __|__ _ _ ___ _| | / / | / /_ _ _ _ __ _| |_ __ _ ___ gary@gnu.org
| (_ / _` | '_|// / |/ /| |/ / _` | || / _` | ' \/ _` | _ \
\___\__,_|_|\_, /|___(_)___/\__,_|\_,_\__, |_||_\__,_|//_/
home page: /___/ /___/ pgp-2 public key:
http://www.oranda.demon.co.uk http://www.oranda.demon.co.uk/pgp