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-53-g211f50a
Date: Thu, 10 Jan 2013 21:51:14 +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=211f50a1b958b13545bcb096d36efe108b603e6c

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

- Log -----------------------------------------------------------------
commit 211f50a1b958b13545bcb096d36efe108b603e6c
Author: Stefano Lattarini <address@hidden>
Date:   Thu Jan 10 21:52:18 2013 +0100

    depend: reduce code duplication, de-uglify make verbose output
    
    Verbose output from compilation recipes had been made more messy by
    the previous "simplifying" commit XXX.  With this patch, not only we
    reduce some code duplication, but also improve that output again, for
    the joy of users who dislike silent-rules :-)
    
    * lib/am/depend2.am: Use the new '%XSOURCE%' transform, instead of
    copying and pasting the idiom for VPATH rewrite emulation over and
    over.  Fix some indentation and line-wrapping issues while at it.
    * automake.in (handle_languages): Implement the new transform.
    * t/silent-nested-vars.sh: Adjust to avoid spurious failures.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 064b83b831687d711ae11a2d1a36a131dfe38def
Author: Stefano Lattarini <address@hidden>
Date:   Thu Jan 10 21:42:28 2013 +0100

    depend: prefer $(...) over `...` in Cygwin-specific recipes
    
    On Cygwin, we can happily assume only POSIX-conforming shells exist.
    This commit is useless by itself, but is useful as a preparatory
    refactoring in view of a future change.
    
    * lib/am/depend2.am: In recipes for producing '.obj' objects, use
    the POSIX form $(...) for command substitution, rather than the
    classic Bourne one `...`.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 789d43339087e5acaa1677df91069cb8b4b4e955
Author: Stefano Lattarini <address@hidden>
Date:   Thu Jan 10 21:31:57 2013 +0100

    depend2.am: reduce code duplication
    
    Just a simplification; no semantic change is intended.
    
    * lib/am/depend2.am (am__set_depbase): New.  Use it in all the three
    flavours of recipes (.o, .obj, .lo), instead of duplicating its code.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit e0d235f420e94a8653e93fbf5e6c52da3baeaa01
Author: Stefano Lattarini <address@hidden>
Date:   Thu Jan 10 20:47:57 2013 +0100

    depend2.am: preparatory refactoring
    
    This is just a preparatory change in view of a future refactoring.
    No semantic change is intended.
    
    * lib/am/depend2.am: Adjust; for example, using '$@' in all recipes
    to indicate the output file (rather than recipe-specific transforms
    like '%OBJ%' and '%LTOBJ%'), and not assuming to know the exact
    file extension of the output file (e.g., whether it's '.o' or '.lo').
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit 8fe2971ff64c3a8daf56b49572419ccec43565d7
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 c9ccc32542823cba40dd5ab2c6ecd98bcb75dda1
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 89bc1b7b3494aaa5591d195c0cffae1523e73057
Author: Stefano Lattarini <address@hidden>
Date:   Thu Jan 10 19:48:14 2013 +0100

    depend: 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 55f5fd2ae7f3c8419b43f585d796a79cf4df616d
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 410f9471c9bef88fd1cec7abd1640ebee0ad6f26
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]