Subject: Re: GIT on MinGW problem

From: Jakub Narebski <[email-masked]>
Date: Sun, 27 May 2007 11:09:11 +0200

On Sun, 27 May 2007, Steven Grimm wrote:
> Han-Wen Nienhuys wrote:
>> Shawn O. Pearce escreveu:
>>>
>>> On systems like Cygwin the fork+exec overheads are very high
>>
>> A well written configure script is able to detect presence
>> of a linkable libcurl.
> 
> IMO the reasons configure is so unwieldy, at least as it's set up in 
> most open source projects, are that a) it spends 95% of its time 
> checking for things that basically never vary (yes, I have stdlib.h, 
> thank you) and that b) it doesn't remember the results from previous 
> runs on the same host (I'm just changing the install path; my ints won't 
> have stopped being 32 bits as a result.)

./configure _can_ cache tests results:

$ ./configure --help
[...]
      --cache-file=FILE   cache test results in FILE [disabled]
  -C, --config-cache      alias for `--cache-file=config.cache'

but it does not do this, and does not check chache by default. Of course
tests have to be written to make use of cache, IIRC...

> I wonder if we could satisfy  
> most people with a configure script -- maybe not based on autoconf -- 
> that is limited in scope to just the things that are currently tweakable 
> in the git Makefile.

The problem with handcrafted configure script lies in the portability
of it. There was an attempt to add such script, IIRC based on mplayer's
configure.sh script, but it turned out it was not portable enough.
The conclusion was that sice so many manhours were put into making
autoconf generate ultra-portable ./configure shell script, it would
be better to use it.

> If configure ran only, say, 10-15 tests, I bet the fork+exec overhead on 
> Cygwin would be perfectly tolerable.

That's not only fork+exec, that is also the fact that large number
of tests relies on compiling snippets of code...

P.S. What do you think about separating the guessing appropriate
values of build variables based on uname to separate file
config.mak.guess, included in Makefile?

-- 
Jakub Narebski
Poland