Project

General

Profile

Actions

Bug #10542

closed

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

Added by akr (Akira Tanaka) over 9 years ago. Updated over 2 years ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 2.2.0dev (2014-11-26 trunk 48577) [x86_64-linux]
[ruby-dev:48740]
Tags:

Description

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 でも試しましたが同様になります。

Updated by jeremyevans0 (Jeremy Evans) over 2 years ago

  • Status changed from Open to Closed

This appears to have been resolved in the master branch. I ran a similar out-of-place build and ran the grep, and it looks like the transcoders were only built once.

$ grep '^generating .*trans.*\.c ' z.make.log
generating enc/trans/newline.c ...
generating enc/trans/utf_16_32.c ...
generating enc/trans/single_byte.c ...
generating enc/trans/japanese_sjis.c ...
generating enc/trans/utf8_mac.c ...
generating enc/trans/japanese.c ...
generating enc/trans/iso2022.c ...
generating enc/trans/korean.c ...
generating enc/trans/escape.c ...
generating enc/trans/emoji_sjis_softbank.c ...
generating enc/trans/gbk.c ...
generating enc/trans/emoji_sjis_kddi.c ...
generating enc/trans/emoji_sjis_docomo.c ...
generating enc/trans/emoji_iso2022_kddi.c ...
generating enc/trans/emoji.c ...
generating enc/trans/ebcdic.c ...
generating enc/trans/cesu_8.c ...
generating enc/trans/japanese_euc.c ...
generating enc/trans/gb18030.c ...
generating enc/trans/chinese.c ...
generating enc/trans/big5.c ...
Actions

Also available in: Atom PDF

Like0
Like0