Bug #9824
closedmkmf.rb top_srcdir not printed in Makefile of ext/openssl
Description
Hi,
First of all, apologies in advance for the lack of technical knowledge about Ruby, I'm pretty new to it, but I think I have detected a bug in the build process of ext/openssl.
As a newbie, I was trying to build ruby 2.1.2-p95 on my Windows 64-bits machine by compiling everything natively. Compiling ruby itself for Windows x64 went fine, compiling the ext/zlib went fine but... when it came to ext/openssl:
In the windows command prompt I ran:
Everything run fine and the Makefile was created. Then I run:
nmake (using the x64 compiler)
...and got the following error:
After going crazy looking for answers on the internet to no avail I decided to have a look at the Makefile generated. On the last line, I saw:
So I said to myself, "OK, so I just need to specify the top_srcdir. I looked for it elsewhere in Makefile and it just wasn't specified anywhere! I realised that all the paths where specified at the top at:
So I just added:
top_srcdir: D:\ruby-2.1.2 (the uncompressed ruby 2.1.2-p95 version folder, where thread_native.h and other *.h files are located).
Then I run again in ext/openssl:
nmake
...followed by...
nmake install
...and everything run fine and works!
As I'm pretty new to Ruby I have no idea of the inner workings of Ruby but I tried to track down why the top_srcdir: line was missing in the configuration in Makefile and I managed to track it down to mkmf.rb file in the ruby-2.1.2 folder. Specifically in line 1838 of mkmf.rb:
I presume top_srcdir did not get printed out to the Makefile because $extmk (which I cannot figure out what it is) returned false (notice the "if $extmk" conditional).
As I said, I am not at all familiar with the inner workings of Ruby so I was hoping one of you could help fix this so that other people in my same situation don't go crazy trying to fix it?
Thanks a lot for taking the time to read this and for your help in advance!