Skip to contentSkip to conversation

freetype: fix includedir

PATCH New Gustavo Zacarias 3 participants 4 messages Jun 13, 2013

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 freetype: fix includedir

Set includedir to point to staging because freetype-config and freetype2.pc otherwise point to /usr/include causing all kind of havoc because it expands configure --prefix now instead of using the .pc/-config one.

Fixes:
http://autobuild.buildroot.net/results/1c7/1c70ce0ff350623cc38baf4b8b61c8a7a8586aba/
...and many others.

---
 package/freetype/freetype.mk | 1 +
 1 file changed, 1 insertion(+)
package/freetype/freetype.mk +1 -0
index 16f00fe..4ea678b 100644
@@ -9,6 +9,7 @@ FREETYPE_SOURCE = freetype-$(FREETYPE_VERSION).tar.bz2
 FREETYPE_SITE = http://downloads.sourceforge.net/project/freetype/freetype2/$(FREETYPE_VERSION)
 FREETYPE_INSTALL_STAGING = YES
 FREETYPE_MAKE_OPT = CCexe="$(HOSTCC)"
+FREETYPE_CONF_OPT = --includedir="$(STAGING_DIR)/usr/include"
 FREETYPE_LICENSE = Dual FTL/GPLv2+
 FREETYPE_LICENSE_FILES = docs/FTL.TXT docs/GPLv2.TXT
 FREETYPE_DEPENDENCIES = host-pkgconf \
Signature · 1 line
1.8.1.5
#1 lore raw

PATCH 1/1 freetype: fix includedir

Quoted 4 lines · Gustavo Zacarias

Set includedir to point to staging because freetype-config and freetype2.pc otherwise point to /usr/include causing all kind of havoc because it expands configure --prefix now instead of using the .pc/-config one.

I think this is the wrong fix.

The FREETYPE_CONFIG_SCRIPTS approach doesn't work in this case because
this script doesn't use ${prefix} in front of it's includedir. I think the better fix is to use a custom POST_INSTALL_STAGING_HOOK that sets SYSROOT=$(STAGING_DIR) at the beginning of the script.

The .pc file should be handled by our modified pkg-config.

Regards,
Arnout

Quoted 23 lines

Fixes:
http://autobuild.buildroot.net/results/1c7/1c70ce0ff350623cc38baf4b8b61c8a7a8586aba/
...and many others.

---
  package/freetype/freetype.mk | 1 +
  1 file changed, 1 insertion(+)
package/freetype/freetype.mk +1 -0
index 16f00fe..4ea678b 100644
@@ -9,6 +9,7 @@ FREETYPE_SOURCE = freetype-$(FREETYPE_VERSION).tar.bz2
  FREETYPE_SITE = http://downloads.sourceforge.net/project/freetype/freetype2/$(FREETYPE_VERSION)
  FREETYPE_INSTALL_STAGING = YES
  FREETYPE_MAKE_OPT = CCexe="$(HOSTCC)"
+FREETYPE_CONF_OPT = --includedir="$(STAGING_DIR)/usr/include"
  FREETYPE_LICENSE = Dual FTL/GPLv2+
  FREETYPE_LICENSE_FILES = docs/FTL.TXT docs/GPLv2.TXT
  FREETYPE_DEPENDENCIES = host-pkgconf \
Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#2 lore raw

PATCH 1/1 freetype: fix includedir

Quoted 11 lines · Arnout Vandecappelle

I think this is the wrong fix.

The FREETYPE_CONFIG_SCRIPTS approach doesn't work in this case because
this script doesn't use ${prefix} in front of it's includedir. I think the better fix is to use a custom POST_INSTALL_STAGING_HOOK that sets SYSROOT=$(STAGING_DIR) at the beginning of the script.

The .pc file should be handled by our modified pkg-config.

Regards,
Arnout

I've actually mentioned the pkgconfig file because of late fixing / killing time, so as you said it really doesn't matter, it's handled elsewhere.
Setting SYSROOT at the beginning of the script is wrong too IMHO, it's very unconventional, we should just revert it back to the tried and tested way that every other -config script works fine with:

