[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

How to compile Ruby on Windows

AlphaBeta

3/15/2006 2:26:00 PM

Does anybody have a kind of "step by step" instructions on how to
compile Ruby on Windows? (I don't need the one click installer). I have
VC+ 2003 toolkit and .net 1.1 sdk but I'm not really sure how to get the
exe release out of the source. I've read the other threads but none of
them really explain how to complile it.

Thank you in advance. AlphaBeta

--
Posted via http://www.ruby-....


18 Answers

Glenn Smith

3/15/2006 2:38:00 PM

0

I've been down this path but had a few problems and gave up.
Basically I could do it with Visual Studio 6 but failed with vc2003. My
main problem after this though was that while I got it to compile under VS6,
I then couldn't use RUDL (separate package) because it complained about
"require__" when I tried to start my app.

It does kind of back up one of my issues which I've raised before, that
Windows (which so many people use) doesn't have an "official" release for
Windows, and we are dependant on Curt's (very fine) work to provide the
one-click-installer. Which quite understandably he does in his spare time.

A proper, official, supported "how-to" with the correct build-environment
configs, versions of tools (MAKE, LIB etc.) and so on would be great. That
way we could at least all be "singing from the same sheet".

Glenn
(wearing a flameproof suit!)



On 15/03/06, AlphaBeta <idontwantspam@idontlikespam.com> wrote:
>
> Does anybody have a kind of "step by step" instructions on how to
> compile Ruby on Windows? (I don't need the one click installer). I have
> VC+ 2003 toolkit and .net 1.1 sdk but I'm not really sure how to get the
> .exe release out of the source. I've read the other threads but none of
> them really explain how to complile it.
>
> Thank you in advance. AlphaBeta
>
> --
> Posted via http://www.ruby-....
>
>


--

All the best
Glenn
Aylesbury, UK

Daniel Völkerts

3/15/2006 3:45:00 PM

0

Glenn Smith schrieb:

> A proper, official, supported "how-to" with the correct build-environment
> configs, versions of tools (MAKE, LIB etc.) and so on would be great. That
> way we could at least all be "singing from the same sheet".

+1 But I suggest a ruby-dev list in english, as my japanese is very poor
;) The summaries are fine but they don't provide any further help. If I
had an english discussion list, I properbly able to collect the
information I need. So the chance that someone writes a tutorial or
HOWTO will increase.

g,
--
Daniel Völkerts
Protected by Anti Pesto.


Wilson Bilkovich

3/15/2006 5:05:00 PM

0

On 3/15/06, Daniel Völkerts <daniel@voelkerts.de> wrote:
> Glenn Smith schrieb:
>
> > A proper, official, supported "how-to" with the correct build-environment
> > configs, versions of tools (MAKE, LIB etc.) and so on would be great. That
> > way we could at least all be "singing from the same sheet".
>
> +1 But I suggest a ruby-dev list in english, as my japanese is very poor
> ;) The summaries are fine but they don't provide any further help. If I
> had an english discussion list, I properbly able to collect the
> information I need. So the chance that someone writes a tutorial or
> HOWTO will increase.
>

Download and install the following:
1. Visual C++ Toolkit 2003 (free)
http://msdn.microsoft.com/visualc/vcto...

2. MS Platform SDK 2003 (free. Uncheck everything but the "Core"
entry. You want everything under Core, even if you don't have a 64bit
machine. Some of the important tools are only part of the 64bit
section.)
http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&disp...

3. MS .NET Framework 1.1 (a prerequisite for #4)
http://www.microsoft.com/downloads/details.aspx?familyid=262d25e3-f589-4842-8157-034d1e7cf3a3&disp...

4. MS .NET SDK 1.1 (not 2.0.)
http://www.microsoft.com/downloads/details.aspx?familyid=9b3a2ca6-3647-4070-9f41-a333c6b9181d&disp...

Once you've downloaded and installed these, you'll need to configure
your environment variables. Here's what my vcvars32.bat file looks
like: (Sorry about the line breaks. You'll need to remove those.)

@echo off
Set PATH=C:\Program Files\Microsoft Visual C++ Toolkit
2003\bin;C:\Program Files\Microsoft Platform SDK\Bin;C:\Program
Files\Microsoft Platform SDK\Bin\win64\x86\AMD64;%PATH%
Set INCLUDE=C:\Program Files\Microsoft Visual C++ Toolkit
2003\include;C:\Program Files\Microsoft Platform
SDK\Include;C:\Program Files\Microsoft Visual Studio .NET
2003\Vc7\include;%INCLUDE%
Set LIB=C:\Program Files\Microsoft Visual C++ Toolkit
2003\lib;C:\Program Files\Microsoft Platform SDK\Lib;C:\Program
Files\Microsoft Visual Studio .NET 2003\Vc7\lib;%LIB%

Those should be the default installation folders for the Microsoft
tools, but if you put them elsewhere, simply modify the batch file to
suit. Note that you need the AMD64 tools in your path even if you
have a 32bit machine. For some crazy reason, that's where Microsoft
put some of the important tools.

Download the latest Ruby release from:
http://www.ruby-lang.org/en/200...
You can either get the 1.8.4 release, or the 'stable snapshot', which
includes fixes since the last release. The first time you try to get
this working, I recommend the regular release.

Uncompress the download into a folder that doesn't have any spaces in the name.
For the purposes of this howto, let's say that's c:\ruby-srcIf I explained myself clearly, you will now have a folder called
c:\ruby-src\ruby-1.8.4\, with various things under it, including
c:\ruby-src\ruby-1.8.4\win32If you download a different release than 1.8.4, that folder name might
be different.

To avoid cluttering up this directory with temporary files, we'll do
the actual build elsewhere.
Make a folder called c:\ruby-src\build
Open a command prompt by clicking a shortcut, or typing "cmd" into the
Start -> Run prompt.
Run the "vcvars32.bat" file you made earlier, which will add the
Microsoft tools to your environment. This means, by the way, that it
should be somewhere in your default PATH.

==== SCARY HACK SECTION ====
The Microsoft tools previously included a pair of utilities, "lib" and
"dumpbin", which acted as front-ends for the "link.exe" command.
Luckily, the 64bit directory in the Platform SDK includes "lib.exe",
but we still need to deal with dumpbin.exe. Sadly, none of the free
downloads seem to include it.
Ruby 1.9/2.0 shouldn't have this problem, and you can skip this step
if you have the full Visual Studio 2003.

Go to c:\ruby-src\ruby-1.8.4\win32\, and edit the following file:
mkexports.rb
On line 6, change the command inside the double-quotes of IO.foreach.
change: "|dumpbin -symbols "
to: "|link /dump /symbols "
Don't forget the space at the end.
==== END SCARY HACK ====

Change your current directory to c:\ruby-src\buildRun the following commands, in order:
c:\ruby-src\ruby-1.8.4\win32\configure.bat (yes, you need to refer to
it by its full path.)
nmake
nmake test
nmake DESTDIR=c:/ruby install
The final command allows you to specify where you actually want Ruby
to be installed.
Note the forward slash instead of backslash.
There are more examples in the README.win32 file, found in the
c:\ruby-src\ruby-1.8.4\win32\ folder.

So simple, even a child could operate it!


Glenn Smith

3/15/2006 7:17:00 PM

0

Blimey!

And on Linux? ./configure; make; sudo make install

:o)



I accept that you know what you are talking about Wilson, but surely there
is a much easier way? And bear in mind that what we are wanting to achieve
here is a compile-on-windows FAQ that is standard so that all of the various
ruby libraries will also work.

Is there no single-downloadable compiler that will compile, link and install
(ie. provider compiler, linker and make tool) that will provide good
executables with reasonable performance and minimal hassle?

Glenn






On 15/03/06, Wilson Bilkovich <wilsonb@gmail.com> wrote:
>
> On 3/15/06, Daniel Völkerts <daniel@voelkerts.de> wrote:
> > Glenn Smith schrieb:
> >
> > > A proper, official, supported "how-to" with the correct
> build-environment
> > > configs, versions of tools (MAKE, LIB etc.) and so on would be
> great. That
> > > way we could at least all be "singing from the same sheet".
> >
> > +1 But I suggest a ruby-dev list in english, as my japanese is very poor
> > ;) The summaries are fine but they don't provide any further help. If I
> > had an english discussion list, I properbly able to collect the
> > information I need. So the chance that someone writes a tutorial or
> > HOWTO will increase.
> >
>
> Download and install the following:
> 1. Visual C++ Toolkit 2003 (free)
> http://msdn.microsoft.com/visualc/vcto...
>
> 2. MS Platform SDK 2003 (free. Uncheck everything but the "Core"
> entry. You want everything under Core, even if you don't have a 64bit
> machine. Some of the important tools are only part of the 64bit
> section.)
>
> http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&disp...
>
> 3. MS .NET Framework 1.1 (a prerequisite for #4)
>
> http://www.microsoft.com/downloads/details.aspx?familyid=262d25e3-f589-4842-8157-034d1e7cf3a3&disp...
>
> 4. MS .NET SDK 1.1 (not 2.0.)
>
> http://www.microsoft.com/downloads/details.aspx?familyid=9b3a2ca6-3647-4070-9f41-a333c6b9181d&disp...
>
> Once you've downloaded and installed these, you'll need to configure
> your environment variables. Here's what my vcvars32.bat file looks
> like: (Sorry about the line breaks. You'll need to remove those.)
>
> @echo off
> Set PATH=C:\Program Files\Microsoft Visual C++ Toolkit
> 2003\bin;C:\Program Files\Microsoft Platform SDK\Bin;C:\Program
> Files\Microsoft Platform SDK\Bin\win64\x86\AMD64;%PATH%
> Set INCLUDE=C:\Program Files\Microsoft Visual C++ Toolkit
> 2003\include;C:\Program Files\Microsoft Platform
> SDK\Include;C:\Program Files\Microsoft Visual Studio .NET
> 2003\Vc7\include;%INCLUDE%
> Set LIB=C:\Program Files\Microsoft Visual C++ Toolkit
> 2003\lib;C:\Program Files\Microsoft Platform SDK\Lib;C:\Program
> Files\Microsoft Visual Studio .NET 2003\Vc7\lib;%LIB%
>
> Those should be the default installation folders for the Microsoft
> tools, but if you put them elsewhere, simply modify the batch file to
> suit. Note that you need the AMD64 tools in your path even if you
> have a 32bit machine. For some crazy reason, that's where Microsoft
> put some of the important tools.
>
> Download the latest Ruby release from:
> http://www.ruby-lang.org/en/200...
> You can either get the 1.8.4 release, or the 'stable snapshot', which
> includes fixes since the last release. The first time you try to get
> this working, I recommend the regular release.
>
> Uncompress the download into a folder that doesn't have any spaces in the
> name.
> For the purposes of this howto, let's say that's c:\ruby-src> If I explained myself clearly, you will now have a folder called
> c:\ruby-src\ruby-1.8.4\, with various things under it, including
> c:\ruby-src\ruby-1.8.4\win32> If you download a different release than 1.8.4, that folder name might
> be different.
>
> To avoid cluttering up this directory with temporary files, we'll do
> the actual build elsewhere.
> Make a folder called c:\ruby-src\build>
> Open a command prompt by clicking a shortcut, or typing "cmd" into the
> Start -> Run prompt.
> Run the "vcvars32.bat" file you made earlier, which will add the
> Microsoft tools to your environment. This means, by the way, that it
> should be somewhere in your default PATH.
>
> ==== SCARY HACK SECTION ====
> The Microsoft tools previously included a pair of utilities, "lib" and
> "dumpbin", which acted as front-ends for the "link.exe" command.
> Luckily, the 64bit directory in the Platform SDK includes "lib.exe",
> but we still need to deal with dumpbin.exe. Sadly, none of the free
> downloads seem to include it.
> Ruby 1.9/2.0 shouldn't have this problem, and you can skip this step
> if you have the full Visual Studio 2003.
>
> Go to c:\ruby-src\ruby-1.8.4\win32\, and edit the following file:
> mkexports.rb
> On line 6, change the command inside the double-quotes of IO.foreach.
> change: "|dumpbin -symbols "
> to: "|link /dump /symbols "
> Don't forget the space at the end.
> ==== END SCARY HACK ====
>
> Change your current directory to c:\ruby-src\build> Run the following commands, in order:
> c:\ruby-src\ruby-1.8.4\win32\configure.bat (yes, you need to refer to
> it by its full path.)
> nmake
> nmake test
> nmake DESTDIR=c:/ruby install
> The final command allows you to specify where you actually want Ruby
> to be installed.
> Note the forward slash instead of backslash.
> There are more examples in the README.win32 file, found in the
> c:\ruby-src\ruby-1.8.4\win32\ folder.
>
> So simple, even a child could operate it!
>
>


--

All the best
Glenn
Aylesbury, UK

Austin Ziegler

3/15/2006 7:59:00 PM

0

On 3/15/06, Glenn Smith <glenn.ruby@gmail.com> wrote:> Is there no single-downloadable compiler that will compile, link and install> (ie. provider compiler, linker and make tool) that will provide good> executables with reasonable performance and minimal hassle?No. Of the choices, MSYS/MINGW is going to work most like Unix. MSVC6is no longer available for legal download. But...VS.NET (2002 & 2003) & VS (2005) use a later MSVC runtime DLL (7, 7.1,and 8.0) that are different than the MSVC6 runtime DLL. The MSVC8 DLLis significantly different even than VS.NET (7, 7.1).I am also working, in fits and starts, on compile instructions for cl14 (VS 2005) with the currently-free Express version. This will besomething that ultimately can go through the entire Ruby build processand build something like the one-click installer for you.-austin--Austin Ziegler * halostatue@gmail.com * Alternate: austin@halostatue.ca

greg.kujawa

3/15/2006 8:17:00 PM

0

Austin Ziegler wrote:

> No. Of the choices, MSYS/MINGW is going to work most like Unix. MSVC6
> is no longer available for legal download. But...
>
> VS.NET (2002 & 2003) & VS (2005) use a later MSVC runtime DLL (7, 7.1,
> and 8.0) that are different than the MSVC6 runtime DLL. The MSVC8 DLL
> is significantly different even than VS.NET (7, 7.1).
>
>
> I am also working, in fits and starts, on compile instructions for cl
> 14 (VS 2005) with the currently-free Express version. This will be
> something that ultimately can go through the entire Ruby build process
> and build something like the one-click installer for you.
>
>
> -austin

This sounds pretty complicated as a DIY solution or a project goal. I
certainly applaud your efforts in accomplishing this. Seeing that
Microsoft's runtime distros are a moving target it doesn't appear to be
a no-brainer for sure :-)

While exploring other programming languages I downloaded EiffelStudio
for Windows last month. This took awhile to download and certainly took
awhile to build, but the process was automated and required little
interaction on the enduser's part. If I am not mistaken the
installation routine actually pulled in its own Borland C Compiler
directory tree to do the build. Since BCC was packaged within the
installation routine all of the compiler/linker environmental
conditions were inherently set. Not that I particularly found Eiffel to
be an enjoyable language, but at least the installation/build on
Windows was a no-brainer.

Austin Ziegler

3/15/2006 8:27:00 PM

0

On 3/15/06, gregarican <greg.kujawa@gmail.com> wrote:> Austin Ziegler wrote:>> > No. Of the choices, MSYS/MINGW is going to work most like Unix. MSVC6> > is no longer available for legal download. But...> >> > VS.NET (2002 & 2003) & VS (2005) use a later MSVC runtime DLL (7, 7.1,> > and 8.0) that are different than the MSVC6 runtime DLL. The MSVC8 DLL> > is significantly different even than VS.NET (7, 7.1).> >> >> > I am also working, in fits and starts, on compile instructions for cl> > 14 (VS 2005) with the currently-free Express version. This will be> > something that ultimately can go through the entire Ruby build process> > and build something like the one-click installer for you.> >> >> > -austin>> This sounds pretty complicated as a DIY solution or a project goal. I> certainly applaud your efforts in accomplishing this. Seeing that> Microsoft's runtime distros are a moving target it doesn't appear to be> a no-brainer for sure :-)Did I say "instructions?"This will also include batch files to do certain things.Most things, in fact. Since the VS 2005 builds require patches onalmost everything.-austin--Austin Ziegler * halostatue@gmail.com * Alternate: austin@halostatue.ca

Wilson Bilkovich

3/15/2006 8:51:00 PM

0

I know you were kidding, but I felt like sending an e-mail, so..
A more fair comparison would be a set of Ruby build instructions for a
Linux distro that didn't ship with a package manager or a copy of GCC.
Highly nontrivial.

That being said, Windows is a crazy pain in the rear. If someone with
more build experience (like Austin) can shave some steps out of my
writeup, I'd be happy to learn something new. It would be nice if the
platform SDK license didn't prevent redistribution. Then someone
could make a self-contained build process for Ruby on win32.
Luckily, the mswin32 distribution of Ruby is kept up to date, and most
people never have a real need to build their own.

On 3/15/06, Glenn Smith <glenn.ruby@gmail.com> wrote:
> Blimey!
>
> And on Linux? ./configure; make; sudo make install
>
> :o)
>
>
>
> I accept that you know what you are talking about Wilson, but surely there
> is a much easier way? And bear in mind that what we are wanting to achieve
> here is a compile-on-windows FAQ that is standard so that all of the various
> ruby libraries will also work.
>
> Is there no single-downloadable compiler that will compile, link and install
> (ie. provider compiler, linker and make tool) that will provide good
> executables with reasonable performance and minimal hassle?
>
>
> On 15/03/06, Wilson Bilkovich <wilsonb@gmail.com> wrote:
> >
> > On 3/15/06, Daniel Völkerts <daniel@voelkerts.de> wrote:
> > > Glenn Smith schrieb:
> > >
> > > > A proper, official, supported "how-to" with the correct
> > build-environment
> > > > configs, versions of tools (MAKE, LIB etc.) and so on would be
> > great. That
> > > > way we could at least all be "singing from the same sheet".
> > >
> > > +1 But I suggest a ruby-dev list in english, as my japanese is very poor
> > > ;) The summaries are fine but they don't provide any further help. If I
> > > had an english discussion list, I properbly able to collect the
> > > information I need. So the chance that someone writes a tutorial or
> > > HOWTO will increase.
> > >
> >
> > Download and install the following:
> > 1. Visual C++ Toolkit 2003 (free)
> > http://msdn.microsoft.com/visualc/vcto...
> >
> > 2. MS Platform SDK 2003 (free. Uncheck everything but the "Core"
> > entry. You want everything under Core, even if you don't have a 64bit
> > machine. Some of the important tools are only part of the 64bit
> > section.)
> >
> > http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&disp...
> >
> > 3. MS .NET Framework 1.1 (a prerequisite for #4)
> >
> > http://www.microsoft.com/downloads/details.aspx?familyid=262d25e3-f589-4842-8157-034d1e7cf3a3&disp...
> >
> > 4. MS .NET SDK 1.1 (not 2.0.)
> >
> > http://www.microsoft.com/downloads/details.aspx?familyid=9b3a2ca6-3647-4070-9f41-a333c6b9181d&disp...
> >
> > Once you've downloaded and installed these, you'll need to configure
> > your environment variables. Here's what my vcvars32.bat file looks
> > like: (Sorry about the line breaks. You'll need to remove those.)
> >
> > @echo off
> > Set PATH=C:\Program Files\Microsoft Visual C++ Toolkit
> > 2003\bin;C:\Program Files\Microsoft Platform SDK\Bin;C:\Program
> > Files\Microsoft Platform SDK\Bin\win64\x86\AMD64;%PATH%
> > Set INCLUDE=C:\Program Files\Microsoft Visual C++ Toolkit
> > 2003\include;C:\Program Files\Microsoft Platform
> > SDK\Include;C:\Program Files\Microsoft Visual Studio .NET
> > 2003\Vc7\include;%INCLUDE%
> > Set LIB=C:\Program Files\Microsoft Visual C++ Toolkit
> > 2003\lib;C:\Program Files\Microsoft Platform SDK\Lib;C:\Program
> > Files\Microsoft Visual Studio .NET 2003\Vc7\lib;%LIB%
> >
> > Those should be the default installation folders for the Microsoft
> > tools, but if you put them elsewhere, simply modify the batch file to
> > suit. Note that you need the AMD64 tools in your path even if you
> > have a 32bit machine. For some crazy reason, that's where Microsoft
> > put some of the important tools.
> >
> > Download the latest Ruby release from:
> > http://www.ruby-lang.org/en/200...
> > You can either get the 1.8.4 release, or the 'stable snapshot', which
> > includes fixes since the last release. The first time you try to get
> > this working, I recommend the regular release.
> >
> > Uncompress the download into a folder that doesn't have any spaces in the
> > name.
> > For the purposes of this howto, let's say that's c:\ruby-src> > If I explained myself clearly, you will now have a folder called
> > c:\ruby-src\ruby-1.8.4\, with various things under it, including
> > c:\ruby-src\ruby-1.8.4\win32> > If you download a different release than 1.8.4, that folder name might
> > be different.
> >
> > To avoid cluttering up this directory with temporary files, we'll do
> > the actual build elsewhere.
> > Make a folder called c:\ruby-src\build> >
> > Open a command prompt by clicking a shortcut, or typing "cmd" into the
> > Start -> Run prompt.
> > Run the "vcvars32.bat" file you made earlier, which will add the
> > Microsoft tools to your environment. This means, by the way, that it
> > should be somewhere in your default PATH.
> >
> > ==== SCARY HACK SECTION ====
> > The Microsoft tools previously included a pair of utilities, "lib" and
> > "dumpbin", which acted as front-ends for the "link.exe" command.
> > Luckily, the 64bit directory in the Platform SDK includes "lib.exe",
> > but we still need to deal with dumpbin.exe. Sadly, none of the free
> > downloads seem to include it.
> > Ruby 1.9/2.0 shouldn't have this problem, and you can skip this step
> > if you have the full Visual Studio 2003.
> >
> > Go to c:\ruby-src\ruby-1.8.4\win32\, and edit the following file:
> > mkexports.rb
> > On line 6, change the command inside the double-quotes of IO.foreach.
> > change: "|dumpbin -symbols "
> > to: "|link /dump /symbols "
> > Don't forget the space at the end.
> > ==== END SCARY HACK ====
> >
> > Change your current directory to c:\ruby-src\build> > Run the following commands, in order:
> > c:\ruby-src\ruby-1.8.4\win32\configure.bat (yes, you need to refer to
> > it by its full path.)
> > nmake
> > nmake test
> > nmake DESTDIR=c:/ruby install
> > The final command allows you to specify where you actually want Ruby
> > to be installed.
> > Note the forward slash instead of backslash.
> > There are more examples in the README.win32 file, found in the
> > c:\ruby-src\ruby-1.8.4\win32\ folder.
> >
> > So simple, even a child could operate it!
> >
> >
>
>
> --
>
> All the best
> Glenn
> Aylesbury, UK
>
>


Glenn Smith

3/15/2006 9:27:00 PM

0

Yes I should point out that no offence was meant to you with my previous
email. :o)







On 15/03/06, Wilson Bilkovich <wilsonb@gmail.com> wrote:
>
> I know you were kidding, but I felt like sending an e-mail, so..
> A more fair comparison would be a set of Ruby build instructions for a
> Linux distro that didn't ship with a package manager or a copy of GCC.
> Highly nontrivial.
>

Wilson Bilkovich

3/15/2006 9:35:00 PM

0

Yeah, I knew that.. Didn't mean for my response to come out sounding defensive.
Windows is a discipline, like hair shirts or nettle brushes for monks.
It focuses the mind.

On 3/15/06, Glenn Smith <glenn.ruby@gmail.com> wrote:
> Yes I should point out that no offence was meant to you with my previous
> email. :o)
>
>
>
>
>
>
>
> On 15/03/06, Wilson Bilkovich <wilsonb@gmail.com> wrote:
> >
> > I know you were kidding, but I felt like sending an e-mail, so..
> > A more fair comparison would be a set of Ruby build instructions for a
> > Linux distro that didn't ship with a package manager or a copy of GCC.
> > Highly nontrivial.
> >
>
>