GNU bug report logs -
#13378
Make the 'subdir-objects' setup the default, and only available one
Previous Next
Full log
Message #112 received at 13378 <at> debbugs.gnu.org (full text, mbox):
On 01/13/2013 09:01 PM, Nick Bowler wrote:
> If subdir-objects is made the default Automake behaviour, packages
> will need to add AM_PROG_CC_C_O to their configure.ac. Instead of
> that, let's just make the functionality provided by AM_PROG_CC_C_O
> mandatory for C projects, and have Automake automatically call it
> as required.
>
> This change should have no effect on packages which explicitly call
> AM_PROG_CC_C_O already.
>
> * m4/init.m4: Have AM_INIT_AUTOMAKE arrange for AM_PROG_CC_C_O to be
> called if necessary.
> ---
> m4/init.m4 | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/m4/init.m4 b/m4/init.m4
> index 7535706..6c48704 100644
> --- a/m4/init.m4
> +++ b/m4/init.m4
> @@ -109,6 +109,11 @@ AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
> [m4_define([AC_PROG_OBJCXX],
> m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
> ])
> +dnl Automatically invoke AM_PROG_CC_C_O as necessary. Since AC_PROG_CC is
> +dnl usually called after AM_INIT_AUTOMAKE, we arrange for the test to be
> +dnl done later by AC_CONFIG_COMMANDS_PRE.
>
This would also have the advantage that we shouldn't worry about possible
$CC rewrites between the AC_PROG_CC and the AC_OUTPUT invocation. Your
approach might actually be not only the simplest, but also the sanest one.
That said, I believe we'd still have to fix AM_PROG_CC_C_O not to rely on
the broken AC_PROG_CC_C_O semantics of checking *both* '$CC' and 'cc' for
"-c -o" support. But that is quite orthogonal to your patch, and material
for a follow-up anyway.
Another useful follow-up would be to move the AM_PROG_CC_C_O in a private
macro (to be expanded in AC_CONFIG_COMMANDS_PRE like you did above), and
make AM_PROG_CC_C_O a no-op (without runtime deprecation). That way, we
could rely on the improved semantic of having the potential '$CC' rewrite
placed near the end of configure, rather than near the beginning. WDYT?
> +AC_CONFIG_COMMANDS_PRE([AC_PROVIDE_IFELSE([AC_PROG_CC],
> + [AC_LANG([C]) AM_PROG_CC_C_O])])dnl
> AC_REQUIRE([AM_SILENT_RULES])dnl
> dnl The testsuite driver may need to know about EXEEXT, so add the
> dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This
Thanks,
Stefano
This bug report was last modified 12 years and 35 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.