diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-07-21 08:32:34 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-07-21 08:32:34 +0000 |
commit | 92cad4305b1751fcea0bcfe1386e8f8cba265167 (patch) | |
tree | c148fe0f5950da61563e314ea509781c5a630c32 /bcc32 | |
parent | 021660e4428f941553ae0cf893d756f270771471 (diff) |
* bcc32/{Makefile.sub,configure.bat,setup.mak: configure_args
support.
* bcc32/setup.mak: check runtime version.
* win32/win32.c (rb_w32_open_osfhandle): prototype has changed
in bcc 5.82.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12831 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'bcc32')
-rw-r--r-- | bcc32/Makefile.sub | 16 | ||||
-rwxr-xr-x | bcc32/configure.bat | 100 | ||||
-rw-r--r-- | bcc32/setup.mak | 85 |
3 files changed, 150 insertions, 51 deletions
diff --git a/bcc32/Makefile.sub b/bcc32/Makefile.sub index 67e9e58852..567050972c 100644 --- a/bcc32/Makefile.sub +++ b/bcc32/Makefile.sub @@ -4,8 +4,12 @@ SHELL = $(COMSPEC) MKFILES = Makefile #### Start of system configuration section. #### +!ifndef OS OS = bccwin32 -RT = $(OS) +!endif +!if !defined(RT) +!error RT not defined. Retry from configure pass. +!endif ## variables may be overridden by $(compile_dir)/Makefile !ifndef srcdir @@ -144,7 +148,7 @@ STACK = 0x2000000 XCFLAGS = -DRUBY_EXPORT -I. -I$(srcdir) -I$(srcdir)/missing -ARFLAGS = /a +ARFLAGS = /a /p32 LD = ilink32 -q -Gn LDSHARED = $(LD) XLDFLAGS = -Tpe c0x32.obj @@ -209,7 +213,13 @@ rubyw: $(WPROGRAM) !include $(srcdir)/common.mk -PHONY: Makefile +$(MKFILES): $(srcdir)/bcc32/Makefile.sub $(srcdir)/bcc32/configure.bat $(srcdir)/bcc32/setup.mak + $(COMSPEC) /C $(srcdir:/=\)\bcc32\configure.bat $(configure_args) + @echo $(MKFILES) should be updated, re-run $(MAKE). + @$(MAKE) > nul -q -f &&| +PHONY: nul + @exit +| CONFIG_H = ./.config.h.time diff --git a/bcc32/configure.bat b/bcc32/configure.bat index 6e32df6fc7..8cdfc64b03 100755 --- a/bcc32/configure.bat +++ b/bcc32/configure.bat @@ -6,76 +6,120 @@ echo> ~tmp~.mak ####
echo>> ~tmp~.mak conf = %0
echo>> ~tmp~.mak $(conf:\=/): nul
-echo>> ~tmp~.mak @del ~tmp~.mak
+echo>> ~tmp~.mak @del ~setup~.mak
echo>> ~tmp~.mak @-$(MAKE) -l$(MAKEFLAGS) -f $(@D)setup.mak \
+if exist pathlist.tmp del pathlist.tmp
+if exist confargs.mk del confargs.mk
:loop
if "%1" == "" goto :end
if "%1" == "--prefix" goto :prefix
+if "%1" == "prefix" goto :prefix
if "%1" == "--srcdir" goto :srcdir
if "%1" == "srcdir" goto :srcdir
if "%1" == "--target" goto :target
if "%1" == "target" goto :target
if "%1" == "--with-static-linked-ext" goto :extstatic
if "%1" == "--program-suffix" goto :suffix
-if "%1" == "--program-name" goto :progname
+if "%1" == "RUBY_SUFFIX" goto :suffix
+if "%1" == "--program-name" goto :installname
+if "%1" == "--install-name" goto :installname
+if "%1" == "RUBY_INSTALL_NAME" goto :installname
+if "%1" == "--so-name" goto :soname
+if "%1" == "RUBY_SO_NAME" goto :soname
if "%1" == "--enable-install-doc" goto :enable-rdoc
if "%1" == "--disable-install-doc" goto :disable-rdoc
if "%1" == "--extout" goto :extout
+if "%1" == "EXTOUT" goto :extout
if "%1" == "--with-baseruby" goto :baseruby
+if "%1" == "BASERUBY" goto :baseruby
+if "%1" == "--path" goto :path
if "%1" == "-h" goto :help
if "%1" == "--help" goto :help
- echo>> ~tmp~.mak "%1" \
+ echo>>confargs.tmp %1 \
shift
goto :loop
:srcdir
- echo>> ~tmp~.mak -D"srcdir=%2" \
+ echo>> ~tmp~.mak -Dsrcdir=%2 \
+ echo>>confargs.tmp --srcdir=%2 \
shift
shift
goto :loop
:prefix
- echo>> ~tmp~.mak -D"prefix=%2" \
+ echo>> ~tmp~.mak -Dprefix=%2 \
+ echo>>confargs.tmp %1=%2 \
shift
shift
goto :loop
:suffix
- echo>> ~tmp~.mak -D"RUBY_SUFFIX=%2" \
+ echo>>confargs.mk !ifndef RUBY_SUFFIX
+ echo>>confargs.mk RUBY_SUFFIX = %2
+ echo>>confargs.mk !endif
+ echo>>confargs.tmp %1=%2 \
shift
shift
goto :loop
:installname
- echo>> ~tmp~.mak -D"RUBY_INSTALL_NAME=%2" \
+ echo>>confargs.mk !ifndef RUBY_INSTALL_NAME
+ echo>>confargs.mk RUBY_INSTALL_NAME = %2
+ echo>>confargs.mk !endif
+ echo>>confargs.tmp %1=%2 \
shift
shift
goto :loop
:soname
- echo>> ~tmp~.mak -D"RUBY_SO_NAME=%2" \
+ echo>>confargs.mk !ifndef RUBY_SO_NAME
+ echo>>confargs.mk RUBY_SO_NAME = %2
+ echo>>confargs.mk !endif
+ echo>>confargs.tmp %1=%2 \
shift
shift
goto :loop
:target
- echo>> ~tmp~.mak "%2" \
+ echo>> ~tmp~.mak %2 \
+ echo>>confargs.tmp --target=%2 \
shift
shift
goto :loop
:extstatic
- echo>> ~tmp~.mak -D"EXTSTATIC=static" \
+ echo>>confargs.mk !ifndef EXTSTATIC
+ echo>>confargs.mk EXTSTATIC = static
+ echo>>confargs.mk !endif
+ echo>>confargs.tmp %1 \
shift
goto :loop
:enable-rdoc
- echo>> ~tmp~.mak -D"RDOCTARGET=install-doc" \
+ echo>>confargs.mk !ifndef RDOCTARGET
+ echo>>confargs.mk RDOCTARGET = install-doc
+ echo>>confargs.mk !endif
+ echo>>confargs.tmp %1 \
shift
goto :loop
:disable-rdoc
- echo>> ~tmp~.mak -D"RDOCTARGET=install-nodoc" \
+ echo>>confargs.mk !ifndef RDOCTARGET
+ echo>>confargs.mk RDOCTARGET = install-nodoc
+ echo>>confargs.mk !endif
+ echo>>confargs.tmp %1 \
shift
goto :loop
:extout
- echo>> ~tmp~.mak -D"EXTOUT=%2" \
+ echo>>confargs.mk !ifndef EXTOUT
+ echo>>confargs.mk EXTOUT = %2
+ echo>>confargs.mk !endif
+ echo>>confargs.tmp %1=%2 \
shift
shift
goto :loop
:baseruby
- echo>> ~tmp~.mak -D"BASERUBY=%2" \
+ echo>>confargs.mk !ifndef BASERUBY
+ echo>>confargs.mk BASERUBY = %2
+ echo>>confargs.mk !endif
+ echo>>confargs.tmp %1=%2 \
+ shift
+ shift
+goto :loop
+:path
+ echo>>pathlist.tmp %2;\
+ echo>>confargs.tmp %1=%2 \
shift
shift
goto :loop
@@ -84,16 +128,36 @@ goto :loop echo --help display this help
echo --srcdir=DIR find the sources in DIR [configure dir or `..']
echo Installation directories:
- echo --prefix=PREFIX install files in PREFIX [/usr]
+ echo --prefix=PREFIX install files in PREFIX (ignored currently)
echo System types:
echo --target=TARGET configure for TARGET [i386-bccwin32]
echo Optional Package:
echo --with-baseruby=RUBY use RUBY as baseruby [ruby]
echo --with-static-linked-ext link external modules statically
- echo --disable-install-doc do not install rdoc indexes during install
+ echo --enable-install-doc install rdoc indexes during install
+ del *.tmp
del ~tmp~.mak
goto :exit
:end
-echo>> ~tmp~.mak -Dbcc32dir="$(@D)"
-make -s -f ~tmp~.mak
+echo>> ~tmp~.mak -Dbcc32dir=$(@D)
+if not exist confargs.tmp goto :noconfargs
+ echo>>confargs.mk configure_args = \
+ type>>confargs.mk confargs.tmp
+ echo.>>confargs.mk
+ echo>>confargs.mk ####
+:noconfargs
+if not exist pathlist.tmp goto :nopathlist
+ echo>>confargs.mk pathlist = \
+ type>>confargs.mk pathlist.tmp
+ echo.>>confargs.mk
+ echo>>confargs.mk ####
+ echo>>confargs.mk PATH = $(pathlist:;=/bin;)$(PATH)
+ echo>>confargs.mk INCLUDE = $(pathlist:;=/include;)
+ echo>>confargs.mk LIB = $(pathlist:;=/lib;)
+:nopathlist
+if exist confargs.mk copy confargs.mk ~setup~.mak > nul
+type>>~setup~.mak ~tmp~.mak
+del *.tmp > nul
+del ~tmp~.mak > nul
+make -s -f ~setup~.mak
:exit
diff --git a/bcc32/setup.mak b/bcc32/setup.mak index 9af0ac2d7a..483292ed51 100644 --- a/bcc32/setup.mak +++ b/bcc32/setup.mak @@ -9,7 +9,7 @@ srcdir = $(bcc32dir:/bcc32/=) !else srcdir = $(bcc32dir)/.. !endif -!if "$(prefix)" == "" +!ifndef prefix prefix = /usr !endif OS = bccwin32 @@ -30,7 +30,9 @@ i586-$(OS): -prologue- -i586- -epilogue- i686-$(OS): -prologue- -i686- -epilogue- alpha-$(OS): -prologue- -alpha- -epilogue- --prologue-: nul +-prologue-: -basic-vars- -version- -system-vars- + +-basic-vars-: nul @echo Creating $(MAKEFILE) @type > $(MAKEFILE) &&| \#\#\# Makefile for ruby $(OS) \#\#\# @@ -40,41 +42,68 @@ $(BANG)endif $(BANG)ifndef prefix prefix = $(prefix:\=/) $(BANG)endif -$(BANG)ifndef EXTSTATIC -EXTSTATIC = $(EXTSTATIC) -$(BANG)endif -!if defined(RDOCTARGET) -$(BANG)ifndef RDOCTARGET -RDOCTARGET = $(RDOCTARGET) -$(BANG)endif -!endif -!if defined(EXTOUT) -$(BANG)ifndef EXTOUT -EXTOUT = $(EXTOUT) -$(BANG)endif -!endif -!if defined(BASERUBY) -$(BANG)ifndef BASERUBY -BASERUBY = $(BASERUBY) -$(BANG)endif +| +!if exist(confargs.mk) + @type confargs.mk >> $(MAKEFILE) + @del confargs.mk !endif + +-system-vars-: -runtime- -bormm- + +-bormm-: nul + @-ilink32 -q -Gn -x usebormm.lib > nul + @-if exist usebormm.tds $(APPEND) MEMLIB = usebormm.lib + @if exist usebormm.* del usebormm.* + +-osname-: nul + @echo OS = >>$(MAKEFILE) + +-runtime-: nul + type > conftest.c &&| +\#include <stdio.h> +int main(){printf("");return 0;} | - @type > usebormm.bat &&| -@echo off -ilink32 -Gn -x usebormm.lib > nul -if exist usebormm.tds echo MEMLIB = usebormm.lib + bcc32 conftest.c cw32i.lib > nul + tdump conftest.exe < nul > conftest.i + grep "^Imports from CC" conftest.i > conftest.c + cpp32 -P- -DFile=\# -DImports=RTNAME -Dfrom== conftest.c > nul + $(MAKE) > nul -DBANG=$(BANG) -f &&| +-runtime-: nul +$(BANG)include conftest.i +RT = $$(RTNAME:.DLL=) +OS = $$(RT:CC32=) +-runtime-: + del conftest.* +$(BANG)if "$$(OS)" == "50" + echo OS = bccwin32 >> $(MAKEFILE) +$(BANG)else + echo OS = bccwin32_$$(OS) >> $(MAKEFILE) +$(BANG)endif | - @usebormm.bat >> $(MAKEFILE) - @del usebormm.* + @echo RT = $$(OS) >> $(MAKEFILE) +-version-: nul @cpp32 -I$(srcdir) -P- -o$(MAKEFILE) > nul &&| \#include "version.h" MAJOR = RUBY_VERSION_MAJOR MINOR = RUBY_VERSION_MINOR TEENY = RUBY_VERSION_TEENY + +BORLANDC = __BORLANDC__ | - @type $(MAKEFILE).i >> $(MAKEFILE) + @$(MAKE) > nul -DBANG=$(BANG) -f &&, +-version-: nul +$(BANG)include $(MAKEFILE) +$(BANG)include $(MAKEFILE).i +-version-: @del $(MAKEFILE).i + @type >> $(MAKEFILE) &&| +MAJOR = $$(MAJOR) +MINOR = $$(MINOR) +TEENY = $$(TEENY) +BORLANDC = $$(BORLANDC) +| +, -generic-: nul !if defined(PROCESSOR_ARCHITECTURE) || defined(PROCESSOR_LEVEL) @@ -89,7 +118,6 @@ $(BANG)ifndef PROCESSOR_LEVEL PROCESSOR_LEVEL = $(PROCESSOR_LEVEL) $(BANG)endif !endif - | !endif @@ -122,8 +150,6 @@ $(BANG)endif -epilogue-: nul @type >> $(MAKEFILE) &&| -\# OS = $(OS) -\# RT = $(RT) \# RUBY_INSTALL_NAME = ruby \# RUBY_SO_NAME = $$(RT)-$$(RUBY_INSTALL_NAME)$$(MAJOR)$$(MINOR) \# CFLAGS = -q $$(DEBUGFLAGS) $$(OPTFLAGS) $$(PROCESSOR_FLAG) -w- -wsus -wcpt -wdup -wext -wrng -wrpt -wzdi @@ -134,5 +160,4 @@ $(BANG)endif \# EXTLIBS = cw32.lib import32.lib user32.lib kernel32.lib $(BANG)include $$(srcdir)/bcc32/Makefile.sub | - @$(srcdir:/=\)\win32\rm.bat config.h config.status @echo type "`$(MAKE)'" to make ruby for $(OS). |