[Open] out-of-place build from repository builds enc/trans/*.c in the source directory and the build

Issue #10542 has been reported by Akira T…


Bug #10542: out-of-place build from repository builds enc/trans/*.c in
the source directory and the build directory

  • Author: Akira T.
  • Status: Open
  • Priority: Normal
  • Assignee:
  • Category:
  • Target version:
  • ruby -v: ruby 2.2.0dev (2014-11-26 trunk 48577) [x86_64-linux]
  • Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN

repository から checkout した ruby を out-of-place で build すると、
enc/trans/big5.c などいくつかのファイルが
source directory と build directory の両方に生成されます。
どちらかだけに生成されるのが意図された動作なんじゃないでしょうか。

% cd /tmp
% mkdir r
% cd r
% svn co -q http://svn.ruby-lang.org/repos/ruby/trunk ruby
% cd ruby
% svn info
Path: .
Working Copy Root Path: /tmp/r/ruby
URL: http://svn.ruby-lang.org/repos/ruby/trunk
Relative URL: ^/trunk
Repository Root: http://svn.ruby-lang.org/repos/ruby
Repository UUID: b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Revision: 48577
Node Kind: directory
Schedule: normal
Last Changed Author: akr
Last Changed Rev: 48577
Last Changed Date: 2014-11-26 06:09:34 +0900 (Wed, 26 Nov 2014)

% autoconf
% cd ..
% mkdir o
% cd o
% ../ruby/configure --prefix=/tmp/r >& ../z.configure.log
% make >& ../z.make.log
% ./ruby -v
ruby 2.2.0dev (2014-11-26 trunk 48577) [x86_64-linux]
% cd ..
% ls */enc/trans/*.c
o/enc/trans/big5.c       ruby/enc/trans/chinese.c
o/enc/trans/chinese.c       ruby/enc/trans/emoji.c
o/enc/trans/emoji.c       ruby/enc/trans/emoji_iso2022_kddi.c
o/enc/trans/emoji_iso2022_kddi.c   ruby/enc/trans/emoji_sjis_docomo.c
o/enc/trans/emoji_sjis_docomo.c    ruby/enc/trans/emoji_sjis_kddi.c
o/enc/trans/emoji_sjis_kddi.c     ruby/enc/trans/emoji_sjis_softbank.c
o/enc/trans/emoji_sjis_softbank.c  ruby/enc/trans/escape.c
o/enc/trans/escape.c       ruby/enc/trans/gb18030.c
o/enc/trans/gb18030.c       ruby/enc/trans/gbk.c
o/enc/trans/gbk.c       ruby/enc/trans/iso2022.c
o/enc/trans/iso2022.c       ruby/enc/trans/japanese.c
o/enc/trans/japanese.c       ruby/enc/trans/japanese_euc.c
o/enc/trans/japanese_euc.c     ruby/enc/trans/japanese_sjis.c
o/enc/trans/japanese_sjis.c     ruby/enc/trans/korean.c
o/enc/trans/korean.c       ruby/enc/trans/single_byte.c
o/enc/trans/single_byte.c     ruby/enc/trans/transdb.c
o/enc/trans/utf8_mac.c       ruby/enc/trans/utf8_mac.c
o/enc/trans/utf_16_32.c       ruby/enc/trans/utf_16_32.c
ruby/enc/trans/big5.c
% grep '^generating .*trans.*\.c ' z.make.log
generating enc/trans/big5.c ...
generating enc/trans/chinese.c ...
generating enc/trans/emoji.c ...
generating enc/trans/emoji_iso2022_kddi.c ...
generating enc/trans/emoji_sjis_docomo.c ...
generating enc/trans/emoji_sjis_kddi.c ...
generating enc/trans/emoji_sjis_softbank.c ...
generating enc/trans/escape.c ...
generating enc/trans/gb18030.c ...
generating enc/trans/gbk.c ...
generating enc/trans/iso2022.c ...
generating enc/trans/japanese.c ...
generating enc/trans/japanese_euc.c ...
generating enc/trans/japanese_sjis.c ...
generating enc/trans/korean.c ...
generating enc/trans/single_byte.c ...
generating enc/trans/utf8_mac.c ...
generating enc/trans/utf_16_32.c ...
generating ../ruby/enc/trans/big5.c ...
generating ../ruby/enc/trans/chinese.c ...
generating ../ruby/enc/trans/emoji.c ...
generating ../ruby/enc/trans/emoji_iso2022_kddi.c ...
generating ../ruby/enc/trans/emoji_sjis_docomo.c ...
generating ../ruby/enc/trans/emoji_sjis_kddi.c ...
generating ../ruby/enc/trans/emoji_sjis_softbank.c ...
generating ../ruby/enc/trans/escape.c ...
generating ../ruby/enc/trans/gb18030.c ...
generating ../ruby/enc/trans/gbk.c ...
generating ../ruby/enc/trans/iso2022.c ...
generating ../ruby/enc/trans/japanese.c ...
generating ../ruby/enc/trans/japanese_euc.c ...
generating ../ruby/enc/trans/japanese_sjis.c ...
generating ../ruby/enc/trans/korean.c ...
generating ../ruby/enc/trans/single_byte.c ...
generating ../ruby/enc/trans/utf8_mac.c ...
generating ../ruby/enc/trans/utf_16_32.c ...
% make --version
GNU Make 4.0
このプログラムは x86_64-pc-linux-gnu 用にビルドされました
Copyright (C) 1988-2013 Free Software Foundation, Inc.
ライセンス GPLv3+: GNU GPL バージョン 3 以降 <http://gnu.org/licenses/gpl.html>
これはフリーソフトウェアです: 自由に変更および配布できます.
法律の許す限り、 無保証 です.
%

なお、Ruby 2.1.5 でも試しましたが同様になります。