includedir="${prefix}/include"
libdir="${exec_prefix}/lib"

I'll spin a V2.
Regards.

#3 lore raw

PATCH 1/1 freetype: fix includedir

Hi

Just saw that it will be fixed.

I bumped into the error while building mplayer

Quoted 1 line
Quoted 1 line
Quoted 1 line

mplayer 1.1 Building

/usr/bin/make -j5 -C /home/buildroot12git/output/build/mplayer-1.1
make[1]: Entering directory `/home/buildroot12git/output/build/mplayer-1.1' /home/buildroot12git/output/host/usr/bin/arm-buildroot-linux-uclibcgnueabi-gcc -MD -MP -Wundef -Wstrict-prototypes -Wmissing-prototypes -Wdisabled-optimization -Wno-pointer-sign -Wdeclaration-after-statement -std=gnu99 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -Os -fno-tree-vectorize -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -I. -Iffmpeg -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -Os -D_LARGEFILE_SOURCE
-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -mfpu=neon -mfloat-abi=softfp -marm -I/usr/include/freetype2 -c -o command.o
command.c
/home/buildroot12git/output/host/usr/bin/arm-buildroot-linux-uclibcgnueabi-gcc -MD -MP -Wundef -Wstrict-prototypes -Wmissing-prototypes -Wdisabled-optimization -Wno-pointer-sign -Wdeclaration-after-statement -std=gnu99 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -Os -fno-tree-vectorize -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -I. -Iffmpeg -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -Os -D_LARGEFILE_SOURCE
-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -mfpu=neon -mfloat-abi=softfp -marm -I/usr/include/freetype2 -c -o mplayer.o
mplayer.c
/home/buildroot12git/output/host/usr/bin/arm-buildroot-linux-uclibcgnueabi-gcc -MD -MP -Wundef -Wstrict-prototypes -Wmissing-prototypes -Wdisabled-optimization -Wno-pointer-sign -Wdeclaration-after-statement -std=gnu99 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -Os -fno-tree-vectorize -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -I. -Iffmpeg -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -Os -D_LARGEFILE_SOURCE
-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -mfpu=neon -mfloat-abi=softfp -marm -I/usr/include/freetype2 -c -o pnm_loader.o
pnm_loader.c
/home/buildroot12git/output/host/usr/bin/arm-buildroot-linux-uclibcgnueabi-gcc -MD -MP -Wundef -Wstrict-prototypes -Wmissing-prototypes -Wdisabled-optimization -Wno-pointer-sign -Wdeclaration-after-statement -std=gnu99 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -Os -fno-tree-vectorize -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -I. -Iffmpeg -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -Os -D_LARGEFILE_SOURCE
-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -mfpu=neon -mfloat-abi=softfp -marm -I/usr/include/freetype2 -c -o input/input.o
input/input.c
/home/buildroot12git/output/host/usr/bin/arm-buildroot-linux-uclibcgnueabi-gcc -MD -MP -Wundef -Wstrict-prototypes -Wmissing-prototypes -Wdisabled-optimization -Wno-pointer-sign -Wdeclaration-after-statement -std=gnu99 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -Os -fno-tree-vectorize -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -I. -Iffmpeg -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -Os -D_LARGEFILE_SOURCE
-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -mfpu=neon -mfloat-abi=softfp -marm -I/usr/include/freetype2 -c -o
libao2/ao_mpegpes.o libao2/ao_mpegpes.c /home/buildroot12git/output/host/usr/bin/arm-buildroot-linux-uclibcgnueabi-gcc -MD -MP -Wundef -Wstrict-prototypes -Wmissing-prototypes -Wdisabled-optimization -Wno-pointer-sign -Wdeclaration-after-statement -std=gnu99 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -Os -fno-tree-vectorize -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -I. -Iffmpeg -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -Os -D_LARGEFILE_SOURCE
-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -mfpu=neon -mfloat-abi=softfp -marm -I/usr/include/freetype2 -c -o libao2/ao_null.o
libao2/ao_null.c
/home/buildroot12git/output/host/usr/bin/arm-buildroot-linux-uclibcgnueabi-gcc -MD -MP -Wundef -Wstrict-prototypes -Wmissing-prototypes -Wdisabled-optimization -Wno-pointer-sign -Wdeclaration-after-statement -std=gnu99 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -Os -fno-tree-vectorize -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -I. -Iffmpeg -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -Os -D_LARGEFILE_SOURCE
-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -mfpu=neon -mfloat-abi=softfp -marm -I/usr/include/freetype2 -c -o libao2/ao_pcm.o
libao2/ao_pcm.c
In file included from ./libmpdemux/aviheader.h:26:0,

                 from ./libmpdemux/stheader.h:23,
                 from gui/interface.h:24,
                 from mplayer.c:74:
./mpbswap.h:26:0: warning: "bswap_16" redefined [enabled by default]In file included from libmpdemux/aviheader.h:26:0,
                 from libmpdemux/stheader.h:23,
                 from command.c:29:

./mpbswap.h:26:0: warning: "bswap_16" redefined [enabled by default]

/home/buildroot12git/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/byteswap.h:30:0: note: this is the location of the previous definition/home/buildroot12git/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/byteswap.h:30:0: note: this is the location of the previous definition

./mpbswap.h:27:0: warning: "bswap_32" redefined [enabled by default]./mpbswap.h:27:0: warning: "bswap_32" redefined [enabled by default]

/home/buildroot12git/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/byteswap.h:33:0: note: this is the location of the previous definition/home/buildroot12git/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/byteswap.h:33:0: note: this is the location of the previous definition

In file included from sub/font_load.h:25:0,

                 from mplayer.c:87:

/home/buildroot12git/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/ft2build.h:56:38: fatal error:
freetype/config/ftheader.h: No such file or directory
compilation terminated.
make[1]: *** [mplayer.o] Error 1
make[1]: *** Waiting for unfinished jobs....
In file included from libao2/ao_pcm.c:28:0:
./mpbswap.h:26:0: warning: "bswap_16" redefined [enabled by default] /home/buildroot12git/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/byteswap.h:30:0: note: this is the location of the previous definition
./mpbswap.h:27:0: warning: "bswap_32" redefined [enabled by default] /home/buildroot12git/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/byteswap.h:33:0: note: this is the location of the previous definition
In file included from sub/font_load.h:25:0,

                 from command.c:41:

/home/buildroot12git/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/ft2build.h:56:38: fatal error:
freetype/config/ftheader.h: No such file or directory
compilation terminated.
make[1]: *** [command.o] Error 1
make[1]: Leaving directory `/home/buildroot12git/output/build/mplayer-1.1'
make: *** [/home/buildroot12git/output/build/mplayer-1.1/.stamp_built] Error 2

