From: nobu.nakada@... Date: 2002-03-20T02:01:24+09:00 Subject: [ruby-dev:16497] Re: mswin32 configuration なかだです。 At Tue, 19 Mar 2002 19:28:01 +0900, U.Nakamura wrote: > | > えーと、今までは、DESTDIRを指定しなければ、/usr にインストー > | > ルされてました。つまり、prefix指定とDESTDIR指定が排他関係に > | > あったような気がします。 > > とか書いちゃいましたけど、勘違いだったような気がしてきました。 試してみたところ、nmakeはコマンドラインで指定されたマクロか、す でに設定されている環境変数を上書きする空でないマクロだけを exportするようです。だから、 nmake install prefix=c:/ruby set prefix=c:/ruby nmake install ならc:/ruby以下にインストールされますが、 set prefix= nmake install ではrbconfig.rbで定義されているprefixが使われます。 # ややこしいよ。 > | たぶん、config.statusでprefixを空にすることで、setup.mkはそのま > | までいいんじゃないかと思います。 > > これでうまくいきました。 rbconfig.rbのprefixを空にしておけば、Makefileと食い違うことがな くなるんでしょう。デフォルトで$(prefix)にインストールされるよう にするなら、これも追加すればよさそうです。 @@ -61,6 +61,9 @@ !if !defined(prefix) prefix = /usr !endif +!if !defined(DESTDIR) +DESTDIR = $(prefix) +!endif !if !defined(CFLAGS) CFLAGS = -nologo -MD $(DEBUGFLAGS) $(OPTFLAGS) $(PROCESSOR_FLAG) !endif ついでに、Makefileをいじるたびにすべて再コンパイルされてはたま らんのでこういうのを考えてみましたが、チェックするタイミングが 難しい…。 Windows標準で、余計なことをしないで必ず失敗するコマンドってあり ましたっけ。 @@ -158,7 +161,22 @@ config: config.h config.status -config.h: Makefile $(srcdir)/win32/$$@.in +check-config: config.h +!if exist(config.h) + @echo #include "config.h" > conftest.mk + @echo check: clean test >> conftest.mk + @echo clean:; @del conftest.mak >> conftest.mk + @echo test:: >> conftest.mk + @echo !if "$(ARCH)-$(OS)" != RUBY_PLATFORM >> conftest.mk + @echo test::; @echo PLATFORM changed, thow awy config.h >> conftest.mk + @echo test::; @.error >> conftest.mk + @echo !endif >> conftest.mk + @$(CC) -nologo -EP $(CPPFLAGS) conftest.mk > conftest.mak + @del conftest.mk + @$(MAKE) -lf conftest.mak +!endif + +config.h: $(srcdir)/win32/$$@.in @echo Creating config.h @type $(srcdir:/=\)\win32\$@.in > $@ @echo #undef RUBY_PLATFORM >> $@ -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