automake-commit
[Top][All Lists]
Advanced

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

[Automake-commit] [SCM] GNU Automake branch, experimental/subdir-objects


From: Stefano Lattarini
Subject: [Automake-commit] [SCM] GNU Automake branch, experimental/subdir-objects-work, created. v1.13.1-49-g26158dd
Date: Thu, 10 Jan 2013 19:29:21 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Automake".

http://git.sv.gnu.org/gitweb/?p=automake.git;a=commitdiff;h=26158dd85840c0ce02efad59f096874bdb7fca01

The branch, experimental/subdir-objects-work has been created
        at  26158dd85840c0ce02efad59f096874bdb7fca01 (commit)

- Log -----------------------------------------------------------------
commit 26158dd85840c0ce02efad59f096874bdb7fca01
Author: Stefano Lattarini <address@hidden>
Date:   Thu Jan 10 18:04:33 2013 +0100

    depend2.am: refactor and remove code duplication
    
    * lib/am/depend2.am: Here.  The obsolescent comments removed from this
    same file in commit 'v1.13.1-42-g8f06bfb' of 2012-01-09, "depend2.am: fix
    comments on verbosity of compilation rules", gave the rationale for why
    that code duplication was there in the first place (rationale that, like
    those comments, has been obsolete by the silent-rules introduction).
    * automake.in: Given the refactoring in 'depend2.am', there's no longer
    need to add extra trailing whitespace to the entries of the '%sourceflags'
    hash (which are used for the '%SOURCEFLAG%' transform when 'depend2.am'
    is processed.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 5f5166e8662d5b38175981c3f93838a116ec0f7d
Author: Stefano Lattarini <address@hidden>
Date:   Thu Jan 10 19:54:13 2013 +0100

    Automake::Language: drop unused fields 'compile_flag' and 'output_flag'
    
    They are unused after the recent flurry of changes.  This is just a
    simplification; no semantic change is intended.
    
    * automake.in: Here, in the Automake::Language 'Class::Struct' definition
    and in all the 'register_language()' invocations.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 25226aab8d4034aa09398db2b1b60ca60a89815f
Author: Stefano Lattarini <address@hidden>
Date:   Thu Jan 10 19:48:14 2013 +0100

    depend2.am: assume '-c' compiler flag always means to produce object files
    
    Rather than fully-fledged executables.  This is the case for all the
    compilers of all languages supported by Automake.
    
    This is just a simplification; no semantic changes are intended.
    
    * automake.in (handle_languages): Drop transform '%-c%'.
    * lib/am/depend2.am: Adjust to just assume the '%-c%' transform
    expands to "-c".
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit de41b2c845ec746106fb64204f32a0cc403756ee
Author: Stefano Lattarini <address@hidden>
Date:   Thu Jan 10 19:38:58 2013 +0100

    depend: assume we can always pass "-o" to the C compiler
    
    This is the case after the change in commit XXX of YYYY-MM-DD,
    ``compile: use 'compile' script when "-c -o" is used with losing compilers''
    
    This is just a simplification; no semantic changes are intended.
    
    * automake.in (handle_languages): Drop transform '%-o%', and definitions
    of '$output_flag'.
    * lib/am/depend2.am: Adjust to just assume the '?-o?' transform is true,
    and the '%-o%' transform expands to "-o".
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 102e1b4c265a95a6c78f48dd754f01c8d95c8069
Author: Stefano Lattarini <address@hidden>
Date:   Tue Jan 8 14:04:00 2013 +0100

    cleanup: having subdir-objects mandatory allow us some simplifications
    
    Few minor cleanups made possible by earlier changes, plus other minor
    cleanups triggered in cascade.  No semantic change is intended.
    
    This is a follow-up on previous commit 'XXX', and an adjusted backport
    of Automake-NG commit 'v1.12.1-315-gc97d41b' of 2012-06-08, "[ng] cleanup:
    after enabling of subdir-objects unconditionally".
    
    * automake.in (LANG_IGNORE, LANG_SUBDIR): Remove.
    (handle_languages): Drop the '%DEPBASE%' transform when processing
    the '$rule_file'.
    (register_language ('name' => 'vala', ...)): Add '.vapi' to the entry
    'extensions', and simplify the entry 'output_extensions' to point to
    a dummy subroutine (since it wasn't really used anyway).
    (handle_single_transform): No longer expect the 'lang_*_rewrite'
    subroutines to return a 'LANG_*' constant, but only a transformed
    extension, if required.  To decide whether further processing of the
    source file should be stopped, rely on a new set of 'lang_*_ignore'
    subroutines, defaulting to a subroutine that returns false.
    Accordingly, don't special case the handling of '.vapi' files anymore,
    instead rely on ...
    (lang_vala_ignore, lang_header_ignore): ... these new subroutines to
    avoid extra processing of C/C++ headers and Vala '.vapi' headers.
    (lang_java_rewrite): Remove.
    Remove an outdated comment.
    * lib/am/depend2.am: Partial rewrite to reduce code duplication and
    drop use of the '%DEPBASE%' transform.
    * t/compile_f_c_cxx.sh: Adjust.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit c6e0b88d7a9917d9372e701c96f6485e84d4d117
Author: Stefano Lattarini <address@hidden>
Date:   Wed Jun 6 10:27:46 2012 +0200

    subdir-objects: enable unconditionally
    
    See automake bug#13378.
    
    The fact that Automake-generated Makefiles places compiled object files
    in the current directory by default, also when the corresponding source
    file is in a subdirectory, is basically an historical accident, due to
    the fact that the 'subdir-objects' option had only been introduced in
    April 1999, starting with commit 'user-dep-gen-branchpoint-56-g88b5959',
    and never made the default, likely to avoid backwards-compatibility
    issues.
    
    Since we believe the behaviour enabled by the 'subdir-objects' is the
    only natural and most useful one, we make it the only only one available,
    simplifying the Automake implementation and APIs a little in the process.
    
    This change is basically an adjusted backport of Automake-NG commit
    'v1.12.1-313-g14fe163' of 2012-06-07, "[ng] subdir-objects: enable
    unconditionally".
    
    * NEWS: Update.
    * doc/automake.texi (Program and Library Variables): The output
    object files are not anymore placed in the current directory by
    default, but rather in the same directory of the source file.
    (LIBOBJS): Now the $(LIBOBJS) and $(ALLOCA) variables can also be
    be used outside of the directory where their sources lie.
    (List of Automake options): Don't document the 'subdir-objects'
    option anymore.
    Other related minor adjustments.
    * automake.in (LANG_PROCESS): Remove, it's not needed anymore.
    (handle_languages): Don't test whether option 'subdir-objects'
    is set (just assume it is), and do not use the '%SUBDIROBJ%'
    transform when processing '.am' fragments.
    (lang_sub_obj): Delete, it would just return 'LANG_SUBDIR'
    unconditionally now.
    (lang_lex_rewrite): Adjust.  Don't test whether the option
    'subdir-objects' is set (just assume it is).
    (lang_yacc_rewrite): Likewise.
    (handle_single_transform): Likewise.  Remove an obsolete
    comment.  Add a proper "FIXME" comments about a fragment
    of code that might have become dead code now.
    (handle_LIBOBJS_or_ALLOCA): Simplify assuming that the option
    'subdir-objects' is always set.  Accordingly, there's no need
    to warn anymore if '$(LIBOBJS)' or '$(ALLOCA)' are used outside
    the '$config_libobj_dir' directory (as specified by autoconf
    macro 'AC_CONFIG_LIBOBJ_DIR').
    * lib/am/depend2.am: Assume the '?SUBDIROBJ?' Automake time
    conditional is always true, and remove its use accordingly.
    * t/ax/depcomp.sh: Adjust.
    * t/compile_f_c_cxx.sh: Likewise.
    * t/cscope.tap: Likewise.
    * t/depcomp8a.sh: Likewise.
    * t/depcomp8b.sh: Likewise.
    * t/libtool3.sh: Likewise.
    * t/ltlibsrc.sh: Likewise.
    * t/pr401.sh: Likewise.
    * t/pr401b.sh: Likewise.
    * t/pr401c.sh: Likewise.
    * t/lex-line.sh: Likewise.
    * t/yacc-line.sh: Likewise.
    * t/parallel-tests-suffix-prog.sh: Likewise.
    * t/yacc5.sh: Likewise.
    * t/vala-libs.sh: Likewise.
    * t/fort2.sh: Likewise, and extend a bit.
    * t/fort4.sh: Likewise.
    * t/fort5.sh: Likewise.
    * t/gcj.sh: Likewise.
    * t/subpkg.sh: Likewise.
    * t/subpkg-yacc.sh: Likewise.
    * t/xsource.sh: Likewise.
    * t/libobj20a.sh: Remove as obsolete.
    * t/libobj20b.sh: Adjust heading comments.
    * t/libobj20c.sh: Likewise.
    * t/subobj4.sh: Remove as obsolete.
    * t/sourcefile-in-subdir.sh: Likewise.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 135e3111b3be0c92debc37a391e83b005e80e3b4
Author: Stefano Lattarini <address@hidden>
Date:   Wed Jan 9 23:16:53 2013 +0100

    compile: use 'compile' script when "-c -o" is used with losing compilers
    
    Do so seen when only source files in the "current" directory are present.
    
    This commit is part of a series of related changes addressing automake
    bug#13378 (see also the plan 'PLANS/subdir-objects.txt').
    
    Before this change, Automake-generated C compilation rules mistakenly
    passed the "-c -o" options combination unconditionally (even to losing
    compiler) when the 'subdir-objects' was used but sources were only
    present in the top-level directory.  Issue spotted by Nick Bowler:
    
      <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13378#35>
      <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13378#44>
    
    We fix this by having Automake redefine AC_PROG_CC to take over the role
    of AM_PROG_CC_C_O and to require the 'compile' script unconditionally
    (albeit that will continue to be invoked only when inferior compilers
    are detected).
    
    Among other things, this means AM_PROG_CC_C_O explicitly is no longer
    required; that macro is still supported for backward-compatibility, but
    calling it is basically a no-op now.
    
    This change has some pros and some cons (obviously, we believe the former
    outweighs the latter).  Here are the most relevant ones:
    
    + Pros 1:
      Some logic in the Automake script has been simplified
    + Pros 2:
      That simplification has automatically fixed an actual bug (admittedly,
      it was present only in corner situations, but still) XXX
      The test 't/ccnoco4.sh', which demonstrated that bug and has been
      failing so far, now passes.
    + Pros 3:
      Things works more "automagically" now (no need to manually add the
      AM_PROG_CC_C_O macro to configure.ac anymore)
    
    * Cons 1:
      The 'compile' script will be required in all projects using C
      compilation; this will only be a problem for packages not using
      '--add-missing'.  However, such packages are definitely more rare
      than the ones using '--add-missing', and adjusting them will be
      trivial -- just copy the compile script over from the new Automake
      installation.
    * Cons 2:
      The copy & paste of autoconf internals hack this change has introduced
      in our "rewrite" of AC_PROG_CC is really an egregious abomination.  It
      can only be justified with the fact that we expect future versions of
      autoconf to implement the semantics we need directly in AC_PROG_CC, so
      that we'll be able to leverage that (since Automake 1.14 will require
      the latest Autoconf version released).
    
    Now, the detailed list of file-by-file changes ...
    
    * automake.in ($seen_cc_c_o): Remove this global variable.
    (scan_autoconf_traces): Don't set it, and do not trace the
    'AM_PROG_CC_C_O' m4 macro.
    (lang_c_rewrite): Remove, no longer needed.
    * doc/automake.texi: Adjust expected "autoreconf --install" output
    in the amhello example.  Remove statements about the need for the
    AM_PROG_CC_C_O macro.  Report it is obsolete now.
    * m4/init.m4: Re-write AC_PROG_CC to append checks about whether the
    C compiler supports "-c -o" together.  These checks have basically
    been ripped out (with adaptations) from the 'AC_PROG_CC_C_O' macro
    of Autoconf and ...
    * m4/minuso.m4 (AM_PROG_CC_C_O): ... this macro of ours, which has
    thus basically become a no-op.
    * t/ax/am-test-lib.sh (am_setup_testdir): Also copy the 'compile'
    script in the test directory; if we don't do so, every test using
    AC_PROG_CC should call automake with the "--add-missing" option, or
    copy the 'compile' script itself.
    * t/cond11.sh: No need to create a dummy 'compile' script: that is
    already brought in by 'am_setup_testdir()', that is automatically
    invoked when 'test-lib.sh' is sourced.
    * t/add-missing.tap: Adjust: we expect the 'compile' script to be
    required by a mere AC_PROG_CC call now.
    * t/dist-auxdir-many-subdirs.sh: Likewise.
    * t/specflg6.sh: Likewise.
    * t/subobj4.sh: Likewise.
    * t/cxx-lt-demo.sh: Likewise, and update comments to match.
    * t/distcom2.sh: Enhance a little.
    * t/dollarvar2.sh: Adjust.
    * t/extra-portability.sh: Likewise.
    * t/libobj19.sh: Likewise.
    * t/per-target-flags.sh: Likewise.
    * t/repeated-options.sh: Likewise.
    * t/subobj.sh: Likewise, and enhance a little.
    * t/ccnoco2.sh: Remove as obsolete.
    * t/list-of-tests.mk (handwritten_TESTS): Adjust.
    (XFAIL_TESTS): Remove 't/ccnoco4.sh'.
    * NEWS: Update.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

-----------------------------------------------------------------------


hooks/post-receive
-- 
GNU Automake



reply via email to

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