I am trying to build openjdk7 b100 under Windows Server 2008 SP2.

I am using cygwin 1.7+

I am having trouble with openjdk/langtools/make

The Makefile there sets up some java support for Ant using the ALT_BOOTDIR, which therefore must be a valid cygwin path, such as /cygdrive/c/DEVELO~1/JDK/bootJDK/JDK16~1.0_1

However if set to a cygwin style path, the ant build.xml in openjdk/langtools/make fails because it uses the available task to test the correctness of the boot.java.home property ( set from the same Makefile which had to have the cygwin path ). As you doubtless know ( http://ant.apache.org/manual/platform.html ) when ant is executed by cygwin it still expects Windows path names. I could doubtless hack the build.properties or Makefile to set the boot.java.home to a windows path, but I am concerned that I am doing something else wrong which I will have to fix again and again.

What format should ALT_BOOTDIR have when running cygwin? Windows or cygwin? Is there some property file I can edit to satisfy all the build?



Here is the output of an edited build.xml when I set ALT_BOOTDIR to a cygwin path ( see below for the redefined macro, check...


<target name="-def-check">

<macrodef name="check">

<attribute name="name"/>

<attribute name="property"/>

<attribute name="marker" default=""/>

<sequential>

<echo message="-def-check @@{name} is '@{name}'" />

<echo message="-def-check @@{property} is '@{property}'" />

<echo message="-def-check @@{marker} is '@{marker}'" />

<echo message="-def-check $${@@{property}} is '$...@{property}}'" />

<echo message="-def-check $${@@{property}}/@@{marker} is '$...@{property}}/@{marker}'" />

<available property="foo" file="$...@{property}}/@{marker}" value="available" />

<echo message="-def-check $${@@{property}}/@@{marker} is ${foo}" />

<available property="foo2" file="C:\development\JDK\bootJDK\jdk1.6.0_18/bin/java.exe" value="available" />

<echo message="-def-check a proper windows path is ${foo2}" />

.


outputs;


-check-boot.java.home:

[echo] -def-check @{name} is 'bootstrap java'

[echo] -def-check @{property} is 'boot.java.home'

[echo] -def-check @{marker} is 'bin/java.exe'

[echo] -def-check $...@{property}} is '/cygdrive/c/DEVELO~1/JDK/bootJDK/JDK16~1.0_1'

[echo] -def-check $...@{property}}/@{marker} is '/cygdrive/c/DEVELO~1/JDK/bootJDK/JDK16~1.0_1/bin/java.exe'

[echo] -def-check $...@{property}}/@{marker} is ${foo}

[echo] -def-check a proper windows path is available



here is my cygwin.bat


@echo off


@echo Remember old LIB INCLUDE and PATH, in case needed and set to WIN_ORIG_XXX.

set WIN_ORIG_INCLUDE=%INCLUDE%

set WIN_ORIG_LIB=%LIB%

set WIN_ORIG_PATH=%PATH%


@echo Clear LIB, PATH, INCLUDE ** and ** CLASSPATH

set INCLUDE=

set LIB=

set PATH=

set CLASSPATH=


rem setup INCLUDE, LIB, PATH for M$ VC

call "C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" x86


@echo Set up special VC_PATH variable to be picked up in .bashrc and placed on the path before cygwin.

set VC_PATH=%PATH%


@echo Clear Path to nothing ... just take what cygwin provides, do not edit /etc/profile which is edited only by cygwin.

set PATH=


rem setup ALT_XXX vars for OpenJDK

set ALT_BOOTDIR=C:\development\JDK\bootJDK\jdk1.6.0_18

set ALT_BINARY_PLUGS_PATH=C:\development\JDK\openjdk7-b100\openjdk-binary-plugs

set ANT_HOME=C:\development\apache-ant-1.8.1

rem allow openjdk to find this for itself

rem set ALT_MSVCRT_DLL_PATH=C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT\msvcr90.dll


set ALT_FREETYPE_HEADERS_PATH=C:/development/GnuWin32/include

set ALT_FREETYPE_LIB_PATH=C:/development/GnuWin32/lib


rem This is one of my own

set ALT_MT_PATH=C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin



rem DSDK should already be on the path



@echo on


set CYGWIN=upcaseenv


@echo off


C:

chdir C:\cygwin\bin


bash --login -i





here is my .bashrc;



# User dependent .bashrc file


# Environment Variables

# #####################


# TMP and TEMP are defined in the Windows environment. Leaving

# them set to the default Windows temporary directory can have

# unexpected consequences.

unset TMP

unset TEMP


# ADDITIONS - JF

# ##############



# set up OpenJDK vars


ALT_BOOTDIR=`cygpath -d $ALT_BOOTDIR`

#ALT_BOOTDIR=`cygpath -p --unix "$ALT_BOOTDIR"`

echo $ALT_BOOTDIR

export ALT_BOOTDIR


ALT_BINARY_PLUGS_PATH=`cygpath -d "$ALT_BINARY_PLUGS_PATH"`

ALT_BINARY_PLUGS_PATH=`cygpath -p --unix "$ALT_BINARY_PLUGS_PATH"`

export ALT_BINARY_PLUGS_PATH



#ALT_MSVCRT_DLL_PATH=`cygpath -d "$ALT_MSVCRT_DLL_PATH"`

#ALT_MSVCRT_DLL_PATH=`cygpath -p --unix "$ALT_MSVCRT_DLL_PATH"`

#export ALT_MSVCRT_DLL_PATH


ANT_HOME=`cygpath -d "$ANT_HOME"`

ANT_HOME=`cygpath -p --unix "$ANT_HOME"`

export ANT_HOME


ALT_MT_PATH=`cygpath -d "$ALT_MT_PATH"`

ALT_MT_PATH=`cygpath -p --unix "$ALT_MT_PATH"`

export ALT_MT_PATH


# Put the VC Linker before cygwin

UNIX_VC_PATH=`cygpath -p --unix "$VC_PATH"`

export UNIX_VC_PATH

PATH=$UNIX_VC_PATH:$PATH

export PATH


# Ensure ant is on the path - note this will fail unless JAVA_HOME is set??? which we can't

# PATH=$PATH:$ANT_HOME/bin

# export PATH


cd /cygdrive/c/development/JDK/openjdk7-b100/openjdk

Reply via email to