From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10313 invoked from network); 25 Dec 2003 12:18:09 -0000 Received: from sunsite.dk (130.225.247.90) by ns1.primenet.com.au with SMTP; 25 Dec 2003 12:18:09 -0000 Received: (qmail 19832 invoked by alias); 25 Dec 2003 12:18:04 -0000 Mailing-List: contact zsh-workers-help@sunsite.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 19332 Received: (qmail 19766 invoked from network); 25 Dec 2003 12:18:04 -0000 Received: from localhost (HELO sunsite.dk) (127.0.0.1) by localhost with SMTP; 25 Dec 2003 12:18:04 -0000 X-MessageWall-Score: 0 (sunsite.dk) Received: from [192.35.17.2] by sunsite.dk (MessageWall 1.0.8) with SMTP; 25 Dec 2003 12:18:4 -0000 Received: from mail3.siemens.de (mail3.siemens.de [139.25.208.14]) by thoth.sbs.de (8.11.7/8.11.7) with ESMTP id hBPCI3728190 for ; Thu, 25 Dec 2003 13:18:03 +0100 (MET) Received: from mowp006a.ww600.siemens.net (mowp006a.ru001.siemens.net [163.242.193.6]) by mail3.siemens.de (8.11.7/8.11.7) with ESMTP id hBPCI2j07736 for ; Thu, 25 Dec 2003 13:18:03 +0100 (MET) Received: by mowp006a.ru001.siemens.net with Internet Mail Service (5.5.2653.19) id ; Thu, 25 Dec 2003 15:18:02 +0300 Message-ID: <66F451E8923A3D42B22434287141E2E3C675AE@mowp006a.ru001.siemens.net> From: Borzenkov Andrey To: "'Zsh hackers list'" Subject: RE: autoconf 2.5 (Re: PATCH: terminfo horor) Date: Thu, 25 Dec 2003 15:17:03 +0300 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: text/plain > > > > The configure script is creating config.modules twice. Second time > > round when evaluating $link using the code in terminfo.mdd, > > $ac_cv_func_tigetstr was unset. It seems the configure script runs > > config.status. By running configure with --no-create, it was happy to > > build terminfo.so. Switching from autoconf 2.57 to 2.13 also solved the > > issue. > > > > looking in current zshconfig.ac it should not do it unless something else > is > buggy. > > > configure cats config.modules.sh into config.status using > > AC_OUTPUT_COMMANDS which is obsolete in autoconf 2.5. Using the new > > AC_CONFIG_COMMANDS doesn't help because variables like > > $ac_cv_func_tigetstr are still not set. > > > > Does anyone understand the real point of config.status? Why does > > configure need to run it? I get the impression that it should contain > > just a duplicate of what is in config.modules as created and recreate > > it as opposed to rerunning scripts to derive its contents. > > > > I do not remember if it was me who put it in. Anyway > it was Bart in 17659,17661; if config.modules.sh is really called twice it means we have 2.5 that does define those variables it is not supposed to. The problem is cache variables are not defined in config.status nor is config.cache garanteed to exist (2.5 does not cache by default). Meaning we cannot rely on them and have to add some status variable that is set by configure. What I intended was to allow modules to supply "configure plugins" to make whatever checks are needed; then configure could simply emit list modules to build without generating (mostly identical) makefile fragments for every module. Hmm ... it does look suspiciously similar to linux kernel, does not it? :) But it is near to impossible to create such plugins as shell scripts (autoconf simply does not support it). What is possible is to provide configure snippets and make Util/preconfig to generate modules.m4 that includes them' modules.m4 would then be included by zshconfig.ac. Unfortunately it is not easy to handle dependencies (i.e. module added or removed after modules.m4 has been created). -andrey > - autoconf 2.13 creates output files as the final step in running > configure. > It is using environment variables CONFIG_FILES et al to pass information > which files are to be created further down > > - autoconf 2.5 does not create anything in configure. Instead the sole > point > of configure script is to create config.status - and it is config.status > that finally does (should do) the job of creating files, making > substitutions etc > > apparently zshconfig.ac tries to detect 2.5 by checking if > $CONFIG_FILES$CONFIG_HEADERS is empty; if it is it dumps config.modules.sh > into config.status. Hmm ... and runs it once more after that ... that > looks > strange. > > > We really ought to ditch support for autoconf 2.13 in the 4.1 branch. > > Not having a mixture will just make things simpler. > > > > yes. 2.5 makes many things simpler and more consistent. OTOH I remember I > have tried to switch over to 2.5 way - doing job in config.status - and > failed for some reasons (do not remember exactly) - I guess I attempted to > move creation of all makefiles into config.status instead of creating > makefiles during make run. Also it definitely was not portable across > 2.13/2.5 > > we could try it once more if 2.13 compatibility is not an issue. > > -andrey