From: "knu (Akinori MUSHA)" Date: 2013-06-17T12:59:43+09:00 Subject: [ruby-dev:47444] [ruby-trunk - Bug #8524] r40755以降 No rule to make target `.ext/include/sparc64-solaris2.10/ruby/config.h でビルドできない Issue #8524 has been updated by knu (Akinori MUSHA). なるほど、ありがとうございます。 場合によっては sh -c "${var:+"command arg"}" という手もあるのかな。 ---------------------------------------- Bug #8524: r40755以降 No rule to make target `.ext/include/sparc64-solaris2.10/ruby/config.h でビルドできない https://bugs.ruby-lang.org/issues/8524#change-39984 Author: ngoto (Naohisa Goto) Status: Closed Priority: Normal Assignee: nobu (Nobuyoshi Nakada) Category: build Target version: ruby -v: - Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN r40755以降、Solarisでは、以下のように .ext/include/アーキテクチャ/ruby/config.h が作成されません。 原因は、r40755にて以下の行が./tool/ifchange に追加されたためです。 @@ -30,6 +37,7 @@ rm -f "$temp" else echo "$target updated" + ${keepsuffix:+ mv -f "$target" "${target}${keepsuffix}" } mv -f "$temp" "$target" fi この tool/ifchangeは #!/bin/sh なのに、基本的な/bin/shでは解釈できない(bash依存?)記述が追加されたため、Solarisのようにピュアな/bin/shを持つOSでは、そこで処理がストップし、しかしconfigureではエラーを検知できないらしく、そのままconfig.hが作成されないままconfigureが正常終了してしまうのが原因のようです。 $ ./configure --prefix=/hoge/hoge/hoge (中略) checking for nroff... /usr/bin/nroff .ext/include/sparc64-solaris2.10/ruby/config.h updated ./tool/ifchange: bad substitution verconf.h updated ./tool/ifchange: bad substitution ruby library version = 2.1.0 configure: creating ./config.status config.status: creating GNUmakefile config.status: creating Makefile config.status: creating ruby-2.1.pc $ make V=1 CC = cc LD = /usr/ccs/bin/ld LDSHARED = cc -G CFLAGS = -xO1 -xtarget=sparc64viiplus -m64 XCFLAGS = -DRUBY_EXPORT CPPFLAGS = -I/usr/local/64/lib/libffi-3.0.10/include -I/usr/local/64/include -I. -I.ext/include/sparc64-solaris2.10 -I./include -I. DLDFLAGS = -m64 -L/usr/local/64/lib -R/usr/local/64/lib -m64 SOLIBS = cc: Sun C 5.12 SunOS_sparc 2011/11/16 make: *** No rule to make target `.ext/include/sparc64-solaris2.10/ruby/config.h', needed by `main.o'. Stop. -- http://bugs.ruby-lang.org/