Skip to main content

build problems

5 replies [Last post]
sackley
Offline
Joined: 2003-07-06
Points: 0

I am attempting to build the latest snapshot on Windows XP and Cygwin. When I try to run the build I get this error:

make: uname: Command not found

The uname command works from the windows command line and it also works from the cygwin shell. I can't figure what could be the problem. Any ideas?

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
sackley
Offline
Joined: 2003-07-06
Points: 0

Okay, I finally got everything to build. Here are all of the problems I encountered and how I fixed them.

1. I had to run make in the cygwin shell NOT the windows command line. It would not work in the windows command line. I don't know if I set my PATH up incorrectly or what. See previous posts in this thread for more on that.

2. The unicows.lib file that comes with Visual Studio .NET 2003 is not new enough. Instead of downloading the entire platform sdk, I just changed line 105 of in /j2se/make/common/Sanity.gmk

old line:
REQUIRED_UNICOWS_LIB_SIZE = 2325412

new line:
REQUIRED_UNICOWS_LIB_SIZE = 2320414

3. I had to remove spaces and parentheses from the path of all required resources. I don't know if this is because I was building using the cygwin shell. I downloaded and installed directx 9, and jdk 1.5. Both of these are installed somewhere under C:\Program Files\ and directx 9 has parentheses in the in the folder name. So I had to copy these to a path that had no spaces or parentheses. I also has to copy the unicows.lib file because it was in the vs.net 2003 installation also under C:\Program Files

4. At some point make calls nmake which is microsoft's version of make. This would attempt to call "link.exe". Well there is a gnu's link.exe that comes with cygwin and there is microsoft's link.exe. gnu link.exe was taking precedence over microsoft's link.exe. So I renamed the link.exe in cygwin's bin dir to nlink.exe and everything worked. Again this could be because I was running the build from the cygwin shell.

After I dealt with all of those problems the build worked perfectly.

vijayj
Offline
Joined: 2004-10-26
Points: 0

> Okay, I finally got everything to build. Here are all of the problems I encountered and how I fixed them.

Thanks a lot for your posting.

> 1. I had to run make in the cygwin shell NOT the windows command line. It would not work in the windows command line. I don't know if I set my PATH up incorrectly or what. See previous posts in this thread for more on that.

As I said, in my previous posting doing build on cygwin shell is not a requirement. If you are doing build on dosshell then you need to make sure that you have cygwin in your PATH env.

> 2. The unicows.lib file that comes with Visual Studio .NET 2003 is not new enough. Instead of downloading the entire platform sdk, I just changed line 105 of in /j2se/make/common/Sanity.gmk

> old line:
> REQUIRED_UNICOWS_LIB_SIZE = 2325412

> new line:
> REQUIRED_UNICOWS_LIB_SIZE = 2320414

We are working on moving to the unicows.lib file that comes with Visual Studio .NET 2003. Kelly or myself will update you all when we have more information.

> 3. I had to remove spaces and parentheses from the path of all required resources. I don't know if this is because I was building using the cygwin shell. I downloaded and installed directx 9, and jdk 1.5. Both of these are installed somewhere under C:\Program Files\ and directx 9 has parentheses in the in the folder name. So I had to copy these to a path that had no spaces or parentheses. I also has to copy the unicows.lib file because it was in the vs.net 2003 installation also under C:\Program Files

This is also one of the known problems in the build. We are planning to convert all the values in windows mingled PATH using cygpath command.

> 4. At some point make calls nmake which is microsoft's version of make. This would attempt to call "link.exe". Well there is a gnu's link.exe that comes with cygwin and there is microsoft's link.exe. gnu link.exe was taking precedence over microsoft's link.exe. So I renamed the link.exe in cygwin's bin dir to nlink.exe and everything worked. Again this could be because I was running the build from the cygwin shell.

If you have cygwin ahead of VC++ in your PATH then you will run into this issue. I am sure, sanity check must have reported using the wrong linker command. If you haven't see the error sanity check message then please let me know.

To resolve this, you need to make sure that VC++ values should be present prior to CYGWIN in the PATH env.

Once again, thanks a lot for posting your issues and solutions.

-Vijayan.

vijayj
Offline
Joined: 2004-10-26
Points: 0

> make: uname: Command not found

Do you have cygwin in your PATH?. Or You may also want to check to see you have really installed make during your cygwin installation. Cygwin by default won't install make package. Check out our windows build instruction for more information.

http://www.java.net/download/jdk6/build-windows-i586.html#unix

-Vijayan.

sackley
Offline
Joined: 2003-07-06
Points: 0

found the problem

The problem was that I was running make from the windows command line and not the cygwin shell.

It wasn't obvious from the build instructions that I should run make from the cygwin shell.

Thanks for your help :-)

vijayj
Offline
Joined: 2004-10-26
Points: 0

Doing build on cygwin shell is not a requirement. I have always performed my build on both dos and cygwin shell. If you have installed cygwin into C:/cygwin then you need to add this into your PATH. So this way, you can the build from both cygwin and dos shell environment.

Thanks,
-Vijayan.