Jeff Janes <jeff.ja...@gmail.com> writes: > But the config.cache files gets deleted by make maintainer-clean. Doesn't > that mostly defeat the purpose of having a cache? Am I doing something > wrong here, or just thinking about it wrong?
Well, a few things about that: (1) distclean *must* remove config.cache to be sure we don't accidentally include one in tarballs; (2) it's also a good idea for distclean to remove it so that the common pattern "make distclean; git pull" doesn't leave you with a stale cache file if somebody updated configure; (3) IMO, letting it default to config.cache isn't best practice anyway. I always use --cache-file to select a cache file, which I keep outside the source directory. The main advantage of that is that it's possible to switch between different CFLAGS settings, different compilers, etc, without having to lose your cache, by instead specifying a different cache file for each set of settings. I don't take this as far as some people might want to --- I just keep one for default CFLAGS and one for non-default, per branch. Somebody who was more into performance testing than I might have a more complex rule for that. For amusement's sake, here's (most of) my standard shell script for invoking PG's configure. This goes along with a setup script that sets $PGINSTROOT and some other variables depending on which branch I'm testing: # This provides caching for just one non-default CFLAGS setting per branch, # but that seems like enough for now. if [ x"$CFLAGS" = x"" ]; then ACCACHEFILE="$HOME/accache/config-`basename $PGINSTROOT`.cache" else ACCACHEFILE="$HOME/accache/config-`basename $PGINSTROOT`-cflags.cache" fi # Trash the cache file when configure script changes. if [ ./configure -nt "$ACCACHEFILE" ]; then rm -f "$ACCACHEFILE" fi ./configure --with-pgport="$DEFPORT" --prefix="$PGINSTROOT" \ --cache-file="$ACCACHEFILE" \ --enable-debug --enable-cassert $PGCONFIGOPTS "$@" regards, tom lane