2019-02-05 09:00:25 +03:00
|
|
|
# -*- rdoc -*-
|
|
|
|
|
2000-08-03 13:55:54 +04:00
|
|
|
= How to build ruby using Visual C++
|
|
|
|
|
|
|
|
== Requirement
|
|
|
|
|
2019-02-04 11:10:24 +03:00
|
|
|
1. Windows 7 or later.
|
2010-12-27 09:23:19 +03:00
|
|
|
|
2019-02-04 11:10:24 +03:00
|
|
|
2. Visual C++ 12.0 (2013) or later.
|
2000-08-03 13:55:54 +04:00
|
|
|
|
2019-06-19 12:06:57 +03:00
|
|
|
[Note] if you want to build x64 version, use native compiler for
|
|
|
|
x64.
|
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-02 09:38:08 +03:00
|
|
|
[Note] building ruby requires following commands.
|
2019-02-01 16:40:10 +03:00
|
|
|
* nmake
|
|
|
|
* cl
|
2019-02-02 10:18:50 +03:00
|
|
|
* ml
|
2019-02-01 16:40:10 +03:00
|
|
|
* lib
|
|
|
|
* dumpbin
|
2000-08-03 13:55:54 +04:00
|
|
|
|
2019-04-22 05:33:56 +03:00
|
|
|
4. If you want to build from GIT source, following commands are required.
|
2019-02-01 16:40:10 +03:00
|
|
|
* bison
|
|
|
|
* patch
|
|
|
|
* sed
|
2019-02-02 10:18:50 +03:00
|
|
|
* ruby 2.0 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-08-04 01:12:16 +03:00
|
|
|
1. Execute <tt>win32\configure.bat</tt> 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>'
|
2019-08-04 01:12:16 +03:00
|
|
|
Default of the install directory is <tt>/usr</tt> .
|
2019-02-02 10:18:50 +03:00
|
|
|
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.
|
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-04-22 05:33:56 +03:00
|
|
|
3. Run `<tt>nmake up</tt>' if you are building from GIT 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-08-04 01:13:31 +03:00
|
|
|
5. Run `<tt>nmake check</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
|
|
|
|
|
2019-08-04 02:07:06 +03:00
|
|
|
Although no icons are distributed with the ruby source, you can use
|
|
|
|
anything you like. You will be able to find many images by search engines.
|
|
|
|
For example, followings are made from {Ruby logo
|
|
|
|
kit}[https://cache.ruby-lang.org/pub/misc/logo/ruby-logo-kit.zip]:
|
2000-08-03 13:55:54 +04:00
|
|
|
|
2019-08-04 02:07:06 +03:00
|
|
|
* Small {favicon}[https://www.ruby-lang.org/favicon.ico] in the official
|
|
|
|
site
|
|
|
|
|
|
|
|
* http://ruby.morphball.net/vit-ruby-ico_en.html or
|
|
|
|
{icon itself}[http://ruby.morphball.net/icon/vit-ruby.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
|
2019-08-04 02:15:05 +03:00
|
|
|
nmake check
|
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
|
2019-08-04 02:15:05 +03:00
|
|
|
nmake check
|
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
|
2019-08-04 02:15:05 +03:00
|
|
|
nmake check
|
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
|
2019-08-04 02:15:05 +03:00
|
|
|
nmake check
|
2007-09-27 12:38:46 +04:00
|
|
|
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+.
|