<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Tim, I went back to my original fixes (copy dll to lib and change the
make to use freetype6.dll) then did the following:<br>
<br>
cd /cygdrive/c/OpenJDK/jdk7/jdk/make/tools/freetypecheck<br>
make clean<br>
make all<br>
<br>
and started getting a trace. I don't know if running from the
freetypecheck directory is a valid thing to do, but when I do that I
noticed that mt.exe is not found. In this (possibly invalid)
invocation of make, $(MT) resolves
to <br>
<br>
c:/PROGRA~1/MICROS~1.0/Common7/Tools/../../Vc/Bin/mt aka "C:\Program
Files\Microsoft Visual Studio 9.0\VC\bin\mt"<br>
<br>
but on my system mt.exe is at <br>
<br>
C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\mt.exe<br>
<br>
If I change $(MT) to just mt so it's found via the PATH then the above
build is OK.<br>
<br>
However, even with that fix, when I do make sanity the normal way the
exe isn't being built. And no matter what I try (echo, $(warning ...)
I can't get make to trace when I run make sanity the normal way.<br>
<br>
Pete<br>
---<br>
Tim Bell wrote:
<blockquote cite="mid:4AC3D2A0.4030708@sun.com" type="cite">
<pre wrap="">Pete Brunet wrote:
</pre>
<blockquote type="cite">
<pre wrap="">Thanks Tim, It must be something else. Here are my two environment
variables:
ALT_FREETYPE_HEADERS_PATH=C:/Progra~1/GnuWin32/include
ALT_FREETYPE_LIB_PATH=C:/Progra~1/GnuWin32/lib
</pre>
</blockquote>
<pre wrap=""><!---->
Good - that looks OK.
</pre>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">
<pre wrap="">freetype was installed via the binary installer at
<a class="moz-txt-link-freetext"
href="http://gnuwin32.sourceforge.net/packages/freetype.htm">http://gnuwin32.sourceforge.net/packages/freetype.htm</a>.
</pre>
</blockquote>
</blockquote>
</blockquote>
<pre wrap=""><!---->
After installing bits from there, I needed to copy bin/freetype6.dll
to lib/freetype6.dll
</pre>
<blockquote type="cite">
<pre wrap="">At a minimum I have to edit
C:\OpenJDK\jdk7\jdk\make\tools\freetypecheck\Makefile as follows:
# change freetype.dll to freetype6.dll
FREETYPE_DLL = $(FREETYPE_LIB_PATH)/freetype6.dll
because there is no freetype.dll in C:\Program Files\GnuWin32, just
freetype6.dll.
</pre>
</blockquote>
<pre wrap=""><!---->
And then edit the makefile to reach for freetype6.dll, as you
did. Here are my diffs:
% pwd
/cygdrive/g/OpenJDK/jdk/make/tools/freetypecheck
$ diff -u Makefile.00 Makefile
--- Makefile.00 2009-08-19 18:39:51.531250000 -0700
+++ Makefile 2009-09-30 13:49:28.794625000 -0700
@@ -36,7 +36,7 @@
# Start with CFLAGS (which gets us the required -xarch setting on solaris)
ifeq ($(PLATFORM), windows)
FT_OPTIONS = /nologo $(CC_OBJECT_OUTPUT_FLAG)$(TEMPDIR)
- FREETYPE_DLL = $(FREETYPE_LIB_PATH)/freetype.dll
+ FREETYPE_DLL = $(FREETYPE_LIB_PATH)/freetype6.dll
FT_LD_OPTIONS = $(FREETYPE_LIB_PATH)/freetype.lib
else
FT_OPTIONS = $(CFLAGS)
Unfortunately, the freetype_versioncheck.exe that is created after
doing that fails to initialize:
When run in a Cygwin window:
$ g:/OpenJDK/build/windows-i586/btbins/freetype_versioncheck.exe
$ echo $?
34
When run in a DOS cmd window, I get an "Application Error" pop-up
that reads "The application failed to initialize properly (0xc0000022).
Click on OK to terminate the application" [OK]
If I look at freetype_versioncheck.exe using the dependancywalker
tool [1], it shows an unresolved reference to ZLIB1.DLL
When I switch my OpenJDK build environment back to use my existing
copy of freetype 2.3.4 [2], the versioncheck program builds, works
OK (no mention of ZLIB1.DLL), and prints:
$ g:/OpenJDK/build/windows-i586/btbins/freetype_versioncheck.exe
Required version of freetype: 2.3.0
Detected freetype headers: 2.3.4
Detected freetype library: 2.3.4
$ echo $?
0
</pre>
<blockquote type="cite">
<pre wrap="">Here is my "make sanity" output:
ERROR: FreeType version 2.3.0 or higher is required.
make[2]: Entering directory
`/cygdrive/c/OpenJDK/jdk7/jdk/make/tools/freetypecheck'
c:/OpenJDK/jdk7/build/windows-i586/btbins/freetype_versioncheck.exe
make[2]: Leaving directory
`/cygdrive/c/OpenJDK/jdk7/jdk/make/tools/freetypecheck'
Failed to build freetypecheck.
BTW, How do I put prints in the make file to see the values of the
variables?
</pre>
</blockquote>
<pre wrap=""><!---->
You could add "echo" lines to the commands run by a make rule.
Also, make commands are prefixed with '@' to make them silent.
Remove the '@' to see more output.
HTH-
Tim
[1] <a class="moz-txt-link-freetext"
href="http://www.dependencywalker.com/">http://www.dependencywalker.com/</a>
[2] See step 8:
<a class="moz-txt-link-freetext"
href="http://blogs.sun.com/TimBell/entry/building_openjdk7_on_32_bit">http://blogs.sun.com/TimBell/entry/building_openjdk7_on_32_bit</a>
The files I modified are available here:
<a class="moz-txt-link-freetext"
href="http://cr.openjdk.java.net/%7Etbell/freetype/">http://cr.openjdk.java.net/~tbell/freetype/</a>
</pre>
</blockquote>
</body>
</html>