-
Enhancement
-
Resolution: Fixed
-
P3
-
7
-
b123
-
generic
-
generic
Currently, any GNU make version 3.78.1 or newer can be used to build the jdk, this version of GNU make is quite old. Requiring a newer version (3.81) will allow for the use of some Makefile features not available in 3.78.1 or somewhat broken in the series of 3.78.1 -> 3.80 releases (namely $(eval) and $(wildcard)).
This change is to adjust the Makefiles to do a sanity check that GNU make 3.81 or newer is being used to do the build (3.81 is the newest right now).
Making this single change should catch any potential problems people might have building with 3.81, although none is expected on Solaris and Linux, Windows systems could have issues. The 3.81 version should be freely available, and is easily buildable if binaries cannot be found.
The one known issue using GNU make 3.81 is with Windows and the MKS Unix ToolKit. The jdk7 and openjdk projects recommend the use of CYGWIN Unix tools, however MKS tools can be used (undocumented in the public OpenJDK README-builds.html file). The issue relates to the use of quotes on command lines, things like -Dx="\"abc\"" may not work properly, but -DX='"abc"' should work fine. The jdk7 Makefiles should have all the n ecessary -Dx="\"abc\""-> -DX='"abc"' changes.
The Windows CYGWIN version has always been an issue with regards to understanding the C:/ or C:\ style paths, so it is recommended that the GNU make 3.81 from http://www.cmake.org/files/cygwin/make.exe. GNU make 3.81 needs to be built a special way to allow for these C: paths, otherwise you get strange build target or dependency errors (dual use of the : character in Makefile target lines).
This change is to adjust the Makefiles to do a sanity check that GNU make 3.81 or newer is being used to do the build (3.81 is the newest right now).
Making this single change should catch any potential problems people might have building with 3.81, although none is expected on Solaris and Linux, Windows systems could have issues. The 3.81 version should be freely available, and is easily buildable if binaries cannot be found.
The one known issue using GNU make 3.81 is with Windows and the MKS Unix ToolKit. The jdk7 and openjdk projects recommend the use of CYGWIN Unix tools, however MKS tools can be used (undocumented in the public OpenJDK README-builds.html file). The issue relates to the use of quotes on command lines, things like -Dx="\"abc\"" may not work properly, but -DX='"abc"' should work fine. The jdk7 Makefiles should have all the n ecessary -Dx="\"abc\""-> -DX='"abc"' changes.
The Windows CYGWIN version has always been an issue with regards to understanding the C:/ or C:\ style paths, so it is recommended that the GNU make 3.81 from http://www.cmake.org/files/cygwin/make.exe. GNU make 3.81 needs to be built a special way to allow for these C: paths, otherwise you get strange build target or dependency errors (dual use of the : character in Makefile target lines).
- relates to
-
JDK-6638060 Build failed with GNU make 3.81 (part of latest Solaris 'gmake')
-
- Resolved
-
-
JDK-6888709 Change use of -DX=\""Y\"" to -DX='"Y"', consistently for all platforms
-
- Resolved
-
-
JDK-6967312 Change use of escaped quotes in Makefiles, -Dx=\"abc\" to -Dx='"abc"'
-
- Resolved
-
-
JDK-6462815 cygwin's gnumake 3.81-1 does not support MS-DOS path names
-
- Closed
-
-
JDK-6892741 Improve make build performance
-
- Closed
-
-
JDK-6904523 Add sanity check for cygwin gnu make 3.81 C:/ path issue
-
- Closed
-
(1 relates to)