Re: commit -- Re: does expat/libtool combo work on Win32?


Subject: Re: commit -- Re: does expat/libtool combo work on Win32?
From: Paul Rohr (paul@abisource.com)
Date: Thu Feb 15 2001 - 10:57:48 CST


At 12:02 AM 2/15/01 -0600, Sam TH wrote:
>> I'm doing so manually for now because I can't tell where the change
belongs.
>Fix committed.

Thanks. I wasn't sure if the .in file was "upstream" enough for that fix.

>Well, the first question is sort of obvious - do you have gcc
>installed? I'm sure you don't need it, and using it may be a
>mistake.

Yep. I installed the gcc and binutils packages to get past a variety of
other configure errors. When I uninstall them, expat dies immediately:

-- snip --
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

configure:648: checking host system type
configure:669: checking build system type
configure:689: checking for ranlib
configure:719: checking for gcc
configure:749: checking for cc
-- snip --

-- snip --
$ make
Building AbiSuite with [ABI_ROOT=/cygdrive/c/work/abi]
make ABI_ROOT=/cygdrive/c/work/abi -C src
make[1]: Entering directory `/cygdrive/c/work/abi/src'
Building with [LicensedTrademarks:Off Debug:On BiDi:Off Pspell:Off].
make ABI_ROOT=/cygdrive/c/work/abi -C config build
make[2]: Entering directory `/cygdrive/c/work/abi/src/config'
Building with [LicensedTrademarks:Off Debug:On BiDi:Off Pspell:Off].
make ABI_ROOT=/cygdrive/c/work/abi -C require build
make[3]: Entering directory `/cygdrive/c/work/abi/src/config/require'
Building with [LicensedTrademarks:Off Debug:On BiDi:Off Pspell:Off].
make ABI_ROOT=/cygdrive/c/work/abi -C xp build
make[4]: Entering directory `/cygdrive/c/work/abi/src/config/require/xp'
Building with [LicensedTrademarks:Off Debug:On BiDi:Off Pspell:Off].
Found expat in peer directory
make[5]: Entering directory `/cygdrive/c/work/expat'
creating cache ./config.cache
checking host system type... i686-pc-cygwin
checking build system type... i686-pc-cygwin
checking for ranlib... :
checking for gcc... no
checking for cc... no
configure: error: no acceptable cc found in $PATH
-- snip --

This last error makes no sense, because cl.exe *is* on my path:

PATH=/usr/local/bin:/usr/bin:/bin:/cygdrive/c/WINNT/SYSTEM32:/cygdrive/c/WIN
NT:/
cygdrive/c/HW/MWW32/BIN:/cygdrive/c/HW/MWW32/MODEM:/cygdrive/c/cvs:/cygdrive
/c/b
in:/cygdrive/c/devstudio/sharedide/bin/ide:/cygdrive/c/devstudio/sharedide/b
in:/
cygdrive/c/devstudio/vc/bin

-- snip --
$ pwd
/cygdrive/c/devstudio/vc/bin
$ ls -la C*
-rwxr-xr-x 1 administ None 563984 Aug 4 1998 C1.DLL
-rwxr-xr-x 1 administ None 1047312 Aug 4 1998 C1XX.DLL
-rwxr-xr-x 1 administ None 630544 Aug 4 1998 C2.EXE
-rwxr-xr-x 1 administ None 46080 Aug 4 1998 CL.EXE
-rwxr-xr-x 1 administ None 74240 Aug 4 1998 CVPACK.EXE
-rw-r--r-- 1 administ None 939 Aug 21 1996 CVTRES.ERR
-rwxr-xr-x 1 administ None 16144 Aug 4 1998 CVTRES.EXE
-- snip --

Please don't tell me those AC scripts are case-sensitive!

>Other than that, it seems that the configure tests for the c compiler
>are the same in both.
>
><sam uses diff>
>
>Yep, the tests are identical.

That's what it looked like to me, too.

>Can you send the config.log output for
>both configure runs (from really clean trees) to me? I'll take a look
>at them.

Will do. Hopefully, the above will suffice, but just in case...

>That gibberish is shell code. It can be quite useful. :-) (Sam
>pretends he understand autoconf code.)

Makefiles are pretty simple to understand, but with this stuff I don't even
pretend to understand.

>> By comparison, those autoconf builds are #$^% noisy! This is what I'm
>> seeing for each and every file:
>
>Sadly, this is standard convention for basically every autoconf
>program in existance (and most non-autoconf unix programs too).

Ick.

>If the package uses automake (psiconv, and abi, once I get done with
>it)
>The Makefile.am is the correct place to fix it. However, since the
>Makefile.in (which is generated by Makefile.am and automake) is in our
>CVS tree too, fixing it their would also work. To fix it in the
>Makefile.am, you have to run automake afterwards. This requires
>getting automake (which should be easy). Remember to use the -i
>argument to automake (otherwise cl.exe will be very unhappy).
>
>If the package uses just autoconf (wv, expat, zlib, libiconv)
>Change the Makefile.in, which is a handwritten file.

Thanks. This helps. I know how the final makefiles should look:

  - pass -nologo as a cl.exe argument
  - pass --quiet or --silent as a libtool argument

When I hack those into the Makefiles by hand everything Just Works. I was
just having a hard time figuring out how far upstream to go in the automagic
files -- each of which seems to have yet another syntax -- so that the hand
mods wouldn't get clobbered later.

Ideally, we could pass both args on the command line and/or in the
environment, so that users of those libraries could still see all that noise
if they wanted to.

For -nologo, this is easy, since we can just add it to the CFLAGS we pass
into configure via EXPAT_PLATFORM_DEFS here:

  abi/src/config/platforms/win32.mk
  abi/src/config/require/xp/Makefile

However, there doesn't seem to be a comparable LTARGS that's passed to
LIBTOOL, and I don't know how to convince automake to let us:

  - add this to Makefile.am,
  - so that it winds up in Makefile.in,
  - and thus the final Makefile.

I'm assuming that any hand changes to Makefile.in get clobbered by running
automake on Makefile.am, no?

Paul



This archive was generated by hypermail 2b25 : Thu Feb 15 2001 - 10:52:41 CST