<!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">
I ran make -d sanity today and see the following.  I don't know why it
doesn't want to build freetype_versioncheck.exe.  It doesn't exist.  <br>
<br>
There is however a file named freetype_versioncheck.exe.manifest so to
make sure that isn't a problem I commented out its build from
freetypecheck/makefile and renamed it to
freetype_versioncheck-OLD.exe.manifest in the btbins directory, but the
debug make output looks the same after that test.<br>
<br>
Considering target file `all'.<br>
 File `all' does not exist.<br>
  Considering target file
`c:/OpenJDK/jdk7/build/windows-i586/btbins/freetype_versioncheck.exe'.<br>
    Considering target file `freetypecheck.c'.<br>
.....<br>
    No need to remake target `freetypecheck.c'.<br>
   Finished prerequisites of target file
`c:/OpenJDK/jdk7/build/windows-i586/btbins/freetype_versioncheck.exe'.<br>
   Prerequisite `freetypecheck.c' is older than target
`c:/OpenJDK/jdk7/build/windows-i586/btbins/freetype_versioncheck.exe'.<br>
  No need to remake target
`c:/OpenJDK/jdk7/build/windows-i586/btbins/freetype_versioncheck.exe'.<br>
 Finished prerequisites of target file `all'.<br>
Must remake target `all'.<br>
make[2]: Entering directory
`/cygdrive/c/OpenJDK/jdk7/jdk/make/tools/freetypecheck'<br>
c:/OpenJDK/jdk7/build/windows-i586/btbins/freetype_versioncheck.exe<br>
Putting child 0x006de0c0 (all) PID 6916 on the chain.<br>
Live child 0x006de0c0 (all) PID 6916 <br>
Got a SIGCHLD; 1 unreaped children.<br>
Reaping losing child 0x006de0c0 PID 6916 <br>
Removing child 0x006de0c0 PID 6916 from chain.<br>
make[2]: Leaving directory
`/cygdrive/c/OpenJDK/jdk7/jdk/make/tools/freetypecheck'<br>
Failed to build freetypecheck.  <br>
<br>
Exiting because of the above error(s). <br>
<br>
<br>
-------- Original Message --------
<table class="moz-email-headers-table" border="0" cellpadding="0"
 cellspacing="0">
  <tbody>
    <tr>
      <th align="right" nowrap="nowrap" valign="baseline">Subject: </th>
      <td>Re: Freetype version check failure - copy of DLL failed</td>
    </tr>
    <tr>
      <th align="right" nowrap="nowrap" valign="baseline">Date: </th>
      <td>Thu, 01 Oct 2009 19:21:03 -0500</td>
    </tr>
    <tr>
      <th align="right" nowrap="nowrap" valign="baseline">From: </th>
      <td>Pete Brunet <a class="moz-txt-link-rfc2396E" href="mailto:pete@a11ysoft.com"><pete@a11ysoft.com></a></td>
    </tr>
    <tr>
      <th align="right" nowrap="nowrap" valign="baseline">Reply-To: </th>
      <td><a class="moz-txt-link-abbreviated" href="mailto:pete@a11ysoft.com">pete@a11ysoft.com</a></td>
    </tr>
    <tr>
      <th align="right" nowrap="nowrap" valign="baseline">To: </th>
      <td>Tim Bell <a class="moz-txt-link-rfc2396E" href="mailto:Tim.Bell@Sun.COM"><Tim.Bell@Sun.COM></a></td>
    </tr>
    <tr>
      <th align="right" nowrap="nowrap" valign="baseline">CC: </th>
      <td><a class="moz-txt-link-abbreviated" href="mailto:build-dev@openjdk.java.net">build-dev@openjdk.java.net</a></td>
    </tr>
    <tr>
      <th align="right" nowrap="nowrap" valign="baseline">References: </th>
      <td><a class="moz-txt-link-rfc2396E" href="mailto:4AC0E0EC.4000103@a11ysoft.com"><4AC0E0EC.4000103@a11ysoft.com></a>
<a class="moz-txt-link-rfc2396E" href="mailto:4AC0F368.2010908@sun.com"><4AC0F368.2010908@sun.com></a> <a class="moz-txt-link-rfc2396E" href="mailto:4AC12270.30504@a11ysoft.com"><4AC12270.30504@a11ysoft.com></a>
<a class="moz-txt-link-rfc2396E" href="mailto:4AC3D2A0.4030708@sun.com"><4AC3D2A0.4030708@sun.com></a></td>
    </tr>
  </tbody>
</table>
<br>
<br>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
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 moz-do-not-send="true" 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 moz-do-not-send="true" class="moz-txt-link-freetext"
 href="http://www.dependencywalker.com/">http://www.dependencywalker.com/</a>

[2] See step 8:
    <a moz-do-not-send="true" 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 moz-do-not-send="true" class="moz-txt-link-freetext"
 href="http://cr.openjdk.java.net/%7Etbell/freetype/">http://cr.openjdk.java.net/~tbell/freetype/</a>


  </pre>
</blockquote>
<br>
<div class="moz-signature">-- <br>
<font color="#0060a0" face="Arial, sans-serif" size="1"><b>Pete Brunet</b></font><br>
<font color="#0060a0"><span style="text-decoration: line-through;">
              
              
              
              
    
</span></font><br>
<font color="#333333" face="Arial, sans serif" size="1">
a11ysoft - Accessibility Architecture and Development<br>
(512) 238-6967 (work), (512) 689-4155 (cell)<br>
Skype: pete.brunet<br>
IM: ptbrunet (AOL, Google), <a class="moz-txt-link-abbreviated" href="mailto:ptbrunet@live.com">ptbrunet@live.com</a> (MSN)<br>
<a class="moz-txt-link-freetext" href="http://www.a11ysoft.com/about/">http://www.a11ysoft.com/about/</a><br>
Ionosphere: WS4G
<br>
</font>
</div>
</body>
</html>