Re: Different types of configure for same program

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> Sometimes I wish to call configure with different flags. For example:
> ./configure CXXFLAGS="-ggdb -Wall -std=c++98"
>
> or
> ./configure CXXFLAGS="-O3 -funroll-loops" --with-gmp
>
> or some more like these. Having to be writing these all the time is
> cumbersome and error-prone since for debugging or for long line of
> flags and configure options I sometimes forget what I want.
>
> What's the 'common' way to solve this problem?
>
> I though about scripts, like: ./configure-for-debug.sh or
> ./configure-with-gmp... etc.. but I'm curious about how other people
> work this out in their on projects.

Here's my two-cents:

In addition to keeping such scripts handy, I also use a subdirectory for
VPATH builds (assuming Makefiles were written with it in mind.)  e.g. (in
the source root directory)
	builds/gcc-3.3			// "CXX=g++-3.3"
	builds/gcc-3.4
	builds/gcc-4.0
	builds/gcc-4.1
	builds/gcc-4.2
	builds/powerpc-darwin
	builds/i686-linux
	builds/i686-freebsd
	builds/with-readline		// --with-readline
	builds/with-editline		// --with-editline
	builds/with-bison		// YACC=bison
	builds/m32
	builds/m64			// CFLAGS="-g -O2 -m64"

As is the case for VPATHs, I find it very convenient to update my sources
in one location (e.g. CVS) and building in each build-directory (invoking
configure as ../../configure)  Since the build directories don't conflict
with each other, I almost never have to clean them, save for the
occasional distcleancheck.  I leave maintainer-mode off, so that the first
of these rebuilds in any of the build directories will regenerate
configure and Makefile.in (in srcdir), config.status --recheck, etc. (in
build-dirs) automatically.  Reconfiguration is reasonably fast using a
config.cache (-C).  Before I prepare the source for any release, I have
scripts to visit each build-dir (varies depending on machine/OS) to
configure && make && make check (best run overnight).

I really appreciated that the whole build system is able to regenerate
itself automagically, which saves a lot of time in the learning process.
For even more performance improvement, I ccache [1] all compiles so
configurations that vary only in small ways will have many translation
units compiled identically, and transparently reuse previously compiled
objects where appropriate.

I am quite happy with the GNU autotools build system and its conventions.

Fang

[1] http://ccache.samba.org/
	configure CC="ccache gcc" CXX="ccache g++" ...



_______________________________________________
Autoconf mailing list
Autoconf@xxxxxxx
http://lists.gnu.org/mailman/listinfo/autoconf

[Index of Archives]     [GCC Help]     [Kernel Discussion]     [RPM Discussion]     [Red Hat Development]     [Yosemite News]     [Linux USB]     [Samba]

  Powered by Linux