autoconf
[Top][All Lists]
Advanced

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

Re: Diffing the results of conifgure


From: Stefano Lattarini
Subject: Re: Diffing the results of conifgure
Date: Sun, 25 Jul 2010 22:53:15 +0200
User-agent: KMail/1.13.3 (Linux/2.6.30-2-686; KDE/4.4.4; i686; ; )

At Sunday 25 July 2010, Philip Prindeville wrote:
>   Hi.
> 
> We're passing a lot of information into configure manually because
> a lot of packages didn't used to handle cross-compilation
> correctly, but lately those packages have been getting better.
> 
> We'd like to start to peel away options that we pass to configure.
> 
> But, to ensure that the results are still correct, we'd want to
> capture the summary of results and diff files together, a "before"
> and "after" changes to our build infrastructure to make sure that
> the outputs are now discovered as the correct values, rather than
> being "forced" from the command line or environment.
> 
> confdefs.h is one idea, but I'm not sure it captures *all* of the
> state.  Does it?
> 
> config.log and config.status are too wordy, and their output can
> vary (based on autoconf versions) yet still come up with the
> correct final result, so those seem unlikely (unless we just
> extract the relevant portions of these).
> 
> What's the collective wisdom of the group?

Hello Philip.

I'm not sure how much what I'm going to suggest will be useful to you, but
anyway... have you tried taking a look at the temporary file `subs.awk'
created by config.status, at least when a "recent" (post-2006) autoconf
version is used?  It might be a nice complement for confdefs.h/config.h.
(Note that you can force config.status not to delete its temporary files
with the `--debug' option).

