diff options
-rw-r--r-- | doc/windows.md | 181 | ||||
-rw-r--r-- | win32/README.win32 | 149 |
2 files changed, 179 insertions, 151 deletions
diff --git a/doc/windows.md b/doc/windows.md index b86eb56a8d..a41200656b 100644 --- a/doc/windows.md +++ b/doc/windows.md @@ -1,8 +1,18 @@ # Windows -## Building Ruby +Ruby supports a few native build platforms for Windows. -The easiest build environment is just a standard [RubyInstaller-Devkit installation](https://rubyinstaller.org/) and [git-for-windows](https://gitforwindows.org/). You might like to use [VSCode](https://code.visualstudio.com/) as an editor. +* mswin: Build using Microsoft Visual C++ compiler +* mingw-msvcrt: Build using compiler for Mingw with msvcrtXX.dll +* mingw-ucrt: Build using compiler for Mingw with vcruntime.dll + +## Building Ruby using Mingw with UCRT + +The easiest build environment is just a standard [RubyInstaller-Devkit] +installation and [git-for-windows]. You might like to use [VSCode] as an +editor. + +### Build examples Ruby core development can be done either in Windows `cmd` like: @@ -40,3 +50,170 @@ cd ruby ./configure -C --disable-install-doc make ``` + +[RubyInstaller-Devkit]: https://rubyinstaller.org/ +[git-for-windows]: https://gitforwindows.org/ +[VSCode]: https://code.visualstudio.com/ + +## Building 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 version, use native compiler for + x64. + +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 + `/E:ON` 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 `configure --target=i686-mswin32` + You can also specify the install directory. + For example, run `configure --prefix=<install_directory>` + 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 `nmake up` if you are building from GIT source. + +4. Run `nmake` + +5. Run `nmake check` + +6. Run `nmake install` + +### Build examples + +* Build on the ruby source directory. + + ``` + ruby source directory: C:\ruby + build directory: C:\ruby + install directory: C:\usr\local + ``` + + ``` + C: + cd \ruby + win32\configure --prefix=/usr/local + nmake + nmake check + nmake install + ``` + +* Build on the relative directory from the ruby source directory. + + ``` + 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 check + nmake install + ``` + +* Build on the different drive. + + ``` + 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 check + nmake install DESTDIR=C: + ``` + +* Build x64 version (requires native x64 VC++ compiler) + + ``` + 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 check + 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 `!INCLUDE` 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`. + +## 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, 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]: + +* Small [favicon] in the official site + +* [vit-ruby.ico] or [icon itself] + +[Ruby logo kit]: https://cache.ruby-lang.org/pub/misc/logo/ruby-logo-kit.zip +[favicon]: https://www.ruby-lang.org/favicon.ico +[vit-ruby.ico]: http://ruby.morphball.net/vit-ruby-ico_en.html +[icon itself]: http://ruby.morphball.net/icon/vit-ruby.ico diff --git a/win32/README.win32 b/win32/README.win32 deleted file mode 100644 index e5a754db05..0000000000 --- a/win32/README.win32 +++ /dev/null @@ -1,149 +0,0 @@ -# -*- 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 version, use native compiler for - x64. - -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 <tt>win32\configure.bat</tt> 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 <tt>/usr</tt> . - 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 check</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, 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]: - -* 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] - -== 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 check - 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 check - 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 check - 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 check - 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+. |