summaryrefslogtreecommitdiff
path: root/bcc32
diff options
context:
space:
mode:
authorocean <ocean@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2006-02-23 13:46:03 +0000
committerocean <ocean@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2006-02-23 13:46:03 +0000
commit5ced09a22a19e0a03f41e7923f533d828f812be3 (patch)
treebfe415edaad3a14017181fbf43abd6e174ae7789 /bcc32
parent0de7476e0a67436a8dec3900ba8783405827acb0 (diff)
* bcc32/Makefile.sub: use borlndmm.dll if possible. bcc32's RTL internal
memory manager cannot handle large memory block properly. ex: 10000.times { "" << "." * 529671; GC.start } # crash [ruby-dev:28230] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9987 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'bcc32')
-rw-r--r--bcc32/Makefile.sub5
-rw-r--r--bcc32/README.bcc3212
-rw-r--r--bcc32/setup.mak8
3 files changed, 24 insertions, 1 deletions
diff --git a/bcc32/Makefile.sub b/bcc32/Makefile.sub
index 87a27d8d92..6a85b57d4a 100644
--- a/bcc32/Makefile.sub
+++ b/bcc32/Makefile.sub
@@ -125,7 +125,10 @@ RFLAGS = $(iconinc)
!ifndef EXTLIBS
EXTLIBS =
!endif
-LIBS = cw32i.lib import32.lib ws2_32.lib $(EXTLIBS)
+!ifndef MEMLIB
+MEMLIB =
+!endif
+LIBS = $(MEMLIB) cw32i.lib import32.lib ws2_32.lib $(EXTLIBS)
MISSING = acosh.obj crypt.obj erf.obj win32.obj
!ifndef STACK
diff --git a/bcc32/README.bcc32 b/bcc32/README.bcc32
index 405b2dcfa4..c27a1261f1 100644
--- a/bcc32/README.bcc32
+++ b/bcc32/README.bcc32
@@ -19,6 +19,14 @@
* byacc ((<URL:http://gnuwin32.sourceforge.net/packages/byacc.htm>))
* sed ((<URL:http://gnuwin32.sourceforge.net/packages/sed.htm>))
+(4) We strongly recommend to build ruby on C++Builder, to link following files.
+ * usebormm.lib
+ * memmgr.lib
+
+ RTL's internal memory manager cannot handle large memory block properly,
+ so we should use borlndmm.dll instead.
+ 10000.times { "" << "." * 529671; GC.start } # crash
+
== How to compile and install
(1) Execute bcc32\configure.bat on your build directory.
@@ -48,6 +56,10 @@
If Ruby's version is `x.y.z', the ((|<MAJOR>|)) is `x' and the ((|<MINOR>|)) is `y'.
The ((|<PLATFORM>|)) is usually `(({i586-bccwin32}))'.
+(6) Requires dynamic RTL (cc3250.dll on C++Builder5) and borlndmm.dll (If built with
+ usebormm.lib) to use installed binary. These files are ordinary in bcc32's bin
+ directory.
+
== Icons
Any icon files(*.ico) in the build directory, directories specified with
diff --git a/bcc32/setup.mak b/bcc32/setup.mak
index d6120d10cb..1c922c208f 100644
--- a/bcc32/setup.mak
+++ b/bcc32/setup.mak
@@ -54,6 +54,14 @@ EXTOUT = $(EXTOUT)
$(BANG)endif
!endif
|
+ @type > usebormm.bat &&|
+@echo off
+ilink32 -Gn -x usebormm.lib > nul
+if exist usebormm.tds echo MEMLIB = usebormm.lib
+|
+ @usebormm.bat >> $(MAKEFILE)
+ @del usebormm.*
+
@cpp32 -I$(srcdir) -DRUBY_EXTERN="//" -P- -o$(MAKEFILE) > nul &&|
\#include "version.h"
MAJOR = RUBY_VERSION_MAJOR