For example, running autoconf's own config.status on my machine, I
get (more or less):

  $ ./config.status --version
  GNU Autoconf config.status 2.66.1-f2a8-dirty
  configured by ./configure, generated by GNU Autoconf 2.65.75-9c27,
    with options ""

  Copyright (C) 2010 Free Software Foundation, Inc.
  This config.status script is free software; the Free Software Foundation
  gives unlimited permission to copy, distribute and modify it.

  $ ./config.status --debug
  config.status: creating tests/Makefile
  config.status: creating tests/atlocal
  config.status: creating man/Makefile
  config.status: creating lib/emacs/Makefile
  config.status: creating Makefile
  config.status: creating doc/Makefile
  config.status: creating lib/Makefile
  config.status: creating lib/Autom4te/Makefile
  config.status: creating lib/autoscan/Makefile
  config.status: creating lib/m4sugar/Makefile
  config.status: creating lib/autoconf/Makefile
  config.status: creating lib/autotest/Makefile
  config.status: creating bin/Makefile
  config.status: executing tests/atconfig commands

  $ cat conf??????/subs.awk
  BEGIN {
  S["LTLIBOBJS"]=""
  S["LIBOBJS"]=""
  S["MAKE_CASE_SENSITIVE_FALSE"]="#"
  S["MAKE_CASE_SENSITIVE_TRUE"]=""
  S["SED"]="/bin/sed"
  S["EGREP"]="/bin/grep -E"
  S["GREP"]="/bin/grep"
  S["lispdir"]="${datarootdir}/emacs/site-lisp"
  S["EMACSLOADPATH"]=""
  S["EMACS"]="emacs"
  S["TEST_EMACS"]="emacs"
  S["PERL_FLOCK"]="yes"
  S["PERL"]="/usr/bin/perl"
  S["HELP2MAN"]="${SHELL} /home/stefano/src/autoconf/build-aux/missing --run 
help2man"
  S["M4_DEBUGFILE"]="--debugfile"
  S["M4_GNU"]="--gnu"
  S["M4"]="/usr/bin/m4"
  S["EXPR"]="/usr/bin/expr"
  S["ac_cv_dir_trailing_space"]="yes"
  S["ac_cv_unsupported_fs_chars"]=""
  S["ac_cv_sh_n_works"]="yes"
  S["am__untar"]="${AMTAR} xf -"
  S["am__tar"]="${AMTAR} chof - \"$$tardir\""
  S["AMTAR"]="${SHELL} /home/stefano/src/autoconf/build-aux/missing --run tar"
  S["am__leading_dot"]="."
  S["SET_MAKE"]=""
  S["AWK"]="gawk"
  S["mkdir_p"]="/bin/mkdir -p"
  S["MKDIR_P"]="/bin/mkdir -p"
  S["INSTALL_STRIP_PROGRAM"]="$(install_sh) -c -s"
  S["STRIP"]=""
  S["install_sh"]="${SHELL} /home/stefano/src/autoconf/build-aux/install-sh"
  S["MAKEINFO"]="${SHELL} /home/stefano/src/autoconf/build-aux/missing --run 
makeinfo"
  S["AUTOHEADER"]="${SHELL} /home/stefano/src/autoconf/build-aux/missing --run 
autoheader"
  S["AUTOMAKE"]="${SHELL} /home/stefano/src/autoconf/build-aux/missing --run 
automake-1.11"
  S["AUTOCONF"]="${SHELL} /home/stefano/src/autoconf/build-aux/missing --run 
autoconf"
  S["ACLOCAL"]="${SHELL} /home/stefano/src/autoconf/build-aux/missing --run 
aclocal-1.11"
  S["VERSION"]="2.66.1-f2a8-dirty"
  S["PACKAGE"]="autoconf"
  S["CYGPATH_W"]="echo"
  S["am__isrc"]=""
  S["INSTALL_DATA"]="${INSTALL} -m 644"
  S["INSTALL_SCRIPT"]="${INSTALL}"
  S["INSTALL_PROGRAM"]="${INSTALL}"
  S["target_alias"]=""
  S["host_alias"]=""
  S["build_alias"]=""
  S["LIBS"]=""
  S["ECHO_T"]=""
  S["ECHO_N"]="-n"
  S["ECHO_C"]=""
  S["DEFS"]="-DPACKAGE_NAME=\\\"GNU\\ Autoconf\\\" ... [CUT]
  S["mandir"]="${datarootdir}/man"
  S["localedir"]="${datarootdir}/locale"
  S["libdir"]="${exec_prefix}/lib"
  S["psdir"]="${docdir}"
  S["pdfdir"]="${docdir}"
  S["dvidir"]="${docdir}"
  S["htmldir"]="${docdir}"
  S["infodir"]="${datarootdir}/info"
  S["docdir"]="${datarootdir}/doc/${PACKAGE_TARNAME}"
  S["oldincludedir"]="/usr/include"
  S["includedir"]="${prefix}/include"
  S["localstatedir"]="${prefix}/var"
  S["sharedstatedir"]="${prefix}/com"
  S["sysconfdir"]="${prefix}/etc"
  S["datadir"]="${datarootdir}"
  S["datarootdir"]="${prefix}/share"
  S["libexecdir"]="${exec_prefix}/libexec"
  S["sbindir"]="${exec_prefix}/sbin"
  S["bindir"]="${exec_prefix}/bin"
  S["program_transform_name"]="s,x,x,"
  S["prefix"]="/usr/local"
  S["exec_prefix"]="${prefix}"
  S["PACKAGE_URL"]="http://www.gnu.org/software/autoconf/";
  S["PACKAGE_BUGREPORT"]="address@hidden"
  S["PACKAGE_STRING"]="GNU Autoconf 2.66.1-f2a8-dirty"
  S["PACKAGE_VERSION"]="2.66.1-f2a8-dirty"
  S["PACKAGE_TARNAME"]="autoconf"
  S["PACKAGE_NAME"]="GNU Autoconf"
  S["PATH_SEPARATOR"]=":"
  S["SHELL"]="/bin/sh"
    for (key in S) S_is_set[key] = 1
    FS = ""
    ... (MORE AWK CODE)


Hope that helps; if not, maybe someone more knowledgeable than
me will jump in.

Regards,
   Stefano



reply via email to

[Prev in Thread] Current Thread [Next in Thread]