[GRASS5] Re: [GRASSLIST:4510] freetype compile error

Hi Glynn, thanks for the response.
On Oct 12, 2004, at 2:58 PM, Glynn Clements wrote:

Kirk R. Wythers wrote:

I'm looking at the following compile error in d.text.freetype. Any
thoughts?

barbaloot:~/grass5_dev/grass53_exp_2004_05_15/src/display/

2004_05_15? Is this code actually from May, or has it been updated
since then?

I have never gotten around to changing the directory names. The code has been updates numerous times, most recently just before I re-compiled.

d.text.freetype kirkw$ gmake53
   SRC = /Users/kirkw/grass5_dev/grass53_exp_2004_05_15/src
   CMD = /Users/kirkw/grass5_dev/grass53_exp_2004_05_15/src/CMD
   UNUSED = /Users/kirkw/grass5_dev/grass53_exp_2004_05_15/unused
   HEADER = head.unknown
   ARCH = unknown
   GISBASE = /Users/kirkw/grass5_dev/grass53_exp_2004_05_15/dist.unknown
   VERSION = 5.3-cvs 2004
#################################################################
/Users/kirkw/grass5_dev/grass53_exp_2004_05_15/src/display/
d.text.freetype
   make -f OBJ.unknown/make.rules

gcc -I/Users/kirkw/grass5_dev/grass53_exp_2004_05_15/src/include
-I/usr/X11R6/include -I/sw/include -g -O2 -I/usr/X11R6/include
-I/sw/include -I/usr/X11R6/include/freetype2 -c main.c -o
OBJ.unknown/main.o
main.c:79: error: parse error before "library"

It's using the <freetype/freetype.h> header from FreeType 1.x, when it
needs to use 2.x. Presumably the FreeType 1.x headers are in
/sw/include, which occurs before /usr/X11R6/include/freetype2 on the
command line.

I've always been rather confused about freetype and freetype2. I suspect that the only reason either freetype and freetype2 are installed is for grass. If I have no other reason for having freetype installed, would a second solution be to simply get rid of freetype (keeping freetype2)?

We should probably be putting $(EXTRA_CFLAGS) before $(COMPILE_FLAGS)
in the Makefile templates (src/CMD/generic/make.mid and mk/mid.mk); in
general, package-specific directories should be checked before generic
directories.

That sounds like a better solution for the long term. As this kind of problem is likely to come up again.

A quick workaround would be to change the ordering of the -I switches
in the make.rules file.

--
Glynn Clements <glynn.clements@virgin.net>

Kirk R. Wythers
Dept. of Forest Resources
University of Minnesota
email: kwythers@umn.edu
tel: 612.625.2261
fax: 612.625.5212

Kirk R. Wythers wrote:

> It's using the <freetype/freetype.h> header from FreeType 1.x, when it
> needs to use 2.x. Presumably the FreeType 1.x headers are in
> /sw/include, which occurs before /usr/X11R6/include/freetype2 on the
> command line.

I've always been rather confused about freetype and freetype2. I
suspect that the only reason either freetype and freetype2 are
installed is for grass. If I have no other reason for having freetype
installed, would a second solution be to simply get rid of freetype
(keeping freetype2)?

Getting rid of the freetype 1.x files should solve the problem.

> We should probably be putting $(EXTRA_CFLAGS) before $(COMPILE_FLAGS)
> in the Makefile templates (src/CMD/generic/make.mid and mk/mid.mk); in
> general, package-specific directories should be checked before generic
> directories.

That sounds like a better solution for the long term. As this kind of
problem is likely to come up again.

I've already done this in CVS.

--
Glynn Clements <glynn.clements@virgin.net>