2000-08-03 13:55:54 +04:00
|
|
|
= How to build ruby using Visual C++
|
|
|
|
|
|
|
|
== Requirement
|
|
|
|
|
2019-02-01 16:40:10 +03:00
|
|
|
1. Windows XP or later.
|
2010-12-27 09:23:19 +03:00
|
|
|
|
2019-02-01 16:40:10 +03:00
|
|
|
2. Visual C++ 6.0 or later. (strongly recommended VC++ 10 or later)
|
2000-08-03 13:55:54 +04:00
|
|
|
|
2019-02-01 16:40:10 +03:00
|
|
|
Note:: if you want to build x64 or ia64 version, use native compiler for
|
|
|
|
x64/ia64.
|
2007-10-31 18:53:19 +03:00
|
|
|
|
2019-02-01 16:40:10 +03:00
|
|
|
3. Please set environment variable +INCLUDE+, +LIB+, +PATH+
|
2000-08-03 13:55:54 +04:00
|
|
|
to run required commands properly from the command line.
|
|
|
|
|
2019-02-01 16:40:10 +03:00
|
|
|
Note:: building ruby requires following commands.
|
|
|
|
* nmake
|
|
|
|
* cl
|
|
|
|
* lib
|
|
|
|
* dumpbin
|
2000-08-03 13:55:54 +04:00
|
|
|
|
2019-02-01 16:40:10 +03:00
|
|
|
4. If you want to build from SVN source, following commands are required.
|
|
|
|
* bison
|
|
|
|
* patch
|
|
|
|
* sed
|
|
|
|
* ruby 1.8 or later
|
2003-12-28 20:25:31 +03:00
|
|
|
|
2019-02-01 16:40:10 +03:00
|
|
|
5. Enable Command Extension of your command line. It's the default behavior
|
|
|
|
of +cmd.exe+. If you want to enable it explicitly, run +cmd.exe+ with
|
|
|
|
<tt>/E:ON</tt> option.
|
2012-02-29 11:13:04 +04:00
|
|
|
|
2000-08-03 13:55:54 +04:00
|
|
|
== How to compile and install
|
|
|
|
|
2019-02-01 16:40:10 +03:00
|
|
|
1. Execute win32\configure.bat on your build directory.
|
2002-09-10 12:24:11 +04:00
|
|
|
You can specify the target platform as an argument.
|
2019-02-01 16:40:10 +03:00
|
|
|
For example, run `<tt>configure --target=i686-mswin32</tt>'
|
2003-12-28 20:25:31 +03:00
|
|
|
You can also specify the install directory.
|
2019-02-01 16:40:10 +03:00
|
|
|
For example, run `<tt>configure --prefix=<install_directory></tt>'
|
2003-12-28 20:25:31 +03:00
|
|
|
Default of the install directory is /usr .
|
2019-02-01 16:40:10 +03:00
|
|
|
The default _PLATFORM_ is `+i386-mswin32+'.
|
2000-08-03 13:55:54 +04:00
|
|
|
|
2019-02-01 16:40:10 +03:00
|
|
|
2. Change _RUBY_INSTALL_NAME_ and _RUBY_SO_NAME_ in +Makefile+
|
2013-06-23 21:46:05 +04:00
|
|
|
if you want to change the name of the executable files.
|
2019-02-01 16:40:10 +03:00
|
|
|
And add _RUBYW_INSTALL_NAME_ to change the name of the
|
2000-08-03 13:55:54 +04:00
|
|
|
executable without console window if also you want.
|
|
|
|
|
2019-02-01 16:40:10 +03:00
|
|
|
3. Run `<tt>nmake up</tt>' if you are building from SVN source.
|
2000-08-03 13:55:54 +04:00
|
|
|
|
2019-02-01 16:40:10 +03:00
|
|
|
4. Run `<tt>nmake</tt>'
|
2000-08-03 13:55:54 +04:00
|
|
|
|
2019-02-01 16:40:10 +03:00
|
|
|
5. Run `<tt>nmake exam</tt>'
|
2018-03-19 16:04:22 +03:00
|
|
|
|
2019-02-01 16:40:10 +03:00
|
|
|
6. Run `<tt>nmake install</tt>'
|
2000-08-03 13:55:54 +04:00
|
|
|
|
|
|
|
== Icons
|
|
|
|
|
|
|
|
Any icon files(*.ico) in the build directory, directories specified with
|
2019-02-01 16:40:10 +03:00
|
|
|
_icondirs_ make variable and +win32+ directory under the ruby
|
2000-08-03 13:55:54 +04:00
|
|
|
source directory will be included in DLL or executable files, according
|
|
|
|
to their base names.
|
|
|
|
$(RUBY_INSTALL_NAME).ico or ruby.ico --> $(RUBY_INSTALL_NAME).exe
|
|
|
|
$(RUBYW_INSTALL_NAME).ico or rubyw.ico --> $(RUBYW_INSTALL_NAME).exe
|
|
|
|
the others --> $(RUBY_SO_NAME).dll
|
|
|
|
|
2013-06-23 21:46:05 +04:00
|
|
|
Although no icons are distributed with the ruby source or in the official
|
|
|
|
site, you can use anything you like. For example, followings are written
|
2000-08-03 13:55:54 +04:00
|
|
|
in Japanese, but you can download at least.
|
|
|
|
|
2019-02-01 16:40:10 +03:00
|
|
|
* http://homepage1.nifty.com/a_nakata/ruby/ or
|
|
|
|
{icon itself}[http://homepage1.nifty.com/a_nakata/ruby/RubyIcon.ico]
|
2000-08-03 13:55:54 +04:00
|
|
|
|
|
|
|
== Build examples
|
|
|
|
|
|
|
|
* Build on the ruby source directory.
|
|
|
|
|
|
|
|
ex.)
|
|
|
|
ruby source directory: C:\ruby
|
|
|
|
build directory: C:\ruby
|
|
|
|
install directory: C:\usr\local
|
|
|
|
|
|
|
|
C:
|
|
|
|
cd \ruby
|
2003-12-28 20:25:31 +03:00
|
|
|
win32\configure --prefix=/usr/local
|
2000-08-03 13:55:54 +04:00
|
|
|
nmake
|
|
|
|
nmake test
|
2003-12-28 20:25:31 +03:00
|
|
|
nmake install
|
2000-08-03 13:55:54 +04:00
|
|
|
|
|
|
|
* Build on the relative directory from the ruby source directory.
|
|
|
|
|
|
|
|
ex.)
|
|
|
|
ruby source directory: C:\ruby
|
|
|
|
build directory: C:\ruby\mswin32
|
|
|
|
install directory: C:\usr\local
|
|
|
|
|
|
|
|
C:
|
|
|
|
cd \ruby
|
|
|
|
mkdir mswin32
|
|
|
|
cd mswin32
|
2003-12-28 20:25:31 +03:00
|
|
|
..\win32\configure --prefix=/usr/local
|
2000-08-03 13:55:54 +04:00
|
|
|
nmake
|
|
|
|
nmake test
|
2003-12-28 20:25:31 +03:00
|
|
|
nmake install
|
2000-08-03 13:55:54 +04:00
|
|
|
|
|
|
|
* Build on the different drive.
|
|
|
|
|
|
|
|
ex.)
|
|
|
|
ruby source directory: C:\src\ruby
|
|
|
|
build directory: D:\build\ruby
|
|
|
|
install directory: C:\usr\local
|
|
|
|
|
|
|
|
D:
|
|
|
|
cd D:\build\ruby
|
2009-03-04 18:06:39 +03:00
|
|
|
C:\src\ruby\win32\configure --prefix=/usr/local
|
2000-08-03 13:55:54 +04:00
|
|
|
nmake
|
|
|
|
nmake test
|
2009-03-04 18:06:39 +03:00
|
|
|
nmake install DESTDIR=C:
|
2000-08-03 13:55:54 +04:00
|
|
|
|
2007-09-27 12:38:46 +04:00
|
|
|
* Build x64 version (requires native x64 VC++ compiler)
|
|
|
|
|
|
|
|
ex.)
|
|
|
|
ruby source directory: C:\ruby
|
|
|
|
build directory: C:\ruby
|
|
|
|
install directory: C:\usr\local
|
|
|
|
|
|
|
|
C:
|
|
|
|
cd \ruby
|
|
|
|
win32\configure --prefix=/usr/local --target=x64-mswin64
|
|
|
|
nmake
|
|
|
|
nmake test
|
|
|
|
nmake install
|
|
|
|
|
2000-08-03 13:55:54 +04:00
|
|
|
== Bugs
|
|
|
|
|
2019-02-01 16:40:10 +03:00
|
|
|
You can *NOT* use a path name that contains any white space characters as
|
2000-08-03 13:55:54 +04:00
|
|
|
the ruby source directory, this restriction comes from the behavior of
|
2019-02-01 16:40:10 +03:00
|
|
|
<code>!INCLUDE</code> directives of +NMAKE+.
|
2000-08-03 13:55:54 +04:00
|
|
|
|
2012-11-13 07:32:06 +04:00
|
|
|
You can build ruby in any directory including the source directory,
|
2019-02-01 16:40:10 +03:00
|
|
|
except +win32+ directory in the source directory.
|
|
|
|
This is restriction originating in the path search method of +NMAKE+.
|