Hello Christian, * Christian Rössel wrote on Wed, Apr 15, 2009 at 01:37:59PM CEST: > Ralf Wildenhues wrote: > > > > BTW, how do you ensure configure tests are correct for both compilers > > without running two configure scripts, or running one of them twice? > > Hm, good question. We are in the process of modifying an existing > autotools framework to meet new requirements. In the existing setup > there were some custom m4 scripts that were executed in the > cross-compile case (we need cross compilation only on special machines > like IBM Blue Gene/P). But replacing them by the standard checks seems > to be a good thing.
BTW, you might be interested to hear that improved support for BG/P in Libtool is a topic right now in this thread on the Libtool list: <http://thread.gmane.org/gmane.comp.gnu.libtool.general/10061> > The approach of calling configure twice with different options places an > unnecessary burden and source of errors to the user. Well, you can sort-of automate this by letting your one configure script invoke the other one. But it cannot be done strictly with AC_CONFIG_SUBDIRS: that would also pass a path to a shared config.cache file (if -C is passed to configure), which is wrong in this case, and of course you have to override any arguments of CC=... etc. on the configure command line (which is listed in "$ac_configure_args", escaped to be suitable for eval). > From the user's perspective, one call with --host, --build and > CC_FOR_BUILD in the cross-compile situation should be sufficient. Yep. > A scenario to accomplish this could be: > configure needs to invoke two nested configures (via AC_CONFIG_SUBDIRS), > one for the host-system and one for the build-system. The build-system > configure must then set CC=$(CC_FOR_BUILD) and host=build (or call > AC_CANONICAL_BUILD and AC_CANONICAL_HOST). Then the usual checks follow. > When there is no need for cross-compilation, the top-level configure > does not invoke the nested configures which can be done with > conditionals. > > Is this a possible scenario? Sounds viable, yes. Cheers, Ralf