mirror of
https://github.com/ruby/ruby.git
synced 2025-08-15 13:39:04 +02:00
![]() When out-of-src build, at the beginning of a build, `make -f enc.mk srcs` generates trans C sources under build dir. On the other hand, enc/trans/*.o were built from trans C sources generated under srcdir due to the following auto-generated rules from enc/depend. ``` encsrcdir = ../src/enc ... enc/trans/big5.$(OBJEXT): $(encsrcdir)/trans/big5.c ``` Therefore, trans C sources are generated twice under srcdir and build dir during a build. Ideally, trans C sources have always been built before compilation of enc/trans/*.o because the source generation is prereq, so making enc/trans/*.o doesn't trigger trans C source generation and shouldn't require MINIRUBY as a make arg for enc.mk. However, the second trans C source gen is unintentionally triggered by enc/trans/*.o, so `make -f enc.mk libencs` requires MINIRUBY for now. When no `--with-static-linked-ext`, `make -f enc.mk libencs` is triggered from common.mk with MINIRUBY, so there is no problem. But when `--with-static-linked-ext`, libencs should be statically-linked to ruby, so `make -f enc.mk libencs` is triggered from exts.mk, and exts.mk invokes it without MINIRUBY. Therefore, when out-of-src build and with `--with-static-linked-ext`, the second trans C source gen fails due to missing MINIRUBY. This issue is deterministically reproducible without -j because common.mk's `main` rule also has libencs prerequisite. This patch supresses the second trans C source gen. |
||
---|---|---|
.. | ||
jis | ||
trans | ||
unicode | ||
ascii.c | ||
big5.c | ||
cesu_8.c | ||
cp949.c | ||
depend | ||
ebcdic.h | ||
emacs_mule.c | ||
encdb.c | ||
encinit.c.erb | ||
euc_jp.c | ||
euc_kr.c | ||
euc_tw.c | ||
gb2312.c | ||
gb18030.c | ||
gbk.c | ||
iso_2022_jp.h | ||
iso_8859.h | ||
iso_8859_1.c | ||
iso_8859_2.c | ||
iso_8859_3.c | ||
iso_8859_4.c | ||
iso_8859_5.c | ||
iso_8859_6.c | ||
iso_8859_7.c | ||
iso_8859_8.c | ||
iso_8859_9.c | ||
iso_8859_10.c | ||
iso_8859_11.c | ||
iso_8859_13.c | ||
iso_8859_14.c | ||
iso_8859_15.c | ||
iso_8859_16.c | ||
koi8_r.c | ||
koi8_u.c | ||
make_encmake.rb | ||
Makefile.in | ||
mktable.c | ||
shift_jis.c | ||
shift_jis.h | ||
unicode.c | ||
us_ascii.c | ||
utf_7.h | ||
utf_8.c | ||
utf_16_32.h | ||
utf_16be.c | ||
utf_16le.c | ||
utf_32be.c | ||
utf_32le.c | ||
windows_31j.c | ||
windows_1250.c | ||
windows_1251.c | ||
windows_1252.c | ||
windows_1253.c | ||
windows_1254.c | ||
windows_1257.c | ||
x_emoji.h |