My windows build story

Ted Neward ted at tedneward.com
Tue Aug 7 18:57:37 PDT 2007


Here's a question: when trying to build freetype using their download, I
couldn't get the build there to produce a DLL import library; you obviously
did, though. Did you do anything in particular to make that work? (I didn't
want to bother wrestling with their .sln file because that seemed too much
work for something that simple.)

Ted Neward
Java, .NET, XML Services
Consulting, Teaching, Speaking, Writing
http://www.tedneward.com
 

> -----Original Message-----
> From: build-dev-bounces at openjdk.java.net [mailto:build-dev-
> bounces at openjdk.java.net] On Behalf Of Igor Nekrestyanov
> Sent: Monday, August 06, 2007 2:47 AM
> To: build-dev at openjdk.java.net
> Subject: My windows build story
> 
> Hi,
> 
> I tried to build openjdk on windows (WinXP) using home PC and following
> instructions from openjdk.dev.java.net.
> I was able to do it. There were few issues though (because we rarely
> use
> cygwin for internal builds).
> 
> Below is brief story of how i did it. It might be incomplete because i
> am recovering it from the notes.
> I will double check this tonight with full clean build but it will be
> nice if someone else can try to repeat it.
> 
> 1) Latest cygwin.
>     In addition to list from README-builds.html i also installed
> zip/unzip packages.
> 
>     I think i have installed cygwin in default mode, i.e. using
> Unix/binary default text file type.
>     However, this did not help fully (see item 5).
> 
> 2) Downgraded make to 3.80
> 
>     Download from
> http://cygwin.paracoda.com/release/make/make-3.80-1.tar.bz2
> 
>   cd /
>   tar xjf /cygdrive/c/where-your-download-is/make-3.80-1.tar.bz2
>   bin/make.exe --version
> 
>   GNU Make 3.80
>   Copyright (C) 2002  Free Software Foundation, Inc.
> 
> 3) Here is my buildenv.bat.
> 
>    Note: avoid use /cygdrive/c paths because it will fool VC compiler
>          (cl will not resolve them properly, e.g. will not find header
> files)
> 
> =================================================
> 
> rem Minimize hidden environment differences
> set
> PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;c:\tools\c
> ygwin\bin
> set LD_LIBRARY_PATH=
> set CLASSPATH=
> set JAVA_HOME=
> 
> set ALT_BOOTDIR=c:/tools/jdk70b13
> set ALT_OUTPUTDIR=c:/tmp/openjdk-build
> set ALT_BINARY_PLUGS_PATH=c:/tools/bplugs/b17/openjdk-binary-plugs
> 
> rem not mentioned in the README-builds.html? (place hotspot VM comes
> from)
> rem TODO: try to point to openjdk vm
> set ALT_JDK_IMPORT_PATH=c:/tools/bplugs/jdk1.7.0
> 
> set ALT_DXSDK_PATH=c:/Tools/dxsdk
> 
> set VC=c:/Progra~1/Micros~1.NET
> set ALT_COMPILER_PATH=%VC%/VC7/Bin
> set ALT_MSDEVTOOLS_PATH=%VC%/Common7/Tools/Bin
> set ALT_MSVCR71_DLL_PATH=%VC%/SDK/v1.1/Bin
> 
> set ALT_FREETYPE_LIB_PATH=c:/tools/freetype/windows/freetype-i586/lib
> set ALT_FREETYPE_HEADERS_PATH=c:/tools/freetype/windows/freetype-
> i586/include
> 
> rem NB: not documented? will be removed in b18?
> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6332635
> rem unicows.dll/unicows.lib are available on the web.
> rem E.g.
> http://www.microsoft.com/downloads/details.aspx?FamilyId=73BA7BD7-ED06-
> 4F0D-80A4-2A7EEAEE17E2&displaylang=en
> set ALT_UNICOWS_LIB_PATH=c:/tools/devtools/MSLU
> set ALT_UNICOWS_DLL_PATH=c:/tools/devtools/MSLU
> 
> rem bug in the makefiles: should be set prior to freetypecheck.
> rem TODO: file it
> set OPENJDK=true
> 
> call c:\Progra~1\Micros~1.NET\Common7\Tools\vsvars32.bat
> 
> bash
> =============================================
> 
> 4) technically further build is just
>     buildenv.bat
>     cd control/make;
>     make
> 
> 5) Sanity check passes, hotspot build without any problems.
>     j2se build failed in the make/java/java - LocaleDataMetaInfo.java
> does not compile
> 
>     The reason was that string literals contained bunch of \r
> characters.
>     These were introduced by cygwin awk. I guess because it uses text
> mode (at least for output).
> 
>     I am still not fully sure what is proper fix for this and whether
> this is bug in cygwin
>     (Assuming i chosed Unix/binary during cygwin install process).
> 
>     My workaround was to edit j2se\make\java\java\localegen.sh and
> replace
>     localelist=`$NAWK -F$1_ '{print $2}' $2 | sort`
> with
>     localelist=`$NAWK -v BINMODE=w -F$1_ '{print $2}' $2 | sort`
> 
> 6) removed LocaleDataMetaInfo.java from gensrc dir and restarted build.
>     Build finished without new problems and at least java -jar
> Font2DTest.jar works.
> 
> Any volunteers to follow these instructions?
> 
> Important note:
>   I know that cygwin builds on at least two Vista systems were failing
> in random places because of some
> cygwin bugs (shell fails reporting failure to allocate memory or
> something else).  Failures are random and build will process on
> restart
> of make after failure.
> I do not know if it is possible to get working build subsequently
> restarting make.
> I also do not know if these problems were addressed in cygwin or
> perhaps
> specific to these particular Vista systems.
> But I suggest to start with WinXP build first.
> 
> -igor
> 
> p.s.
>    if you need freetype binary to try this - i can provide my build of
> it. Just drop me personal request.
> 
> No virus found in this incoming message.
> Checked by AVG Free Edition.
> Version: 7.5.476 / Virus Database: 269.11.4/936 - Release Date:
> 8/4/2007 2:42 PM
> 

No virus found in this outgoing message.
Checked by AVG Free Edition. 
Version: 7.5.476 / Virus Database: 269.11.8/940 - Release Date: 8/6/2007
4:53 PM
 




More information about the build-dev mailing list