Regards , Johan

-----Oorspronkelijk bericht-----
Van: buildroot-bounces at busybox.net [mailto:buildroot-bounces at busybox.net] Namens Gustavo Zacarias
Verzonden: donderdag 13 juni 2013 12:28
Aan: Arnout Vandecappelle
CC: buildroot at busybox.net
Onderwerp: Re: [Buildroot] [PATCH] freetype: fix includedir

Quoted 8 lines · Arnout Vandecappelle

I think this is the wrong fix.

The FREETYPE_CONFIG_SCRIPTS approach doesn't work in this case
because this script doesn't use ${prefix} in front of it's includedir. I think the better fix is to use a custom POST_INSTALL_STAGING_HOOK that sets
SYSROOT=$(STAGING_DIR) at the beginning of the script.

Quoted 4 lines

The .pc file should be handled by our modified pkg-config.

Regards,
Arnout

I've actually mentioned the pkgconfig file because of late fixing / killing time, so as you said it really doesn't matter, it's handled elsewhere.
Setting SYSROOT at the beginning of the script is wrong too IMHO, it's very unconventional, we should just revert it back to the tried and tested way that every other -config script works fine with:

includedir="${prefix}/include"
libdir="${exec_prefix}/lib"

I'll spin a V2.
Regards.

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot