2002-12-02 02:57:17 -05:00
|
|
|
=begin
|
|
|
|
|
|
|
|
= How to build ruby using eMbedded Visual C++
|
|
|
|
|
|
|
|
== Requirement
|
|
|
|
|
|
|
|
(1) eMbedded Visual C++ 3.0 or later.
|
|
|
|
|
* wince/ : files removed.
(config, dll.mak, exe.mak, mswince-ruby17.def,
io.c, process.c, signal.c, string.c, time.c)
* wince/ : files added.
(assert.c, Makefile.sub, mkexports.rb, io_wce.c,
process_wce.c, signal_wce.c, string_wce.c,
time_wce.c)
* wince/configure.bat : like mswin32 style.
* wince/direct.c : remove "static" at _currentdir.
* wince/io.h : change definition.
* wince/stdio.c : _fdopen -> fdopen.
* wince/process.h : add_P_OVERLAY.
* wince/time.h : change definition.
* wince/wincemain.c : add wce_SetCurrentDir.
* wince/wince.c : add wce_SetCurrentDir and wce_fopen.
fix GetModuleFileNameA to return correct "lpFileName".
* wince/wince.h : remove #ifdef.
* wince/sys/utime.h, utime.c : rename _utime to utime.
* wince/sys/stat.c : expand relative directory in stat.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3734 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-04-26 01:25:30 -04:00
|
|
|
(2) If you want to run `((%nmake clean%))' or `((%nmake distclean%))'
|
|
|
|
properly, you must install UNIX compatible `((%rm%))' command on
|
|
|
|
your ((|PATH|)) if you want to clean after compile.
|
|
|
|
|
|
|
|
(3) Please set environment variable (({INCLUDE})), (({LIB})), (({PATH})),
|
|
|
|
(({CE_TOOLS_DIR})), (({EMBEDDED_TOOLS_DIR})) to run required commands
|
|
|
|
properly from the command line.
|
2002-12-02 02:57:17 -05:00
|
|
|
|
* wince/ : files removed.
(config, dll.mak, exe.mak, mswince-ruby17.def,
io.c, process.c, signal.c, string.c, time.c)
* wince/ : files added.
(assert.c, Makefile.sub, mkexports.rb, io_wce.c,
process_wce.c, signal_wce.c, string_wce.c,
time_wce.c)
* wince/configure.bat : like mswin32 style.
* wince/direct.c : remove "static" at _currentdir.
* wince/io.h : change definition.
* wince/stdio.c : _fdopen -> fdopen.
* wince/process.h : add_P_OVERLAY.
* wince/time.h : change definition.
* wince/wincemain.c : add wce_SetCurrentDir.
* wince/wince.c : add wce_SetCurrentDir and wce_fopen.
fix GetModuleFileNameA to return correct "lpFileName".
* wince/wince.h : remove #ifdef.
* wince/sys/utime.h, utime.c : rename _utime to utime.
* wince/sys/stat.c : expand relative directory in stat.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3734 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-04-26 01:25:30 -04:00
|
|
|
Note: building ruby requires following commands.
|
|
|
|
* nmake
|
|
|
|
* clarm or clmips or shcl
|
|
|
|
* lib
|
|
|
|
* dumpbin
|
2002-12-02 02:57:17 -05:00
|
|
|
|
* wince/ : files removed.
(config, dll.mak, exe.mak, mswince-ruby17.def,
io.c, process.c, signal.c, string.c, time.c)
* wince/ : files added.
(assert.c, Makefile.sub, mkexports.rb, io_wce.c,
process_wce.c, signal_wce.c, string_wce.c,
time_wce.c)
* wince/configure.bat : like mswin32 style.
* wince/direct.c : remove "static" at _currentdir.
* wince/io.h : change definition.
* wince/stdio.c : _fdopen -> fdopen.
* wince/process.h : add_P_OVERLAY.
* wince/time.h : change definition.
* wince/wincemain.c : add wce_SetCurrentDir.
* wince/wince.c : add wce_SetCurrentDir and wce_fopen.
fix GetModuleFileNameA to return correct "lpFileName".
* wince/wince.h : remove #ifdef.
* wince/sys/utime.h, utime.c : rename _utime to utime.
* wince/sys/stat.c : expand relative directory in stat.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3734 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-04-26 01:25:30 -04:00
|
|
|
== How to compile and install
|
2002-12-02 02:57:17 -05:00
|
|
|
|
* wince/ : files removed.
(config, dll.mak, exe.mak, mswince-ruby17.def,
io.c, process.c, signal.c, string.c, time.c)
* wince/ : files added.
(assert.c, Makefile.sub, mkexports.rb, io_wce.c,
process_wce.c, signal_wce.c, string_wce.c,
time_wce.c)
* wince/configure.bat : like mswin32 style.
* wince/direct.c : remove "static" at _currentdir.
* wince/io.h : change definition.
* wince/stdio.c : _fdopen -> fdopen.
* wince/process.h : add_P_OVERLAY.
* wince/time.h : change definition.
* wince/wincemain.c : add wce_SetCurrentDir.
* wince/wince.c : add wce_SetCurrentDir and wce_fopen.
fix GetModuleFileNameA to return correct "lpFileName".
* wince/wince.h : remove #ifdef.
* wince/sys/utime.h, utime.c : rename _utime to utime.
* wince/sys/stat.c : expand relative directory in stat.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3734 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-04-26 01:25:30 -04:00
|
|
|
(1) Execute wince\configure.bat on your build directory.
|
2002-12-02 02:57:17 -05:00
|
|
|
You can specify the target platform as an argument.
|
* wince/ : files removed.
(config, dll.mak, exe.mak, mswince-ruby17.def,
io.c, process.c, signal.c, string.c, time.c)
* wince/ : files added.
(assert.c, Makefile.sub, mkexports.rb, io_wce.c,
process_wce.c, signal_wce.c, string_wce.c,
time_wce.c)
* wince/configure.bat : like mswin32 style.
* wince/direct.c : remove "static" at _currentdir.
* wince/io.h : change definition.
* wince/stdio.c : _fdopen -> fdopen.
* wince/process.h : add_P_OVERLAY.
* wince/time.h : change definition.
* wince/wincemain.c : add wce_SetCurrentDir.
* wince/wince.c : add wce_SetCurrentDir and wce_fopen.
fix GetModuleFileNameA to return correct "lpFileName".
* wince/wince.h : remove #ifdef.
* wince/sys/utime.h, utime.c : rename _utime to utime.
* wince/sys/stat.c : expand relative directory in stat.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3734 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-04-26 01:25:30 -04:00
|
|
|
For example, run `((%configure arm-hpc2k-wince%))'
|
|
|
|
|
|
|
|
(2) Change ((|RUBY_INSTALL_NAME|)) and ((|RUBY_SO_NAME|)) in (({Makefile}))
|
|
|
|
if you want to change the name of the executable files.
|
2002-12-02 02:57:17 -05:00
|
|
|
|
* wince/ : files removed.
(config, dll.mak, exe.mak, mswince-ruby17.def,
io.c, process.c, signal.c, string.c, time.c)
* wince/ : files added.
(assert.c, Makefile.sub, mkexports.rb, io_wce.c,
process_wce.c, signal_wce.c, string_wce.c,
time_wce.c)
* wince/configure.bat : like mswin32 style.
* wince/direct.c : remove "static" at _currentdir.
* wince/io.h : change definition.
* wince/stdio.c : _fdopen -> fdopen.
* wince/process.h : add_P_OVERLAY.
* wince/time.h : change definition.
* wince/wincemain.c : add wce_SetCurrentDir.
* wince/wince.c : add wce_SetCurrentDir and wce_fopen.
fix GetModuleFileNameA to return correct "lpFileName".
* wince/wince.h : remove #ifdef.
* wince/sys/utime.h, utime.c : rename _utime to utime.
* wince/sys/stat.c : expand relative directory in stat.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3734 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-04-26 01:25:30 -04:00
|
|
|
(3) Run `((%nmake%))'
|
2002-12-02 02:57:17 -05:00
|
|
|
|
* wince/ : files removed.
(config, dll.mak, exe.mak, mswince-ruby17.def,
io.c, process.c, signal.c, string.c, time.c)
* wince/ : files added.
(assert.c, Makefile.sub, mkexports.rb, io_wce.c,
process_wce.c, signal_wce.c, string_wce.c,
time_wce.c)
* wince/configure.bat : like mswin32 style.
* wince/direct.c : remove "static" at _currentdir.
* wince/io.h : change definition.
* wince/stdio.c : _fdopen -> fdopen.
* wince/process.h : add_P_OVERLAY.
* wince/time.h : change definition.
* wince/wincemain.c : add wce_SetCurrentDir.
* wince/wince.c : add wce_SetCurrentDir and wce_fopen.
fix GetModuleFileNameA to return correct "lpFileName".
* wince/wince.h : remove #ifdef.
* wince/sys/utime.h, utime.c : rename _utime to utime.
* wince/sys/stat.c : expand relative directory in stat.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3734 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-04-26 01:25:30 -04:00
|
|
|
(4) Run `((%nmake DESTDIR=<install_directory> install%))'
|
|
|
|
|
|
|
|
This command will create following directories and copy (not install :-P)
|
|
|
|
files onto them.
|
|
|
|
* <install_directory>\bin
|
|
|
|
* <install_directory>\lib
|
|
|
|
* <install_directory>\lib\ruby
|
|
|
|
* <install_directory>\lib\ruby\<MAJOR>.<MINOR>
|
|
|
|
* <install_directory>\lib\ruby\<MAJOR>.<MINOR>\<PLATFORM>
|
|
|
|
* <install_directory>\lib\ruby\site_ruby
|
|
|
|
* <install_directory>\lib\ruby\site_ruby\<MAJOR>.<MINOR>
|
|
|
|
* <install_directory>\lib\ruby\site_ruby\<MAJOR>.<MINOR>\<PLATFORM>
|
|
|
|
* <install_directory>\man\man1
|
|
|
|
If Ruby's version is `x.y.z', the ((|<MAJOR>|)) is `x' and the ((|<MINOR>|)) is `y'.
|
|
|
|
In case of `mips-hpc2k-wince', The ((|<PLATFORM>|)) is `(({mips-mswince}))'.
|
|
|
|
|
|
|
|
(5) Copy <install_directory> to your WindowsCE machine.
|
2002-12-02 02:57:17 -05:00
|
|
|
|
|
|
|
== 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.
|
|
|
|
|
|
|
|
* ((<URL:http://member.nifty.ne.jp/ueivu/rubyico.html>)) or
|
|
|
|
((<zipped icons|URL:http://member.nifty.ne.jp/ueivu/Ruby_ico.zip>))
|
|
|
|
* ((<URL:http://homepage1.nifty.com/a_nakata/ruby/>)) or
|
|
|
|
((<icon itself|URL:http://homepage1.nifty.com/a_nakata/ruby/RubyIcon.ico>))
|
|
|
|
|
|
|
|
== Build examples
|
|
|
|
|
* wince/ : files removed.
(config, dll.mak, exe.mak, mswince-ruby17.def,
io.c, process.c, signal.c, string.c, time.c)
* wince/ : files added.
(assert.c, Makefile.sub, mkexports.rb, io_wce.c,
process_wce.c, signal_wce.c, string_wce.c,
time_wce.c)
* wince/configure.bat : like mswin32 style.
* wince/direct.c : remove "static" at _currentdir.
* wince/io.h : change definition.
* wince/stdio.c : _fdopen -> fdopen.
* wince/process.h : add_P_OVERLAY.
* wince/time.h : change definition.
* wince/wincemain.c : add wce_SetCurrentDir.
* wince/wince.c : add wce_SetCurrentDir and wce_fopen.
fix GetModuleFileNameA to return correct "lpFileName".
* wince/wince.h : remove #ifdef.
* wince/sys/utime.h, utime.c : rename _utime to utime.
* wince/sys/stat.c : expand relative directory in stat.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3734 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-04-26 01:25:30 -04:00
|
|
|
* Build on the ruby source directory.
|
|
|
|
|
2002-12-02 02:57:17 -05:00
|
|
|
ex.)
|
|
|
|
ruby source directory: C:\ruby
|
* wince/ : files removed.
(config, dll.mak, exe.mak, mswince-ruby17.def,
io.c, process.c, signal.c, string.c, time.c)
* wince/ : files added.
(assert.c, Makefile.sub, mkexports.rb, io_wce.c,
process_wce.c, signal_wce.c, string_wce.c,
time_wce.c)
* wince/configure.bat : like mswin32 style.
* wince/direct.c : remove "static" at _currentdir.
* wince/io.h : change definition.
* wince/stdio.c : _fdopen -> fdopen.
* wince/process.h : add_P_OVERLAY.
* wince/time.h : change definition.
* wince/wincemain.c : add wce_SetCurrentDir.
* wince/wince.c : add wce_SetCurrentDir and wce_fopen.
fix GetModuleFileNameA to return correct "lpFileName".
* wince/wince.h : remove #ifdef.
* wince/sys/utime.h, utime.c : rename _utime to utime.
* wince/sys/stat.c : expand relative directory in stat.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3734 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-04-26 01:25:30 -04:00
|
|
|
build directory: C:\ruby
|
|
|
|
install directory: C:\usr\local
|
|
|
|
|
|
|
|
C:
|
|
|
|
cd \ruby
|
|
|
|
win32\configure
|
|
|
|
nmake
|
|
|
|
nmake DESTDIR=/usr/local install
|
2002-12-02 02:57:17 -05:00
|
|
|
|
* wince/ : files removed.
(config, dll.mak, exe.mak, mswince-ruby17.def,
io.c, process.c, signal.c, string.c, time.c)
* wince/ : files added.
(assert.c, Makefile.sub, mkexports.rb, io_wce.c,
process_wce.c, signal_wce.c, string_wce.c,
time_wce.c)
* wince/configure.bat : like mswin32 style.
* wince/direct.c : remove "static" at _currentdir.
* wince/io.h : change definition.
* wince/stdio.c : _fdopen -> fdopen.
* wince/process.h : add_P_OVERLAY.
* wince/time.h : change definition.
* wince/wincemain.c : add wce_SetCurrentDir.
* wince/wince.c : add wce_SetCurrentDir and wce_fopen.
fix GetModuleFileNameA to return correct "lpFileName".
* wince/wince.h : remove #ifdef.
* wince/sys/utime.h, utime.c : rename _utime to utime.
* wince/sys/stat.c : expand relative directory in stat.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3734 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-04-26 01:25:30 -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
|
|
|
|
..\win32\configure
|
|
|
|
nmake
|
|
|
|
nmake DESTDIR=/usr/local 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
|
|
|
|
nmake
|
|
|
|
nmake DESTDIR=C:/usr/local install
|
|
|
|
|
|
|
|
== Bugs
|
|
|
|
|
|
|
|
You can ((*NOT*)) use a path name contains any white space characters as
|
|
|
|
the ruby source directory, this restriction comes from the behavior of
|
|
|
|
(({!INCLUDE})) directives of (({NMAKE})).
|
|
|
|
((- you may call it a bug. -))
|
2002-12-02 02:57:17 -05:00
|
|
|
|
|
|
|
=end
|