libtool-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Patches for Mingw/MSYS


From: Charles Wilson
Subject: Re: Patches for Mingw/MSYS
Date: Sat, 18 Jun 2005 14:25:11 -0400
User-agent: Mozilla Thunderbird 1.0 (Windows/20041206)

First, tho, the proposed change should NOT be committed. Since I'm the one who created the exe wrapper system, maybe I should explain why it's there: to fix the "relink on install" problem. Remember when 'make install' would rebuild every executable (sometimes multiple times), because the make target was foo$(EXE) but the only prog that existed where make could see it was the shell script wrapper foo?

That's why libtool, on Windows platforms, creates an executable wrapper named ./foo$(EXE) -- to ensure that make will not try to rebuild the "real" executable unless it really needs to. The exe-wrapper has a simple job: it runs the shell script wrapper foo, which in turn sets up the environment so that the REAL exe, .libs/foo.exe (or sometimes .libs/foo-lt.exe), can operate properly (find its DLLs, etc).

Yes, it's cumbersome and overly complicated -- but we can't dispense with the shell script wrapper, because there are times when libtool itself needs to parse the CONTENTS of that wrapper. If ALL we had were the exe-wrapper, then libtool wouldn't be able to do that. So, on Windows, we have both, chained together -- because they solve different problems.

However, if you want to go and screw with stuff, feel free -- but ensure when you do so that you disentangle cygwin. In almost every case, there's something like this:

  case $host in
  cygwin* | mingw* ) do A ;;
  * ) do B ;;
  esac

If you want to screw around with the wrapper system, then do so at YOUR risk, not MINE:

  case $host in
  cygwin* ) do A ;;
  mingw* ) do stupid stuff that will break ;;
  * ) do B ;;

Thanks.  That is all.

--
Chuck




reply via email to

[Prev in Thread] Current Thread [Next in Thread]