Search code examples
makefilegnuautotoolsconfigureautoconf

How do you "echo" the last configure/make build --options within a source directory?


When doing a a GNU-style " ./configure, make, and install " - with specific options, flags, etc... As you all know, sometimes this can be a black art.. and what works for one piece of software may not for any other...

Now, imagine that you had successfully built some package XYZ.app with some options like...

% ./configure --with-1=2 USFLAG="-3 four" OBSCURE_LIB=l/lib/doihave

and gone ahead and used it. Great. At a later point, you realize you need a previously omitted compile-time option, or maybe you've resolved a dependency issue, etc... For whatever reason, you want to recompile this perfectly good binary.

Now... how can you "recall" ALL of the options you passed to ./configure, verbatim, so as to use those SAME options, while possibly adding or subtracting some, this time around?

I'm sure this stuff is buried somewhere in all those config.xxxx or AClocal or Makefile.xx files, but for the life of me, I haven'e been able to Google one straight answer.

% file /usr/bin/$1 -->  Mach-O 64-bit executable x86_64
% ld /usr/bin/$1   -->  -macosx_version_min not specificed, assuming 10.6
% make -d          -->  * 20 pages of Makefile nonsense.... *
% ./config.log     -->  * shows some history, but nothing interesting. *
% ./config.status  -->  * does a strange sequence oddly similar to a "clean" *
% ./configure -h   -->  * 500 options, none of which is "show-me=your-shit" *

glibtoolize, otool, autoconf, automake, pkg-config... all seem unwilling to help. One close-call seems to be the contents of the XYZ.pc file created by pkg-config..

prefix=/usr/local  \  exec_prefix=${prefix}  \  libdir=${exec_prefix}/lib
includedir=${prefix}/include  \  Libs: -L${libdir} -lxyz-base 
Cflags: -I${includedir} -I${includedir}/xyz

However, these just seem like environmental variables, not arguments from the actual config invocation... I'm sick of guessing... what is the real way to figure out the original build arguments, so that you can use them again, at will...?


Solution

  • config.status has the options in it; ./config.status --recheck re-runs configure with the original options. You could interrupt that and reissue the command (which it will show you before running it), or you could edit config.status and add your new parameters to $ac_configure_extra_args.

    I do kinda wish they'd made it easier to do this. Once upon a time head config.status would get you the original configure command. ./config.status --rerun extra args here would have been nice.