mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
145 lines
4 KiB
Text
145 lines
4 KiB
Text
# -*- rdoc -*-
|
|
|
|
= How to build ruby using Visual C++
|
|
|
|
== Requirement
|
|
|
|
1. Windows 7 or later.
|
|
|
|
2. Visual C++ 12.0 (2013) or later.
|
|
|
|
[Note] if you want to build x64 or ia64 version, use native compiler for
|
|
x64/ia64.
|
|
|
|
3. Please set environment variable +INCLUDE+, +LIB+, +PATH+
|
|
to run required commands properly from the command line.
|
|
|
|
[Note] building ruby requires following commands.
|
|
* nmake
|
|
* cl
|
|
* ml
|
|
* lib
|
|
* dumpbin
|
|
|
|
4. If you want to build from GIT source, following commands are required.
|
|
* bison
|
|
* patch
|
|
* sed
|
|
* ruby 2.0 or later
|
|
|
|
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.
|
|
|
|
== How to compile and install
|
|
|
|
1. Execute win32\configure.bat on your build directory.
|
|
You can specify the target platform as an argument.
|
|
For example, run `<tt>configure --target=i686-mswin32</tt>'
|
|
You can also specify the install directory.
|
|
For example, run `<tt>configure --prefix=<install_directory></tt>'
|
|
Default of the install directory is /usr .
|
|
The default _PLATFORM_ is `+i386-mswin32_+_MSRTVERSION_' on 32-bit
|
|
platforms, or `+x64-mswin64_+_MSRTVERSION_' on x64 platforms.
|
|
_MSRTVERSION_ is the 2- or 3-digits version of the Microsoft
|
|
Runtime Library.
|
|
|
|
2. Change _RUBY_INSTALL_NAME_ and _RUBY_SO_NAME_ in +Makefile+
|
|
if you want to change the name of the executable files.
|
|
And add _RUBYW_INSTALL_NAME_ to change the name of the
|
|
executable without console window if also you want.
|
|
|
|
3. Run `<tt>nmake up</tt>' if you are building from GIT source.
|
|
|
|
4. Run `<tt>nmake</tt>'
|
|
|
|
5. Run `<tt>nmake exam</tt>'
|
|
|
|
6. Run `<tt>nmake install</tt>'
|
|
|
|
== Icons
|
|
|
|
Any icon files(*.ico) in the build directory, directories specified with
|
|
_icondirs_ make variable and +win32+ directory under the ruby
|
|
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
|
|
|
|
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
|
|
in Japanese, but you can download at least.
|
|
|
|
* http://homepage1.nifty.com/a_nakata/ruby/ or
|
|
{icon itself}[http://homepage1.nifty.com/a_nakata/ruby/RubyIcon.ico]
|
|
|
|
== 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
|
|
win32\configure --prefix=/usr/local
|
|
nmake
|
|
nmake exam
|
|
nmake install
|
|
|
|
* 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
|
|
..\win32\configure --prefix=/usr/local
|
|
nmake
|
|
nmake exam
|
|
nmake install
|
|
|
|
* 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
|
|
C:\src\ruby\win32\configure --prefix=/usr/local
|
|
nmake
|
|
nmake exam
|
|
nmake install DESTDIR=C:
|
|
|
|
* 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 exam
|
|
nmake install
|
|
|
|
== Bugs
|
|
|
|
You can *NOT* use a path name that contains any white space characters as
|
|
the ruby source directory, this restriction comes from the behavior of
|
|
<code>!INCLUDE</code> directives of +NMAKE+.
|
|
|
|
You can build ruby in any directory including the source directory,
|
|
except +win32+ directory in the source directory.
|
|
This is restriction originating in the path search method of +NMAKE+.
|