Bug #13796 Updated: Configure sets both HAVE_GD_STRINGTTF and HAVE_GD_STRINGFT

From: Date: Wed, 24 Oct 2001 10:25:06 +0000
Subject: Bug #13796 Updated: Configure sets both HAVE_GD_STRINGTTF and HAVE_GD_STRINGFT
References: 1  Groups: php.dev 
Request: Send a blank email to php-dev+get-68934@lists.php.net to get a copy of this message
ID: 13796
User updated by: johan@ekenberg.se
Reported By: johan@ekenberg.se
Old Status: Feedback
Status: Open
Bug Type: GD related
Operating System: Linux
PHP Version: 4.0CVS-2001-10-23
New Comment:

Yes, GD is compiled with freetype 2. Please observe that everything works perfectly when I edit
main/php_config.h manually (removing HAVE_GD_STRINGTTF) before compiling.

It doesn't seem to matter what prefix I enter at --with-freetype-dir, configure reports that it
finds freetype 2 anyway. And it apparently works.

In my view there are two issues here:
1. Something is wrong in the autoconf stuff which makes both HAVE_GD_STRINGTTF and HAVE_GD_STRINGFT
be defined in main/php_config.h although there is no libttf (freetype 1) on the system and
HAVE_GD_STRINGTTF should (as far as I understand) not be defined.

2. The if/else preprocessor stuff in ext/gd/gd.c around line 2765 is strange (or wrong):

# if HAVE_GD_STRINGFT
    error = gdImageStringFT(...);
# endif

# if HAVE_GD_STRINGTTF
    error = gdImageStringTTF(...);
# endif

Shouldn't this be changed to:

#if HAVE_GD_STRINGFT
    error = gdImageStringFT(...);
#elif HAVE_GD_STRINGTTF
    error = gdImageStringTTF(...);
#endif

Or is there a hidden point in both gdImageStringFT() and gdImageStringTTF() being called in sequence
if both HAVE_GD_STRINGTTF and HAVE_GD_STRINGFT are defined?

Previous Comments:
------------------------------------------------------------------------

[2001-10-24 05:47:24] sniper@php.net

Sorry, I didn't notice that you're using invalid configure
option value here. --with-freetype-dir expects the
install prefix dir for freetype2.

# ./configure --help |grep freetype
--with-freetype-dir=DIR   GD: Set the path to freetype2 install prefix.

Also, is your GD library compiled with freetype 2?

--Jani




------------------------------------------------------------------------

[2001-10-24 04:20:01] johan@ekenberg.se

No, still the same problem:

$ grep HAVE_GD_STRING main/php_config.h
#define HAVE_GD_STRINGFT 1
/* #undef HAVE_GD_STRINGFTEX */
#define HAVE_GD_STRINGTTF 1

Gives the same error when compiled and tried with imagettf*().

------------------------------------------------------------------------

[2001-10-24 00:46:11] sniper@php.net

Could you check if this works in latest CVS now?

--Jani


------------------------------------------------------------------------

[2001-10-23 04:10:40] johan@ekenberg.se

Configuring with freetype 2 and NOT freetype 1.* installed:

./configure \
--with-gd \
--with-freetype-dir=/usr/local/include/freetype2

results in both HAVE_GD_STRINGTTF and HAVE_GD_STRINGFT being defined in main/php_config.h

This produces this error when trying to use the imagettf*() functions in GD:

"libgd was not built with TrueType font support"

Removing HAVE_GD_STRINGTTF from main/php_config.h before compiling fixes this issue. But of course
it should be permanently fixed in autoconf.

------------------------------------------------------------------------



Edit this bug report at http://bugs.php.net/?id=13796&edit=1



Thread (9 messages)

« previous php.dev (#68934) next »