From: WATANABE Hirofumi Date: 1998-04-14T11:26:04+09:00 Subject: [ruby-dev:2300] Re: -X and /dev/null わたなべです. Yukihiro Matsumoto writes: :DJGPPで試してみないといけませんが,ソースを見る限りトップレ :ベルにchdirしているようです. そっか. 最後には戻ってきてるんですね. ってことで大丈夫です. :DOSishな環境でreopenしたら戻す必要があるかどうか確認できれば, :そんなに難しくないと思います. こんな感じにしてみました. /dev/null じゃなくて log を残すよ うにすると porting の際に役に立つかもしれないと今思いました. PLATFORM 名はまだ決めてません. とりあえず mingw32 してるけど, mswin32 と違うとこはないはずだし. -- わたなべひろふみ --- extmk.rb.in.orig Mon Mar 30 17:27:52 1998 +++ extmk.rb.in Tue Apr 14 11:12:37 1998 @@ -61,8 +61,25 @@ CFLAGS = "@CFLAGS@".gsub(/-c..-stack=[0-9]+ */, '') -LINK = "@CC@ -o conftest -I#{$topdir} " + CFLAGS + " %s @LDFLAGS@ %s conftest.c @LIBS@ %s > nul 2>&1" -CPP = "@CPP@ @CPPFLAGS@ -I#{$topdir} " + CFLAGS + " %s conftest.c > nul 2>&1" +LINK = "@CC@ -o conftest -I#{$topdir} " + CFLAGS + " %s @LDFLAGS@ %s conftest.c @LIBS@ %s" +CPP = "@CPP@ @CPPFLAGS@ -I#{$topdir} " + CFLAGS + " %s conftest.c" else CFLAGS = "@CFLAGS@" -LINK = "@CC@ -o conftest -I#{$topdir} " + CFLAGS + " %s @LDFLAGS@ %s conftest.c %s > /dev/null 2>&1" -CPP = "@CPP@ @CPPFLAGS@ -I#{$topdir} " + CFLAGS + " %s conftest.c > /dev/null 2>&1" +LINK = "@CC@ -o conftest -I#{$topdir} " + CFLAGS + " %s @LDFLAGS@ %s conftest.c %s" +CPP = "@CPP@ @CPPFLAGS@ -I#{$topdir} " + CFLAGS + " %s conftest.c" +end + +if /win32|djgpp|mingw32/i =~ PLATFORM + $null = open("nul", "w") +else + $null = open("/dev/null", "w") +end + +$orgerr = $stderr.dup +$orgout = $stdout.dup +def xsystem command + $stderr.reopen($null) + $stdout.reopen($null) + r = system(command) + $stderr.reopen($orgerr) + $stdout.reopen($orgout) + return r end @@ -70,3 +87,3 @@ def try_link(libs) - system(format(LINK, $CFLAGS, $LDFLAGS, libs)) + xsystem(format(LINK, $CFLAGS, $LDFLAGS, libs)) end @@ -74,3 +91,3 @@ def try_cpp - system(format(CPP, $CFLAGS)) + xsystem(format(CPP, $CFLAGS)) end