From 6cccbc9ca351e4f16be814231fa353fbeb0a69cb Mon Sep 17 00:00:00 2001 From: Volker Grabsch Date: Sat, 22 Dec 2007 22:26:32 +0100 Subject: [PATCH] new version: fontconfig --- build_mingw_cross_env.sh | 12 ++- fontconfig-2.5.0-crosscompile.patch | 146 ++++++++++++++++++++++++++++ 2 files changed, 154 insertions(+), 4 deletions(-) create mode 100644 fontconfig-2.5.0-crosscompile.patch diff --git a/build_mingw_cross_env.sh b/build_mingw_cross_env.sh index 0ee92d45..db9dca3c 100755 --- a/build_mingw_cross_env.sh +++ b/build_mingw_cross_env.sh @@ -125,7 +125,7 @@ VERSION_jpeg=6b VERSION_tiff=3.8.2 VERSION_giflib=4.1.6 VERSION_freetype=2.3.5 -VERSION_fontconfig=2.4.2 +VERSION_fontconfig=2.5.0 VERSION_libmikmod=3.2.0-beta2 VERSION_ogg=1.1.3 VERSION_vorbis=1.2.0 @@ -174,6 +174,7 @@ case "$1" in rm -rf "mingw_cross_env-$VERSION" mkdir "mingw_cross_env-$VERSION" cp "$0" README ChangeLog "mingw_cross_env-$VERSION/" + cp fontconfig-2.5.0-crosscompile.patch "mingw_cross_env-$VERSION/" tar cfv - "mingw_cross_env-$VERSION" | gzip -9 >"mingw_cross_env-$VERSION.tar.gz" rm -rf "mingw_cross_env-$VERSION" exit 0 @@ -1325,18 +1326,21 @@ case "$1" in cd "$SOURCE" tar xfvz "$DOWNLOAD/fontconfig-$VERSION_fontconfig.tar.gz" cd "fontconfig-$VERSION_fontconfig" + # apply a portability patch + patch -p1 <"$ROOT/fontconfig-2.5.0-crosscompile.patch" + # ensure there is no (buggy) attempt to install the *.dll.a file + # (remove this line of you want to link dynamically) $SED 's,^install-data-local:.*,install-data-local:,' -i src/Makefile.in ./configure \ --host="$TARGET" \ --disable-shared \ --prefix="$PREFIX/$TARGET" \ - --with-arch="" \ + --with-arch="$TARGET" \ --with-freetype-config="$PREFIX/$TARGET/bin/freetype-config" \ --enable-libxml2 \ LIBXML2_CFLAGS="`$PREFIX/$TARGET/bin/xml2-config --cflags`" \ LIBXML2_LIBS="`$PREFIX/$TARGET/bin/xml2-config --libs`" - $MAKE install -C src - $MAKE install -C fontconfig + $MAKE install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS= cd "$SOURCE" rm -rfv "fontconfig-$VERSION_fontconfig" ;; diff --git a/fontconfig-2.5.0-crosscompile.patch b/fontconfig-2.5.0-crosscompile.patch new file mode 100644 index 00000000..cc88f2ca --- /dev/null +++ b/fontconfig-2.5.0-crosscompile.patch @@ -0,0 +1,146 @@ +URL: http://www.profv.de/fontconfig-crosscompile-patch/ +File: fontconfig-2.5.0-crosscompile.patch + +When cross compiling fontconfig, the code generators of fontconfig +depend on freetype. This is a big problem, because the FREETYPE_* +variables (as determined by ./configure) point to the cross-compiled +freetype instead of the native freetype. Luckily, the code generators +don't really have this dependency. It is merely introduced as a side +effect by "fcint.h". + +The simplest solution is not to include FREETYPE_CFLAGS in the +Makefile.am/in of fc-case, fc-arch, etc. and to define a symbol +NOFREETYPE instead. Then "fcint.h" just needs to exclude any +freetype dependent code if NOFREETYPE is defined. + +This patch for fontconfig-2.5.0 does exactly that. + + -- Volker Grabsch + + +diff -ruN fontconfig-2.5.0.orig/fc-arch/Makefile.am fontconfig-2.5.0/fc-arch/Makefile.am +--- fontconfig-2.5.0.orig/fc-arch/Makefile.am 2007-10-25 04:39:14.000000000 +0000 ++++ fontconfig-2.5.0/fc-arch/Makefile.am 2007-12-22 20:48:08.000000000 +0000 +@@ -26,7 +26,7 @@ + EXEEXT = @EXEEXT_FOR_BUILD@ + LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ + +-INCLUDES=-I${top_srcdir}/src -I${top_srcdir} $(FREETYPE_CFLAGS) $(WARN_CFLAGS) ++INCLUDES=-I${top_srcdir}/src -I${top_srcdir} -DNOFREETYPE $(WARN_CFLAGS) + + TMPL=fcarch.tmpl.h + STMPL=${top_srcdir}/fc-arch/fcarch.tmpl.h +diff -ruN fontconfig-2.5.0.orig/fc-arch/Makefile.in fontconfig-2.5.0/fc-arch/Makefile.in +--- fontconfig-2.5.0.orig/fc-arch/Makefile.in 2007-11-14 02:57:07.000000000 +0000 ++++ fontconfig-2.5.0/fc-arch/Makefile.in 2007-12-22 20:48:08.000000000 +0000 +@@ -240,7 +240,7 @@ + sysconfdir = @sysconfdir@ + target_alias = @target_alias@ + LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +-INCLUDES = -I${top_srcdir}/src -I${top_srcdir} $(FREETYPE_CFLAGS) $(WARN_CFLAGS) ++INCLUDES = -I${top_srcdir}/src -I${top_srcdir} -DNOFREETYPE $(WARN_CFLAGS) + TMPL = fcarch.tmpl.h + STMPL = ${top_srcdir}/fc-arch/fcarch.tmpl.h + TARG = fcarch.h +diff -ruN fontconfig-2.5.0.orig/fc-case/Makefile.am fontconfig-2.5.0/fc-case/Makefile.am +--- fontconfig-2.5.0.orig/fc-case/Makefile.am 2007-10-25 04:42:36.000000000 +0000 ++++ fontconfig-2.5.0/fc-case/Makefile.am 2007-12-22 20:48:08.000000000 +0000 +@@ -26,7 +26,7 @@ + EXEEXT = @EXEEXT_FOR_BUILD@ + LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ + +-INCLUDES=-I${top_srcdir}/src -I${top_srcdir} $(FREETYPE_CFLAGS) $(WARN_CFLAGS) ++INCLUDES=-I${top_srcdir}/src -I${top_srcdir} -DNOFREETYPE $(WARN_CFLAGS) + + TMPL=fccase.tmpl.h + STMPL=${top_srcdir}/fc-case/${TMPL} +diff -ruN fontconfig-2.5.0.orig/fc-case/Makefile.in fontconfig-2.5.0/fc-case/Makefile.in +--- fontconfig-2.5.0.orig/fc-case/Makefile.in 2007-11-14 02:57:07.000000000 +0000 ++++ fontconfig-2.5.0/fc-case/Makefile.in 2007-12-22 20:48:08.000000000 +0000 +@@ -240,7 +240,7 @@ + sysconfdir = @sysconfdir@ + target_alias = @target_alias@ + LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +-INCLUDES = -I${top_srcdir}/src -I${top_srcdir} $(FREETYPE_CFLAGS) $(WARN_CFLAGS) ++INCLUDES = -I${top_srcdir}/src -I${top_srcdir} -DNOFREETYPE $(WARN_CFLAGS) + TMPL = fccase.tmpl.h + STMPL = ${top_srcdir}/fc-case/${TMPL} + TARG = fccase.h +diff -ruN fontconfig-2.5.0.orig/fc-glyphname/Makefile.am fontconfig-2.5.0/fc-glyphname/Makefile.am +--- fontconfig-2.5.0.orig/fc-glyphname/Makefile.am 2007-10-25 04:40:17.000000000 +0000 ++++ fontconfig-2.5.0/fc-glyphname/Makefile.am 2007-12-22 20:48:08.000000000 +0000 +@@ -26,7 +26,7 @@ + EXEEXT = @EXEEXT_FOR_BUILD@ + LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ + +-INCLUDES=-I${top_srcdir}/src -I${top_srcdir} $(FREETYPE_CFLAGS) $(WARN_CFLAGS) ++INCLUDES=-I${top_srcdir}/src -I${top_srcdir} -DNOFREETYPE $(WARN_CFLAGS) + + TMPL=fcglyphname.tmpl.h + STMPL=${top_srcdir}/fc-glyphname/${TMPL} +diff -ruN fontconfig-2.5.0.orig/fc-glyphname/Makefile.in fontconfig-2.5.0/fc-glyphname/Makefile.in +--- fontconfig-2.5.0.orig/fc-glyphname/Makefile.in 2007-11-14 02:57:07.000000000 +0000 ++++ fontconfig-2.5.0/fc-glyphname/Makefile.in 2007-12-22 20:48:08.000000000 +0000 +@@ -240,7 +240,7 @@ + sysconfdir = @sysconfdir@ + target_alias = @target_alias@ + LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +-INCLUDES = -I${top_srcdir}/src -I${top_srcdir} $(FREETYPE_CFLAGS) $(WARN_CFLAGS) ++INCLUDES = -I${top_srcdir}/src -I${top_srcdir} -DNOFREETYPE $(WARN_CFLAGS) + TMPL = fcglyphname.tmpl.h + STMPL = ${top_srcdir}/fc-glyphname/${TMPL} + TARG = fcglyphname.h +diff -ruN fontconfig-2.5.0.orig/fc-lang/Makefile.am fontconfig-2.5.0/fc-lang/Makefile.am +--- fontconfig-2.5.0.orig/fc-lang/Makefile.am 2007-10-25 04:40:39.000000000 +0000 ++++ fontconfig-2.5.0/fc-lang/Makefile.am 2007-12-22 20:48:08.000000000 +0000 +@@ -26,7 +26,7 @@ + EXEEXT = @EXEEXT_FOR_BUILD@ + LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ + +-INCLUDES=-I${top_srcdir}/src -I${top_srcdir} $(FREETYPE_CFLAGS) $(WARN_CFLAGS) ++INCLUDES=-I${top_srcdir}/src -I${top_srcdir} -DNOFREETYPE $(WARN_CFLAGS) + + TMPL=fclang.tmpl.h + STMPL=${top_srcdir}/fc-lang/fclang.tmpl.h +diff -ruN fontconfig-2.5.0.orig/fc-lang/Makefile.in fontconfig-2.5.0/fc-lang/Makefile.in +--- fontconfig-2.5.0.orig/fc-lang/Makefile.in 2007-11-14 02:57:08.000000000 +0000 ++++ fontconfig-2.5.0/fc-lang/Makefile.in 2007-12-22 20:48:08.000000000 +0000 +@@ -240,7 +240,7 @@ + sysconfdir = @sysconfdir@ + target_alias = @target_alias@ + LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +-INCLUDES = -I${top_srcdir}/src -I${top_srcdir} $(FREETYPE_CFLAGS) $(WARN_CFLAGS) ++INCLUDES = -I${top_srcdir}/src -I${top_srcdir} -DNOFREETYPE $(WARN_CFLAGS) + TMPL = fclang.tmpl.h + STMPL = ${top_srcdir}/fc-lang/fclang.tmpl.h + TARG = fclang.h +diff -ruN fontconfig-2.5.0.orig/src/fcint.h fontconfig-2.5.0/src/fcint.h +--- fontconfig-2.5.0.orig/src/fcint.h 2007-11-13 23:23:39.000000000 +0000 ++++ fontconfig-2.5.0/src/fcint.h 2007-12-22 21:08:01.000000000 +0000 +@@ -47,7 +47,9 @@ + #include + #include + #include ++#ifndef NOFREETYPE + #include ++#endif + #include "fcdeprecate.h" + + #ifndef FC_CONFIG_PATH +@@ -718,8 +720,10 @@ + FcPrivate FcChar32 + FcFreeTypePrivateToUcs4 (FcChar32 private, const FcCharMap *map); + ++#ifndef NOFREETYPE + FcPrivate const FcCharMap * + FcFreeTypeGetPrivateMap (FT_Encoding encoding); ++#endif + + /* fcfs.c */ + +@@ -1049,4 +1053,4 @@ + FcPrivate FcChar8 * + FcStrSerialize (FcSerialize *serialize, const FcChar8 *str); + +-#endif /* _FC_INT_H_ */ ++#endif /* _FCINT_H_ */