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


Reply via email to