diff options
author | Peter Breitenlohner <peb@mppmu.mpg.de> | 2013-09-10 08:51:42 +0000 |
---|---|---|
committer | Peter Breitenlohner <peb@mppmu.mpg.de> | 2013-09-10 08:51:42 +0000 |
commit | 8d7910fb3f393070e8be38c87763915666719bf1 (patch) | |
tree | 16e989b5468a403244cdfb4f92c129568f7d1952 /Build/source/libs | |
parent | 51cd334488621c760ada07d554fe9fed81f86ef8 (diff) |
Drop texk/ttf2pk and libs/freetype (Version 1.5)
git-svn-id: svn://tug.org/texlive/trunk@31618 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/libs')
287 files changed, 0 insertions, 151101 deletions
diff --git a/Build/source/libs/Makefile.in b/Build/source/libs/Makefile.in index b15911614f6..f37f6df8670 100644 --- a/Build/source/libs/Makefile.in +++ b/Build/source/libs/Makefile.in @@ -94,7 +94,6 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../m4/kpse-cairo-flags.m4 \ $(top_srcdir)/../m4/kpse-common.m4 \ $(top_srcdir)/../m4/kpse-cxx-hack.m4 \ - $(top_srcdir)/../m4/kpse-freetype-flags.m4 \ $(top_srcdir)/../m4/kpse-freetype2-flags.m4 \ $(top_srcdir)/../m4/kpse-gd-flags.m4 \ $(top_srcdir)/../m4/kpse-graphite2-flags.m4 \ @@ -166,7 +165,6 @@ am__aclocal_m4_deps = $(top_srcdir)/../m4/kpse-cairo-flags.m4 \ $(top_srcdir)/../texk/ps2pkm/ac/withenable.ac \ $(top_srcdir)/../texk/seetexk/ac/withenable.ac \ $(top_srcdir)/../texk/tex4htk/ac/withenable.ac \ - $(top_srcdir)/../texk/ttf2pk/ac/withenable.ac \ $(top_srcdir)/../texk/ttf2pk2/ac/withenable.ac \ $(top_srcdir)/../texk/ttfdump/ac/withenable.ac \ $(top_srcdir)/../texk/xdvik/ac/withenable.ac \ @@ -184,7 +182,6 @@ am__aclocal_m4_deps = $(top_srcdir)/../m4/kpse-cairo-flags.m4 \ $(top_srcdir)/../libs/potrace/ac/withenable.ac \ $(top_srcdir)/../libs/gd/ac/withenable.ac \ $(top_srcdir)/../libs/freetype2/ac/withenable.ac \ - $(top_srcdir)/../libs/freetype/ac/withenable.ac \ $(top_srcdir)/../libs/libpng/ac/withenable.ac \ $(top_srcdir)/../libs/lua52/ac/withenable.ac \ $(top_srcdir)/../libs/zlib/ac/withenable.ac \ diff --git a/Build/source/libs/README b/Build/source/libs/README index 292cd1050d4..8515f1c1d7b 100644 --- a/Build/source/libs/README +++ b/Build/source/libs/README @@ -12,8 +12,6 @@ See also comments in ../texk/README. cairo 1.12.16 - checked 10sep13 http://cairographics.org/releases/ -freetype 1.5 - ? - freetype2 2.5.0.1 - checked 19jun13 http://savannah.nongnu.org/download/freetype/ diff --git a/Build/source/libs/aclocal.m4 b/Build/source/libs/aclocal.m4 index 3351d983ef6..2977c206db3 100644 --- a/Build/source/libs/aclocal.m4 +++ b/Build/source/libs/aclocal.m4 @@ -1186,7 +1186,6 @@ AC_SUBST([am__untar]) m4_include([../m4/kpse-cairo-flags.m4]) m4_include([../m4/kpse-common.m4]) m4_include([../m4/kpse-cxx-hack.m4]) -m4_include([../m4/kpse-freetype-flags.m4]) m4_include([../m4/kpse-freetype2-flags.m4]) m4_include([../m4/kpse-gd-flags.m4]) m4_include([../m4/kpse-graphite2-flags.m4]) diff --git a/Build/source/libs/configure b/Build/source/libs/configure index c7b02c6f43f..66a29f51b99 100755 --- a/Build/source/libs/configure +++ b/Build/source/libs/configure @@ -798,7 +798,6 @@ enable_mendexk enable_ps2pkm enable_seetexk enable_tex4htk -enable_ttf2pk enable_ttf2pk2 enable_ttfdump enable_xdvik @@ -822,9 +821,6 @@ with_system_gd with_gd_includes with_gd_libdir with_system_freetype2 -with_system_freetype -with_freetype_includes -with_freetype_libdir with_system_libpng with_system_zlib with_zlib_includes @@ -867,7 +863,6 @@ pixman potrace gd freetype2 -freetype libpng lua52 zlib' @@ -1599,7 +1594,6 @@ Optional Features: --disable-ps2pkm do not build the ps2pkm package --disable-seetexk do not build the seetexk package --disable-tex4htk do not build the tex4htk package - --enable-ttf2pk build the ttf2pk package --disable-ttf2pk2 do not build the ttf2pk2 package --disable-ttfdump do not build the ttfdump package --disable-xdvik do not build the xdvik package @@ -1677,11 +1671,6 @@ Optional Packages: --with-gd-libdir=DIR gd library installed in DIR --with-system-freetype2 use installed freetype2 headers and library (requires freetype-config) - --with-system-freetype use installed freetype headers and library - --with-freetype-includes=DIR - freetype headers installed in DIR - --with-freetype-libdir=DIR - freetype library installed in DIR --with-system-libpng use installed libpng headers and library (requires pkg-config) --with-system-zlib use installed zlib headers and library @@ -4652,29 +4641,6 @@ test "x$enable_tex4htk" = xno || { need_kpathsea=yes } -## texk/ttf2pk/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory texk/ttf2pk/ -## configure options and TL libraries required for ttf2pk -# Check whether --enable-ttf2pk was given. -if test "${enable_ttf2pk+set}" = set; then : - enableval=$enable_ttf2pk; -fi -case $enable_ttf2pk in #( - yes|no) : - ;; #( - *) : - - enable_ttf2pk=no - { $as_echo "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-ttf2pk=$enable_ttf2pk'" >&5 -$as_echo "$as_me: Assuming \`--enable-ttf2pk=$enable_ttf2pk'" >&6;} - ac_configure_args="$ac_configure_args '--enable-ttf2pk=$enable_ttf2pk'" - ;; -esac - -test "x$enable_ttf2pk" = xno || { - need_kpathsea=yes - need_freetype=yes -} - ## texk/ttf2pk2/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory texk/ttf2pk2/ ## configure options and TL libraries required for ttf2pk # Check whether --enable-ttf2pk2 was given. @@ -5166,36 +5132,6 @@ test "x$need_freetype2" = xyes && { need_zlib=yes } -## libs/freetype/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/freetype/ -## configure options and TL libraries required for freetype - -# Check whether --with-system-freetype was given. -if test "${with_system_freetype+set}" = set; then : - withval=$with_system_freetype; -fi - -# Check whether --with-freetype-includes was given. -if test "${with_freetype_includes+set}" = set; then : - withval=$with_freetype_includes; -fi - -# Check whether --with-freetype-libdir was given. -if test "${with_freetype_libdir+set}" = set; then : - withval=$with_freetype_libdir; -fi -if test "x$with_system_freetype" = x; then - if test -f $srcdir/../libs/freetype/configure; then - { $as_echo "$as_me:${as_lineno-$LINENO}: Assuming \`freetype' headers and library from TL tree" >&5 -$as_echo "$as_me: Assuming \`freetype' headers and library from TL tree" >&6;} - with_system_freetype=no - else - { $as_echo "$as_me:${as_lineno-$LINENO}: Assuming installed \`freetype' headers and library" >&5 -$as_echo "$as_me: Assuming installed \`freetype' headers and library" >&6;} - with_system_freetype=yes - fi - ac_configure_args="$ac_configure_args '--with-system-freetype=$with_system_freetype'" -fi - ## libs/libpng/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/libpng/ ## configure options and TL libraries required for libpng @@ -6367,14 +6303,6 @@ if test -x $srcdir/freetype2/configure; then fi fi -if test -x $srcdir/freetype/configure; then - test "x$with_system_freetype" != xyes && test "x$need_freetype" = xyes && MAKE_SUBDIRS="freetype $MAKE_SUBDIRS" - CONF_SUBDIRS="freetype $CONF_SUBDIRS" - if false; then - subdirs="$subdirs freetype" - - fi -fi if test -x $srcdir/libpng/configure; then test "x$with_system_libpng" != xyes && test "x$need_libpng" = xyes && MAKE_SUBDIRS="libpng $MAKE_SUBDIRS" CONF_SUBDIRS="libpng $CONF_SUBDIRS" diff --git a/Build/source/libs/freetype/ChangeLog b/Build/source/libs/freetype/ChangeLog deleted file mode 100644 index 20256b74a59..00000000000 --- a/Build/source/libs/freetype/ChangeLog +++ /dev/null @@ -1,46 +0,0 @@ -2013-07-06 Peter Breitenlohner <peb@mppmu.mpg.de> - - * Makefile.am: Use ../../am/rebuild.am. - -2012-12-15 Peter Breitenlohner <peb@mppmu.mpg.de> - - * configure.ac: Use KPSE_BASIC. - -2012-05-15 Peter Breitenlohner <peb@mppmu.mpg.de> - - * Makefile.am: Use $(SHELL) for sub-configure. - -2012-03-19 Peter Breitenlohner <peb@mppmu.mpg.de> - - * Makefile.am: Avoid using a 'config.site' file. - -2009-12-12 Peter Breitenlohner <peb@mppmu.mpg.de> - - * Makefile.am: Replace the obsolete $(mkdir_p) by $(MKDIR_P). - -2009-06-19 Peter Breitenlohner <peb@mppmu.mpg.de> - - * freetype-1.5/configure.in, freetype-1.5/configure: avoid lots - of gcc warnings, adding -fno-strict-aliasing to XX_CFLAGS. - -2009-04-22 Peter Breitenlohner <peb@mppmu.mpg.de> - - Adapt to TL2009 build system. - -2008-01-31 Peter Breitenlohner <peb@mppmu.mpg.de> - - Convert from autoconf-2.13 to autoconf-2.59+: - * configure.in: Adapt to autoconf-2.59+ syntax, - revert KPSE_CONFIG_FILES to AC_CONFIG_FILES. - * net.4: Replaced AC_DEFUN(FOO,...) by AC_DEFUN([FOO],...). - * aclocal.m4: Regenerated (aclocal). - * config.guess, config.sub, ltmain.sh: - Regenerated (libtoolize -if). - * configure: Regenerated (autoconf). - -2008-01-23 Karl Berry <karl@tug.org> - - * freetype.ac: call AC_PROG_CPP, else when used from - ttf2pk/configure --with-system-freetype, CPP is not defined. - Report from Jonathan Kew, 3 Nov 2006 11:08:13 ff. - diff --git a/Build/source/libs/freetype/Makefile.am b/Build/source/libs/freetype/Makefile.am deleted file mode 100644 index 3eb7280120b..00000000000 --- a/Build/source/libs/freetype/Makefile.am +++ /dev/null @@ -1,51 +0,0 @@ -## Wrapper Makefile.am to build FreeType for TeX Live. -## -## Copyright (C) 2009-2013 Peter Breitenlohner <tex-live@tug.org> -## -## This file is free software; the copyright holder -## gives unlimited permission to copy and/or distribute it, -## with or without modifications, as long as this notice is preserved. -## -ACLOCAL_AMFLAGS = -I ../../m4 - -## We want to re-distribute the whole original FreeType source tree. -## -EXTRA_DIST = $(FREETYPE_TREE) - -# in case of an SVN repository -dist-hook: - rm -rf `find $(distdir) -name .svn` - -noinst_DATA = libttf.a - -ft-build/Makefile: - rm -rf ft-build - $(MKDIR_P) ft-build - cd ft-build && \ - CC='$(CC)' CONFIG_SITE=/dev/null CONFIG_SHELL='$(SHELL)' \ - $(SHELL) $(abs_srcdir)/$(FREETYPE_TREE)/configure \ - $(config_args) --disable-shared --disable-nls \ - --prefix=$(abs_builddir)/ft-install \ - --libdir=$(abs_builddir) \ - --includedir=$(abs_builddir) - -# Unfortunately the FreeType build system installs the headers after the library; -# to get our dependencies right we wait for a second and then touch the library. -libttf.a: ft-build/Makefile - rm -rf ft-install - cd ft-build/lib \ - && $(MAKE) $(AM_MAKEFLAGS) -f arch/unix/Makefile all \ - && $(MAKE) $(AM_MAKEFLAGS) -f arch/unix/Makefile install - sleep 1 - touch libttf.a - -clean-local: - rm -rf libttf.a freetype ft-build ft-install - -# Rebuild -rebuild_prereq = -rebuild_target = all -CLEANFILES = - -include $(srcdir)/../../am/rebuild.am - diff --git a/Build/source/libs/freetype/Makefile.in b/Build/source/libs/freetype/Makefile.in deleted file mode 100644 index f80114e589e..00000000000 --- a/Build/source/libs/freetype/Makefile.in +++ /dev/null @@ -1,617 +0,0 @@ -# Makefile.in generated by automake 1.14 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2013 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -DIST_COMMON = $(srcdir)/../../am/rebuild.am $(srcdir)/Makefile.in \ - $(srcdir)/Makefile.am $(top_srcdir)/configure \ - $(am__configure_deps) ChangeLog ../../build-aux/compile \ - ../../build-aux/config.guess ../../build-aux/config.sub \ - ../../build-aux/depcomp ../../build-aux/install-sh \ - ../../build-aux/missing ../../build-aux/texinfo.tex \ - ../../build-aux/ylwrap ../../build-aux/ltmain.sh \ - $(top_srcdir)/../../build-aux/compile \ - $(top_srcdir)/../../build-aux/install-sh \ - $(top_srcdir)/../../build-aux/missing -subdir = . -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/../../m4/kpse-common.m4 \ - $(top_srcdir)/../../m4/kpse-warnings.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ - configure.lineno config.status.lineno -mkinstalldirs = $(install_sh) -d -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -SOURCES = -DIST_SOURCES = -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -DATA = $(noinst_DATA) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -distdir = $(PACKAGE)-$(VERSION) -top_distdir = $(distdir) -am__remove_distdir = \ - if test -d "$(distdir)"; then \ - find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ - && rm -rf "$(distdir)" \ - || { sleep 5 && rm -rf "$(distdir)"; }; \ - else :; fi -am__post_remove_distdir = $(am__remove_distdir) -DIST_ARCHIVES = $(distdir).tar.gz -GZIP_ENV = --best -DIST_TARGETS = dist-gzip -distuninstallcheck_listfiles = find . -type f -print -am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ - | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' -distcleancheck_listfiles = find . -type f -print -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EXEEXT = @EXEEXT@ -FREETYPE_TREE = @FREETYPE_TREE@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -WARNING_CFLAGS = @WARNING_CFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build_alias = @build_alias@ -builddir = @builddir@ -config_args = @config_args@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host_alias = @host_alias@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -ACLOCAL_AMFLAGS = -I ../../m4 -EXTRA_DIST = $(FREETYPE_TREE) -noinst_DATA = libttf.a - -# Rebuild -rebuild_prereq = -rebuild_target = all -CLEANFILES = rebuild.stamp -all: all-am - -.SUFFIXES: -am--refresh: Makefile - @: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/../../am/rebuild.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ - $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - echo ' $(SHELL) ./config.status'; \ - $(SHELL) ./config.status;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ - esac; -$(srcdir)/../../am/rebuild.am: - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - $(SHELL) ./config.status --recheck - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - $(am__cd) $(srcdir) && $(AUTOCONF) -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) -$(am__aclocal_m4_deps): -tags TAGS: - -ctags CTAGS: - -cscope cscopelist: - - -distdir: $(DISTFILES) - $(am__remove_distdir) - test -d "$(distdir)" || mkdir "$(distdir)" - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$(top_distdir)" distdir="$(distdir)" \ - dist-hook - -test -n "$(am__skip_mode_fix)" \ - || find "$(distdir)" -type d ! -perm -755 \ - -exec chmod u+rwx,go+rx {} \; -o \ - ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ - || chmod -R a+r "$(distdir)" -dist-gzip: distdir - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(am__post_remove_distdir) - -dist-bzip2: distdir - tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 - $(am__post_remove_distdir) - -dist-lzip: distdir - tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz - $(am__post_remove_distdir) - -dist-xz: distdir - tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz - $(am__post_remove_distdir) - -dist-tarZ: distdir - @echo WARNING: "Support for shar distribution archives is" \ - "deprecated." >&2 - @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 - tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z - $(am__post_remove_distdir) - -dist-shar: distdir - @echo WARNING: "Support for distribution archives compressed with" \ - "legacy program 'compress' is deprecated." >&2 - @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 - shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz - $(am__post_remove_distdir) - -dist-zip: distdir - -rm -f $(distdir).zip - zip -rq $(distdir).zip $(distdir) - $(am__post_remove_distdir) - -dist dist-all: - $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' - $(am__post_remove_distdir) - -# This target untars the dist file and tries a VPATH configuration. Then -# it guarantees that the distribution is self-contained by making another -# tarfile. -distcheck: dist - case '$(DIST_ARCHIVES)' in \ - *.tar.gz*) \ - GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ - *.tar.bz2*) \ - bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ - *.tar.lz*) \ - lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ - *.tar.xz*) \ - xz -dc $(distdir).tar.xz | $(am__untar) ;;\ - *.tar.Z*) \ - uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ - *.shar.gz*) \ - GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ - *.zip*) \ - unzip $(distdir).zip ;;\ - esac - chmod -R a-w $(distdir) - chmod u+w $(distdir) - mkdir $(distdir)/_build $(distdir)/_inst - chmod a-w $(distdir) - test -d $(distdir)/_build || exit 0; \ - dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ - && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ - && am__cwd=`pwd` \ - && $(am__cd) $(distdir)/_build \ - && ../configure --srcdir=.. --prefix="$$dc_install_base" \ - $(AM_DISTCHECK_CONFIGURE_FLAGS) \ - $(DISTCHECK_CONFIGURE_FLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) dvi \ - && $(MAKE) $(AM_MAKEFLAGS) check \ - && $(MAKE) $(AM_MAKEFLAGS) install \ - && $(MAKE) $(AM_MAKEFLAGS) installcheck \ - && $(MAKE) $(AM_MAKEFLAGS) uninstall \ - && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ - distuninstallcheck \ - && chmod -R a-w "$$dc_install_base" \ - && ({ \ - (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ - distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ - } || { rm -rf "$$dc_destdir"; exit 1; }) \ - && rm -rf "$$dc_destdir" \ - && $(MAKE) $(AM_MAKEFLAGS) dist \ - && rm -rf $(DIST_ARCHIVES) \ - && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ - && cd "$$am__cwd" \ - || exit 1 - $(am__post_remove_distdir) - @(echo "$(distdir) archives ready for distribution: "; \ - list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ - sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' -distuninstallcheck: - @test -n '$(distuninstallcheck_dir)' || { \ - echo 'ERROR: trying to run $@ with an empty' \ - '$$(distuninstallcheck_dir)' >&2; \ - exit 1; \ - }; \ - $(am__cd) '$(distuninstallcheck_dir)' || { \ - echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ - exit 1; \ - }; \ - test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ - || { echo "ERROR: files left after uninstall:" ; \ - if test -n "$(DESTDIR)"; then \ - echo " (check DESTDIR support)"; \ - fi ; \ - $(distuninstallcheck_listfiles) ; \ - exit 1; } >&2 -distcleancheck: distclean - @if test '$(srcdir)' = . ; then \ - echo "ERROR: distcleancheck can only run from a VPATH build" ; \ - exit 1 ; \ - fi - @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ - || { echo "ERROR: files left in build directory after distclean:" ; \ - $(distcleancheck_listfiles) ; \ - exit 1; } >&2 -check-am: all-am -check: check-am -all-am: Makefile $(DATA) -installdirs: -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-local mostlyclean-am - -distclean: distclean-am - -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -f Makefile -distclean-am: clean-am distclean-generic - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -rf $(top_srcdir)/autom4te.cache - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: - -.MAKE: install-am install-strip - -.PHONY: all all-am am--refresh check check-am clean clean-generic \ - clean-local cscopelist-am ctags-am dist dist-all dist-bzip2 \ - dist-gzip dist-hook dist-lzip dist-shar dist-tarZ dist-xz \ - dist-zip distcheck distclean distclean-generic distcleancheck \ - distdir distuninstallcheck dvi dvi-am html html-am info \ - info-am install install-am install-data install-data-am \ - install-dvi install-dvi-am install-exec install-exec-am \ - install-html install-html-am install-info install-info-am \ - install-man install-pdf install-pdf-am install-ps \ - install-ps-am install-strip installcheck installcheck-am \ - installdirs maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags-am \ - uninstall uninstall-am - - -# in case of an SVN repository -dist-hook: - rm -rf `find $(distdir) -name .svn` - -ft-build/Makefile: - rm -rf ft-build - $(MKDIR_P) ft-build - cd ft-build && \ - CC='$(CC)' CONFIG_SITE=/dev/null CONFIG_SHELL='$(SHELL)' \ - $(SHELL) $(abs_srcdir)/$(FREETYPE_TREE)/configure \ - $(config_args) --disable-shared --disable-nls \ - --prefix=$(abs_builddir)/ft-install \ - --libdir=$(abs_builddir) \ - --includedir=$(abs_builddir) - -# Unfortunately the FreeType build system installs the headers after the library; -# to get our dependencies right we wait for a second and then touch the library. -libttf.a: ft-build/Makefile - rm -rf ft-install - cd ft-build/lib \ - && $(MAKE) $(AM_MAKEFLAGS) -f arch/unix/Makefile all \ - && $(MAKE) $(AM_MAKEFLAGS) -f arch/unix/Makefile install - sleep 1 - touch libttf.a - -clean-local: - rm -rf libttf.a freetype ft-build ft-install -rebuild.stamp: $(rebuild_target) - echo timestamp >$@ - -.PHONY: rebuild -rebuild: $(rebuild_prereq) - @dry=; for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=*|--*);; \ - *n*) dry=:;; \ - esac; \ - done; \ - if test -f rebuild.stamp; then :; else \ - $$dry trap 'rm -rf rebuild.lock' 1 2 13 15; \ - if $$dry mkdir rebuild.lock 2>/dev/null; then \ - $(MAKE) $(AM_MAKEFLAGS) rebuild.stamp; \ - $$dry rmdir rebuild.lock; \ - else \ - while test -d rebuild.lock && test -z "$$dry"; do sleep 1; done; \ - fi; \ - $$dry test -f rebuild.stamp; exit $$?; \ - fi - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/Build/source/libs/freetype/ac/freetype.ac b/Build/source/libs/freetype/ac/freetype.ac deleted file mode 100644 index 93bc23aa532..00000000000 --- a/Build/source/libs/freetype/ac/freetype.ac +++ /dev/null @@ -1,9 +0,0 @@ -## libs/freetype/ac/freetype.ac: configure.ac fragment for the TeX Live subdirectory libs/freetype/ -dnl -dnl Copyright (C) 2009 Peter Breitenlohner <tex-live@tug.org> -dnl You may freely use, modify and/or distribute this file. -dnl -## basic check of system freetype -KPSE_TRY_LIB([freetype], - [#include <freetype.h>], - [TT_Engine engine; TT_Init_FreeType(&engine);]) diff --git a/Build/source/libs/freetype/ac/withenable.ac b/Build/source/libs/freetype/ac/withenable.ac deleted file mode 100644 index cd0abc14983..00000000000 --- a/Build/source/libs/freetype/ac/withenable.ac +++ /dev/null @@ -1,7 +0,0 @@ -## libs/freetype/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/freetype/ -dnl -dnl Copyright (C) 2009 Peter Breitenlohner <tex-live@tug.org> -dnl You may freely use, modify and/or distribute this file. -dnl -## configure options and TL libraries required for freetype -KPSE_WITH_LIB([freetype]) diff --git a/Build/source/libs/freetype/aclocal.m4 b/Build/source/libs/freetype/aclocal.m4 deleted file mode 100644 index ac1e772d77b..00000000000 --- a/Build/source/libs/freetype/aclocal.m4 +++ /dev/null @@ -1,1187 +0,0 @@ -# generated automatically by aclocal 1.14 -*- Autoconf -*- - -# Copyright (C) 1996-2013 Free Software Foundation, Inc. - -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) -m4_ifndef([AC_AUTOCONF_VERSION], - [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, -[m4_warning([this file was generated for autoconf 2.69. -You have another version of autoconf. It may work, but is not guaranteed to. -If you have problems, you may need to regenerate the build system entirely. -To do so, use the procedure documented by the package, typically 'autoreconf'.])]) - -# Copyright (C) 2002-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_AUTOMAKE_VERSION(VERSION) -# ---------------------------- -# Automake X.Y traces this macro to ensure aclocal.m4 has been -# generated from the m4 files accompanying Automake X.Y. -# (This private macro should not be called outside this file.) -AC_DEFUN([AM_AUTOMAKE_VERSION], -[am__api_version='1.14' -dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to -dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.14], [], - [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl -]) - -# _AM_AUTOCONF_VERSION(VERSION) -# ----------------------------- -# aclocal traces this macro to find the Autoconf version. -# This is a private macro too. Using m4_define simplifies -# the logic in aclocal, which can simply ignore this definition. -m4_define([_AM_AUTOCONF_VERSION], []) - -# AM_SET_CURRENT_AUTOMAKE_VERSION -# ------------------------------- -# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. -# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. -AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.14])dnl -m4_ifndef([AC_AUTOCONF_VERSION], - [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) - -# AM_AUX_DIR_EXPAND -*- Autoconf -*- - -# Copyright (C) 2001-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets -# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to -# '$srcdir', '$srcdir/..', or '$srcdir/../..'. -# -# Of course, Automake must honor this variable whenever it calls a -# tool from the auxiliary directory. The problem is that $srcdir (and -# therefore $ac_aux_dir as well) can be either absolute or relative, -# depending on how configure is run. This is pretty annoying, since -# it makes $ac_aux_dir quite unusable in subdirectories: in the top -# source directory, any form will work fine, but in subdirectories a -# relative path needs to be adjusted first. -# -# $ac_aux_dir/missing -# fails when called from a subdirectory if $ac_aux_dir is relative -# $top_srcdir/$ac_aux_dir/missing -# fails if $ac_aux_dir is absolute, -# fails when called from a subdirectory in a VPATH build with -# a relative $ac_aux_dir -# -# The reason of the latter failure is that $top_srcdir and $ac_aux_dir -# are both prefixed by $srcdir. In an in-source build this is usually -# harmless because $srcdir is '.', but things will broke when you -# start a VPATH build or use an absolute $srcdir. -# -# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, -# iff we strip the leading $srcdir from $ac_aux_dir. That would be: -# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` -# and then we would define $MISSING as -# MISSING="\${SHELL} $am_aux_dir/missing" -# This will work as long as MISSING is not called from configure, because -# unfortunately $(top_srcdir) has no meaning in configure. -# However there are other variables, like CC, which are often used in -# configure, and could therefore not use this "fixed" $ac_aux_dir. -# -# Another solution, used here, is to always expand $ac_aux_dir to an -# absolute PATH. The drawback is that using absolute paths prevent a -# configured tree to be moved without reconfiguration. - -AC_DEFUN([AM_AUX_DIR_EXPAND], -[dnl Rely on autoconf to set up CDPATH properly. -AC_PREREQ([2.50])dnl -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` -]) - -# AM_CONDITIONAL -*- Autoconf -*- - -# Copyright (C) 1997-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_CONDITIONAL(NAME, SHELL-CONDITION) -# ------------------------------------- -# Define a conditional. -AC_DEFUN([AM_CONDITIONAL], -[AC_PREREQ([2.52])dnl - m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], - [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl -AC_SUBST([$1_TRUE])dnl -AC_SUBST([$1_FALSE])dnl -_AM_SUBST_NOTMAKE([$1_TRUE])dnl -_AM_SUBST_NOTMAKE([$1_FALSE])dnl -m4_define([_AM_COND_VALUE_$1], [$2])dnl -if $2; then - $1_TRUE= - $1_FALSE='#' -else - $1_TRUE='#' - $1_FALSE= -fi -AC_CONFIG_COMMANDS_PRE( -[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then - AC_MSG_ERROR([[conditional "$1" was never defined. -Usually this means the macro was only invoked conditionally.]]) -fi])]) - -# Copyright (C) 1999-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - - -# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be -# written in clear, in which case automake, when reading aclocal.m4, -# will think it sees a *use*, and therefore will trigger all it's -# C support machinery. Also note that it means that autoscan, seeing -# CC etc. in the Makefile, will ask for an AC_PROG_CC use... - - -# _AM_DEPENDENCIES(NAME) -# ---------------------- -# See how the compiler implements dependency checking. -# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". -# We try a few techniques and use that to set a single cache variable. -# -# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was -# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular -# dependency, and given that the user is not expected to run this macro, -# just rely on AC_PROG_CC. -AC_DEFUN([_AM_DEPENDENCIES], -[AC_REQUIRE([AM_SET_DEPDIR])dnl -AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl -AC_REQUIRE([AM_MAKE_INCLUDE])dnl -AC_REQUIRE([AM_DEP_TRACK])dnl - -m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], - [$1], [CXX], [depcc="$CXX" am_compiler_list=], - [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], - [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], - [$1], [UPC], [depcc="$UPC" am_compiler_list=], - [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], - [depcc="$$1" am_compiler_list=]) - -AC_CACHE_CHECK([dependency style of $depcc], - [am_cv_$1_dependencies_compiler_type], -[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named 'D' -- because '-MD' means "put the output - # in D". - rm -rf conftest.dir - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_$1_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` - fi - am__universal=false - m4_case([$1], [CC], - [case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac], - [CXX], - [case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac]) - - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with - # Solaris 10 /bin/sh. - echo '/* dummy */' > sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - # We check with '-c' and '-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle '-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs. - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # After this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested. - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok '-c -o', but also, the minuso test has - # not run yet. These depmodes are late enough in the game, and - # so weak that their functioning should not be impacted. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_$1_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_$1_dependencies_compiler_type=none -fi -]) -AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) -AM_CONDITIONAL([am__fastdep$1], [ - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) -]) - - -# AM_SET_DEPDIR -# ------------- -# Choose a directory name for dependency files. -# This macro is AC_REQUIREd in _AM_DEPENDENCIES. -AC_DEFUN([AM_SET_DEPDIR], -[AC_REQUIRE([AM_SET_LEADING_DOT])dnl -AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl -]) - - -# AM_DEP_TRACK -# ------------ -AC_DEFUN([AM_DEP_TRACK], -[AC_ARG_ENABLE([dependency-tracking], [dnl -AS_HELP_STRING( - [--enable-dependency-tracking], - [do not reject slow dependency extractors]) -AS_HELP_STRING( - [--disable-dependency-tracking], - [speeds up one-time build])]) -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' - am__nodep='_no' -fi -AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) -AC_SUBST([AMDEPBACKSLASH])dnl -_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl -AC_SUBST([am__nodep])dnl -_AM_SUBST_NOTMAKE([am__nodep])dnl -]) - -# Generate code to set up dependency tracking. -*- Autoconf -*- - -# Copyright (C) 1999-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - - -# _AM_OUTPUT_DEPENDENCY_COMMANDS -# ------------------------------ -AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], -[{ - # Older Autoconf quotes --file arguments for eval, but not when files - # are listed without --file. Let's play safe and only enable the eval - # if we detect the quoting. - case $CONFIG_FILES in - *\'*) eval set x "$CONFIG_FILES" ;; - *) set x $CONFIG_FILES ;; - esac - shift - for mf - do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named 'Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line - # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`AS_DIRNAME("$mf")` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running 'make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "$am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`AS_DIRNAME(["$file"])` - AS_MKDIR_P([$dirpart/$fdir]) - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done - done -} -])# _AM_OUTPUT_DEPENDENCY_COMMANDS - - -# AM_OUTPUT_DEPENDENCY_COMMANDS -# ----------------------------- -# This macro should only be invoked once -- use via AC_REQUIRE. -# -# This code is only required when automatic dependency tracking -# is enabled. FIXME. This creates each '.P' file that we will -# need in order to bootstrap the dependency handling code. -AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], -[AC_CONFIG_COMMANDS([depfiles], - [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], - [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) -]) - -# Do all the work for Automake. -*- Autoconf -*- - -# Copyright (C) 1996-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This macro actually does too much. Some checks are only needed if -# your package does certain things. But this isn't really a big deal. - -dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. -m4_define([AC_PROG_CC], -m4_defn([AC_PROG_CC]) -[_AM_PROG_CC_C_O -]) - -# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) -# AM_INIT_AUTOMAKE([OPTIONS]) -# ----------------------------------------------- -# The call with PACKAGE and VERSION arguments is the old style -# call (pre autoconf-2.50), which is being phased out. PACKAGE -# and VERSION should now be passed to AC_INIT and removed from -# the call to AM_INIT_AUTOMAKE. -# We support both call styles for the transition. After -# the next Automake release, Autoconf can make the AC_INIT -# arguments mandatory, and then we can depend on a new Autoconf -# release and drop the old call support. -AC_DEFUN([AM_INIT_AUTOMAKE], -[AC_PREREQ([2.65])dnl -dnl Autoconf wants to disallow AM_ names. We explicitly allow -dnl the ones we care about. -m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl -AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl -AC_REQUIRE([AC_PROG_INSTALL])dnl -if test "`cd $srcdir && pwd`" != "`pwd`"; then - # Use -I$(srcdir) only when $(srcdir) != ., so that make's output - # is not polluted with repeated "-I." - AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl - # test to see if srcdir already configured - if test -f $srcdir/config.status; then - AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) - fi -fi - -# test whether we have cygpath -if test -z "$CYGPATH_W"; then - if (cygpath --version) >/dev/null 2>/dev/null; then - CYGPATH_W='cygpath -w' - else - CYGPATH_W=echo - fi -fi -AC_SUBST([CYGPATH_W]) - -# Define the identity of the package. -dnl Distinguish between old-style and new-style calls. -m4_ifval([$2], -[AC_DIAGNOSE([obsolete], - [$0: two- and three-arguments forms are deprecated.]) -m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl - AC_SUBST([PACKAGE], [$1])dnl - AC_SUBST([VERSION], [$2])], -[_AM_SET_OPTIONS([$1])dnl -dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. -m4_if( - m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), - [ok:ok],, - [m4_fatal([AC_INIT should be called with package and version arguments])])dnl - AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl - AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl - -_AM_IF_OPTION([no-define],, -[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) - AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl - -# Some tools Automake needs. -AC_REQUIRE([AM_SANITY_CHECK])dnl -AC_REQUIRE([AC_ARG_PROGRAM])dnl -AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) -AM_MISSING_PROG([AUTOCONF], [autoconf]) -AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) -AM_MISSING_PROG([AUTOHEADER], [autoheader]) -AM_MISSING_PROG([MAKEINFO], [makeinfo]) -AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl -AC_REQUIRE([AC_PROG_MKDIR_P])dnl -# For better backward compatibility. To be removed once Automake 1.9.x -# dies out for good. For more background, see: -# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html> -# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html> -AC_SUBST([mkdir_p], ['$(MKDIR_P)']) -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. -AC_REQUIRE([AC_PROG_AWK])dnl -AC_REQUIRE([AC_PROG_MAKE_SET])dnl -AC_REQUIRE([AM_SET_LEADING_DOT])dnl -_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], - [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], - [_AM_PROG_TAR([v7])])]) -_AM_IF_OPTION([no-dependencies],, -[AC_PROVIDE_IFELSE([AC_PROG_CC], - [_AM_DEPENDENCIES([CC])], - [m4_define([AC_PROG_CC], - m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl -AC_PROVIDE_IFELSE([AC_PROG_CXX], - [_AM_DEPENDENCIES([CXX])], - [m4_define([AC_PROG_CXX], - m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl -AC_PROVIDE_IFELSE([AC_PROG_OBJC], - [_AM_DEPENDENCIES([OBJC])], - [m4_define([AC_PROG_OBJC], - m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl -AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], - [_AM_DEPENDENCIES([OBJCXX])], - [m4_define([AC_PROG_OBJCXX], - m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl -]) -AC_REQUIRE([AM_SILENT_RULES])dnl -dnl The testsuite driver may need to know about EXEEXT, so add the -dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This -dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. -AC_CONFIG_COMMANDS_PRE(dnl -[m4_provide_if([_AM_COMPILER_EXEEXT], - [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl - -# POSIX will say in a future version that running "rm -f" with no argument -# is OK; and we want to be able to make that assumption in our Makefile -# recipes. So use an aggressive probe to check that the usage we want is -# actually supported "in the wild" to an acceptable degree. -# See automake bug#10828. -# To make any issue more visible, cause the running configure to be aborted -# by default if the 'rm' program in use doesn't match our expectations; the -# user can still override this though. -if rm -f && rm -fr && rm -rf; then : OK; else - cat >&2 <<'END' -Oops! - -Your 'rm' program seems unable to run without file operands specified -on the command line, even when the '-f' option is present. This is contrary -to the behaviour of most rm programs out there, and not conforming with -the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542> - -Please tell bug-automake@gnu.org about your system, including the value -of your $PATH and any error possibly output before this message. This -can help us improve future automake versions. - -END - if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then - echo 'Configuration will proceed anyway, since you have set the' >&2 - echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 - echo >&2 - else - cat >&2 <<'END' -Aborting the configuration process, to ensure you take notice of the issue. - -You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: <http://www.gnu.org/software/coreutils/>. - -If you want to complete the configuration process using your problematic -'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM -to "yes", and re-run configure. - -END - AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) - fi -fi]) - -dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not -dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further -dnl mangled by Autoconf and run in a shell conditional statement. -m4_define([_AC_COMPILER_EXEEXT], -m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) - -# When config.status generates a header, we must update the stamp-h file. -# This file resides in the same directory as the config header -# that is generated. The stamp files are numbered to have different names. - -# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the -# loop where config.status creates the headers, so we can generate -# our stamp files there. -AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], -[# Compute $1's index in $config_headers. -_am_arg=$1 -_am_stamp_count=1 -for _am_header in $config_headers :; do - case $_am_header in - $_am_arg | $_am_arg:* ) - break ;; - * ) - _am_stamp_count=`expr $_am_stamp_count + 1` ;; - esac -done -echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) - -# Copyright (C) 2001-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_PROG_INSTALL_SH -# ------------------ -# Define $install_sh. -AC_DEFUN([AM_PROG_INSTALL_SH], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -if test x"${install_sh}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; - *) - install_sh="\${SHELL} $am_aux_dir/install-sh" - esac -fi -AC_SUBST([install_sh])]) - -# Copyright (C) 2003-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# Check whether the underlying file-system supports filenames -# with a leading dot. For instance MS-DOS doesn't. -AC_DEFUN([AM_SET_LEADING_DOT], -[rm -rf .tst 2>/dev/null -mkdir .tst 2>/dev/null -if test -d .tst; then - am__leading_dot=. -else - am__leading_dot=_ -fi -rmdir .tst 2>/dev/null -AC_SUBST([am__leading_dot])]) - -# Add --enable-maintainer-mode option to configure. -*- Autoconf -*- -# From Jim Meyering - -# Copyright (C) 1996-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_MAINTAINER_MODE([DEFAULT-MODE]) -# ---------------------------------- -# Control maintainer-specific portions of Makefiles. -# Default is to disable them, unless 'enable' is passed literally. -# For symmetry, 'disable' may be passed as well. Anyway, the user -# can override the default with the --enable/--disable switch. -AC_DEFUN([AM_MAINTAINER_MODE], -[m4_case(m4_default([$1], [disable]), - [enable], [m4_define([am_maintainer_other], [disable])], - [disable], [m4_define([am_maintainer_other], [enable])], - [m4_define([am_maintainer_other], [enable]) - m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) -AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) - dnl maintainer-mode's default is 'disable' unless 'enable' is passed - AC_ARG_ENABLE([maintainer-mode], - [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode], - am_maintainer_other[ make rules and dependencies not useful - (and sometimes confusing) to the casual installer])], - [USE_MAINTAINER_MODE=$enableval], - [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) - AC_MSG_RESULT([$USE_MAINTAINER_MODE]) - AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) - MAINT=$MAINTAINER_MODE_TRUE - AC_SUBST([MAINT])dnl -] -) - -# Check to see how 'make' treats includes. -*- Autoconf -*- - -# Copyright (C) 2001-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_MAKE_INCLUDE() -# ----------------- -# Check to see how make treats includes. -AC_DEFUN([AM_MAKE_INCLUDE], -[am_make=${MAKE-make} -cat > confinc << 'END' -am__doit: - @echo this is the am__doit target -.PHONY: am__doit -END -# If we don't find an include directive, just comment out the code. -AC_MSG_CHECKING([for style of include used by $am_make]) -am__include="#" -am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# Ignore all kinds of additional output from 'make'. -case `$am_make -s -f confmf 2> /dev/null` in #( -*the\ am__doit\ target*) - am__include=include - am__quote= - _am_result=GNU - ;; -esac -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - case `$am_make -s -f confmf 2> /dev/null` in #( - *the\ am__doit\ target*) - am__include=.include - am__quote="\"" - _am_result=BSD - ;; - esac -fi -AC_SUBST([am__include]) -AC_SUBST([am__quote]) -AC_MSG_RESULT([$_am_result]) -rm -f confinc confmf -]) - -# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- - -# Copyright (C) 1997-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_MISSING_PROG(NAME, PROGRAM) -# ------------------------------ -AC_DEFUN([AM_MISSING_PROG], -[AC_REQUIRE([AM_MISSING_HAS_RUN]) -$1=${$1-"${am_missing_run}$2"} -AC_SUBST($1)]) - -# AM_MISSING_HAS_RUN -# ------------------ -# Define MISSING if not defined so far and test if it is modern enough. -# If it is, set am_missing_run to use it, otherwise, to nothing. -AC_DEFUN([AM_MISSING_HAS_RUN], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -AC_REQUIRE_AUX_FILE([missing])dnl -if test x"${MISSING+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; - *) - MISSING="\${SHELL} $am_aux_dir/missing" ;; - esac -fi -# Use eval to expand $SHELL -if eval "$MISSING --is-lightweight"; then - am_missing_run="$MISSING " -else - am_missing_run= - AC_MSG_WARN(['missing' script is too old or missing]) -fi -]) - -# Helper functions for option handling. -*- Autoconf -*- - -# Copyright (C) 2001-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# _AM_MANGLE_OPTION(NAME) -# ----------------------- -AC_DEFUN([_AM_MANGLE_OPTION], -[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) - -# _AM_SET_OPTION(NAME) -# -------------------- -# Set option NAME. Presently that only means defining a flag for this option. -AC_DEFUN([_AM_SET_OPTION], -[m4_define(_AM_MANGLE_OPTION([$1]), [1])]) - -# _AM_SET_OPTIONS(OPTIONS) -# ------------------------ -# OPTIONS is a space-separated list of Automake options. -AC_DEFUN([_AM_SET_OPTIONS], -[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) - -# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) -# ------------------------------------------- -# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. -AC_DEFUN([_AM_IF_OPTION], -[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) - -# Copyright (C) 1999-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# _AM_PROG_CC_C_O -# --------------- -# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC -# to automatically call this. -AC_DEFUN([_AM_PROG_CC_C_O], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -AC_REQUIRE_AUX_FILE([compile])dnl -AC_LANG_PUSH([C])dnl -AC_CACHE_CHECK( - [whether $CC understands -c and -o together], - [am_cv_prog_cc_c_o], - [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) - # Make sure it works both with $CC and with simple cc. - # Following AC_PROG_CC_C_O, we do the test twice because some - # compilers refuse to overwrite an existing .o file with -o, - # though they will create one. - am_cv_prog_cc_c_o=yes - for am_i in 1 2; do - if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ - && test -f conftest2.$ac_objext; then - : OK - else - am_cv_prog_cc_c_o=no - break - fi - done - rm -f core conftest* - unset am_i]) -if test "$am_cv_prog_cc_c_o" != yes; then - # Losing compiler, so override with the script. - # FIXME: It is wrong to rewrite CC. - # But if we don't then we get into trouble of one sort or another. - # A longer-term fix would be to have automake use am__CC in this case, - # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" - CC="$am_aux_dir/compile $CC" -fi -AC_LANG_POP([C])]) - -# For backward compatibility. -AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) - -# Copyright (C) 2001-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_RUN_LOG(COMMAND) -# ------------------- -# Run COMMAND, save the exit status in ac_status, and log it. -# (This has been adapted from Autoconf's _AC_RUN_LOG macro.) -AC_DEFUN([AM_RUN_LOG], -[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD - ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD - (exit $ac_status); }]) - -# Check to make sure that the build environment is sane. -*- Autoconf -*- - -# Copyright (C) 1996-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_SANITY_CHECK -# --------------- -AC_DEFUN([AM_SANITY_CHECK], -[AC_MSG_CHECKING([whether build environment is sane]) -# Reject unsafe characters in $srcdir or the absolute working directory -# name. Accept space and tab only in the latter. -am_lf=' -' -case `pwd` in - *[[\\\"\#\$\&\'\`$am_lf]]*) - AC_MSG_ERROR([unsafe absolute working directory name]);; -esac -case $srcdir in - *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) - AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; -esac - -# Do 'set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - am_has_slept=no - for am_try in 1 2; do - echo "timestamp, slept: $am_has_slept" > conftest.file - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$[*]" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - if test "$[*]" != "X $srcdir/configure conftest.file" \ - && test "$[*]" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken - alias in your environment]) - fi - if test "$[2]" = conftest.file || test $am_try -eq 2; then - break - fi - # Just in case. - sleep 1 - am_has_slept=yes - done - test "$[2]" = conftest.file - ) -then - # Ok. - : -else - AC_MSG_ERROR([newly created file is older than distributed files! -Check your system clock]) -fi -AC_MSG_RESULT([yes]) -# If we didn't sleep, we still need to ensure time stamps of config.status and -# generated files are strictly newer. -am_sleep_pid= -if grep 'slept: no' conftest.file >/dev/null 2>&1; then - ( sleep 1 ) & - am_sleep_pid=$! -fi -AC_CONFIG_COMMANDS_PRE( - [AC_MSG_CHECKING([that generated files are newer than configure]) - if test -n "$am_sleep_pid"; then - # Hide warnings about reused PIDs. - wait $am_sleep_pid 2>/dev/null - fi - AC_MSG_RESULT([done])]) -rm -f conftest.file -]) - -# Copyright (C) 2009-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_SILENT_RULES([DEFAULT]) -# -------------------------- -# Enable less verbose build rules; with the default set to DEFAULT -# ("yes" being less verbose, "no" or empty being verbose). -AC_DEFUN([AM_SILENT_RULES], -[AC_ARG_ENABLE([silent-rules], [dnl -AS_HELP_STRING( - [--enable-silent-rules], - [less verbose build output (undo: "make V=1")]) -AS_HELP_STRING( - [--disable-silent-rules], - [verbose build output (undo: "make V=0")])dnl -]) -case $enable_silent_rules in @%:@ ((( - yes) AM_DEFAULT_VERBOSITY=0;; - no) AM_DEFAULT_VERBOSITY=1;; - *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; -esac -dnl -dnl A few 'make' implementations (e.g., NonStop OS and NextStep) -dnl do not support nested variable expansions. -dnl See automake bug#9928 and bug#10237. -am_make=${MAKE-make} -AC_CACHE_CHECK([whether $am_make supports nested variables], - [am_cv_make_support_nested_variables], - [if AS_ECHO([['TRUE=$(BAR$(V)) -BAR0=false -BAR1=true -V=1 -am__doit: - @$(TRUE) -.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then - am_cv_make_support_nested_variables=yes -else - am_cv_make_support_nested_variables=no -fi]) -if test $am_cv_make_support_nested_variables = yes; then - dnl Using '$V' instead of '$(V)' breaks IRIX make. - AM_V='$(V)' - AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' -else - AM_V=$AM_DEFAULT_VERBOSITY - AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY -fi -AC_SUBST([AM_V])dnl -AM_SUBST_NOTMAKE([AM_V])dnl -AC_SUBST([AM_DEFAULT_V])dnl -AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl -AC_SUBST([AM_DEFAULT_VERBOSITY])dnl -AM_BACKSLASH='\' -AC_SUBST([AM_BACKSLASH])dnl -_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl -]) - -# Copyright (C) 2001-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_PROG_INSTALL_STRIP -# --------------------- -# One issue with vendor 'install' (even GNU) is that you can't -# specify the program used to strip binaries. This is especially -# annoying in cross-compiling environments, where the build's strip -# is unlikely to handle the host's binaries. -# Fortunately install-sh will honor a STRIPPROG variable, so we -# always use install-sh in "make install-strip", and initialize -# STRIPPROG with the value of the STRIP variable (set by the user). -AC_DEFUN([AM_PROG_INSTALL_STRIP], -[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -# Installed binaries are usually stripped using 'strip' when the user -# run "make install-strip". However 'strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the 'STRIP' environment variable to overrule this program. -dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. -if test "$cross_compiling" != no; then - AC_CHECK_TOOL([STRIP], [strip], :) -fi -INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" -AC_SUBST([INSTALL_STRIP_PROGRAM])]) - -# Copyright (C) 2006-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# _AM_SUBST_NOTMAKE(VARIABLE) -# --------------------------- -# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. -# This macro is traced by Automake. -AC_DEFUN([_AM_SUBST_NOTMAKE]) - -# AM_SUBST_NOTMAKE(VARIABLE) -# -------------------------- -# Public sister of _AM_SUBST_NOTMAKE. -AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) - -# Check how to create a tarball. -*- Autoconf -*- - -# Copyright (C) 2004-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# _AM_PROG_TAR(FORMAT) -# -------------------- -# Check how to create a tarball in format FORMAT. -# FORMAT should be one of 'v7', 'ustar', or 'pax'. -# -# Substitute a variable $(am__tar) that is a command -# writing to stdout a FORMAT-tarball containing the directory -# $tardir. -# tardir=directory && $(am__tar) > result.tar -# -# Substitute a variable $(am__untar) that extract such -# a tarball read from stdin. -# $(am__untar) < result.tar -# -AC_DEFUN([_AM_PROG_TAR], -[# Always define AMTAR for backward compatibility. Yes, it's still used -# in the wild :-( We should find a proper way to deprecate it ... -AC_SUBST([AMTAR], ['$${TAR-tar}']) - -# We'll loop over all known methods to create a tar archive until one works. -_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' - -m4_if([$1], [v7], - [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], - - [m4_case([$1], - [ustar], - [# The POSIX 1988 'ustar' format is defined with fixed-size fields. - # There is notably a 21 bits limit for the UID and the GID. In fact, - # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 - # and bug#13588). - am_max_uid=2097151 # 2^21 - 1 - am_max_gid=$am_max_uid - # The $UID and $GID variables are not portable, so we need to resort - # to the POSIX-mandated id(1) utility. Errors in the 'id' calls - # below are definitely unexpected, so allow the users to see them - # (that is, avoid stderr redirection). - am_uid=`id -u || echo unknown` - am_gid=`id -g || echo unknown` - AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) - if test $am_uid -le $am_max_uid; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - _am_tools=none - fi - AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) - if test $am_gid -le $am_max_gid; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - _am_tools=none - fi], - - [pax], - [], - - [m4_fatal([Unknown tar format])]) - - AC_MSG_CHECKING([how to create a $1 tar archive]) - - # Go ahead even if we have the value already cached. We do so because we - # need to set the values for the 'am__tar' and 'am__untar' variables. - _am_tools=${am_cv_prog_tar_$1-$_am_tools} - - for _am_tool in $_am_tools; do - case $_am_tool in - gnutar) - for _am_tar in tar gnutar gtar; do - AM_RUN_LOG([$_am_tar --version]) && break - done - am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' - am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' - am__untar="$_am_tar -xf -" - ;; - plaintar) - # Must skip GNU tar: if it does not support --format= it doesn't create - # ustar tarball either. - (tar --version) >/dev/null 2>&1 && continue - am__tar='tar chf - "$$tardir"' - am__tar_='tar chf - "$tardir"' - am__untar='tar xf -' - ;; - pax) - am__tar='pax -L -x $1 -w "$$tardir"' - am__tar_='pax -L -x $1 -w "$tardir"' - am__untar='pax -r' - ;; - cpio) - am__tar='find "$$tardir" -print | cpio -o -H $1 -L' - am__tar_='find "$tardir" -print | cpio -o -H $1 -L' - am__untar='cpio -i -H $1 -d' - ;; - none) - am__tar=false - am__tar_=false - am__untar=false - ;; - esac - - # If the value was cached, stop now. We just wanted to have am__tar - # and am__untar set. - test -n "${am_cv_prog_tar_$1}" && break - - # tar/untar a dummy directory, and stop if the command works. - rm -rf conftest.dir - mkdir conftest.dir - echo GrepMe > conftest.dir/file - AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) - rm -rf conftest.dir - if test -s conftest.tar; then - AM_RUN_LOG([$am__untar <conftest.tar]) - AM_RUN_LOG([cat conftest.dir/file]) - grep GrepMe conftest.dir/file >/dev/null 2>&1 && break - fi - done - rm -rf conftest.dir - - AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) - AC_MSG_RESULT([$am_cv_prog_tar_$1])]) - -AC_SUBST([am__tar]) -AC_SUBST([am__untar]) -]) # _AM_PROG_TAR - -m4_include([../../m4/kpse-common.m4]) -m4_include([../../m4/kpse-warnings.m4]) diff --git a/Build/source/libs/freetype/configure b/Build/source/libs/freetype/configure deleted file mode 100755 index d4b175e48f4..00000000000 --- a/Build/source/libs/freetype/configure +++ /dev/null @@ -1,5691 +0,0 @@ -#! /bin/sh -# Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for FreeType1 (TeX Live) 1.5. -# -# Report bugs to <tex-k@tug.org>. -# -# -# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. -# -# -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi - - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -as_myself= -case $0 in #(( - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break - done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -# Use a proper internal environment variable to ensure we don't fall - # into an infinite loop, continuously re-executing ourselves. - if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then - _as_can_reexec=no; export _as_can_reexec; - # We cannot yet assume a decent shell, so we have to provide a -# neutralization value for shells without unset; and this also -# works around shells that cannot unset nonexistent variables. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -as_fn_exit 255 - fi - # We don't want this to propagate to other subprocesses. - { _as_can_reexec=; unset _as_can_reexec;} -if test "x$CONFIG_SHELL" = x; then - as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which - # is contrary to our usage. Disable this feature. - alias -g '\${1+\"\$@\"}'='\"\$@\"' - setopt NO_GLOB_SUBST -else - case \`(set -o) 2>/dev/null\` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi -" - as_required="as_fn_return () { (exit \$1); } -as_fn_success () { as_fn_return 0; } -as_fn_failure () { as_fn_return 1; } -as_fn_ret_success () { return 0; } -as_fn_ret_failure () { return 1; } - -exitcode=0 -as_fn_success || { exitcode=1; echo as_fn_success failed.; } -as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } -as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } -as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } -if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : - -else - exitcode=1; echo positional parameters were not saved. -fi -test x\$exitcode = x0 || exit 1 -test -x / || exit 1" - as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO - as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO - eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && - test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1" - if (eval "$as_required") 2>/dev/null; then : - as_have_required=yes -else - as_have_required=no -fi - if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : - -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_found=false -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - as_found=: - case $as_dir in #( - /*) - for as_base in sh bash ksh sh5; do - # Try only shells that exist, to save several forks. - as_shell=$as_dir/$as_base - if { test -f "$as_shell" || test -f "$as_shell.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : - CONFIG_SHELL=$as_shell as_have_required=yes - if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : - break 2 -fi -fi - done;; - esac - as_found=false -done -$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : - CONFIG_SHELL=$SHELL as_have_required=yes -fi; } -IFS=$as_save_IFS - - - if test "x$CONFIG_SHELL" != x; then : - export CONFIG_SHELL - # We cannot yet assume a decent shell, so we have to provide a -# neutralization value for shells without unset; and this also -# works around shells that cannot unset nonexistent variables. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -exit 255 -fi - - if test x$as_have_required = xno; then : - $as_echo "$0: This script requires a shell more modern than all" - $as_echo "$0: the shells that I found on your system." - if test x${ZSH_VERSION+set} = xset ; then - $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" - $as_echo "$0: be upgraded to zsh 4.3.4 or later." - else - $as_echo "$0: Please tell bug-autoconf@gnu.org and tex-k@tug.org -$0: about your system, including any error possibly output -$0: before this message. Then install a modern shell, or -$0: manually run the script under such a shell if you do -$0: have one." - fi - exit 1 -fi -fi -fi -SHELL=${CONFIG_SHELL-/bin/sh} -export SHELL -# Unset more variables known to interfere with behavior of common tools. -CLICOLOR_FORCE= GREP_OPTIONS= -unset CLICOLOR_FORCE GREP_OPTIONS - -## --------------------- ## -## M4sh Shell Functions. ## -## --------------------- ## -# as_fn_unset VAR -# --------------- -# Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset - -# as_fn_set_status STATUS -# ----------------------- -# Set $? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} # as_fn_set_status - -# as_fn_exit STATUS -# ----------------- -# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} # as_fn_exit - -# as_fn_mkdir_p -# ------------- -# Create "$as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} # as_fn_mkdir_p - -# as_fn_executable_p FILE -# ----------------------- -# Test if FILE is an executable regular file. -as_fn_executable_p () -{ - test -f "$1" && test -x "$1" -} # as_fn_executable_p -# as_fn_append VAR VALUE -# ---------------------- -# Append the text in VALUE to the end of the definition contained in VAR. Take -# advantage of any shell optimizations that allow amortized linear growth over -# repeated appends, instead of the typical quadratic growth present in naive -# implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -# as_fn_arith ARG... -# ------------------ -# Perform arithmetic evaluation on the ARGs, and store the result in the -# global $as_val. Take advantage of shells that can avoid forks. The arguments -# must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -# as_fn_error STATUS ERROR [LINENO LOG_FD] -# ---------------------------------------- -# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are -# provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - $as_echo "$as_me: error: $2" >&2 - as_fn_exit $as_status -} # as_fn_error - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - - - as_lineno_1=$LINENO as_lineno_1a=$LINENO - as_lineno_2=$LINENO as_lineno_2a=$LINENO - eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && - test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { - # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) - sed -n ' - p - /[$]LINENO/= - ' <$as_myself | - sed ' - s/[$]LINENO.*/&-/ - t lineno - b - :lineno - N - :loop - s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ - t loop - s/-\n.*// - ' >$as_me.lineno && - chmod +x "$as_me.lineno" || - { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } - - # If we had to re-execute with $CONFIG_SHELL, we're ensured to have - # already done that, so ensure we don't try to do so again and fall - # in an infinite loop. This has already happened in practice. - _as_can_reexec=no; export _as_can_reexec - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensitive to this). - . "./$as_me.lineno" - # Exit status is that of the last command. - exit -} - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in #((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -pR' - fi -else - as_ln_s='cp -pR' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -as_test_x='test -x' -as_executable_p=as_fn_executable_p - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -test -n "$DJDIR" || exec 7<&0 </dev/null -exec 6>&1 - -# Name of the host. -# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` - -# -# Initializations. -# -ac_default_prefix=/usr/local -ac_clean_files= -ac_config_libobj_dir=. -LIBOBJS= -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= - -# Identity of this package. -PACKAGE_NAME='FreeType1 (TeX Live)' -PACKAGE_TARNAME='freetype1--tex-live-' -PACKAGE_VERSION='1.5' -PACKAGE_STRING='FreeType1 (TeX Live) 1.5' -PACKAGE_BUGREPORT='tex-k@tug.org' -PACKAGE_URL='' - -ac_unique_file="freetype-1.5/lib/freetype.h" -ac_subst_vars='am__EXEEXT_FALSE -am__EXEEXT_TRUE -LTLIBOBJS -LIBOBJS -FREETYPE_TREE -config_args -build_FALSE -build_TRUE -WARNING_CFLAGS -am__fastdepCC_FALSE -am__fastdepCC_TRUE -CCDEPMODE -am__nodep -AMDEPBACKSLASH -AMDEP_FALSE -AMDEP_TRUE -am__quote -am__include -DEPDIR -OBJEXT -EXEEXT -ac_ct_CC -CPPFLAGS -LDFLAGS -CFLAGS -CC -MAINT -MAINTAINER_MODE_FALSE -MAINTAINER_MODE_TRUE -AM_BACKSLASH -AM_DEFAULT_VERBOSITY -AM_DEFAULT_V -AM_V -am__untar -am__tar -AMTAR -am__leading_dot -SET_MAKE -AWK -mkdir_p -MKDIR_P -INSTALL_STRIP_PROGRAM -STRIP -install_sh -MAKEINFO -AUTOHEADER -AUTOMAKE -AUTOCONF -ACLOCAL -VERSION -PACKAGE -CYGPATH_W -am__isrc -INSTALL_DATA -INSTALL_SCRIPT -INSTALL_PROGRAM -target_alias -host_alias -build_alias -LIBS -ECHO_T -ECHO_N -ECHO_C -DEFS -mandir -localedir -libdir -psdir -pdfdir -dvidir -htmldir -infodir -docdir -oldincludedir -includedir -localstatedir -sharedstatedir -sysconfdir -datadir -datarootdir -libexecdir -sbindir -bindir -program_transform_name -prefix -exec_prefix -PACKAGE_URL -PACKAGE_BUGREPORT -PACKAGE_STRING -PACKAGE_VERSION -PACKAGE_TARNAME -PACKAGE_NAME -PATH_SEPARATOR -SHELL' -ac_subst_files='' -ac_user_opts=' -enable_option_checking -enable_silent_rules -enable_maintainer_mode -enable_dependency_tracking -enable_compiler_warnings -' - ac_precious_vars='build_alias -host_alias -target_alias -CC -CFLAGS -LDFLAGS -LIBS -CPPFLAGS' - - -# Initialize some variables set by options. -ac_init_help= -ac_init_version=false -ac_unrecognized_opts= -ac_unrecognized_sep= -# The variables have the same names as the options, with -# dashes changed to underlines. -cache_file=/dev/null -exec_prefix=NONE -no_create= -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -verbose= -x_includes=NONE -x_libraries=NONE - -# Installation directory options. -# These are left unexpanded so users can "make install exec_prefix=/foo" -# and all the variables that are supposed to be based on exec_prefix -# by default will actually change. -# Use braces instead of parens because sh, perl, etc. also accept them. -# (The list follows the same order as the GNU Coding Standards.) -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datarootdir='${prefix}/share' -datadir='${datarootdir}' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -includedir='${prefix}/include' -oldincludedir='/usr/include' -docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' -infodir='${datarootdir}/info' -htmldir='${docdir}' -dvidir='${docdir}' -pdfdir='${docdir}' -psdir='${docdir}' -libdir='${exec_prefix}/lib' -localedir='${datarootdir}/locale' -mandir='${datarootdir}/man' - -ac_prev= -ac_dashdash= -for ac_option -do - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval $ac_prev=\$ac_option - ac_prev= - continue - fi - - case $ac_option in - *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; - *=) ac_optarg= ;; - *) ac_optarg=yes ;; - esac - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case $ac_dashdash$ac_option in - --) - ac_dashdash=yes ;; - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir=$ac_optarg ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build_alias ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build_alias=$ac_optarg ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file=$ac_optarg ;; - - --config-cache | -C) - cache_file=config.cache ;; - - -datadir | --datadir | --datadi | --datad) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=*) - datadir=$ac_optarg ;; - - -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ - | --dataroo | --dataro | --datar) - ac_prev=datarootdir ;; - -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ - | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) - datarootdir=$ac_optarg ;; - - -disable-* | --disable-*) - ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=no ;; - - -docdir | --docdir | --docdi | --doc | --do) - ac_prev=docdir ;; - -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) - docdir=$ac_optarg ;; - - -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) - ac_prev=dvidir ;; - -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) - dvidir=$ac_optarg ;; - - -enable-* | --enable-*) - ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=\$ac_optarg ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix=$ac_optarg ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he | -h) - ac_init_help=long ;; - -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) - ac_init_help=recursive ;; - -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) - ac_init_help=short ;; - - -host | --host | --hos | --ho) - ac_prev=host_alias ;; - -host=* | --host=* | --hos=* | --ho=*) - host_alias=$ac_optarg ;; - - -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) - ac_prev=htmldir ;; - -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ - | --ht=*) - htmldir=$ac_optarg ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir=$ac_optarg ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir=$ac_optarg ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir=$ac_optarg ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir=$ac_optarg ;; - - -localedir | --localedir | --localedi | --localed | --locale) - ac_prev=localedir ;; - -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) - localedir=$ac_optarg ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst | --locals) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) - localstatedir=$ac_optarg ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir=$ac_optarg ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c | -n) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir=$ac_optarg ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix=$ac_optarg ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix=$ac_optarg ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix=$ac_optarg ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name=$ac_optarg ;; - - -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) - ac_prev=pdfdir ;; - -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) - pdfdir=$ac_optarg ;; - - -psdir | --psdir | --psdi | --psd | --ps) - ac_prev=psdir ;; - -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) - psdir=$ac_optarg ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir=$ac_optarg ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir=$ac_optarg ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site=$ac_optarg ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir=$ac_optarg ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir=$ac_optarg ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target_alias ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target_alias=$ac_optarg ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers | -V) - ac_init_version=: ;; - - -with-* | --with-*) - ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=\$ac_optarg ;; - - -without-* | --without-*) - ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=no ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes=$ac_optarg ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries=$ac_optarg ;; - - -*) as_fn_error $? "unrecognized option: \`$ac_option' -Try \`$0 --help' for more information" - ;; - - *=*) - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` - # Reject names that are not valid shell variable names. - case $ac_envvar in #( - '' | [0-9]* | *[!_$as_cr_alnum]* ) - as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; - esac - eval $ac_envvar=\$ac_optarg - export $ac_envvar ;; - - *) - # FIXME: should be removed in autoconf 3.0. - $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" - ;; - - esac -done - -if test -n "$ac_prev"; then - ac_option=--`echo $ac_prev | sed 's/_/-/g'` - as_fn_error $? "missing argument to $ac_option" -fi - -if test -n "$ac_unrecognized_opts"; then - case $enable_option_checking in - no) ;; - fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; - *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; - esac -fi - -# Check all directory arguments for consistency. -for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ - datadir sysconfdir sharedstatedir localstatedir includedir \ - oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir -do - eval ac_val=\$$ac_var - # Remove trailing slashes. - case $ac_val in - */ ) - ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` - eval $ac_var=\$ac_val;; - esac - # Be sure to have absolute directory names. - case $ac_val in - [\\/$]* | ?:[\\/]* ) continue;; - NONE | '' ) case $ac_var in *prefix ) continue;; esac;; - esac - as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" -done - -# There might be people who depend on the old broken behavior: `$host' -# used to hold the argument of --host etc. -# FIXME: To remove some day. -build=$build_alias -host=$host_alias -target=$target_alias - -# FIXME: To remove some day. -if test "x$host_alias" != x; then - if test "x$build_alias" = x; then - cross_compiling=maybe - elif test "x$build_alias" != "x$host_alias"; then - cross_compiling=yes - fi -fi - -ac_tool_prefix= -test -n "$host_alias" && ac_tool_prefix=$host_alias- - -test "$silent" = yes && exec 6>/dev/null - - -ac_pwd=`pwd` && test -n "$ac_pwd" && -ac_ls_di=`ls -di .` && -ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - as_fn_error $? "working directory cannot be determined" -test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - as_fn_error $? "pwd does not report name of working directory" - - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then the parent directory. - ac_confdir=`$as_dirname -- "$as_myself" || -$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_myself" : 'X\(//\)[^/]' \| \ - X"$as_myself" : 'X\(//\)$' \| \ - X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_myself" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - srcdir=$ac_confdir - if test ! -r "$srcdir/$ac_unique_file"; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r "$srcdir/$ac_unique_file"; then - test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" -fi -ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" -ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" - pwd)` -# When building in place, set srcdir=. -if test "$ac_abs_confdir" = "$ac_pwd"; then - srcdir=. -fi -# Remove unnecessary trailing slashes from srcdir. -# Double slashes in file names in object file debugging info -# mess up M-x gdb in Emacs. -case $srcdir in -*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; -esac -for ac_var in $ac_precious_vars; do - eval ac_env_${ac_var}_set=\${${ac_var}+set} - eval ac_env_${ac_var}_value=\$${ac_var} - eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} - eval ac_cv_env_${ac_var}_value=\$${ac_var} -done - -# -# Report the --help message. -# -if test "$ac_init_help" = "long"; then - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat <<_ACEOF -\`configure' configures FreeType1 (TeX Live) 1.5 to adapt to many kinds of systems. - -Usage: $0 [OPTION]... [VAR=VALUE]... - -To assign environment variables (e.g., CC, CFLAGS...), specify them as -VAR=VALUE. See below for descriptions of some of the useful variables. - -Defaults for the options are specified in brackets. - -Configuration: - -h, --help display this help and exit - --help=short display options specific to this package - --help=recursive display the short help of all the included packages - -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking ...' messages - --cache-file=FILE cache test results in FILE [disabled] - -C, --config-cache alias for \`--cache-file=config.cache' - -n, --no-create do not create output files - --srcdir=DIR find the sources in DIR [configure dir or \`..'] - -Installation directories: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] - -By default, \`make install' will install all the files in -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify -an installation prefix other than \`$ac_default_prefix' using \`--prefix', -for instance \`--prefix=\$HOME'. - -For better control, use the options below. - -Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] - --datadir=DIR read-only architecture-independent data [DATAROOTDIR] - --infodir=DIR info documentation [DATAROOTDIR/info] - --localedir=DIR locale-dependent data [DATAROOTDIR/locale] - --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root - [DATAROOTDIR/doc/freetype1--tex-live-] - --htmldir=DIR html documentation [DOCDIR] - --dvidir=DIR dvi documentation [DOCDIR] - --pdfdir=DIR pdf documentation [DOCDIR] - --psdir=DIR ps documentation [DOCDIR] -_ACEOF - - cat <<\_ACEOF - -Program names: - --program-prefix=PREFIX prepend PREFIX to installed program names - --program-suffix=SUFFIX append SUFFIX to installed program names - --program-transform-name=PROGRAM run sed PROGRAM on installed program names -_ACEOF -fi - -if test -n "$ac_init_help"; then - case $ac_init_help in - short | recursive ) echo "Configuration of FreeType1 (TeX Live) 1.5:";; - esac - cat <<\_ACEOF - -Optional Features: - --disable-option-checking ignore unrecognized --enable/--with options - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --enable-silent-rules less verbose build output (undo: "make V=1") - --disable-silent-rules verbose build output (undo: "make V=0") - --enable-maintainer-mode - enable make rules and dependencies not useful (and - sometimes confusing) to the casual installer - --enable-dependency-tracking - do not reject slow dependency extractors - --disable-dependency-tracking - speeds up one-time build - --enable-compiler-warnings=[no|min|yes|max|all] - Turn on compiler warnings [default: yes if - maintainer-mode, min otherwise] - -Some influential environment variables: - CC C compiler command - CFLAGS C compiler flags - LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a - nonstandard directory <lib dir> - LIBS libraries to pass to the linker, e.g. -l<library> - CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if - you have headers in a nonstandard directory <include dir> - -Use these variables to override the choices made by `configure' or to help -it to find libraries and programs with nonstandard names/locations. - -Report bugs to <tex-k@tug.org>. -_ACEOF -ac_status=$? -fi - -if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d "$ac_dir" || - { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || - continue - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - cd "$ac_dir" || { ac_status=$?; continue; } - # Check for guested configure. - if test -f "$ac_srcdir/configure.gnu"; then - echo && - $SHELL "$ac_srcdir/configure.gnu" --help=recursive - elif test -f "$ac_srcdir/configure"; then - echo && - $SHELL "$ac_srcdir/configure" --help=recursive - else - $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi || ac_status=$? - cd "$ac_pwd" || { ac_status=$?; break; } - done -fi - -test -n "$ac_init_help" && exit $ac_status -if $ac_init_version; then - cat <<\_ACEOF -FreeType1 (TeX Live) configure 1.5 -generated by GNU Autoconf 2.69 - -Copyright (C) 2012 Free Software Foundation, Inc. -This configure script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it. -_ACEOF - exit -fi - -## ------------------------ ## -## Autoconf initialization. ## -## ------------------------ ## - -# ac_fn_c_try_compile LINENO -# -------------------------- -# Try to compile conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext - if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_compile - -# ac_fn_c_try_link LINENO -# ----------------------- -# Try to link conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_link () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext conftest$ac_exeext - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - test -x conftest$ac_exeext - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information - # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would - # interfere with the next link command; also delete a directory that is - # left behind by Apple's compiler. We do this before executing the actions. - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_link -cat >config.log <<_ACEOF -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. - -It was created by FreeType1 (TeX Live) $as_me 1.5, which was -generated by GNU Autoconf 2.69. Invocation command line was - - $ $0 $@ - -_ACEOF -exec 5>>config.log -{ -cat <<_ASUNAME -## --------- ## -## Platform. ## -## --------- ## - -hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` - -/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` -/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` -/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` -/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` - -_ASUNAME - -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - $as_echo "PATH: $as_dir" - done -IFS=$as_save_IFS - -} >&5 - -cat >&5 <<_ACEOF - - -## ----------- ## -## Core tests. ## -## ----------- ## - -_ACEOF - - -# Keep a trace of the command line. -# Strip out --no-create and --no-recursion so they do not pile up. -# Strip out --silent because we don't want to record it for future runs. -# Also quote any args containing shell meta-characters. -# Make two passes to allow for proper duplicate-argument suppression. -ac_configure_args= -ac_configure_args0= -ac_configure_args1= -ac_must_keep_next=false -for ac_pass in 1 2 -do - for ac_arg - do - case $ac_arg in - -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - continue ;; - *\'*) - ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - case $ac_pass in - 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; - 2) - as_fn_append ac_configure_args1 " '$ac_arg'" - if test $ac_must_keep_next = true; then - ac_must_keep_next=false # Got value, back to normal. - else - case $ac_arg in - *=* | --config-cache | -C | -disable-* | --disable-* \ - | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ - | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ - | -with-* | --with-* | -without-* | --without-* | --x) - case "$ac_configure_args0 " in - "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; - esac - ;; - -* ) ac_must_keep_next=true ;; - esac - fi - as_fn_append ac_configure_args " '$ac_arg'" - ;; - esac - done -done -{ ac_configure_args0=; unset ac_configure_args0;} -{ ac_configure_args1=; unset ac_configure_args1;} - -# When interrupted or exit'd, cleanup temporary files, and complete -# config.log. We remove comments because anyway the quotes in there -# would cause problems or look ugly. -# WARNING: Use '\'' to represent an apostrophe within the trap. -# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. -trap 'exit_status=$? - # Save into config.log some information that might help in debugging. - { - echo - - $as_echo "## ---------------- ## -## Cache variables. ## -## ---------------- ##" - echo - # The following way of writing the cache mishandles newlines in values, -( - for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - (set) 2>&1 | - case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - sed -n \ - "s/'\''/'\''\\\\'\'''\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" - ;; #( - *) - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) - echo - - $as_echo "## ----------------- ## -## Output variables. ## -## ----------------- ##" - echo - for ac_var in $ac_subst_vars - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - - if test -n "$ac_subst_files"; then - $as_echo "## ------------------- ## -## File substitutions. ## -## ------------------- ##" - echo - for ac_var in $ac_subst_files - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - fi - - if test -s confdefs.h; then - $as_echo "## ----------- ## -## confdefs.h. ## -## ----------- ##" - echo - cat confdefs.h - echo - fi - test "$ac_signal" != 0 && - $as_echo "$as_me: caught signal $ac_signal" - $as_echo "$as_me: exit $exit_status" - } >&5 - rm -f core *.core core.conftest.* && - rm -f -r conftest* confdefs* conf$$* $ac_clean_files && - exit $exit_status -' 0 -for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal -done -ac_signal=0 - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -f -r conftest* confdefs.h - -$as_echo "/* confdefs.h */" > confdefs.h - -# Predefined preprocessor variables. - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_NAME "$PACKAGE_NAME" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_TARNAME "$PACKAGE_TARNAME" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_VERSION "$PACKAGE_VERSION" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_STRING "$PACKAGE_STRING" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_URL "$PACKAGE_URL" -_ACEOF - - -# Let the site file select an alternate cache file if it wants to. -# Prefer an explicitly selected file to automatically selected ones. -ac_site_file1=NONE -ac_site_file2=NONE -if test -n "$CONFIG_SITE"; then - # We do not want a PATH search for config.site. - case $CONFIG_SITE in #(( - -*) ac_site_file1=./$CONFIG_SITE;; - */*) ac_site_file1=$CONFIG_SITE;; - *) ac_site_file1=./$CONFIG_SITE;; - esac -elif test "x$prefix" != xNONE; then - ac_site_file1=$prefix/share/config.site - ac_site_file2=$prefix/etc/config.site -else - ac_site_file1=$ac_default_prefix/share/config.site - ac_site_file2=$ac_default_prefix/etc/config.site -fi -for ac_site_file in "$ac_site_file1" "$ac_site_file2" -do - test "x$ac_site_file" = xNONE && continue - if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 -$as_echo "$as_me: loading site script $ac_site_file" >&6;} - sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" \ - || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "failed to load site script $ac_site_file -See \`config.log' for more details" "$LINENO" 5; } - fi -done - -if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special files - # actually), so we avoid doing that. DJGPP emulates it as a regular file. - if test /dev/null != "$cache_file" && test -f "$cache_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 -$as_echo "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . "$cache_file";; - *) . "./$cache_file";; - esac - fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 -$as_echo "$as_me: creating cache $cache_file" >&6;} - >$cache_file -fi - -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in $ac_precious_vars; do - eval ac_old_set=\$ac_cv_env_${ac_var}_set - eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val=\$ac_cv_env_${ac_var}_value - eval ac_new_val=\$ac_env_${ac_var}_value - case $ac_old_set,$ac_new_set in - set,) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,);; - *) - if test "x$ac_old_val" != "x$ac_new_val"; then - # differences in whitespace do not lead to failure. - ac_old_val_w=`echo x $ac_old_val` - ac_new_val_w=`echo x $ac_new_val` - if test "$ac_old_val_w" != "$ac_new_val_w"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 -$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - ac_cache_corrupted=: - else - { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 -$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} - eval $ac_var=\$ac_old_val - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 -$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 -$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; - *) ac_arg=$ac_var=$ac_new_val ;; - esac - case " $ac_configure_args " in - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) as_fn_append ac_configure_args " '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 -$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} - as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 -fi -## -------------------- ## -## Main body of script. ## -## -------------------- ## - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - - -ac_aux_dir= -for ac_dir in ../../build-aux "$srcdir"/../../build-aux; do - if test -f "$ac_dir/install-sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f "$ac_dir/install.sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - elif test -f "$ac_dir/shtool"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/shtool install -c" - break - fi -done -if test -z "$ac_aux_dir"; then - as_fn_error $? "cannot find install-sh, install.sh, or shtool in ../../build-aux \"$srcdir\"/../../build-aux" "$LINENO" 5 -fi - -# These three variables are undocumented and unsupported, -# and are intended to be withdrawn in a future Autoconf release. -# They can cause serious problems if a builder's source tree is in a directory -# whose full name contains unusual characters. -ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. -ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. -ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. - - - - -am__api_version='1.14' - -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AmigaOS /C/install, which installs bootblocks on floppy discs -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# OS/2's system install, which has a completely different semantic -# ./install, which can be erroneously created by make from ./install.sh. -# Reject install programs that cannot install multiple files. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 -$as_echo_n "checking for a BSD-compatible install... " >&6; } -if test -z "$INSTALL"; then -if ${ac_cv_path_install+:} false; then : - $as_echo_n "(cached) " >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - # Account for people who put trailing slashes in PATH elements. -case $as_dir/ in #(( - ./ | .// | /[cC]/* | \ - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ - ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ - /usr/ucb/* ) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then - if test $ac_prog = install && - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - elif test $ac_prog = install && - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # program-specific install script used by HP pwplus--don't use. - : - else - rm -rf conftest.one conftest.two conftest.dir - echo one > conftest.one - echo two > conftest.two - mkdir conftest.dir - if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && - test -s conftest.one && test -s conftest.two && - test -s conftest.dir/conftest.one && - test -s conftest.dir/conftest.two - then - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 - fi - fi - fi - done - done - ;; -esac - - done -IFS=$as_save_IFS - -rm -rf conftest.one conftest.two conftest.dir - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL=$ac_cv_path_install - else - # As a last resort, use the slow shell script. Don't cache a - # value for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - INSTALL=$ac_install_sh - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 -$as_echo "$INSTALL" >&6; } - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 -$as_echo_n "checking whether build environment is sane... " >&6; } -# Reject unsafe characters in $srcdir or the absolute working directory -# name. Accept space and tab only in the latter. -am_lf=' -' -case `pwd` in - *[\\\"\#\$\&\'\`$am_lf]*) - as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; -esac -case $srcdir in - *[\\\"\#\$\&\'\`$am_lf\ \ ]*) - as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; -esac - -# Do 'set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - am_has_slept=no - for am_try in 1 2; do - echo "timestamp, slept: $am_has_slept" > conftest.file - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$*" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - if test "$*" != "X $srcdir/configure conftest.file" \ - && test "$*" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - as_fn_error $? "ls -t appears to fail. Make sure there is not a broken - alias in your environment" "$LINENO" 5 - fi - if test "$2" = conftest.file || test $am_try -eq 2; then - break - fi - # Just in case. - sleep 1 - am_has_slept=yes - done - test "$2" = conftest.file - ) -then - # Ok. - : -else - as_fn_error $? "newly created file is older than distributed files! -Check your system clock" "$LINENO" 5 -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -# If we didn't sleep, we still need to ensure time stamps of config.status and -# generated files are strictly newer. -am_sleep_pid= -if grep 'slept: no' conftest.file >/dev/null 2>&1; then - ( sleep 1 ) & - am_sleep_pid=$! -fi - -rm -f conftest.file - -test "$program_prefix" != NONE && - program_transform_name="s&^&$program_prefix&;$program_transform_name" -# Use a double $ so make ignores it. -test "$program_suffix" != NONE && - program_transform_name="s&\$&$program_suffix&;$program_transform_name" -# Double any \ or $. -# By default was `s,x,x', remove it if useless. -ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' -program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` - -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` - -if test x"${MISSING+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; - *) - MISSING="\${SHELL} $am_aux_dir/missing" ;; - esac -fi -# Use eval to expand $SHELL -if eval "$MISSING --is-lightweight"; then - am_missing_run="$MISSING " -else - am_missing_run= - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 -$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} -fi - -if test x"${install_sh}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; - *) - install_sh="\${SHELL} $am_aux_dir/install-sh" - esac -fi - -# Installed binaries are usually stripped using 'strip' when the user -# run "make install-strip". However 'strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the 'STRIP' environment variable to overrule this program. -if test "$cross_compiling" != no; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -set dummy ${ac_tool_prefix}strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_STRIP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$STRIP"; then - ac_cv_prog_STRIP="$STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_STRIP="${ac_tool_prefix}strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 -$as_echo "$STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_STRIP"; then - ac_ct_STRIP=$STRIP - # Extract the first word of "strip", so it can be a program name with args. -set dummy strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_STRIP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_STRIP"; then - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_STRIP="strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 -$as_echo "$ac_ct_STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_STRIP" = x; then - STRIP=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - STRIP=$ac_ct_STRIP - fi -else - STRIP="$ac_cv_prog_STRIP" -fi - -fi -INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 -$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } -if test -z "$MKDIR_P"; then - if ${ac_cv_path_mkdir+:} false; then : - $as_echo_n "(cached) " >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in mkdir gmkdir; do - for ac_exec_ext in '' $ac_executable_extensions; do - as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue - case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( - 'mkdir (GNU coreutils) '* | \ - 'mkdir (coreutils) '* | \ - 'mkdir (fileutils) '4.1*) - ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext - break 3;; - esac - done - done - done -IFS=$as_save_IFS - -fi - - test -d ./--version && rmdir ./--version - if test "${ac_cv_path_mkdir+set}" = set; then - MKDIR_P="$ac_cv_path_mkdir -p" - else - # As a last resort, use the slow shell script. Don't cache a - # value for MKDIR_P within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - MKDIR_P="$ac_install_sh -d" - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 -$as_echo "$MKDIR_P" >&6; } - -for ac_prog in gawk mawk nawk awk -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_AWK+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$AWK"; then - ac_cv_prog_AWK="$AWK" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_AWK="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -AWK=$ac_cv_prog_AWK -if test -n "$AWK"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 -$as_echo "$AWK" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$AWK" && break -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } -set x ${MAKE-make} -ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat >conftest.make <<\_ACEOF -SHELL = /bin/sh -all: - @echo '@@@%%%=$(MAKE)=@@@%%%' -_ACEOF -# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. -case `${MAKE-make} -f conftest.make 2>/dev/null` in - *@@@%%%=?*=@@@%%%*) - eval ac_cv_prog_make_${ac_make}_set=yes;; - *) - eval ac_cv_prog_make_${ac_make}_set=no;; -esac -rm -f conftest.make -fi -if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - SET_MAKE= -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - SET_MAKE="MAKE=${MAKE-make}" -fi - -rm -rf .tst 2>/dev/null -mkdir .tst 2>/dev/null -if test -d .tst; then - am__leading_dot=. -else - am__leading_dot=_ -fi -rmdir .tst 2>/dev/null - -# Check whether --enable-silent-rules was given. -if test "${enable_silent_rules+set}" = set; then : - enableval=$enable_silent_rules; -fi - -case $enable_silent_rules in # ((( - yes) AM_DEFAULT_VERBOSITY=0;; - no) AM_DEFAULT_VERBOSITY=1;; - *) AM_DEFAULT_VERBOSITY=1;; -esac -am_make=${MAKE-make} -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 -$as_echo_n "checking whether $am_make supports nested variables... " >&6; } -if ${am_cv_make_support_nested_variables+:} false; then : - $as_echo_n "(cached) " >&6 -else - if $as_echo 'TRUE=$(BAR$(V)) -BAR0=false -BAR1=true -V=1 -am__doit: - @$(TRUE) -.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then - am_cv_make_support_nested_variables=yes -else - am_cv_make_support_nested_variables=no -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 -$as_echo "$am_cv_make_support_nested_variables" >&6; } -if test $am_cv_make_support_nested_variables = yes; then - AM_V='$(V)' - AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' -else - AM_V=$AM_DEFAULT_VERBOSITY - AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY -fi -AM_BACKSLASH='\' - -DEPDIR="${am__leading_dot}deps" - -ac_config_commands="$ac_config_commands depfiles" - - -am_make=${MAKE-make} -cat > confinc << 'END' -am__doit: - @echo this is the am__doit target -.PHONY: am__doit -END -# If we don't find an include directive, just comment out the code. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 -$as_echo_n "checking for style of include used by $am_make... " >&6; } -am__include="#" -am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# Ignore all kinds of additional output from 'make'. -case `$am_make -s -f confmf 2> /dev/null` in #( -*the\ am__doit\ target*) - am__include=include - am__quote= - _am_result=GNU - ;; -esac -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - case `$am_make -s -f confmf 2> /dev/null` in #( - *the\ am__doit\ target*) - am__include=.include - am__quote="\"" - _am_result=BSD - ;; - esac -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 -$as_echo "$_am_result" >&6; } -rm -f confinc confmf - -# Check whether --enable-dependency-tracking was given. -if test "${enable_dependency_tracking+set}" = set; then : - enableval=$enable_dependency_tracking; -fi - -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' - am__nodep='_no' -fi - if test "x$enable_dependency_tracking" != xno; then - AMDEP_TRUE= - AMDEP_FALSE='#' -else - AMDEP_TRUE='#' - AMDEP_FALSE= -fi - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl.exe -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -fi - -fi - - -test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "no acceptable C compiler found in \$PATH -See \`config.log' for more details" "$LINENO" 5; } - -# Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" -# Try to create an executable without -o first, disregard a.out. -# It will help us diagnose broken compilers, and finding out an intuition -# of exeext. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 -$as_echo_n "checking whether the C compiler works... " >&6; } -ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` - -# The possible output files: -ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" - -ac_rmfiles= -for ac_file in $ac_files -do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - * ) ac_rmfiles="$ac_rmfiles $ac_file";; - esac -done -rm -f $ac_rmfiles - -if { { ac_try="$ac_link_default" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link_default") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. -# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' -# in a Makefile. We should not override ac_cv_exeext if it was cached, -# so that the user can short-circuit this test for compilers unknown to -# Autoconf. -for ac_file in $ac_files '' -do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) - ;; - [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) - if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; - then :; else - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - fi - # We set ac_cv_exeext here because the later test for it is not - # safe: cross compilers may not add the suffix if given an `-o' - # argument, so we may need to know it at that point already. - # Even if this section looks crufty: it has the advantage of - # actually working. - break;; - * ) - break;; - esac -done -test "$ac_cv_exeext" = no && ac_cv_exeext= - -else - ac_file='' -fi -if test -z "$ac_file"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -$as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "C compiler cannot create executables -See \`config.log' for more details" "$LINENO" 5; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 -$as_echo_n "checking for C compiler default output file name... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 -$as_echo "$ac_file" >&6; } -ac_exeext=$ac_cv_exeext - -rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 -$as_echo_n "checking for suffix of executables... " >&6; } -if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - # If both `conftest.exe' and `conftest' are `present' (well, observable) -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -# work properly (i.e., refer to `conftest.exe'), while it won't with -# `rm'. -for ac_file in conftest.exe conftest conftest.*; do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - break;; - * ) break;; - esac -done -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest conftest$ac_cv_exeext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 -$as_echo "$ac_cv_exeext" >&6; } - -rm -f conftest.$ac_ext -EXEEXT=$ac_cv_exeext -ac_exeext=$EXEEXT -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <stdio.h> -int -main () -{ -FILE *f = fopen ("conftest.out", "w"); - return ferror (f) || fclose (f) != 0; - - ; - return 0; -} -_ACEOF -ac_clean_files="$ac_clean_files conftest.out" -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 -$as_echo_n "checking whether we are cross compiling... " >&6; } -if test "$cross_compiling" != yes; then - { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - if { ac_try='./conftest$ac_cv_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details" "$LINENO" 5; } - fi - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 -$as_echo "$cross_compiling" >&6; } - -rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 -$as_echo_n "checking for suffix of object files... " >&6; } -if ${ac_cv_objext+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.o conftest.obj -if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - for ac_file in conftest.o conftest.obj conftest.*; do - test -f "$ac_file" || continue; - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of object files: cannot compile -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest.$ac_cv_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 -$as_echo "$ac_cv_objext" >&6; } -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if ${ac_cv_c_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_compiler_gnu=yes -else - ac_compiler_gnu=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GCC=yes -else - GCC= -fi -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 -$as_echo_n "checking whether $CC accepts -g... " >&6; } -if ${ac_cv_prog_cc_g+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -else - CFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if ${ac_cv_prog_cc_c89+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no -ac_save_CC=$CC -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <stdarg.h> -#include <stdio.h> -struct stat; -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_c89=$ac_arg -fi -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c89" != xno; then : - -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 -$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } -if ${am_cv_prog_cc_c_o+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF - # Make sure it works both with $CC and with simple cc. - # Following AC_PROG_CC_C_O, we do the test twice because some - # compilers refuse to overwrite an existing .o file with -o, - # though they will create one. - am_cv_prog_cc_c_o=yes - for am_i in 1 2; do - if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 - ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } \ - && test -f conftest2.$ac_objext; then - : OK - else - am_cv_prog_cc_c_o=no - break - fi - done - rm -f core conftest* - unset am_i -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 -$as_echo "$am_cv_prog_cc_c_o" >&6; } -if test "$am_cv_prog_cc_c_o" != yes; then - # Losing compiler, so override with the script. - # FIXME: It is wrong to rewrite CC. - # But if we don't then we get into trouble of one sort or another. - # A longer-term fix would be to have automake use am__CC in this case, - # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" - CC="$am_aux_dir/compile $CC" -fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -depcc="$CC" am_compiler_list= - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 -$as_echo_n "checking dependency style of $depcc... " >&6; } -if ${am_cv_CC_dependencies_compiler_type+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named 'D' -- because '-MD' means "put the output - # in D". - rm -rf conftest.dir - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_CC_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` - fi - am__universal=false - case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac - - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with - # Solaris 10 /bin/sh. - echo '/* dummy */' > sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - # We check with '-c' and '-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle '-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs. - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # After this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested. - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok '-c -o', but also, the minuso test has - # not run yet. These depmodes are late enough in the game, and - # so weak that their functioning should not be impacted. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_CC_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_CC_dependencies_compiler_type=none -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 -$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } -CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type - - if - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then - am__fastdepCC_TRUE= - am__fastdepCC_FALSE='#' -else - am__fastdepCC_TRUE='#' - am__fastdepCC_FALSE= -fi - - - -# Check whether --enable-compiler-warnings was given. -if test "${enable_compiler_warnings+set}" = set; then : - enableval=$enable_compiler_warnings; -fi -case $enable_compiler_warnings in #( - no | min | yes | max | all) : - ;; #( - *) : - if test "x$enable_maintainer_mode" = xyes; then : - enable_compiler_warnings=yes -else - enable_compiler_warnings=min -fi ;; -esac - - -if test "`cd $srcdir && pwd`" != "`pwd`"; then - # Use -I$(srcdir) only when $(srcdir) != ., so that make's output - # is not polluted with repeated "-I." - am__isrc=' -I$(srcdir)' - # test to see if srcdir already configured - if test -f $srcdir/config.status; then - as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 - fi -fi - -# test whether we have cygpath -if test -z "$CYGPATH_W"; then - if (cygpath --version) >/dev/null 2>/dev/null; then - CYGPATH_W='cygpath -w' - else - CYGPATH_W=echo - fi -fi - - -# Define the identity of the package. - PACKAGE='freetype1--tex-live-' - VERSION='1.5' - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE "$PACKAGE" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define VERSION "$VERSION" -_ACEOF - -# Some tools Automake needs. - -ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} - - -AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} - - -AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} - - -AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} - - -MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} - -# For better backward compatibility. To be removed once Automake 1.9.x -# dies out for good. For more background, see: -# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html> -# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html> -mkdir_p='$(MKDIR_P)' - -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. -# Always define AMTAR for backward compatibility. Yes, it's still used -# in the wild :-( We should find a proper way to deprecate it ... -AMTAR='$${TAR-tar}' - - -# We'll loop over all known methods to create a tar archive until one works. -_am_tools='gnutar pax cpio none' - -am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' - - - - - - -# POSIX will say in a future version that running "rm -f" with no argument -# is OK; and we want to be able to make that assumption in our Makefile -# recipes. So use an aggressive probe to check that the usage we want is -# actually supported "in the wild" to an acceptable degree. -# See automake bug#10828. -# To make any issue more visible, cause the running configure to be aborted -# by default if the 'rm' program in use doesn't match our expectations; the -# user can still override this though. -if rm -f && rm -fr && rm -rf; then : OK; else - cat >&2 <<'END' -Oops! - -Your 'rm' program seems unable to run without file operands specified -on the command line, even when the '-f' option is present. This is contrary -to the behaviour of most rm programs out there, and not conforming with -the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542> - -Please tell bug-automake@gnu.org about your system, including the value -of your $PATH and any error possibly output before this message. This -can help us improve future automake versions. - -END - if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then - echo 'Configuration will proceed anyway, since you have set the' >&2 - echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 - echo >&2 - else - cat >&2 <<'END' -Aborting the configuration process, to ensure you take notice of the issue. - -You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: <http://www.gnu.org/software/coreutils/>. - -If you want to complete the configuration process using your problematic -'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM -to "yes", and re-run configure. - -END - as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 - fi -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 -$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } - # Check whether --enable-maintainer-mode was given. -if test "${enable_maintainer_mode+set}" = set; then : - enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval -else - USE_MAINTAINER_MODE=no -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 -$as_echo "$USE_MAINTAINER_MODE" >&6; } - if test $USE_MAINTAINER_MODE = yes; then - MAINTAINER_MODE_TRUE= - MAINTAINER_MODE_FALSE='#' -else - MAINTAINER_MODE_TRUE='#' - MAINTAINER_MODE_FALSE= -fi - - MAINT=$MAINTAINER_MODE_TRUE - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler accepts prototypes" >&5 -$as_echo_n "checking whether the compiler accepts prototypes... " >&6; } -if ${kb_cv_c_prototypes+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <stdarg.h> -int -main () -{ -extern void foo(int i,...); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - kb_cv_c_prototypes=yes -else - kb_cv_c_prototypes=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $kb_cv_c_prototypes" >&5 -$as_echo "$kb_cv_c_prototypes" >&6; } -if test "x$kb_cv_c_prototypes" = xno; then - as_fn_error $? "Sorry, your compiler does not understand prototypes." "$LINENO" 5 -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking what warning flags to pass to the C compiler" >&5 -$as_echo_n "checking what warning flags to pass to the C compiler... " >&6; } -if ${kpse_cv_warning_cflags+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "x$GCC" = xyes; then - kpse_cv_warning_cflags= -if test "x$enable_compiler_warnings" != xno; then - kpse_cv_warning_cflags="-Wimplicit -Wreturn-type" - case `$CC -dumpversion` in #( - 3.4.* | 4.*) : - kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wdeclaration-after-statement" ;; #( - *) : - ;; -esac - case `$CC -dumpversion` in #( - 3.[234].* | 4.*) : - kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wno-unknown-pragmas" ;; #( - *) : - ;; -esac - if test "x$enable_compiler_warnings" != xmin; then - kpse_cv_warning_cflags="-Wall -Wunused $kpse_cv_warning_cflags" - kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wmissing-prototypes -Wmissing-declarations" - if test "x$enable_compiler_warnings" != xyes; then - kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wparentheses -Wswitch -Wtrigraphs -Wpointer-arith" - kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wcast-qual -Wcast-align -Wwrite-strings" - case `$CC -dumpversion` in #( - 3.4.* | 4.*) : - kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wold-style-definition" ;; #( - *) : - ;; -esac - if test "x$enable_compiler_warnings" != xmax; then - kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wshadow" - fi - fi - fi -fi -elif test "x$enable_compiler_warnings" = xno; then - kpse_cv_warning_cflags= -else - kpse_cv_warning_cflags= # FIXME: warning flags for non-GNU C compilers -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $kpse_cv_warning_cflags" >&5 -$as_echo "$kpse_cv_warning_cflags" >&6; } -WARNING_CFLAGS=$kpse_cv_warning_cflags - - - - - - - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl.exe -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -fi - -fi - - -test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "no acceptable C compiler found in \$PATH -See \`config.log' for more details" "$LINENO" 5; } - -# Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if ${ac_cv_c_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_compiler_gnu=yes -else - ac_compiler_gnu=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GCC=yes -else - GCC= -fi -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 -$as_echo_n "checking whether $CC accepts -g... " >&6; } -if ${ac_cv_prog_cc_g+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -else - CFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if ${ac_cv_prog_cc_c89+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no -ac_save_CC=$CC -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <stdarg.h> -#include <stdio.h> -struct stat; -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_c89=$ac_arg -fi -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c89" != xno; then : - -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 -$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } -if ${am_cv_prog_cc_c_o+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF - # Make sure it works both with $CC and with simple cc. - # Following AC_PROG_CC_C_O, we do the test twice because some - # compilers refuse to overwrite an existing .o file with -o, - # though they will create one. - am_cv_prog_cc_c_o=yes - for am_i in 1 2; do - if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 - ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } \ - && test -f conftest2.$ac_objext; then - : OK - else - am_cv_prog_cc_c_o=no - break - fi - done - rm -f core conftest* - unset am_i -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 -$as_echo "$am_cv_prog_cc_c_o" >&6; } -if test "$am_cv_prog_cc_c_o" != yes; then - # Losing compiler, so override with the script. - # FIXME: It is wrong to rewrite CC. - # But if we don't then we get into trouble of one sort or another. - # A longer-term fix would be to have automake use am__CC in this case, - # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" - CC="$am_aux_dir/compile $CC" -fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -depcc="$CC" am_compiler_list= - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 -$as_echo_n "checking dependency style of $depcc... " >&6; } -if ${am_cv_CC_dependencies_compiler_type+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named 'D' -- because '-MD' means "put the output - # in D". - rm -rf conftest.dir - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_CC_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` - fi - am__universal=false - case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac - - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with - # Solaris 10 /bin/sh. - echo '/* dummy */' > sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - # We check with '-c' and '-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle '-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs. - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # After this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested. - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok '-c -o', but also, the minuso test has - # not run yet. These depmodes are late enough in the game, and - # so weak that their functioning should not be impacted. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_CC_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_CC_dependencies_compiler_type=none -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 -$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } -CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type - - if - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then - am__fastdepCC_TRUE= - am__fastdepCC_FALSE='#' -else - am__fastdepCC_TRUE='#' - am__fastdepCC_FALSE= -fi - - - - if test "x$enable_build" != xno; then - build_TRUE= - build_FALSE='#' -else - build_TRUE='#' - build_FALSE= -fi - - -if test "x$host" = x; then - config_args= -else - config_args="--host=$host" - if test "x$build" != x; then - config_args="$config_args --build=$build" - fi -fi - - -FREETYPE_TREE=freetype-1.5 - - -ac_config_files="$ac_config_files Makefile" - - -cat >confcache <<\_ACEOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs, see configure's option --config-cache. -# It is not useful on other systems. If it contains results you don't -# want to keep, you may remove or edit it. -# -# config.status only pays attention to the cache file if you give it -# the --recheck option to rerun configure. -# -# `ac_cv_env_foo' variables (set or unset) will be overridden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the -# following values. - -_ACEOF - -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, we kill variables containing newlines. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -( - for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - - (set) 2>&1 | - case $as_nl`(ac_space=' '; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - # `set' does not quote correctly, so add quotes: double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \. - sed -n \ - "s/'/'\\\\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; #( - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) | - sed ' - /^ac_cv_env_/b end - t clear - :clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - :end' >>confcache -if diff "$cache_file" confcache >/dev/null 2>&1; then :; else - if test -w "$cache_file"; then - if test "x$cache_file" != "x/dev/null"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 -$as_echo "$as_me: updating cache $cache_file" >&6;} - if test ! -f "$cache_file" || test -h "$cache_file"; then - cat confcache >"$cache_file" - else - case $cache_file in #( - */* | ?:*) - mv -f confcache "$cache_file"$$ && - mv -f "$cache_file"$$ "$cache_file" ;; #( - *) - mv -f confcache "$cache_file" ;; - esac - fi - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 -$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} - fi -fi -rm -f confcache - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -# Transform confdefs.h into DEFS. -# Protect against shell expansion while executing Makefile rules. -# Protect against Makefile macro expansion. -# -# If the first sed substitution is executed (which looks for macros that -# take arguments), then branch to the quote section. Otherwise, -# look for a macro that doesn't take arguments. -ac_script=' -:mline -/\\$/{ - N - s,\\\n,, - b mline -} -t clear -:clear -s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g -t quote -s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g -t quote -b any -:quote -s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g -s/\[/\\&/g -s/\]/\\&/g -s/\$/$$/g -H -:any -${ - g - s/^\n// - s/\n/ /g - p -} -' -DEFS=`sed -n "$ac_script" confdefs.h` - - -ac_libobjs= -ac_ltlibobjs= -U= -for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue - # 1. Remove the extension, and $U if already installed. - ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' - ac_i=`$as_echo "$ac_i" | sed "$ac_script"` - # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR - # will be set to the directory where LIBOBJS objects are built. - as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" - as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' -done -LIBOBJS=$ac_libobjs - -LTLIBOBJS=$ac_ltlibobjs - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 -$as_echo_n "checking that generated files are newer than configure... " >&6; } - if test -n "$am_sleep_pid"; then - # Hide warnings about reused PIDs. - wait $am_sleep_pid 2>/dev/null - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 -$as_echo "done" >&6; } - if test -n "$EXEEXT"; then - am__EXEEXT_TRUE= - am__EXEEXT_FALSE='#' -else - am__EXEEXT_TRUE='#' - am__EXEEXT_FALSE= -fi - -if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then - as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then - as_fn_error $? "conditional \"AMDEP\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - as_fn_error $? "conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - as_fn_error $? "conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${build_TRUE}" && test -z "${build_FALSE}"; then - as_fn_error $? "conditional \"build\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi - -: "${CONFIG_STATUS=./config.status}" -ac_write_fail=0 -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 -$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} -as_write_fail=0 -cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 -#! $SHELL -# Generated by $as_me. -# Run this file to recreate the current configuration. -# Compiler output produced by configure, useful for debugging -# configure, is in config.log if it exists. - -debug=false -ac_cs_recheck=false -ac_cs_silent=false - -SHELL=\${CONFIG_SHELL-$SHELL} -export SHELL -_ASEOF -cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi - - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -as_myself= -case $0 in #(( - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break - done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - - -# as_fn_error STATUS ERROR [LINENO LOG_FD] -# ---------------------------------------- -# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are -# provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - $as_echo "$as_me: error: $2" >&2 - as_fn_exit $as_status -} # as_fn_error - - -# as_fn_set_status STATUS -# ----------------------- -# Set $? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} # as_fn_set_status - -# as_fn_exit STATUS -# ----------------- -# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} # as_fn_exit - -# as_fn_unset VAR -# --------------- -# Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset -# as_fn_append VAR VALUE -# ---------------------- -# Append the text in VALUE to the end of the definition contained in VAR. Take -# advantage of any shell optimizations that allow amortized linear growth over -# repeated appends, instead of the typical quadratic growth present in naive -# implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -# as_fn_arith ARG... -# ------------------ -# Perform arithmetic evaluation on the ARGs, and store the result in the -# global $as_val. Take advantage of shells that can avoid forks. The arguments -# must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in #((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -pR' - fi -else - as_ln_s='cp -pR' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - - -# as_fn_mkdir_p -# ------------- -# Create "$as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} # as_fn_mkdir_p -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - - -# as_fn_executable_p FILE -# ----------------------- -# Test if FILE is an executable regular file. -as_fn_executable_p () -{ - test -f "$1" && test -x "$1" -} # as_fn_executable_p -as_test_x='test -x' -as_executable_p=as_fn_executable_p - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -exec 6>&1 -## ----------------------------------- ## -## Main body of $CONFIG_STATUS script. ## -## ----------------------------------- ## -_ASEOF -test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# Save the log message, to keep $0 and so on meaningful, and to -# report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. -ac_log=" -This file was extended by FreeType1 (TeX Live) $as_me 1.5, which was -generated by GNU Autoconf 2.69. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $0 $@ - -on `(hostname || uname -n) 2>/dev/null | sed 1q` -" - -_ACEOF - -case $ac_config_files in *" -"*) set x $ac_config_files; shift; ac_config_files=$*;; -esac - - - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# Files that config.status was made for. -config_files="$ac_config_files" -config_commands="$ac_config_commands" - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -ac_cs_usage="\ -\`$as_me' instantiates files and other configuration actions -from templates according to the current configuration. Unless the files -and actions are specified as TAGs, all are instantiated by default. - -Usage: $0 [OPTION]... [TAG]... - - -h, --help print this help, then exit - -V, --version print version number and configuration settings, then exit - --config print configuration, then exit - -q, --quiet, --silent - do not print progress messages - -d, --debug don't remove temporary files - --recheck update $as_me by reconfiguring in the same conditions - --file=FILE[:TEMPLATE] - instantiate the configuration file FILE - -Configuration files: -$config_files - -Configuration commands: -$config_commands - -Report bugs to <tex-k@tug.org>." - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" -ac_cs_version="\\ -FreeType1 (TeX Live) config.status 1.5 -configured by $0, generated by GNU Autoconf 2.69, - with options \\"\$ac_cs_config\\" - -Copyright (C) 2012 Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." - -ac_pwd='$ac_pwd' -srcdir='$srcdir' -INSTALL='$INSTALL' -MKDIR_P='$MKDIR_P' -AWK='$AWK' -test -n "\$AWK" || AWK=awk -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# The default lists apply if the user does not specify any file. -ac_need_defaults=: -while test $# != 0 -do - case $1 in - --*=?*) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` - ac_shift=: - ;; - --*=) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg= - ac_shift=: - ;; - *) - ac_option=$1 - ac_optarg=$2 - ac_shift=shift - ;; - esac - - case $ac_option in - # Handling of the options. - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - ac_cs_recheck=: ;; - --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) - $as_echo "$ac_cs_version"; exit ;; - --config | --confi | --conf | --con | --co | --c ) - $as_echo "$ac_cs_config"; exit ;; - --debug | --debu | --deb | --de | --d | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - '') as_fn_error $? "missing file argument" ;; - esac - as_fn_append CONFIG_FILES " '$ac_optarg'" - ac_need_defaults=false;; - --he | --h | --help | --hel | -h ) - $as_echo "$ac_cs_usage"; exit ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil | --si | --s) - ac_cs_silent=: ;; - - # This is an error. - -*) as_fn_error $? "unrecognized option: \`$1' -Try \`$0 --help' for more information." ;; - - *) as_fn_append ac_config_targets " $1" - ac_need_defaults=false ;; - - esac - shift -done - -ac_configure_extra_args= - -if $ac_cs_silent; then - exec 6>/dev/null - ac_configure_extra_args="$ac_configure_extra_args --silent" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -if \$ac_cs_recheck; then - set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion - shift - \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 - CONFIG_SHELL='$SHELL' - export CONFIG_SHELL - exec "\$@" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -## Running $as_me. ## -_ASBOX - $as_echo "$ac_log" -} >&5 - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# -# INIT-COMMANDS -# -AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - -# Handling of arguments. -for ac_config_target in $ac_config_targets -do - case $ac_config_target in - "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; - "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; - - *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; - esac -done - - -# If the user did not use the arguments to specify the items to instantiate, -# then the envvar interface is used. Set only those that are not. -# We use the long form for the default assignment because of an extremely -# bizarre bug on SunOS 4.1.3. -if $ac_need_defaults; then - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files - test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands -fi - -# Have a temporary directory for convenience. Make it in the build tree -# simply because there is no reason against having it here, and in addition, -# creating and moving files from /tmp can sometimes cause problems. -# Hook for its removal unless debugging. -# Note that there is a small window in which the directory will not be cleaned: -# after its creation but before its name has been assigned to `$tmp'. -$debug || -{ - tmp= ac_tmp= - trap 'exit_status=$? - : "${ac_tmp:=$tmp}" - { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status -' 0 - trap 'as_fn_exit 1' 1 2 13 15 -} -# Create a (secure) tmp directory for tmp files. - -{ - tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -d "$tmp" -} || -{ - tmp=./conf$$-$RANDOM - (umask 077 && mkdir "$tmp") -} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 -ac_tmp=$tmp - -# Set up the scripts for CONFIG_FILES section. -# No need to generate them if there are no CONFIG_FILES. -# This happens for instance with `./config.status config.h'. -if test -n "$CONFIG_FILES"; then - - -ac_cr=`echo X | tr X '\015'` -# On cygwin, bash can eat \r inside `` if the user requested igncr. -# But we know of no other shell where ac_cr would be empty at this -# point, so we can use a bashism as a fallback. -if test "x$ac_cr" = x; then - eval ac_cr=\$\'\\r\' -fi -ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null` -if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then - ac_cs_awk_cr='\\r' -else - ac_cs_awk_cr=$ac_cr -fi - -echo 'BEGIN {' >"$ac_tmp/subs1.awk" && -_ACEOF - - -{ - echo "cat >conf$$subs.awk <<_ACEOF" && - echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && - echo "_ACEOF" -} >conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 -ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` -ac_delim='%!_!# ' -for ac_last_try in false false false false false :; do - . ./conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - - ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` - if test $ac_delim_n = $ac_delim_num; then - break - elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done -rm -f conf$$subs.sh - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && -_ACEOF -sed -n ' -h -s/^/S["/; s/!.*/"]=/ -p -g -s/^[^!]*!// -:repl -t repl -s/'"$ac_delim"'$// -t delim -:nl -h -s/\(.\{148\}\)..*/\1/ -t more1 -s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ -p -n -b repl -:more1 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t nl -:delim -h -s/\(.\{148\}\)..*/\1/ -t more2 -s/["\\]/\\&/g; s/^/"/; s/$/"/ -p -b -:more2 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t delim -' <conf$$subs.awk | sed ' -/^[^""]/{ - N - s/\n// -} -' >>$CONFIG_STATUS || ac_write_fail=1 -rm -f conf$$subs.awk -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -_ACAWK -cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && - for (key in S) S_is_set[key] = 1 - FS = "" - -} -{ - line = $ 0 - nfields = split(line, field, "@") - substed = 0 - len = length(field[1]) - for (i = 2; i < nfields; i++) { - key = field[i] - keylen = length(key) - if (S_is_set[key]) { - value = S[key] - line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) - len += length(value) + length(field[++i]) - substed = 1 - } else - len += 1 + keylen - } - - print line -} - -_ACAWK -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then - sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" -else - cat -fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ - || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 -_ACEOF - -# VPATH may cause trouble with some makes, so we remove sole $(srcdir), -# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and -# trailing colons and then remove the whole line if VPATH becomes empty -# (actually we leave an empty line to preserve line numbers). -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ -h -s/// -s/^/:/ -s/[ ]*$/:/ -s/:\$(srcdir):/:/g -s/:\${srcdir}:/:/g -s/:@srcdir@:/:/g -s/^:*// -s/:*$// -x -s/\(=[ ]*\).*/\1/ -G -s/\n// -s/^[^=]*=[ ]*$// -}' -fi - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -fi # test -n "$CONFIG_FILES" - - -eval set X " :F $CONFIG_FILES :C $CONFIG_COMMANDS" -shift -for ac_tag -do - case $ac_tag in - :[FHLC]) ac_mode=$ac_tag; continue;; - esac - case $ac_mode$ac_tag in - :[FHL]*:*);; - :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; - :[FH]-) ac_tag=-:-;; - :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; - esac - ac_save_IFS=$IFS - IFS=: - set x $ac_tag - IFS=$ac_save_IFS - shift - ac_file=$1 - shift - - case $ac_mode in - :L) ac_source=$1;; - :[FH]) - ac_file_inputs= - for ac_f - do - case $ac_f in - -) ac_f="$ac_tmp/stdin";; - *) # Look for the file first in the build tree, then in the source tree - # (if the path is not absolute). The absolute path cannot be DOS-style, - # because $ac_f cannot contain `:'. - test -f "$ac_f" || - case $ac_f in - [\\/$]*) false;; - *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; - esac || - as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; - esac - case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac - as_fn_append ac_file_inputs " '$ac_f'" - done - - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - configure_input='Generated from '` - $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' - `' by configure.' - if test x"$ac_file" != x-; then - configure_input="$ac_file. $configure_input" - { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 -$as_echo "$as_me: creating $ac_file" >&6;} - fi - # Neutralize special characters interpreted by sed in replacement strings. - case $configure_input in #( - *\&* | *\|* | *\\* ) - ac_sed_conf_input=`$as_echo "$configure_input" | - sed 's/[\\\\&|]/\\\\&/g'`;; #( - *) ac_sed_conf_input=$configure_input;; - esac - - case $ac_tag in - *:-:* | *:-) cat >"$ac_tmp/stdin" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; - esac - ;; - esac - - ac_dir=`$as_dirname -- "$ac_file" || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - as_dir="$ac_dir"; as_fn_mkdir_p - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - - case $ac_mode in - :F) - # - # CONFIG_FILE - # - - case $INSTALL in - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; - *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; - esac - ac_MKDIR_P=$MKDIR_P - case $MKDIR_P in - [\\/$]* | ?:[\\/]* ) ;; - */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; - esac -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# If the template does not know about datarootdir, expand it. -# FIXME: This hack should be removed a few years after 2.60. -ac_datarootdir_hack=; ac_datarootdir_seen= -ac_sed_dataroot=' -/datarootdir/ { - p - q -} -/@datadir@/p -/@docdir@/p -/@infodir@/p -/@localedir@/p -/@mandir@/p' -case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in -*datarootdir*) ac_datarootdir_seen=yes;; -*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 -$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - ac_datarootdir_hack=' - s&@datadir@&$datadir&g - s&@docdir@&$docdir&g - s&@infodir@&$infodir&g - s&@localedir@&$localedir&g - s&@mandir@&$mandir&g - s&\\\${datarootdir}&$datarootdir&g' ;; -esac -_ACEOF - -# Neutralize VPATH when `$srcdir' = `.'. -# Shell code in configure.ac might set extrasub. -# FIXME: do we really want to maintain this feature? -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_sed_extra="$ac_vpsub -$extrasub -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s|@configure_input@|$ac_sed_conf_input|;t t -s&@top_builddir@&$ac_top_builddir_sub&;t t -s&@top_build_prefix@&$ac_top_build_prefix&;t t -s&@srcdir@&$ac_srcdir&;t t -s&@abs_srcdir@&$ac_abs_srcdir&;t t -s&@top_srcdir@&$ac_top_srcdir&;t t -s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t -s&@builddir@&$ac_builddir&;t t -s&@abs_builddir@&$ac_abs_builddir&;t t -s&@abs_top_builddir@&$ac_abs_top_builddir&;t t -s&@INSTALL@&$ac_INSTALL&;t t -s&@MKDIR_P@&$ac_MKDIR_P&;t t -$ac_datarootdir_hack -" -eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ - >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - -test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ - "$ac_tmp/out"`; test -z "$ac_out"; } && - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&5 -$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&2;} - - rm -f "$ac_tmp/stdin" - case $ac_file in - -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; - *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; - esac \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - ;; - - - :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 -$as_echo "$as_me: executing $ac_file commands" >&6;} - ;; - esac - - - case $ac_file$ac_mode in - "depfiles":C) test x"$AMDEP_TRUE" != x"" || { - # Older Autoconf quotes --file arguments for eval, but not when files - # are listed without --file. Let's play safe and only enable the eval - # if we detect the quoting. - case $CONFIG_FILES in - *\'*) eval set x "$CONFIG_FILES" ;; - *) set x $CONFIG_FILES ;; - esac - shift - for mf - do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named 'Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line - # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`$as_dirname -- "$mf" || -$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$mf" : 'X\(//\)[^/]' \| \ - X"$mf" : 'X\(//\)$' \| \ - X"$mf" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$mf" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running 'make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "$am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`$as_dirname -- "$file" || -$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$file" : 'X\(//\)[^/]' \| \ - X"$file" : 'X\(//\)$' \| \ - X"$file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - as_dir=$dirpart/$fdir; as_fn_mkdir_p - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done - done -} - ;; - - esac -done # for ac_tag - - -as_fn_exit 0 -_ACEOF -ac_clean_files=$ac_clean_files_save - -test $ac_write_fail = 0 || - as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 - - -# configure is writing to config.log, and then calls config.status. -# config.status does its own redirection, appending to config.log. -# Unfortunately, on DOS this fails, as config.log is still kept open -# by configure, so config.status won't be able to write to it; its -# output is simply discarded. So we exec the FD to /dev/null, -# effectively closing config.log, so it can be properly (re)opened and -# appended to by config.status. When coming back to configure, we -# need to make the FD available again. -if test "$no_create" != yes; then - ac_cs_success=: - ac_config_status_args= - test "$silent" = yes && - ac_config_status_args="$ac_config_status_args --quiet" - exec 5>/dev/null - $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false - exec 5>>config.log - # Use ||, not &&, to avoid exiting from the if with $? = 1, which - # would make configure fail if this is the last instruction. - $ac_cs_success || as_fn_exit 1 -fi -if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 -$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} -fi - diff --git a/Build/source/libs/freetype/configure.ac b/Build/source/libs/freetype/configure.ac deleted file mode 100644 index b58bccec12d..00000000000 --- a/Build/source/libs/freetype/configure.ac +++ /dev/null @@ -1,37 +0,0 @@ -dnl Process this file with autoconf to produce a configure script. -dnl -dnl Copyright (C) 2009, 2013 Peter Breitenlohner <tex-live@tug.org> -dnl -dnl This file is free software; the copyright holder -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. -dnl -m4_define([freetype_version], [1.5])[]dnl using unmodified?? freetype-1.5 source tree -AC_INIT([FreeType1 (TeX Live)], freetype_version, [tex-k@tug.org]) -AC_PREREQ([2.65]) -AC_CONFIG_SRCDIR([freetype-]freetype_version[/lib/freetype.h]) -AC_CONFIG_AUX_DIR([../../build-aux]) -AC_CONFIG_MACRO_DIR([../../m4]) - -KPSE_BASIC([freetype]) - -AC_PROG_CC - -AM_CONDITIONAL([build], [test "x$enable_build" != xno]) - -if test "x$host" = x; then - config_args= -else - config_args="--host=$host" - if test "x$build" != x; then - config_args="$config_args --build=$build" - fi -fi -AC_SUBST([config_args]) - -FREETYPE_TREE=[freetype-]freetype_version -AC_SUBST([FREETYPE_TREE]) - -AC_CONFIG_FILES([Makefile]) - -AC_OUTPUT diff --git a/Build/source/libs/freetype/freetype-1.5/.cvsignore b/Build/source/libs/freetype/freetype-1.5/.cvsignore deleted file mode 100644 index acd3f61f5f7..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/.cvsignore +++ /dev/null @@ -1,7 +0,0 @@ -config.cache -MakeSub -Makefile -config.status -libtool -ft_conf.h -config.log diff --git a/Build/source/libs/freetype/freetype-1.5/.cvsignore.delete b/Build/source/libs/freetype/freetype-1.5/.cvsignore.delete deleted file mode 100644 index e69de29bb2d..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/.cvsignore.delete +++ /dev/null diff --git a/Build/source/libs/freetype/freetype-1.5/FILES b/Build/source/libs/freetype/freetype-1.5/FILES deleted file mode 100644 index f626728c73d..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/FILES +++ /dev/null @@ -1,80 +0,0 @@ -This text file contains an overview of this package's directory and -file hierarchy. - - howto/ Various system-specific HOWTOs, explaining how - to compile the library on different platforms. - - lib/ The C engine source directory. - lib/extend Some standard engine extensions. - lib/arch/<system> System-specific configuration header files. - - docs/ Documentation. - docs/image GIF images for documentation. - - test/ The C test programs. - test/arch/<system> System-specific graphics drivers for test - programs. - - contrib/ Contributions directory. - contrib/mac An HQX archive containing a port to the Mac. - contrib/ttf2pk The ttf2pk TrueType to PK converter source - code. - contrib/ttf2pfb The ttf2pfb TrueType to PS font converter - source code. - contrib/ttf2bdf The ttf2bdf TrueType to BDF converter source - code. - contrib/ftos2 The FreeType/2 font server source code for - OS/2. - contrib/ttfbanner An ASCII poster program source code. - - po/ Contributions to the internationalized error - message strings extension. - - pascal/ Used to hold a Pascal version of the engine, - which is now available separately. - - -The following files might be helpful: - -FILES This file. - -readme.1st A notice about the possible interaction of patents -PATENTS owned by Apple on TrueType, with respect to FreeType. - -README A short and general introduction to FreeType. - -INSTALL The FreeType installation How-To. Everything you need - to know to build the library and the test programs. - This file contains only generic explanations. See the - `freetype/howto' directory for system-specific hints. - -license.txt The FreeType licensing conditions. -docs/FTL.txt -docs/GPL.txt - -announce The FreeType UseNet announce post. This file is sent - to some newsgroups when a new release is made. - - -The following files are Unix-specific and can be ignored on other -platforms: - -ft_conf.h.in Generic library configuration header file for - autoconf. -configure.in Generic configure script for autoconf. -configure Configure script generated from `configure.in' by - autoconf. -config.sub Script needed by configure. -config.guess Script needed by configure. -Makefile.in Generic makefile for configure. -MakeSub.in Generic makefile for libtool. -ltconfig Libtool configuration script. -ltmain.sh Libtool script. -mkinstalldirs Tool for generating subdirectories. -aclocal.m4, -net.m4 Auxiliary data files for autoconf. -install-sh Script used to install the library in a portable way -freetype.spec This file can be used as a specification to build RPMs - from the FreeType package. - ---- end of FILES --- diff --git a/Build/source/libs/freetype/freetype-1.5/INSTALL b/Build/source/libs/freetype/freetype-1.5/INSTALL deleted file mode 100644 index 42ce7020a8b..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/INSTALL +++ /dev/null @@ -1,733 +0,0 @@ - - The FreeType compilation guide - - -Table of contents ------------------ - - I. Introduction - - II. Compiling and installing the C library - - 1. Choosing a configuration file - 2. Compiling the library - 3. System-specific builds - 4. Compiling the extensions - 5. Using a Makefile - 6. Building a dynamic library (`so' or `DLL') - 7. Internationalization and the `ftxerr18' extension - 8. TrueType patents - - -III. Compiling the test programs - - 1. Compiling the graphics sub-system - 2. Internationalization on Unix - 3. Compiling the test programs - 4. The `fdebug' program - - - IV. Compiling the Pascal source - - --------------------------------------------------------------------- - - - -I. Introduction -=============== - - This file gives detailed information on how to compile and install - this release of FreeType on your system. - - -******************************************************************** -* * -* FOR A QUICK INSTALLATION GUIDE, WE STRONGLY RECOMMEND TO READ * -* THE SYSTEM-SPECIFIC DOCUMENTS LOCATED IN THE `howto' DIRECTORY * -* INSTEAD OF THIS GENERIC DOCUMENTATION. * -* * -******************************************************************** - - - This package, known as the FreeType 1.5 Public Release, contains - several things which are best described by the directories - containing them: - - - `lib' - - Contains the 1.5 release of the FreeType library. It is written - in portable ANSI C and should compile fine with any type of ANSI - C compiler. - - Note however that some system-specific files are provided in the - `lib/arch' directory, in order to provide enhanced performance. - - If you need to include FreeType in a graphics library or an - embedded system, you will most probably only need to use its - contents and discard the rest. - - - `test' - - Contains test and demo programs used during development. Note - that some of these programs might not compile on all platforms, - as they need to display graphics. - - - `po' - - On Unix, all of FreeType test programs support - internationalization through the use of the `gettext' library. - This directory contains `po' files, which are used to translate - the original English text into language-specific one. - - Note also that this release contains an extension, called - `ftxerr18' used to return internationalized strings from the - usual FreeType error codes. The `po' files also contain - translations for this extension. - - If you don't plan to use `ftxerr18' or internationalization, - simply ignore it. Note also that even if `gettext' isn't - available on your system, the test programs will be compiled - correctly (using the `--disable-nls' configure switch). - - - `contrib' - - Contains a set of contributed tools and utilities related to - TrueType or FreeType. Here you can find real situations how to - use the library. - - - This file explains how to compile the library, and the test - programs on various platforms. - - - -II. Compiling the C library -=========================== - - -******************************************************************** -* * -* NOTE THAT WE STRONGLY RECOMMEND TO READ THE SYSTEM-SPECIFIC * -* DOCUMENTS LOCATED IN THE `howto' DIRECTORY FOR A * -* `QUICK'N'EASY' COMPILATION & INSTALLATION GUIDE ON YOUR * -* PLATFORM. THE FOLLOWING IS A VERY DETAILED EXPLANATION ON HOW * -* TO COMPILE THE LIBRARY. * -* * -******************************************************************** - - - The following concepts are important to build the library. - - - 1. Choosing a configuration file - -------------------------------- - - The source code for the C library is located in the `lib' - directory. - - It uses a file named `ft_conf.h', which contains the definitions - of many configuration macros to toggle various engine features, - as well as tell system-specific information (e.g., the size of - the `int' type in bytes, etc). - - There are several configuration files provided with this - release. They are located in the `lib/arch/<system>' directory, - where <system> stands for a given architecture or environment. - - For example, the file `lib/arch/ansi/ft_conf.h' can be used to - build the library with any ANSI-compliant compiler and runtime - library. - - This release also provides configuration files for the following - systems: MS-DOS, OS/2, Unix, VMS, Win 16, Win 32, Amiga OS, Mac, - and BeOS. - - Make sure, when compiling each source file of the FreeType - library, to include the path to your configuration file in your - include directories. - - - 2. Compiling the library - ------------------------ - - The library can be quickly compiled by invoking a Makefile, as - described in the system-specific documents in the `howto' - directory. - - We will now describe how to compile the library by hand. - - Traditionally, building a library like FreeType needs the - following steps: - - - Compile each individual `.c' file into the corresponding - object file, whose extension might be `.o' or `.obj', - depending on the platform. - - - Group all object files into a library (e.g. `libfreetype.a' or - `freetype.lib'), which is later used at link time to build the - executables using it. - - For example, to build a static FreeType library on an ANSI - system, with gcc, one should type - - cd lib # go to `lib' directory - gcc -c -I arch/ansi tt*.c # compile base engine sources - ar -r libfreetype.a tt*.o # create library from objects - - Note that we included the path to the configuration file in the - include list during compilation, by using the `-I' switch on the - `arch/ansi' directory. This is required to use the - configuration file named `lib/arch/ansi/ft_conf.h'. - - However, we recommend you to build the base FreeType engine as a - SINGLE OBJECT FILE, i.e., a single `freetype.o' or - `freetype.obj' file containing all the code for the base engine. - It works by including all the `.c' files in a single one, and - has a few advantages over a `traditional build': - - - Because all the code is `part' of a single source file, many - internal functions need not be declared as `extern' anymore. - - This means that when compiling the engine as a dynamic - library, only FreeType external functions will (correctly) be - exported as entry points. - - This also typically allows the compiler to perform more - aggressive optimizations on the source code, and results in - somewhat faster and/or smaller overall code size depending on - your compiler and environment. - - - Compilation speed is greatly improved, as the pre-processor - and compiler need to be called only once, instead of a dozen - times. - - - During development, this allows to detect very easily - unresolved dependencies regarding the base engine's internal - symbols. - - To compile the engine as a single object file, simply go to the - `lib' directory and compile the file - `lib/arch/<system>/freetype.c'. - - For example, to compile the ANSI build with gcc in SINGLE OBJECT - MODE, use - - cd lib - gcc -c -I arch/ansi -I . arch/ansi/freetype.c - - This will create a single file called `freetype.o' containing - the object code for the base TrueType engine. - - Note that we did include the paths to the configuration file - (i.e. `arch/ansi') AND to the current directory (i.e. `.', - where the included source files are located). - - `freetype.o' only contains the base engine. Extensions to the - engine are located in the `lib/extend' directory and must be - compiled separately as described later. - - - 3. System-specific builds - ------------------------- - - The files `ttfile.c', `ttmemory.c', and `ttmutex.c' are used to - provide an implementation of i/o access, memory management, and - thread synchronization for the rest of the library. - - These source files, located in the `lib' directory, use the ANSI - C library for i/o and memory, and simply ignore threads (as the - C standard doesn't know about threads at all). - - However, this release provides, for each supported platform, - system-specific versions of these files, located in the - `lib/arch/<system>' hierarchy. Here are a few examples: - - lib/arch/os2/os2file.c: - - A replacement for `ttfile' which directly uses OS/2 system - calls for i/o access. This results in slightly better - performance, but much reduced resource requirements. - - lib/arch/unix/ttmmap.c: - - A replacement for `ttfile' which uses memory-mapped files - instead of buffered-based reads on Unix. This increases - *dramatically* the engine's performance when reading font - files and loading glyphs. - - These files are directly included by the platform specific - versions of `freetype.c' which are located in - `lib/arch/<system>'. This means that, by default, the - single-object build of FreeType always chooses the best - implementation available for a supported system. - - Note that it is also possible to redefine `ttmemory' or - `ttmutex' with a similar scheme. This is used, for example, by - the OS/2 font driver based on FreeType (called FreeType/2), - which uses some special system calls to allocate memory - shareable among distinct processes. - - By providing your own version of `ttfile', `ttmemory', and - `ttmutex', you are able to tailor the FreeType engine for - optimal performance and resource usage on your system. - - - 4. Compiling the extensions - --------------------------- - - The base TrueType engine is located in the `lib' directory. - This release also provides many specific extensions in - `lib/extend'. - - An extension is a simple way to extend FreeType's capabilities. - It is used to perform any of the following: - - - Access some TrueType tables that are not loaded and returned - by the base engine, like - - * the kerning table(s) - * the `gasp' table - * the glyph Postscript names - * the OpenType layout tables (GDEF, GPOS, GSUB) - - - Perform some advanced operations on the TrueType data for very - specific uses, like - - * enumerate the contents of a given charmap - * access a font file's embedded bitmaps (called sbits) - * return an array containing the dimensions of each glyph in - the font - - The idea is to keep the base engine small (under 60 kByte), - while providing optional enhancements for specific uses. - - Writing an extension is rather easy. And adding a new extension - to the engine doesn't need any modifications to the base - engine's source code. - - To compile the extensions, simply go to the `lib' directory, - then compile each file in `lib/extend'. Here is an example with - gcc: - - cd lib # go to `lib' - gcc -c -I arch/ansi -I . -I extend extend/ftx*.c - # compile all extensions - - - You can later add each extension object file to the FreeType - library file. For example, here is how to create the static - library on Unix: - - cd lib - # .. compile the engine, then the extensions - ar libfreetype.a *.o # create static library - - - 5. Using a Makefile - ------------------- - - This release also provides Makefiles for many systems and - compilers in the `lib/arch/<system>' hierarchy. For more - information, please read the documentation in the `howto' - directory, which contains system-specific instructions on how to - use them. - - Generally, you should go the `lib' directory, then invoke your - system-specific Makefile from there. Here is an example: - - cd lib - make -farch\msdos\Makefile.TC - - to compile the library under DOS with the Turbo C compiler and - Borland make tool. Or: - - cd lib - wmake -f arch\msdos\Makefile.wat - - to compile it under DOS with the Watcom compiler and wmake tool. - - The ANSI target does not come with a Makefile, as there is no - standard make tool available on all platforms. You will have to - compile the library by hand as described in section I.3. - - Finally, note that most of the makefiles will build the library - in single object mode; for a `traditional compile', try the - `debug' target (i.e., say `make debug'). - - - 6. Building a dynamic library (`so' or `DLL') - --------------------------------------------- - - It is possible to build the engine as a dynamic library. The - method to do so can vary greatly depending on the platform. - - a. Building a shared object on Unix - - NOTE THAT THIS RELEASE USES `libtool' TO AUTOMATICALLY CREATE - A SHARED OBJECT FOR FREETYPE ON UNIX SYSTEMS THAT SUPPORT - DYNAMIC LIBRARIES. WE STRONGLY RECOMMEND YOU TO READ THE - `howto/unix.txt' FILE TO KNOW HOW TO USE THE `configure' - SCRIPT. THIS SUB-SECTION DESCRIBES HOW TO COMPILE THE SHARED - OBJECT BY HAND. - - In order to build a shared object like `libfreetype.so' on - Unix, one has to compile each object file as - position-independent code (a.k.a. PIC). - - We also strongly recommend to build the base engine as a - single object, as this prevents internal `extern' functions to - be exported as entry points (and creating a smaller overall - .so file). - - For example, this with gcc, one can use the `-fPIC' flag when - compiling the object files. Here is an example: - - cd lib # go to `lib' - gcc -c -fPIC -I arch/ansi -I . \ - arch/ansi/freetype.c # compile engine - gcc -c -fPIC -I arch/ansi -I . -I extend - extend/ftx*.c # & extensions - - You can now invoke your linker to create the shared object - from the various object files. See your system's - documentation for details, or read the Unix-specific howto to - know how to do it `easily' through the use of `libtool'. - - b. Building a DLL on Windows or OS/2 - - The dynamic linkers of Windows and OS/2 differ greatly from - Unix ones. - - - The first difference is that the object files that make up - the DLL do not need to be compiled as position-independent - code. - - - The second difference is that the DLL's entry points must - generally be declared as so in the source file, and/or maybe - listed in a `definition' file used at link time when - creating the DLL. - - Each FreeType API function is declared with the help of a - special macro named FT_EXPORT_DEF. For example, here is the - declaration of the function `FT_Init_FreeType', as written in - `freetype.h': - - FT_EXPORT_DEF( TT_Error ) - TT_Init_FreeType( TT_Engine* engine ); - - If the configuration file `ft_conf.h' doesn't define - FT_EXPORT_DEF, it is automatically set to `extern' by default. - - In order to build FreeType as a DLL, one might need to define - FT_EXPORT_DEF in its `ft_conf.h' to the keywords tagging the - function as a DLL entry point. This keyword varies with - compilers and platforms; examples are `__system', - `__dllentry', `_FAR _PASCAL _export' after the type name, etc. - Note that FT_EXPORT_DEF is a (macro) function, taking the type - name as argument, in order to allow the last example. - - Please refer to your compiler's user guide for instructions. - - You can also `grep' for FT_EXPORT_DEF in the `freetype.h' - source file to obtain the list of exported functions of the - FreeType API, which could then be used to write a `def' file - for the DLL. We provide a sample .def file (built with an Unix - script) for Windows. - - Note also that the definition (i.e. its implementation) of - each exported function is preceded with the FT_EXPORT_FUNC - macro, as in - - FT_EXPORT_FUNC( TT_Error ) - TT_Init_FreeType( TT_Engine* engine ) - { - TT_Error error; - ... - } - - (to be found in `ttapi.c'). - - By default, FT_EXPORT_FUNC converts to an empty string, but it - can also be redefined if you need to. - - - 7. Internationalization and the `ftxerr18' extension - ---------------------------------------------------- - - The engine extension named `ftxerr18' is used to convert a - FreeType error code into a human-readable string of text. - - However, it is able to support internationalization on Unix - systems through the use of the `gettext' library. This means - that the error messages will be localized to your system's - language, provided it is available in this release. The - currently available languages are - - - English (by default) - - Czech - - German - - Spanish - - French - - Dutch - - One can add a new language by adding a `.po' file in the `po' - directory. Please read the file `docs/i18n.txt' for more - details on how to use `gettext'. - - In order to enable localization of the `ftxerr18' extension, one - has to set the macro HAVE_LIBINTL_H at compile time. By - default, the extension will build with support for the English - language. - - Unix-specific: ------------------------------------------------- - - Note that the Unix `configure' script that comes with this - release is able to automatically detect whether your system - has `gettext' installed and set HAVE_LIBINTL_H in the - `ft_conf_h' file accordingly. - - To disable internationalization, run `configure' with the - option `--disable-nls' (NLS stands for `National Language - Support'). Then rebuild the library. - - ---------------------------------------------------------------- - - Note that we do not support internationalization on non-Unix - platforms, as the `gettext' library isn't available everywhere, - or does not work in a consistent way in different environments. - - - 8. TrueType patents - ------------------- - - We have recently discovered that Apple owns several patents that - relate to the rendering of TrueType fonts. This could mean that - the free use and distribution of the FreeType library could be - illegal in the US, UK, France, and possibly other countries. - - For more information, please see the FreeType Patents page at: - - http://www.freetype.org/patents.htm - - To avoid problems, we have decided to turn off by default the - compilation of the TrueType bytecode interpreter (which is the - only part of FreeType that might violate an Apple patent). This - has two effects: - - - saving about 18 kbyte of code in the engine - - ignoring completely the grid-fitting of vector outlines, which - results in extremely low quality at small pixel sizes. - - Nevertheless, such an engine can be used by font converters - and/or graphics libraries to display glyphs at high pixel sizes. - - If you believe you can go ahead, this section will now explain - how to build a `complete' engine, at the cost of possible patent - violation. This is done simply by activating the compilation of - the TrueType bytecode interpreter. In order to do so, simply - recompile the library (more exactly, it affects only ttinterp.c) - while #defin'ing TT_CONFIG_OPTION_BYTECODE_INTERPRETER. Look - for the following line in your configuration file `ft_conf.h': - - #undef FT_CONFIG_OPTION_BYTECODE_INTERPRETER - - Then change the `#undef' into a `#define': - - #define FT_CONFIG_OPTION_BYTECODE_INTERPRETER - - Now rebuild the engine with this new configuration file. - - - -III. Compiling the test programs -================================ - - This section explains how to compile the FreeType test programs - located in the `test' directory. Note that you should have - successfully compiled the library, as described in section I - before proceeding. - - WE STRONGLY RECOMMEND TO READ THE SYSTEM-SPECIFIC DOCUMENTS IN THE - `howto' DIRECTORY FOR A `QUICK'N'EASY' GUIDE ON HOW TO COMPILE AND - RUN THE TEST PROGRAMS. - - - 1. Compile the graphics sub-system and utility sources - ------------------------------------------------------ - - Some of the test programs need to display a graphics window to - show their results. In order to do so, they use a tiny graphics - system which was specifically written for FreeType (Note: The - code isn't really clean there -- you have been warned). - - Also, some simple C sources in the `test' directory are utility - functions used by nearly all test programs, and they should also - be compiled before them. These are the following files: - - gmain.h: the sub-system interface - gmain.c: the sub-system device-independent implementation - gevents.h: the definition of the events used by the test - program - gdriver.h: the system-specific device interface - blitter.c: a set of simple bitmap blitting functions - common.c: common routines used by all test programs - display.c: some routines dealing with text display - - as well as a system-specific `graphics driver' located in the - `test/arch/<system>' hierarchy. For example: - - test/arch/msdos/gfs_dos.c: used to display graphics in a - full-screen Dos session - test/arch/os2/gpm_os2.c: used to display graphics in an OS/2 - Presentation Manager window - test/arch/unix/gwin_x11.c: used to display graphics in an X11 - window. - - You must compile the graphics sub-system and utilities before - compiling the test programs. This can be done simply with gcc - as: - - cd test - gcc -c -I../lib gmain.c blitter.c common.c display.c - gcc -c -I../lib -I. arch/<system>/yourdriver.c -o ./gdriver.o - - Note that a given test program may require some specific include - paths (like `/usr/X11/include' with X11 for example). - - The resulting object files can be grouped in a library if you - want to. - - - 2. Internationalization on Unix - ------------------------------- - - On Unix and Unix-like systems, the test programs are able to - support internationalization through the use of the `gettext' - library and the `ftxerr18' engine extension (see section I.7). - - To enable it, one has to compile each test program with the - macro HAVE_LIBINTL_H set. This is the same macro used to enable - it in `ftxerr18'. - - Note that the Unix `configure' script that comes with this - release is able to automatically detect whether `gettext' is - available on your system and set the macro accordingly when - compiling the test programs. - - You can disable internationalisation with the `--disable-nls' - option when invoking the `configure' script. - - - 3. Compile the test programs - ---------------------------- - - All test programs begin with the `ft' prefix in the `test' - directory, as in `ftzoom', `ftdump', `ftmetric'", etc. are test - programs. - - The easiest way to compile the test programs is compiling each - source file to an object file, including the path to the - FreeType engine source and its extensions. You need to use the - following include paths: - - - the path to the engine's public header file, i.e. `freetype.h' - which normally is `lib' - - - the path to the engine's extensions header files, located - normally in `lib/extend' - - - the path to the configuration file `ft_conf.h'. This is only - required to support internationalisation, as the test programs - read `ft_conf.h' only to see whether HAVE_LIBINTL_H is - defined. - - When compiling your own programs to FreeType, you shouldn't - normally need this file and path. - - Here is an example, compiling a test program with the ANSI - build: - - cd test - gcc -c -I../lib -I../lib/extend -I../lib/arch/ansi \ - <program name>.c - - Then, link this object file to the FreeType library, utilities - and graphics sub-system to build an executable. - - You can then invoke each program directly. - - - 4. The `fdebug' test program - ---------------------------- - - All test programs begin with the `ft' prefix (in the `test' - directory) as in `ftzoom', `ftdump', `ftmetric', etc. - - However, one test program named `fdebug' is used exclusively by - FreeType developers. It is a very simple TrueType bytecode - debugger, and was written to inspect the execution of the - TrueType interpreter. - - Note that we rather use the Pascal debugger for real work on the - interpreter, as it provides a much easier windowed interface - through the use of the Turbo Vision library. The C debugger is - mainly used to check that both Pascal and C sources produce the - same output. The Pascal debugger is available in the `ftpascal' - package, it is not included with this release. - - You will need gcc to compile the debugger. It uses a special - build of the FreeType engine to work. Follow these steps to - compile it: - - 1. Ensure the bytecode interpreter is not turned off (using - the debugger with the default build which is patents-compliant - is not really useful). How to process is explained in part 8 - of chapter II above (but of course you should modify the - `ft_conf.h' file which is specific to the debugger). This - implies that you must first be sure that you are really - allowed to use such a version of FreeType. - - 2. Compile the library for the `debugger' system, i.e. - - cd freetype/lib - make -f arch/debugger/Makefile - - this will create a file named `libttf.a' in the directory - `freetype/lib/arch/debugger' which will NOT interfere with - your normal build (which is located in `freetype/lib'). - - 3. Compile the debugger: - - cd freetype/test - make -f arch/debugger/Makefile - - This will create an executable called `fdebug.exe' or - `fdebug', which is linked with the version of the library - found in `freetype/lib/arch/debugger' as described above. - - [For old Unix variants like 4.2BSD please uncomment the flag - HAVE_POSIX_TERMIOS in the makefile.] - - You can invoke the debugger in two ways: - - a. To debug a given glyph program in a given font, type - - fdebug glyph_number pointsize fontfile[.ttf] - - b. To debug a given font's CVT program, type - - fdebug --cvt pointsize fontfile[.ttf] - - Type `?' while running fdebug for a list of key bindings. - - -IV. Compiling the Pascal source -=============================== - - The Pascal source code is no longer part of this package. It has - been moved to another archive (resp. CVS repository). Please - visit http://www.freetype.org for more information. - - ---- end of INSTALL --- diff --git a/Build/source/libs/freetype/freetype-1.5/MakeSub.in b/Build/source/libs/freetype/freetype-1.5/MakeSub.in deleted file mode 100644 index 90d10b9ecae..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/MakeSub.in +++ /dev/null @@ -1,7 +0,0 @@ -# this file is part of the FreeType project - -prefix = @prefix@ -exec_prefix = @exec_prefix@ -libdir = @libdir@ -bindir = @bindir@ -includedir = @includedir@ diff --git a/Build/source/libs/freetype/freetype-1.5/Makefile.in b/Build/source/libs/freetype/freetype-1.5/Makefile.in deleted file mode 100644 index f238b0c4d2a..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/Makefile.in +++ /dev/null @@ -1,70 +0,0 @@ -# Copyright 1996-2001 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. - -RMF = @RM@ -f - -MAKEFILE = arch/unix/Makefile - -FTLIBDIR = lib -FTTESTDIR = test -FTPODIR = po - -all: ttlib tttest ttpo - -debug: ttlibdebug tttest ttpo - -# we can't use the target names 'lib', 'test', etc. -# because make will believe that the directories are -# the targets and are up-to-date! Grrr... >:-( - -ttlib: - cd $(FTLIBDIR); $(MAKE) -f $(MAKEFILE) all - -ttlibdebug: - cd $(FTLIBDIR); $(MAKE) -f $(MAKEFILE) debug - -tttest: - cd $(FTTESTDIR); $(MAKE) -f $(MAKEFILE) all - -ttpo: - cd $(FTPODIR); $(MAKE) all - -install: - cd $(FTLIBDIR); $(MAKE) -f $(MAKEFILE) install - cd $(FTTESTDIR); $(MAKE) -f $(MAKEFILE) install - cd $(FTPODIR); $(MAKE) install - -uninstall: - cd $(FTLIBDIR); $(MAKE) -f $(MAKEFILE) uninstall - cd $(FTTESTDIR); $(MAKE) -f $(MAKEFILE) uninstall - cd $(FTPODIR); $(MAKE) uninstall - -clean: - cd $(FTLIBDIR); $(MAKE) -f $(MAKEFILE) clean - cd $(FTTESTDIR); $(MAKE) -f $(MAKEFILE) clean - cd $(FTPODIR); $(MAKE) clean - -distclean: - cd $(FTLIBDIR); $(MAKE) -f $(MAKEFILE) distclean - cd $(FTTESTDIR); $(MAKE) -f $(MAKEFILE) distclean - cd $(FTPODIR); $(MAKE) distclean - $(RMF) config.cache config.log config.status Makefile \ - MakeSub ft_conf.h libtool - -check: - @echo This package does not yet have a validation suite - -depend: - cd $(FTLIBDIR); $(MAKE) -f $(MAKEFILE) depend - cd $(FTTESTDIR); $(MAKE) -f $(MAKEFILE) depend - -.PHONY: all debug ttlib ttlibdebug tttest ttpo install uninstall \ - clean distclean depend - -# end of Makefile.in diff --git a/Build/source/libs/freetype/freetype-1.5/PATENTS b/Build/source/libs/freetype/freetype-1.5/PATENTS deleted file mode 100644 index ce34bc830a2..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/PATENTS +++ /dev/null @@ -1,28 +0,0 @@ - - FreeType Patents Disclaimer - August 1999 - - - -WE HAVE DISCOVERED THAT APPLE OWNS SEVERAL PATENTS RELATED TO THE -RENDERING OF TRUETYPE FONTS. THIS COULD MEAN THAT THE FREE USE OF -THE FREETYPE LIBRARY MIGHT BE ILLEGAL IN FRANCE, UK, USA, AND -POSSIBLY OTHER COUNTRIES, BE IT IN COMMERCIAL OR OPEN SOURCE -PRODUCTS. - -FOR MORE DETAILS, WE STRONGLY ADVISE YOU TO GO TO THE FREETYPE -PATENTS PAGE AT THE FOLLOWING WEB ADDRESS: - - http://www.freetype.org/patents.html - -WE WILL NOT PLACE INFORMATION IN THIS FILE AS THE SITUATION IS STILL -UNDETERMINED FOR NOW. AT THE TIME THESE LINES ARE WRITTEN, WE HAVE -CONTACTED APPLE'S LEGAL DEPARTMENT AND ARE STILL WAITING FOR THEIR -ANSWER ON THE SUBJECT. - -PLEASE READ THE `INSTALL' FILE TO SEE HOW TO DISABLE THE ENGINE'S -BYTECODE INTERPRETER IN ORDER TO BUILD A PATENT-FREE ENGINE, AT THE -COST OF RENDERING QUALITY. - - ---- end of PATENTS --- diff --git a/Build/source/libs/freetype/freetype-1.5/README b/Build/source/libs/freetype/freetype-1.5/README deleted file mode 100644 index 79dcd59ec3e..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/README +++ /dev/null @@ -1,708 +0,0 @@ - - - Welcome to the - - F R E E T Y P E P R O J E C T - - http://www.freetype.org - - Release 1.5 - - The FREE TrueType Font Engine - - Copyright 1996 David Turner <david.turner@freetype.org> - - 2001 Robert Wilhelm <robert.wilhelm@freetype.org> - Werner Lemberg <werner.lemberg@freetype.org> - - - Table of Contents - ----------------- - - I. Introduction - - II. The FreeType mini-FAQ - - III. How to use the test programs - - 1. ftzoom - 2. ftlint - 3. ftview - 4. fttimer - 5. ftdump - 6. ftstring - 7. ftstrpnm - 8. fterror - 9. ftsbit - 10. ftmetric - 11. ftstrtto - - IV. How to use the programs in the `contrib' directory - - V. Final remarks - - -I. Introduction -=============== - - Please read the file `INSTALL' for installation instructions! - - The FreeType engine is a free and portable TrueType font rendering - engine. It has been developed to provide TrueType support to a - great variety of platforms and environments. - - Notice that FreeType is a *library*. It is *not* a font server - for your preferred environment, even though it has been written to - allow the design of many font servers. - - To our knowledge, this is the only royalty-free complete TrueType - engine available. Moreover, its quality fully matches these of - Windows or the Macintosh, a thing that cannot be said for most - other commercial engines available. - - FreeType is a clean-room implementation that is not derived from - the original TrueType engine developed by Apple and Microsoft. It - has been created with the sole help of the published TrueType - specifications, which, to our great surprise and pain, turned out - to be extremely poor or misleading in critical areas. Much hard - work has been undertaken to solve numerous ambiguities; - nevertheless, its end result is a portable, fast quality renderer! - - The library itself takes about 53 kByte of Intel code, complete - with a TrueType byte-code interpreter and a high-performance - scan-line converter. - - You will find in this release: - - - A TrueType engine, with source code in ANSI C. It has been - successfully compiled and run on various platforms, including - MS-DOS, OS/2, Amiga, Linux, and several other variants of Unix. - It should be portable to many other platforms too. - - - An API to be used by client applications and font servers, - providing several low level abstractions that can be used to - open font files and collections, create point sizes and load, - process and render glyph outlines and bitmaps. - - - Support for the following features: - - o Font smoothing, a.k.a. gray-level rendering. - - Just like Windows 95, the renderer uses a `fine' algorithm - that only smoothes diagonals and curves, while keeping the - horizontal and vertical stems intact. - - This results in glyphs that are much more legible than the - `fuzzy' ones generated by programs like Acrobat. - - o Support for all character mapping formats. - - o A full-featured TrueType byte-code interpreter. - - The engine is able to hint the glyphs to produce excellent - output at small sizes. It was extremely difficult to get this - component right, due to the ambiguous and misleading TrueType - specifications. However, we now *match* Windows and Macintosh - qualities. - - o TrueType collection support, when several fonts are embedded - in the same file. - - o Support for extensions. - - It is now possible to extend the library in parts to support - additional features, like optional tables that are not - considered by the current core engine. - - o Kerning support. - - Provided as a sample extension with this release, kerning - tables can be accessed from a TrueType font for applications - that need it. - - o Support for vertical metrics. - - It is possible to load vertical metrics when they are present - in a font file. Metrics can be retrieved glyph by glyph, - using the loader, or in arrays with a new API. - - o Support for thread-safety and re-entrancy. - - You will only need to specialize the file `ttmutex.c' for your - platform to include system-specific synchronization calls. - - o Support for embedded bitmaps. - - This feature is already used in x-tt, a TrueType font server - for X Window System. - - o Support for OpenType. With this release, GSUB and GPOS have - been completely implemented. - - Note also that: - - - Though development of the library is mainly performed on OS/2 - and Linux, the library does not contain system-specific code. - - - The package contains some graphics drivers used by the test - programs for display purposes on MS-DOS, OS/2, Amiga, X11, and - Windows. These drivers are absolutely not mandatory for running - the FreeType engine. Some console-mode test programs like - `ftlint' or `ftdump' don't use graphics at all. - - - There was a Pascal version that was distributed along with the C - version. Unfortunately, it is not up to date when compared to - the C version, so we decided to split the two projects. If you - are interested, you can find the Pascal version in packages - named like `ftpascal-1.x.tar.gz' or `ftpas1x.zip'. - - - -II. The FreeType mini-FAQ -========================= - - Summary - - 0. Where to find the latest FreeType release? - - 1. Did the API change? - - 2. What does the `Free' in FreeType means? Can you use it in a - commercial product? (YES!) - - 3. I have made a small program based on the test programs but I - would like to know how to do xxx? - - 4. When will I be able to use FreeType to display TrueType fonts - under X11, OS/2 or Wine? (NOW!) - - 5. Trying to compile the FreeType sources gives me lots of - warnings with my ANSI C compliant compiler! - - ------------------------------------------------------------------ - - 0. Where to find the latest FreeType release? - - The latest package is usually uploaded to various source - repositories, like SunSite, SimTel, or Hobbes. There are two - archive formats (zip and tar.gz), which also differ by their - CR/LF conventions. - - * for DOS and OS/2: `ft-15.zip' - - which should be available at: - - Hobbes: ftp://ftp.cdrom.com/pub/os2/misc - SimTel: ftp://ftp.simtel.net/pub/msdos/graphics - - * for UNIX and Amiga: `freetype-1.5.tar.gz' - - look at: - - SunSite: ftp://sunsite.unc.edu/pub/Linux/X11/fonts - - As uploading can take several days before the package becomes - available to the public, we advise you to download it from our - own ftp site if you read this message few days after the - announcement at: - - ftp://ftp.freetype.org/freetype/ - - Our home page is at: - - http://www.freetype.org - - Screen shots are available! - - There are also three mailing lists: - - o announce@freetype.org - - Announcements only about new versions of FreeType and - related packages. This list is moderated and expected to - have very low traffic. - - o freetype@freetype.org - - Discusses general use of FreeType, future, and needed - additions, as well as many other font-related discussions - which do not always relate directly to the FreeType code - itself... - - o devel@freetype.org - - Discusses development, design choices, portability issues, - internals, specific licenses, etc. - - To subscribe, send the usual "subscribe" command to: - - announce-request@freetype.org - freetype-request@freetype.org - devel-request@freetype.org - - To report bugs please use send an e-mail to devel@freetype.org. - - ------------------------------------------------------------------ - - 1. Did the API change since the version 1.2? - - Only very marginally. Please refer to `changes.txt'. - - ------------------------------------------------------------------ - - 2. What does the `Free' in FreeType means? Can you use it in a - commercial product? (YES!) - - We have placed this release under our special FreeType license. - - It was inspired by the BSD, Artistic, and IJG (Independent JPEG - group) licences, which specifically encourage the use of this - software in commercial products! - - The reason we did this is that we believe that TrueType is a - very useful technology, and want to make it available on all - machines and platforms. The license is there to ensure that - the engine can be spread as widely as possible. - - Since version 1.5, you can also optionally choose to use the - GNU Public Licence (GPL) instead. The GPL is used only to allow - GPL-ed applications to use FreeType (since the "disclaimer - clause" is considered an unacceptable "restriction" in GNU - speak); for a commercial product, you should avoid the GPL, and - then elect the FreeType licence. - - However, free does not mean public domain. This engine is - copyrighted by its authors, and they will fiercely defend their - rights. - - ------------------------------------------------------------------ - - 3. I have made a small program based on the test programs but I - would like to know how to do xxx? - - (Where xxx is a feature lacking from the current - implementation). - - First of all, read the documentation. The user guide gives - some basic hints and concepts. You can also read the source - code of the test programs that you didn't consider yet. If - you are really stuck, mail your question to: - - freetype@freetype.org - - We shall try to help you. - - ------------------------------------------------------------------ - - 4. When will I be able to use FreeType to display TrueType fonts - under X11, OS/2, or Wine? - - You can already do that under X11 and OS/2 :-) Go to the - FreeType web page (http://www.freetype.org) for up-to-date - information. - - And yes, it looks terrific! - - For X11, you could also take a look at `xfstt', an independent - TrueType font server for Unix which doesn't rely on the - FreeType code. - - You are welcome to volunteer for other platforms, like: - - Amiga, RISC OS, BeOS, and others - - [Note that the FreeType library is already available with Amiga - and BeOS.] - - Please contact devel@freetype.org for more information. - - ------------------------------------------------------------------ - - 5. Trying to compile the FreeType sources gives me lots of - warnings with my ANSI C compliant compiler! - - We use gcc as our reference compiler for warnings. This means - that we use the `-ansi -pedantic -Wall' flags and try to get - rid of warnings in this situation. - - If you are compiling with another compiler, you may encounter - warnings, not errors. - - We have spent much efforts to reduce seriously the number of - warnings produced by major compilers, including Visual Age, - Visual C++ and Borland C++. - - Note that the Borland compilers seem to produce lots of - irrelevant warnings (like `potential loss of precision'). - - -III. How to use the test programs -================================= - - All test programs having a graphic interface use the same key - convention: - - x : fine counter_clockwise rotation - c : fine clockwise rotation - - v : fast counter_clockwise rotation - b : fast clockwise rotation - - h : toggle hinting on/off - K : toggle kerning on/off - B : toggle display of embedded bitmaps on/off - S : toggle GSUB on/off - P : toggle GPOS on/off - - + : fast scale up - - : fast scale down - u : fine scale up - j : fine scale down - - l : go to next glyph - k : go to previous glyph - - o : go to tenth next glyph - i : go to tenth previous glyph - - 0 : go to hundredth next glyph (useful for CJK fonts) - 9 : go to hundredth previous glyph - - ) : go to thousandth next glyph - ( : go to thousandth previous glyph - - } : go to tenthousandth next glyph - { : go to tenthousandth previous glyph - - q : - ESC : exit - - These keys were chosen because they are available on all - platforms. Note also that each program uses only a subset of this - key map. - - 1. FTZOOM - --------- - - `ftzoom' is a very simple glyph viewer that supports font - smoothing. Its usage is: - - ftzoom [-g] [-p platformID -e encodingID] - [-r resolution] [-z magnification] [-n] fontfilename - - With -g you can select gray-scaling; with -n you can suppress - usage of the `post' table in the TrueType font. - - For example: - - ftzoom arial.ttf to show the glyphs found - in the Arial font - ftzoom -g times.ttf to show smoothed version of - Times's glyphs. - ftzoom -p 3 -e 1 uwjmg3.ttf use cmap for platform ID 3, - encoding ID 1 for this Japanese - font. - - 2. FTLINT - --------- - - `ftlint' is used to execute all glyphs instructions found in a - font file at a given char size size. Its usage is: - - ftlint pointsize fontfilename [fontfilename] ... - - For example: - - ftlint 12 arial.ttf - ftlint 15 times.ttf - - It reports error codes and faulty glyph numbers. This is a - console tool that doesn't need the graphics subsystem. - - NOTE: Trying to hint at sizes smaller than 7 is irrelevant. - - 3. FTVIEW - --------- - - A font viewer that supports hinting and font smoothing. Its - usage: - - ftview [-g] -[r resolution] [-B] pointsize fontfilename - - like in: - - ftview 12 arial.ttf show the hinted Arial at size 12pt. - - ftview -g 15 timesi.ttf show the hinted and font-smoothed - Times at size 15pt. - - `-r' selects the resolution; `-B' forces the use of embedded - bitmaps. - - Note that it is possible to change the point size during display - with the keys `u', `j', `+', and `-'. It is also possible to - browse the whole glyph set with the `k', `l', `i', `o', `0', - `9', `(', `)', `{', and `}' keys (see key map above). - - The OS/2 PM driver comes with an additional magnifying window. - The magnified zone is set with the mouse, while the scale is - changed with the help of `PageUp' and `PageDown'. - - Note 1: The engine uses the font's CVT program to determine at - which size to enable or disable glyph hinting. Don't be - surprised to see unhinted glyphs at sizes < 7pt. - - Note 2: Vertical drop-out control has been added to the gray - scaling renderer. As a consequence, the library doesn't - produce unpleasant results at small ppems with badly - hinted glyphs. - - 4. FTTIMER - ---------- - - This program is used to benchmark FreeType's scan-converter (the - component in charge of translating a vectorial shape description - into a bitmap). It does so in preloading all glyphs from a font - file, then rendering them as fast as possible in a 640x450 - buffer. The glyphs are rendered at size 400pt / 96dpi, which is - _quite_ big. - - Its usage is: - - fttimer [-g] [-v] fontfilename - - where - - -g : Asks for gray-level rendering at size 200pt instead - (a.k.a. font-smoothing). - - -v : Asks for the display of the produced bitmap. Beware - that display slows things down (display on X11 is - _terrible_, especially with gray-levels, but this is - not a problem for us :-). - - Note that the returned numbers are not a benchmark of FreeType's - overall performance! Only of the scan-line renderer (which - seems quite fast, apparently :-). - - When comparing measured performances across machines, please - only consider the undisplayed ones. We're interested in all - kinds of results (please provide the following information: - - font file - number of rendered glyphs - render time - total time - glyphs / s - processor type - CPU clock - - and which compiler used (with optimization involved)! This - can make a great difference! - - etc.) - - 5. FTDUMP - --------- - - This program is a very simple font dumper. In its current - incarnation, it will only output a font's name table, character - encoding maps IDs and total memory consumption. For TrueType - Open files, the available GSUB and GPOS tables are also shown. - - The `total memory used' reported is the amount that is used by - the engine to load one face, with one instance (a point size). - - Each additional instance takes only a fraction of that amount, - and is labeled by `instance object'. As you can see, FreeType - isn't really greedy. - - Usage: ftdump fontpathname[.ttf|.ttc] - - 6. FTSTRING - ----------- - - This program demonstrates string text generation. It only - displays a given message on the screen, and lets you resize it - with the classic key bindings `u', `j', `+', and `-'. - - Usage: - - ftstring ptsize fontname[.ttf|.ttc] [message_string] - - If the message is omitted, it will revert to the classic - typographic test sentence: - - The quick brown fox jumps over the lazy dog - - which is made of all letters of the English alphabet. - - `ftstring' only works with font files that contain a Unicode - character mapping table (either Windows Unicode or Apple - Unicode). For the moment, the message can however only be - written in ASCII, as accents aren't supported yet. - - 7. FTSTRPNM - ----------- - - Usage: - - ftstrpnm [options] filename [string] - - Options: - - -g gray-level rendering (default: off) - -h hinting off (default: on) - -r X resolution X dpi (default: 96) - -p X pointsize X pt (default: 12) - -b X border X pixels wide (default: 0) - - This program is quite similar to ftstring but converts the - rendered image of the specified string into a bitmap in PBM or - PGM format written to stdout; PBM (Portable BitMap) and PGM - (Portable GrayMap) formats can be further converted to popular - graphics formats like GIF or PNG with the netpbm tool suite - available via Internet. - - 8. FTERROR - ---------- - - This program tests the gettext() functionality on UNIX platforms - (usually provided in the GNU gettext package). It will return - language specific error and warning messages depending on your - locale. Currently Czech, Dutch, French, German, and Spanish - translations of the FreeType messages are included -- we invite - you to contribute more translations. - - Typically, you have to set the LANG environment variable to your - locale to get localized messages. Example: - - LANG=de fterror - - fterror also gives you a textual interpretation of a particular - (numerical) error code, as returned by the Freetype library. - Example: - - LANG=fr fterror 0x40E - - Note that providing message strings for FreeType's error and - warning messages is an extension and not part of the FreeType - library itself. Please refer to `docs/i18n.txt' for further - details. - - 9. FTSBIT - --------- - - Usage: - - ftsbit ppem fontname[.ttf|.ttc] glyph_index [glyph_index2..] - - This tool dumps the information in the tables for embedded - bitmaps. Additionally, it prints (to the console) a selected - glyph bitmap. - - 10. FTMETRIC - ------------ - - Usage: - - ftmetric [options below] point fontname[.ttf|.ttc] ... - - -B show sbit's metrics (default: none) - -c C use C'th font index of TrueType collection - (default: 0) - -i index glyph index (default: 0) - -r R use resolution R dpi (default: 72dpi) - - With this small program you can inspect the metric data of a - given glyph; additionally, it dumps the particular glyph to the - console. - - 11. FTSTRTTO - ------------ - - Usage: - - ftstrtto [options below] ppem fontname[.ttf|.ttc] [string|-] - - -c C use font with index C in TrueType collection - (default: 0) - -f F use feature F (can be specified more than once) - -g gray-level rendering - -l L use language L - -r R use resolution R dpi (default: 96dpi) - -s S use script S - -u interpret input data as UTF8-encoded - -v display string vertically - -x display string from right to left - - F, L, and S must be specified as 4-character tags. - Specifying only F and S selects default language system of S. - Specifying only L and S selects the req. feature of L only - (if any). - - If `-' is specified as input string, stdin is read instead. - - This program uses almost all features of FreeType to display a - string on screen. Its usage is similar to `ftstring', but you - can additionally select GSUB and GPOS features, the collection - in a font, toggle kerning and embedded bitmaps interactively, - and input the optional string in UTF8 encoding. - - For a list of available script, language, and feature tags - please refer to the TrueType Open (resp. OpenType) - specification. - - Example: - - ftstrtto -s "latn" -l "DEU " -f "liga" -f "frac" \ - 40 pala.ttf "fi ff ffi ffl 1/2" - - Note that you can inspect the available tags in a font with - `ftdump'. - - The features `init', `medi', and `fina', and `isol' are treated - specially. Internally, ftstrtto assigns initial, medial, - isolated, and final properties to Arabic characters in the input - string. If one of the features is switched on, all glyphs with - the corresponding property are modified (if covered). - - Example: - - ftstrtto -s arab -f init -f medi -f fina -f isol \ - -f liga -f mset -x -u 20 trado.ttf - < arab.utf8 - - `mset' is another, Arabic specific feature to position combining - marks. - - If you select the swash feature `swsh', the displayed - alternative in the string is always the first available one. - - - -IV. HOW TO USE THE PROGRAMS IN THE `CONTRIB' DIRECTORY -====================================================== - - These programs are contributions to FreeType and not really part - of it. Please read the documentation files in the respective - subdirectories how to compile and install them. - - -V. FINAL REMARKS -================ - -Of course, all source code is provided `as is'. Please read the -file `license.txt' for more information. - -We hope you will find this engine useful, and look forward to file. -your feed-back. We're of course very interested in bug reports, as -well as FreeType success stories :-) - - -Thanks for your time and consideration, - - - David Turner, Robert Wilhelm, Werner Lemberg, - and all the FreeType enthusiasts... - - ---- end of README --- diff --git a/Build/source/libs/freetype/freetype-1.5/aclocal.m4 b/Build/source/libs/freetype/freetype-1.5/aclocal.m4 deleted file mode 100644 index 94113b757bf..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/aclocal.m4 +++ /dev/null @@ -1,6578 +0,0 @@ -# generated automatically by aclocal 1.10.1 -*- Autoconf -*- - -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -# 2005, 2006, 2007, 2008 Free Software Foundation, Inc. -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- - -# serial 51 AC_PROG_LIBTOOL - - -# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED) -# ----------------------------------------------------------- -# If this macro is not defined by Autoconf, define it here. -m4_ifdef([AC_PROVIDE_IFELSE], - [], - [m4_define([AC_PROVIDE_IFELSE], - [m4_ifdef([AC_PROVIDE_$1], - [$2], [$3])])]) - - -# AC_PROG_LIBTOOL -# --------------- -AC_DEFUN([AC_PROG_LIBTOOL], -[AC_REQUIRE([_AC_PROG_LIBTOOL])dnl -dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX -dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX. - AC_PROVIDE_IFELSE([AC_PROG_CXX], - [AC_LIBTOOL_CXX], - [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX - ])]) -dnl And a similar setup for Fortran 77 support - AC_PROVIDE_IFELSE([AC_PROG_F77], - [AC_LIBTOOL_F77], - [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77 -])]) - -dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly. -dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run -dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both. - AC_PROVIDE_IFELSE([AC_PROG_GCJ], - [AC_LIBTOOL_GCJ], - [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], - [AC_LIBTOOL_GCJ], - [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ], - [AC_LIBTOOL_GCJ], - [ifdef([AC_PROG_GCJ], - [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])]) - ifdef([A][M_PROG_GCJ], - [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])]) - ifdef([LT_AC_PROG_GCJ], - [define([LT_AC_PROG_GCJ], - defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])]) -])])# AC_PROG_LIBTOOL - - -# _AC_PROG_LIBTOOL -# ---------------- -AC_DEFUN([_AC_PROG_LIBTOOL], -[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl -AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl -AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl -AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl - -# This can be used to rebuild libtool when needed -LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" - -# Always use our own libtool. -LIBTOOL='$(SHELL) $(top_builddir)/libtool' -AC_SUBST(LIBTOOL)dnl - -# Prevent multiple expansion -define([AC_PROG_LIBTOOL], []) -])# _AC_PROG_LIBTOOL - - -# AC_LIBTOOL_SETUP -# ---------------- -AC_DEFUN([AC_LIBTOOL_SETUP], -[AC_PREREQ(2.50)dnl -AC_REQUIRE([AC_ENABLE_SHARED])dnl -AC_REQUIRE([AC_ENABLE_STATIC])dnl -AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl -AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_CANONICAL_BUILD])dnl -AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([AC_PROG_LD])dnl -AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl -AC_REQUIRE([AC_PROG_NM])dnl - -AC_REQUIRE([AC_PROG_LN_S])dnl -AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl -# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! -AC_REQUIRE([AC_OBJEXT])dnl -AC_REQUIRE([AC_EXEEXT])dnl -dnl - -AC_LIBTOOL_SYS_MAX_CMD_LEN -AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE -AC_LIBTOOL_OBJDIR - -AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl -_LT_AC_PROG_ECHO_BACKSLASH - -case $host_os in -aix3*) - # AIX sometimes has problems with the GCC collect2 program. For some - # reason, if we set the COLLECT_NAMES environment variable, the problems - # vanish in a puff of smoke. - if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES - fi - ;; -esac - -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -Xsed='sed -e 1s/^X//' -[sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'] - -# Same as above, but do not quote variable references. -[double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'] - -# Sed substitution to delay expansion of an escaped shell variable in a -# double_quote_subst'ed string. -delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' - -# Sed substitution to avoid accidental globbing in evaled expressions -no_glob_subst='s/\*/\\\*/g' - -# Constants: -rm="rm -f" - -# Global variables: -default_ofile=libtool -can_build_shared=yes - -# All known linkers require a `.a' archive for static linking (except MSVC, -# which needs '.lib'). -libext=a -ltmain="$ac_aux_dir/ltmain.sh" -ofile="$default_ofile" -with_gnu_ld="$lt_cv_prog_gnu_ld" - -AC_CHECK_TOOL(AR, ar, false) -AC_CHECK_TOOL(RANLIB, ranlib, :) -AC_CHECK_TOOL(STRIP, strip, :) - -old_CC="$CC" -old_CFLAGS="$CFLAGS" - -# Set sane defaults for various variables -test -z "$AR" && AR=ar -test -z "$AR_FLAGS" && AR_FLAGS=cru -test -z "$AS" && AS=as -test -z "$CC" && CC=cc -test -z "$LTCC" && LTCC=$CC -test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS -test -z "$DLLTOOL" && DLLTOOL=dlltool -test -z "$LD" && LD=ld -test -z "$LN_S" && LN_S="ln -s" -test -z "$MAGIC_CMD" && MAGIC_CMD=file -test -z "$NM" && NM=nm -test -z "$SED" && SED=sed -test -z "$OBJDUMP" && OBJDUMP=objdump -test -z "$RANLIB" && RANLIB=: -test -z "$STRIP" && STRIP=: -test -z "$ac_objext" && ac_objext=o - -# Determine commands to create old-style static archives. -old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' -old_postinstall_cmds='chmod 644 $oldlib' -old_postuninstall_cmds= - -if test -n "$RANLIB"; then - case $host_os in - openbsd*) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" - ;; - *) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" - ;; - esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" -fi - -_LT_CC_BASENAME([$compiler]) - -# Only perform the check for file, if the check method requires it -case $deplibs_check_method in -file_magic*) - if test "$file_magic_cmd" = '$MAGIC_CMD'; then - AC_PATH_MAGIC - fi - ;; -esac - -AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no) -AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], -enable_win32_dll=yes, enable_win32_dll=no) - -AC_ARG_ENABLE([libtool-lock], - [AC_HELP_STRING([--disable-libtool-lock], - [avoid locking (might break parallel builds)])]) -test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes - -AC_ARG_WITH([pic], - [AC_HELP_STRING([--with-pic], - [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], - [pic_mode="$withval"], - [pic_mode=default]) -test -z "$pic_mode" && pic_mode=default - -# Use C for the default configuration in the libtool script -tagname= -AC_LIBTOOL_LANG_C_CONFIG -_LT_AC_TAGCONFIG -])# AC_LIBTOOL_SETUP - - -# _LT_AC_SYS_COMPILER -# ------------------- -AC_DEFUN([_LT_AC_SYS_COMPILER], -[AC_REQUIRE([AC_PROG_CC])dnl - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - -# Allow CC to be a program name with arguments. -compiler=$CC -])# _LT_AC_SYS_COMPILER - - -# _LT_CC_BASENAME(CC) -# ------------------- -# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. -AC_DEFUN([_LT_CC_BASENAME], -[for cc_temp in $1""; do - case $cc_temp in - compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; - distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` -]) - - -# _LT_COMPILER_BOILERPLATE -# ------------------------ -# Check for compiler boilerplate output or warnings with -# the simple compiler test code. -AC_DEFUN([_LT_COMPILER_BOILERPLATE], -[AC_REQUIRE([LT_AC_PROG_SED])dnl -ac_outfile=conftest.$ac_objext -echo "$lt_simple_compile_test_code" >conftest.$ac_ext -eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_compiler_boilerplate=`cat conftest.err` -$rm conftest* -])# _LT_COMPILER_BOILERPLATE - - -# _LT_LINKER_BOILERPLATE -# ---------------------- -# Check for linker boilerplate output or warnings with -# the simple link test code. -AC_DEFUN([_LT_LINKER_BOILERPLATE], -[AC_REQUIRE([LT_AC_PROG_SED])dnl -ac_outfile=conftest.$ac_objext -echo "$lt_simple_link_test_code" >conftest.$ac_ext -eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_linker_boilerplate=`cat conftest.err` -$rm conftest* -])# _LT_LINKER_BOILERPLATE - - -# _LT_AC_SYS_LIBPATH_AIX -# ---------------------- -# Links a minimal program and checks the executable -# for the system default hardcoded library path. In most cases, -# this is /usr/lib:/lib, but when the MPI compilers are used -# the location of the communication and MPI libs are included too. -# If we don't find anything, use the default library path according -# to the aix ld manual. -AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX], -[AC_REQUIRE([LT_AC_PROG_SED])dnl -AC_LINK_IFELSE(AC_LANG_PROGRAM,[ -lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\(.*\)$/\1/ - p - } - }' -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then - aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -fi],[]) -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi -])# _LT_AC_SYS_LIBPATH_AIX - - -# _LT_AC_SHELL_INIT(ARG) -# ---------------------- -AC_DEFUN([_LT_AC_SHELL_INIT], -[ifdef([AC_DIVERSION_NOTICE], - [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], - [AC_DIVERT_PUSH(NOTICE)]) -$1 -AC_DIVERT_POP -])# _LT_AC_SHELL_INIT - - -# _LT_AC_PROG_ECHO_BACKSLASH -# -------------------------- -# Add some code to the start of the generated configure script which -# will find an echo command which doesn't interpret backslashes. -AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH], -[_LT_AC_SHELL_INIT([ -# Check that we are running under the correct shell. -SHELL=${CONFIG_SHELL-/bin/sh} - -case X$ECHO in -X*--fallback-echo) - # Remove one level of quotation (which was required for Make). - ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` - ;; -esac - -echo=${ECHO-echo} -if test "X[$]1" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift -elif test "X[$]1" = X--fallback-echo; then - # Avoid inline document here, it may be left over - : -elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then - # Yippee, $echo works! - : -else - # Restart under the correct shell. - exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} -fi - -if test "X[$]1" = X--fallback-echo; then - # used as fallback echo - shift - cat <<EOF -[$]* -EOF - exit 0 -fi - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -if test -z "$ECHO"; then -if test "X${echo_test_string+set}" != Xset; then -# find a string as large as possible, as long as the shell can cope with it - for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do - # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... - if (echo_test_string=`eval $cmd`) 2>/dev/null && - echo_test_string=`eval $cmd` && - (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null - then - break - fi - done -fi - -if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - : -else - # The Solaris, AIX, and Digital Unix default echo programs unquote - # backslashes. This makes it impossible to quote backslashes using - # echo "$something" | sed 's/\\/\\\\/g' - # - # So, first we look for a working echo in the user's PATH. - - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for dir in $PATH /usr/ucb; do - IFS="$lt_save_ifs" - if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && - test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - echo="$dir/echo" - break - fi - done - IFS="$lt_save_ifs" - - if test "X$echo" = Xecho; then - # We didn't find a better echo, so look for alternatives. - if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - # This shell has a builtin print -r that does the trick. - echo='print -r' - elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && - test "X$CONFIG_SHELL" != X/bin/ksh; then - # If we have ksh, try running configure again with it. - ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} - export ORIGINAL_CONFIG_SHELL - CONFIG_SHELL=/bin/ksh - export CONFIG_SHELL - exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} - else - # Try using printf. - echo='printf %s\n' - if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - # Cool, printf works - : - elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && - test "X$echo_testing_string" = 'X\t' && - echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL - export CONFIG_SHELL - SHELL="$CONFIG_SHELL" - export SHELL - echo="$CONFIG_SHELL [$]0 --fallback-echo" - elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && - test "X$echo_testing_string" = 'X\t' && - echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - echo="$CONFIG_SHELL [$]0 --fallback-echo" - else - # maybe with a smaller string... - prev=: - - for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do - if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null - then - break - fi - prev="$cmd" - done - - if test "$prev" != 'sed 50q "[$]0"'; then - echo_test_string=`eval $prev` - export echo_test_string - exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} - else - # Oops. We lost completely, so just stick with echo. - echo=echo - fi - fi - fi - fi -fi -fi - -# Copy echo and quote the copy suitably for passing to libtool from -# the Makefile, instead of quoting the original, which is used later. -ECHO=$echo -if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then - ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" -fi - -AC_SUBST(ECHO) -])])# _LT_AC_PROG_ECHO_BACKSLASH - - -# _LT_AC_LOCK -# ----------- -AC_DEFUN([_LT_AC_LOCK], -[AC_ARG_ENABLE([libtool-lock], - [AC_HELP_STRING([--disable-libtool-lock], - [avoid locking (might break parallel builds)])]) -test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes - -# Some flags need to be propagated to the compiler or linker for good -# libtool support. -case $host in -ia64-*-hpux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - case `/usr/bin/file conftest.$ac_objext` in - *ELF-32*) - HPUX_IA64_MODE="32" - ;; - *ELF-64*) - HPUX_IA64_MODE="64" - ;; - esac - fi - rm -rf conftest* - ;; -*-*-irix6*) - # Find out which ABI we are using. - echo '[#]line __oline__ "configure"' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - if test "$lt_cv_prog_gnu_ld" = yes; then - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -melf32bsmip" - ;; - *N32*) - LD="${LD-ld} -melf32bmipn32" - ;; - *64-bit*) - LD="${LD-ld} -melf64bmip" - ;; - esac - else - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -32" - ;; - *N32*) - LD="${LD-ld} -n32" - ;; - *64-bit*) - LD="${LD-ld} -64" - ;; - esac - fi - fi - rm -rf conftest* - ;; - -x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ -s390*-*linux*|sparc*-*linux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - case `/usr/bin/file conftest.o` in - *32-bit*) - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_i386_fbsd" - ;; - x86_64-*linux*) - LD="${LD-ld} -m elf_i386" - ;; - ppc64-*linux*|powerpc64-*linux*) - LD="${LD-ld} -m elf32ppclinux" - ;; - s390x-*linux*) - LD="${LD-ld} -m elf_s390" - ;; - sparc64-*linux*) - LD="${LD-ld} -m elf32_sparc" - ;; - esac - ;; - *64-bit*) - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_x86_64_fbsd" - ;; - x86_64-*linux*) - LD="${LD-ld} -m elf_x86_64" - ;; - ppc*-*linux*|powerpc*-*linux*) - LD="${LD-ld} -m elf64ppc" - ;; - s390*-*linux*) - LD="${LD-ld} -m elf64_s390" - ;; - sparc*-*linux*) - LD="${LD-ld} -m elf64_sparc" - ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; - -*-*-sco3.2v5*) - # On SCO OpenServer 5, we need -belf to get full-featured binaries. - SAVE_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -belf" - AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, - [AC_LANG_PUSH(C) - AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) - AC_LANG_POP]) - if test x"$lt_cv_cc_needs_belf" != x"yes"; then - # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf - CFLAGS="$SAVE_CFLAGS" - fi - ;; -sparc*-*solaris*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - case `/usr/bin/file conftest.o` in - *64-bit*) - case $lt_cv_prog_gnu_ld in - yes*) LD="${LD-ld} -m elf64_sparc" ;; - *) LD="${LD-ld} -64" ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; - -AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], -[*-*-cygwin* | *-*-mingw* | *-*-pw32*) - AC_CHECK_TOOL(DLLTOOL, dlltool, false) - AC_CHECK_TOOL(AS, as, false) - AC_CHECK_TOOL(OBJDUMP, objdump, false) - ;; - ]) -esac - -need_locks="$enable_libtool_lock" - -])# _LT_AC_LOCK - - -# AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, -# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) -# ---------------------------------------------------------------- -# Check whether the given compiler option works -AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], -[AC_REQUIRE([LT_AC_PROG_SED]) -AC_CACHE_CHECK([$1], [$2], - [$2=no - ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="$3" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&AS_MESSAGE_LOG_FD - echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings other than the usual output. - $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then - $2=yes - fi - fi - $rm conftest* -]) - -if test x"[$]$2" = xyes; then - ifelse([$5], , :, [$5]) -else - ifelse([$6], , :, [$6]) -fi -])# AC_LIBTOOL_COMPILER_OPTION - - -# AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, -# [ACTION-SUCCESS], [ACTION-FAILURE]) -# ------------------------------------------------------------ -# Check whether the given compiler option works -AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], -[AC_REQUIRE([LT_AC_PROG_SED])dnl -AC_CACHE_CHECK([$1], [$2], - [$2=no - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS $3" - echo "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then - # The linker can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - # Append any errors to the config.log. - cat conftest.err 1>&AS_MESSAGE_LOG_FD - $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if diff conftest.exp conftest.er2 >/dev/null; then - $2=yes - fi - else - $2=yes - fi - fi - $rm conftest* - LDFLAGS="$save_LDFLAGS" -]) - -if test x"[$]$2" = xyes; then - ifelse([$4], , :, [$4]) -else - ifelse([$5], , :, [$5]) -fi -])# AC_LIBTOOL_LINKER_OPTION - - -# AC_LIBTOOL_SYS_MAX_CMD_LEN -# -------------------------- -AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], -[# find the maximum length of command line arguments -AC_MSG_CHECKING([the maximum length of command line arguments]) -AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl - i=0 - teststring="ABCD" - - case $build_os in - msdosdjgpp*) - # On DJGPP, this test can blow up pretty badly due to problems in libc - # (any single argument exceeding 2000 bytes causes a buffer overrun - # during glob expansion). Even if it were fixed, the result of this - # check would be larger than it should be. - lt_cv_sys_max_cmd_len=12288; # 12K is about right - ;; - - gnu*) - # Under GNU Hurd, this test is not required because there is - # no limit to the length of command line arguments. - # Libtool will interpret -1 as no limit whatsoever - lt_cv_sys_max_cmd_len=-1; - ;; - - cygwin* | mingw*) - # On Win9x/ME, this test blows up -- it succeeds, but takes - # about 5 minutes as the teststring grows exponentially. - # Worse, since 9x/ME are not pre-emptively multitasking, - # you end up with a "frozen" computer, even though with patience - # the test eventually succeeds (with a max line length of 256k). - # Instead, let's just punt: use the minimum linelength reported by - # all of the supported platforms: 8192 (on NT/2K/XP). - lt_cv_sys_max_cmd_len=8192; - ;; - - amigaos*) - # On AmigaOS with pdksh, this test takes hours, literally. - # So we just punt and use a minimum line length of 8192. - lt_cv_sys_max_cmd_len=8192; - ;; - - netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) - # This has been around since 386BSD, at least. Likely further. - if test -x /sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` - elif test -x /usr/sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` - else - lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs - fi - # And add a safety zone - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` - ;; - - interix*) - # We know the value 262144 and hardcode it with a safety zone (like BSD) - lt_cv_sys_max_cmd_len=196608 - ;; - - osf*) - # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure - # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not - # nice to cause kernel panics so lets avoid the loop below. - # First set a reasonable default. - lt_cv_sys_max_cmd_len=16384 - # - if test -x /sbin/sysconfig; then - case `/sbin/sysconfig -q proc exec_disable_arg_limit` in - *1*) lt_cv_sys_max_cmd_len=-1 ;; - esac - fi - ;; - sco3.2v5*) - lt_cv_sys_max_cmd_len=102400 - ;; - sysv5* | sco5v6* | sysv4.2uw2*) - kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` - if test -n "$kargmax"; then - lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` - else - lt_cv_sys_max_cmd_len=32768 - fi - ;; - *) - lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` - if test -n "$lt_cv_sys_max_cmd_len"; then - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` - else - SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} - while (test "X"`$SHELL [$]0 --fallback-echo "X$teststring" 2>/dev/null` \ - = "XX$teststring") >/dev/null 2>&1 && - new_result=`expr "X$teststring" : ".*" 2>&1` && - lt_cv_sys_max_cmd_len=$new_result && - test $i != 17 # 1/2 MB should be enough - do - i=`expr $i + 1` - teststring=$teststring$teststring - done - teststring= - # Add a significant safety factor because C++ compilers can tack on massive - # amounts of additional arguments before passing them to the linker. - # It appears as though 1/2 is a usable value. - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` - fi - ;; - esac -]) -if test -n $lt_cv_sys_max_cmd_len ; then - AC_MSG_RESULT($lt_cv_sys_max_cmd_len) -else - AC_MSG_RESULT(none) -fi -])# AC_LIBTOOL_SYS_MAX_CMD_LEN - - -# _LT_AC_CHECK_DLFCN -# ------------------ -AC_DEFUN([_LT_AC_CHECK_DLFCN], -[AC_CHECK_HEADERS(dlfcn.h)dnl -])# _LT_AC_CHECK_DLFCN - - -# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, -# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) -# --------------------------------------------------------------------- -AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF], -[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl -if test "$cross_compiling" = yes; then : - [$4] -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<EOF -[#line __oline__ "configure" -#include "confdefs.h" - -#if HAVE_DLFCN_H -#include <dlfcn.h> -#endif - -#include <stdio.h> - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -#ifdef __cplusplus -extern "C" void exit (int); -#endif - -void fnord() { int i=42;} -int main () -{ - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - /* dlclose (self); */ - } - else - puts (dlerror ()); - - exit (status); -}] -EOF - if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) $1 ;; - x$lt_dlneed_uscore) $2 ;; - x$lt_dlunknown|x*) $3 ;; - esac - else : - # compilation failed - $3 - fi -fi -rm -fr conftest* -])# _LT_AC_TRY_DLOPEN_SELF - - -# AC_LIBTOOL_DLOPEN_SELF -# ---------------------- -AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], -[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl -if test "x$enable_dlopen" != xyes; then - enable_dlopen=unknown - enable_dlopen_self=unknown - enable_dlopen_self_static=unknown -else - lt_cv_dlopen=no - lt_cv_dlopen_libs= - - case $host_os in - beos*) - lt_cv_dlopen="load_add_on" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - ;; - - mingw* | pw32*) - lt_cv_dlopen="LoadLibrary" - lt_cv_dlopen_libs= - ;; - - cygwin*) - lt_cv_dlopen="dlopen" - lt_cv_dlopen_libs= - ;; - - darwin*) - # if libdl is installed we need to link against it - AC_CHECK_LIB([dl], [dlopen], - [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ - lt_cv_dlopen="dyld" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - ]) - ;; - - *) - AC_CHECK_FUNC([shl_load], - [lt_cv_dlopen="shl_load"], - [AC_CHECK_LIB([dld], [shl_load], - [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], - [AC_CHECK_FUNC([dlopen], - [lt_cv_dlopen="dlopen"], - [AC_CHECK_LIB([dl], [dlopen], - [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], - [AC_CHECK_LIB([svld], [dlopen], - [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], - [AC_CHECK_LIB([dld], [dld_link], - [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) - ]) - ]) - ]) - ]) - ]) - ;; - esac - - if test "x$lt_cv_dlopen" != xno; then - enable_dlopen=yes - else - enable_dlopen=no - fi - - case $lt_cv_dlopen in - dlopen) - save_CPPFLAGS="$CPPFLAGS" - test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" - - save_LDFLAGS="$LDFLAGS" - wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" - - save_LIBS="$LIBS" - LIBS="$lt_cv_dlopen_libs $LIBS" - - AC_CACHE_CHECK([whether a program can dlopen itself], - lt_cv_dlopen_self, [dnl - _LT_AC_TRY_DLOPEN_SELF( - lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, - lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) - ]) - - if test "x$lt_cv_dlopen_self" = xyes; then - wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" - AC_CACHE_CHECK([whether a statically linked program can dlopen itself], - lt_cv_dlopen_self_static, [dnl - _LT_AC_TRY_DLOPEN_SELF( - lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, - lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) - ]) - fi - - CPPFLAGS="$save_CPPFLAGS" - LDFLAGS="$save_LDFLAGS" - LIBS="$save_LIBS" - ;; - esac - - case $lt_cv_dlopen_self in - yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; - *) enable_dlopen_self=unknown ;; - esac - - case $lt_cv_dlopen_self_static in - yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; - *) enable_dlopen_self_static=unknown ;; - esac -fi -])# AC_LIBTOOL_DLOPEN_SELF - - -# AC_LIBTOOL_PROG_CC_C_O([TAGNAME]) -# --------------------------------- -# Check to see if options -c and -o are simultaneously supported by compiler -AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O], -[AC_REQUIRE([LT_AC_PROG_SED])dnl -AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl -AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], - [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)], - [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no - $rm -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - lt_compiler_flag="-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&AS_MESSAGE_LOG_FD - echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp - $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 - if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then - _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes - fi - fi - chmod u+w . 2>&AS_MESSAGE_LOG_FD - $rm conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files - $rm out/* && rmdir out - cd .. - rmdir conftest - $rm conftest* -]) -])# AC_LIBTOOL_PROG_CC_C_O - - -# AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME]) -# ----------------------------------------- -# Check to see if we can do hard links to lock some files if needed -AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], -[AC_REQUIRE([_LT_AC_LOCK])dnl - -hard_links="nottested" -if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then - # do not overwrite the value of need_locks provided by the user - AC_MSG_CHECKING([if we can lock with hard links]) - hard_links=yes - $rm conftest* - ln conftest.a conftest.b 2>/dev/null && hard_links=no - touch conftest.a - ln conftest.a conftest.b 2>&5 || hard_links=no - ln conftest.a conftest.b 2>/dev/null && hard_links=no - AC_MSG_RESULT([$hard_links]) - if test "$hard_links" = no; then - AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) - need_locks=warn - fi -else - need_locks=no -fi -])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS - - -# AC_LIBTOOL_OBJDIR -# ----------------- -AC_DEFUN([AC_LIBTOOL_OBJDIR], -[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], -[rm -f .libs 2>/dev/null -mkdir .libs 2>/dev/null -if test -d .libs; then - lt_cv_objdir=.libs -else - # MS-DOS does not allow filenames that begin with a dot. - lt_cv_objdir=_libs -fi -rmdir .libs 2>/dev/null]) -objdir=$lt_cv_objdir -])# AC_LIBTOOL_OBJDIR - - -# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME]) -# ---------------------------------------------- -# Check hardcoding attributes. -AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], -[AC_MSG_CHECKING([how to hardcode library paths into programs]) -_LT_AC_TAGVAR(hardcode_action, $1)= -if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \ - test -n "$_LT_AC_TAGVAR(runpath_var, $1)" || \ - test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then - - # We can hardcode non-existant directories. - if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no && - # If the only mechanism to avoid hardcoding is shlibpath_var, we - # have to relink, otherwise we might link with an installed library - # when we should be linking with a yet-to-be-installed one - ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no && - test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then - # Linking always hardcodes the temporary library directory. - _LT_AC_TAGVAR(hardcode_action, $1)=relink - else - # We can link without hardcoding, and we can hardcode nonexisting dirs. - _LT_AC_TAGVAR(hardcode_action, $1)=immediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - _LT_AC_TAGVAR(hardcode_action, $1)=unsupported -fi -AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)]) - -if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink; then - # Fast installation is not supported - enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then - # Fast installation is not necessary - enable_fast_install=needless -fi -])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH - - -# AC_LIBTOOL_SYS_LIB_STRIP -# ------------------------ -AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP], -[striplib= -old_striplib= -AC_MSG_CHECKING([whether stripping libraries is possible]) -if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then - test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" - test -z "$striplib" && striplib="$STRIP --strip-unneeded" - AC_MSG_RESULT([yes]) -else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP" ; then - striplib="$STRIP -x" - old_striplib="$STRIP -S" - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) -fi - ;; - *) - AC_MSG_RESULT([no]) - ;; - esac -fi -])# AC_LIBTOOL_SYS_LIB_STRIP - - -# AC_LIBTOOL_SYS_DYNAMIC_LINKER -# ----------------------------- -# PORTME Fill in your ld.so characteristics -AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER], -[AC_REQUIRE([LT_AC_PROG_SED])dnl -AC_MSG_CHECKING([dynamic linker characteristics]) -library_names_spec= -libname_spec='lib$name' -soname_spec= -shrext_cmds=".so" -postinstall_cmds= -postuninstall_cmds= -finish_cmds= -finish_eval= -shlibpath_var= -shlibpath_overrides_runpath=unknown -version_type=none -dynamic_linker="$host_os ld.so" -sys_lib_dlsearch_path_spec="/lib /usr/lib" -m4_if($1,[],[ -if test "$GCC" = yes; then - case $host_os in - darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; - *) lt_awk_arg="/^libraries:/" ;; - esac - lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if echo "$lt_search_path_spec" | grep ';' >/dev/null ; then - # if the path contains ";" then we assume it to be the separator - # otherwise default to the standard path separator (i.e. ":") - it is - # assumed that no part of a normal pathname contains ";" but that should - # okay in the real world where ";" in dirpaths is itself problematic. - lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e 's/;/ /g'` - else - lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - # Ok, now we have the path, separated by spaces, we can step through it - # and add multilib dir if necessary. - lt_tmp_lt_search_path_spec= - lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` - for lt_sys_path in $lt_search_path_spec; do - if test -d "$lt_sys_path/$lt_multi_os_dir"; then - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" - else - test -d "$lt_sys_path" && \ - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" - fi - done - lt_search_path_spec=`echo $lt_tmp_lt_search_path_spec | awk ' -BEGIN {RS=" "; FS="/|\n";} { - lt_foo=""; - lt_count=0; - for (lt_i = NF; lt_i > 0; lt_i--) { - if ($lt_i != "" && $lt_i != ".") { - if ($lt_i == "..") { - lt_count++; - } else { - if (lt_count == 0) { - lt_foo="/" $lt_i lt_foo; - } else { - lt_count--; - } - } - } - } - if (lt_foo != "") { lt_freq[[lt_foo]]++; } - if (lt_freq[[lt_foo]] == 1) { print lt_foo; } -}'` - sys_lib_search_path_spec=`echo $lt_search_path_spec` -else - sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" -fi]) -need_lib_prefix=unknown -hardcode_into_libs=no - -# when you set need_version to no, make sure it does not cause -set_version -# flags to be left without arguments -need_version=unknown - -case $host_os in -aix3*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' - shlibpath_var=LIBPATH - - # AIX 3 has no versioning support, so we append a major version to the name. - soname_spec='${libname}${release}${shared_ext}$major' - ;; - -aix4* | aix5*) - version_type=linux - need_lib_prefix=no - need_version=no - hardcode_into_libs=yes - if test "$host_cpu" = ia64; then - # AIX 5 supports IA64 - library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - else - # With GCC up to 2.95.x, collect2 would create an import file - # for dependence libraries. The import file would start with - # the line `#! .'. This would cause the generated library to - # depend on `.', always an invalid library. This was fixed in - # development snapshots of GCC prior to 3.0. - case $host_os in - aix4 | aix4.[[01]] | aix4.[[01]].*) - if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' - echo ' yes ' - echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then - : - else - can_build_shared=no - fi - ;; - esac - # AIX (on Power*) has no versioning support, so currently we can not hardcode correct - # soname into executable. Probably we can add versioning support to - # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" = yes; then - # If using run time linking (on AIX 4.2 or later) use lib<name>.so - # instead of lib<name>.a to let people know that these are not - # typical AIX shared libraries. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - else - # We preserve .a as extension for shared libraries through AIX4.2 - # and later when we are not doing run time linking. - library_names_spec='${libname}${release}.a $libname.a' - soname_spec='${libname}${release}${shared_ext}$major' - fi - shlibpath_var=LIBPATH - fi - ;; - -amigaos*) - library_names_spec='$libname.ixlibrary $libname.a' - # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' - ;; - -beos*) - library_names_spec='${libname}${shared_ext}' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; - -bsdi[[45]]*) - version_type=linux - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" - sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" - # the default ld.so.conf also contains /usr/contrib/lib and - # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow - # libtool to hard-code these into programs - ;; - -cygwin* | mingw* | pw32*) - version_type=windows - shrext_cmds=".dll" - need_version=no - need_lib_prefix=no - - case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32*) - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname~ - chmod a+x \$dldir/$dlname' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $rm \$dlpath' - shlibpath_overrides_runpath=yes - - case $host_os in - cygwin*) - # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" - ;; - mingw*) - # MinGW DLLs use traditional 'lib' prefix - soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then - # It is most probably a Windows format PATH printed by - # mingw gcc, but we are running on Cygwin. Gcc prints its search - # path with ; separators, and with drive letters. We can handle the - # drive letters (cygwin fileutils understands them), so leave them, - # especially as we might pass files found there to a mingw objdump, - # which wouldn't understand a cygwinified path. Ahh. - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - ;; - pw32*) - # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' - ;; - esac - ;; - - *) - library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' - ;; - esac - dynamic_linker='Win32 ld.exe' - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; - -darwin* | rhapsody*) - dynamic_linker="$host_os dyld" - version_type=darwin - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' - soname_spec='${libname}${release}${major}$shared_ext' - shlibpath_overrides_runpath=yes - shlibpath_var=DYLD_LIBRARY_PATH - shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' - m4_if([$1], [],[ - sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) - sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' - ;; - -dgux*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -freebsd1*) - dynamic_linker=no - ;; - -freebsd* | dragonfly*) - # DragonFly does not have aout. When/if they implement a new - # versioning mechanism, adjust this. - if test -x /usr/bin/objformat; then - objformat=`/usr/bin/objformat` - else - case $host_os in - freebsd[[123]]*) objformat=aout ;; - *) objformat=elf ;; - esac - fi - version_type=freebsd-$objformat - case $version_type in - freebsd-elf*) - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - need_version=no - need_lib_prefix=no - ;; - freebsd-*) - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' - need_version=yes - ;; - esac - shlibpath_var=LD_LIBRARY_PATH - case $host_os in - freebsd2*) - shlibpath_overrides_runpath=yes - ;; - freebsd3.[[01]]* | freebsdelf3.[[01]]*) - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ - freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - *) # from 4.6 on, and DragonFly - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - esac - ;; - -gnu*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - hardcode_into_libs=yes - ;; - -hpux9* | hpux10* | hpux11*) - # Give a soname corresponding to the major version so that dld.sl refuses to - # link against other versions. - version_type=sunos - need_lib_prefix=no - need_version=no - case $host_cpu in - ia64*) - shrext_cmds='.so' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.so" - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - if test "X$HPUX_IA64_MODE" = X32; then - sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" - else - sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" - fi - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - hppa*64*) - shrext_cmds='.sl' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.sl" - shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - *) - shrext_cmds='.sl' - dynamic_linker="$host_os dld.sl" - shlibpath_var=SHLIB_PATH - shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - ;; - esac - # HP-UX runs *really* slowly unless shared libraries are mode 555. - postinstall_cmds='chmod 555 $lib' - ;; - -interix[[3-9]]*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - -irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=nonstopux ;; - *) - if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux - else - version_type=irix - fi ;; - esac - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' - case $host_os in - irix5* | nonstopux*) - libsuff= shlibsuff= - ;; - *) - case $LD in # libtool.m4 will add one of these switches to LD - *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") - libsuff= shlibsuff= libmagic=32-bit;; - *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") - libsuff=32 shlibsuff=N32 libmagic=N32;; - *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") - libsuff=64 shlibsuff=64 libmagic=64-bit;; - *) libsuff= shlibsuff= libmagic=never-match;; - esac - ;; - esac - shlibpath_var=LD_LIBRARY${shlibsuff}_PATH - shlibpath_overrides_runpath=no - sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" - sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" - hardcode_into_libs=yes - ;; - -# No shared lib support for Linux oldld, aout, or coff. -linux*oldld* | linux*aout* | linux*coff*) - dynamic_linker=no - ;; - -# This must be Linux ELF. -linux* | k*bsd*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - # This implies no fast_install, which is unacceptable. - # Some rework will be needed to allow for fast_install - # before this can be enabled. - hardcode_into_libs=yes - - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` - sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" - fi - - # We used to test for /lib/ld.so.1 and disable shared libraries on - # powerpc, because MkLinux only supported shared libraries with the - # GNU dynamic linker. Since this was broken with cross compilers, - # most powerpc-linux boxes support dynamic linking these days and - # people can always --disable-shared, the test was removed, and we - # assume the GNU/Linux dynamic linker is in use. - dynamic_linker='GNU/Linux ld.so' - ;; - -netbsd*) - version_type=sunos - need_lib_prefix=no - need_version=no - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker='NetBSD (a.out) ld.so' - else - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='NetBSD ld.elf_so' - fi - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - -newsos6) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -nto-qnx*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -openbsd*) - version_type=sunos - sys_lib_dlsearch_path_spec="/usr/lib" - need_lib_prefix=no - # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. - case $host_os in - openbsd3.3 | openbsd3.3.*) need_version=yes ;; - *) need_version=no ;; - esac - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[[89]] | openbsd2.[[89]].*) - shlibpath_overrides_runpath=no - ;; - *) - shlibpath_overrides_runpath=yes - ;; - esac - else - shlibpath_overrides_runpath=yes - fi - ;; - -os2*) - libname_spec='$name' - shrext_cmds=".dll" - need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; - -osf3* | osf4* | osf5*) - version_type=osf - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" - ;; - -rdos*) - dynamic_linker=no - ;; - -solaris*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - # ldd complains unless libraries are executable - postinstall_cmds='chmod +x $lib' - ;; - -sunos4*) - version_type=sunos - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - if test "$with_gnu_ld" = yes; then - need_lib_prefix=no - fi - need_version=yes - ;; - -sysv4 | sysv4.3*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - case $host_vendor in - sni) - shlibpath_overrides_runpath=no - need_lib_prefix=no - export_dynamic_flag_spec='${wl}-Blargedynsym' - runpath_var=LD_RUN_PATH - ;; - siemens) - need_lib_prefix=no - ;; - motorola) - need_lib_prefix=no - need_version=no - shlibpath_overrides_runpath=no - sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' - ;; - esac - ;; - -sysv4*MP*) - if test -d /usr/nec ;then - version_type=linux - library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' - soname_spec='$libname${shared_ext}.$major' - shlibpath_var=LD_LIBRARY_PATH - fi - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - version_type=freebsd-elf - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - hardcode_into_libs=yes - if test "$with_gnu_ld" = yes; then - sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' - shlibpath_overrides_runpath=no - else - sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' - shlibpath_overrides_runpath=yes - case $host_os in - sco3.2v5*) - sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" - ;; - esac - fi - sys_lib_dlsearch_path_spec='/usr/lib' - ;; - -uts4*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -*) - dynamic_linker=no - ;; -esac -AC_MSG_RESULT([$dynamic_linker]) -test "$dynamic_linker" = no && can_build_shared=no - -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi -])# AC_LIBTOOL_SYS_DYNAMIC_LINKER - - -# _LT_AC_TAGCONFIG -# ---------------- -AC_DEFUN([_LT_AC_TAGCONFIG], -[AC_REQUIRE([LT_AC_PROG_SED])dnl -AC_ARG_WITH([tags], - [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@], - [include additional configurations @<:@automatic@:>@])], - [tagnames="$withval"]) - -if test -f "$ltmain" && test -n "$tagnames"; then - if test ! -f "${ofile}"; then - AC_MSG_WARN([output file `$ofile' does not exist]) - fi - - if test -z "$LTCC"; then - eval "`$SHELL ${ofile} --config | grep '^LTCC='`" - if test -z "$LTCC"; then - AC_MSG_WARN([output file `$ofile' does not look like a libtool script]) - else - AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile']) - fi - fi - if test -z "$LTCFLAGS"; then - eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`" - fi - - # Extract list of available tagged configurations in $ofile. - # Note that this assumes the entire list is on one line. - available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` - - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for tagname in $tagnames; do - IFS="$lt_save_ifs" - # Check whether tagname contains only valid characters - case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in - "") ;; - *) AC_MSG_ERROR([invalid tag name: $tagname]) - ;; - esac - - if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null - then - AC_MSG_ERROR([tag name \"$tagname\" already exists]) - fi - - # Update the list of available tags. - if test -n "$tagname"; then - echo appending configuration tag \"$tagname\" to $ofile - - case $tagname in - CXX) - if test -n "$CXX" && ( test "X$CXX" != "Xno" && - ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || - (test "X$CXX" != "Xg++"))) ; then - AC_LIBTOOL_LANG_CXX_CONFIG - else - tagname="" - fi - ;; - - F77) - if test -n "$F77" && test "X$F77" != "Xno"; then - AC_LIBTOOL_LANG_F77_CONFIG - else - tagname="" - fi - ;; - - GCJ) - if test -n "$GCJ" && test "X$GCJ" != "Xno"; then - AC_LIBTOOL_LANG_GCJ_CONFIG - else - tagname="" - fi - ;; - - RC) - AC_LIBTOOL_LANG_RC_CONFIG - ;; - - *) - AC_MSG_ERROR([Unsupported tag name: $tagname]) - ;; - esac - - # Append the new tag name to the list of available tags. - if test -n "$tagname" ; then - available_tags="$available_tags $tagname" - fi - fi - done - IFS="$lt_save_ifs" - - # Now substitute the updated list of available tags. - if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then - mv "${ofile}T" "$ofile" - chmod +x "$ofile" - else - rm -f "${ofile}T" - AC_MSG_ERROR([unable to update list of available tagged configurations.]) - fi -fi -])# _LT_AC_TAGCONFIG - - -# AC_LIBTOOL_DLOPEN -# ----------------- -# enable checks for dlopen support -AC_DEFUN([AC_LIBTOOL_DLOPEN], - [AC_BEFORE([$0],[AC_LIBTOOL_SETUP]) -])# AC_LIBTOOL_DLOPEN - - -# AC_LIBTOOL_WIN32_DLL -# -------------------- -# declare package support for building win32 DLLs -AC_DEFUN([AC_LIBTOOL_WIN32_DLL], -[AC_BEFORE([$0], [AC_LIBTOOL_SETUP]) -])# AC_LIBTOOL_WIN32_DLL - - -# AC_ENABLE_SHARED([DEFAULT]) -# --------------------------- -# implement the --enable-shared flag -# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. -AC_DEFUN([AC_ENABLE_SHARED], -[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl -AC_ARG_ENABLE([shared], - [AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@], - [build shared libraries @<:@default=]AC_ENABLE_SHARED_DEFAULT[@:>@])], - [p=${PACKAGE-default} - case $enableval in - yes) enable_shared=yes ;; - no) enable_shared=no ;; - *) - enable_shared=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_shared=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac], - [enable_shared=]AC_ENABLE_SHARED_DEFAULT) -])# AC_ENABLE_SHARED - - -# AC_DISABLE_SHARED -# ----------------- -# set the default shared flag to --disable-shared -AC_DEFUN([AC_DISABLE_SHARED], -[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl -AC_ENABLE_SHARED(no) -])# AC_DISABLE_SHARED - - -# AC_ENABLE_STATIC([DEFAULT]) -# --------------------------- -# implement the --enable-static flag -# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. -AC_DEFUN([AC_ENABLE_STATIC], -[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl -AC_ARG_ENABLE([static], - [AC_HELP_STRING([--enable-static@<:@=PKGS@:>@], - [build static libraries @<:@default=]AC_ENABLE_STATIC_DEFAULT[@:>@])], - [p=${PACKAGE-default} - case $enableval in - yes) enable_static=yes ;; - no) enable_static=no ;; - *) - enable_static=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_static=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac], - [enable_static=]AC_ENABLE_STATIC_DEFAULT) -])# AC_ENABLE_STATIC - - -# AC_DISABLE_STATIC -# ----------------- -# set the default static flag to --disable-static -AC_DEFUN([AC_DISABLE_STATIC], -[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl -AC_ENABLE_STATIC(no) -])# AC_DISABLE_STATIC - - -# AC_ENABLE_FAST_INSTALL([DEFAULT]) -# --------------------------------- -# implement the --enable-fast-install flag -# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. -AC_DEFUN([AC_ENABLE_FAST_INSTALL], -[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl -AC_ARG_ENABLE([fast-install], - [AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], - [optimize for fast installation @<:@default=]AC_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], - [p=${PACKAGE-default} - case $enableval in - yes) enable_fast_install=yes ;; - no) enable_fast_install=no ;; - *) - enable_fast_install=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_fast_install=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac], - [enable_fast_install=]AC_ENABLE_FAST_INSTALL_DEFAULT) -])# AC_ENABLE_FAST_INSTALL - - -# AC_DISABLE_FAST_INSTALL -# ----------------------- -# set the default to --disable-fast-install -AC_DEFUN([AC_DISABLE_FAST_INSTALL], -[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl -AC_ENABLE_FAST_INSTALL(no) -])# AC_DISABLE_FAST_INSTALL - - -# AC_LIBTOOL_PICMODE([MODE]) -# -------------------------- -# implement the --with-pic flag -# MODE is either `yes' or `no'. If omitted, it defaults to `both'. -AC_DEFUN([AC_LIBTOOL_PICMODE], -[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl -pic_mode=ifelse($#,1,$1,default) -])# AC_LIBTOOL_PICMODE - - -# AC_PROG_EGREP -# ------------- -# This is predefined starting with Autoconf 2.54, so this conditional -# definition can be removed once we require Autoconf 2.54 or later. -m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP], -[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep], - [if echo a | (grep -E '(a|b)') >/dev/null 2>&1 - then ac_cv_prog_egrep='grep -E' - else ac_cv_prog_egrep='egrep' - fi]) - EGREP=$ac_cv_prog_egrep - AC_SUBST([EGREP]) -])]) - - -# AC_PATH_TOOL_PREFIX -# ------------------- -# find a file program which can recognize shared library -AC_DEFUN([AC_PATH_TOOL_PREFIX], -[AC_REQUIRE([AC_PROG_EGREP])dnl -AC_MSG_CHECKING([for $1]) -AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, -[case $MAGIC_CMD in -[[\\/*] | ?:[\\/]*]) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. - ;; -*) - lt_save_MAGIC_CMD="$MAGIC_CMD" - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR -dnl $ac_dummy forces splitting on constant user-supplied paths. -dnl POSIX.2 word splitting is done only on the output of word expansions, -dnl not every word. This closes a longstanding sh security hole. - ac_dummy="ifelse([$2], , $PATH, [$2])" - for ac_dir in $ac_dummy; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$1; then - lt_cv_path_MAGIC_CMD="$ac_dir/$1" - if test -n "$file_magic_test_file"; then - case $deplibs_check_method in - "file_magic "*) - file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` - MAGIC_CMD="$lt_cv_path_MAGIC_CMD" - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | - $EGREP "$file_magic_regex" > /dev/null; then - : - else - cat <<EOF 1>&2 - -*** Warning: the command libtool uses to detect shared libraries, -*** $file_magic_cmd, produces output that libtool cannot recognize. -*** The result is that libtool may fail to recognize shared libraries -*** as such. This will affect the creation of libtool libraries that -*** depend on shared libraries, but programs linked with such libtool -*** libraries will work regardless of this problem. Nevertheless, you -*** may want to report the problem to your system manager and/or to -*** bug-libtool@gnu.org - -EOF - fi ;; - esac - fi - break - fi - done - IFS="$lt_save_ifs" - MAGIC_CMD="$lt_save_MAGIC_CMD" - ;; -esac]) -MAGIC_CMD="$lt_cv_path_MAGIC_CMD" -if test -n "$MAGIC_CMD"; then - AC_MSG_RESULT($MAGIC_CMD) -else - AC_MSG_RESULT(no) -fi -])# AC_PATH_TOOL_PREFIX - - -# AC_PATH_MAGIC -# ------------- -# find a file program which can recognize a shared library -AC_DEFUN([AC_PATH_MAGIC], -[AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) -if test -z "$lt_cv_path_MAGIC_CMD"; then - if test -n "$ac_tool_prefix"; then - AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) - else - MAGIC_CMD=: - fi -fi -])# AC_PATH_MAGIC - - -# AC_PROG_LD -# ---------- -# find the pathname to the GNU or non-GNU linker -AC_DEFUN([AC_PROG_LD], -[AC_ARG_WITH([gnu-ld], - [AC_HELP_STRING([--with-gnu-ld], - [assume the C compiler uses GNU ld @<:@default=no@:>@])], - [test "$withval" = no || with_gnu_ld=yes], - [with_gnu_ld=no]) -AC_REQUIRE([LT_AC_PROG_SED])dnl -AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_CANONICAL_BUILD])dnl -ac_prog=ld -if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - AC_MSG_CHECKING([for ld used by $CC]) - case $host in - *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw - ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; - *) - ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; - esac - case $ac_prog in - # Accept absolute paths. - [[\\/]]* | ?:[[\\/]]*) - re_direlt='/[[^/]][[^/]]*/\.\./' - # Canonicalize the pathname of ld - ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` - while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do - ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` - done - test -z "$LD" && LD="$ac_prog" - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac -elif test "$with_gnu_ld" = yes; then - AC_MSG_CHECKING([for GNU ld]) -else - AC_MSG_CHECKING([for non-GNU ld]) -fi -AC_CACHE_VAL(lt_cv_path_LD, -[if test -z "$LD"; then - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - lt_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some variants of GNU ld only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in - *GNU* | *'with BFD'*) - test "$with_gnu_ld" != no && break - ;; - *) - test "$with_gnu_ld" != yes && break - ;; - esac - fi - done - IFS="$lt_save_ifs" -else - lt_cv_path_LD="$LD" # Let the user override the test with a path. -fi]) -LD="$lt_cv_path_LD" -if test -n "$LD"; then - AC_MSG_RESULT($LD) -else - AC_MSG_RESULT(no) -fi -test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) -AC_PROG_LD_GNU -])# AC_PROG_LD - - -# AC_PROG_LD_GNU -# -------------- -AC_DEFUN([AC_PROG_LD_GNU], -[AC_REQUIRE([AC_PROG_EGREP])dnl -AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld, -[# I'd rather use --version here, but apparently some GNU lds only accept -v. -case `$LD -v 2>&1 </dev/null` in -*GNU* | *'with BFD'*) - lt_cv_prog_gnu_ld=yes - ;; -*) - lt_cv_prog_gnu_ld=no - ;; -esac]) -with_gnu_ld=$lt_cv_prog_gnu_ld -])# AC_PROG_LD_GNU - - -# AC_PROG_LD_RELOAD_FLAG -# ---------------------- -# find reload flag for linker -# -- PORTME Some linkers may need a different reload flag. -AC_DEFUN([AC_PROG_LD_RELOAD_FLAG], -[AC_CACHE_CHECK([for $LD option to reload object files], - lt_cv_ld_reload_flag, - [lt_cv_ld_reload_flag='-r']) -reload_flag=$lt_cv_ld_reload_flag -case $reload_flag in -"" | " "*) ;; -*) reload_flag=" $reload_flag" ;; -esac -reload_cmds='$LD$reload_flag -o $output$reload_objs' -case $host_os in - darwin*) - if test "$GCC" = yes; then - reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' - else - reload_cmds='$LD$reload_flag -o $output$reload_objs' - fi - ;; -esac -])# AC_PROG_LD_RELOAD_FLAG - - -# AC_DEPLIBS_CHECK_METHOD -# ----------------------- -# how to check for library dependencies -# -- PORTME fill in with the dynamic library characteristics -AC_DEFUN([AC_DEPLIBS_CHECK_METHOD], -[AC_CACHE_CHECK([how to recognize dependent libraries], -lt_cv_deplibs_check_method, -[lt_cv_file_magic_cmd='$MAGIC_CMD' -lt_cv_file_magic_test_file= -lt_cv_deplibs_check_method='unknown' -# Need to set the preceding variable on all platforms that support -# interlibrary dependencies. -# 'none' -- dependencies not supported. -# `unknown' -- same as none, but documents that we really don't know. -# 'pass_all' -- all dependencies passed with no checks. -# 'test_compile' -- check by making test program. -# 'file_magic [[regex]]' -- check by looking for files in library path -# which responds to the $file_magic_cmd with a given extended regex. -# If you have `file' or equivalent on your system and you're not sure -# whether `pass_all' will *always* work, you probably want this one. - -case $host_os in -aix4* | aix5*) - lt_cv_deplibs_check_method=pass_all - ;; - -beos*) - lt_cv_deplibs_check_method=pass_all - ;; - -bsdi[[45]]*) - lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)' - lt_cv_file_magic_cmd='/usr/bin/file -L' - lt_cv_file_magic_test_file=/shlib/libc.so - ;; - -cygwin*) - # func_win32_libid is a shell function defined in ltmain.sh - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - ;; - -mingw* | pw32*) - # Base MSYS/MinGW do not provide the 'file' command needed by - # func_win32_libid shell function, so use a weaker test based on 'objdump', - # unless we find 'file', for example because we are cross-compiling. - if ( file / ) >/dev/null 2>&1; then - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - else - lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' - lt_cv_file_magic_cmd='$OBJDUMP -f' - fi - ;; - -darwin* | rhapsody*) - lt_cv_deplibs_check_method=pass_all - ;; - -freebsd* | dragonfly*) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - case $host_cpu in - i*86 ) - # Not sure whether the presence of OpenBSD here was a mistake. - # Let's accept both of them until this is cleared up. - lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` - ;; - esac - else - lt_cv_deplibs_check_method=pass_all - fi - ;; - -gnu*) - lt_cv_deplibs_check_method=pass_all - ;; - -hpux10.20* | hpux11*) - lt_cv_file_magic_cmd=/usr/bin/file - case $host_cpu in - ia64*) - lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' - lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so - ;; - hppa*64*) - [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'] - lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl - ;; - *) - lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' - lt_cv_file_magic_test_file=/usr/lib/libc.sl - ;; - esac - ;; - -interix[[3-9]]*) - # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' - ;; - -irix5* | irix6* | nonstopux*) - case $LD in - *-32|*"-32 ") libmagic=32-bit;; - *-n32|*"-n32 ") libmagic=N32;; - *-64|*"-64 ") libmagic=64-bit;; - *) libmagic=never-match;; - esac - lt_cv_deplibs_check_method=pass_all - ;; - -# This must be Linux ELF. -linux* | k*bsd*-gnu) - lt_cv_deplibs_check_method=pass_all - ;; - -netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' - fi - ;; - -newos6*) - lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=/usr/lib/libnls.so - ;; - -nto-qnx*) - lt_cv_deplibs_check_method=unknown - ;; - -openbsd*) - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' - fi - ;; - -osf3* | osf4* | osf5*) - lt_cv_deplibs_check_method=pass_all - ;; - -rdos*) - lt_cv_deplibs_check_method=pass_all - ;; - -solaris*) - lt_cv_deplibs_check_method=pass_all - ;; - -sysv4 | sysv4.3*) - case $host_vendor in - motorola) - lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` - ;; - ncr) - lt_cv_deplibs_check_method=pass_all - ;; - sequent) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' - ;; - sni) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" - lt_cv_file_magic_test_file=/lib/libc.so - ;; - siemens) - lt_cv_deplibs_check_method=pass_all - ;; - pc) - lt_cv_deplibs_check_method=pass_all - ;; - esac - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - lt_cv_deplibs_check_method=pass_all - ;; -esac -]) -file_magic_cmd=$lt_cv_file_magic_cmd -deplibs_check_method=$lt_cv_deplibs_check_method -test -z "$deplibs_check_method" && deplibs_check_method=unknown -])# AC_DEPLIBS_CHECK_METHOD - - -# AC_PROG_NM -# ---------- -# find the pathname to a BSD-compatible name lister -AC_DEFUN([AC_PROG_NM], -[AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM, -[if test -n "$NM"; then - # Let the user override the test. - lt_cv_path_NM="$NM" -else - lt_nm_to_check="${ac_tool_prefix}nm" - if test -n "$ac_tool_prefix" && test "$build" = "$host"; then - lt_nm_to_check="$lt_nm_to_check nm" - fi - for lt_tmp_nm in $lt_nm_to_check; do - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - tmp_nm="$ac_dir/$lt_tmp_nm" - if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then - # Check to see if the nm accepts a BSD-compat flag. - # Adding the `sed 1q' prevents false positives on HP-UX, which says: - # nm: unknown option "B" ignored - # Tru64's nm complains that /dev/null is an invalid object file - case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in - */dev/null* | *'Invalid file or object type'*) - lt_cv_path_NM="$tmp_nm -B" - break - ;; - *) - case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in - */dev/null*) - lt_cv_path_NM="$tmp_nm -p" - break - ;; - *) - lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but - continue # so that we can try to find one that supports BSD flags - ;; - esac - ;; - esac - fi - done - IFS="$lt_save_ifs" - done - test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm -fi]) -NM="$lt_cv_path_NM" -])# AC_PROG_NM - - -# AC_CHECK_LIBM -# ------------- -# check for math library -AC_DEFUN([AC_CHECK_LIBM], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -LIBM= -case $host in -*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) - # These system don't have libm, or don't need it - ;; -*-ncr-sysv4.3*) - AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") - AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") - ;; -*) - AC_CHECK_LIB(m, cos, LIBM="-lm") - ;; -esac -])# AC_CHECK_LIBM - - -# AC_LIBLTDL_CONVENIENCE([DIRECTORY]) -# ----------------------------------- -# sets LIBLTDL to the link flags for the libltdl convenience library and -# LTDLINCL to the include flags for the libltdl header and adds -# --enable-ltdl-convenience to the configure arguments. Note that -# AC_CONFIG_SUBDIRS is not called here. If DIRECTORY is not provided, -# it is assumed to be `libltdl'. LIBLTDL will be prefixed with -# '${top_builddir}/' and LTDLINCL will be prefixed with '${top_srcdir}/' -# (note the single quotes!). If your package is not flat and you're not -# using automake, define top_builddir and top_srcdir appropriately in -# the Makefiles. -AC_DEFUN([AC_LIBLTDL_CONVENIENCE], -[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl - case $enable_ltdl_convenience in - no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;; - "") enable_ltdl_convenience=yes - ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;; - esac - LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la - LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) - # For backwards non-gettext consistent compatibility... - INCLTDL="$LTDLINCL" -])# AC_LIBLTDL_CONVENIENCE - - -# AC_LIBLTDL_INSTALLABLE([DIRECTORY]) -# ----------------------------------- -# sets LIBLTDL to the link flags for the libltdl installable library and -# LTDLINCL to the include flags for the libltdl header and adds -# --enable-ltdl-install to the configure arguments. Note that -# AC_CONFIG_SUBDIRS is not called here. If DIRECTORY is not provided, -# and an installed libltdl is not found, it is assumed to be `libltdl'. -# LIBLTDL will be prefixed with '${top_builddir}/'# and LTDLINCL with -# '${top_srcdir}/' (note the single quotes!). If your package is not -# flat and you're not using automake, define top_builddir and top_srcdir -# appropriately in the Makefiles. -# In the future, this macro may have to be called after AC_PROG_LIBTOOL. -AC_DEFUN([AC_LIBLTDL_INSTALLABLE], -[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl - AC_CHECK_LIB(ltdl, lt_dlinit, - [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no], - [if test x"$enable_ltdl_install" = xno; then - AC_MSG_WARN([libltdl not installed, but installation disabled]) - else - enable_ltdl_install=yes - fi - ]) - if test x"$enable_ltdl_install" = x"yes"; then - ac_configure_args="$ac_configure_args --enable-ltdl-install" - LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la - LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) - else - ac_configure_args="$ac_configure_args --enable-ltdl-install=no" - LIBLTDL="-lltdl" - LTDLINCL= - fi - # For backwards non-gettext consistent compatibility... - INCLTDL="$LTDLINCL" -])# AC_LIBLTDL_INSTALLABLE - - -# AC_LIBTOOL_CXX -# -------------- -# enable support for C++ libraries -AC_DEFUN([AC_LIBTOOL_CXX], -[AC_REQUIRE([_LT_AC_LANG_CXX]) -])# AC_LIBTOOL_CXX - - -# _LT_AC_LANG_CXX -# --------------- -AC_DEFUN([_LT_AC_LANG_CXX], -[AC_REQUIRE([AC_PROG_CXX]) -AC_REQUIRE([_LT_AC_PROG_CXXCPP]) -_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX]) -])# _LT_AC_LANG_CXX - -# _LT_AC_PROG_CXXCPP -# ------------------ -AC_DEFUN([_LT_AC_PROG_CXXCPP], -[ -AC_REQUIRE([AC_PROG_CXX]) -if test -n "$CXX" && ( test "X$CXX" != "Xno" && - ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || - (test "X$CXX" != "Xg++"))) ; then - AC_PROG_CXXCPP -fi -])# _LT_AC_PROG_CXXCPP - -# AC_LIBTOOL_F77 -# -------------- -# enable support for Fortran 77 libraries -AC_DEFUN([AC_LIBTOOL_F77], -[AC_REQUIRE([_LT_AC_LANG_F77]) -])# AC_LIBTOOL_F77 - - -# _LT_AC_LANG_F77 -# --------------- -AC_DEFUN([_LT_AC_LANG_F77], -[AC_REQUIRE([AC_PROG_F77]) -_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77]) -])# _LT_AC_LANG_F77 - - -# AC_LIBTOOL_GCJ -# -------------- -# enable support for GCJ libraries -AC_DEFUN([AC_LIBTOOL_GCJ], -[AC_REQUIRE([_LT_AC_LANG_GCJ]) -])# AC_LIBTOOL_GCJ - - -# _LT_AC_LANG_GCJ -# --------------- -AC_DEFUN([_LT_AC_LANG_GCJ], -[AC_PROVIDE_IFELSE([AC_PROG_GCJ],[], - [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[], - [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[], - [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])], - [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])], - [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])]) -_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ]) -])# _LT_AC_LANG_GCJ - - -# AC_LIBTOOL_RC -# ------------- -# enable support for Windows resource files -AC_DEFUN([AC_LIBTOOL_RC], -[AC_REQUIRE([LT_AC_PROG_RC]) -_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}RC]) -])# AC_LIBTOOL_RC - - -# AC_LIBTOOL_LANG_C_CONFIG -# ------------------------ -# Ensure that the configuration vars for the C compiler are -# suitably defined. Those variables are subsequently used by -# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. -AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG]) -AC_DEFUN([_LT_AC_LANG_C_CONFIG], -[lt_save_CC="$CC" -AC_LANG_PUSH(C) - -# Source file extension for C test sources. -ac_ext=c - -# Object file extension for compiled C test sources. -objext=o -_LT_AC_TAGVAR(objext, $1)=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="int some_variable = 0;" - -# Code to be used in simple link tests -lt_simple_link_test_code='int main(){return(0);}' - -_LT_AC_SYS_COMPILER - -# save warnings/boilerplate of simple test code -_LT_COMPILER_BOILERPLATE -_LT_LINKER_BOILERPLATE - -AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1) -AC_LIBTOOL_PROG_COMPILER_PIC($1) -AC_LIBTOOL_PROG_CC_C_O($1) -AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) -AC_LIBTOOL_PROG_LD_SHLIBS($1) -AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) -AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) -AC_LIBTOOL_SYS_LIB_STRIP -AC_LIBTOOL_DLOPEN_SELF - -# Report which library types will actually be built -AC_MSG_CHECKING([if libtool supports shared libraries]) -AC_MSG_RESULT([$can_build_shared]) - -AC_MSG_CHECKING([whether to build shared libraries]) -test "$can_build_shared" = "no" && enable_shared=no - -# On AIX, shared libraries and static libraries use the same namespace, and -# are all built from PIC. -case $host_os in -aix3*) - test "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; - -aix4* | aix5*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no - fi - ;; -esac -AC_MSG_RESULT([$enable_shared]) - -AC_MSG_CHECKING([whether to build static libraries]) -# Make sure either enable_shared or enable_static is yes. -test "$enable_shared" = yes || enable_static=yes -AC_MSG_RESULT([$enable_static]) - -AC_LIBTOOL_CONFIG($1) - -AC_LANG_POP -CC="$lt_save_CC" -])# AC_LIBTOOL_LANG_C_CONFIG - - -# AC_LIBTOOL_LANG_CXX_CONFIG -# -------------------------- -# Ensure that the configuration vars for the C compiler are -# suitably defined. Those variables are subsequently used by -# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. -AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)]) -AC_DEFUN([_LT_AC_LANG_CXX_CONFIG], -[AC_LANG_PUSH(C++) -AC_REQUIRE([AC_PROG_CXX]) -AC_REQUIRE([_LT_AC_PROG_CXXCPP]) - -_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no -_LT_AC_TAGVAR(allow_undefined_flag, $1)= -_LT_AC_TAGVAR(always_export_symbols, $1)=no -_LT_AC_TAGVAR(archive_expsym_cmds, $1)= -_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= -_LT_AC_TAGVAR(hardcode_direct, $1)=no -_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= -_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= -_LT_AC_TAGVAR(hardcode_libdir_separator, $1)= -_LT_AC_TAGVAR(hardcode_minus_L, $1)=no -_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported -_LT_AC_TAGVAR(hardcode_automatic, $1)=no -_LT_AC_TAGVAR(module_cmds, $1)= -_LT_AC_TAGVAR(module_expsym_cmds, $1)= -_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown -_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds -_LT_AC_TAGVAR(no_undefined_flag, $1)= -_LT_AC_TAGVAR(whole_archive_flag_spec, $1)= -_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no - -# Dependencies to place before and after the object being linked: -_LT_AC_TAGVAR(predep_objects, $1)= -_LT_AC_TAGVAR(postdep_objects, $1)= -_LT_AC_TAGVAR(predeps, $1)= -_LT_AC_TAGVAR(postdeps, $1)= -_LT_AC_TAGVAR(compiler_lib_search_path, $1)= - -# Source file extension for C++ test sources. -ac_ext=cpp - -# Object file extension for compiled C++ test sources. -objext=o -_LT_AC_TAGVAR(objext, $1)=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="int some_variable = 0;" - -# Code to be used in simple link tests -lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. -_LT_AC_SYS_COMPILER - -# save warnings/boilerplate of simple test code -_LT_COMPILER_BOILERPLATE -_LT_LINKER_BOILERPLATE - -# Allow CC to be a program name with arguments. -lt_save_CC=$CC -lt_save_LD=$LD -lt_save_GCC=$GCC -GCC=$GXX -lt_save_with_gnu_ld=$with_gnu_ld -lt_save_path_LD=$lt_cv_path_LD -if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then - lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx -else - $as_unset lt_cv_prog_gnu_ld -fi -if test -n "${lt_cv_path_LDCXX+set}"; then - lt_cv_path_LD=$lt_cv_path_LDCXX -else - $as_unset lt_cv_path_LD -fi -test -z "${LDCXX+set}" || LD=$LDCXX -CC=${CXX-"c++"} -compiler=$CC -_LT_AC_TAGVAR(compiler, $1)=$CC -_LT_CC_BASENAME([$compiler]) - -# We don't want -fno-exception wen compiling C++ code, so set the -# no_builtin_flag separately -if test "$GXX" = yes; then - _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' -else - _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= -fi - -if test "$GXX" = yes; then - # Set up default GNU C++ configuration - - AC_PROG_LD - - # Check if GNU C++ uses GNU ld as the underlying linker, since the - # archiving commands below assume that GNU ld is being used. - if test "$with_gnu_ld" = yes; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - - # If archive_cmds runs LD, not CC, wlarc should be empty - # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to - # investigate it a little bit more. (MM) - wlarc='${wl}' - - # ancient GNU ld didn't support --whole-archive et. al. - if eval "`$CC -print-prog-name=ld` --help 2>&1" | \ - grep 'no-whole-archive' > /dev/null; then - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= - fi - else - with_gnu_ld=no - wlarc= - - # A generic and very simple default shared library creation - # command for GNU C++ for the case where it uses the native - # linker, instead of GNU ld. If possible, this setting should - # overridden to take advantage of the native linker features on - # the platform it is being used on. - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' - fi - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' - -else - GXX=no - with_gnu_ld=no - wlarc= -fi - -# PORTME: fill in a description of your system's C++ link characteristics -AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) -_LT_AC_TAGVAR(ld_shlibs, $1)=yes -case $host_os in - aix3*) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - aix4* | aix5*) - if test "$host_cpu" = ia64; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - exp_sym_flag='-Bexport' - no_entry_flag="" - else - aix_use_runtimelinking=no - - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*) - for ld_flag in $LDFLAGS; do - case $ld_flag in - *-brtl*) - aix_use_runtimelinking=yes - break - ;; - esac - done - ;; - esac - - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a library - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - _LT_AC_TAGVAR(archive_cmds, $1)='' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - - if test "$GXX" = yes; then - case $host_os in aix4.[[012]]|aix4.[[012]].*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && \ - strings "$collect2name" | grep resolve_lib_name >/dev/null - then - # We have reworked collect2 - : - else - # We have old collect2 - _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= - fi - ;; - esac - shared_flag='-shared' - if test "$aix_use_runtimelinking" = yes; then - shared_flag="$shared_flag "'${wl}-G' - fi - else - # not using gcc - if test "$host_cpu" = ia64; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to export. - _LT_AC_TAGVAR(always_export_symbols, $1)=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' - # Determine the default libpath from the value encoded in an empty executable. - _LT_AC_SYS_LIBPATH_AIX - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - - _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' - _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" - _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an empty executable. - _LT_AC_SYS_LIBPATH_AIX - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' - # Exported symbols can be pulled into shared objects from archives - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience' - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes - # This is similar to how AIX traditionally builds its shared libraries. - _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - - beos*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported - # Joseph Beckenbach <jrb3@best.com> says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - chorus*) - case $cc_basename in - *) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - - cygwin* | mingw* | pw32*) - # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, - # as there is no search path for DLLs. - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_AC_TAGVAR(always_export_symbols, $1)=no - _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - - if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - darwin* | rhapsody*) - case $host_os in - rhapsody* | darwin1.[[012]]) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[[012]]) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' - ;; - 10.*) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup' - ;; - esac - fi - ;; - esac - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_AC_TAGVAR(hardcode_direct, $1)=no - _LT_AC_TAGVAR(hardcode_automatic, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='' - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - - if test "$GXX" = yes ; then - lt_int_apple_cc_single_mod=no - output_verbose_link_cmd='echo' - if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then - lt_int_apple_cc_single_mod=yes - fi - if test "X$lt_int_apple_cc_single_mod" = Xyes ; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - else - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - fi - _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds - if test "X$lt_int_apple_cc_single_mod" = Xyes ; then - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - else - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - fi - _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - else - case $cc_basename in - xlc*) - output_verbose_link_cmd='echo' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' - _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - ;; - *) - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - esac - fi - ;; - - dgux*) - case $cc_basename in - ec++*) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - ghcx*) - # Green Hills C++ Compiler - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - freebsd[[12]]*) - # C++ shared libraries reported to be fairly broken before switch to ELF - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - freebsd-elf*) - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - ;; - freebsd* | dragonfly*) - # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF - # conventions - _LT_AC_TAGVAR(ld_shlibs, $1)=yes - ;; - gnu*) - ;; - hpux9*) - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, - # but as the default - # location of the library. - - case $cc_basename in - CC*) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - aCC*) - _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[[-]]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - ;; - *) - if test "$GXX" = yes; then - _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - hpux10*|hpux11*) - if test $with_gnu_ld = no; then - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - - case $host_cpu in - hppa*64*|ia64*) ;; - *) - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - ;; - esac - fi - case $host_cpu in - hppa*64*|ia64*) - _LT_AC_TAGVAR(hardcode_direct, $1)=no - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - *) - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, - # but as the default - # location of the library. - ;; - esac - - case $cc_basename in - CC*) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - aCC*) - case $host_cpu in - hppa*64*) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - ia64*) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - *) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - esac - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - ;; - *) - if test "$GXX" = yes; then - if test $with_gnu_ld = no; then - case $host_cpu in - hppa*64*) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - ia64*) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - *) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - esac - fi - else - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - interix[[3-9]]*) - _LT_AC_TAGVAR(hardcode_direct, $1)=no - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. - # Instead, shared libraries are loaded at an image base (0x10000000 by - # default) and relocated if they conflict, which is a slow very memory - # consuming and fragmenting process. To avoid this, we pick a random, - # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link - # time. Moving up from 0x10000000 also allows more sbrk(2) space. - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - ;; - irix5* | irix6*) - case $cc_basename in - CC*) - # SGI C++ - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - - # Archives containing C++ object files must be created using - # "CC -ar", where "CC" is the IRIX C++ compiler. This is - # necessary to make sure instantiated templates are included - # in the archive. - _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' - ;; - *) - if test "$GXX" = yes; then - if test "$with_gnu_ld" = no; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' - fi - fi - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - ;; - esac - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - ;; - linux* | k*bsd*-gnu) - case $cc_basename in - KCC*) - # Kuck and Associates, Inc. (KAI) C++ Compiler - - # KCC will only create a shared library if the output file - # ends with ".so" (or ".sl" for HP-UX), so rename the library - # to its proper name (with version) after linking. - _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir' - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - - # Archives containing C++ object files must be created using - # "CC -Bstatic", where "CC" is the KAI C++ compiler. - _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' - ;; - icpc*) - # Intel C++ - with_gnu_ld=yes - # version 8.0 and above of icpc choke on multiply defined symbols - # if we add $predep_objects and $postdep_objects, however 7.1 and - # earlier do not add the objects themselves. - case `$CC -V 2>&1` in - *"Version 7."*) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - ;; - *) # Version 8.0 or newer - tmp_idyn= - case $host_cpu in - ia64*) tmp_idyn=' -i_dynamic';; - esac - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - ;; - esac - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' - ;; - pgCC*) - # Portland Group C++ compiler - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' - ;; - cxx*) - # Compaq C++ - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' - - runpath_var=LD_RUN_PATH - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C++ 5.9 - _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' - - # Not sure whether something based on - # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 - # would be better. - output_verbose_link_cmd='echo' - - # Archives containing C++ object files must be created using - # "CC -xar", where "CC" is the Sun C++ compiler. This is - # necessary to make sure instantiated templates are included - # in the archive. - _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' - ;; - esac - ;; - esac - ;; - lynxos*) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - m88k*) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - mvs*) - case $cc_basename in - cxx*) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' - wlarc= - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - fi - # Workaround some broken pre-1.5 toolchains - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' - ;; - openbsd2*) - # C++ shared libraries are fairly broken - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - openbsd*) - if test -f /usr/libexec/ld.so; then - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - fi - output_verbose_link_cmd='echo' - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - osf3*) - case $cc_basename in - KCC*) - # Kuck and Associates, Inc. (KAI) C++ Compiler - - # KCC will only create a shared library if the output file - # ends with ".so" (or ".sl" for HP-UX), so rename the library - # to its proper name (with version) after linking. - _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - - # Archives containing C++ object files must be created using - # "CC -Bstatic", where "CC" is the KAI C++ compiler. - _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' - - ;; - RCC*) - # Rational C++ 2.4.1 - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - cxx*) - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - ;; - *) - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' - - else - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - osf4* | osf5*) - case $cc_basename in - KCC*) - # Kuck and Associates, Inc. (KAI) C++ Compiler - - # KCC will only create a shared library if the output file - # ends with ".so" (or ".sl" for HP-UX), so rename the library - # to its proper name (with version) after linking. - _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - - # Archives containing C++ object files must be created using - # the KAI C++ compiler. - _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' - ;; - RCC*) - # Rational C++ 2.4.1 - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - cxx*) - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ - echo "-hidden">> $lib.exp~ - $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~ - $rm $lib.exp' - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - ;; - *) - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' - - else - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - psos*) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - sunos4*) - case $cc_basename in - CC*) - # Sun C++ 4.x - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - lcc*) - # Lucid - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - solaris*) - case $cc_basename in - CC*) - # Sun C++ 4.2, 5.x and Centerline C++ - _LT_AC_TAGVAR(archive_cmds_need_lc,$1)=yes - _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - case $host_os in - solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; - *) - # The compiler driver will combine and reorder linker options, - # but understands `-z linker_flag'. - # Supported since Solaris 2.6 (maybe 2.5.1?) - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' - ;; - esac - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - - output_verbose_link_cmd='echo' - - # Archives containing C++ object files must be created using - # "CC -xar", where "CC" is the Sun C++ compiler. This is - # necessary to make sure instantiated templates are included - # in the archive. - _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' - ;; - gcx*) - # Green Hills C++ Compiler - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - - # The C++ compiler must be used to create the archive. - _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' - ;; - *) - # GNU C++ compiler with Solaris linker - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' - if $CC --version | grep -v '^2\.7' > /dev/null; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" - else - # g++ 2.7 appears to require `-G' NOT `-shared' on this - # platform. - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" - fi - - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' - case $host_os in - solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; - *) - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' - ;; - esac - fi - ;; - esac - ;; - sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) - _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - runpath_var='LD_RUN_PATH' - - case $cc_basename in - CC*) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - ;; - sysv5* | sco3.2v5* | sco5v6*) - # Note: We can NOT use -z defs as we might desire, because we do not - # link with -lc, and that would cause any symbols used from libc to - # always be unresolved, which means just about no library would - # ever link correctly. If we're not using GNU ld we use -z text - # though, which does catch some bad symbols but isn't as heavy-handed - # as -z defs. - # For security reasons, it is highly recommended that you always - # use absolute paths for naming shared libraries, and exclude the - # DT_RUNPATH tag from executables and libraries. But doing so - # requires that you compile everything twice, which is a pain. - # So that behaviour is only enabled if SCOABSPATH is set to a - # non-empty value in the environment. Most likely only useful for - # creating official distributions of packages. - # This is a hack until libtool officially supports absolute path - # names for shared libraries. - _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' - _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' - runpath_var='LD_RUN_PATH' - - case $cc_basename in - CC*) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - ;; - tandem*) - case $cc_basename in - NCC*) - # NonStop-UX NCC 3.20 - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - vxworks*) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; -esac -AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) -test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no - -_LT_AC_TAGVAR(GCC, $1)="$GXX" -_LT_AC_TAGVAR(LD, $1)="$LD" - -AC_LIBTOOL_POSTDEP_PREDEP($1) -AC_LIBTOOL_PROG_COMPILER_PIC($1) -AC_LIBTOOL_PROG_CC_C_O($1) -AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) -AC_LIBTOOL_PROG_LD_SHLIBS($1) -AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) -AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) - -AC_LIBTOOL_CONFIG($1) - -AC_LANG_POP -CC=$lt_save_CC -LDCXX=$LD -LD=$lt_save_LD -GCC=$lt_save_GCC -with_gnu_ldcxx=$with_gnu_ld -with_gnu_ld=$lt_save_with_gnu_ld -lt_cv_path_LDCXX=$lt_cv_path_LD -lt_cv_path_LD=$lt_save_path_LD -lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld -lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld -])# AC_LIBTOOL_LANG_CXX_CONFIG - -# AC_LIBTOOL_POSTDEP_PREDEP([TAGNAME]) -# ------------------------------------ -# Figure out "hidden" library dependencies from verbose -# compiler output when linking a shared library. -# Parse the compiler output and extract the necessary -# objects, libraries and library flags. -AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],[ -dnl we can't use the lt_simple_compile_test_code here, -dnl because it contains code intended for an executable, -dnl not a library. It's possible we should let each -dnl tag define a new lt_????_link_test_code variable, -dnl but it's only used here... -ifelse([$1],[],[cat > conftest.$ac_ext <<EOF -int a; -void foo (void) { a = 0; } -EOF -],[$1],[CXX],[cat > conftest.$ac_ext <<EOF -class Foo -{ -public: - Foo (void) { a = 0; } -private: - int a; -}; -EOF -],[$1],[F77],[cat > conftest.$ac_ext <<EOF - subroutine foo - implicit none - integer*4 a - a=0 - return - end -EOF -],[$1],[GCJ],[cat > conftest.$ac_ext <<EOF -public class foo { - private int a; - public void bar (void) { - a = 0; - } -}; -EOF -]) -dnl Parse the compiler output and extract the necessary -dnl objects, libraries and library flags. -if AC_TRY_EVAL(ac_compile); then - # Parse the compiler output and extract the necessary - # objects, libraries and library flags. - - # Sentinel used to keep track of whether or not we are before - # the conftest object file. - pre_test_object_deps_done=no - - # The `*' in the case matches for architectures that use `case' in - # $output_verbose_cmd can trigger glob expansion during the loop - # eval without this substitution. - output_verbose_link_cmd=`$echo "X$output_verbose_link_cmd" | $Xsed -e "$no_glob_subst"` - - for p in `eval $output_verbose_link_cmd`; do - case $p in - - -L* | -R* | -l*) - # Some compilers place space between "-{L,R}" and the path. - # Remove the space. - if test $p = "-L" \ - || test $p = "-R"; then - prev=$p - continue - else - prev= - fi - - if test "$pre_test_object_deps_done" = no; then - case $p in - -L* | -R*) - # Internal compiler library paths should come after those - # provided the user. The postdeps already come after the - # user supplied libs so there is no need to process them. - if test -z "$_LT_AC_TAGVAR(compiler_lib_search_path, $1)"; then - _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" - else - _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${_LT_AC_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" - fi - ;; - # The "-l" case would never come before the object being - # linked, so don't bother handling this case. - esac - else - if test -z "$_LT_AC_TAGVAR(postdeps, $1)"; then - _LT_AC_TAGVAR(postdeps, $1)="${prev}${p}" - else - _LT_AC_TAGVAR(postdeps, $1)="${_LT_AC_TAGVAR(postdeps, $1)} ${prev}${p}" - fi - fi - ;; - - *.$objext) - # This assumes that the test object file only shows up - # once in the compiler output. - if test "$p" = "conftest.$objext"; then - pre_test_object_deps_done=yes - continue - fi - - if test "$pre_test_object_deps_done" = no; then - if test -z "$_LT_AC_TAGVAR(predep_objects, $1)"; then - _LT_AC_TAGVAR(predep_objects, $1)="$p" - else - _LT_AC_TAGVAR(predep_objects, $1)="$_LT_AC_TAGVAR(predep_objects, $1) $p" - fi - else - if test -z "$_LT_AC_TAGVAR(postdep_objects, $1)"; then - _LT_AC_TAGVAR(postdep_objects, $1)="$p" - else - _LT_AC_TAGVAR(postdep_objects, $1)="$_LT_AC_TAGVAR(postdep_objects, $1) $p" - fi - fi - ;; - - *) ;; # Ignore the rest. - - esac - done - - # Clean up. - rm -f a.out a.exe -else - echo "libtool.m4: error: problem compiling $1 test program" -fi - -$rm -f confest.$objext - -# PORTME: override above test on systems where it is broken -ifelse([$1],[CXX], -[case $host_os in -interix[[3-9]]*) - # Interix 3.5 installs completely hosed .la files for C++, so rather than - # hack all around it, let's just trust "g++" to DTRT. - _LT_AC_TAGVAR(predep_objects,$1)= - _LT_AC_TAGVAR(postdep_objects,$1)= - _LT_AC_TAGVAR(postdeps,$1)= - ;; - -linux*) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C++ 5.9 - # - # The more standards-conforming stlport4 library is - # incompatible with the Cstd library. Avoid specifying - # it if it's in CXXFLAGS. Ignore libCrun as - # -library=stlport4 depends on it. - case " $CXX $CXXFLAGS " in - *" -library=stlport4 "*) - solaris_use_stlport4=yes - ;; - esac - if test "$solaris_use_stlport4" != yes; then - _LT_AC_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' - fi - ;; - esac - ;; - -solaris*) - case $cc_basename in - CC*) - # The more standards-conforming stlport4 library is - # incompatible with the Cstd library. Avoid specifying - # it if it's in CXXFLAGS. Ignore libCrun as - # -library=stlport4 depends on it. - case " $CXX $CXXFLAGS " in - *" -library=stlport4 "*) - solaris_use_stlport4=yes - ;; - esac - - # Adding this requires a known-good setup of shared libraries for - # Sun compiler versions before 5.6, else PIC objects from an old - # archive will be linked into the output, leading to subtle bugs. - if test "$solaris_use_stlport4" != yes; then - _LT_AC_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' - fi - ;; - esac - ;; -esac -]) - -case " $_LT_AC_TAGVAR(postdeps, $1) " in -*" -lc "*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;; -esac -])# AC_LIBTOOL_POSTDEP_PREDEP - -# AC_LIBTOOL_LANG_F77_CONFIG -# -------------------------- -# Ensure that the configuration vars for the C compiler are -# suitably defined. Those variables are subsequently used by -# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. -AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG], [_LT_AC_LANG_F77_CONFIG(F77)]) -AC_DEFUN([_LT_AC_LANG_F77_CONFIG], -[AC_REQUIRE([AC_PROG_F77]) -AC_LANG_PUSH(Fortran 77) - -_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no -_LT_AC_TAGVAR(allow_undefined_flag, $1)= -_LT_AC_TAGVAR(always_export_symbols, $1)=no -_LT_AC_TAGVAR(archive_expsym_cmds, $1)= -_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= -_LT_AC_TAGVAR(hardcode_direct, $1)=no -_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= -_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= -_LT_AC_TAGVAR(hardcode_libdir_separator, $1)= -_LT_AC_TAGVAR(hardcode_minus_L, $1)=no -_LT_AC_TAGVAR(hardcode_automatic, $1)=no -_LT_AC_TAGVAR(module_cmds, $1)= -_LT_AC_TAGVAR(module_expsym_cmds, $1)= -_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown -_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds -_LT_AC_TAGVAR(no_undefined_flag, $1)= -_LT_AC_TAGVAR(whole_archive_flag_spec, $1)= -_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no - -# Source file extension for f77 test sources. -ac_ext=f - -# Object file extension for compiled f77 test sources. -objext=o -_LT_AC_TAGVAR(objext, $1)=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="\ - subroutine t - return - end -" - -# Code to be used in simple link tests -lt_simple_link_test_code="\ - program t - end -" - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. -_LT_AC_SYS_COMPILER - -# save warnings/boilerplate of simple test code -_LT_COMPILER_BOILERPLATE -_LT_LINKER_BOILERPLATE - -# Allow CC to be a program name with arguments. -lt_save_CC="$CC" -CC=${F77-"f77"} -compiler=$CC -_LT_AC_TAGVAR(compiler, $1)=$CC -_LT_CC_BASENAME([$compiler]) - -AC_MSG_CHECKING([if libtool supports shared libraries]) -AC_MSG_RESULT([$can_build_shared]) - -AC_MSG_CHECKING([whether to build shared libraries]) -test "$can_build_shared" = "no" && enable_shared=no - -# On AIX, shared libraries and static libraries use the same namespace, and -# are all built from PIC. -case $host_os in -aix3*) - test "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; -aix4* | aix5*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no - fi - ;; -esac -AC_MSG_RESULT([$enable_shared]) - -AC_MSG_CHECKING([whether to build static libraries]) -# Make sure either enable_shared or enable_static is yes. -test "$enable_shared" = yes || enable_static=yes -AC_MSG_RESULT([$enable_static]) - -_LT_AC_TAGVAR(GCC, $1)="$G77" -_LT_AC_TAGVAR(LD, $1)="$LD" - -AC_LIBTOOL_PROG_COMPILER_PIC($1) -AC_LIBTOOL_PROG_CC_C_O($1) -AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) -AC_LIBTOOL_PROG_LD_SHLIBS($1) -AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) -AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) - -AC_LIBTOOL_CONFIG($1) - -AC_LANG_POP -CC="$lt_save_CC" -])# AC_LIBTOOL_LANG_F77_CONFIG - - -# AC_LIBTOOL_LANG_GCJ_CONFIG -# -------------------------- -# Ensure that the configuration vars for the C compiler are -# suitably defined. Those variables are subsequently used by -# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. -AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG], [_LT_AC_LANG_GCJ_CONFIG(GCJ)]) -AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG], -[AC_LANG_SAVE - -# Source file extension for Java test sources. -ac_ext=java - -# Object file extension for compiled Java test sources. -objext=o -_LT_AC_TAGVAR(objext, $1)=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="class foo {}" - -# Code to be used in simple link tests -lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. -_LT_AC_SYS_COMPILER - -# save warnings/boilerplate of simple test code -_LT_COMPILER_BOILERPLATE -_LT_LINKER_BOILERPLATE - -# Allow CC to be a program name with arguments. -lt_save_CC="$CC" -CC=${GCJ-"gcj"} -compiler=$CC -_LT_AC_TAGVAR(compiler, $1)=$CC -_LT_CC_BASENAME([$compiler]) - -# GCJ did not exist at the time GCC didn't implicitly link libc in. -_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - -_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds - -AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1) -AC_LIBTOOL_PROG_COMPILER_PIC($1) -AC_LIBTOOL_PROG_CC_C_O($1) -AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) -AC_LIBTOOL_PROG_LD_SHLIBS($1) -AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) -AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) - -AC_LIBTOOL_CONFIG($1) - -AC_LANG_RESTORE -CC="$lt_save_CC" -])# AC_LIBTOOL_LANG_GCJ_CONFIG - - -# AC_LIBTOOL_LANG_RC_CONFIG -# ------------------------- -# Ensure that the configuration vars for the Windows resource compiler are -# suitably defined. Those variables are subsequently used by -# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. -AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG], [_LT_AC_LANG_RC_CONFIG(RC)]) -AC_DEFUN([_LT_AC_LANG_RC_CONFIG], -[AC_LANG_SAVE - -# Source file extension for RC test sources. -ac_ext=rc - -# Object file extension for compiled RC test sources. -objext=o -_LT_AC_TAGVAR(objext, $1)=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' - -# Code to be used in simple link tests -lt_simple_link_test_code="$lt_simple_compile_test_code" - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. -_LT_AC_SYS_COMPILER - -# save warnings/boilerplate of simple test code -_LT_COMPILER_BOILERPLATE -_LT_LINKER_BOILERPLATE - -# Allow CC to be a program name with arguments. -lt_save_CC="$CC" -CC=${RC-"windres"} -compiler=$CC -_LT_AC_TAGVAR(compiler, $1)=$CC -_LT_CC_BASENAME([$compiler]) -_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes - -AC_LIBTOOL_CONFIG($1) - -AC_LANG_RESTORE -CC="$lt_save_CC" -])# AC_LIBTOOL_LANG_RC_CONFIG - - -# AC_LIBTOOL_CONFIG([TAGNAME]) -# ---------------------------- -# If TAGNAME is not passed, then create an initial libtool script -# with a default configuration from the untagged config vars. Otherwise -# add code to config.status for appending the configuration named by -# TAGNAME from the matching tagged config vars. -AC_DEFUN([AC_LIBTOOL_CONFIG], -[# The else clause should only fire when bootstrapping the -# libtool distribution, otherwise you forgot to ship ltmain.sh -# with your package, and you will get complaints that there are -# no rules to generate ltmain.sh. -if test -f "$ltmain"; then - # See if we are running on zsh, and set the options which allow our commands through - # without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST - fi - # Now quote all the things that may contain metacharacters while being - # careful not to overquote the AC_SUBSTed values. We take copies of the - # variables and quote the copies for generation of the libtool script. - for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ - SED SHELL STRIP \ - libname_spec library_names_spec soname_spec extract_expsyms_cmds \ - old_striplib striplib file_magic_cmd finish_cmds finish_eval \ - deplibs_check_method reload_flag reload_cmds need_locks \ - lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ - lt_cv_sys_global_symbol_to_c_name_address \ - sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ - old_postinstall_cmds old_postuninstall_cmds \ - _LT_AC_TAGVAR(compiler, $1) \ - _LT_AC_TAGVAR(CC, $1) \ - _LT_AC_TAGVAR(LD, $1) \ - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1) \ - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1) \ - _LT_AC_TAGVAR(lt_prog_compiler_static, $1) \ - _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) \ - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1) \ - _LT_AC_TAGVAR(thread_safe_flag_spec, $1) \ - _LT_AC_TAGVAR(whole_archive_flag_spec, $1) \ - _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) \ - _LT_AC_TAGVAR(old_archive_cmds, $1) \ - _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) \ - _LT_AC_TAGVAR(predep_objects, $1) \ - _LT_AC_TAGVAR(postdep_objects, $1) \ - _LT_AC_TAGVAR(predeps, $1) \ - _LT_AC_TAGVAR(postdeps, $1) \ - _LT_AC_TAGVAR(compiler_lib_search_path, $1) \ - _LT_AC_TAGVAR(archive_cmds, $1) \ - _LT_AC_TAGVAR(archive_expsym_cmds, $1) \ - _LT_AC_TAGVAR(postinstall_cmds, $1) \ - _LT_AC_TAGVAR(postuninstall_cmds, $1) \ - _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) \ - _LT_AC_TAGVAR(allow_undefined_flag, $1) \ - _LT_AC_TAGVAR(no_undefined_flag, $1) \ - _LT_AC_TAGVAR(export_symbols_cmds, $1) \ - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) \ - _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) \ - _LT_AC_TAGVAR(hardcode_libdir_separator, $1) \ - _LT_AC_TAGVAR(hardcode_automatic, $1) \ - _LT_AC_TAGVAR(module_cmds, $1) \ - _LT_AC_TAGVAR(module_expsym_cmds, $1) \ - _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) \ - _LT_AC_TAGVAR(fix_srcfile_path, $1) \ - _LT_AC_TAGVAR(exclude_expsyms, $1) \ - _LT_AC_TAGVAR(include_expsyms, $1); do - - case $var in - _LT_AC_TAGVAR(old_archive_cmds, $1) | \ - _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) | \ - _LT_AC_TAGVAR(archive_cmds, $1) | \ - _LT_AC_TAGVAR(archive_expsym_cmds, $1) | \ - _LT_AC_TAGVAR(module_cmds, $1) | \ - _LT_AC_TAGVAR(module_expsym_cmds, $1) | \ - _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) | \ - _LT_AC_TAGVAR(export_symbols_cmds, $1) | \ - extract_expsyms_cmds | reload_cmds | finish_cmds | \ - postinstall_cmds | postuninstall_cmds | \ - old_postinstall_cmds | old_postuninstall_cmds | \ - sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) - # Double-quote double-evaled strings. - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" - ;; - *) - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" - ;; - esac - done - - case $lt_echo in - *'\[$]0 --fallback-echo"') - lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\[$]0 --fallback-echo"[$]/[$]0 --fallback-echo"/'` - ;; - esac - -ifelse([$1], [], - [cfgfile="${ofile}T" - trap "$rm \"$cfgfile\"; exit 1" 1 2 15 - $rm -f "$cfgfile" - AC_MSG_NOTICE([creating $ofile])], - [cfgfile="$ofile"]) - - cat <<__EOF__ >> "$cfgfile" -ifelse([$1], [], -[#! $SHELL - -# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. -# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) -# NOTE: Changes made to this file will be lost: look at ltmain.sh. -# -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 -# Free Software Foundation, Inc. -# -# This file is part of GNU Libtool: -# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# A sed program that does not truncate output. -SED=$lt_SED - -# Sed that helps us avoid accidentally triggering echo(1) options like -n. -Xsed="$SED -e 1s/^X//" - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -# The names of the tagged configurations supported by this script. -available_tags= - -# ### BEGIN LIBTOOL CONFIG], -[# ### BEGIN LIBTOOL TAG CONFIG: $tagname]) - -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: - -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL - -# Whether or not to build shared libraries. -build_libtool_libs=$enable_shared - -# Whether or not to build static libraries. -build_old_libs=$enable_static - -# Whether or not to add -lc for building shared libraries. -build_libtool_need_lc=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1) - -# Whether or not to disallow shared libs when runtime libs are static -allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) - -# Whether or not to optimize for fast installation. -fast_install=$enable_fast_install - -# The host system. -host_alias=$host_alias -host=$host -host_os=$host_os - -# The build system. -build_alias=$build_alias -build=$build -build_os=$build_os - -# An echo program that does not interpret backslashes. -echo=$lt_echo - -# The archiver. -AR=$lt_AR -AR_FLAGS=$lt_AR_FLAGS - -# A C compiler. -LTCC=$lt_LTCC - -# LTCC compiler flags. -LTCFLAGS=$lt_LTCFLAGS - -# A language-specific compiler. -CC=$lt_[]_LT_AC_TAGVAR(compiler, $1) - -# Is the compiler the GNU C compiler? -with_gcc=$_LT_AC_TAGVAR(GCC, $1) - -# An ERE matcher. -EGREP=$lt_EGREP - -# The linker used to build libraries. -LD=$lt_[]_LT_AC_TAGVAR(LD, $1) - -# Whether we need hard or soft links. -LN_S=$lt_LN_S - -# A BSD-compatible nm program. -NM=$lt_NM - -# A symbol stripping program -STRIP=$lt_STRIP - -# Used to examine libraries when file_magic_cmd begins "file" -MAGIC_CMD=$MAGIC_CMD - -# Used on cygwin: DLL creation program. -DLLTOOL="$DLLTOOL" - -# Used on cygwin: object dumper. -OBJDUMP="$OBJDUMP" - -# Used on cygwin: assembler. -AS="$AS" - -# The name of the directory that contains temporary libtool files. -objdir=$objdir - -# How to create reloadable object files. -reload_flag=$lt_reload_flag -reload_cmds=$lt_reload_cmds - -# How to pass a linker flag through the compiler. -wl=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) - -# Object file suffix (normally "o"). -objext="$ac_objext" - -# Old archive suffix (normally "a"). -libext="$libext" - -# Shared library suffix (normally ".so"). -shrext_cmds='$shrext_cmds' - -# Executable file suffix (normally ""). -exeext="$exeext" - -# Additional compiler flags for building library objects. -pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) -pic_mode=$pic_mode - -# What is the maximum length of a command? -max_cmd_len=$lt_cv_sys_max_cmd_len - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) - -# Must we lock files when doing compilation? -need_locks=$lt_need_locks - -# Do we need the lib prefix for modules? -need_lib_prefix=$need_lib_prefix - -# Do we need a version for libraries? -need_version=$need_version - -# Whether dlopen is supported. -dlopen_support=$enable_dlopen - -# Whether dlopen of programs is supported. -dlopen_self=$enable_dlopen_self - -# Whether dlopen of statically linked programs is supported. -dlopen_self_static=$enable_dlopen_self_static - -# Compiler flag to prevent dynamic linking. -link_static_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1) - -# Compiler flag to turn off builtin functions. -no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1) - -# Compiler flag to generate shared objects directly from archives. -whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1) - -# Compiler flag to generate thread-safe objects. -thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1) - -# Library versioning type. -version_type=$version_type - -# Format of library name prefix. -libname_spec=$lt_libname_spec - -# List of archive names. First name is the real one, the rest are links. -# The last name is the one that the linker finds with -lNAME. -library_names_spec=$lt_library_names_spec - -# The coded name of the library, if different from the real name. -soname_spec=$lt_soname_spec - -# Commands used to build and install an old-style archive. -RANLIB=$lt_RANLIB -old_archive_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_cmds, $1) -old_postinstall_cmds=$lt_old_postinstall_cmds -old_postuninstall_cmds=$lt_old_postuninstall_cmds - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1) - -# Create a temporary old-style archive to link instead of a shared archive. -old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) - -# Commands used to build and install a shared archive. -archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1) -archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1) -postinstall_cmds=$lt_postinstall_cmds -postuninstall_cmds=$lt_postuninstall_cmds - -# Commands used to build a loadable module (assumed same as above if empty) -module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1) -module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1) - -# Commands to strip libraries. -old_striplib=$lt_old_striplib -striplib=$lt_striplib - -# Dependencies to place before the objects being linked to create a -# shared library. -predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1) - -# Dependencies to place after the objects being linked to create a -# shared library. -postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1) - -# Dependencies to place before the objects being linked to create a -# shared library. -predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1) - -# Dependencies to place after the objects being linked to create a -# shared library. -postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1) - -# The library search path used internally by the compiler when linking -# a shared library. -compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1) - -# Method to check whether dependent libraries are shared objects. -deplibs_check_method=$lt_deplibs_check_method - -# Command to use when deplibs_check_method == file_magic. -file_magic_cmd=$lt_file_magic_cmd - -# Flag that allows shared libraries with undefined symbols to be built. -allow_undefined_flag=$lt_[]_LT_AC_TAGVAR(allow_undefined_flag, $1) - -# Flag that forces no undefined symbols. -no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1) - -# Commands used to finish a libtool library installation in a directory. -finish_cmds=$lt_finish_cmds - -# Same as above, but a single script fragment to be evaled but not shown. -finish_eval=$lt_finish_eval - -# Take the output of nm and produce a listing of raw symbols and C names. -global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe - -# Transform the output of nm in a proper C declaration -global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl - -# Transform the output of nm in a C name address pair -global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address - -# This is the shared library runtime path variable. -runpath_var=$runpath_var - -# This is the shared library path variable. -shlibpath_var=$shlibpath_var - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=$shlibpath_overrides_runpath - -# How to hardcode a shared library path into an executable. -hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1) - -# Whether we should hardcode library paths into libraries. -hardcode_into_libs=$hardcode_into_libs - -# Flag to hardcode \$libdir into a binary during linking. -# This must work even if \$libdir does not exist. -hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) - -# If ld is used when linking, flag to hardcode \$libdir into -# a binary during linking. This must work even if \$libdir does -# not exist. -hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) - -# Whether we need a single -rpath flag with a separated argument. -hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1) - -# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the -# resulting binary. -hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1) - -# Set to yes if using the -LDIR flag during linking hardcodes DIR into the -# resulting binary. -hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1) - -# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into -# the resulting binary. -hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1) - -# Set to yes if building a shared library automatically hardcodes DIR into the library -# and all subsequent libraries and executables linked against it. -hardcode_automatic=$_LT_AC_TAGVAR(hardcode_automatic, $1) - -# Variables whose values should be saved in libtool wrapper scripts and -# restored at relink time. -variables_saved_for_relink="$variables_saved_for_relink" - -# Whether libtool must link a program against all its dependency libraries. -link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1) - -# Compile-time system search path for libraries -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec - -# Run-time system search path for libraries -sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec - -# Fix the shell variable \$srcfile for the compiler. -fix_srcfile_path=$lt_fix_srcfile_path - -# Set to yes if exported symbols are required. -always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1) - -# The commands to list exported symbols. -export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1) - -# The commands to extract the exported symbol list from a shared archive. -extract_expsyms_cmds=$lt_extract_expsyms_cmds - -# Symbols that should not be listed in the preloaded symbols. -exclude_expsyms=$lt_[]_LT_AC_TAGVAR(exclude_expsyms, $1) - -# Symbols that must always be exported. -include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1) - -ifelse([$1],[], -[# ### END LIBTOOL CONFIG], -[# ### END LIBTOOL TAG CONFIG: $tagname]) - -__EOF__ - -ifelse([$1],[], [ - case $host_os in - aix3*) - cat <<\EOF >> "$cfgfile" - -# AIX sometimes has problems with the GCC collect2 program. For some -# reason, if we set the COLLECT_NAMES environment variable, the problems -# vanish in a puff of smoke. -if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES -fi -EOF - ;; - esac - - # We use sed instead of cat because bash on DJGPP gets confused if - # if finds mixed CR/LF and LF-only lines. Since sed operates in - # text mode, it properly converts lines to CR/LF. This bash problem - # is reportedly fixed, but why not run on old versions too? - sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1) - - mv -f "$cfgfile" "$ofile" || \ - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" -]) -else - # If there is no Makefile yet, we rely on a make rule to execute - # `config.status --recheck' to rerun these tests and create the - # libtool script then. - ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` - if test -f "$ltmain_in"; then - test -f Makefile && make "$ltmain" - fi -fi -])# AC_LIBTOOL_CONFIG - - -# AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME]) -# ------------------------------------------- -AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], -[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl - -_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= - -if test "$GCC" = yes; then - _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' - - AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], - lt_cv_prog_compiler_rtti_exceptions, - [-fno-rtti -fno-exceptions], [], - [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) -fi -])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI - - -# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE -# --------------------------------- -AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], -[AC_REQUIRE([AC_CANONICAL_HOST]) -AC_REQUIRE([LT_AC_PROG_SED]) -AC_REQUIRE([AC_PROG_NM]) -AC_REQUIRE([AC_OBJEXT]) -# Check for command to grab the raw symbol name followed by C symbol from nm. -AC_MSG_CHECKING([command to parse $NM output from $compiler object]) -AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], -[ -# These are sane defaults that work on at least a few old systems. -# [They come from Ultrix. What could be older than Ultrix?!! ;)] - -# Character class describing NM global symbol codes. -symcode='[[BCDEGRST]]' - -# Regexp to match symbols that can be accessed directly from C. -sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' - -# Transform an extracted symbol line into a proper C declaration -lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" - -# Transform an extracted symbol line into symbol name and symbol address -lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" - -# Define system-specific variables. -case $host_os in -aix*) - symcode='[[BCDT]]' - ;; -cygwin* | mingw* | pw32*) - symcode='[[ABCDGISTW]]' - ;; -hpux*) # Its linker distinguishes data from code symbols - if test "$host_cpu" = ia64; then - symcode='[[ABCDEGRST]]' - fi - lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" - ;; -linux* | k*bsd*-gnu) - if test "$host_cpu" = ia64; then - symcode='[[ABCDGIRSTW]]' - lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" - fi - ;; -irix* | nonstopux*) - symcode='[[BCDEGRST]]' - ;; -osf*) - symcode='[[BCDEGQRST]]' - ;; -solaris*) - symcode='[[BDRT]]' - ;; -sco3.2v5*) - symcode='[[DT]]' - ;; -sysv4.2uw2*) - symcode='[[DT]]' - ;; -sysv5* | sco5v6* | unixware* | OpenUNIX*) - symcode='[[ABDT]]' - ;; -sysv4) - symcode='[[DFNSTU]]' - ;; -esac - -# Handle CRLF in mingw tool chain -opt_cr= -case $build_os in -mingw*) - opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp - ;; -esac - -# If we're using GNU nm, then use its standard symbol codes. -case `$NM -V 2>&1` in -*GNU* | *'with BFD'*) - symcode='[[ABCDGIRSTW]]' ;; -esac - -# Try without a prefix undercore, then with it. -for ac_symprfx in "" "_"; do - - # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. - symxfrm="\\1 $ac_symprfx\\2 \\2" - - # Write the raw and C identifiers. - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" - - # Check to see that the pipe works correctly. - pipe_works=no - - rm -f conftest* - cat > conftest.$ac_ext <<EOF -#ifdef __cplusplus -extern "C" { -#endif -char nm_test_var; -void nm_test_func(){} -#ifdef __cplusplus -} -#endif -int main(){nm_test_var='a';nm_test_func();return(0);} -EOF - - if AC_TRY_EVAL(ac_compile); then - # Now try to grab the symbols. - nlist=conftest.nm - if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then - # Try sorting and uniquifying the output. - if sort "$nlist" | uniq > "$nlist"T; then - mv -f "$nlist"T "$nlist" - else - rm -f "$nlist"T - fi - - # Make sure that we snagged all the symbols we need. - if grep ' nm_test_var$' "$nlist" >/dev/null; then - if grep ' nm_test_func$' "$nlist" >/dev/null; then - cat <<EOF > conftest.$ac_ext -#ifdef __cplusplus -extern "C" { -#endif - -EOF - # Now generate the symbol file. - eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' - - cat <<EOF >> conftest.$ac_ext -#if defined (__STDC__) && __STDC__ -# define lt_ptr_t void * -#else -# define lt_ptr_t char * -# define const -#endif - -/* The mapping between symbol names and symbols. */ -const struct { - const char *name; - lt_ptr_t address; -} -lt_preloaded_symbols[[]] = -{ -EOF - $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext - cat <<\EOF >> conftest.$ac_ext - {0, (lt_ptr_t) 0} -}; - -#ifdef __cplusplus -} -#endif -EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext - lt_save_LIBS="$LIBS" - lt_save_CFLAGS="$CFLAGS" - LIBS="conftstm.$ac_objext" - CFLAGS="$CFLAGS$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" - if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then - pipe_works=yes - fi - LIBS="$lt_save_LIBS" - CFLAGS="$lt_save_CFLAGS" - else - echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD - fi - else - echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD - fi - else - echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD - fi - else - echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD - cat conftest.$ac_ext >&5 - fi - rm -f conftest* conftst* - - # Do not use the global_symbol_pipe unless it works. - if test "$pipe_works" = yes; then - break - else - lt_cv_sys_global_symbol_pipe= - fi -done -]) -if test -z "$lt_cv_sys_global_symbol_pipe"; then - lt_cv_sys_global_symbol_to_cdecl= -fi -if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then - AC_MSG_RESULT(failed) -else - AC_MSG_RESULT(ok) -fi -]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE - - -# AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME]) -# --------------------------------------- -AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC], -[_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)= -_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= -_LT_AC_TAGVAR(lt_prog_compiler_static, $1)= - -AC_MSG_CHECKING([for $compiler option to produce PIC]) - ifelse([$1],[CXX],[ - # C++ specific cases for pic, static, wl, etc. - if test "$GXX" = yes; then - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - fi - ;; - amigaos*) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' - ;; - beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - mingw* | cygwin* | os2* | pw32*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - # Although the cygwin gcc ignores -fPIC, still need this for old-style - # (--disable-auto-import) libraries - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' - ;; - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' - ;; - *djgpp*) - # DJGPP does not support shared libraries at all - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= - ;; - interix[[3-9]]*) - # Interix 3.x gcc -fpic/-fPIC options generate broken code. - # Instead, we relocate shared libraries at runtime. - ;; - sysv4*MP*) - if test -d /usr/nec; then - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic - fi - ;; - hpux*) - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case $host_cpu in - hppa*64*|ia64*) - ;; - *) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - esac - ;; - *) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - esac - else - case $host_os in - aix4* | aix5*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - else - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' - fi - ;; - chorus*) - case $cc_basename in - cxch68*) - # Green Hills C++ Compiler - # _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" - ;; - esac - ;; - darwin*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - case $cc_basename in - xlc*) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon' - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - ;; - esac - ;; - dgux*) - case $cc_basename in - ec++*) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - ;; - ghcx*) - # Green Hills C++ Compiler - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - ;; - *) - ;; - esac - ;; - freebsd* | dragonfly*) - # FreeBSD uses GNU C++ - ;; - hpux9* | hpux10* | hpux11*) - case $cc_basename in - CC*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' - if test "$host_cpu" != ia64; then - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' - fi - ;; - aCC*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' - case $host_cpu in - hppa*64*|ia64*) - # +Z the default - ;; - *) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' - ;; - esac - ;; - *) - ;; - esac - ;; - interix*) - # This is c89, which is MS Visual C++ (no shared libs) - # Anyone wants to do a port? - ;; - irix5* | irix6* | nonstopux*) - case $cc_basename in - CC*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - # CC pic flag -KPIC is the default. - ;; - *) - ;; - esac - ;; - linux* | k*bsd*-gnu) - case $cc_basename in - KCC*) - # KAI C++ Compiler - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - icpc* | ecpc*) - # Intel C++ - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' - ;; - pgCC*) - # Portland Group C++ compiler. - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - cxx*) - # Compaq C++ - # Make sure the PIC flag is empty. It appears that all Alpha - # Linux and Compaq Tru64 Unix objects are PIC. - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C++ 5.9 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' - ;; - esac - ;; - esac - ;; - lynxos*) - ;; - m88k*) - ;; - mvs*) - case $cc_basename in - cxx*) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' - ;; - *) - ;; - esac - ;; - netbsd*) - ;; - osf3* | osf4* | osf5*) - case $cc_basename in - KCC*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' - ;; - RCC*) - # Rational C++ 2.4.1 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - ;; - cxx*) - # Digital/Compaq C++ - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # Make sure the PIC flag is empty. It appears that all Alpha - # Linux and Compaq Tru64 Unix objects are PIC. - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - *) - ;; - esac - ;; - psos*) - ;; - solaris*) - case $cc_basename in - CC*) - # Sun C++ 4.2, 5.x and Centerline C++ - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' - ;; - gcx*) - # Green Hills C++ Compiler - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' - ;; - *) - ;; - esac - ;; - sunos4*) - case $cc_basename in - CC*) - # Sun C++ 4.x - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - lcc*) - # Lucid - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - ;; - *) - ;; - esac - ;; - tandem*) - case $cc_basename in - NCC*) - # NonStop-UX NCC 3.20 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - ;; - *) - ;; - esac - ;; - sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) - case $cc_basename in - CC*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - esac - ;; - vxworks*) - ;; - *) - _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no - ;; - esac - fi -], -[ - if test "$GCC" = yes; then - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - fi - ;; - - amigaos*) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' - ;; - - beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - - mingw* | cygwin* | pw32* | os2*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - # Although the cygwin gcc ignores -fPIC, still need this for old-style - # (--disable-auto-import) libraries - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' - ;; - - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' - ;; - - interix[[3-9]]*) - # Interix 3.x gcc -fpic/-fPIC options generate broken code. - # Instead, we relocate shared libraries at runtime. - ;; - - msdosdjgpp*) - # Just because we use GCC doesn't mean we suddenly get shared libraries - # on systems that don't support them. - _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no - enable_shared=no - ;; - - sysv4*MP*) - if test -d /usr/nec; then - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic - fi - ;; - - hpux*) - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case $host_cpu in - hppa*64*|ia64*) - # +Z the default - ;; - *) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - esac - ;; - - *) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - esac - else - # PORTME Check for flag to pass linker flags through the system compiler. - case $host_os in - aix*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - else - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' - fi - ;; - darwin*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - case $cc_basename in - xlc*) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon' - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - ;; - esac - ;; - - mingw* | cygwin* | pw32* | os2*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' - ;; - - hpux9* | hpux10* | hpux11*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case $host_cpu in - hppa*64*|ia64*) - # +Z the default - ;; - *) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' - ;; - esac - # Is there a better lt_prog_compiler_static that works with the bundled CC? - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' - ;; - - irix5* | irix6* | nonstopux*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # PIC (with -KPIC) is the default. - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - - newsos6) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - linux* | k*bsd*-gnu) - case $cc_basename in - icc* | ecc*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' - ;; - pgcc* | pgf77* | pgf90* | pgf95*) - # Portland Group compilers (*not* the Pentium gcc compiler, - # which looks to be a dead project) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - ccc*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # All Alpha code is PIC. - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C 5.9 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - ;; - *Sun\ F*) - # Sun Fortran 8.3 passes all unrecognized flags to the linker - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='' - ;; - esac - ;; - esac - ;; - - osf3* | osf4* | osf5*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # All OSF/1 code is PIC. - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - - rdos*) - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - - solaris*) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - case $cc_basename in - f77* | f90* | f95*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; - *) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; - esac - ;; - - sunos4*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - sysv4 | sysv4.2uw2* | sysv4.3*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - sysv4*MP*) - if test -d /usr/nec ;then - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - fi - ;; - - sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - unicos*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no - ;; - - uts4*) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - *) - _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no - ;; - esac - fi -]) -AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)]) - -# -# Check to make sure the PIC flag actually works. -# -if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then - AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works], - _LT_AC_TAGVAR(lt_prog_compiler_pic_works, $1), - [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [], - [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in - "" | " "*) ;; - *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;; - esac], - [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= - _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) -fi -case $host_os in - # For platforms which do not support PIC, -DPIC is meaningless: - *djgpp*) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= - ;; - *) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])" - ;; -esac - -# -# Check to make sure the static flag actually works. -# -wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_AC_TAGVAR(lt_prog_compiler_static, $1)\" -AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], - _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1), - $lt_tmp_static_flag, - [], - [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=]) -]) - - -# AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME]) -# ------------------------------------ -# See if the linker supports building shared libraries. -AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS], -[AC_REQUIRE([LT_AC_PROG_SED])dnl -AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) -ifelse([$1],[CXX],[ - _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - case $host_os in - aix4* | aix5*) - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm - if $NM -V 2>&1 | grep 'GNU' > /dev/null; then - _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' - else - _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' - fi - ;; - pw32*) - _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" - ;; - cygwin* | mingw*) - _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' - ;; - *) - _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - ;; - esac -],[ - runpath_var= - _LT_AC_TAGVAR(allow_undefined_flag, $1)= - _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no - _LT_AC_TAGVAR(archive_cmds, $1)= - _LT_AC_TAGVAR(archive_expsym_cmds, $1)= - _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)= - _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)= - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= - _LT_AC_TAGVAR(thread_safe_flag_spec, $1)= - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= - _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= - _LT_AC_TAGVAR(hardcode_direct, $1)=no - _LT_AC_TAGVAR(hardcode_minus_L, $1)=no - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported - _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown - _LT_AC_TAGVAR(hardcode_automatic, $1)=no - _LT_AC_TAGVAR(module_cmds, $1)= - _LT_AC_TAGVAR(module_expsym_cmds, $1)= - _LT_AC_TAGVAR(always_export_symbols, $1)=no - _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - # include_expsyms should be a list of space-separated symbols to be *always* - # included in the symbol list - _LT_AC_TAGVAR(include_expsyms, $1)= - # exclude_expsyms can be an extended regexp of symbols to exclude - # it will be wrapped by ` (' and `)$', so one must not match beginning or - # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', - # as well as any symbol that contains `d'. - _LT_AC_TAGVAR(exclude_expsyms, $1)="_GLOBAL_OFFSET_TABLE_" - # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out - # platforms (ab)use it in PIC code, but their linkers get confused if - # the symbol is explicitly referenced. Since portable code cannot - # rely on this symbol name, it's probably fine to never include it in - # preloaded symbol tables. - extract_expsyms_cmds= - # Just being paranoid about ensuring that cc_basename is set. - _LT_CC_BASENAME([$compiler]) - case $host_os in - cygwin* | mingw* | pw32*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - if test "$GCC" != yes; then - with_gnu_ld=no - fi - ;; - interix*) - # we just hope/assume this is gcc and not c89 (= MSVC++) - with_gnu_ld=yes - ;; - openbsd*) - with_gnu_ld=no - ;; - esac - - _LT_AC_TAGVAR(ld_shlibs, $1)=yes - if test "$with_gnu_ld" = yes; then - # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc='${wl}' - - # Set some defaults for GNU ld with shared library support. These - # are reset later if shared libraries are not supported. Putting them - # here allows them to be overridden if necessary. - runpath_var=LD_RUN_PATH - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - # ancient GNU ld didn't support --whole-archive et. al. - if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= - fi - supports_anon_versioning=no - case `$LD -v 2>/dev/null` in - *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 - *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... - *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... - *\ 2.11.*) ;; # other 2.11 versions - *) supports_anon_versioning=yes ;; - esac - - # See if GNU ld supports shared libraries. - case $host_os in - aix3* | aix4* | aix5*) - # On AIX/PPC, the GNU linker is very broken - if test "$host_cpu" != ia64; then - _LT_AC_TAGVAR(ld_shlibs, $1)=no - cat <<EOF 1>&2 - -*** Warning: the GNU linker, at least up to release 2.9.1, is reported -*** to be unable to reliably create shared libraries on AIX. -*** Therefore, libtool is disabling shared libraries support. If you -*** really care for shared libraries, you may want to modify your PATH -*** so that a non-GNU linker is found, and then restart. - -EOF - fi - ;; - - amigaos*) - _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - - # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports - # that the semantics of dynamic libraries on AmigaOS, at least up - # to version 4, is to share data among multiple programs linked - # with the same dynamic library. Since this doesn't match the - # behavior of shared libraries on other platforms, we can't use - # them. - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - - beos*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported - # Joseph Beckenbach <jrb3@best.com> says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - cygwin* | mingw* | pw32*) - # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, - # as there is no search path for DLLs. - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_AC_TAGVAR(always_export_symbols, $1)=no - _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' - - if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - interix[[3-9]]*) - _LT_AC_TAGVAR(hardcode_direct, $1)=no - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. - # Instead, shared libraries are loaded at an image base (0x10000000 by - # default) and relocated if they conflict, which is a slow very memory - # consuming and fragmenting process. To avoid this, we pick a random, - # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link - # time. Moving up from 0x10000000 also allows more sbrk(2) space. - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - ;; - - gnu* | linux* | k*bsd*-gnu) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - tmp_addflag= - case $cc_basename,$host_cpu in - pgcc*) # Portland Group C compiler - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag' - ;; - pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag -Mnomain' ;; - ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 - tmp_addflag=' -i_dynamic' ;; - efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 - tmp_addflag=' -i_dynamic -nofor_main' ;; - ifc* | ifort*) # Intel Fortran compiler - tmp_addflag=' -nofor_main' ;; - esac - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) # Sun C 5.9 - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_sharedflag='-G' ;; - *Sun\ F*) # Sun Fortran 8.3 - tmp_sharedflag='-G' ;; - *) - tmp_sharedflag='-shared' ;; - esac - _LT_AC_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - - if test $supports_anon_versioning = yes; then - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - $echo "local: *; };" >> $output_objdir/$libname.ver~ - $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' - fi - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - - solaris*) - if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then - _LT_AC_TAGVAR(ld_shlibs, $1)=no - cat <<EOF 1>&2 - -*** Warning: The releases 2.8.* of the GNU linker cannot reliably -*** create shared libraries on Solaris systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.9.1 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -EOF - elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) - case `$LD -v 2>&1` in - *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) - _LT_AC_TAGVAR(ld_shlibs, $1)=no - cat <<_LT_EOF 1>&2 - -*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not -*** reliably create shared libraries on SCO systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.16.91.0.3 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -_LT_EOF - ;; - *) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - - sunos4*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' - wlarc= - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - *) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - - if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no; then - runpath_var= - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= - fi - else - # PORTME fill in a description of your system's linker (not GNU ld) - case $host_os in - aix3*) - _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_AC_TAGVAR(always_export_symbols, $1)=yes - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' - # Note: this linker hardcodes the directories in LIBPATH if there - # are no directories specified by -L. - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported - fi - ;; - - aix4* | aix5*) - if test "$host_cpu" = ia64; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - exp_sym_flag='-Bexport' - no_entry_flag="" - else - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm - if $NM -V 2>&1 | grep 'GNU' > /dev/null; then - _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' - else - _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' - fi - aix_use_runtimelinking=no - - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*) - for ld_flag in $LDFLAGS; do - if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then - aix_use_runtimelinking=yes - break - fi - done - ;; - esac - - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a library - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - _LT_AC_TAGVAR(archive_cmds, $1)='' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - - if test "$GCC" = yes; then - case $host_os in aix4.[[012]]|aix4.[[012]].*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && \ - strings "$collect2name" | grep resolve_lib_name >/dev/null - then - # We have reworked collect2 - : - else - # We have old collect2 - _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= - fi - ;; - esac - shared_flag='-shared' - if test "$aix_use_runtimelinking" = yes; then - shared_flag="$shared_flag "'${wl}-G' - fi - else - # not using gcc - if test "$host_cpu" = ia64; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to export. - _LT_AC_TAGVAR(always_export_symbols, $1)=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' - # Determine the default libpath from the value encoded in an empty executable. - _LT_AC_SYS_LIBPATH_AIX - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' - _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" - _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an empty executable. - _LT_AC_SYS_LIBPATH_AIX - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' - # Exported symbols can be pulled into shared objects from archives - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience' - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes - # This is similar to how AIX traditionally builds its shared libraries. - _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - - amigaos*) - _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - # see comment about different semantics on the GNU ld section - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - - bsdi[[45]]*) - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic - ;; - - cygwin* | mingw* | pw32*) - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' - _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" - # FIXME: Setting linknames here is a bad hack. - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' - # The linker will automatically build a .lib file if we build a DLL. - _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true' - # FIXME: Should let the user specify the lib program. - _LT_AC_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' - _LT_AC_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' - _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - ;; - - darwin* | rhapsody*) - case $host_os in - rhapsody* | darwin1.[[012]]) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[[012]]) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' - ;; - 10.*) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup' - ;; - esac - fi - ;; - esac - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_AC_TAGVAR(hardcode_direct, $1)=no - _LT_AC_TAGVAR(hardcode_automatic, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='' - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - if test "$GCC" = yes ; then - output_verbose_link_cmd='echo' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - else - case $cc_basename in - xlc*) - output_verbose_link_cmd='echo' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' - _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - ;; - *) - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - esac - fi - ;; - - dgux*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - freebsd1*) - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor - # support. Future versions do this automatically, but an explicit c++rt0.o - # does not break anything, and helps significantly (at the cost of a little - # extra space). - freebsd2.2*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly*) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - hpux9*) - if test "$GCC" = yes; then - _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - ;; - - hpux10*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - fi - if test "$with_gnu_ld" = no; then - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - fi - ;; - - hpux11*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then - case $host_cpu in - hppa*64*) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else - case $host_cpu in - hppa*64*) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - fi - if test "$with_gnu_ld" = no; then - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - - case $host_cpu in - hppa*64*|ia64*) - _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' - _LT_AC_TAGVAR(hardcode_direct, $1)=no - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - *) - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - ;; - esac - fi - ;; - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' - fi - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out - else - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF - fi - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - newsos6) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - openbsd*) - if test -f /usr/libexec/ld.so; then - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - else - case $host_os in - openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - ;; - *) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - ;; - esac - fi - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - os2*) - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_AC_TAGVAR(archive_cmds, $1)='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' - _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' - ;; - - osf3*) - if test "$GCC" = yes; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - fi - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - ;; - - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - else - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ - $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' - - # Both c and cxx compiler support -rpath directly - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' - fi - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - ;; - - solaris*) - _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text' - if test "$GCC" = yes; then - wlarc='${wl}' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' - else - wlarc='' - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' - fi - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - case $host_os in - solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; - *) - # The compiler driver will combine and reorder linker options, - # but understands `-z linker_flag'. GCC discards it without `$wl', - # but is careful enough not to reorder. - # Supported since Solaris 2.6 (maybe 2.5.1?) - if test "$GCC" = yes; then - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' - else - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' - fi - ;; - esac - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - ;; - - sunos4*) - if test "x$host_vendor" = xsequent; then - # Use $CC to link under sequent, because it throws in some extra .o - # files that make .init and .fini sections work. - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' - fi - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - sysv4) - case $host_vendor in - sni) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true??? - ;; - siemens) - ## LD is ld it makes a PLAMLIB - ## CC just makes a GrossModule. - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' - _LT_AC_TAGVAR(hardcode_direct, $1)=no - ;; - motorola) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie - ;; - esac - runpath_var='LD_RUN_PATH' - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - sysv4.3*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - _LT_AC_TAGVAR(ld_shlibs, $1)=yes - fi - ;; - - sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) - _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - sysv5* | sco3.2v5* | sco5v6*) - # Note: We can NOT use -z defs as we might desire, because we do not - # link with -lc, and that would cause any symbols used from libc to - # always be unresolved, which means just about no library would - # ever link correctly. If we're not using GNU ld we use -z text - # though, which does catch some bad symbols but isn't as heavy-handed - # as -z defs. - _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' - _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - uts4*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - *) - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - esac - fi -]) -AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) -test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no - -# -# Do we need to explicitly link libc? -# -case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in -x|xyes) - # Assume -lc should be added - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes - - if test "$enable_shared" = yes && test "$GCC" = yes; then - case $_LT_AC_TAGVAR(archive_cmds, $1) in - *'~'*) - # FIXME: we may have to deal with multi-command sequences. - ;; - '$CC '*) - # Test whether the compiler implicitly links with -lc since on some - # systems, -lgcc has to come before -lc. If gcc already passes -lc - # to ld, don't add -lc before -lgcc. - AC_MSG_CHECKING([whether -lc should be explicitly linked in]) - $rm conftest* - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - if AC_TRY_EVAL(ac_compile) 2>conftest.err; then - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) - pic_flag=$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1) - _LT_AC_TAGVAR(allow_undefined_flag, $1)= - if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) - then - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - else - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes - fi - _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $rm conftest* - AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)]) - ;; - esac - fi - ;; -esac -])# AC_LIBTOOL_PROG_LD_SHLIBS - - -# _LT_AC_FILE_LTDLL_C -# ------------------- -# Be careful that the start marker always follows a newline. -AC_DEFUN([_LT_AC_FILE_LTDLL_C], [ -# /* ltdll.c starts here */ -# #define WIN32_LEAN_AND_MEAN -# #include <windows.h> -# #undef WIN32_LEAN_AND_MEAN -# #include <stdio.h> -# -# #ifndef __CYGWIN__ -# # ifdef __CYGWIN32__ -# # define __CYGWIN__ __CYGWIN32__ -# # endif -# #endif -# -# #ifdef __cplusplus -# extern "C" { -# #endif -# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); -# #ifdef __cplusplus -# } -# #endif -# -# #ifdef __CYGWIN__ -# #include <cygwin/cygwin_dll.h> -# DECLARE_CYGWIN_DLL( DllMain ); -# #endif -# HINSTANCE __hDllInstance_base; -# -# BOOL APIENTRY -# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) -# { -# __hDllInstance_base = hInst; -# return TRUE; -# } -# /* ltdll.c ends here */ -])# _LT_AC_FILE_LTDLL_C - - -# _LT_AC_TAGVAR(VARNAME, [TAGNAME]) -# --------------------------------- -AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])]) - - -# old names -AC_DEFUN([AM_PROG_LIBTOOL], [AC_PROG_LIBTOOL]) -AC_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) -AC_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) -AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) -AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) -AC_DEFUN([AM_PROG_LD], [AC_PROG_LD]) -AC_DEFUN([AM_PROG_NM], [AC_PROG_NM]) - -# This is just to silence aclocal about the macro not being used -ifelse([AC_DISABLE_FAST_INSTALL]) - -AC_DEFUN([LT_AC_PROG_GCJ], -[AC_CHECK_TOOL(GCJ, gcj, no) - test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" - AC_SUBST(GCJFLAGS) -]) - -AC_DEFUN([LT_AC_PROG_RC], -[AC_CHECK_TOOL(RC, windres, no) -]) - - -# Cheap backport of AS_EXECUTABLE_P and required macros -# from Autoconf 2.59; we should not use $as_executable_p directly. - -# _AS_TEST_PREPARE -# ---------------- -m4_ifndef([_AS_TEST_PREPARE], -[m4_defun([_AS_TEST_PREPARE], -[if test -x / >/dev/null 2>&1; then - as_executable_p='test -x' -else - as_executable_p='test -f' -fi -])])# _AS_TEST_PREPARE - -# AS_EXECUTABLE_P -# --------------- -# Check whether a file is executable. -m4_ifndef([AS_EXECUTABLE_P], -[m4_defun([AS_EXECUTABLE_P], -[AS_REQUIRE([_AS_TEST_PREPARE])dnl -$as_executable_p $1[]dnl -])])# AS_EXECUTABLE_P - -# NOTE: This macro has been submitted for inclusion into # -# GNU Autoconf as AC_PROG_SED. When it is available in # -# a released version of Autoconf we should remove this # -# macro and use it instead. # -# LT_AC_PROG_SED -# -------------- -# Check for a fully-functional sed program, that truncates -# as few characters as possible. Prefer GNU sed if found. -AC_DEFUN([LT_AC_PROG_SED], -[AC_MSG_CHECKING([for a sed that does not truncate output]) -AC_CACHE_VAL(lt_cv_path_SED, -[# Loop through the user's path and test for sed and gsed. -# Then use that list of sed's as ones to test for truncation. -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for lt_ac_prog in sed gsed; do - for ac_exec_ext in '' $ac_executable_extensions; do - if AS_EXECUTABLE_P(["$as_dir/$lt_ac_prog$ac_exec_ext"]); then - lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" - fi - done - done -done -IFS=$as_save_IFS -lt_ac_max=0 -lt_ac_count=0 -# Add /usr/xpg4/bin/sed as it is typically found on Solaris -# along with /bin/sed that truncates output. -for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do - test ! -f $lt_ac_sed && continue - cat /dev/null > conftest.in - lt_ac_count=0 - echo $ECHO_N "0123456789$ECHO_C" >conftest.in - # Check for GNU sed and select it if it is found. - if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then - lt_cv_path_SED=$lt_ac_sed - break - fi - while true; do - cat conftest.in conftest.in >conftest.tmp - mv conftest.tmp conftest.in - cp conftest.in conftest.nl - echo >>conftest.nl - $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break - cmp -s conftest.out conftest.nl || break - # 10000 chars as input seems more than enough - test $lt_ac_count -gt 10 && break - lt_ac_count=`expr $lt_ac_count + 1` - if test $lt_ac_count -gt $lt_ac_max; then - lt_ac_max=$lt_ac_count - lt_cv_path_SED=$lt_ac_sed - fi - done -done -]) -SED=$lt_cv_path_SED -AC_SUBST([SED]) -AC_MSG_RESULT([$SED]) -]) - diff --git a/Build/source/libs/freetype/freetype-1.5/announce b/Build/source/libs/freetype/freetype-1.5/announce deleted file mode 100644 index 60318b40423..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/announce +++ /dev/null @@ -1,68 +0,0 @@ - - - Announcing - - - F R E E T Y P E 1 . 4 . 9 - - - The FREE TrueType Font Engine - - - Copyright (C) 1996-2001 The FreeType Development Team - - - - The FreeType engine is a free and portable TrueType font rendering - engine, available in ANSI C and Pascal source code. It has been - developed to provide TrueType support to a great variety of - platforms and environments. - - Notice that FreeType is a *library*. It is *not* a font server - for your preferred environment, even though it has been designed - to be the basis of many high-level libraries, tools and font - servers. - - - DISCLAIMER DISCLAIMER DISCLAIMER DISCLAIMER DISCLAIMER DISCLAIMER - DISCLAIMER DISCLAIMER DISCLAIMER DISCLAIMER DISCLAIMER DISCLAIMER - DISCLAIMER DISCLAIMER DISCLAIMER DISCLAIMER DISCLAIMER DISCLAIMER - DISCLAIMER DISCLAIMER DISCLAIMER DISCLAIMER DISCLAIMER DISCLAIMER - - WE HAVE RECENTLY DISCOVERED THAT APPLE OWNS SEVERAL PATENTS - RELATED TO THE RENDERING OF TRUETYPE FONTS. THIS COULD MEAN THAT - THE FREE USE OF THE FREETYPE LIBRARY MIGHT BE ILLEGAL IN FRANCE, - UK, USA, AND POSSIBLY OTHER COUNTRIES. FOR MORE INFORMATION, WE - STRONGLY ADVISE YOU TO GO TO THE FREETYPE WEB SITE AT: - - http://www.freetype.org/patents.html - - DISCLAIMER DISCLAIMER DISCLAIMER DISCLAIMER DISCLAIMER DISCLAIMER - DISCLAIMER DISCLAIMER DISCLAIMER DISCLAIMER DISCLAIMER DISCLAIMER - DISCLAIMER DISCLAIMER DISCLAIMER DISCLAIMER DISCLAIMER DISCLAIMER - DISCLAIMER DISCLAIMER DISCLAIMER DISCLAIMER DISCLAIMER DISCLAIMER - - - It's a clean-room implementation that is not derived from the - original TrueType engine developed by Apple and Microsoft, though - it matches it regarding rendering quality. To our knowledge, it's - the only royalty-free complete TrueType engine available. - - Some news: - - . version 1.5 fixes minor bugs found in 1.3.1. - . version 1.4 were never released officially (by us). - . full support for GSUB and GPOS tables in OpenType fonts. - . enhanced ftdump/ftstrtto test programs using GPOS support. - . ftstrpnm supports coloured text. - . TT_Char_Index() now uses a TT_ULong for char codes. - . support files for BeOS. - . the Pascal version is no longer part of the package but is - available separately. - . uses a new version of libtool, solving some compilation problems - with the test programs on some platforms like Solaris. - - - For more information, please visit the freetype web site at: - - http://www.freetype.org diff --git a/Build/source/libs/freetype/freetype-1.5/config.guess b/Build/source/libs/freetype/freetype-1.5/config.guess deleted file mode 100755 index b79252d6b10..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/config.guess +++ /dev/null @@ -1,1558 +0,0 @@ -#! /bin/sh -# Attempt to guess a canonical system name. -# Copyright 1992-2013 Free Software Foundation, Inc. - -timestamp='2013-06-10' - -# This file is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, see <http://www.gnu.org/licenses/>. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that -# program. This Exception is an additional permission under section 7 -# of the GNU General Public License, version 3 ("GPLv3"). -# -# Originally written by Per Bothner. -# -# You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD -# -# Please send patches with a ChangeLog entry to config-patches@gnu.org. - - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] - -Output the configuration name of the system \`$me' is run on. - -Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to <config-patches@gnu.org>." - -version="\ -GNU config.guess ($timestamp) - -Originally written by Per Bothner. -Copyright 1992-2013 Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit ;; - --version | -v ) - echo "$version" ; exit ;; - --help | --h* | -h ) - echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" >&2 - exit 1 ;; - * ) - break ;; - esac -done - -if test $# != 0; then - echo "$me: too many arguments$help" >&2 - exit 1 -fi - -trap 'exit 1' 1 2 15 - -# CC_FOR_BUILD -- compiler used by this script. Note that the use of a -# compiler to aid in system detection is discouraged as it requires -# temporary files to be created and, as you can see below, it is a -# headache to deal with in a portable fashion. - -# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still -# use `HOST_CC' if defined, but it is deprecated. - -# Portable tmp directory creation inspired by the Autoconf team. - -set_cc_for_build=' -trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; -trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; -: ${TMPDIR=/tmp} ; - { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || - { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; -dummy=$tmp/dummy ; -tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; -case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; - for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found ; - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac ; set_cc_for_build= ;' - -# This is needed to find uname on a Pyramid OSx when run in the BSD universe. -# (ghazi@noc.rutgers.edu 1994-08-24) -if (test -f /.attbin/uname) >/dev/null 2>&1 ; then - PATH=$PATH:/.attbin ; export PATH -fi - -UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown -UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown -UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown - -case "${UNAME_SYSTEM}" in -Linux|GNU|GNU/*) - # If the system lacks a compiler, then just pick glibc. - # We could probably try harder. - LIBC=gnu - - eval $set_cc_for_build - cat <<-EOF > $dummy.c - #include <features.h> - #if defined(__UCLIBC__) - LIBC=uclibc - #elif defined(__dietlibc__) - LIBC=dietlibc - #else - LIBC=gnu - #endif - EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` - ;; -esac - -# Note: order is significant - the case branches are not exclusive. - -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in - *:NetBSD:*:*) - # NetBSD (nbsd) targets should (where applicable) match one or - # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, - # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently - # switched to ELF, *-*-netbsd* would select the old - # object file format. This provides both forward - # compatibility and a consistent mechanism for selecting the - # object file format. - # - # Note: NetBSD doesn't particularly care about the vendor - # portion of the name. We always set it to "unknown". - sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` - case "${UNAME_MACHINE_ARCH}" in - armeb) machine=armeb-unknown ;; - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-unknown ;; - sh5el) machine=sh5le-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; - esac - # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. - case "${UNAME_MACHINE_ARCH}" in - arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build - if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ELF__ - then - # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). - # Return netbsd for either. FIX? - os=netbsd - else - os=netbsdelf - fi - ;; - *) - os=netbsd - ;; - esac - # The OS release - # Debian GNU/NetBSD machines have a different userland, and - # thus, need a distinct triplet. However, they do not need - # kernel version information, so it can be replaced with a - # suitable tag, in the style of linux-gnu. - case "${UNAME_VERSION}" in - Debian*) - release='-gnu' - ;; - *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - ;; - esac - # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" - exit ;; - *:Bitrig:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} - exit ;; - *:OpenBSD:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} - exit ;; - *:ekkoBSD:*:*) - echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} - exit ;; - *:SolidBSD:*:*) - echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} - exit ;; - macppc:MirBSD:*:*) - echo powerpc-unknown-mirbsd${UNAME_RELEASE} - exit ;; - *:MirBSD:*:*) - echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} - exit ;; - alpha:OSF1:*:*) - case $UNAME_RELEASE in - *4.0) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - ;; - *5.*) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` - ;; - esac - # According to Compaq, /usr/sbin/psrinfo has been available on - # OSF/1 and Tru64 systems produced since 1995. I hope that - # covers most systems running today. This code pipes the CPU - # types through head -n 1, so we only detect the type of CPU 0. - ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` - case "$ALPHA_CPU_TYPE" in - "EV4 (21064)") - UNAME_MACHINE="alpha" ;; - "EV4.5 (21064)") - UNAME_MACHINE="alpha" ;; - "LCA4 (21066/21068)") - UNAME_MACHINE="alpha" ;; - "EV5 (21164)") - UNAME_MACHINE="alphaev5" ;; - "EV5.6 (21164A)") - UNAME_MACHINE="alphaev56" ;; - "EV5.6 (21164PC)") - UNAME_MACHINE="alphapca56" ;; - "EV5.7 (21164PC)") - UNAME_MACHINE="alphapca57" ;; - "EV6 (21264)") - UNAME_MACHINE="alphaev6" ;; - "EV6.7 (21264A)") - UNAME_MACHINE="alphaev67" ;; - "EV6.8CB (21264C)") - UNAME_MACHINE="alphaev68" ;; - "EV6.8AL (21264B)") - UNAME_MACHINE="alphaev68" ;; - "EV6.8CX (21264D)") - UNAME_MACHINE="alphaev68" ;; - "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; - "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; - "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; - esac - # A Pn.n version is a patched version. - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - # Reset EXIT trap before exiting to avoid spurious non-zero exit code. - exitcode=$? - trap '' 0 - exit $exitcode ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix - exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 - exit ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 - exit ;; - *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos - exit ;; - *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos - exit ;; - *:OS/390:*:*) - echo i370-ibm-openedition - exit ;; - *:z/VM:*:*) - echo s390-ibm-zvmoe - exit ;; - *:OS400:*:*) - echo powerpc-ibm-os400 - exit ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} - exit ;; - arm*:riscos:*:*|arm*:RISCOS:*:*) - echo arm-unknown-riscos - exit ;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp - exit ;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi - exit ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 - exit ;; - DRS?6000:unix:4.0:6*) - echo sparc-icl-nx6 - exit ;; - DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) - case `/usr/bin/uname -p` in - sparc) echo sparc-icl-nx7; exit ;; - esac ;; - s390x:SunOS:*:*) - echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) - echo i386-pc-auroraux${UNAME_RELEASE} - exit ;; - i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - eval $set_cc_for_build - SUN_ARCH="i386" - # If there is a compiler, see if it is configured for 64-bit objects. - # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. - # This test works for both compilers. - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then - if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - SUN_ARCH="x86_64" - fi - fi - echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in - Series*|S4*) - UNAME_RELEASE=`uname -v` - ;; - esac - # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` - exit ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} - exit ;; - sun*:*:4.2BSD:*) - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 - case "`/bin/arch`" in - sun3) - echo m68k-sun-sunos${UNAME_RELEASE} - ;; - sun4) - echo sparc-sun-sunos${UNAME_RELEASE} - ;; - esac - exit ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} - exit ;; - # The situation for MiNT is a little confusing. The machine name - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor - # > m68000). The system name ranges from "MiNT" over "FreeMiNT" - # to the lowercase version "mint" (or "freemint"). Finally - # the system name "TOS" denotes a system which is actually not - # MiNT. But MiNT is downward compatible to TOS, so this should - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} - exit ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} - exit ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} - exit ;; - m68k:machten:*:*) - echo m68k-apple-machten${UNAME_RELEASE} - exit ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} - exit ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 - exit ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} - exit ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} - exit ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} - exit ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c -#ifdef __cplusplus -#include <stdio.h> /* for printf() prototype */ - int main (int argc, char *argv[]) { -#else - int main (argc, argv) int argc; char *argv[]; { -#endif - #if defined (host_mips) && defined (MIPSEB) - #if defined (SYSTYPE_SYSV) - printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_SVR4) - printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); - #endif - #endif - exit (-1); - } -EOF - $CC_FOR_BUILD -o $dummy $dummy.c && - dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && - SYSTEM_NAME=`$dummy $dummyarg` && - { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} - exit ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax - exit ;; - Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax - exit ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax - exit ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix - exit ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 - exit ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 - exit ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 - exit ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] - then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] - then - echo m88k-dg-dgux${UNAME_RELEASE} - else - echo m88k-dg-dguxbcs${UNAME_RELEASE} - fi - else - echo i586-dg-dgux${UNAME_RELEASE} - fi - exit ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 - exit ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 - exit ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 - exit ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd - exit ;; - *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` - exit ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix - exit ;; - ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} - exit ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include <sys/systemcfg.h> - - main() - { - if (!__power_pc()) - exit(1); - puts("powerpc-ibm-aix3.2.5"); - exit(0); - } -EOF - if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` - then - echo "$SYSTEM_NAME" - else - echo rs6000-ibm-aix3.2.5 - fi - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi - exit ;; - *:AIX:*:[4567]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 - else - IBM_ARCH=powerpc - fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} - exit ;; - *:AIX:*:*) - echo rs6000-ibm-aix - exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 - exit ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to - exit ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx - exit ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 - exit ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd - exit ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 - exit ;; - 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; - 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` - sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "${sc_cpu_version}" in - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 - 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in - 32) HP_ARCH="hppa2.0n" ;; - 64) HP_ARCH="hppa2.0w" ;; - '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 - esac ;; - esac - fi - if [ "${HP_ARCH}" = "" ]; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - - #define _HPUX_SOURCE - #include <stdlib.h> - #include <unistd.h> - - int main () - { - #if defined(_SC_KERNEL_BITS) - long bits = sysconf(_SC_KERNEL_BITS); - #endif - long cpu = sysconf (_SC_CPU_VERSION); - - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1"); break; - case CPU_PA_RISC2_0: - #if defined(_SC_KERNEL_BITS) - switch (bits) - { - case 64: puts ("hppa2.0w"); break; - case 32: puts ("hppa2.0n"); break; - default: puts ("hppa2.0"); break; - } break; - #else /* !defined(_SC_KERNEL_BITS) */ - puts ("hppa2.0"); break; - #endif - default: puts ("hppa1.0"); break; - } - exit (0); - } -EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` - test -z "$HP_ARCH" && HP_ARCH=hppa - fi ;; - esac - if [ ${HP_ARCH} = "hppa2.0w" ] - then - eval $set_cc_for_build - - # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating - # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler - # generating 64-bit code. GNU and HP use different nomenclature: - # - # $ CC_FOR_BUILD=cc ./config.guess - # => hppa2.0w-hp-hpux11.23 - # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess - # => hppa64-hp-hpux11.23 - - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | - grep -q __LP64__ - then - HP_ARCH="hppa2.0w" - else - HP_ARCH="hppa64" - fi - fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} - exit ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} - exit ;; - 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include <unistd.h> - int - main () - { - long cpu = sysconf (_SC_CPU_VERSION); - /* The order matters, because CPU_IS_HP_MC68K erroneously returns - true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct - results, however. */ - if (CPU_IS_PA_RISC (cpu)) - { - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; - case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; - default: puts ("hppa-hitachi-hiuxwe2"); break; - } - } - else if (CPU_IS_HP_MC68K (cpu)) - puts ("m68k-hitachi-hiuxwe2"); - else puts ("unknown-hitachi-hiuxwe2"); - exit (0); - } -EOF - $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && - { echo "$SYSTEM_NAME"; exit; } - echo unknown-hitachi-hiuxwe2 - exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd - exit ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd - exit ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix - exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf - exit ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf - exit ;; - i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk - else - echo ${UNAME_MACHINE}-unknown-osf1 - fi - exit ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites - exit ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd - exit ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd - exit ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd - exit ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd - exit ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ - -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - *:UNICOS/mp:*:*) - echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; - 5000:UNIX_System_V:4.*:*) - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` - echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} - exit ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} - exit ;; - *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} - exit ;; - *:FreeBSD:*:*) - UNAME_PROCESSOR=`/usr/bin/uname -p` - case ${UNAME_PROCESSOR} in - amd64) - echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - *) - echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - esac - exit ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin - exit ;; - *:MINGW64*:*) - echo ${UNAME_MACHINE}-pc-mingw64 - exit ;; - *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 - exit ;; - i*:MSYS*:*) - echo ${UNAME_MACHINE}-pc-msys - exit ;; - i*:windows32*:*) - # uname -m includes "-pc" on this system. - echo ${UNAME_MACHINE}-mingw32 - exit ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 - exit ;; - *:Interix*:*) - case ${UNAME_MACHINE} in - x86) - echo i586-pc-interix${UNAME_RELEASE} - exit ;; - authenticamd | genuineintel | EM64T) - echo x86_64-unknown-interix${UNAME_RELEASE} - exit ;; - IA64) - echo ia64-unknown-interix${UNAME_RELEASE} - exit ;; - esac ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks - exit ;; - 8664:Windows_NT:*) - echo x86_64-pc-mks - exit ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix - exit ;; - i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin - exit ;; - amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) - echo x86_64-unknown-cygwin - exit ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin - exit ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - *:GNU:*:*) - # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` - exit ;; - *:GNU/*:*:*) - # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} - exit ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix - exit ;; - aarch64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - aarch64_be:Linux:*:*) - UNAME_MACHINE=aarch64_be - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep -q ld.so.1 - if test "$?" = 0 ; then LIBC="gnulibc1" ; fi - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - arc:Linux:*:* | arceb:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - arm*:Linux:*:*) - eval $set_cc_for_build - if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ARM_EABI__ - then - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - else - if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ARM_PCS_VFP - then - echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi - else - echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf - fi - fi - exit ;; - avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - cris:Linux:*:*) - echo ${UNAME_MACHINE}-axis-linux-${LIBC} - exit ;; - crisv32:Linux:*:*) - echo ${UNAME_MACHINE}-axis-linux-${LIBC} - exit ;; - frv:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - hexagon:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - i*86:Linux:*:*) - echo ${UNAME_MACHINE}-pc-linux-${LIBC} - exit ;; - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - m32r*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - mips:Linux:*:* | mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef ${UNAME_MACHINE} - #undef ${UNAME_MACHINE}el - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=${UNAME_MACHINE}el - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=${UNAME_MACHINE} - #else - CPU= - #endif - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } - ;; - or1k:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - or32:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - padre:Linux:*:*) - echo sparc-unknown-linux-${LIBC} - exit ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-${LIBC} - exit ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; - PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; - *) echo hppa-unknown-linux-${LIBC} ;; - esac - exit ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-${LIBC} - exit ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-${LIBC} - exit ;; - ppc64le:Linux:*:*) - echo powerpc64le-unknown-linux-${LIBC} - exit ;; - ppcle:Linux:*:*) - echo powerpcle-unknown-linux-${LIBC} - exit ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux-${LIBC} - exit ;; - sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - tile*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - vax:Linux:*:*) - echo ${UNAME_MACHINE}-dec-linux-${LIBC} - exit ;; - x86_64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - xtensa*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - i*86:DYNIX/ptx:4*:*) - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. - # earlier versions are messed up and put the nodename in both - # sysname and nodename. - echo i386-sequent-sysv4 - exit ;; - i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, - # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} - exit ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx - exit ;; - i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop - exit ;; - i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos - exit ;; - i*86:syllable:*:*) - echo ${UNAME_MACHINE}-pc-syllable - exit ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} - exit ;; - i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp - exit ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} - fi - exit ;; - i*86:*:5:[678]*) - # UnixWare 7.x, OpenUNIX and OpenServer 6. - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} - exit ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name` - echo ${UNAME_MACHINE}-pc-isc$UNAME_REL - elif /bin/uname -X 2>/dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` - (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ - && UNAME_MACHINE=i586 - (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ - && UNAME_MACHINE=i686 - (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ - && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL - else - echo ${UNAME_MACHINE}-pc-sysv32 - fi - exit ;; - pc:*:*:*) - # Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i586. - # Note: whatever this is, it MUST be the same as what config.sub - # prints for the "djgpp" host, or else GDB configury will decide that - # this is a cross-build. - echo i586-pc-msdosdjgpp - exit ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 - exit ;; - paragon:*:*:*) - echo i860-intel-osf1 - exit ;; - i860:*:4.*:*) # i860-SVR4 - if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 - fi - exit ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv - exit ;; - mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv - exit ;; - M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix - exit ;; - M68*:*:R3V[5678]*:*) - test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; - 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4; exit; } ;; - NCR*:*:4.2:* | MPRAS*:*:4.2:*) - OS_REL='.3' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} - exit ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 - exit ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} - exit ;; - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} - exit ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} - exit ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} - exit ;; - RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 - exit ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 - exit ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 - else - echo ns32k-sni-sysv - fi - exit ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says <Richard.M.Bartel@ccMail.Census.GOV> - echo i586-unisys-sysv4 - exit ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes <hewes@openmarket.com>. - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 - exit ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 - exit ;; - i*86:VOS:*:*) - # From Paul.Green@stratus.com. - echo ${UNAME_MACHINE}-stratus-vos - exit ;; - *:VOS:*:*) - # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos - exit ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} - exit ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 - exit ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} - else - echo mips-unknown-sysv${UNAME_RELEASE} - fi - exit ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos - exit ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos - exit ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos - exit ;; - BePC:Haiku:*:*) # Haiku running on Intel PC compatible. - echo i586-pc-haiku - exit ;; - x86_64:Haiku:*:*) - echo x86_64-unknown-haiku - exit ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} - exit ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} - exit ;; - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} - exit ;; - SX-7:SUPER-UX:*:*) - echo sx7-nec-superux${UNAME_RELEASE} - exit ;; - SX-8:SUPER-UX:*:*) - echo sx8-nec-superux${UNAME_RELEASE} - exit ;; - SX-8R:SUPER-UX:*:*) - echo sx8r-nec-superux${UNAME_RELEASE} - exit ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} - exit ;; - *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} - exit ;; - *:Darwin:*:*) - UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - eval $set_cc_for_build - if test "$UNAME_PROCESSOR" = unknown ; then - UNAME_PROCESSOR=powerpc - fi - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then - if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - case $UNAME_PROCESSOR in - i386) UNAME_PROCESSOR=x86_64 ;; - powerpc) UNAME_PROCESSOR=powerpc64 ;; - esac - fi - fi - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} - exit ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then - UNAME_PROCESSOR=i386 - UNAME_MACHINE=pc - fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} - exit ;; - *:QNX:*:4*) - echo i386-pc-qnx - exit ;; - NEO-?:NONSTOP_KERNEL:*:*) - echo neo-tandem-nsk${UNAME_RELEASE} - exit ;; - NSE-*:NONSTOP_KERNEL:*:*) - echo nse-tandem-nsk${UNAME_RELEASE} - exit ;; - NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} - exit ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux - exit ;; - BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv - exit ;; - DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} - exit ;; - *:Plan9:*:*) - # "uname -m" is not consistent, so use $cputype instead. 386 - # is converted to i386 for consistency with other x86 - # operating systems. - if test "$cputype" = "386"; then - UNAME_MACHINE=i386 - else - UNAME_MACHINE="$cputype" - fi - echo ${UNAME_MACHINE}-unknown-plan9 - exit ;; - *:TOPS-10:*:*) - echo pdp10-unknown-tops10 - exit ;; - *:TENEX:*:*) - echo pdp10-unknown-tenex - exit ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 - exit ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 - exit ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 - exit ;; - *:ITS:*:*) - echo pdp10-unknown-its - exit ;; - SEI:*:*:SEIUX) - echo mips-sei-seiux${UNAME_RELEASE} - exit ;; - *:DragonFly:*:*) - echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` - exit ;; - *:*VMS:*:*) - UNAME_MACHINE=`(uname -p) 2>/dev/null` - case "${UNAME_MACHINE}" in - A*) echo alpha-dec-vms ; exit ;; - I*) echo ia64-dec-vms ; exit ;; - V*) echo vax-dec-vms ; exit ;; - esac ;; - *:XENIX:*:SysV) - echo i386-pc-xenix - exit ;; - i*86:skyos:*:*) - echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' - exit ;; - i*86:rdos:*:*) - echo ${UNAME_MACHINE}-pc-rdos - exit ;; - i*86:AROS:*:*) - echo ${UNAME_MACHINE}-pc-aros - exit ;; - x86_64:VMkernel:*:*) - echo ${UNAME_MACHINE}-unknown-esx - exit ;; -esac - -eval $set_cc_for_build -cat >$dummy.c <<EOF -#ifdef _SEQUENT_ -# include <sys/types.h> -# include <sys/utsname.h> -#endif -main () -{ -#if defined (sony) -#if defined (MIPSEB) - /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, - I don't know.... */ - printf ("mips-sony-bsd\n"); exit (0); -#else -#include <sys/param.h> - printf ("m68k-sony-newsos%s\n", -#ifdef NEWSOS4 - "4" -#else - "" -#endif - ); exit (0); -#endif -#endif - -#if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix\n"); exit (0); -#endif - -#if defined (hp300) && !defined (hpux) - printf ("m68k-hp-bsd\n"); exit (0); -#endif - -#if defined (NeXT) -#if !defined (__ARCHITECTURE__) -#define __ARCHITECTURE__ "m68k" -#endif - int version; - version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; - if (version < 4) - printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); - else - printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); - exit (0); -#endif - -#if defined (MULTIMAX) || defined (n16) -#if defined (UMAXV) - printf ("ns32k-encore-sysv\n"); exit (0); -#else -#if defined (CMU) - printf ("ns32k-encore-mach\n"); exit (0); -#else - printf ("ns32k-encore-bsd\n"); exit (0); -#endif -#endif -#endif - -#if defined (__386BSD__) - printf ("i386-pc-bsd\n"); exit (0); -#endif - -#if defined (sequent) -#if defined (i386) - printf ("i386-sequent-dynix\n"); exit (0); -#endif -#if defined (ns32000) - printf ("ns32k-sequent-dynix\n"); exit (0); -#endif -#endif - -#if defined (_SEQUENT_) - struct utsname un; - - uname(&un); - - if (strncmp(un.version, "V2", 2) == 0) { - printf ("i386-sequent-ptx2\n"); exit (0); - } - if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ - printf ("i386-sequent-ptx1\n"); exit (0); - } - printf ("i386-sequent-ptx\n"); exit (0); - -#endif - -#if defined (vax) -# if !defined (ultrix) -# include <sys/param.h> -# if defined (BSD) -# if BSD == 43 - printf ("vax-dec-bsd4.3\n"); exit (0); -# else -# if BSD == 199006 - printf ("vax-dec-bsd4.3reno\n"); exit (0); -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# endif -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# else - printf ("vax-dec-ultrix\n"); exit (0); -# endif -#endif - -#if defined (alliant) && defined (i860) - printf ("i860-alliant-bsd\n"); exit (0); -#endif - - exit (1); -} -EOF - -$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && - { echo "$SYSTEM_NAME"; exit; } - -# Apollos put the system type in the environment. - -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } - -# Convex versions that predate uname can use getsysinfo(1) - -if [ -x /usr/convex/getsysinfo ] -then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd - exit ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit ;; - c34*) - echo c34-convex-bsd - exit ;; - c38*) - echo c38-convex-bsd - exit ;; - c4*) - echo c4-convex-bsd - exit ;; - esac -fi - -cat >&2 <<EOF -$0: unable to guess system type - -This script, last modified $timestamp, has failed to recognize -the operating system you are using. It is advised that you -download the most up to date version of the config scripts from - - http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD -and - http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD - -If the version you run ($0) is already up to date, please -send the following data and any information you think might be -pertinent to <config-patches@gnu.org> in order to provide the needed -information to handle your system. - -config.guess timestamp = $timestamp - -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null` - -hostinfo = `(hostinfo) 2>/dev/null` -/bin/universe = `(/bin/universe) 2>/dev/null` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` -/bin/arch = `(/bin/arch) 2>/dev/null` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` - -UNAME_MACHINE = ${UNAME_MACHINE} -UNAME_RELEASE = ${UNAME_RELEASE} -UNAME_SYSTEM = ${UNAME_SYSTEM} -UNAME_VERSION = ${UNAME_VERSION} -EOF - -exit 1 - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/Build/source/libs/freetype/freetype-1.5/config.sub b/Build/source/libs/freetype/freetype-1.5/config.sub deleted file mode 100755 index 85a159e5793..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/config.sub +++ /dev/null @@ -1,1791 +0,0 @@ -#! /bin/sh -# Configuration validation subroutine script. -# Copyright 1992-2013 Free Software Foundation, Inc. - -timestamp='2013-09-05' - -# This file is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, see <http://www.gnu.org/licenses/>. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that -# program. This Exception is an additional permission under section 7 -# of the GNU General Public License, version 3 ("GPLv3"). - - -# Please send patches with a ChangeLog entry to config-patches@gnu.org. -# -# Configuration subroutine to validate and canonicalize a configuration type. -# Supply the specified configuration type as an argument. -# If it is invalid, we print an error message on stderr and exit with code 1. -# Otherwise, we print the canonical config type on stdout and succeed. - -# You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD - -# This file is supposed to be the same for all GNU packages -# and recognize all the CPU types, system types and aliases -# that are meaningful with *any* GNU software. -# Each package is responsible for reporting which valid configurations -# it does not support. The user should be able to distinguish -# a failure to support a valid configuration from a meaningless -# configuration. - -# The goal of this file is to map all the various variations of a given -# machine specification into a single specification in the form: -# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM -# or in some cases, the newer four-part form: -# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM -# It is wrong to echo any other type of specification. - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS - $0 [OPTION] ALIAS - -Canonicalize a configuration name. - -Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to <config-patches@gnu.org>." - -version="\ -GNU config.sub ($timestamp) - -Copyright 1992-2013 Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit ;; - --version | -v ) - echo "$version" ; exit ;; - --help | --h* | -h ) - echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" - exit 1 ;; - - *local*) - # First pass through any local machine types. - echo $1 - exit ;; - - * ) - break ;; - esac -done - -case $# in - 0) echo "$me: missing argument$help" >&2 - exit 1;; - 1) ;; - *) echo "$me: too many arguments$help" >&2 - exit 1;; -esac - -# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). -# Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` -case $maybe_os in - nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ - linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ - knetbsd*-gnu* | netbsd*-gnu* | \ - kopensolaris*-gnu* | \ - storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - android-linux) - os=-linux-android - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown - ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi - ;; -esac - -### Let's recognize common machines as not being operating systems so -### that things like config.sub decstation-3100 work. We also -### recognize some manufacturers as not being operating systems, so we -### can provide default operating systems below. -case $os in - -sun*os*) - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis | -knuth | -cray | -microblaze*) - os= - basic_machine=$1 - ;; - -bluegene*) - os=-cnk - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) - ;; - -wrs) - os=-vxworks - basic_machine=$1 - ;; - -chorusos*) - os=-chorusos - basic_machine=$1 - ;; - -chorusrdb) - os=-chorusrdb - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; - -sco6) - os=-sco5v6 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco5v6*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -isc) - os=-isc2.2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -clix*) - basic_machine=clipper-intergraph - ;; - -isc*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -lynx*178) - os=-lynxos178 - ;; - -lynx*5) - os=-lynxos5 - ;; - -lynx*) - os=-lynxos - ;; - -ptx*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` - ;; - -windowsnt*) - os=`echo $os | sed -e 's/windowsnt/winnt/'` - ;; - -psos*) - os=-psos - ;; - -mint | -mint[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; -esac - -# Decode aliases for certain CPU-COMPANY combinations. -case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. - 1750a | 580 \ - | a29k \ - | aarch64 | aarch64_be \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ - | am33_2.0 \ - | arc | arceb \ - | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ - | avr | avr32 \ - | be32 | be64 \ - | bfin \ - | c4x | c8051 | clipper \ - | d10v | d30v | dlx | dsp16xx \ - | epiphany \ - | fido | fr30 | frv \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | hexagon \ - | i370 | i860 | i960 | ia64 \ - | ip2k | iq2000 \ - | le32 | le64 \ - | lm32 \ - | m32c | m32r | m32rle | m68000 | m68k | m88k \ - | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64octeon | mips64octeonel \ - | mips64orion | mips64orionel \ - | mips64r5900 | mips64r5900el \ - | mips64vr | mips64vrel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ - | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa64 | mipsisa64el \ - | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipsr5900 | mipsr5900el \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ - | moxie \ - | mt \ - | msp430 \ - | nds32 | nds32le | nds32be \ - | nios | nios2 | nios2eb | nios2el \ - | ns16k | ns32k \ - | open8 \ - | or1k | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle \ - | pyramid \ - | rl78 | rx \ - | score \ - | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ - | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ - | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ - | spu \ - | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ - | ubicom32 \ - | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ - | we32k \ - | x86 | xc16x | xstormy16 | xtensa \ - | z8k | z80) - basic_machine=$basic_machine-unknown - ;; - c54x) - basic_machine=tic54x-unknown - ;; - c55x) - basic_machine=tic55x-unknown - ;; - c6x) - basic_machine=tic6x-unknown - ;; - m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) - basic_machine=$basic_machine-unknown - os=-none - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) - ;; - ms1) - basic_machine=mt-unknown - ;; - - strongarm | thumb | xscale) - basic_machine=arm-unknown - ;; - xgate) - basic_machine=$basic_machine-unknown - os=-none - ;; - xscaleeb) - basic_machine=armeb-unknown - ;; - - xscaleel) - basic_machine=armel-unknown - ;; - - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. - 580-* \ - | a29k-* \ - | aarch64-* | aarch64_be-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* | avr32-* \ - | be32-* | be64-* \ - | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* \ - | c8051-* | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ - | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | hexagon-* \ - | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* | iq2000-* \ - | le32-* | le64-* \ - | lm32-* \ - | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ - | microblaze-* | microblazeel-* \ - | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64octeon-* | mips64octeonel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64r5900-* | mips64r5900el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ - | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa64-* | mipsisa64el-* \ - | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipsr5900-* | mipsr5900el-* \ - | mipstx39-* | mipstx39el-* \ - | mmix-* \ - | mt-* \ - | msp430-* \ - | nds32-* | nds32le-* | nds32be-* \ - | nios-* | nios2-* | nios2eb-* | nios2el-* \ - | none-* | np1-* | ns16k-* | ns32k-* \ - | open8-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ - | pyramid-* \ - | rl78-* | romp-* | rs6000-* | rx-* \ - | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ - | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ - | tahoe-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | tile*-* \ - | tron-* \ - | ubicom32-* \ - | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ - | vax-* \ - | we32k-* \ - | x86-* | x86_64-* | xc16x-* | xps100-* \ - | xstormy16-* | xtensa*-* \ - | ymp-* \ - | z8k-* | z80-*) - ;; - # Recognize the basic CPU types without company name, with glob match. - xtensa*) - basic_machine=$basic_machine-unknown - ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-unknown - os=-bsd - ;; - 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att - ;; - 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; - abacus) - basic_machine=abacus-unknown - ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; - amd64) - basic_machine=x86_64-pc - ;; - amd64-*) - basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) - basic_machine=m68k-unknown - os=-amigaos - ;; - amigaunix | amix) - basic_machine=m68k-unknown - os=-sysv4 - ;; - apollo68) - basic_machine=m68k-apollo - os=-sysv - ;; - apollo68bsd) - basic_machine=m68k-apollo - os=-bsd - ;; - aros) - basic_machine=i386-pc - os=-aros - ;; - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; - blackfin) - basic_machine=bfin-unknown - os=-linux - ;; - blackfin-*) - basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - bluegene*) - basic_machine=powerpc-ibm - os=-cnk - ;; - c54x-*) - basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - c55x-*) - basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - c6x-*) - basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - cegcc) - basic_machine=arm-unknown - os=-cegcc - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; - convex-c2) - basic_machine=c2-convex - os=-bsd - ;; - convex-c32) - basic_machine=c32-convex - os=-bsd - ;; - convex-c34) - basic_machine=c34-convex - os=-bsd - ;; - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; - craynv) - basic_machine=craynv-cray - os=-unicosmp - ;; - cr16 | cr16-*) - basic_machine=cr16-unknown - os=-elf - ;; - crds | unos) - basic_machine=m68k-crds - ;; - crisv32 | crisv32-* | etraxfs*) - basic_machine=crisv32-axis - ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; - crx) - basic_machine=crx-unknown - os=-elf - ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec - ;; - decsystem10* | dec10*) - basic_machine=pdp10-dec - os=-tops10 - ;; - decsystem20* | dec20*) - basic_machine=pdp10-dec - os=-tops20 - ;; - delta | 3300 | motorola-3300 | motorola-delta \ - | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; - dicos) - basic_machine=i686-pc - os=-dicos - ;; - djgpp) - basic_machine=i586-pc - os=-msdosdjgpp - ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx - ;; - dpx2* | dpx2*-bull) - basic_machine=m68k-bull - os=-sysv3 - ;; - ebmon29k) - basic_machine=a29k-amd - os=-ebmon - ;; - elxsi) - basic_machine=elxsi-elxsi - os=-bsd - ;; - encore | umax | mmax) - basic_machine=ns32k-encore - ;; - es1800 | OSE68k | ose68k | ose | OSE) - basic_machine=m68k-ericsson - os=-ose - ;; - fx2800) - basic_machine=i860-alliant - ;; - genix) - basic_machine=ns32k-ns - ;; - gmicro) - basic_machine=tron-gmicro - os=-sysv - ;; - go32) - basic_machine=i386-pc - os=-go32 - ;; - h3050r* | hiux*) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - h8300hms) - basic_machine=h8300-hitachi - os=-hms - ;; - h8300xray) - basic_machine=h8300-hitachi - os=-xray - ;; - h8500hms) - basic_machine=h8500-hitachi - os=-hms - ;; - harris) - basic_machine=m88k-harris - os=-sysv3 - ;; - hp300-*) - basic_machine=m68k-hp - ;; - hp300bsd) - basic_machine=m68k-hp - os=-bsd - ;; - hp300hpux) - basic_machine=m68k-hp - os=-hpux - ;; - hp3k9[0-9][0-9] | hp9[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k2[0-9][0-9] | hp9k31[0-9]) - basic_machine=m68000-hp - ;; - hp9k3[2-9][0-9]) - basic_machine=m68k-hp - ;; - hp9k6[0-9][0-9] | hp6[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k7[0-79][0-9] | hp7[0-79][0-9]) - basic_machine=hppa1.1-hp - ;; - hp9k78[0-9] | hp78[0-9]) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][13679] | hp8[0-9][13679]) - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][0-9] | hp8[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hppa-next) - os=-nextstep3 - ;; - hppaosf) - basic_machine=hppa1.1-hp - os=-osf - ;; - hppro) - basic_machine=hppa1.1-hp - os=-proelf - ;; - i370-ibm* | ibm*) - basic_machine=i370-ibm - ;; - i*86v32) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv32 - ;; - i*86v4*) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv4 - ;; - i*86v) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv - ;; - i*86sol2) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-solaris2 - ;; - i386mach) - basic_machine=i386-mach - os=-mach - ;; - i386-vsta | vsta) - basic_machine=i386-unknown - os=-vsta - ;; - iris | iris4d) - basic_machine=mips-sgi - case $os in - -irix*) - ;; - *) - os=-irix4 - ;; - esac - ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; - m68knommu) - basic_machine=m68k-unknown - os=-linux - ;; - m68knommu-*) - basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - m88k-omron*) - basic_machine=m88k-omron - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - microblaze*) - basic_machine=microblaze-xilinx - ;; - mingw64) - basic_machine=x86_64-pc - os=-mingw64 - ;; - mingw32) - basic_machine=i686-pc - os=-mingw32 - ;; - mingw32ce) - basic_machine=arm-unknown - os=-mingw32ce - ;; - miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; - ms1-*) - basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` - ;; - msys) - basic_machine=i686-pc - os=-msys - ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - nacl) - basic_machine=le32-unknown - os=-nacl - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; - netbsd386) - basic_machine=i386-unknown - os=-netbsd - ;; - netwinder) - basic_machine=armv4l-rebel - os=-linux - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony - os=-newsos - ;; - news1000) - basic_machine=m68030-sony - os=-newsos - ;; - news-3600 | risc-news) - basic_machine=mips-sony - os=-newsos - ;; - necv70) - basic_machine=v70-nec - os=-sysv - ;; - next | m*-next ) - basic_machine=m68k-next - case $os in - -nextstep* ) - ;; - -ns2*) - os=-nextstep2 - ;; - *) - os=-nextstep3 - ;; - esac - ;; - nh3000) - basic_machine=m68k-harris - os=-cxux - ;; - nh[45]000) - basic_machine=m88k-harris - os=-cxux - ;; - nindy960) - basic_machine=i960-intel - os=-nindy - ;; - mon960) - basic_machine=i960-intel - os=-mon960 - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; - np1) - basic_machine=np1-gould - ;; - neo-tandem) - basic_machine=neo-tandem - ;; - nse-tandem) - basic_machine=nse-tandem - ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; - openrisc | openrisc-*) - basic_machine=or32-unknown - ;; - os400) - basic_machine=powerpc-ibm - os=-os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k - ;; - pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; - parisc) - basic_machine=hppa-unknown - os=-linux - ;; - parisc-*) - basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - pbd) - basic_machine=sparc-tti - ;; - pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; - pc98) - basic_machine=i386-pc - ;; - pc98-*) - basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; - pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc - ;; - pentium4) - basic_machine=i786-pc - ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentium4-*) - basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pn) - basic_machine=pn-gould - ;; - power) basic_machine=power-ibm - ;; - ppc | ppcbe) basic_machine=powerpc-unknown - ;; - ppc-* | ppcbe-*) - basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppcle | powerpclittle | ppc-le | powerpc-little) - basic_machine=powerpcle-unknown - ;; - ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64) basic_machine=powerpc64-unknown - ;; - ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64le | powerpc64little | ppc64-le | powerpc64-little) - basic_machine=powerpc64le-unknown - ;; - ppc64le-* | powerpc64little-*) - basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ps2) - basic_machine=i386-ibm - ;; - pw32) - basic_machine=i586-unknown - os=-pw32 - ;; - rdos | rdos64) - basic_machine=x86_64-pc - os=-rdos - ;; - rdos32) - basic_machine=i386-pc - os=-rdos - ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff - ;; - rm[46]00) - basic_machine=mips-siemens - ;; - rtpc | rtpc-*) - basic_machine=romp-ibm - ;; - s390 | s390-*) - basic_machine=s390-ibm - ;; - s390x | s390x-*) - basic_machine=s390x-ibm - ;; - sa29200) - basic_machine=a29k-amd - os=-udi - ;; - sb1) - basic_machine=mipsisa64sb1-unknown - ;; - sb1el) - basic_machine=mipsisa64sb1el-unknown - ;; - sde) - basic_machine=mipsisa32-sde - os=-elf - ;; - sei) - basic_machine=mips-sei - os=-seiux - ;; - sequent) - basic_machine=i386-sequent - ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; - sh5el) - basic_machine=sh5le-unknown - ;; - sh64) - basic_machine=sh64-unknown - ;; - sparclite-wrs | simso-wrs) - basic_machine=sparclite-wrs - os=-vxworks - ;; - sps7) - basic_machine=m68k-bull - os=-sysv2 - ;; - spur) - basic_machine=spur-unknown - ;; - st2000) - basic_machine=m68k-tandem - ;; - stratus) - basic_machine=i860-stratus - os=-sysv4 - ;; - strongarm-* | thumb-*) - basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - sun2) - basic_machine=m68000-sun - ;; - sun2os3) - basic_machine=m68000-sun - os=-sunos3 - ;; - sun2os4) - basic_machine=m68000-sun - os=-sunos4 - ;; - sun3os3) - basic_machine=m68k-sun - os=-sunos3 - ;; - sun3os4) - basic_machine=m68k-sun - os=-sunos4 - ;; - sun4os3) - basic_machine=sparc-sun - os=-sunos3 - ;; - sun4os4) - basic_machine=sparc-sun - os=-sunos4 - ;; - sun4sol2) - basic_machine=sparc-sun - os=-solaris2 - ;; - sun3 | sun3-*) - basic_machine=m68k-sun - ;; - sun4) - basic_machine=sparc-sun - ;; - sun386 | sun386i | roadrunner) - basic_machine=i386-sun - ;; - sv1) - basic_machine=sv1-cray - os=-unicos - ;; - symmetry) - basic_machine=i386-sequent - os=-dynix - ;; - t3e) - basic_machine=alphaev5-cray - os=-unicos - ;; - t90) - basic_machine=t90-cray - os=-unicos - ;; - tile*) - basic_machine=$basic_machine-unknown - os=-linux-gnu - ;; - tx39) - basic_machine=mipstx39-unknown - ;; - tx39el) - basic_machine=mipstx39el-unknown - ;; - toad1) - basic_machine=pdp10-xkl - os=-tops20 - ;; - tower | tower-32) - basic_machine=m68k-ncr - ;; - tpf) - basic_machine=s390x-ibm - os=-tpf - ;; - udi29k) - basic_machine=a29k-amd - os=-udi - ;; - ultra3) - basic_machine=a29k-nyu - os=-sym1 - ;; - v810 | necv810) - basic_machine=v810-nec - os=-none - ;; - vaxv) - basic_machine=vax-dec - os=-sysv - ;; - vms) - basic_machine=vax-dec - os=-vms - ;; - vpp*|vx|vx-*) - basic_machine=f301-fujitsu - ;; - vxworks960) - basic_machine=i960-wrs - os=-vxworks - ;; - vxworks68) - basic_machine=m68k-wrs - os=-vxworks - ;; - vxworks29k) - basic_machine=a29k-wrs - os=-vxworks - ;; - w65*) - basic_machine=w65-wdc - os=-none - ;; - w89k-*) - basic_machine=hppa1.1-winbond - os=-proelf - ;; - xbox) - basic_machine=i686-pc - os=-mingw32 - ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; - xscale-* | xscalee[bl]-*) - basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` - ;; - ymp) - basic_machine=ymp-cray - os=-unicos - ;; - z8k-*-coff) - basic_machine=z8k-unknown - os=-sim - ;; - z80-*-coff) - basic_machine=z80-unknown - os=-sim - ;; - none) - basic_machine=none-none - os=-none - ;; - -# Here we handle the default manufacturer of certain CPU types. It is in -# some cases the only manufacturer, in others, it is the most popular. - w89k) - basic_machine=hppa1.1-winbond - ;; - op50n) - basic_machine=hppa1.1-oki - ;; - op60c) - basic_machine=hppa1.1-oki - ;; - romp) - basic_machine=romp-ibm - ;; - mmix) - basic_machine=mmix-knuth - ;; - rs6000) - basic_machine=rs6000-ibm - ;; - vax) - basic_machine=vax-dec - ;; - pdp10) - # there are many clones, so DEC is not a safe bet - basic_machine=pdp10-unknown - ;; - pdp11) - basic_machine=pdp11-dec - ;; - we32k) - basic_machine=we32k-att - ;; - sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) - basic_machine=sh-unknown - ;; - sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) - basic_machine=sparc-sun - ;; - cydra) - basic_machine=cydra-cydrome - ;; - orion) - basic_machine=orion-highlevel - ;; - orion105) - basic_machine=clipper-highlevel - ;; - mac | mpw | mac-mpw) - basic_machine=m68k-apple - ;; - pmac | pmac-mpw) - basic_machine=powerpc-apple - ;; - *-unknown) - # Make sure to match an already-canonicalized machine name. - ;; - *) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; -esac - -# Here we canonicalize certain aliases for manufacturers. -case $basic_machine in - *-digital*) - basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` - ;; - *-commodore*) - basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` - ;; - *) - ;; -esac - -# Decode manufacturer-specific aliases for certain operating systems. - -if [ x"$os" != x"" ] -then -case $os in - # First match some system type aliases - # that might get confused with valid system types. - # -solaris* is a basic system type, with this one exception. - -auroraux) - os=-auroraux - ;; - -solaris1 | -solaris1.*) - os=`echo $os | sed -e 's|solaris1|sunos4|'` - ;; - -solaris) - os=-solaris2 - ;; - -svr4*) - os=-sysv4 - ;; - -unixware*) - os=-sysv4.2uw - ;; - -gnu/linux*) - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` - ;; - # First accept the basic system types. - # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ - | -sym* | -kopensolaris* | -plan9* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* | -aros* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ - | -bitrig* | -openbsd* | -solidbsd* \ - | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ - | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* | -cegcc* \ - | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ - | -linux-newlib* | -linux-musl* | -linux-uclibc* \ - | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ - | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) - case $basic_machine in - x86-* | i*86-*) - ;; - *) - os=-nto$os - ;; - esac - ;; - -nto-qnx*) - ;; - -nto*) - os=`echo $os | sed -e 's|nto|nto-qnx|'` - ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) - ;; - -mac*) - os=`echo $os | sed -e 's|mac|macos|'` - ;; - -linux-dietlibc) - os=-linux-dietlibc - ;; - -linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; - -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` - ;; - -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` - ;; - -opened*) - os=-openedition - ;; - -os400*) - os=-os400 - ;; - -wince*) - os=-wince - ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf - ;; - -utek*) - os=-bsd - ;; - -dynix*) - os=-bsd - ;; - -acis*) - os=-aos - ;; - -atheos*) - os=-atheos - ;; - -syllable*) - os=-syllable - ;; - -386bsd) - os=-bsd - ;; - -ctix* | -uts*) - os=-sysv - ;; - -nova*) - os=-rtmk-nova - ;; - -ns2 ) - os=-nextstep2 - ;; - -nsk*) - os=-nsk - ;; - # Preserve the version number of sinix5. - -sinix5.*) - os=`echo $os | sed -e 's|sinix|sysv|'` - ;; - -sinix*) - os=-sysv4 - ;; - -tpf*) - os=-tpf - ;; - -triton*) - os=-sysv3 - ;; - -oss*) - os=-sysv3 - ;; - -svr4) - os=-sysv4 - ;; - -svr3) - os=-sysv3 - ;; - -sysvr4) - os=-sysv4 - ;; - # This must come after -sysvr4. - -sysv*) - ;; - -ose*) - os=-ose - ;; - -es1800*) - os=-ose - ;; - -xenix) - os=-xenix - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - os=-mint - ;; - -aros*) - os=-aros - ;; - -zvmoe) - os=-zvmoe - ;; - -dicos*) - os=-dicos - ;; - -nacl*) - ;; - -none) - ;; - *) - # Get rid of the `-' at the beginning of $os. - os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 - exit 1 - ;; -esac -else - -# Here we handle the default operating systems that come with various machines. -# The value should be what the vendor currently ships out the door with their -# machine or put another way, the most popular os provided with the machine. - -# Note that if you're going to try to match "-MANUFACTURER" here (say, -# "-sun"), then you have to tell the case statement up towards the top -# that MANUFACTURER isn't an operating system. Otherwise, code above -# will signal an error saying that MANUFACTURER isn't an operating -# system, and we'll never get to this point. - -case $basic_machine in - score-*) - os=-elf - ;; - spu-*) - os=-elf - ;; - *-acorn) - os=-riscix1.2 - ;; - arm*-rebel) - os=-linux - ;; - arm*-semi) - os=-aout - ;; - c4x-* | tic4x-*) - os=-coff - ;; - c8051-*) - os=-elf - ;; - hexagon-*) - os=-elf - ;; - tic54x-*) - os=-coff - ;; - tic55x-*) - os=-coff - ;; - tic6x-*) - os=-coff - ;; - # This must come before the *-dec entry. - pdp10-*) - os=-tops20 - ;; - pdp11-*) - os=-none - ;; - *-dec | vax-*) - os=-ultrix4.2 - ;; - m68*-apollo) - os=-domain - ;; - i386-sun) - os=-sunos4.0.2 - ;; - m68000-sun) - os=-sunos3 - ;; - m68*-cisco) - os=-aout - ;; - mep-*) - os=-elf - ;; - mips*-cisco) - os=-elf - ;; - mips*-*) - os=-elf - ;; - or1k-*) - os=-elf - ;; - or32-*) - os=-coff - ;; - *-tti) # must be before sparc entry or we get the wrong os. - os=-sysv3 - ;; - sparc-* | *-sun) - os=-sunos4.1.1 - ;; - *-be) - os=-beos - ;; - *-haiku) - os=-haiku - ;; - *-ibm) - os=-aix - ;; - *-knuth) - os=-mmixware - ;; - *-wec) - os=-proelf - ;; - *-winbond) - os=-proelf - ;; - *-oki) - os=-proelf - ;; - *-hp) - os=-hpux - ;; - *-hitachi) - os=-hiux - ;; - i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) - os=-sysv - ;; - *-cbm) - os=-amigaos - ;; - *-dg) - os=-dgux - ;; - *-dolphin) - os=-sysv3 - ;; - m68k-ccur) - os=-rtu - ;; - m88k-omron*) - os=-luna - ;; - *-next ) - os=-nextstep - ;; - *-sequent) - os=-ptx - ;; - *-crds) - os=-unos - ;; - *-ns) - os=-genix - ;; - i370-*) - os=-mvs - ;; - *-next) - os=-nextstep3 - ;; - *-gould) - os=-sysv - ;; - *-highlevel) - os=-bsd - ;; - *-encore) - os=-bsd - ;; - *-sgi) - os=-irix - ;; - *-siemens) - os=-sysv4 - ;; - *-masscomp) - os=-rtu - ;; - f30[01]-fujitsu | f700-fujitsu) - os=-uxpv - ;; - *-rom68k) - os=-coff - ;; - *-*bug) - os=-coff - ;; - *-apple) - os=-macos - ;; - *-atari*) - os=-mint - ;; - *) - os=-none - ;; -esac -fi - -# Here we handle the case where we know the os, and the CPU type, but not the -# manufacturer. We pick the logical manufacturer. -vendor=unknown -case $basic_machine in - *-unknown) - case $os in - -riscix*) - vendor=acorn - ;; - -sunos*) - vendor=sun - ;; - -cnk*|-aix*) - vendor=ibm - ;; - -beos*) - vendor=be - ;; - -hpux*) - vendor=hp - ;; - -mpeix*) - vendor=hp - ;; - -hiux*) - vendor=hitachi - ;; - -unos*) - vendor=crds - ;; - -dgux*) - vendor=dg - ;; - -luna*) - vendor=omron - ;; - -genix*) - vendor=ns - ;; - -mvs* | -opened*) - vendor=ibm - ;; - -os400*) - vendor=ibm - ;; - -ptx*) - vendor=sequent - ;; - -tpf*) - vendor=ibm - ;; - -vxsim* | -vxworks* | -windiss*) - vendor=wrs - ;; - -aux*) - vendor=apple - ;; - -hms*) - vendor=hitachi - ;; - -mpw* | -macos*) - vendor=apple - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - vendor=atari - ;; - -vos*) - vendor=stratus - ;; - esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` - ;; -esac - -echo $basic_machine$os -exit - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/Build/source/libs/freetype/freetype-1.5/configure b/Build/source/libs/freetype/freetype-1.5/configure deleted file mode 100755 index f1bb5424ef3..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/configure +++ /dev/null @@ -1,25983 +0,0 @@ -#! /bin/sh -# Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.61a. -# -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in - *posix*) set -o posix ;; -esac - -fi - - - - -# PATH needs CR -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - -# Support unset when possible. -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -case $0 in - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - { (exit 1); exit 1; } -fi - -# Work around bugs in pre-3.0 UWIN ksh. -for as_var in ENV MAIL MAILPATH -do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME -do - if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var - else - ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var - fi -done - -# Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - - -# Name of the executable. -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# CDPATH. -$as_unset CDPATH - - -if test "x$CONFIG_SHELL" = x; then - if (eval ":") 2>/dev/null; then - as_have_required=yes -else - as_have_required=no -fi - - if test $as_have_required = yes && (eval ": -(as_func_return () { - (exit \$1) -} -as_func_success () { - as_func_return 0 -} -as_func_failure () { - as_func_return 1 -} -as_func_ret_success () { - return 0 -} -as_func_ret_failure () { - return 1 -} - -exitcode=0 -if as_func_success; then - : -else - exitcode=1 - echo as_func_success failed. -fi - -if as_func_failure; then - exitcode=1 - echo as_func_failure succeeded. -fi - -if as_func_ret_success; then - : -else - exitcode=1 - echo as_func_ret_success failed. -fi - -if as_func_ret_failure; then - exitcode=1 - echo as_func_ret_failure succeeded. -fi - -if ( set x; as_func_ret_success y && test x = \"\$1\" ); then - : -else - exitcode=1 - echo positional parameters were not saved. -fi - -test \$exitcode = 0) || { (exit 1); exit 1; } - -( - as_lineno_1=\$LINENO - as_lineno_2=\$LINENO - test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && - test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } -") 2> /dev/null; then - : -else - as_candidate_shells= - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - case $as_dir in - /*) - for as_base in sh bash ksh sh5; do - as_candidate_shells="$as_candidate_shells $as_dir/$as_base" - done;; - esac -done -IFS=$as_save_IFS - - - for as_shell in $as_candidate_shells $SHELL; do - # Try only shells that exist, to save several forks. - if { test -f "$as_shell" || test -f "$as_shell.exe"; } && - { ("$as_shell") 2> /dev/null <<\_ASEOF -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in - *posix*) set -o posix ;; -esac - -fi - - -: -_ASEOF -}; then - CONFIG_SHELL=$as_shell - as_have_required=yes - if { "$as_shell" 2> /dev/null <<\_ASEOF -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in - *posix*) set -o posix ;; -esac - -fi - - -: -(as_func_return () { - (exit $1) -} -as_func_success () { - as_func_return 0 -} -as_func_failure () { - as_func_return 1 -} -as_func_ret_success () { - return 0 -} -as_func_ret_failure () { - return 1 -} - -exitcode=0 -if as_func_success; then - : -else - exitcode=1 - echo as_func_success failed. -fi - -if as_func_failure; then - exitcode=1 - echo as_func_failure succeeded. -fi - -if as_func_ret_success; then - : -else - exitcode=1 - echo as_func_ret_success failed. -fi - -if as_func_ret_failure; then - exitcode=1 - echo as_func_ret_failure succeeded. -fi - -if ( set x; as_func_ret_success y && test x = "$1" ); then - : -else - exitcode=1 - echo positional parameters were not saved. -fi - -test $exitcode = 0) || { (exit 1); exit 1; } - -( - as_lineno_1=$LINENO - as_lineno_2=$LINENO - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } - -_ASEOF -}; then - break -fi - -fi - - done - - if test "x$CONFIG_SHELL" != x; then - for as_var in BASH_ENV ENV - do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var - done - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} -fi - - - if test $as_have_required = no; then - echo This script requires a shell more modern than all the - echo shells that I found on your system. Please install a - echo modern shell, or manually run the script under such a - echo shell if you do have one. - { (exit 1); exit 1; } -fi - - -fi - -fi - - - -(eval "as_func_return () { - (exit \$1) -} -as_func_success () { - as_func_return 0 -} -as_func_failure () { - as_func_return 1 -} -as_func_ret_success () { - return 0 -} -as_func_ret_failure () { - return 1 -} - -exitcode=0 -if as_func_success; then - : -else - exitcode=1 - echo as_func_success failed. -fi - -if as_func_failure; then - exitcode=1 - echo as_func_failure succeeded. -fi - -if as_func_ret_success; then - : -else - exitcode=1 - echo as_func_ret_success failed. -fi - -if as_func_ret_failure; then - exitcode=1 - echo as_func_ret_failure succeeded. -fi - -if ( set x; as_func_ret_success y && test x = \"\$1\" ); then - : -else - exitcode=1 - echo positional parameters were not saved. -fi - -test \$exitcode = 0") || { - echo No shell found that supports shell functions. - echo Please tell autoconf@gnu.org about your system, - echo including any error possibly output before this - echo message -} - - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line after each line using $LINENO; the second 'sed' - # does the real work. The second script uses 'N' to pair each - # line-number line with the line containing $LINENO, and appends - # trailing '-' during substitution so that $LINENO is not a special - # case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # scripts with optimization help from Paolo Bonzini. Blame Lee - # E. McMahon (1931-1989) for sed's syntax. :-) - sed -n ' - p - /[$]LINENO/= - ' <$as_myself | - sed ' - s/[$]LINENO.*/&-/ - t lineno - b - :lineno - N - :loop - s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ - t loop - s/-\n.*// - ' >$as_me.lineno && - chmod +x "$as_me.lineno" || - { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 - { (exit 1); exit 1; }; } - - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensitive to this). - . "./$as_me.lineno" - # Exit status is that of the last command. - exit -} - - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in --n*) - case `echo 'x\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - *) ECHO_C='\c';; - esac;; -*) - ECHO_N='-n';; -esac -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir -fi -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - -if mkdir -p . 2>/dev/null; then - as_mkdir_p=: -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - - - -# Check that we are running under the correct shell. -SHELL=${CONFIG_SHELL-/bin/sh} - -case X$ECHO in -X*--fallback-echo) - # Remove one level of quotation (which was required for Make). - ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','` - ;; -esac - -echo=${ECHO-echo} -if test "X$1" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift -elif test "X$1" = X--fallback-echo; then - # Avoid inline document here, it may be left over - : -elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then - # Yippee, $echo works! - : -else - # Restart under the correct shell. - exec $SHELL "$0" --no-reexec ${1+"$@"} -fi - -if test "X$1" = X--fallback-echo; then - # used as fallback echo - shift - cat <<EOF -$* -EOF - exit 0 -fi - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -if test -z "$ECHO"; then -if test "X${echo_test_string+set}" != Xset; then -# find a string as large as possible, as long as the shell can cope with it - for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do - # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... - if (echo_test_string=`eval $cmd`) 2>/dev/null && - echo_test_string=`eval $cmd` && - (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null - then - break - fi - done -fi - -if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - : -else - # The Solaris, AIX, and Digital Unix default echo programs unquote - # backslashes. This makes it impossible to quote backslashes using - # echo "$something" | sed 's/\\/\\\\/g' - # - # So, first we look for a working echo in the user's PATH. - - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for dir in $PATH /usr/ucb; do - IFS="$lt_save_ifs" - if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && - test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - echo="$dir/echo" - break - fi - done - IFS="$lt_save_ifs" - - if test "X$echo" = Xecho; then - # We didn't find a better echo, so look for alternatives. - if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - # This shell has a builtin print -r that does the trick. - echo='print -r' - elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && - test "X$CONFIG_SHELL" != X/bin/ksh; then - # If we have ksh, try running configure again with it. - ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} - export ORIGINAL_CONFIG_SHELL - CONFIG_SHELL=/bin/ksh - export CONFIG_SHELL - exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} - else - # Try using printf. - echo='printf %s\n' - if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - # Cool, printf works - : - elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && - test "X$echo_testing_string" = 'X\t' && - echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL - export CONFIG_SHELL - SHELL="$CONFIG_SHELL" - export SHELL - echo="$CONFIG_SHELL $0 --fallback-echo" - elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && - test "X$echo_testing_string" = 'X\t' && - echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - echo="$CONFIG_SHELL $0 --fallback-echo" - else - # maybe with a smaller string... - prev=: - - for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do - if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null - then - break - fi - prev="$cmd" - done - - if test "$prev" != 'sed 50q "$0"'; then - echo_test_string=`eval $prev` - export echo_test_string - exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} - else - # Oops. We lost completely, so just stick with echo. - echo=echo - fi - fi - fi - fi -fi -fi - -# Copy echo and quote the copy suitably for passing to libtool from -# the Makefile, instead of quoting the original, which is used later. -ECHO=$echo -if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then - ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" -fi - - - - -tagnames=${tagnames+${tagnames},}CXX - -tagnames=${tagnames+${tagnames},}F77 - -exec 7<&0 </dev/null 6>&1 - -# Name of the host. -# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` - -# -# Initializations. -# -ac_default_prefix=/usr/local -ac_clean_files= -ac_config_libobj_dir=. -LIBOBJS= -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= -SHELL=${CONFIG_SHELL-/bin/sh} - -# Identity of this package. -PACKAGE_NAME= -PACKAGE_TARNAME= -PACKAGE_VERSION= -PACKAGE_STRING= -PACKAGE_BUGREPORT= - -ac_unique_file="lib/freetype.h" -# Factoring default headers for most tests. -ac_includes_default="\ -#include <stdio.h> -#ifdef HAVE_SYS_TYPES_H -# include <sys/types.h> -#endif -#ifdef HAVE_SYS_STAT_H -# include <sys/stat.h> -#endif -#ifdef STDC_HEADERS -# include <stdlib.h> -# include <stddef.h> -#else -# ifdef HAVE_STDLIB_H -# include <stdlib.h> -# endif -#endif -#ifdef HAVE_STRING_H -# if !defined STDC_HEADERS && defined HAVE_MEMORY_H -# include <memory.h> -# endif -# include <string.h> -#endif -#ifdef HAVE_STRINGS_H -# include <strings.h> -#endif -#ifdef HAVE_INTTYPES_H -# include <inttypes.h> -#endif -#ifdef HAVE_STDINT_H -# include <stdint.h> -#endif -#ifdef HAVE_UNISTD_H -# include <unistd.h> -#endif" - -ac_subst_vars='SHELL -PATH_SEPARATOR -PACKAGE_NAME -PACKAGE_TARNAME -PACKAGE_VERSION -PACKAGE_STRING -PACKAGE_BUGREPORT -exec_prefix -prefix -program_transform_name -bindir -sbindir -libexecdir -datarootdir -datadir -sysconfdir -sharedstatedir -localstatedir -includedir -oldincludedir -docdir -infodir -htmldir -dvidir -pdfdir -psdir -libdir -localedir -mandir -DEFS -ECHO_C -ECHO_N -ECHO_T -LIBS -build_alias -host_alias -target_alias -build -build_cpu -build_vendor -build_os -host -host_cpu -host_vendor -host_os -CC -CFLAGS -LDFLAGS -CPPFLAGS -ac_ct_CC -EXEEXT -OBJEXT -SED -GREP -EGREP -LN_S -ECHO -AR -RANLIB -STRIP -DLLTOOL -AS -OBJDUMP -CPP -CXX -CXXFLAGS -ac_ct_CXX -CXXCPP -F77 -FFLAGS -ac_ct_F77 -LIBTOOL -USE_NLS -target -target_cpu -target_vendor -target_os -XX_CFLAGS -freetype_version -version_info -SET_MAKE -HAVE_LOCALE_H -HAVE_LIBINTL_H -LOCALEDIR -MSGFMT -GMSGFMT -XGETTEXT -MSGMERGE -CATALOGS -CATOBJEXT -INSTOBJEXT -DATADIRNAME -RM -RMDIR -INSTALL_PROGRAM -INSTALL_SCRIPT -INSTALL_DATA -XMKMF -X_CFLAGS -X_PRE_LIBS -X_LIBS -X_EXTRA_LIBS -X_PROGRAMS -TT_FILE_COMPONENT -LIBOBJS -LTLIBOBJS' -ac_subst_files='' - ac_precious_vars='build_alias -host_alias -target_alias -CC -CFLAGS -LDFLAGS -LIBS -CPPFLAGS -CPP -CXX -CXXFLAGS -CCC -CXXCPP -F77 -FFLAGS -XMKMF' - - -# Initialize some variables set by options. -ac_init_help= -ac_init_version=false -# The variables have the same names as the options, with -# dashes changed to underlines. -cache_file=/dev/null -exec_prefix=NONE -no_create= -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -verbose= -x_includes=NONE -x_libraries=NONE - -# Installation directory options. -# These are left unexpanded so users can "make install exec_prefix=/foo" -# and all the variables that are supposed to be based on exec_prefix -# by default will actually change. -# Use braces instead of parens because sh, perl, etc. also accept them. -# (The list follows the same order as the GNU Coding Standards.) -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datarootdir='${prefix}/share' -datadir='${datarootdir}' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -includedir='${prefix}/include' -oldincludedir='/usr/include' -docdir='${datarootdir}/doc/${PACKAGE}' -infodir='${datarootdir}/info' -htmldir='${docdir}' -dvidir='${docdir}' -pdfdir='${docdir}' -psdir='${docdir}' -libdir='${exec_prefix}/lib' -localedir='${datarootdir}/locale' -mandir='${datarootdir}/man' - -ac_prev= -ac_dashdash= -for ac_option -do - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval $ac_prev=\$ac_option - ac_prev= - continue - fi - - case $ac_option in - *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; - *) ac_optarg=yes ;; - esac - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case $ac_dashdash$ac_option in - --) - ac_dashdash=yes ;; - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir=$ac_optarg ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build_alias ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build_alias=$ac_optarg ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file=$ac_optarg ;; - - --config-cache | -C) - cache_file=config.cache ;; - - -datadir | --datadir | --datadi | --datad) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=*) - datadir=$ac_optarg ;; - - -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ - | --dataroo | --dataro | --datar) - ac_prev=datarootdir ;; - -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ - | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) - datarootdir=$ac_optarg ;; - - -disable-* | --disable-*) - ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-._$as_cr_alnum]" >/dev/null && - { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 - { (exit 1); exit 1; }; } - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-.]/_/g'` - eval enable_$ac_useropt=no ;; - - -docdir | --docdir | --docdi | --doc | --do) - ac_prev=docdir ;; - -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) - docdir=$ac_optarg ;; - - -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) - ac_prev=dvidir ;; - -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) - dvidir=$ac_optarg ;; - - -enable-* | --enable-*) - ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-._$as_cr_alnum]" >/dev/null && - { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 - { (exit 1); exit 1; }; } - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-.]/_/g'` - eval enable_$ac_useropt=\$ac_optarg ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix=$ac_optarg ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he | -h) - ac_init_help=long ;; - -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) - ac_init_help=recursive ;; - -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) - ac_init_help=short ;; - - -host | --host | --hos | --ho) - ac_prev=host_alias ;; - -host=* | --host=* | --hos=* | --ho=*) - host_alias=$ac_optarg ;; - - -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) - ac_prev=htmldir ;; - -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ - | --ht=*) - htmldir=$ac_optarg ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir=$ac_optarg ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir=$ac_optarg ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir=$ac_optarg ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir=$ac_optarg ;; - - -localedir | --localedir | --localedi | --localed | --locale) - ac_prev=localedir ;; - -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) - localedir=$ac_optarg ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst | --locals) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) - localstatedir=$ac_optarg ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir=$ac_optarg ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c | -n) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir=$ac_optarg ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix=$ac_optarg ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix=$ac_optarg ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix=$ac_optarg ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name=$ac_optarg ;; - - -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) - ac_prev=pdfdir ;; - -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) - pdfdir=$ac_optarg ;; - - -psdir | --psdir | --psdi | --psd | --ps) - ac_prev=psdir ;; - -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) - psdir=$ac_optarg ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir=$ac_optarg ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir=$ac_optarg ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site=$ac_optarg ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir=$ac_optarg ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir=$ac_optarg ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target_alias ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target_alias=$ac_optarg ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers | -V) - ac_init_version=: ;; - - -with-* | --with-*) - ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-._$as_cr_alnum]" >/dev/null && - { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 - { (exit 1); exit 1; }; } - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-.]/_/g'` - eval with_$ac_useropt=\$ac_optarg ;; - - -without-* | --without-*) - ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-._$as_cr_alnum]" >/dev/null && - { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 - { (exit 1); exit 1; }; } - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-.]/_/g'` - eval with_$ac_useropt=no ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes=$ac_optarg ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries=$ac_optarg ;; - - -*) { $as_echo "$as_me: error: unrecognized option: $ac_option -Try \`$0 --help' for more information." >&2 - { (exit 1); exit 1; }; } - ;; - - *=*) - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` - # Reject names that are not valid shell variable names. - expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && - { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2 - { (exit 1); exit 1; }; } - eval $ac_envvar=\$ac_optarg - export $ac_envvar ;; - - *) - # FIXME: should be removed in autoconf 3.0. - $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} - ;; - - esac -done - -if test -n "$ac_prev"; then - ac_option=--`echo $ac_prev | sed 's/_/-/g'` - { $as_echo "$as_me: error: missing argument to $ac_option" >&2 - { (exit 1); exit 1; }; } -fi - -# Be sure to have absolute directory names. -for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ - datadir sysconfdir sharedstatedir localstatedir includedir \ - oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir -do - eval ac_val=\$$ac_var - case $ac_val in - [\\/$]* | ?:[\\/]* ) continue;; - NONE | '' ) case $ac_var in *prefix ) continue;; esac;; - esac - { $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; } -done - -# There might be people who depend on the old broken behavior: `$host' -# used to hold the argument of --host etc. -# FIXME: To remove some day. -build=$build_alias -host=$host_alias -target=$target_alias - -# FIXME: To remove some day. -if test "x$host_alias" != x; then - if test "x$build_alias" = x; then - cross_compiling=maybe - $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. - If a cross compiler is detected then cross compile mode will be used." >&2 - elif test "x$build_alias" != "x$host_alias"; then - cross_compiling=yes - fi -fi - -ac_tool_prefix= -test -n "$host_alias" && ac_tool_prefix=$host_alias- - -test "$silent" = yes && exec 6>/dev/null - - -ac_pwd=`pwd` && test -n "$ac_pwd" && -ac_ls_di=`ls -di .` && -ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - { $as_echo "$as_me: error: Working directory cannot be determined" >&2 - { (exit 1); exit 1; }; } -test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - { $as_echo "$as_me: error: pwd does not report name of working directory" >&2 - { (exit 1); exit 1; }; } - - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then the parent directory. - ac_confdir=`$as_dirname -- "$0" || -$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$0" : 'X\(//\)[^/]' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$0" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - srcdir=$ac_confdir - if test ! -r "$srcdir/$ac_unique_file"; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r "$srcdir/$ac_unique_file"; then - test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 - { (exit 1); exit 1; }; } -fi -ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" -ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2 - { (exit 1); exit 1; }; } - pwd)` -# When building in place, set srcdir=. -if test "$ac_abs_confdir" = "$ac_pwd"; then - srcdir=. -fi -# Remove unnecessary trailing slashes from srcdir. -# Double slashes in file names in object file debugging info -# mess up M-x gdb in Emacs. -case $srcdir in -*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; -esac -for ac_var in $ac_precious_vars; do - eval ac_env_${ac_var}_set=\${${ac_var}+set} - eval ac_env_${ac_var}_value=\$${ac_var} - eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} - eval ac_cv_env_${ac_var}_value=\$${ac_var} -done - -# -# Report the --help message. -# -if test "$ac_init_help" = "long"; then - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat <<_ACEOF -\`configure' configures this package to adapt to many kinds of systems. - -Usage: $0 [OPTION]... [VAR=VALUE]... - -To assign environment variables (e.g., CC, CFLAGS...), specify them as -VAR=VALUE. See below for descriptions of some of the useful variables. - -Defaults for the options are specified in brackets. - -Configuration: - -h, --help display this help and exit - --help=short display options specific to this package - --help=recursive display the short help of all the included packages - -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking...' messages - --cache-file=FILE cache test results in FILE [disabled] - -C, --config-cache alias for \`--cache-file=config.cache' - -n, --no-create do not create output files - --srcdir=DIR find the sources in DIR [configure dir or \`..'] - -Installation directories: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] - -By default, \`make install' will install all the files in -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify -an installation prefix other than \`$ac_default_prefix' using \`--prefix', -for instance \`--prefix=\$HOME'. - -For better control, use the options below. - -Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] - --datadir=DIR read-only architecture-independent data [DATAROOTDIR] - --infodir=DIR info documentation [DATAROOTDIR/info] - --localedir=DIR locale-dependent data [DATAROOTDIR/locale] - --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] - --htmldir=DIR html documentation [DOCDIR] - --dvidir=DIR dvi documentation [DOCDIR] - --pdfdir=DIR pdf documentation [DOCDIR] - --psdir=DIR ps documentation [DOCDIR] -_ACEOF - - cat <<\_ACEOF - -X features: - --x-includes=DIR X include files are in DIR - --x-libraries=DIR X library files are in DIR - -System types: - --build=BUILD configure for building on BUILD [guessed] - --host=HOST cross-compile to build programs to run on HOST [BUILD] - --target=TARGET configure for building compilers for TARGET [HOST] -_ACEOF -fi - -if test -n "$ac_init_help"; then - - cat <<\_ACEOF - -Optional Features: - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --enable-static[=PKGS] build static libraries [default=no] - --enable-shared[=PKGS] build shared libraries [default=yes] - --enable-fast-install[=PKGS] - optimize for fast installation [default=yes] - --disable-libtool-lock avoid locking (might break parallel builds) - --disable-nls don't use NLS - -Optional Packages: - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --with-gnu-ld assume the C compiler uses GNU ld [default=no] - --with-pic try to use only PIC/non-PIC objects [default=use - both] - --with-tags[=TAGS] include additional configurations [automatic] - --with-locale-dir=DIR Location of the locale file(s) - PREFIX/share/locale - --with-x use the X Window System - -Some influential environment variables: - CC C compiler command - CFLAGS C compiler flags - LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a - nonstandard directory <lib dir> - LIBS libraries to pass to the linker, e.g. -l<library> - CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I<include dir> if - you have headers in a nonstandard directory <include dir> - CPP C preprocessor - CXX C++ compiler command - CXXFLAGS C++ compiler flags - CXXCPP C++ preprocessor - F77 Fortran 77 compiler command - FFLAGS Fortran 77 compiler flags - XMKMF Path to xmkmf, Makefile generator for X Window System - -Use these variables to override the choices made by `configure' or to help -it to find libraries and programs with nonstandard names/locations. - -_ACEOF -ac_status=$? -fi - -if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d "$ac_dir" || continue - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - cd "$ac_dir" || { ac_status=$?; continue; } - # Check for guested configure. - if test -f "$ac_srcdir/configure.gnu"; then - echo && - $SHELL "$ac_srcdir/configure.gnu" --help=recursive - elif test -f "$ac_srcdir/configure"; then - echo && - $SHELL "$ac_srcdir/configure" --help=recursive - else - $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi || ac_status=$? - cd "$ac_pwd" || { ac_status=$?; break; } - done -fi - -test -n "$ac_init_help" && exit $ac_status -if $ac_init_version; then - cat <<\_ACEOF -configure -generated by GNU Autoconf 2.61a - -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. -This configure script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it. -_ACEOF - exit -fi -cat >config.log <<_ACEOF -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. - -It was created by $as_me, which was -generated by GNU Autoconf 2.61a. Invocation command line was - - $ $0 $@ - -_ACEOF -exec 5>>config.log -{ -cat <<_ASUNAME -## --------- ## -## Platform. ## -## --------- ## - -hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` - -/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` -/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` -/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` -/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` - -_ASUNAME - -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - $as_echo "PATH: $as_dir" -done -IFS=$as_save_IFS - -} >&5 - -cat >&5 <<_ACEOF - - -## ----------- ## -## Core tests. ## -## ----------- ## - -_ACEOF - - -# Keep a trace of the command line. -# Strip out --no-create and --no-recursion so they do not pile up. -# Strip out --silent because we don't want to record it for future runs. -# Also quote any args containing shell meta-characters. -# Make two passes to allow for proper duplicate-argument suppression. -ac_configure_args= -ac_configure_args0= -ac_configure_args1= -ac_must_keep_next=false -for ac_pass in 1 2 -do - for ac_arg - do - case $ac_arg in - -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - continue ;; - *\'*) - ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - case $ac_pass in - 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; - 2) - ac_configure_args1="$ac_configure_args1 '$ac_arg'" - if test $ac_must_keep_next = true; then - ac_must_keep_next=false # Got value, back to normal. - else - case $ac_arg in - *=* | --config-cache | -C | -disable-* | --disable-* \ - | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ - | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ - | -with-* | --with-* | -without-* | --without-* | --x) - case "$ac_configure_args0 " in - "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; - esac - ;; - -* ) ac_must_keep_next=true ;; - esac - fi - ac_configure_args="$ac_configure_args '$ac_arg'" - ;; - esac - done -done -$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } -$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } - -# When interrupted or exit'd, cleanup temporary files, and complete -# config.log. We remove comments because anyway the quotes in there -# would cause problems or look ugly. -# WARNING: Use '\'' to represent an apostrophe within the trap. -# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. -trap 'exit_status=$? - # Save into config.log some information that might help in debugging. - { - echo - - cat <<\_ASBOX -## ---------------- ## -## Cache variables. ## -## ---------------- ## -_ASBOX - echo - # The following way of writing the cache mishandles newlines in values, -( - for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 -$as_echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) $as_unset $ac_var ;; - esac ;; - esac - done - (set) 2>&1 | - case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - sed -n \ - "s/'\''/'\''\\\\'\'''\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" - ;; #( - *) - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) - echo - - cat <<\_ASBOX -## ----------------- ## -## Output variables. ## -## ----------------- ## -_ASBOX - echo - for ac_var in $ac_subst_vars - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - - if test -n "$ac_subst_files"; then - cat <<\_ASBOX -## ------------------- ## -## File substitutions. ## -## ------------------- ## -_ASBOX - echo - for ac_var in $ac_subst_files - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - fi - - if test -s confdefs.h; then - cat <<\_ASBOX -## ----------- ## -## confdefs.h. ## -## ----------- ## -_ASBOX - echo - cat confdefs.h - echo - fi - test "$ac_signal" != 0 && - $as_echo "$as_me: caught signal $ac_signal" - $as_echo "$as_me: exit $exit_status" - } >&5 - rm -f core *.core core.conftest.* && - rm -f -r conftest* confdefs* conf$$* $ac_clean_files && - exit $exit_status -' 0 -for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal -done -ac_signal=0 - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -f -r conftest* confdefs.h - -# Predefined preprocessor variables. - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_NAME "$PACKAGE_NAME" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_TARNAME "$PACKAGE_TARNAME" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_VERSION "$PACKAGE_VERSION" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_STRING "$PACKAGE_STRING" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" -_ACEOF - - -# Let the site file select an alternate cache file if it wants to. -# Prefer explicitly selected file to automatically selected ones. -if test -n "$CONFIG_SITE"; then - set x "$CONFIG_SITE" -elif test "x$prefix" != xNONE; then - set x "$prefix/share/config.site" "$prefix/etc/config.site" -else - set x "$ac_default_prefix/share/config.site" \ - "$ac_default_prefix/etc/config.site" -fi -shift -for ac_site_file -do - if test -r "$ac_site_file"; then - { $as_echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 -$as_echo "$as_me: loading site script $ac_site_file" >&6;} - sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" - fi -done - -if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special - # files actually), so we avoid doing that. - if test -f "$cache_file"; then - { $as_echo "$as_me:$LINENO: loading cache $cache_file" >&5 -$as_echo "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . "$cache_file";; - *) . "./$cache_file";; - esac - fi -else - { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5 -$as_echo "$as_me: creating cache $cache_file" >&6;} - >$cache_file -fi - -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in $ac_precious_vars; do - eval ac_old_set=\$ac_cv_env_${ac_var}_set - eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val=\$ac_cv_env_${ac_var}_value - eval ac_new_val=\$ac_env_${ac_var}_value - case $ac_old_set,$ac_new_set in - set,) - { $as_echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { $as_echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,);; - *) - if test "x$ac_old_val" != "x$ac_new_val"; then - { $as_echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 -$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - { $as_echo "$as_me:$LINENO: former value: $ac_old_val" >&5 -$as_echo "$as_me: former value: $ac_old_val" >&2;} - { $as_echo "$as_me:$LINENO: current value: $ac_new_val" >&5 -$as_echo "$as_me: current value: $ac_new_val" >&2;} - ac_cache_corrupted=: - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; - *) ac_arg=$ac_var=$ac_new_val ;; - esac - case " $ac_configure_args " in - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { $as_echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 -$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} - { { $as_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 -$as_echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} - { (exit 1); exit 1; }; } -fi - - - - - - - - - - - - - - - - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - -srcdir=`cd $srcdir; pwd` - -# Check whether --enable-static was given. -if test "${enable_static+set}" = set; then - enableval=$enable_static; p=${PACKAGE-default} - case $enableval in - yes) enable_static=yes ;; - no) enable_static=no ;; - *) - enable_static=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_static=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac -else - enable_static=no -fi - - - - - -# Check whether --enable-shared was given. -if test "${enable_shared+set}" = set; then - enableval=$enable_shared; p=${PACKAGE-default} - case $enableval in - yes) enable_shared=yes ;; - no) enable_shared=no ;; - *) - enable_shared=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_shared=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac -else - enable_shared=yes -fi - - -# Check whether --enable-fast-install was given. -if test "${enable_fast_install+set}" = set; then - enableval=$enable_fast_install; p=${PACKAGE-default} - case $enableval in - yes) enable_fast_install=yes ;; - no) enable_fast_install=no ;; - *) - enable_fast_install=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_fast_install=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac -else - enable_fast_install=yes -fi - - -ac_aux_dir= -for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do - if test -f "$ac_dir/install-sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f "$ac_dir/install.sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - elif test -f "$ac_dir/shtool"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/shtool install -c" - break - fi -done -if test -z "$ac_aux_dir"; then - { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5 -$as_echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;} - { (exit 1); exit 1; }; } -fi - -# These three variables are undocumented and unsupported, -# and are intended to be withdrawn in a future Autoconf release. -# They can cause serious problems if a builder's source tree is in a directory -# whose full name contains unusual characters. -ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. -ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. -ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. - - -# Make sure we can run config.sub. -$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || - { { $as_echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 -$as_echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;} - { (exit 1); exit 1; }; } - -{ $as_echo "$as_me:$LINENO: checking build system type" >&5 -$as_echo_n "checking build system type... " >&6; } -if test "${ac_cv_build+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_build_alias=$build_alias -test "x$ac_build_alias" = x && - ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` -test "x$ac_build_alias" = x && - { { $as_echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 -$as_echo "$as_me: error: cannot guess build type; you must specify one" >&2;} - { (exit 1); exit 1; }; } -ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || - { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 -$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;} - { (exit 1); exit 1; }; } - -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_build" >&5 -$as_echo "$ac_cv_build" >&6; } -case $ac_cv_build in -*-*-*) ;; -*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 -$as_echo "$as_me: error: invalid value of canonical build" >&2;} - { (exit 1); exit 1; }; };; -esac -build=$ac_cv_build -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_build -shift -build_cpu=$1 -build_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -build_os=$* -IFS=$ac_save_IFS -case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac - - -{ $as_echo "$as_me:$LINENO: checking host system type" >&5 -$as_echo_n "checking host system type... " >&6; } -if test "${ac_cv_host+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test "x$host_alias" = x; then - ac_cv_host=$ac_cv_build -else - ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || - { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 -$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} - { (exit 1); exit 1; }; } -fi - -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_host" >&5 -$as_echo "$ac_cv_host" >&6; } -case $ac_cv_host in -*-*-*) ;; -*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 -$as_echo "$as_me: error: invalid value of canonical host" >&2;} - { (exit 1); exit 1; }; };; -esac -host=$ac_cv_host -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_host -shift -host_cpu=$1 -host_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -host_os=$* -IFS=$ac_save_IFS -case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:$LINENO: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -$as_echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:$LINENO: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:$LINENO: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:$LINENO: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl.exe -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -$as_echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -fi - -fi - - -test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } - -# Provide some information about the compiler. -$as_echo "$as_me:$LINENO: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -{ (ac_try="$ac_compiler --version >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler --version >&5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -v >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler -v >&5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -V >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler -V >&5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.exe b.out" -# Try to create an executable without -o first, disregard a.out. -# It will help us diagnose broken compilers, and finding out an intuition -# of exeext. -{ $as_echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 -$as_echo_n "checking for C compiler default output file name... " >&6; } -ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` -# -# List of possible output files, starting from the most likely. -# The algorithm is not robust to junk in `.', hence go to wildcards (a.*) -# only as a last resort. b.out is created by i960 compilers. -ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out' -# -# The IRIX 6 linker writes into existing files which may not be -# executable, retaining their permissions. Remove them first so a -# subsequent execution test works. -ac_rmfiles= -for ac_file in $ac_files -do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; - * ) ac_rmfiles="$ac_rmfiles $ac_file";; - esac -done -rm -f $ac_rmfiles - -if { (ac_try="$ac_link_default" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link_default") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. -# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' -# in a Makefile. We should not override ac_cv_exeext if it was cached, -# so that the user can short-circuit this test for compilers unknown to -# Autoconf. -for ac_file in $ac_files '' -do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) - ;; - [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) - if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; - then :; else - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - fi - # We set ac_cv_exeext here because the later test for it is not - # safe: cross compilers may not add the suffix if given an `-o' - # argument, so we may need to know it at that point already. - # Even if this section looks crufty: it has the advantage of - # actually working. - break;; - * ) - break;; - esac -done -test "$ac_cv_exeext" = no && ac_cv_exeext= - -else - ac_file='' -fi - -{ $as_echo "$as_me:$LINENO: result: $ac_file" >&5 -$as_echo "$ac_file" >&6; } -if test -z "$ac_file"; then - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:$LINENO: error: C compiler cannot create executables -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: C compiler cannot create executables -See \`config.log' for more details." >&2;} - { (exit 77); exit 77; }; } -fi - -ac_exeext=$ac_cv_exeext - -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:$LINENO: checking whether the C compiler works" >&5 -$as_echo_n "checking whether the C compiler works... " >&6; } -# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 -# If not cross compiling, check that we can run a simple program. -if test "$cross_compiling" != yes; then - if { ac_try='./$ac_file' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { $as_echo "$as_me:$LINENO: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } - fi - fi -fi -{ $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } - -rm -f a.out a.exe conftest$ac_cv_exeext b.out -ac_clean_files=$ac_clean_files_save -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 -$as_echo_n "checking whether we are cross compiling... " >&6; } -{ $as_echo "$as_me:$LINENO: result: $cross_compiling" >&5 -$as_echo "$cross_compiling" >&6; } - -{ $as_echo "$as_me:$LINENO: checking for suffix of executables" >&5 -$as_echo_n "checking for suffix of executables... " >&6; } -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - # If both `conftest.exe' and `conftest' are `present' (well, observable) -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -# work properly (i.e., refer to `conftest.exe'), while it won't with -# `rm'. -for ac_file in conftest.exe conftest conftest.*; do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - break;; - * ) break;; - esac -done -else - { { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - -rm -f conftest$ac_cv_exeext -{ $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 -$as_echo "$ac_cv_exeext" >&6; } - -rm -f conftest.$ac_ext -EXEEXT=$ac_cv_exeext -ac_exeext=$EXEEXT -{ $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5 -$as_echo_n "checking for suffix of object files... " >&6; } -if test "${ac_cv_objext+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.o conftest.obj -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - for ac_file in conftest.o conftest.obj conftest.*; do - test -f "$ac_file" || continue; - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: cannot compute suffix of object files: cannot compile -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - -rm -f conftest.$ac_cv_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 -$as_echo "$ac_cv_objext" >&6; } -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if test "${ac_cv_c_compiler_gnu+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_compiler_gnu=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_compiler_gnu=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GCC=yes -else - GCC= -fi -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 -$as_echo_n "checking whether $CC accepts -g... " >&6; } -if test "${ac_cv_prog_cc_g+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_prog_cc_g=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - CFLAGS="" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - : -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_prog_cc_g=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if test "${ac_cv_prog_cc_c89+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no -ac_save_CC=$CC -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <stdarg.h> -#include <stdio.h> -#include <sys/types.h> -#include <sys/stat.h> -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_prog_cc_c89=$ac_arg -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:$LINENO: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:$LINENO: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -{ $as_echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 -$as_echo_n "checking for a sed that does not truncate output... " >&6; } -if test "${lt_cv_path_SED+set}" = set; then - $as_echo_n "(cached) " >&6 -else - # Loop through the user's path and test for sed and gsed. -# Then use that list of sed's as ones to test for truncation. -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for lt_ac_prog in sed gsed; do - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$lt_ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$lt_ac_prog$ac_exec_ext"; }; then - lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" - fi - done - done -done -IFS=$as_save_IFS -lt_ac_max=0 -lt_ac_count=0 -# Add /usr/xpg4/bin/sed as it is typically found on Solaris -# along with /bin/sed that truncates output. -for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do - test ! -f $lt_ac_sed && continue - cat /dev/null > conftest.in - lt_ac_count=0 - echo $ECHO_N "0123456789$ECHO_C" >conftest.in - # Check for GNU sed and select it if it is found. - if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then - lt_cv_path_SED=$lt_ac_sed - break - fi - while true; do - cat conftest.in conftest.in >conftest.tmp - mv conftest.tmp conftest.in - cp conftest.in conftest.nl - echo >>conftest.nl - $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break - cmp -s conftest.out conftest.nl || break - # 10000 chars as input seems more than enough - test $lt_ac_count -gt 10 && break - lt_ac_count=`expr $lt_ac_count + 1` - if test $lt_ac_count -gt $lt_ac_max; then - lt_ac_max=$lt_ac_count - lt_cv_path_SED=$lt_ac_sed - fi - done -done - -fi - -SED=$lt_cv_path_SED - -{ $as_echo "$as_me:$LINENO: result: $SED" >&5 -$as_echo "$SED" >&6; } - -{ $as_echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 -$as_echo_n "checking for grep that handles long lines and -e... " >&6; } -if test "${ac_cv_path_GREP+set}" = set; then - $as_echo_n "(cached) " >&6 -else - # Extract the first word of "grep ggrep" to use in msg output -if test -z "$GREP"; then -set dummy grep ggrep; ac_prog_name=$2 -if test "${ac_cv_path_GREP+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_path_GREP_found=false -# Loop through the user's path and test for each of PROGNAME-LIST -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in grep ggrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue - # Check for GNU ac_path_GREP and select it if it is found. - # Check for GNU $ac_path_GREP -case `"$ac_path_GREP" --version 2>&1` in -*GNU*) - ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'GREP' >> "conftest.nl" - "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - ac_count=`expr $ac_count + 1` - if test $ac_count -gt ${ac_path_GREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_GREP="$ac_path_GREP" - ac_path_GREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - - $ac_path_GREP_found && break 3 - done -done - -done -IFS=$as_save_IFS - - -fi - -GREP="$ac_cv_path_GREP" -if test -z "$GREP"; then - { { $as_echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 -$as_echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} - { (exit 1); exit 1; }; } -fi - -else - ac_cv_path_GREP=$GREP -fi - - -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 -$as_echo "$ac_cv_path_GREP" >&6; } - GREP="$ac_cv_path_GREP" - - -{ $as_echo "$as_me:$LINENO: checking for egrep" >&5 -$as_echo_n "checking for egrep... " >&6; } -if test "${ac_cv_path_EGREP+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 - then ac_cv_path_EGREP="$GREP -E" - else - # Extract the first word of "egrep" to use in msg output -if test -z "$EGREP"; then -set dummy egrep; ac_prog_name=$2 -if test "${ac_cv_path_EGREP+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_path_EGREP_found=false -# Loop through the user's path and test for each of PROGNAME-LIST -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in egrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue - # Check for GNU ac_path_EGREP and select it if it is found. - # Check for GNU $ac_path_EGREP -case `"$ac_path_EGREP" --version 2>&1` in -*GNU*) - ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'EGREP' >> "conftest.nl" - "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - ac_count=`expr $ac_count + 1` - if test $ac_count -gt ${ac_path_EGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_EGREP="$ac_path_EGREP" - ac_path_EGREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - - $ac_path_EGREP_found && break 3 - done -done - -done -IFS=$as_save_IFS - - -fi - -EGREP="$ac_cv_path_EGREP" -if test -z "$EGREP"; then - { { $as_echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 -$as_echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} - { (exit 1); exit 1; }; } -fi - -else - ac_cv_path_EGREP=$EGREP -fi - - - fi -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 -$as_echo "$ac_cv_path_EGREP" >&6; } - EGREP="$ac_cv_path_EGREP" - - - -# Check whether --with-gnu-ld was given. -if test "${with_gnu_ld+set}" = set; then - withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes -else - with_gnu_ld=no -fi - -ac_prog=ld -if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - { $as_echo "$as_me:$LINENO: checking for ld used by $CC" >&5 -$as_echo_n "checking for ld used by $CC... " >&6; } - case $host in - *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw - ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; - *) - ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; - esac - case $ac_prog in - # Accept absolute paths. - [\\/]* | ?:[\\/]*) - re_direlt='/[^/][^/]*/\.\./' - # Canonicalize the pathname of ld - ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` - while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do - ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` - done - test -z "$LD" && LD="$ac_prog" - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac -elif test "$with_gnu_ld" = yes; then - { $as_echo "$as_me:$LINENO: checking for GNU ld" >&5 -$as_echo_n "checking for GNU ld... " >&6; } -else - { $as_echo "$as_me:$LINENO: checking for non-GNU ld" >&5 -$as_echo_n "checking for non-GNU ld... " >&6; } -fi -if test "${lt_cv_path_LD+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -z "$LD"; then - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - lt_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some variants of GNU ld only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in - *GNU* | *'with BFD'*) - test "$with_gnu_ld" != no && break - ;; - *) - test "$with_gnu_ld" != yes && break - ;; - esac - fi - done - IFS="$lt_save_ifs" -else - lt_cv_path_LD="$LD" # Let the user override the test with a path. -fi -fi - -LD="$lt_cv_path_LD" -if test -n "$LD"; then - { $as_echo "$as_me:$LINENO: result: $LD" >&5 -$as_echo "$LD" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi -test -z "$LD" && { { $as_echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 -$as_echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} - { (exit 1); exit 1; }; } -{ $as_echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 -$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } -if test "${lt_cv_prog_gnu_ld+set}" = set; then - $as_echo_n "(cached) " >&6 -else - # I'd rather use --version here, but apparently some GNU lds only accept -v. -case `$LD -v 2>&1 </dev/null` in -*GNU* | *'with BFD'*) - lt_cv_prog_gnu_ld=yes - ;; -*) - lt_cv_prog_gnu_ld=no - ;; -esac -fi -{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5 -$as_echo "$lt_cv_prog_gnu_ld" >&6; } -with_gnu_ld=$lt_cv_prog_gnu_ld - - -{ $as_echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5 -$as_echo_n "checking for $LD option to reload object files... " >&6; } -if test "${lt_cv_ld_reload_flag+set}" = set; then - $as_echo_n "(cached) " >&6 -else - lt_cv_ld_reload_flag='-r' -fi -{ $as_echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 -$as_echo "$lt_cv_ld_reload_flag" >&6; } -reload_flag=$lt_cv_ld_reload_flag -case $reload_flag in -"" | " "*) ;; -*) reload_flag=" $reload_flag" ;; -esac -reload_cmds='$LD$reload_flag -o $output$reload_objs' -case $host_os in - darwin*) - if test "$GCC" = yes; then - reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' - else - reload_cmds='$LD$reload_flag -o $output$reload_objs' - fi - ;; -esac - -{ $as_echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5 -$as_echo_n "checking for BSD-compatible nm... " >&6; } -if test "${lt_cv_path_NM+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$NM"; then - # Let the user override the test. - lt_cv_path_NM="$NM" -else - lt_nm_to_check="${ac_tool_prefix}nm" - if test -n "$ac_tool_prefix" && test "$build" = "$host"; then - lt_nm_to_check="$lt_nm_to_check nm" - fi - for lt_tmp_nm in $lt_nm_to_check; do - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - tmp_nm="$ac_dir/$lt_tmp_nm" - if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then - # Check to see if the nm accepts a BSD-compat flag. - # Adding the `sed 1q' prevents false positives on HP-UX, which says: - # nm: unknown option "B" ignored - # Tru64's nm complains that /dev/null is an invalid object file - case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in - */dev/null* | *'Invalid file or object type'*) - lt_cv_path_NM="$tmp_nm -B" - break - ;; - *) - case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in - */dev/null*) - lt_cv_path_NM="$tmp_nm -p" - break - ;; - *) - lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but - continue # so that we can try to find one that supports BSD flags - ;; - esac - ;; - esac - fi - done - IFS="$lt_save_ifs" - done - test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm -fi -fi -{ $as_echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5 -$as_echo "$lt_cv_path_NM" >&6; } -NM="$lt_cv_path_NM" - -{ $as_echo "$as_me:$LINENO: checking whether ln -s works" >&5 -$as_echo_n "checking whether ln -s works... " >&6; } -LN_S=$as_ln_s -if test "$LN_S" = "ln -s"; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no, using $LN_S" >&5 -$as_echo "no, using $LN_S" >&6; } -fi - -{ $as_echo "$as_me:$LINENO: checking how to recognize dependent libraries" >&5 -$as_echo_n "checking how to recognize dependent libraries... " >&6; } -if test "${lt_cv_deplibs_check_method+set}" = set; then - $as_echo_n "(cached) " >&6 -else - lt_cv_file_magic_cmd='$MAGIC_CMD' -lt_cv_file_magic_test_file= -lt_cv_deplibs_check_method='unknown' -# Need to set the preceding variable on all platforms that support -# interlibrary dependencies. -# 'none' -- dependencies not supported. -# `unknown' -- same as none, but documents that we really don't know. -# 'pass_all' -- all dependencies passed with no checks. -# 'test_compile' -- check by making test program. -# 'file_magic [[regex]]' -- check by looking for files in library path -# which responds to the $file_magic_cmd with a given extended regex. -# If you have `file' or equivalent on your system and you're not sure -# whether `pass_all' will *always* work, you probably want this one. - -case $host_os in -aix4* | aix5*) - lt_cv_deplibs_check_method=pass_all - ;; - -beos*) - lt_cv_deplibs_check_method=pass_all - ;; - -bsdi[45]*) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' - lt_cv_file_magic_cmd='/usr/bin/file -L' - lt_cv_file_magic_test_file=/shlib/libc.so - ;; - -cygwin*) - # func_win32_libid is a shell function defined in ltmain.sh - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - ;; - -mingw* | pw32*) - # Base MSYS/MinGW do not provide the 'file' command needed by - # func_win32_libid shell function, so use a weaker test based on 'objdump', - # unless we find 'file', for example because we are cross-compiling. - if ( file / ) >/dev/null 2>&1; then - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - else - lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' - lt_cv_file_magic_cmd='$OBJDUMP -f' - fi - ;; - -darwin* | rhapsody*) - lt_cv_deplibs_check_method=pass_all - ;; - -freebsd* | dragonfly*) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - case $host_cpu in - i*86 ) - # Not sure whether the presence of OpenBSD here was a mistake. - # Let's accept both of them until this is cleared up. - lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` - ;; - esac - else - lt_cv_deplibs_check_method=pass_all - fi - ;; - -gnu*) - lt_cv_deplibs_check_method=pass_all - ;; - -hpux10.20* | hpux11*) - lt_cv_file_magic_cmd=/usr/bin/file - case $host_cpu in - ia64*) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' - lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so - ;; - hppa*64*) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]' - lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl - ;; - *) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' - lt_cv_file_magic_test_file=/usr/lib/libc.sl - ;; - esac - ;; - -interix[3-9]*) - # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' - ;; - -irix5* | irix6* | nonstopux*) - case $LD in - *-32|*"-32 ") libmagic=32-bit;; - *-n32|*"-n32 ") libmagic=N32;; - *-64|*"-64 ") libmagic=64-bit;; - *) libmagic=never-match;; - esac - lt_cv_deplibs_check_method=pass_all - ;; - -# This must be Linux ELF. -linux* | k*bsd*-gnu) - lt_cv_deplibs_check_method=pass_all - ;; - -netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' - fi - ;; - -newos6*) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=/usr/lib/libnls.so - ;; - -nto-qnx*) - lt_cv_deplibs_check_method=unknown - ;; - -openbsd*) - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' - fi - ;; - -osf3* | osf4* | osf5*) - lt_cv_deplibs_check_method=pass_all - ;; - -rdos*) - lt_cv_deplibs_check_method=pass_all - ;; - -solaris*) - lt_cv_deplibs_check_method=pass_all - ;; - -sysv4 | sysv4.3*) - case $host_vendor in - motorola) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` - ;; - ncr) - lt_cv_deplibs_check_method=pass_all - ;; - sequent) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' - ;; - sni) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" - lt_cv_file_magic_test_file=/lib/libc.so - ;; - siemens) - lt_cv_deplibs_check_method=pass_all - ;; - pc) - lt_cv_deplibs_check_method=pass_all - ;; - esac - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - lt_cv_deplibs_check_method=pass_all - ;; -esac - -fi -{ $as_echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 -$as_echo "$lt_cv_deplibs_check_method" >&6; } -file_magic_cmd=$lt_cv_file_magic_cmd -deplibs_check_method=$lt_cv_deplibs_check_method -test -z "$deplibs_check_method" && deplibs_check_method=unknown - - - - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - -# Allow CC to be a program name with arguments. -compiler=$CC - - -# Check whether --enable-libtool-lock was given. -if test "${enable_libtool_lock+set}" = set; then - enableval=$enable_libtool_lock; -fi - -test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes - -# Some flags need to be propagated to the compiler or linker for good -# libtool support. -case $host in -ia64-*-hpux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - case `/usr/bin/file conftest.$ac_objext` in - *ELF-32*) - HPUX_IA64_MODE="32" - ;; - *ELF-64*) - HPUX_IA64_MODE="64" - ;; - esac - fi - rm -rf conftest* - ;; -*-*-irix6*) - # Find out which ABI we are using. - echo '#line 3737 "configure"' > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - if test "$lt_cv_prog_gnu_ld" = yes; then - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -melf32bsmip" - ;; - *N32*) - LD="${LD-ld} -melf32bmipn32" - ;; - *64-bit*) - LD="${LD-ld} -melf64bmip" - ;; - esac - else - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -32" - ;; - *N32*) - LD="${LD-ld} -n32" - ;; - *64-bit*) - LD="${LD-ld} -64" - ;; - esac - fi - fi - rm -rf conftest* - ;; - -x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ -s390*-*linux*|sparc*-*linux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - case `/usr/bin/file conftest.o` in - *32-bit*) - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_i386_fbsd" - ;; - x86_64-*linux*) - LD="${LD-ld} -m elf_i386" - ;; - ppc64-*linux*|powerpc64-*linux*) - LD="${LD-ld} -m elf32ppclinux" - ;; - s390x-*linux*) - LD="${LD-ld} -m elf_s390" - ;; - sparc64-*linux*) - LD="${LD-ld} -m elf32_sparc" - ;; - esac - ;; - *64-bit*) - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_x86_64_fbsd" - ;; - x86_64-*linux*) - LD="${LD-ld} -m elf_x86_64" - ;; - ppc*-*linux*|powerpc*-*linux*) - LD="${LD-ld} -m elf64ppc" - ;; - s390*-*linux*) - LD="${LD-ld} -m elf64_s390" - ;; - sparc*-*linux*) - LD="${LD-ld} -m elf64_sparc" - ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; - -*-*-sco3.2v5*) - # On SCO OpenServer 5, we need -belf to get full-featured binaries. - SAVE_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -belf" - { $as_echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5 -$as_echo_n "checking whether the C compiler needs -belf... " >&6; } -if test "${lt_cv_cc_needs_belf+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - lt_cv_cc_needs_belf=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - lt_cv_cc_needs_belf=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -fi -{ $as_echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 -$as_echo "$lt_cv_cc_needs_belf" >&6; } - if test x"$lt_cv_cc_needs_belf" != x"yes"; then - # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf - CFLAGS="$SAVE_CFLAGS" - fi - ;; -sparc*-*solaris*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - case `/usr/bin/file conftest.o` in - *64-bit*) - case $lt_cv_prog_gnu_ld in - yes*) LD="${LD-ld} -m elf64_sparc" ;; - *) LD="${LD-ld} -64" ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; - -*-*-cygwin* | *-*-mingw* | *-*-pw32*) - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. -set dummy ${ac_tool_prefix}dlltool; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_DLLTOOL+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$DLLTOOL"; then - ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -DLLTOOL=$ac_cv_prog_DLLTOOL -if test -n "$DLLTOOL"; then - { $as_echo "$as_me:$LINENO: result: $DLLTOOL" >&5 -$as_echo "$DLLTOOL" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_DLLTOOL"; then - ac_ct_DLLTOOL=$DLLTOOL - # Extract the first word of "dlltool", so it can be a program name with args. -set dummy dlltool; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_DLLTOOL"; then - ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_DLLTOOL="dlltool" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL -if test -n "$ac_ct_DLLTOOL"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_DLLTOOL" >&5 -$as_echo "$ac_ct_DLLTOOL" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_DLLTOOL" = x; then - DLLTOOL="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -$as_echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} -ac_tool_warned=yes ;; -esac - DLLTOOL=$ac_ct_DLLTOOL - fi -else - DLLTOOL="$ac_cv_prog_DLLTOOL" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. -set dummy ${ac_tool_prefix}as; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_AS+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$AS"; then - ac_cv_prog_AS="$AS" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_AS="${ac_tool_prefix}as" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -AS=$ac_cv_prog_AS -if test -n "$AS"; then - { $as_echo "$as_me:$LINENO: result: $AS" >&5 -$as_echo "$AS" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_AS"; then - ac_ct_AS=$AS - # Extract the first word of "as", so it can be a program name with args. -set dummy as; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_AS+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_AS"; then - ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_AS="as" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_AS=$ac_cv_prog_ac_ct_AS -if test -n "$ac_ct_AS"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_AS" >&5 -$as_echo "$ac_ct_AS" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_AS" = x; then - AS="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -$as_echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} -ac_tool_warned=yes ;; -esac - AS=$ac_ct_AS - fi -else - AS="$ac_cv_prog_AS" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. -set dummy ${ac_tool_prefix}objdump; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_OBJDUMP+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$OBJDUMP"; then - ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -OBJDUMP=$ac_cv_prog_OBJDUMP -if test -n "$OBJDUMP"; then - { $as_echo "$as_me:$LINENO: result: $OBJDUMP" >&5 -$as_echo "$OBJDUMP" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_OBJDUMP"; then - ac_ct_OBJDUMP=$OBJDUMP - # Extract the first word of "objdump", so it can be a program name with args. -set dummy objdump; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_OBJDUMP"; then - ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_OBJDUMP="objdump" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP -if test -n "$ac_ct_OBJDUMP"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_OBJDUMP" >&5 -$as_echo "$ac_ct_OBJDUMP" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_OBJDUMP" = x; then - OBJDUMP="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -$as_echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} -ac_tool_warned=yes ;; -esac - OBJDUMP=$ac_ct_OBJDUMP - fi -else - OBJDUMP="$ac_cv_prog_OBJDUMP" -fi - - ;; - -esac - -need_locks="$enable_libtool_lock" - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 -$as_echo_n "checking how to run the C preprocessor... " >&6; } -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if test "${ac_cv_prog_CPP+set}" = set; then - $as_echo_n "(cached) " >&6 -else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" - do - ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since - # <limits.h> exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef __STDC__ -# include <limits.h> -#else -# include <assert.h> -#endif - Syntax error -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - : -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Broken: fails on valid input. -continue -fi - -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <ac_nonexistent.h> -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - # Broken: success on invalid input. -continue -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Passes both tests. -ac_preproc_ok=: -break -fi - -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - break -fi - - done - ac_cv_prog_CPP=$CPP - -fi - CPP=$ac_cv_prog_CPP -else - ac_cv_prog_CPP=$CPP -fi -{ $as_echo "$as_me:$LINENO: result: $CPP" >&5 -$as_echo "$CPP" >&6; } -ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since - # <limits.h> exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef __STDC__ -# include <limits.h> -#else -# include <assert.h> -#endif - Syntax error -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - : -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Broken: fails on valid input. -continue -fi - -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <ac_nonexistent.h> -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - # Broken: success on invalid input. -continue -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Passes both tests. -ac_preproc_ok=: -break -fi - -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - : -else - { { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -{ $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5 -$as_echo_n "checking for ANSI C header files... " >&6; } -if test "${ac_cv_header_stdc+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <stdlib.h> -#include <stdarg.h> -#include <string.h> -#include <float.h> - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_header_stdc=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_header_stdc=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <string.h> - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then - : -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <stdlib.h> - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then - : -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then - : -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <ctype.h> -#include <stdlib.h> -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - return 2; - return 0; -} -_ACEOF -rm -f conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - $as_echo "$as_me: program exited with status $ac_status" >&5 -$as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_header_stdc=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi - - -fi -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 -$as_echo "$ac_cv_header_stdc" >&6; } -if test $ac_cv_header_stdc = yes; then - -cat >>confdefs.h <<\_ACEOF -#define STDC_HEADERS 1 -_ACEOF - -fi - -# On IRIX 5.3, sys/types and inttypes.h are conflicting. - - - - - - - - - -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h -do -as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 -$as_echo_n "checking for $ac_header... " >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default - -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - eval "$as_ac_Header=yes" -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - eval "$as_ac_Header=no" -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -ac_res=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if test `eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - -for ac_header in dlfcn.h -do -as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 -$as_echo_n "checking for $ac_header... " >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -fi -ac_res=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 -$as_echo_n "checking $ac_header usability... " >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_header_compiler=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_compiler=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } - -# Is the header present? -{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 -$as_echo_n "checking $ac_header presence... " >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - ac_header_preproc=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi - -rm -f conftest.err conftest.$ac_ext -{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - - ;; -esac -{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 -$as_echo_n "checking for $ac_header... " >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -else - eval "$as_ac_Header=\$ac_header_preproc" -fi -ac_res=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - -fi -if test `eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - -ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu -if test -z "$CXX"; then - if test -n "$CCC"; then - CXX=$CCC - else - if test -n "$ac_tool_prefix"; then - for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CXX+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$CXX"; then - ac_cv_prog_CXX="$CXX" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -CXX=$ac_cv_prog_CXX -if test -n "$CXX"; then - { $as_echo "$as_me:$LINENO: result: $CXX" >&5 -$as_echo "$CXX" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CXX" && break - done -fi -if test -z "$CXX"; then - ac_ct_CXX=$CXX - for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CXX"; then - ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_CXX="$ac_prog" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_CXX=$ac_cv_prog_ac_ct_CXX -if test -n "$ac_ct_CXX"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 -$as_echo "$ac_ct_CXX" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CXX" && break -done - - if test "x$ac_ct_CXX" = x; then - CXX="g++" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -$as_echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} -ac_tool_warned=yes ;; -esac - CXX=$ac_ct_CXX - fi -fi - - fi -fi -# Provide some information about the compiler. -$as_echo "$as_me:$LINENO: checking for C++ compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -{ (ac_try="$ac_compiler --version >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler --version >&5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -v >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler -v >&5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -V >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler -V >&5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - -{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 -$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } -if test "${ac_cv_cxx_compiler_gnu+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_compiler_gnu=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_compiler_gnu=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_cxx_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 -$as_echo "$ac_cv_cxx_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GXX=yes -else - GXX= -fi -ac_test_CXXFLAGS=${CXXFLAGS+set} -ac_save_CXXFLAGS=$CXXFLAGS -{ $as_echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 -$as_echo_n "checking whether $CXX accepts -g... " >&6; } -if test "${ac_cv_prog_cxx_g+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_save_cxx_werror_flag=$ac_cxx_werror_flag - ac_cxx_werror_flag=yes - ac_cv_prog_cxx_g=no - CXXFLAGS="-g" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_prog_cxx_g=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - CXXFLAGS="" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - : -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cxx_werror_flag=$ac_save_cxx_werror_flag - CXXFLAGS="-g" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_prog_cxx_g=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_cxx_werror_flag=$ac_save_cxx_werror_flag -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 -$as_echo "$ac_cv_prog_cxx_g" >&6; } -if test "$ac_test_CXXFLAGS" = set; then - CXXFLAGS=$ac_save_CXXFLAGS -elif test $ac_cv_prog_cxx_g = yes; then - if test "$GXX" = yes; then - CXXFLAGS="-g -O2" - else - CXXFLAGS="-g" - fi -else - if test "$GXX" = yes; then - CXXFLAGS="-O2" - else - CXXFLAGS= - fi -fi -ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - - - -if test -n "$CXX" && ( test "X$CXX" != "Xno" && - ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || - (test "X$CXX" != "Xg++"))) ; then - ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu -{ $as_echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5 -$as_echo_n "checking how to run the C++ preprocessor... " >&6; } -if test -z "$CXXCPP"; then - if test "${ac_cv_prog_CXXCPP+set}" = set; then - $as_echo_n "(cached) " >&6 -else - # Double quotes because CXXCPP needs to be expanded - for CXXCPP in "$CXX -E" "/lib/cpp" - do - ac_preproc_ok=false -for ac_cxx_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since - # <limits.h> exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef __STDC__ -# include <limits.h> -#else -# include <assert.h> -#endif - Syntax error -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || - test ! -s conftest.err - }; then - : -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Broken: fails on valid input. -continue -fi - -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <ac_nonexistent.h> -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || - test ! -s conftest.err - }; then - # Broken: success on invalid input. -continue -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Passes both tests. -ac_preproc_ok=: -break -fi - -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - break -fi - - done - ac_cv_prog_CXXCPP=$CXXCPP - -fi - CXXCPP=$ac_cv_prog_CXXCPP -else - ac_cv_prog_CXXCPP=$CXXCPP -fi -{ $as_echo "$as_me:$LINENO: result: $CXXCPP" >&5 -$as_echo "$CXXCPP" >&6; } -ac_preproc_ok=false -for ac_cxx_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since - # <limits.h> exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef __STDC__ -# include <limits.h> -#else -# include <assert.h> -#endif - Syntax error -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || - test ! -s conftest.err - }; then - : -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Broken: fails on valid input. -continue -fi - -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <ac_nonexistent.h> -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || - test ! -s conftest.err - }; then - # Broken: success on invalid input. -continue -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Passes both tests. -ac_preproc_ok=: -break -fi - -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - : -else - { { $as_echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - -ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - -fi - - -ac_ext=f -ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' -ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_f77_compiler_gnu -if test -n "$ac_tool_prefix"; then - for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_F77+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$F77"; then - ac_cv_prog_F77="$F77" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_F77="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -F77=$ac_cv_prog_F77 -if test -n "$F77"; then - { $as_echo "$as_me:$LINENO: result: $F77" >&5 -$as_echo "$F77" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$F77" && break - done -fi -if test -z "$F77"; then - ac_ct_F77=$F77 - for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_F77+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_F77"; then - ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_F77="$ac_prog" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_F77=$ac_cv_prog_ac_ct_F77 -if test -n "$ac_ct_F77"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_F77" >&5 -$as_echo "$ac_ct_F77" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_F77" && break -done - - if test "x$ac_ct_F77" = x; then - F77="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -$as_echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} -ac_tool_warned=yes ;; -esac - F77=$ac_ct_F77 - fi -fi - - -# Provide some information about the compiler. -$as_echo "$as_me:$LINENO: checking for Fortran 77 compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -{ (ac_try="$ac_compiler --version >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler --version >&5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -v >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler -v >&5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -V >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler -V >&5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -rm -f a.out - -# If we don't use `.F' as extension, the preprocessor is not run on the -# input file. (Note that this only needs to work for GNU compilers.) -ac_save_ext=$ac_ext -ac_ext=F -{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5 -$as_echo_n "checking whether we are using the GNU Fortran 77 compiler... " >&6; } -if test "${ac_cv_f77_compiler_gnu+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF - program main -#ifndef __GNUC__ - choke me -#endif - - end -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_f77_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_compiler_gnu=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_compiler_gnu=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_f77_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5 -$as_echo "$ac_cv_f77_compiler_gnu" >&6; } -ac_ext=$ac_save_ext -ac_test_FFLAGS=${FFLAGS+set} -ac_save_FFLAGS=$FFLAGS -FFLAGS= -{ $as_echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5 -$as_echo_n "checking whether $F77 accepts -g... " >&6; } -if test "${ac_cv_prog_f77_g+set}" = set; then - $as_echo_n "(cached) " >&6 -else - FFLAGS=-g -cat >conftest.$ac_ext <<_ACEOF - program main - - end -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_f77_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_prog_f77_g=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_prog_f77_g=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5 -$as_echo "$ac_cv_prog_f77_g" >&6; } -if test "$ac_test_FFLAGS" = set; then - FFLAGS=$ac_save_FFLAGS -elif test $ac_cv_prog_f77_g = yes; then - if test "x$ac_cv_f77_compiler_gnu" = xyes; then - FFLAGS="-g -O2" - else - FFLAGS="-g" - fi -else - if test "x$ac_cv_f77_compiler_gnu" = xyes; then - FFLAGS="-O2" - else - FFLAGS= - fi -fi - -if test $ac_compiler_gnu = yes; then - G77=yes -else - G77= -fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - -# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! - -# find the maximum length of command line arguments -{ $as_echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5 -$as_echo_n "checking the maximum length of command line arguments... " >&6; } -if test "${lt_cv_sys_max_cmd_len+set}" = set; then - $as_echo_n "(cached) " >&6 -else - i=0 - teststring="ABCD" - - case $build_os in - msdosdjgpp*) - # On DJGPP, this test can blow up pretty badly due to problems in libc - # (any single argument exceeding 2000 bytes causes a buffer overrun - # during glob expansion). Even if it were fixed, the result of this - # check would be larger than it should be. - lt_cv_sys_max_cmd_len=12288; # 12K is about right - ;; - - gnu*) - # Under GNU Hurd, this test is not required because there is - # no limit to the length of command line arguments. - # Libtool will interpret -1 as no limit whatsoever - lt_cv_sys_max_cmd_len=-1; - ;; - - cygwin* | mingw*) - # On Win9x/ME, this test blows up -- it succeeds, but takes - # about 5 minutes as the teststring grows exponentially. - # Worse, since 9x/ME are not pre-emptively multitasking, - # you end up with a "frozen" computer, even though with patience - # the test eventually succeeds (with a max line length of 256k). - # Instead, let's just punt: use the minimum linelength reported by - # all of the supported platforms: 8192 (on NT/2K/XP). - lt_cv_sys_max_cmd_len=8192; - ;; - - amigaos*) - # On AmigaOS with pdksh, this test takes hours, literally. - # So we just punt and use a minimum line length of 8192. - lt_cv_sys_max_cmd_len=8192; - ;; - - netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) - # This has been around since 386BSD, at least. Likely further. - if test -x /sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` - elif test -x /usr/sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` - else - lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs - fi - # And add a safety zone - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` - ;; - - interix*) - # We know the value 262144 and hardcode it with a safety zone (like BSD) - lt_cv_sys_max_cmd_len=196608 - ;; - - osf*) - # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure - # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not - # nice to cause kernel panics so lets avoid the loop below. - # First set a reasonable default. - lt_cv_sys_max_cmd_len=16384 - # - if test -x /sbin/sysconfig; then - case `/sbin/sysconfig -q proc exec_disable_arg_limit` in - *1*) lt_cv_sys_max_cmd_len=-1 ;; - esac - fi - ;; - sco3.2v5*) - lt_cv_sys_max_cmd_len=102400 - ;; - sysv5* | sco5v6* | sysv4.2uw2*) - kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` - if test -n "$kargmax"; then - lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` - else - lt_cv_sys_max_cmd_len=32768 - fi - ;; - *) - lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` - if test -n "$lt_cv_sys_max_cmd_len"; then - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` - else - SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} - while (test "X"`$SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \ - = "XX$teststring") >/dev/null 2>&1 && - new_result=`expr "X$teststring" : ".*" 2>&1` && - lt_cv_sys_max_cmd_len=$new_result && - test $i != 17 # 1/2 MB should be enough - do - i=`expr $i + 1` - teststring=$teststring$teststring - done - teststring= - # Add a significant safety factor because C++ compilers can tack on massive - # amounts of additional arguments before passing them to the linker. - # It appears as though 1/2 is a usable value. - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` - fi - ;; - esac - -fi - -if test -n $lt_cv_sys_max_cmd_len ; then - { $as_echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5 -$as_echo "$lt_cv_sys_max_cmd_len" >&6; } -else - { $as_echo "$as_me:$LINENO: result: none" >&5 -$as_echo "none" >&6; } -fi - - - - - -# Check for command to grab the raw symbol name followed by C symbol from nm. -{ $as_echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5 -$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } -if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then - $as_echo_n "(cached) " >&6 -else - -# These are sane defaults that work on at least a few old systems. -# [They come from Ultrix. What could be older than Ultrix?!! ;)] - -# Character class describing NM global symbol codes. -symcode='[BCDEGRST]' - -# Regexp to match symbols that can be accessed directly from C. -sympat='\([_A-Za-z][_A-Za-z0-9]*\)' - -# Transform an extracted symbol line into a proper C declaration -lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" - -# Transform an extracted symbol line into symbol name and symbol address -lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" - -# Define system-specific variables. -case $host_os in -aix*) - symcode='[BCDT]' - ;; -cygwin* | mingw* | pw32*) - symcode='[ABCDGISTW]' - ;; -hpux*) # Its linker distinguishes data from code symbols - if test "$host_cpu" = ia64; then - symcode='[ABCDEGRST]' - fi - lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" - ;; -linux* | k*bsd*-gnu) - if test "$host_cpu" = ia64; then - symcode='[ABCDGIRSTW]' - lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" - fi - ;; -irix* | nonstopux*) - symcode='[BCDEGRST]' - ;; -osf*) - symcode='[BCDEGQRST]' - ;; -solaris*) - symcode='[BDRT]' - ;; -sco3.2v5*) - symcode='[DT]' - ;; -sysv4.2uw2*) - symcode='[DT]' - ;; -sysv5* | sco5v6* | unixware* | OpenUNIX*) - symcode='[ABDT]' - ;; -sysv4) - symcode='[DFNSTU]' - ;; -esac - -# Handle CRLF in mingw tool chain -opt_cr= -case $build_os in -mingw*) - opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp - ;; -esac - -# If we're using GNU nm, then use its standard symbol codes. -case `$NM -V 2>&1` in -*GNU* | *'with BFD'*) - symcode='[ABCDGIRSTW]' ;; -esac - -# Try without a prefix undercore, then with it. -for ac_symprfx in "" "_"; do - - # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. - symxfrm="\\1 $ac_symprfx\\2 \\2" - - # Write the raw and C identifiers. - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" - - # Check to see that the pipe works correctly. - pipe_works=no - - rm -f conftest* - cat > conftest.$ac_ext <<EOF -#ifdef __cplusplus -extern "C" { -#endif -char nm_test_var; -void nm_test_func(){} -#ifdef __cplusplus -} -#endif -int main(){nm_test_var='a';nm_test_func();return(0);} -EOF - - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - # Now try to grab the symbols. - nlist=conftest.nm - if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5 - (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s "$nlist"; then - # Try sorting and uniquifying the output. - if sort "$nlist" | uniq > "$nlist"T; then - mv -f "$nlist"T "$nlist" - else - rm -f "$nlist"T - fi - - # Make sure that we snagged all the symbols we need. - if grep ' nm_test_var$' "$nlist" >/dev/null; then - if grep ' nm_test_func$' "$nlist" >/dev/null; then - cat <<EOF > conftest.$ac_ext -#ifdef __cplusplus -extern "C" { -#endif - -EOF - # Now generate the symbol file. - eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' - - cat <<EOF >> conftest.$ac_ext -#if defined (__STDC__) && __STDC__ -# define lt_ptr_t void * -#else -# define lt_ptr_t char * -# define const -#endif - -/* The mapping between symbol names and symbols. */ -const struct { - const char *name; - lt_ptr_t address; -} -lt_preloaded_symbols[] = -{ -EOF - $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext - cat <<\EOF >> conftest.$ac_ext - {0, (lt_ptr_t) 0} -}; - -#ifdef __cplusplus -} -#endif -EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext - lt_save_LIBS="$LIBS" - lt_save_CFLAGS="$CFLAGS" - LIBS="conftstm.$ac_objext" - CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext}; then - pipe_works=yes - fi - LIBS="$lt_save_LIBS" - CFLAGS="$lt_save_CFLAGS" - else - echo "cannot find nm_test_func in $nlist" >&5 - fi - else - echo "cannot find nm_test_var in $nlist" >&5 - fi - else - echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 - fi - else - echo "$progname: failed program was:" >&5 - cat conftest.$ac_ext >&5 - fi - rm -f conftest* conftst* - - # Do not use the global_symbol_pipe unless it works. - if test "$pipe_works" = yes; then - break - else - lt_cv_sys_global_symbol_pipe= - fi -done - -fi - -if test -z "$lt_cv_sys_global_symbol_pipe"; then - lt_cv_sys_global_symbol_to_cdecl= -fi -if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then - { $as_echo "$as_me:$LINENO: result: failed" >&5 -$as_echo "failed" >&6; } -else - { $as_echo "$as_me:$LINENO: result: ok" >&5 -$as_echo "ok" >&6; } -fi - -{ $as_echo "$as_me:$LINENO: checking for objdir" >&5 -$as_echo_n "checking for objdir... " >&6; } -if test "${lt_cv_objdir+set}" = set; then - $as_echo_n "(cached) " >&6 -else - rm -f .libs 2>/dev/null -mkdir .libs 2>/dev/null -if test -d .libs; then - lt_cv_objdir=.libs -else - # MS-DOS does not allow filenames that begin with a dot. - lt_cv_objdir=_libs -fi -rmdir .libs 2>/dev/null -fi -{ $as_echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5 -$as_echo "$lt_cv_objdir" >&6; } -objdir=$lt_cv_objdir - - - - - -case $host_os in -aix3*) - # AIX sometimes has problems with the GCC collect2 program. For some - # reason, if we set the COLLECT_NAMES environment variable, the problems - # vanish in a puff of smoke. - if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES - fi - ;; -esac - -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -Xsed='sed -e 1s/^X//' -sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g' - -# Same as above, but do not quote variable references. -double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g' - -# Sed substitution to delay expansion of an escaped shell variable in a -# double_quote_subst'ed string. -delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' - -# Sed substitution to avoid accidental globbing in evaled expressions -no_glob_subst='s/\*/\\\*/g' - -# Constants: -rm="rm -f" - -# Global variables: -default_ofile=libtool -can_build_shared=yes - -# All known linkers require a `.a' archive for static linking (except MSVC, -# which needs '.lib'). -libext=a -ltmain="$ac_aux_dir/ltmain.sh" -ofile="$default_ofile" -with_gnu_ld="$lt_cv_prog_gnu_ld" - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. -set dummy ${ac_tool_prefix}ar; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_AR+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$AR"; then - ac_cv_prog_AR="$AR" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_AR="${ac_tool_prefix}ar" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -AR=$ac_cv_prog_AR -if test -n "$AR"; then - { $as_echo "$as_me:$LINENO: result: $AR" >&5 -$as_echo "$AR" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_AR"; then - ac_ct_AR=$AR - # Extract the first word of "ar", so it can be a program name with args. -set dummy ar; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_AR+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_AR"; then - ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_AR="ar" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_AR=$ac_cv_prog_ac_ct_AR -if test -n "$ac_ct_AR"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 -$as_echo "$ac_ct_AR" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_AR" = x; then - AR="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -$as_echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} -ac_tool_warned=yes ;; -esac - AR=$ac_ct_AR - fi -else - AR="$ac_cv_prog_AR" -fi - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. -set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_RANLIB+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -RANLIB=$ac_cv_prog_RANLIB -if test -n "$RANLIB"; then - { $as_echo "$as_me:$LINENO: result: $RANLIB" >&5 -$as_echo "$RANLIB" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_RANLIB"; then - ac_ct_RANLIB=$RANLIB - # Extract the first word of "ranlib", so it can be a program name with args. -set dummy ranlib; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_RANLIB"; then - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_RANLIB="ranlib" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB -if test -n "$ac_ct_RANLIB"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 -$as_echo "$ac_ct_RANLIB" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_RANLIB" = x; then - RANLIB=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -$as_echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} -ac_tool_warned=yes ;; -esac - RANLIB=$ac_ct_RANLIB - fi -else - RANLIB="$ac_cv_prog_RANLIB" -fi - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -set dummy ${ac_tool_prefix}strip; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_STRIP+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$STRIP"; then - ac_cv_prog_STRIP="$STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_STRIP="${ac_tool_prefix}strip" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - { $as_echo "$as_me:$LINENO: result: $STRIP" >&5 -$as_echo "$STRIP" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_STRIP"; then - ac_ct_STRIP=$STRIP - # Extract the first word of "strip", so it can be a program name with args. -set dummy strip; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_STRIP"; then - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_STRIP="strip" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 -$as_echo "$ac_ct_STRIP" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_STRIP" = x; then - STRIP=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -$as_echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} -ac_tool_warned=yes ;; -esac - STRIP=$ac_ct_STRIP - fi -else - STRIP="$ac_cv_prog_STRIP" -fi - - -old_CC="$CC" -old_CFLAGS="$CFLAGS" - -# Set sane defaults for various variables -test -z "$AR" && AR=ar -test -z "$AR_FLAGS" && AR_FLAGS=cru -test -z "$AS" && AS=as -test -z "$CC" && CC=cc -test -z "$LTCC" && LTCC=$CC -test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS -test -z "$DLLTOOL" && DLLTOOL=dlltool -test -z "$LD" && LD=ld -test -z "$LN_S" && LN_S="ln -s" -test -z "$MAGIC_CMD" && MAGIC_CMD=file -test -z "$NM" && NM=nm -test -z "$SED" && SED=sed -test -z "$OBJDUMP" && OBJDUMP=objdump -test -z "$RANLIB" && RANLIB=: -test -z "$STRIP" && STRIP=: -test -z "$ac_objext" && ac_objext=o - -# Determine commands to create old-style static archives. -old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' -old_postinstall_cmds='chmod 644 $oldlib' -old_postuninstall_cmds= - -if test -n "$RANLIB"; then - case $host_os in - openbsd*) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" - ;; - *) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" - ;; - esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" -fi - -for cc_temp in $compiler""; do - case $cc_temp in - compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; - distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` - - -# Only perform the check for file, if the check method requires it -case $deplibs_check_method in -file_magic*) - if test "$file_magic_cmd" = '$MAGIC_CMD'; then - { $as_echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5 -$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } -if test "${lt_cv_path_MAGIC_CMD+set}" = set; then - $as_echo_n "(cached) " >&6 -else - case $MAGIC_CMD in -[\\/*] | ?:[\\/]*) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. - ;; -*) - lt_save_MAGIC_CMD="$MAGIC_CMD" - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" - for ac_dir in $ac_dummy; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/${ac_tool_prefix}file; then - lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" - if test -n "$file_magic_test_file"; then - case $deplibs_check_method in - "file_magic "*) - file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` - MAGIC_CMD="$lt_cv_path_MAGIC_CMD" - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | - $EGREP "$file_magic_regex" > /dev/null; then - : - else - cat <<EOF 1>&2 - -*** Warning: the command libtool uses to detect shared libraries, -*** $file_magic_cmd, produces output that libtool cannot recognize. -*** The result is that libtool may fail to recognize shared libraries -*** as such. This will affect the creation of libtool libraries that -*** depend on shared libraries, but programs linked with such libtool -*** libraries will work regardless of this problem. Nevertheless, you -*** may want to report the problem to your system manager and/or to -*** bug-libtool@gnu.org - -EOF - fi ;; - esac - fi - break - fi - done - IFS="$lt_save_ifs" - MAGIC_CMD="$lt_save_MAGIC_CMD" - ;; -esac -fi - -MAGIC_CMD="$lt_cv_path_MAGIC_CMD" -if test -n "$MAGIC_CMD"; then - { $as_echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 -$as_echo "$MAGIC_CMD" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - -if test -z "$lt_cv_path_MAGIC_CMD"; then - if test -n "$ac_tool_prefix"; then - { $as_echo "$as_me:$LINENO: checking for file" >&5 -$as_echo_n "checking for file... " >&6; } -if test "${lt_cv_path_MAGIC_CMD+set}" = set; then - $as_echo_n "(cached) " >&6 -else - case $MAGIC_CMD in -[\\/*] | ?:[\\/]*) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. - ;; -*) - lt_save_MAGIC_CMD="$MAGIC_CMD" - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" - for ac_dir in $ac_dummy; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/file; then - lt_cv_path_MAGIC_CMD="$ac_dir/file" - if test -n "$file_magic_test_file"; then - case $deplibs_check_method in - "file_magic "*) - file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` - MAGIC_CMD="$lt_cv_path_MAGIC_CMD" - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | - $EGREP "$file_magic_regex" > /dev/null; then - : - else - cat <<EOF 1>&2 - -*** Warning: the command libtool uses to detect shared libraries, -*** $file_magic_cmd, produces output that libtool cannot recognize. -*** The result is that libtool may fail to recognize shared libraries -*** as such. This will affect the creation of libtool libraries that -*** depend on shared libraries, but programs linked with such libtool -*** libraries will work regardless of this problem. Nevertheless, you -*** may want to report the problem to your system manager and/or to -*** bug-libtool@gnu.org - -EOF - fi ;; - esac - fi - break - fi - done - IFS="$lt_save_ifs" - MAGIC_CMD="$lt_save_MAGIC_CMD" - ;; -esac -fi - -MAGIC_CMD="$lt_cv_path_MAGIC_CMD" -if test -n "$MAGIC_CMD"; then - { $as_echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 -$as_echo "$MAGIC_CMD" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - else - MAGIC_CMD=: - fi -fi - - fi - ;; -esac - -enable_dlopen=no -enable_win32_dll=yes - -# Check whether --enable-libtool-lock was given. -if test "${enable_libtool_lock+set}" = set; then - enableval=$enable_libtool_lock; -fi - -test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes - - -# Check whether --with-pic was given. -if test "${with_pic+set}" = set; then - withval=$with_pic; pic_mode="$withval" -else - pic_mode=default -fi - -test -z "$pic_mode" && pic_mode=default - -# Use C for the default configuration in the libtool script -tagname= -lt_save_CC="$CC" -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -# Source file extension for C test sources. -ac_ext=c - -# Object file extension for compiled C test sources. -objext=o -objext=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="int some_variable = 0;" - -# Code to be used in simple link tests -lt_simple_link_test_code='int main(){return(0);}' - - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - -# Allow CC to be a program name with arguments. -compiler=$CC - - -# save warnings/boilerplate of simple test code -ac_outfile=conftest.$ac_objext -echo "$lt_simple_compile_test_code" >conftest.$ac_ext -eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_compiler_boilerplate=`cat conftest.err` -$rm conftest* - -ac_outfile=conftest.$ac_objext -echo "$lt_simple_link_test_code" >conftest.$ac_ext -eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_linker_boilerplate=`cat conftest.err` -$rm conftest* - - - -lt_prog_compiler_no_builtin_flag= - -if test "$GCC" = yes; then - lt_prog_compiler_no_builtin_flag=' -fno-builtin' - - -{ $as_echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 -$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } -if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_rtti_exceptions=no - ac_outfile=conftest.$ac_objext - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="-fno-rtti -fno-exceptions" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:6698: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:6702: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings other than the usual output. - $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler_rtti_exceptions=yes - fi - fi - $rm conftest* - -fi -{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 -$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } - -if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then - lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" -else - : -fi - -fi - -lt_prog_compiler_wl= -lt_prog_compiler_pic= -lt_prog_compiler_static= - -{ $as_echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 -$as_echo_n "checking for $compiler option to produce PIC... " >&6; } - - if test "$GCC" = yes; then - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_static='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static='-Bstatic' - fi - ;; - - amigaos*) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. - lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' - ;; - - beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - - mingw* | cygwin* | pw32* | os2*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - # Although the cygwin gcc ignores -fPIC, still need this for old-style - # (--disable-auto-import) libraries - lt_prog_compiler_pic='-DDLL_EXPORT' - ;; - - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - lt_prog_compiler_pic='-fno-common' - ;; - - interix[3-9]*) - # Interix 3.x gcc -fpic/-fPIC options generate broken code. - # Instead, we relocate shared libraries at runtime. - ;; - - msdosdjgpp*) - # Just because we use GCC doesn't mean we suddenly get shared libraries - # on systems that don't support them. - lt_prog_compiler_can_build_shared=no - enable_shared=no - ;; - - sysv4*MP*) - if test -d /usr/nec; then - lt_prog_compiler_pic=-Kconform_pic - fi - ;; - - hpux*) - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case $host_cpu in - hppa*64*|ia64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic='-fPIC' - ;; - esac - ;; - - *) - lt_prog_compiler_pic='-fPIC' - ;; - esac - else - # PORTME Check for flag to pass linker flags through the system compiler. - case $host_os in - aix*) - lt_prog_compiler_wl='-Wl,' - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static='-Bstatic' - else - lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' - fi - ;; - darwin*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - case $cc_basename in - xlc*) - lt_prog_compiler_pic='-qnocommon' - lt_prog_compiler_wl='-Wl,' - ;; - esac - ;; - - mingw* | cygwin* | pw32* | os2*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - lt_prog_compiler_pic='-DDLL_EXPORT' - ;; - - hpux9* | hpux10* | hpux11*) - lt_prog_compiler_wl='-Wl,' - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case $host_cpu in - hppa*64*|ia64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic='+Z' - ;; - esac - # Is there a better lt_prog_compiler_static that works with the bundled CC? - lt_prog_compiler_static='${wl}-a ${wl}archive' - ;; - - irix5* | irix6* | nonstopux*) - lt_prog_compiler_wl='-Wl,' - # PIC (with -KPIC) is the default. - lt_prog_compiler_static='-non_shared' - ;; - - newsos6) - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - ;; - - linux* | k*bsd*-gnu) - case $cc_basename in - icc* | ecc*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-static' - ;; - pgcc* | pgf77* | pgf90* | pgf95*) - # Portland Group compilers (*not* the Pentium gcc compiler, - # which looks to be a dead project) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-fpic' - lt_prog_compiler_static='-Bstatic' - ;; - ccc*) - lt_prog_compiler_wl='-Wl,' - # All Alpha code is PIC. - lt_prog_compiler_static='-non_shared' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C 5.9 - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - lt_prog_compiler_wl='-Wl,' - ;; - *Sun\ F*) - # Sun Fortran 8.3 passes all unrecognized flags to the linker - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - lt_prog_compiler_wl='' - ;; - esac - ;; - esac - ;; - - osf3* | osf4* | osf5*) - lt_prog_compiler_wl='-Wl,' - # All OSF/1 code is PIC. - lt_prog_compiler_static='-non_shared' - ;; - - rdos*) - lt_prog_compiler_static='-non_shared' - ;; - - solaris*) - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - case $cc_basename in - f77* | f90* | f95*) - lt_prog_compiler_wl='-Qoption ld ';; - *) - lt_prog_compiler_wl='-Wl,';; - esac - ;; - - sunos4*) - lt_prog_compiler_wl='-Qoption ld ' - lt_prog_compiler_pic='-PIC' - lt_prog_compiler_static='-Bstatic' - ;; - - sysv4 | sysv4.2uw2* | sysv4.3*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - ;; - - sysv4*MP*) - if test -d /usr/nec ;then - lt_prog_compiler_pic='-Kconform_pic' - lt_prog_compiler_static='-Bstatic' - fi - ;; - - sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - ;; - - unicos*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_can_build_shared=no - ;; - - uts4*) - lt_prog_compiler_pic='-pic' - lt_prog_compiler_static='-Bstatic' - ;; - - *) - lt_prog_compiler_can_build_shared=no - ;; - esac - fi - -{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5 -$as_echo "$lt_prog_compiler_pic" >&6; } - -# -# Check to make sure the PIC flag actually works. -# -if test -n "$lt_prog_compiler_pic"; then - -{ $as_echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 -$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } -if test "${lt_prog_compiler_pic_works+set}" = set; then - $as_echo_n "(cached) " >&6 -else - lt_prog_compiler_pic_works=no - ac_outfile=conftest.$ac_objext - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="$lt_prog_compiler_pic -DPIC" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:6988: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:6992: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings other than the usual output. - $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then - lt_prog_compiler_pic_works=yes - fi - fi - $rm conftest* - -fi -{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5 -$as_echo "$lt_prog_compiler_pic_works" >&6; } - -if test x"$lt_prog_compiler_pic_works" = xyes; then - case $lt_prog_compiler_pic in - "" | " "*) ;; - *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; - esac -else - lt_prog_compiler_pic= - lt_prog_compiler_can_build_shared=no -fi - -fi -case $host_os in - # For platforms which do not support PIC, -DPIC is meaningless: - *djgpp*) - lt_prog_compiler_pic= - ;; - *) - lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" - ;; -esac - -# -# Check to make sure the static flag actually works. -# -wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" -{ $as_echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 -$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } -if test "${lt_prog_compiler_static_works+set}" = set; then - $as_echo_n "(cached) " >&6 -else - lt_prog_compiler_static_works=no - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS $lt_tmp_static_flag" - echo "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then - # The linker can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - # Append any errors to the config.log. - cat conftest.err 1>&5 - $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if diff conftest.exp conftest.er2 >/dev/null; then - lt_prog_compiler_static_works=yes - fi - else - lt_prog_compiler_static_works=yes - fi - fi - $rm conftest* - LDFLAGS="$save_LDFLAGS" - -fi -{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5 -$as_echo "$lt_prog_compiler_static_works" >&6; } - -if test x"$lt_prog_compiler_static_works" = xyes; then - : -else - lt_prog_compiler_static= -fi - - -{ $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 -$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } -if test "${lt_cv_prog_compiler_c_o+set}" = set; then - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_c_o=no - $rm -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - lt_compiler_flag="-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:7092: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:7096: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp - $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 - if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then - lt_cv_prog_compiler_c_o=yes - fi - fi - chmod u+w . 2>&5 - $rm conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files - $rm out/* && rmdir out - cd .. - rmdir conftest - $rm conftest* - -fi -{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 -$as_echo "$lt_cv_prog_compiler_c_o" >&6; } - - -hard_links="nottested" -if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then - # do not overwrite the value of need_locks provided by the user - { $as_echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 -$as_echo_n "checking if we can lock with hard links... " >&6; } - hard_links=yes - $rm conftest* - ln conftest.a conftest.b 2>/dev/null && hard_links=no - touch conftest.a - ln conftest.a conftest.b 2>&5 || hard_links=no - ln conftest.a conftest.b 2>/dev/null && hard_links=no - { $as_echo "$as_me:$LINENO: result: $hard_links" >&5 -$as_echo "$hard_links" >&6; } - if test "$hard_links" = no; then - { $as_echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 -$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} - need_locks=warn - fi -else - need_locks=no -fi - -{ $as_echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 -$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } - - runpath_var= - allow_undefined_flag= - enable_shared_with_static_runtimes=no - archive_cmds= - archive_expsym_cmds= - old_archive_From_new_cmds= - old_archive_from_expsyms_cmds= - export_dynamic_flag_spec= - whole_archive_flag_spec= - thread_safe_flag_spec= - hardcode_libdir_flag_spec= - hardcode_libdir_flag_spec_ld= - hardcode_libdir_separator= - hardcode_direct=no - hardcode_minus_L=no - hardcode_shlibpath_var=unsupported - link_all_deplibs=unknown - hardcode_automatic=no - module_cmds= - module_expsym_cmds= - always_export_symbols=no - export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - # include_expsyms should be a list of space-separated symbols to be *always* - # included in the symbol list - include_expsyms= - # exclude_expsyms can be an extended regexp of symbols to exclude - # it will be wrapped by ` (' and `)$', so one must not match beginning or - # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', - # as well as any symbol that contains `d'. - exclude_expsyms="_GLOBAL_OFFSET_TABLE_" - # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out - # platforms (ab)use it in PIC code, but their linkers get confused if - # the symbol is explicitly referenced. Since portable code cannot - # rely on this symbol name, it's probably fine to never include it in - # preloaded symbol tables. - extract_expsyms_cmds= - # Just being paranoid about ensuring that cc_basename is set. - for cc_temp in $compiler""; do - case $cc_temp in - compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; - distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` - - case $host_os in - cygwin* | mingw* | pw32*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - if test "$GCC" != yes; then - with_gnu_ld=no - fi - ;; - interix*) - # we just hope/assume this is gcc and not c89 (= MSVC++) - with_gnu_ld=yes - ;; - openbsd*) - with_gnu_ld=no - ;; - esac - - ld_shlibs=yes - if test "$with_gnu_ld" = yes; then - # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc='${wl}' - - # Set some defaults for GNU ld with shared library support. These - # are reset later if shared libraries are not supported. Putting them - # here allows them to be overridden if necessary. - runpath_var=LD_RUN_PATH - hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' - export_dynamic_flag_spec='${wl}--export-dynamic' - # ancient GNU ld didn't support --whole-archive et. al. - if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then - whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - whole_archive_flag_spec= - fi - supports_anon_versioning=no - case `$LD -v 2>/dev/null` in - *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 - *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... - *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... - *\ 2.11.*) ;; # other 2.11 versions - *) supports_anon_versioning=yes ;; - esac - - # See if GNU ld supports shared libraries. - case $host_os in - aix3* | aix4* | aix5*) - # On AIX/PPC, the GNU linker is very broken - if test "$host_cpu" != ia64; then - ld_shlibs=no - cat <<EOF 1>&2 - -*** Warning: the GNU linker, at least up to release 2.9.1, is reported -*** to be unable to reliably create shared libraries on AIX. -*** Therefore, libtool is disabling shared libraries support. If you -*** really care for shared libraries, you may want to modify your PATH -*** so that a non-GNU linker is found, and then restart. - -EOF - fi - ;; - - amigaos*) - archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - - # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports - # that the semantics of dynamic libraries on AmigaOS, at least up - # to version 4, is to share data among multiple programs linked - # with the same dynamic library. Since this doesn't match the - # behavior of shared libraries on other platforms, we can't use - # them. - ld_shlibs=no - ;; - - beos*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - allow_undefined_flag=unsupported - # Joseph Beckenbach <jrb3@best.com> says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - else - ld_shlibs=no - fi - ;; - - cygwin* | mingw* | pw32*) - # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, - # as there is no search path for DLLs. - hardcode_libdir_flag_spec='-L$libdir' - allow_undefined_flag=unsupported - always_export_symbols=no - enable_shared_with_static_runtimes=yes - export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' - - if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else - ld_shlibs=no - fi - ;; - - interix[3-9]*) - hardcode_direct=no - hardcode_shlibpath_var=no - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - export_dynamic_flag_spec='${wl}-E' - # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. - # Instead, shared libraries are loaded at an image base (0x10000000 by - # default) and relocated if they conflict, which is a slow very memory - # consuming and fragmenting process. To avoid this, we pick a random, - # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link - # time. Moving up from 0x10000000 also allows more sbrk(2) space. - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - ;; - - gnu* | linux* | k*bsd*-gnu) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - tmp_addflag= - case $cc_basename,$host_cpu in - pgcc*) # Portland Group C compiler - whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag' - ;; - pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers - whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag -Mnomain' ;; - ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 - tmp_addflag=' -i_dynamic' ;; - efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 - tmp_addflag=' -i_dynamic -nofor_main' ;; - ifc* | ifort*) # Intel Fortran compiler - tmp_addflag=' -nofor_main' ;; - esac - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) # Sun C 5.9 - whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_sharedflag='-G' ;; - *Sun\ F*) # Sun Fortran 8.3 - tmp_sharedflag='-G' ;; - *) - tmp_sharedflag='-shared' ;; - esac - archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - - if test $supports_anon_versioning = yes; then - archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - $echo "local: *; };" >> $output_objdir/$libname.ver~ - $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' - fi - else - ld_shlibs=no - fi - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - - solaris*) - if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then - ld_shlibs=no - cat <<EOF 1>&2 - -*** Warning: The releases 2.8.* of the GNU linker cannot reliably -*** create shared libraries on Solaris systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.9.1 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -EOF - elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi - ;; - - sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) - case `$LD -v 2>&1` in - *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) - ld_shlibs=no - cat <<_LT_EOF 1>&2 - -*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not -*** reliably create shared libraries on SCO systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.16.91.0.3 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -_LT_EOF - ;; - *) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' - else - ld_shlibs=no - fi - ;; - esac - ;; - - sunos4*) - archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' - wlarc= - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - *) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi - ;; - esac - - if test "$ld_shlibs" = no; then - runpath_var= - hardcode_libdir_flag_spec= - export_dynamic_flag_spec= - whole_archive_flag_spec= - fi - else - # PORTME fill in a description of your system's linker (not GNU ld) - case $host_os in - aix3*) - allow_undefined_flag=unsupported - always_export_symbols=yes - archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' - # Note: this linker hardcodes the directories in LIBPATH if there - # are no directories specified by -L. - hardcode_minus_L=yes - if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - hardcode_direct=unsupported - fi - ;; - - aix4* | aix5*) - if test "$host_cpu" = ia64; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - exp_sym_flag='-Bexport' - no_entry_flag="" - else - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm - if $NM -V 2>&1 | grep 'GNU' > /dev/null; then - export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' - else - export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' - fi - aix_use_runtimelinking=no - - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[23]|aix4.[23].*|aix5*) - for ld_flag in $LDFLAGS; do - if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then - aix_use_runtimelinking=yes - break - fi - done - ;; - esac - - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a library - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - archive_cmds='' - hardcode_direct=yes - hardcode_libdir_separator=':' - link_all_deplibs=yes - - if test "$GCC" = yes; then - case $host_os in aix4.[012]|aix4.[012].*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && \ - strings "$collect2name" | grep resolve_lib_name >/dev/null - then - # We have reworked collect2 - : - else - # We have old collect2 - hardcode_direct=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - hardcode_minus_L=yes - hardcode_libdir_flag_spec='-L$libdir' - hardcode_libdir_separator= - fi - ;; - esac - shared_flag='-shared' - if test "$aix_use_runtimelinking" = yes; then - shared_flag="$shared_flag "'${wl}-G' - fi - else - # not using gcc - if test "$host_cpu" = ia64; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to export. - always_export_symbols=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - allow_undefined_flag='-berok' - # Determine the default libpath from the value encoded in an empty executable. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - -lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\(.*\)$/\1/ - p - } - }' -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then - aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -fi -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' - allow_undefined_flag="-z nodefs" - archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an empty executable. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - -lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\(.*\)$/\1/ - p - } - }' -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then - aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -fi -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - no_undefined_flag=' ${wl}-bernotok' - allow_undefined_flag=' ${wl}-berok' - # Exported symbols can be pulled into shared objects from archives - whole_archive_flag_spec='$convenience' - archive_cmds_need_lc=yes - # This is similar to how AIX traditionally builds its shared libraries. - archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - - amigaos*) - archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - # see comment about different semantics on the GNU ld section - ld_shlibs=no - ;; - - bsdi[45]*) - export_dynamic_flag_spec=-rdynamic - ;; - - cygwin* | mingw* | pw32*) - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - hardcode_libdir_flag_spec=' ' - allow_undefined_flag=unsupported - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" - # FIXME: Setting linknames here is a bad hack. - archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' - # The linker will automatically build a .lib file if we build a DLL. - old_archive_From_new_cmds='true' - # FIXME: Should let the user specify the lib program. - old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' - fix_srcfile_path='`cygpath -w "$srcfile"`' - enable_shared_with_static_runtimes=yes - ;; - - darwin* | rhapsody*) - case $host_os in - rhapsody* | darwin1.[012]) - allow_undefined_flag='${wl}-undefined ${wl}suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[012]) - allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' - ;; - 10.*) - allow_undefined_flag='${wl}-undefined ${wl}dynamic_lookup' - ;; - esac - fi - ;; - esac - archive_cmds_need_lc=no - hardcode_direct=no - hardcode_automatic=yes - hardcode_shlibpath_var=unsupported - whole_archive_flag_spec='' - link_all_deplibs=yes - if test "$GCC" = yes ; then - output_verbose_link_cmd='echo' - archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds - archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - else - case $cc_basename in - xlc*) - output_verbose_link_cmd='echo' - archive_cmds='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' - module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds - archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - ;; - *) - ld_shlibs=no - ;; - esac - fi - ;; - - dgux*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_shlibpath_var=no - ;; - - freebsd1*) - ld_shlibs=no - ;; - - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor - # support. Future versions do this automatically, but an explicit c++rt0.o - # does not break anything, and helps significantly (at the cost of a little - # extra space). - freebsd2.2*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes - hardcode_minus_L=yes - hardcode_shlibpath_var=no - ;; - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly*) - archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - hpux9*) - if test "$GCC" = yes; then - archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_direct=yes - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - export_dynamic_flag_spec='${wl}-E' - ;; - - hpux10*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then - archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - fi - if test "$with_gnu_ld" = no; then - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - - hardcode_direct=yes - export_dynamic_flag_spec='${wl}-E' - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - fi - ;; - - hpux11*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then - case $host_cpu in - hppa*64*) - archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - archive_cmds='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else - case $host_cpu in - hppa*64*) - archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - fi - if test "$with_gnu_ld" = no; then - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - - case $host_cpu in - hppa*64*|ia64*) - hardcode_libdir_flag_spec_ld='+b $libdir' - hardcode_direct=no - hardcode_shlibpath_var=no - ;; - *) - hardcode_direct=yes - export_dynamic_flag_spec='${wl}-E' - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - ;; - esac - fi - ;; - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec_ld='-rpath $libdir' - fi - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - link_all_deplibs=yes - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out - else - archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF - fi - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - newsos6) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_shlibpath_var=no - ;; - - openbsd*) - if test -f /usr/libexec/ld.so; then - hardcode_direct=yes - hardcode_shlibpath_var=no - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - export_dynamic_flag_spec='${wl}-E' - else - case $host_os in - openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-R$libdir' - ;; - *) - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - ;; - esac - fi - else - ld_shlibs=no - fi - ;; - - os2*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - allow_undefined_flag=unsupported - archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' - old_archive_From_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' - ;; - - osf3*) - if test "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - fi - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - ;; - - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - else - allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ - $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' - - # Both c and cxx compiler support -rpath directly - hardcode_libdir_flag_spec='-rpath $libdir' - fi - hardcode_libdir_separator=: - ;; - - solaris*) - no_undefined_flag=' -z text' - if test "$GCC" = yes; then - wlarc='${wl}' - archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' - else - wlarc='' - archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' - fi - hardcode_libdir_flag_spec='-R$libdir' - hardcode_shlibpath_var=no - case $host_os in - solaris2.[0-5] | solaris2.[0-5].*) ;; - *) - # The compiler driver will combine and reorder linker options, - # but understands `-z linker_flag'. GCC discards it without `$wl', - # but is careful enough not to reorder. - # Supported since Solaris 2.6 (maybe 2.5.1?) - if test "$GCC" = yes; then - whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' - else - whole_archive_flag_spec='-z allextract$convenience -z defaultextract' - fi - ;; - esac - link_all_deplibs=yes - ;; - - sunos4*) - if test "x$host_vendor" = xsequent; then - # Use $CC to link under sequent, because it throws in some extra .o - # files that make .init and .fini sections work. - archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' - fi - hardcode_libdir_flag_spec='-L$libdir' - hardcode_direct=yes - hardcode_minus_L=yes - hardcode_shlibpath_var=no - ;; - - sysv4) - case $host_vendor in - sni) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes # is this really true??? - ;; - siemens) - ## LD is ld it makes a PLAMLIB - ## CC just makes a GrossModule. - archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' - reload_cmds='$CC -r -o $output$reload_objs' - hardcode_direct=no - ;; - motorola) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=no #Motorola manual says yes, but my tests say they lie - ;; - esac - runpath_var='LD_RUN_PATH' - hardcode_shlibpath_var=no - ;; - - sysv4.3*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var=no - export_dynamic_flag_spec='-Bexport' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var=no - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ld_shlibs=yes - fi - ;; - - sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) - no_undefined_flag='${wl}-z,text' - archive_cmds_need_lc=no - hardcode_shlibpath_var=no - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then - archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - sysv5* | sco3.2v5* | sco5v6*) - # Note: We can NOT use -z defs as we might desire, because we do not - # link with -lc, and that would cause any symbols used from libc to - # always be unresolved, which means just about no library would - # ever link correctly. If we're not using GNU ld we use -z text - # though, which does catch some bad symbols but isn't as heavy-handed - # as -z defs. - no_undefined_flag='${wl}-z,text' - allow_undefined_flag='${wl}-z,nodefs' - archive_cmds_need_lc=no - hardcode_shlibpath_var=no - hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' - hardcode_libdir_separator=':' - link_all_deplibs=yes - export_dynamic_flag_spec='${wl}-Bexport' - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then - archive_cmds='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - uts4*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_shlibpath_var=no - ;; - - *) - ld_shlibs=no - ;; - esac - fi - -{ $as_echo "$as_me:$LINENO: result: $ld_shlibs" >&5 -$as_echo "$ld_shlibs" >&6; } -test "$ld_shlibs" = no && can_build_shared=no - -# -# Do we need to explicitly link libc? -# -case "x$archive_cmds_need_lc" in -x|xyes) - # Assume -lc should be added - archive_cmds_need_lc=yes - - if test "$enable_shared" = yes && test "$GCC" = yes; then - case $archive_cmds in - *'~'*) - # FIXME: we may have to deal with multi-command sequences. - ;; - '$CC '*) - # Test whether the compiler implicitly links with -lc since on some - # systems, -lgcc has to come before -lc. If gcc already passes -lc - # to ld, don't add -lc before -lgcc. - { $as_echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 -$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } - $rm conftest* - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } 2>conftest.err; then - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$lt_prog_compiler_wl - pic_flag=$lt_prog_compiler_pic - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - lt_save_allow_undefined_flag=$allow_undefined_flag - allow_undefined_flag= - if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 - (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - then - archive_cmds_need_lc=no - else - archive_cmds_need_lc=yes - fi - allow_undefined_flag=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $rm conftest* - { $as_echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5 -$as_echo "$archive_cmds_need_lc" >&6; } - ;; - esac - fi - ;; -esac - -{ $as_echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 -$as_echo_n "checking dynamic linker characteristics... " >&6; } -library_names_spec= -libname_spec='lib$name' -soname_spec= -shrext_cmds=".so" -postinstall_cmds= -postuninstall_cmds= -finish_cmds= -finish_eval= -shlibpath_var= -shlibpath_overrides_runpath=unknown -version_type=none -dynamic_linker="$host_os ld.so" -sys_lib_dlsearch_path_spec="/lib /usr/lib" - -if test "$GCC" = yes; then - case $host_os in - darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; - *) lt_awk_arg="/^libraries:/" ;; - esac - lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if echo "$lt_search_path_spec" | grep ';' >/dev/null ; then - # if the path contains ";" then we assume it to be the separator - # otherwise default to the standard path separator (i.e. ":") - it is - # assumed that no part of a normal pathname contains ";" but that should - # okay in the real world where ";" in dirpaths is itself problematic. - lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e 's/;/ /g'` - else - lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - # Ok, now we have the path, separated by spaces, we can step through it - # and add multilib dir if necessary. - lt_tmp_lt_search_path_spec= - lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` - for lt_sys_path in $lt_search_path_spec; do - if test -d "$lt_sys_path/$lt_multi_os_dir"; then - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" - else - test -d "$lt_sys_path" && \ - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" - fi - done - lt_search_path_spec=`echo $lt_tmp_lt_search_path_spec | awk ' -BEGIN {RS=" "; FS="/|\n";} { - lt_foo=""; - lt_count=0; - for (lt_i = NF; lt_i > 0; lt_i--) { - if ($lt_i != "" && $lt_i != ".") { - if ($lt_i == "..") { - lt_count++; - } else { - if (lt_count == 0) { - lt_foo="/" $lt_i lt_foo; - } else { - lt_count--; - } - } - } - } - if (lt_foo != "") { lt_freq[lt_foo]++; } - if (lt_freq[lt_foo] == 1) { print lt_foo; } -}'` - sys_lib_search_path_spec=`echo $lt_search_path_spec` -else - sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" -fi -need_lib_prefix=unknown -hardcode_into_libs=no - -# when you set need_version to no, make sure it does not cause -set_version -# flags to be left without arguments -need_version=unknown - -case $host_os in -aix3*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' - shlibpath_var=LIBPATH - - # AIX 3 has no versioning support, so we append a major version to the name. - soname_spec='${libname}${release}${shared_ext}$major' - ;; - -aix4* | aix5*) - version_type=linux - need_lib_prefix=no - need_version=no - hardcode_into_libs=yes - if test "$host_cpu" = ia64; then - # AIX 5 supports IA64 - library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - else - # With GCC up to 2.95.x, collect2 would create an import file - # for dependence libraries. The import file would start with - # the line `#! .'. This would cause the generated library to - # depend on `.', always an invalid library. This was fixed in - # development snapshots of GCC prior to 3.0. - case $host_os in - aix4 | aix4.[01] | aix4.[01].*) - if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' - echo ' yes ' - echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then - : - else - can_build_shared=no - fi - ;; - esac - # AIX (on Power*) has no versioning support, so currently we can not hardcode correct - # soname into executable. Probably we can add versioning support to - # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" = yes; then - # If using run time linking (on AIX 4.2 or later) use lib<name>.so - # instead of lib<name>.a to let people know that these are not - # typical AIX shared libraries. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - else - # We preserve .a as extension for shared libraries through AIX4.2 - # and later when we are not doing run time linking. - library_names_spec='${libname}${release}.a $libname.a' - soname_spec='${libname}${release}${shared_ext}$major' - fi - shlibpath_var=LIBPATH - fi - ;; - -amigaos*) - library_names_spec='$libname.ixlibrary $libname.a' - # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' - ;; - -beos*) - library_names_spec='${libname}${shared_ext}' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; - -bsdi[45]*) - version_type=linux - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" - sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" - # the default ld.so.conf also contains /usr/contrib/lib and - # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow - # libtool to hard-code these into programs - ;; - -cygwin* | mingw* | pw32*) - version_type=windows - shrext_cmds=".dll" - need_version=no - need_lib_prefix=no - - case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32*) - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname~ - chmod a+x \$dldir/$dlname' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $rm \$dlpath' - shlibpath_overrides_runpath=yes - - case $host_os in - cygwin*) - # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" - ;; - mingw*) - # MinGW DLLs use traditional 'lib' prefix - soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then - # It is most probably a Windows format PATH printed by - # mingw gcc, but we are running on Cygwin. Gcc prints its search - # path with ; separators, and with drive letters. We can handle the - # drive letters (cygwin fileutils understands them), so leave them, - # especially as we might pass files found there to a mingw objdump, - # which wouldn't understand a cygwinified path. Ahh. - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - ;; - pw32*) - # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - ;; - esac - ;; - - *) - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' - ;; - esac - dynamic_linker='Win32 ld.exe' - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; - -darwin* | rhapsody*) - dynamic_linker="$host_os dyld" - version_type=darwin - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' - soname_spec='${libname}${release}${major}$shared_ext' - shlibpath_overrides_runpath=yes - shlibpath_var=DYLD_LIBRARY_PATH - shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' - - sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" - sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' - ;; - -dgux*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -freebsd1*) - dynamic_linker=no - ;; - -freebsd* | dragonfly*) - # DragonFly does not have aout. When/if they implement a new - # versioning mechanism, adjust this. - if test -x /usr/bin/objformat; then - objformat=`/usr/bin/objformat` - else - case $host_os in - freebsd[123]*) objformat=aout ;; - *) objformat=elf ;; - esac - fi - version_type=freebsd-$objformat - case $version_type in - freebsd-elf*) - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - need_version=no - need_lib_prefix=no - ;; - freebsd-*) - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' - need_version=yes - ;; - esac - shlibpath_var=LD_LIBRARY_PATH - case $host_os in - freebsd2*) - shlibpath_overrides_runpath=yes - ;; - freebsd3.[01]* | freebsdelf3.[01]*) - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ - freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - *) # from 4.6 on, and DragonFly - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - esac - ;; - -gnu*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - hardcode_into_libs=yes - ;; - -hpux9* | hpux10* | hpux11*) - # Give a soname corresponding to the major version so that dld.sl refuses to - # link against other versions. - version_type=sunos - need_lib_prefix=no - need_version=no - case $host_cpu in - ia64*) - shrext_cmds='.so' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.so" - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - if test "X$HPUX_IA64_MODE" = X32; then - sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" - else - sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" - fi - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - hppa*64*) - shrext_cmds='.sl' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.sl" - shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - *) - shrext_cmds='.sl' - dynamic_linker="$host_os dld.sl" - shlibpath_var=SHLIB_PATH - shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - ;; - esac - # HP-UX runs *really* slowly unless shared libraries are mode 555. - postinstall_cmds='chmod 555 $lib' - ;; - -interix[3-9]*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - -irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=nonstopux ;; - *) - if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux - else - version_type=irix - fi ;; - esac - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' - case $host_os in - irix5* | nonstopux*) - libsuff= shlibsuff= - ;; - *) - case $LD in # libtool.m4 will add one of these switches to LD - *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") - libsuff= shlibsuff= libmagic=32-bit;; - *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") - libsuff=32 shlibsuff=N32 libmagic=N32;; - *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") - libsuff=64 shlibsuff=64 libmagic=64-bit;; - *) libsuff= shlibsuff= libmagic=never-match;; - esac - ;; - esac - shlibpath_var=LD_LIBRARY${shlibsuff}_PATH - shlibpath_overrides_runpath=no - sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" - sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" - hardcode_into_libs=yes - ;; - -# No shared lib support for Linux oldld, aout, or coff. -linux*oldld* | linux*aout* | linux*coff*) - dynamic_linker=no - ;; - -# This must be Linux ELF. -linux* | k*bsd*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - # This implies no fast_install, which is unacceptable. - # Some rework will be needed to allow for fast_install - # before this can be enabled. - hardcode_into_libs=yes - - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` - sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" - fi - - # We used to test for /lib/ld.so.1 and disable shared libraries on - # powerpc, because MkLinux only supported shared libraries with the - # GNU dynamic linker. Since this was broken with cross compilers, - # most powerpc-linux boxes support dynamic linking these days and - # people can always --disable-shared, the test was removed, and we - # assume the GNU/Linux dynamic linker is in use. - dynamic_linker='GNU/Linux ld.so' - ;; - -netbsd*) - version_type=sunos - need_lib_prefix=no - need_version=no - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker='NetBSD (a.out) ld.so' - else - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='NetBSD ld.elf_so' - fi - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - -newsos6) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -nto-qnx*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -openbsd*) - version_type=sunos - sys_lib_dlsearch_path_spec="/usr/lib" - need_lib_prefix=no - # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. - case $host_os in - openbsd3.3 | openbsd3.3.*) need_version=yes ;; - *) need_version=no ;; - esac - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[89] | openbsd2.[89].*) - shlibpath_overrides_runpath=no - ;; - *) - shlibpath_overrides_runpath=yes - ;; - esac - else - shlibpath_overrides_runpath=yes - fi - ;; - -os2*) - libname_spec='$name' - shrext_cmds=".dll" - need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; - -osf3* | osf4* | osf5*) - version_type=osf - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" - ;; - -rdos*) - dynamic_linker=no - ;; - -solaris*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - # ldd complains unless libraries are executable - postinstall_cmds='chmod +x $lib' - ;; - -sunos4*) - version_type=sunos - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - if test "$with_gnu_ld" = yes; then - need_lib_prefix=no - fi - need_version=yes - ;; - -sysv4 | sysv4.3*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - case $host_vendor in - sni) - shlibpath_overrides_runpath=no - need_lib_prefix=no - export_dynamic_flag_spec='${wl}-Blargedynsym' - runpath_var=LD_RUN_PATH - ;; - siemens) - need_lib_prefix=no - ;; - motorola) - need_lib_prefix=no - need_version=no - shlibpath_overrides_runpath=no - sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' - ;; - esac - ;; - -sysv4*MP*) - if test -d /usr/nec ;then - version_type=linux - library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' - soname_spec='$libname${shared_ext}.$major' - shlibpath_var=LD_LIBRARY_PATH - fi - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - version_type=freebsd-elf - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - hardcode_into_libs=yes - if test "$with_gnu_ld" = yes; then - sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' - shlibpath_overrides_runpath=no - else - sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' - shlibpath_overrides_runpath=yes - case $host_os in - sco3.2v5*) - sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" - ;; - esac - fi - sys_lib_dlsearch_path_spec='/usr/lib' - ;; - -uts4*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -*) - dynamic_linker=no - ;; -esac -{ $as_echo "$as_me:$LINENO: result: $dynamic_linker" >&5 -$as_echo "$dynamic_linker" >&6; } -test "$dynamic_linker" = no && can_build_shared=no - -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi - -{ $as_echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 -$as_echo_n "checking how to hardcode library paths into programs... " >&6; } -hardcode_action= -if test -n "$hardcode_libdir_flag_spec" || \ - test -n "$runpath_var" || \ - test "X$hardcode_automatic" = "Xyes" ; then - - # We can hardcode non-existant directories. - if test "$hardcode_direct" != no && - # If the only mechanism to avoid hardcoding is shlibpath_var, we - # have to relink, otherwise we might link with an installed library - # when we should be linking with a yet-to-be-installed one - ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, )" != no && - test "$hardcode_minus_L" != no; then - # Linking always hardcodes the temporary library directory. - hardcode_action=relink - else - # We can link without hardcoding, and we can hardcode nonexisting dirs. - hardcode_action=immediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - hardcode_action=unsupported -fi -{ $as_echo "$as_me:$LINENO: result: $hardcode_action" >&5 -$as_echo "$hardcode_action" >&6; } - -if test "$hardcode_action" = relink; then - # Fast installation is not supported - enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then - # Fast installation is not necessary - enable_fast_install=needless -fi - -striplib= -old_striplib= -{ $as_echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 -$as_echo_n "checking whether stripping libraries is possible... " >&6; } -if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then - test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" - test -z "$striplib" && striplib="$STRIP --strip-unneeded" - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } -else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP" ; then - striplib="$STRIP -x" - old_striplib="$STRIP -S" - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - ;; - *) - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } - ;; - esac -fi - -if test "x$enable_dlopen" != xyes; then - enable_dlopen=unknown - enable_dlopen_self=unknown - enable_dlopen_self_static=unknown -else - lt_cv_dlopen=no - lt_cv_dlopen_libs= - - case $host_os in - beos*) - lt_cv_dlopen="load_add_on" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - ;; - - mingw* | pw32*) - lt_cv_dlopen="LoadLibrary" - lt_cv_dlopen_libs= - ;; - - cygwin*) - lt_cv_dlopen="dlopen" - lt_cv_dlopen_libs= - ;; - - darwin*) - # if libdl is installed we need to link against it - { $as_echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 -$as_echo_n "checking for dlopen in -ldl... " >&6; } -if test "${ac_cv_lib_dl_dlopen+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_dl_dlopen=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_dl_dlopen=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 -$as_echo "$ac_cv_lib_dl_dlopen" >&6; } -if test $ac_cv_lib_dl_dlopen = yes; then - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" -else - - lt_cv_dlopen="dyld" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - -fi - - ;; - - *) - { $as_echo "$as_me:$LINENO: checking for shl_load" >&5 -$as_echo_n "checking for shl_load... " >&6; } -if test "${ac_cv_func_shl_load+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define shl_load to an innocuous variant, in case <limits.h> declares shl_load. - For example, HP-UX 11i <limits.h> declares gettimeofday. */ -#define shl_load innocuous_shl_load - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char shl_load (); below. - Prefer <limits.h> to <assert.h> if __STDC__ is defined, since - <limits.h> exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include <limits.h> -#else -# include <assert.h> -#endif - -#undef shl_load - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char shl_load (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_shl_load || defined __stub___shl_load -choke me -#endif - -int -main () -{ -return shl_load (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_func_shl_load=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_func_shl_load=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 -$as_echo "$ac_cv_func_shl_load" >&6; } -if test $ac_cv_func_shl_load = yes; then - lt_cv_dlopen="shl_load" -else - { $as_echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 -$as_echo_n "checking for shl_load in -ldld... " >&6; } -if test "${ac_cv_lib_dld_shl_load+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char shl_load (); -int -main () -{ -return shl_load (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_dld_shl_load=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_dld_shl_load=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 -$as_echo "$ac_cv_lib_dld_shl_load" >&6; } -if test $ac_cv_lib_dld_shl_load = yes; then - lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" -else - { $as_echo "$as_me:$LINENO: checking for dlopen" >&5 -$as_echo_n "checking for dlopen... " >&6; } -if test "${ac_cv_func_dlopen+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define dlopen to an innocuous variant, in case <limits.h> declares dlopen. - For example, HP-UX 11i <limits.h> declares gettimeofday. */ -#define dlopen innocuous_dlopen - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char dlopen (); below. - Prefer <limits.h> to <assert.h> if __STDC__ is defined, since - <limits.h> exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include <limits.h> -#else -# include <assert.h> -#endif - -#undef dlopen - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_dlopen || defined __stub___dlopen -choke me -#endif - -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_func_dlopen=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_func_dlopen=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 -$as_echo "$ac_cv_func_dlopen" >&6; } -if test $ac_cv_func_dlopen = yes; then - lt_cv_dlopen="dlopen" -else - { $as_echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 -$as_echo_n "checking for dlopen in -ldl... " >&6; } -if test "${ac_cv_lib_dl_dlopen+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_dl_dlopen=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_dl_dlopen=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 -$as_echo "$ac_cv_lib_dl_dlopen" >&6; } -if test $ac_cv_lib_dl_dlopen = yes; then - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" -else - { $as_echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 -$as_echo_n "checking for dlopen in -lsvld... " >&6; } -if test "${ac_cv_lib_svld_dlopen+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsvld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_svld_dlopen=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_svld_dlopen=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 -$as_echo "$ac_cv_lib_svld_dlopen" >&6; } -if test $ac_cv_lib_svld_dlopen = yes; then - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" -else - { $as_echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 -$as_echo_n "checking for dld_link in -ldld... " >&6; } -if test "${ac_cv_lib_dld_dld_link+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldld $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dld_link (); -int -main () -{ -return dld_link (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_dld_dld_link=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_dld_dld_link=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 -$as_echo "$ac_cv_lib_dld_dld_link" >&6; } -if test $ac_cv_lib_dld_dld_link = yes; then - lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" -fi - - -fi - - -fi - - -fi - - -fi - - -fi - - ;; - esac - - if test "x$lt_cv_dlopen" != xno; then - enable_dlopen=yes - else - enable_dlopen=no - fi - - case $lt_cv_dlopen in - dlopen) - save_CPPFLAGS="$CPPFLAGS" - test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" - - save_LDFLAGS="$LDFLAGS" - wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" - - save_LIBS="$LIBS" - LIBS="$lt_cv_dlopen_libs $LIBS" - - { $as_echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 -$as_echo_n "checking whether a program can dlopen itself... " >&6; } -if test "${lt_cv_dlopen_self+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - lt_cv_dlopen_self=cross -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<EOF -#line 9450 "configure" -#include "confdefs.h" - -#if HAVE_DLFCN_H -#include <dlfcn.h> -#endif - -#include <stdio.h> - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -#ifdef __cplusplus -extern "C" void exit (int); -#endif - -void fnord() { int i=42;} -int main () -{ - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - /* dlclose (self); */ - } - else - puts (dlerror ()); - - exit (status); -} -EOF - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) >&5 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; - x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; - x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; - esac - else : - # compilation failed - lt_cv_dlopen_self=no - fi -fi -rm -fr conftest* - - -fi -{ $as_echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 -$as_echo "$lt_cv_dlopen_self" >&6; } - - if test "x$lt_cv_dlopen_self" = xyes; then - wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" - { $as_echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 -$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } -if test "${lt_cv_dlopen_self_static+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - lt_cv_dlopen_self_static=cross -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<EOF -#line 9550 "configure" -#include "confdefs.h" - -#if HAVE_DLFCN_H -#include <dlfcn.h> -#endif - -#include <stdio.h> - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -#ifdef __cplusplus -extern "C" void exit (int); -#endif - -void fnord() { int i=42;} -int main () -{ - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - /* dlclose (self); */ - } - else - puts (dlerror ()); - - exit (status); -} -EOF - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) >&5 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; - x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; - x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; - esac - else : - # compilation failed - lt_cv_dlopen_self_static=no - fi -fi -rm -fr conftest* - - -fi -{ $as_echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 -$as_echo "$lt_cv_dlopen_self_static" >&6; } - fi - - CPPFLAGS="$save_CPPFLAGS" - LDFLAGS="$save_LDFLAGS" - LIBS="$save_LIBS" - ;; - esac - - case $lt_cv_dlopen_self in - yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; - *) enable_dlopen_self=unknown ;; - esac - - case $lt_cv_dlopen_self_static in - yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; - *) enable_dlopen_self_static=unknown ;; - esac -fi - - -# Report which library types will actually be built -{ $as_echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 -$as_echo_n "checking if libtool supports shared libraries... " >&6; } -{ $as_echo "$as_me:$LINENO: result: $can_build_shared" >&5 -$as_echo "$can_build_shared" >&6; } - -{ $as_echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 -$as_echo_n "checking whether to build shared libraries... " >&6; } -test "$can_build_shared" = "no" && enable_shared=no - -# On AIX, shared libraries and static libraries use the same namespace, and -# are all built from PIC. -case $host_os in -aix3*) - test "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; - -aix4* | aix5*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no - fi - ;; -esac -{ $as_echo "$as_me:$LINENO: result: $enable_shared" >&5 -$as_echo "$enable_shared" >&6; } - -{ $as_echo "$as_me:$LINENO: checking whether to build static libraries" >&5 -$as_echo_n "checking whether to build static libraries... " >&6; } -# Make sure either enable_shared or enable_static is yes. -test "$enable_shared" = yes || enable_static=yes -{ $as_echo "$as_me:$LINENO: result: $enable_static" >&5 -$as_echo "$enable_static" >&6; } - -# The else clause should only fire when bootstrapping the -# libtool distribution, otherwise you forgot to ship ltmain.sh -# with your package, and you will get complaints that there are -# no rules to generate ltmain.sh. -if test -f "$ltmain"; then - # See if we are running on zsh, and set the options which allow our commands through - # without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST - fi - # Now quote all the things that may contain metacharacters while being - # careful not to overquote the AC_SUBSTed values. We take copies of the - # variables and quote the copies for generation of the libtool script. - for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ - SED SHELL STRIP \ - libname_spec library_names_spec soname_spec extract_expsyms_cmds \ - old_striplib striplib file_magic_cmd finish_cmds finish_eval \ - deplibs_check_method reload_flag reload_cmds need_locks \ - lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ - lt_cv_sys_global_symbol_to_c_name_address \ - sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ - old_postinstall_cmds old_postuninstall_cmds \ - compiler \ - CC \ - LD \ - lt_prog_compiler_wl \ - lt_prog_compiler_pic \ - lt_prog_compiler_static \ - lt_prog_compiler_no_builtin_flag \ - export_dynamic_flag_spec \ - thread_safe_flag_spec \ - whole_archive_flag_spec \ - enable_shared_with_static_runtimes \ - old_archive_cmds \ - old_archive_from_new_cmds \ - predep_objects \ - postdep_objects \ - predeps \ - postdeps \ - compiler_lib_search_path \ - archive_cmds \ - archive_expsym_cmds \ - postinstall_cmds \ - postuninstall_cmds \ - old_archive_from_expsyms_cmds \ - allow_undefined_flag \ - no_undefined_flag \ - export_symbols_cmds \ - hardcode_libdir_flag_spec \ - hardcode_libdir_flag_spec_ld \ - hardcode_libdir_separator \ - hardcode_automatic \ - module_cmds \ - module_expsym_cmds \ - lt_cv_prog_compiler_c_o \ - fix_srcfile_path \ - exclude_expsyms \ - include_expsyms; do - - case $var in - old_archive_cmds | \ - old_archive_from_new_cmds | \ - archive_cmds | \ - archive_expsym_cmds | \ - module_cmds | \ - module_expsym_cmds | \ - old_archive_from_expsyms_cmds | \ - export_symbols_cmds | \ - extract_expsyms_cmds | reload_cmds | finish_cmds | \ - postinstall_cmds | postuninstall_cmds | \ - old_postinstall_cmds | old_postuninstall_cmds | \ - sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) - # Double-quote double-evaled strings. - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" - ;; - *) - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" - ;; - esac - done - - case $lt_echo in - *'\$0 --fallback-echo"') - lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` - ;; - esac - -cfgfile="${ofile}T" - trap "$rm \"$cfgfile\"; exit 1" 1 2 15 - $rm -f "$cfgfile" - { $as_echo "$as_me:$LINENO: creating $ofile" >&5 -$as_echo "$as_me: creating $ofile" >&6;} - - cat <<__EOF__ >> "$cfgfile" -#! $SHELL - -# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. -# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) -# NOTE: Changes made to this file will be lost: look at ltmain.sh. -# -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 -# Free Software Foundation, Inc. -# -# This file is part of GNU Libtool: -# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# A sed program that does not truncate output. -SED=$lt_SED - -# Sed that helps us avoid accidentally triggering echo(1) options like -n. -Xsed="$SED -e 1s/^X//" - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -# The names of the tagged configurations supported by this script. -available_tags= - -# ### BEGIN LIBTOOL CONFIG - -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: - -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL - -# Whether or not to build shared libraries. -build_libtool_libs=$enable_shared - -# Whether or not to build static libraries. -build_old_libs=$enable_static - -# Whether or not to add -lc for building shared libraries. -build_libtool_need_lc=$archive_cmds_need_lc - -# Whether or not to disallow shared libs when runtime libs are static -allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes - -# Whether or not to optimize for fast installation. -fast_install=$enable_fast_install - -# The host system. -host_alias=$host_alias -host=$host -host_os=$host_os - -# The build system. -build_alias=$build_alias -build=$build -build_os=$build_os - -# An echo program that does not interpret backslashes. -echo=$lt_echo - -# The archiver. -AR=$lt_AR -AR_FLAGS=$lt_AR_FLAGS - -# A C compiler. -LTCC=$lt_LTCC - -# LTCC compiler flags. -LTCFLAGS=$lt_LTCFLAGS - -# A language-specific compiler. -CC=$lt_compiler - -# Is the compiler the GNU C compiler? -with_gcc=$GCC - -# An ERE matcher. -EGREP=$lt_EGREP - -# The linker used to build libraries. -LD=$lt_LD - -# Whether we need hard or soft links. -LN_S=$lt_LN_S - -# A BSD-compatible nm program. -NM=$lt_NM - -# A symbol stripping program -STRIP=$lt_STRIP - -# Used to examine libraries when file_magic_cmd begins "file" -MAGIC_CMD=$MAGIC_CMD - -# Used on cygwin: DLL creation program. -DLLTOOL="$DLLTOOL" - -# Used on cygwin: object dumper. -OBJDUMP="$OBJDUMP" - -# Used on cygwin: assembler. -AS="$AS" - -# The name of the directory that contains temporary libtool files. -objdir=$objdir - -# How to create reloadable object files. -reload_flag=$lt_reload_flag -reload_cmds=$lt_reload_cmds - -# How to pass a linker flag through the compiler. -wl=$lt_lt_prog_compiler_wl - -# Object file suffix (normally "o"). -objext="$ac_objext" - -# Old archive suffix (normally "a"). -libext="$libext" - -# Shared library suffix (normally ".so"). -shrext_cmds='$shrext_cmds' - -# Executable file suffix (normally ""). -exeext="$exeext" - -# Additional compiler flags for building library objects. -pic_flag=$lt_lt_prog_compiler_pic -pic_mode=$pic_mode - -# What is the maximum length of a command? -max_cmd_len=$lt_cv_sys_max_cmd_len - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=$lt_lt_cv_prog_compiler_c_o - -# Must we lock files when doing compilation? -need_locks=$lt_need_locks - -# Do we need the lib prefix for modules? -need_lib_prefix=$need_lib_prefix - -# Do we need a version for libraries? -need_version=$need_version - -# Whether dlopen is supported. -dlopen_support=$enable_dlopen - -# Whether dlopen of programs is supported. -dlopen_self=$enable_dlopen_self - -# Whether dlopen of statically linked programs is supported. -dlopen_self_static=$enable_dlopen_self_static - -# Compiler flag to prevent dynamic linking. -link_static_flag=$lt_lt_prog_compiler_static - -# Compiler flag to turn off builtin functions. -no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec=$lt_export_dynamic_flag_spec - -# Compiler flag to generate shared objects directly from archives. -whole_archive_flag_spec=$lt_whole_archive_flag_spec - -# Compiler flag to generate thread-safe objects. -thread_safe_flag_spec=$lt_thread_safe_flag_spec - -# Library versioning type. -version_type=$version_type - -# Format of library name prefix. -libname_spec=$lt_libname_spec - -# List of archive names. First name is the real one, the rest are links. -# The last name is the one that the linker finds with -lNAME. -library_names_spec=$lt_library_names_spec - -# The coded name of the library, if different from the real name. -soname_spec=$lt_soname_spec - -# Commands used to build and install an old-style archive. -RANLIB=$lt_RANLIB -old_archive_cmds=$lt_old_archive_cmds -old_postinstall_cmds=$lt_old_postinstall_cmds -old_postuninstall_cmds=$lt_old_postuninstall_cmds - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds=$lt_old_archive_from_new_cmds - -# Create a temporary old-style archive to link instead of a shared archive. -old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds - -# Commands used to build and install a shared archive. -archive_cmds=$lt_archive_cmds -archive_expsym_cmds=$lt_archive_expsym_cmds -postinstall_cmds=$lt_postinstall_cmds -postuninstall_cmds=$lt_postuninstall_cmds - -# Commands used to build a loadable module (assumed same as above if empty) -module_cmds=$lt_module_cmds -module_expsym_cmds=$lt_module_expsym_cmds - -# Commands to strip libraries. -old_striplib=$lt_old_striplib -striplib=$lt_striplib - -# Dependencies to place before the objects being linked to create a -# shared library. -predep_objects=$lt_predep_objects - -# Dependencies to place after the objects being linked to create a -# shared library. -postdep_objects=$lt_postdep_objects - -# Dependencies to place before the objects being linked to create a -# shared library. -predeps=$lt_predeps - -# Dependencies to place after the objects being linked to create a -# shared library. -postdeps=$lt_postdeps - -# The library search path used internally by the compiler when linking -# a shared library. -compiler_lib_search_path=$lt_compiler_lib_search_path - -# Method to check whether dependent libraries are shared objects. -deplibs_check_method=$lt_deplibs_check_method - -# Command to use when deplibs_check_method == file_magic. -file_magic_cmd=$lt_file_magic_cmd - -# Flag that allows shared libraries with undefined symbols to be built. -allow_undefined_flag=$lt_allow_undefined_flag - -# Flag that forces no undefined symbols. -no_undefined_flag=$lt_no_undefined_flag - -# Commands used to finish a libtool library installation in a directory. -finish_cmds=$lt_finish_cmds - -# Same as above, but a single script fragment to be evaled but not shown. -finish_eval=$lt_finish_eval - -# Take the output of nm and produce a listing of raw symbols and C names. -global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe - -# Transform the output of nm in a proper C declaration -global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl - -# Transform the output of nm in a C name address pair -global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address - -# This is the shared library runtime path variable. -runpath_var=$runpath_var - -# This is the shared library path variable. -shlibpath_var=$shlibpath_var - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=$shlibpath_overrides_runpath - -# How to hardcode a shared library path into an executable. -hardcode_action=$hardcode_action - -# Whether we should hardcode library paths into libraries. -hardcode_into_libs=$hardcode_into_libs - -# Flag to hardcode \$libdir into a binary during linking. -# This must work even if \$libdir does not exist. -hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec - -# If ld is used when linking, flag to hardcode \$libdir into -# a binary during linking. This must work even if \$libdir does -# not exist. -hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld - -# Whether we need a single -rpath flag with a separated argument. -hardcode_libdir_separator=$lt_hardcode_libdir_separator - -# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the -# resulting binary. -hardcode_direct=$hardcode_direct - -# Set to yes if using the -LDIR flag during linking hardcodes DIR into the -# resulting binary. -hardcode_minus_L=$hardcode_minus_L - -# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into -# the resulting binary. -hardcode_shlibpath_var=$hardcode_shlibpath_var - -# Set to yes if building a shared library automatically hardcodes DIR into the library -# and all subsequent libraries and executables linked against it. -hardcode_automatic=$hardcode_automatic - -# Variables whose values should be saved in libtool wrapper scripts and -# restored at relink time. -variables_saved_for_relink="$variables_saved_for_relink" - -# Whether libtool must link a program against all its dependency libraries. -link_all_deplibs=$link_all_deplibs - -# Compile-time system search path for libraries -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec - -# Run-time system search path for libraries -sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec - -# Fix the shell variable \$srcfile for the compiler. -fix_srcfile_path=$lt_fix_srcfile_path - -# Set to yes if exported symbols are required. -always_export_symbols=$always_export_symbols - -# The commands to list exported symbols. -export_symbols_cmds=$lt_export_symbols_cmds - -# The commands to extract the exported symbol list from a shared archive. -extract_expsyms_cmds=$lt_extract_expsyms_cmds - -# Symbols that should not be listed in the preloaded symbols. -exclude_expsyms=$lt_exclude_expsyms - -# Symbols that must always be exported. -include_expsyms=$lt_include_expsyms - -# ### END LIBTOOL CONFIG - -__EOF__ - - - case $host_os in - aix3*) - cat <<\EOF >> "$cfgfile" - -# AIX sometimes has problems with the GCC collect2 program. For some -# reason, if we set the COLLECT_NAMES environment variable, the problems -# vanish in a puff of smoke. -if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES -fi -EOF - ;; - esac - - # We use sed instead of cat because bash on DJGPP gets confused if - # if finds mixed CR/LF and LF-only lines. Since sed operates in - # text mode, it properly converts lines to CR/LF. This bash problem - # is reportedly fixed, but why not run on old versions too? - sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1) - - mv -f "$cfgfile" "$ofile" || \ - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" - -else - # If there is no Makefile yet, we rely on a make rule to execute - # `config.status --recheck' to rerun these tests and create the - # libtool script then. - ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` - if test -f "$ltmain_in"; then - test -f Makefile && make "$ltmain" - fi -fi - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -CC="$lt_save_CC" - - -# Check whether --with-tags was given. -if test "${with_tags+set}" = set; then - withval=$with_tags; tagnames="$withval" -fi - - -if test -f "$ltmain" && test -n "$tagnames"; then - if test ! -f "${ofile}"; then - { $as_echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not exist" >&5 -$as_echo "$as_me: WARNING: output file \`$ofile' does not exist" >&2;} - fi - - if test -z "$LTCC"; then - eval "`$SHELL ${ofile} --config | grep '^LTCC='`" - if test -z "$LTCC"; then - { $as_echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not look like a libtool script" >&5 -$as_echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script" >&2;} - else - { $as_echo "$as_me:$LINENO: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5 -$as_echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;} - fi - fi - if test -z "$LTCFLAGS"; then - eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`" - fi - - # Extract list of available tagged configurations in $ofile. - # Note that this assumes the entire list is on one line. - available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` - - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for tagname in $tagnames; do - IFS="$lt_save_ifs" - # Check whether tagname contains only valid characters - case `$echo "X$tagname" | $Xsed -e 's:[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]::g'` in - "") ;; - *) { { $as_echo "$as_me:$LINENO: error: invalid tag name: $tagname" >&5 -$as_echo "$as_me: error: invalid tag name: $tagname" >&2;} - { (exit 1); exit 1; }; } - ;; - esac - - if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null - then - { { $as_echo "$as_me:$LINENO: error: tag name \"$tagname\" already exists" >&5 -$as_echo "$as_me: error: tag name \"$tagname\" already exists" >&2;} - { (exit 1); exit 1; }; } - fi - - # Update the list of available tags. - if test -n "$tagname"; then - echo appending configuration tag \"$tagname\" to $ofile - - case $tagname in - CXX) - if test -n "$CXX" && ( test "X$CXX" != "Xno" && - ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || - (test "X$CXX" != "Xg++"))) ; then - ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - - - - -archive_cmds_need_lc_CXX=no -allow_undefined_flag_CXX= -always_export_symbols_CXX=no -archive_expsym_cmds_CXX= -export_dynamic_flag_spec_CXX= -hardcode_direct_CXX=no -hardcode_libdir_flag_spec_CXX= -hardcode_libdir_flag_spec_ld_CXX= -hardcode_libdir_separator_CXX= -hardcode_minus_L_CXX=no -hardcode_shlibpath_var_CXX=unsupported -hardcode_automatic_CXX=no -module_cmds_CXX= -module_expsym_cmds_CXX= -link_all_deplibs_CXX=unknown -old_archive_cmds_CXX=$old_archive_cmds -no_undefined_flag_CXX= -whole_archive_flag_spec_CXX= -enable_shared_with_static_runtimes_CXX=no - -# Dependencies to place before and after the object being linked: -predep_objects_CXX= -postdep_objects_CXX= -predeps_CXX= -postdeps_CXX= -compiler_lib_search_path_CXX= - -# Source file extension for C++ test sources. -ac_ext=cpp - -# Object file extension for compiled C++ test sources. -objext=o -objext_CXX=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="int some_variable = 0;" - -# Code to be used in simple link tests -lt_simple_link_test_code='int main(int, char *[]) { return(0); }' - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - -# Allow CC to be a program name with arguments. -compiler=$CC - - -# save warnings/boilerplate of simple test code -ac_outfile=conftest.$ac_objext -echo "$lt_simple_compile_test_code" >conftest.$ac_ext -eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_compiler_boilerplate=`cat conftest.err` -$rm conftest* - -ac_outfile=conftest.$ac_objext -echo "$lt_simple_link_test_code" >conftest.$ac_ext -eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_linker_boilerplate=`cat conftest.err` -$rm conftest* - - -# Allow CC to be a program name with arguments. -lt_save_CC=$CC -lt_save_LD=$LD -lt_save_GCC=$GCC -GCC=$GXX -lt_save_with_gnu_ld=$with_gnu_ld -lt_save_path_LD=$lt_cv_path_LD -if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then - lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx -else - $as_unset lt_cv_prog_gnu_ld -fi -if test -n "${lt_cv_path_LDCXX+set}"; then - lt_cv_path_LD=$lt_cv_path_LDCXX -else - $as_unset lt_cv_path_LD -fi -test -z "${LDCXX+set}" || LD=$LDCXX -CC=${CXX-"c++"} -compiler=$CC -compiler_CXX=$CC -for cc_temp in $compiler""; do - case $cc_temp in - compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; - distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` - - -# We don't want -fno-exception wen compiling C++ code, so set the -# no_builtin_flag separately -if test "$GXX" = yes; then - lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' -else - lt_prog_compiler_no_builtin_flag_CXX= -fi - -if test "$GXX" = yes; then - # Set up default GNU C++ configuration - - -# Check whether --with-gnu-ld was given. -if test "${with_gnu_ld+set}" = set; then - withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes -else - with_gnu_ld=no -fi - -ac_prog=ld -if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - { $as_echo "$as_me:$LINENO: checking for ld used by $CC" >&5 -$as_echo_n "checking for ld used by $CC... " >&6; } - case $host in - *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw - ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; - *) - ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; - esac - case $ac_prog in - # Accept absolute paths. - [\\/]* | ?:[\\/]*) - re_direlt='/[^/][^/]*/\.\./' - # Canonicalize the pathname of ld - ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` - while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do - ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` - done - test -z "$LD" && LD="$ac_prog" - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac -elif test "$with_gnu_ld" = yes; then - { $as_echo "$as_me:$LINENO: checking for GNU ld" >&5 -$as_echo_n "checking for GNU ld... " >&6; } -else - { $as_echo "$as_me:$LINENO: checking for non-GNU ld" >&5 -$as_echo_n "checking for non-GNU ld... " >&6; } -fi -if test "${lt_cv_path_LD+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -z "$LD"; then - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - lt_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some variants of GNU ld only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in - *GNU* | *'with BFD'*) - test "$with_gnu_ld" != no && break - ;; - *) - test "$with_gnu_ld" != yes && break - ;; - esac - fi - done - IFS="$lt_save_ifs" -else - lt_cv_path_LD="$LD" # Let the user override the test with a path. -fi -fi - -LD="$lt_cv_path_LD" -if test -n "$LD"; then - { $as_echo "$as_me:$LINENO: result: $LD" >&5 -$as_echo "$LD" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi -test -z "$LD" && { { $as_echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 -$as_echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} - { (exit 1); exit 1; }; } -{ $as_echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 -$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } -if test "${lt_cv_prog_gnu_ld+set}" = set; then - $as_echo_n "(cached) " >&6 -else - # I'd rather use --version here, but apparently some GNU lds only accept -v. -case `$LD -v 2>&1 </dev/null` in -*GNU* | *'with BFD'*) - lt_cv_prog_gnu_ld=yes - ;; -*) - lt_cv_prog_gnu_ld=no - ;; -esac -fi -{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5 -$as_echo "$lt_cv_prog_gnu_ld" >&6; } -with_gnu_ld=$lt_cv_prog_gnu_ld - - - - # Check if GNU C++ uses GNU ld as the underlying linker, since the - # archiving commands below assume that GNU ld is being used. - if test "$with_gnu_ld" = yes; then - archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - - hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' - export_dynamic_flag_spec_CXX='${wl}--export-dynamic' - - # If archive_cmds runs LD, not CC, wlarc should be empty - # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to - # investigate it a little bit more. (MM) - wlarc='${wl}' - - # ancient GNU ld didn't support --whole-archive et. al. - if eval "`$CC -print-prog-name=ld` --help 2>&1" | \ - grep 'no-whole-archive' > /dev/null; then - whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - whole_archive_flag_spec_CXX= - fi - else - with_gnu_ld=no - wlarc= - - # A generic and very simple default shared library creation - # command for GNU C++ for the case where it uses the native - # linker, instead of GNU ld. If possible, this setting should - # overridden to take advantage of the native linker features on - # the platform it is being used on. - archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' - fi - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' - -else - GXX=no - with_gnu_ld=no - wlarc= -fi - -# PORTME: fill in a description of your system's C++ link characteristics -{ $as_echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 -$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } -ld_shlibs_CXX=yes -case $host_os in - aix3*) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - aix4* | aix5*) - if test "$host_cpu" = ia64; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - exp_sym_flag='-Bexport' - no_entry_flag="" - else - aix_use_runtimelinking=no - - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[23]|aix4.[23].*|aix5*) - for ld_flag in $LDFLAGS; do - case $ld_flag in - *-brtl*) - aix_use_runtimelinking=yes - break - ;; - esac - done - ;; - esac - - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a library - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - archive_cmds_CXX='' - hardcode_direct_CXX=yes - hardcode_libdir_separator_CXX=':' - link_all_deplibs_CXX=yes - - if test "$GXX" = yes; then - case $host_os in aix4.[012]|aix4.[012].*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && \ - strings "$collect2name" | grep resolve_lib_name >/dev/null - then - # We have reworked collect2 - : - else - # We have old collect2 - hardcode_direct_CXX=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - hardcode_minus_L_CXX=yes - hardcode_libdir_flag_spec_CXX='-L$libdir' - hardcode_libdir_separator_CXX= - fi - ;; - esac - shared_flag='-shared' - if test "$aix_use_runtimelinking" = yes; then - shared_flag="$shared_flag "'${wl}-G' - fi - else - # not using gcc - if test "$host_cpu" = ia64; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to export. - always_export_symbols_CXX=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - allow_undefined_flag_CXX='-berok' - # Determine the default libpath from the value encoded in an empty executable. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - -lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\(.*\)$/\1/ - p - } - }' -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then - aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -fi -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" - - archive_expsym_cmds_CXX="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' - allow_undefined_flag_CXX="-z nodefs" - archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an empty executable. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - -lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\(.*\)$/\1/ - p - } - }' -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then - aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -fi -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - no_undefined_flag_CXX=' ${wl}-bernotok' - allow_undefined_flag_CXX=' ${wl}-berok' - # Exported symbols can be pulled into shared objects from archives - whole_archive_flag_spec_CXX='$convenience' - archive_cmds_need_lc_CXX=yes - # This is similar to how AIX traditionally builds its shared libraries. - archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - - beos*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - allow_undefined_flag_CXX=unsupported - # Joseph Beckenbach <jrb3@best.com> says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - else - ld_shlibs_CXX=no - fi - ;; - - chorus*) - case $cc_basename in - *) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - esac - ;; - - cygwin* | mingw* | pw32*) - # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, - # as there is no search path for DLLs. - hardcode_libdir_flag_spec_CXX='-L$libdir' - allow_undefined_flag_CXX=unsupported - always_export_symbols_CXX=no - enable_shared_with_static_runtimes_CXX=yes - - if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then - archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else - ld_shlibs_CXX=no - fi - ;; - darwin* | rhapsody*) - case $host_os in - rhapsody* | darwin1.[012]) - allow_undefined_flag_CXX='${wl}-undefined ${wl}suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[012]) - allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' - ;; - 10.*) - allow_undefined_flag_CXX='${wl}-undefined ${wl}dynamic_lookup' - ;; - esac - fi - ;; - esac - archive_cmds_need_lc_CXX=no - hardcode_direct_CXX=no - hardcode_automatic_CXX=yes - hardcode_shlibpath_var_CXX=unsupported - whole_archive_flag_spec_CXX='' - link_all_deplibs_CXX=yes - - if test "$GXX" = yes ; then - lt_int_apple_cc_single_mod=no - output_verbose_link_cmd='echo' - if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then - lt_int_apple_cc_single_mod=yes - fi - if test "X$lt_int_apple_cc_single_mod" = Xyes ; then - archive_cmds_CXX='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - else - archive_cmds_CXX='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - fi - module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds - if test "X$lt_int_apple_cc_single_mod" = Xyes ; then - archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - else - archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - fi - module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - else - case $cc_basename in - xlc*) - output_verbose_link_cmd='echo' - archive_cmds_CXX='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' - module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds - archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - ;; - *) - ld_shlibs_CXX=no - ;; - esac - fi - ;; - - dgux*) - case $cc_basename in - ec++*) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - ghcx*) - # Green Hills C++ Compiler - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - *) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - esac - ;; - freebsd[12]*) - # C++ shared libraries reported to be fairly broken before switch to ELF - ld_shlibs_CXX=no - ;; - freebsd-elf*) - archive_cmds_need_lc_CXX=no - ;; - freebsd* | dragonfly*) - # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF - # conventions - ld_shlibs_CXX=yes - ;; - gnu*) - ;; - hpux9*) - hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' - hardcode_libdir_separator_CXX=: - export_dynamic_flag_spec_CXX='${wl}-E' - hardcode_direct_CXX=yes - hardcode_minus_L_CXX=yes # Not in the search PATH, - # but as the default - # location of the library. - - case $cc_basename in - CC*) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - aCC*) - archive_cmds_CXX='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[-]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - ;; - *) - if test "$GXX" = yes; then - archive_cmds_CXX='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - fi - ;; - esac - ;; - hpux10*|hpux11*) - if test $with_gnu_ld = no; then - hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' - hardcode_libdir_separator_CXX=: - - case $host_cpu in - hppa*64*|ia64*) ;; - *) - export_dynamic_flag_spec_CXX='${wl}-E' - ;; - esac - fi - case $host_cpu in - hppa*64*|ia64*) - hardcode_direct_CXX=no - hardcode_shlibpath_var_CXX=no - ;; - *) - hardcode_direct_CXX=yes - hardcode_minus_L_CXX=yes # Not in the search PATH, - # but as the default - # location of the library. - ;; - esac - - case $cc_basename in - CC*) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - aCC*) - case $host_cpu in - hppa*64*) - archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - ia64*) - archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - *) - archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - esac - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - ;; - *) - if test "$GXX" = yes; then - if test $with_gnu_ld = no; then - case $host_cpu in - hppa*64*) - archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - ia64*) - archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - *) - archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - esac - fi - else - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - fi - ;; - esac - ;; - interix[3-9]*) - hardcode_direct_CXX=no - hardcode_shlibpath_var_CXX=no - hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' - export_dynamic_flag_spec_CXX='${wl}-E' - # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. - # Instead, shared libraries are loaded at an image base (0x10000000 by - # default) and relocated if they conflict, which is a slow very memory - # consuming and fragmenting process. To avoid this, we pick a random, - # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link - # time. Moving up from 0x10000000 also allows more sbrk(2) space. - archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - ;; - irix5* | irix6*) - case $cc_basename in - CC*) - # SGI C++ - archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - - # Archives containing C++ object files must be created using - # "CC -ar", where "CC" is the IRIX C++ compiler. This is - # necessary to make sure instantiated templates are included - # in the archive. - old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' - ;; - *) - if test "$GXX" = yes; then - if test "$with_gnu_ld" = no; then - archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' - fi - fi - link_all_deplibs_CXX=yes - ;; - esac - hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_CXX=: - ;; - linux* | k*bsd*-gnu) - case $cc_basename in - KCC*) - # Kuck and Associates, Inc. (KAI) C++ Compiler - - # KCC will only create a shared library if the output file - # ends with ".so" (or ".sl" for HP-UX), so rename the library - # to its proper name (with version) after linking. - archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' - archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - - hardcode_libdir_flag_spec_CXX='${wl}--rpath,$libdir' - export_dynamic_flag_spec_CXX='${wl}--export-dynamic' - - # Archives containing C++ object files must be created using - # "CC -Bstatic", where "CC" is the KAI C++ compiler. - old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' - ;; - icpc*) - # Intel C++ - with_gnu_ld=yes - # version 8.0 and above of icpc choke on multiply defined symbols - # if we add $predep_objects and $postdep_objects, however 7.1 and - # earlier do not add the objects themselves. - case `$CC -V 2>&1` in - *"Version 7."*) - archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - ;; - *) # Version 8.0 or newer - tmp_idyn= - case $host_cpu in - ia64*) tmp_idyn=' -i_dynamic';; - esac - archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - ;; - esac - archive_cmds_need_lc_CXX=no - hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' - export_dynamic_flag_spec_CXX='${wl}--export-dynamic' - whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' - ;; - pgCC*) - # Portland Group C++ compiler - archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' - archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' - - hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' - export_dynamic_flag_spec_CXX='${wl}--export-dynamic' - whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' - ;; - cxx*) - # Compaq C++ - archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' - - runpath_var=LD_RUN_PATH - hardcode_libdir_flag_spec_CXX='-rpath $libdir' - hardcode_libdir_separator_CXX=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C++ 5.9 - no_undefined_flag_CXX=' -zdefs' - archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' - hardcode_libdir_flag_spec_CXX='-R$libdir' - whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' - - # Not sure whether something based on - # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 - # would be better. - output_verbose_link_cmd='echo' - - # Archives containing C++ object files must be created using - # "CC -xar", where "CC" is the Sun C++ compiler. This is - # necessary to make sure instantiated templates are included - # in the archive. - old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' - ;; - esac - ;; - esac - ;; - lynxos*) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - m88k*) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - mvs*) - case $cc_basename in - cxx*) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - *) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - esac - ;; - netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' - wlarc= - hardcode_libdir_flag_spec_CXX='-R$libdir' - hardcode_direct_CXX=yes - hardcode_shlibpath_var_CXX=no - fi - # Workaround some broken pre-1.5 toolchains - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' - ;; - openbsd2*) - # C++ shared libraries are fairly broken - ld_shlibs_CXX=no - ;; - openbsd*) - if test -f /usr/libexec/ld.so; then - hardcode_direct_CXX=yes - hardcode_shlibpath_var_CXX=no - archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' - hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' - export_dynamic_flag_spec_CXX='${wl}-E' - whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - fi - output_verbose_link_cmd='echo' - else - ld_shlibs_CXX=no - fi - ;; - osf3*) - case $cc_basename in - KCC*) - # Kuck and Associates, Inc. (KAI) C++ Compiler - - # KCC will only create a shared library if the output file - # ends with ".so" (or ".sl" for HP-UX), so rename the library - # to its proper name (with version) after linking. - archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' - - hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' - hardcode_libdir_separator_CXX=: - - # Archives containing C++ object files must be created using - # "CC -Bstatic", where "CC" is the KAI C++ compiler. - old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' - - ;; - RCC*) - # Rational C++ 2.4.1 - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - cxx*) - allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - - hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_CXX=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - ;; - *) - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - - hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_CXX=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' - - else - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - fi - ;; - esac - ;; - osf4* | osf5*) - case $cc_basename in - KCC*) - # Kuck and Associates, Inc. (KAI) C++ Compiler - - # KCC will only create a shared library if the output file - # ends with ".so" (or ".sl" for HP-UX), so rename the library - # to its proper name (with version) after linking. - archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' - - hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' - hardcode_libdir_separator_CXX=: - - # Archives containing C++ object files must be created using - # the KAI C++ compiler. - old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' - ;; - RCC*) - # Rational C++ 2.4.1 - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - cxx*) - allow_undefined_flag_CXX=' -expect_unresolved \*' - archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ - echo "-hidden">> $lib.exp~ - $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~ - $rm $lib.exp' - - hardcode_libdir_flag_spec_CXX='-rpath $libdir' - hardcode_libdir_separator_CXX=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' - ;; - *) - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - - hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_CXX=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' - - else - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - fi - ;; - esac - ;; - psos*) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - sunos4*) - case $cc_basename in - CC*) - # Sun C++ 4.x - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - lcc*) - # Lucid - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - *) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - esac - ;; - solaris*) - case $cc_basename in - CC*) - # Sun C++ 4.2, 5.x and Centerline C++ - archive_cmds_need_lc_CXX=yes - no_undefined_flag_CXX=' -zdefs' - archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' - - hardcode_libdir_flag_spec_CXX='-R$libdir' - hardcode_shlibpath_var_CXX=no - case $host_os in - solaris2.[0-5] | solaris2.[0-5].*) ;; - *) - # The compiler driver will combine and reorder linker options, - # but understands `-z linker_flag'. - # Supported since Solaris 2.6 (maybe 2.5.1?) - whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract' - ;; - esac - link_all_deplibs_CXX=yes - - output_verbose_link_cmd='echo' - - # Archives containing C++ object files must be created using - # "CC -xar", where "CC" is the Sun C++ compiler. This is - # necessary to make sure instantiated templates are included - # in the archive. - old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' - ;; - gcx*) - # Green Hills C++ Compiler - archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - - # The C++ compiler must be used to create the archive. - old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' - ;; - *) - # GNU C++ compiler with Solaris linker - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - no_undefined_flag_CXX=' ${wl}-z ${wl}defs' - if $CC --version | grep -v '^2\.7' > /dev/null; then - archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" - else - # g++ 2.7 appears to require `-G' NOT `-shared' on this - # platform. - archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" - fi - - hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' - case $host_os in - solaris2.[0-5] | solaris2.[0-5].*) ;; - *) - whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' - ;; - esac - fi - ;; - esac - ;; - sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) - no_undefined_flag_CXX='${wl}-z,text' - archive_cmds_need_lc_CXX=no - hardcode_shlibpath_var_CXX=no - runpath_var='LD_RUN_PATH' - - case $cc_basename in - CC*) - archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - ;; - sysv5* | sco3.2v5* | sco5v6*) - # Note: We can NOT use -z defs as we might desire, because we do not - # link with -lc, and that would cause any symbols used from libc to - # always be unresolved, which means just about no library would - # ever link correctly. If we're not using GNU ld we use -z text - # though, which does catch some bad symbols but isn't as heavy-handed - # as -z defs. - # For security reasons, it is highly recommended that you always - # use absolute paths for naming shared libraries, and exclude the - # DT_RUNPATH tag from executables and libraries. But doing so - # requires that you compile everything twice, which is a pain. - # So that behaviour is only enabled if SCOABSPATH is set to a - # non-empty value in the environment. Most likely only useful for - # creating official distributions of packages. - # This is a hack until libtool officially supports absolute path - # names for shared libraries. - no_undefined_flag_CXX='${wl}-z,text' - allow_undefined_flag_CXX='${wl}-z,nodefs' - archive_cmds_need_lc_CXX=no - hardcode_shlibpath_var_CXX=no - hardcode_libdir_flag_spec_CXX='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' - hardcode_libdir_separator_CXX=':' - link_all_deplibs_CXX=yes - export_dynamic_flag_spec_CXX='${wl}-Bexport' - runpath_var='LD_RUN_PATH' - - case $cc_basename in - CC*) - archive_cmds_CXX='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - archive_cmds_CXX='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - ;; - tandem*) - case $cc_basename in - NCC*) - # NonStop-UX NCC 3.20 - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - *) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - esac - ;; - vxworks*) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; - *) - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no - ;; -esac -{ $as_echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 -$as_echo "$ld_shlibs_CXX" >&6; } -test "$ld_shlibs_CXX" = no && can_build_shared=no - -GCC_CXX="$GXX" -LD_CXX="$LD" - - -cat > conftest.$ac_ext <<EOF -class Foo -{ -public: - Foo (void) { a = 0; } -private: - int a; -}; -EOF - -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - # Parse the compiler output and extract the necessary - # objects, libraries and library flags. - - # Sentinel used to keep track of whether or not we are before - # the conftest object file. - pre_test_object_deps_done=no - - # The `*' in the case matches for architectures that use `case' in - # $output_verbose_cmd can trigger glob expansion during the loop - # eval without this substitution. - output_verbose_link_cmd=`$echo "X$output_verbose_link_cmd" | $Xsed -e "$no_glob_subst"` - - for p in `eval $output_verbose_link_cmd`; do - case $p in - - -L* | -R* | -l*) - # Some compilers place space between "-{L,R}" and the path. - # Remove the space. - if test $p = "-L" \ - || test $p = "-R"; then - prev=$p - continue - else - prev= - fi - - if test "$pre_test_object_deps_done" = no; then - case $p in - -L* | -R*) - # Internal compiler library paths should come after those - # provided the user. The postdeps already come after the - # user supplied libs so there is no need to process them. - if test -z "$compiler_lib_search_path_CXX"; then - compiler_lib_search_path_CXX="${prev}${p}" - else - compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}" - fi - ;; - # The "-l" case would never come before the object being - # linked, so don't bother handling this case. - esac - else - if test -z "$postdeps_CXX"; then - postdeps_CXX="${prev}${p}" - else - postdeps_CXX="${postdeps_CXX} ${prev}${p}" - fi - fi - ;; - - *.$objext) - # This assumes that the test object file only shows up - # once in the compiler output. - if test "$p" = "conftest.$objext"; then - pre_test_object_deps_done=yes - continue - fi - - if test "$pre_test_object_deps_done" = no; then - if test -z "$predep_objects_CXX"; then - predep_objects_CXX="$p" - else - predep_objects_CXX="$predep_objects_CXX $p" - fi - else - if test -z "$postdep_objects_CXX"; then - postdep_objects_CXX="$p" - else - postdep_objects_CXX="$postdep_objects_CXX $p" - fi - fi - ;; - - *) ;; # Ignore the rest. - - esac - done - - # Clean up. - rm -f a.out a.exe -else - echo "libtool.m4: error: problem compiling CXX test program" -fi - -$rm -f confest.$objext - -# PORTME: override above test on systems where it is broken -case $host_os in -interix[3-9]*) - # Interix 3.5 installs completely hosed .la files for C++, so rather than - # hack all around it, let's just trust "g++" to DTRT. - predep_objects_CXX= - postdep_objects_CXX= - postdeps_CXX= - ;; - -linux*) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C++ 5.9 - # - # The more standards-conforming stlport4 library is - # incompatible with the Cstd library. Avoid specifying - # it if it's in CXXFLAGS. Ignore libCrun as - # -library=stlport4 depends on it. - case " $CXX $CXXFLAGS " in - *" -library=stlport4 "*) - solaris_use_stlport4=yes - ;; - esac - if test "$solaris_use_stlport4" != yes; then - postdeps_CXX='-library=Cstd -library=Crun' - fi - ;; - esac - ;; - -solaris*) - case $cc_basename in - CC*) - # The more standards-conforming stlport4 library is - # incompatible with the Cstd library. Avoid specifying - # it if it's in CXXFLAGS. Ignore libCrun as - # -library=stlport4 depends on it. - case " $CXX $CXXFLAGS " in - *" -library=stlport4 "*) - solaris_use_stlport4=yes - ;; - esac - - # Adding this requires a known-good setup of shared libraries for - # Sun compiler versions before 5.6, else PIC objects from an old - # archive will be linked into the output, leading to subtle bugs. - if test "$solaris_use_stlport4" != yes; then - postdeps_CXX='-library=Cstd -library=Crun' - fi - ;; - esac - ;; -esac - - -case " $postdeps_CXX " in -*" -lc "*) archive_cmds_need_lc_CXX=no ;; -esac - -lt_prog_compiler_wl_CXX= -lt_prog_compiler_pic_CXX= -lt_prog_compiler_static_CXX= - -{ $as_echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 -$as_echo_n "checking for $compiler option to produce PIC... " >&6; } - - # C++ specific cases for pic, static, wl, etc. - if test "$GXX" = yes; then - lt_prog_compiler_wl_CXX='-Wl,' - lt_prog_compiler_static_CXX='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static_CXX='-Bstatic' - fi - ;; - amigaos*) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. - lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' - ;; - beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - mingw* | cygwin* | os2* | pw32*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - # Although the cygwin gcc ignores -fPIC, still need this for old-style - # (--disable-auto-import) libraries - lt_prog_compiler_pic_CXX='-DDLL_EXPORT' - ;; - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - lt_prog_compiler_pic_CXX='-fno-common' - ;; - *djgpp*) - # DJGPP does not support shared libraries at all - lt_prog_compiler_pic_CXX= - ;; - interix[3-9]*) - # Interix 3.x gcc -fpic/-fPIC options generate broken code. - # Instead, we relocate shared libraries at runtime. - ;; - sysv4*MP*) - if test -d /usr/nec; then - lt_prog_compiler_pic_CXX=-Kconform_pic - fi - ;; - hpux*) - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case $host_cpu in - hppa*64*|ia64*) - ;; - *) - lt_prog_compiler_pic_CXX='-fPIC' - ;; - esac - ;; - *) - lt_prog_compiler_pic_CXX='-fPIC' - ;; - esac - else - case $host_os in - aix4* | aix5*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static_CXX='-Bstatic' - else - lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' - fi - ;; - chorus*) - case $cc_basename in - cxch68*) - # Green Hills C++ Compiler - # _LT_AC_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" - ;; - esac - ;; - darwin*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - case $cc_basename in - xlc*) - lt_prog_compiler_pic_CXX='-qnocommon' - lt_prog_compiler_wl_CXX='-Wl,' - ;; - esac - ;; - dgux*) - case $cc_basename in - ec++*) - lt_prog_compiler_pic_CXX='-KPIC' - ;; - ghcx*) - # Green Hills C++ Compiler - lt_prog_compiler_pic_CXX='-pic' - ;; - *) - ;; - esac - ;; - freebsd* | dragonfly*) - # FreeBSD uses GNU C++ - ;; - hpux9* | hpux10* | hpux11*) - case $cc_basename in - CC*) - lt_prog_compiler_wl_CXX='-Wl,' - lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' - if test "$host_cpu" != ia64; then - lt_prog_compiler_pic_CXX='+Z' - fi - ;; - aCC*) - lt_prog_compiler_wl_CXX='-Wl,' - lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' - case $host_cpu in - hppa*64*|ia64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic_CXX='+Z' - ;; - esac - ;; - *) - ;; - esac - ;; - interix*) - # This is c89, which is MS Visual C++ (no shared libs) - # Anyone wants to do a port? - ;; - irix5* | irix6* | nonstopux*) - case $cc_basename in - CC*) - lt_prog_compiler_wl_CXX='-Wl,' - lt_prog_compiler_static_CXX='-non_shared' - # CC pic flag -KPIC is the default. - ;; - *) - ;; - esac - ;; - linux* | k*bsd*-gnu) - case $cc_basename in - KCC*) - # KAI C++ Compiler - lt_prog_compiler_wl_CXX='--backend -Wl,' - lt_prog_compiler_pic_CXX='-fPIC' - ;; - icpc* | ecpc*) - # Intel C++ - lt_prog_compiler_wl_CXX='-Wl,' - lt_prog_compiler_pic_CXX='-KPIC' - lt_prog_compiler_static_CXX='-static' - ;; - pgCC*) - # Portland Group C++ compiler. - lt_prog_compiler_wl_CXX='-Wl,' - lt_prog_compiler_pic_CXX='-fpic' - lt_prog_compiler_static_CXX='-Bstatic' - ;; - cxx*) - # Compaq C++ - # Make sure the PIC flag is empty. It appears that all Alpha - # Linux and Compaq Tru64 Unix objects are PIC. - lt_prog_compiler_pic_CXX= - lt_prog_compiler_static_CXX='-non_shared' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C++ 5.9 - lt_prog_compiler_pic_CXX='-KPIC' - lt_prog_compiler_static_CXX='-Bstatic' - lt_prog_compiler_wl_CXX='-Qoption ld ' - ;; - esac - ;; - esac - ;; - lynxos*) - ;; - m88k*) - ;; - mvs*) - case $cc_basename in - cxx*) - lt_prog_compiler_pic_CXX='-W c,exportall' - ;; - *) - ;; - esac - ;; - netbsd*) - ;; - osf3* | osf4* | osf5*) - case $cc_basename in - KCC*) - lt_prog_compiler_wl_CXX='--backend -Wl,' - ;; - RCC*) - # Rational C++ 2.4.1 - lt_prog_compiler_pic_CXX='-pic' - ;; - cxx*) - # Digital/Compaq C++ - lt_prog_compiler_wl_CXX='-Wl,' - # Make sure the PIC flag is empty. It appears that all Alpha - # Linux and Compaq Tru64 Unix objects are PIC. - lt_prog_compiler_pic_CXX= - lt_prog_compiler_static_CXX='-non_shared' - ;; - *) - ;; - esac - ;; - psos*) - ;; - solaris*) - case $cc_basename in - CC*) - # Sun C++ 4.2, 5.x and Centerline C++ - lt_prog_compiler_pic_CXX='-KPIC' - lt_prog_compiler_static_CXX='-Bstatic' - lt_prog_compiler_wl_CXX='-Qoption ld ' - ;; - gcx*) - # Green Hills C++ Compiler - lt_prog_compiler_pic_CXX='-PIC' - ;; - *) - ;; - esac - ;; - sunos4*) - case $cc_basename in - CC*) - # Sun C++ 4.x - lt_prog_compiler_pic_CXX='-pic' - lt_prog_compiler_static_CXX='-Bstatic' - ;; - lcc*) - # Lucid - lt_prog_compiler_pic_CXX='-pic' - ;; - *) - ;; - esac - ;; - tandem*) - case $cc_basename in - NCC*) - # NonStop-UX NCC 3.20 - lt_prog_compiler_pic_CXX='-KPIC' - ;; - *) - ;; - esac - ;; - sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) - case $cc_basename in - CC*) - lt_prog_compiler_wl_CXX='-Wl,' - lt_prog_compiler_pic_CXX='-KPIC' - lt_prog_compiler_static_CXX='-Bstatic' - ;; - esac - ;; - vxworks*) - ;; - *) - lt_prog_compiler_can_build_shared_CXX=no - ;; - esac - fi - -{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5 -$as_echo "$lt_prog_compiler_pic_CXX" >&6; } - -# -# Check to make sure the PIC flag actually works. -# -if test -n "$lt_prog_compiler_pic_CXX"; then - -{ $as_echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 -$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; } -if test "${lt_prog_compiler_pic_works_CXX+set}" = set; then - $as_echo_n "(cached) " >&6 -else - lt_prog_compiler_pic_works_CXX=no - ac_outfile=conftest.$ac_objext - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:11972: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:11976: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings other than the usual output. - $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then - lt_prog_compiler_pic_works_CXX=yes - fi - fi - $rm conftest* - -fi -{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_CXX" >&5 -$as_echo "$lt_prog_compiler_pic_works_CXX" >&6; } - -if test x"$lt_prog_compiler_pic_works_CXX" = xyes; then - case $lt_prog_compiler_pic_CXX in - "" | " "*) ;; - *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; - esac -else - lt_prog_compiler_pic_CXX= - lt_prog_compiler_can_build_shared_CXX=no -fi - -fi -case $host_os in - # For platforms which do not support PIC, -DPIC is meaningless: - *djgpp*) - lt_prog_compiler_pic_CXX= - ;; - *) - lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" - ;; -esac - -# -# Check to make sure the static flag actually works. -# -wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" -{ $as_echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 -$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } -if test "${lt_prog_compiler_static_works_CXX+set}" = set; then - $as_echo_n "(cached) " >&6 -else - lt_prog_compiler_static_works_CXX=no - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS $lt_tmp_static_flag" - echo "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then - # The linker can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - # Append any errors to the config.log. - cat conftest.err 1>&5 - $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if diff conftest.exp conftest.er2 >/dev/null; then - lt_prog_compiler_static_works_CXX=yes - fi - else - lt_prog_compiler_static_works_CXX=yes - fi - fi - $rm conftest* - LDFLAGS="$save_LDFLAGS" - -fi -{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_CXX" >&5 -$as_echo "$lt_prog_compiler_static_works_CXX" >&6; } - -if test x"$lt_prog_compiler_static_works_CXX" = xyes; then - : -else - lt_prog_compiler_static_CXX= -fi - - -{ $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 -$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } -if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_c_o_CXX=no - $rm -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - lt_compiler_flag="-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:12076: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:12080: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp - $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 - if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then - lt_cv_prog_compiler_c_o_CXX=yes - fi - fi - chmod u+w . 2>&5 - $rm conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files - $rm out/* && rmdir out - cd .. - rmdir conftest - $rm conftest* - -fi -{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5 -$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } - - -hard_links="nottested" -if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then - # do not overwrite the value of need_locks provided by the user - { $as_echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 -$as_echo_n "checking if we can lock with hard links... " >&6; } - hard_links=yes - $rm conftest* - ln conftest.a conftest.b 2>/dev/null && hard_links=no - touch conftest.a - ln conftest.a conftest.b 2>&5 || hard_links=no - ln conftest.a conftest.b 2>/dev/null && hard_links=no - { $as_echo "$as_me:$LINENO: result: $hard_links" >&5 -$as_echo "$hard_links" >&6; } - if test "$hard_links" = no; then - { $as_echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 -$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} - need_locks=warn - fi -else - need_locks=no -fi - -{ $as_echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 -$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } - - export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - case $host_os in - aix4* | aix5*) - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm - if $NM -V 2>&1 | grep 'GNU' > /dev/null; then - export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' - else - export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' - fi - ;; - pw32*) - export_symbols_cmds_CXX="$ltdll_cmds" - ;; - cygwin* | mingw*) - export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;/^.*[ ]__nm__/s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' - ;; - *) - export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - ;; - esac - -{ $as_echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 -$as_echo "$ld_shlibs_CXX" >&6; } -test "$ld_shlibs_CXX" = no && can_build_shared=no - -# -# Do we need to explicitly link libc? -# -case "x$archive_cmds_need_lc_CXX" in -x|xyes) - # Assume -lc should be added - archive_cmds_need_lc_CXX=yes - - if test "$enable_shared" = yes && test "$GCC" = yes; then - case $archive_cmds_CXX in - *'~'*) - # FIXME: we may have to deal with multi-command sequences. - ;; - '$CC '*) - # Test whether the compiler implicitly links with -lc since on some - # systems, -lgcc has to come before -lc. If gcc already passes -lc - # to ld, don't add -lc before -lgcc. - { $as_echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 -$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } - $rm conftest* - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } 2>conftest.err; then - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$lt_prog_compiler_wl_CXX - pic_flag=$lt_prog_compiler_pic_CXX - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - lt_save_allow_undefined_flag=$allow_undefined_flag_CXX - allow_undefined_flag_CXX= - if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 - (eval $archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - then - archive_cmds_need_lc_CXX=no - else - archive_cmds_need_lc_CXX=yes - fi - allow_undefined_flag_CXX=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $rm conftest* - { $as_echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5 -$as_echo "$archive_cmds_need_lc_CXX" >&6; } - ;; - esac - fi - ;; -esac - -{ $as_echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 -$as_echo_n "checking dynamic linker characteristics... " >&6; } -library_names_spec= -libname_spec='lib$name' -soname_spec= -shrext_cmds=".so" -postinstall_cmds= -postuninstall_cmds= -finish_cmds= -finish_eval= -shlibpath_var= -shlibpath_overrides_runpath=unknown -version_type=none -dynamic_linker="$host_os ld.so" -sys_lib_dlsearch_path_spec="/lib /usr/lib" - -need_lib_prefix=unknown -hardcode_into_libs=no - -# when you set need_version to no, make sure it does not cause -set_version -# flags to be left without arguments -need_version=unknown - -case $host_os in -aix3*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' - shlibpath_var=LIBPATH - - # AIX 3 has no versioning support, so we append a major version to the name. - soname_spec='${libname}${release}${shared_ext}$major' - ;; - -aix4* | aix5*) - version_type=linux - need_lib_prefix=no - need_version=no - hardcode_into_libs=yes - if test "$host_cpu" = ia64; then - # AIX 5 supports IA64 - library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - else - # With GCC up to 2.95.x, collect2 would create an import file - # for dependence libraries. The import file would start with - # the line `#! .'. This would cause the generated library to - # depend on `.', always an invalid library. This was fixed in - # development snapshots of GCC prior to 3.0. - case $host_os in - aix4 | aix4.[01] | aix4.[01].*) - if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' - echo ' yes ' - echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then - : - else - can_build_shared=no - fi - ;; - esac - # AIX (on Power*) has no versioning support, so currently we can not hardcode correct - # soname into executable. Probably we can add versioning support to - # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" = yes; then - # If using run time linking (on AIX 4.2 or later) use lib<name>.so - # instead of lib<name>.a to let people know that these are not - # typical AIX shared libraries. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - else - # We preserve .a as extension for shared libraries through AIX4.2 - # and later when we are not doing run time linking. - library_names_spec='${libname}${release}.a $libname.a' - soname_spec='${libname}${release}${shared_ext}$major' - fi - shlibpath_var=LIBPATH - fi - ;; - -amigaos*) - library_names_spec='$libname.ixlibrary $libname.a' - # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' - ;; - -beos*) - library_names_spec='${libname}${shared_ext}' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; - -bsdi[45]*) - version_type=linux - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" - sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" - # the default ld.so.conf also contains /usr/contrib/lib and - # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow - # libtool to hard-code these into programs - ;; - -cygwin* | mingw* | pw32*) - version_type=windows - shrext_cmds=".dll" - need_version=no - need_lib_prefix=no - - case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32*) - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname~ - chmod a+x \$dldir/$dlname' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $rm \$dlpath' - shlibpath_overrides_runpath=yes - - case $host_os in - cygwin*) - # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" - ;; - mingw*) - # MinGW DLLs use traditional 'lib' prefix - soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then - # It is most probably a Windows format PATH printed by - # mingw gcc, but we are running on Cygwin. Gcc prints its search - # path with ; separators, and with drive letters. We can handle the - # drive letters (cygwin fileutils understands them), so leave them, - # especially as we might pass files found there to a mingw objdump, - # which wouldn't understand a cygwinified path. Ahh. - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - ;; - pw32*) - # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - ;; - esac - ;; - - *) - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' - ;; - esac - dynamic_linker='Win32 ld.exe' - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; - -darwin* | rhapsody*) - dynamic_linker="$host_os dyld" - version_type=darwin - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' - soname_spec='${libname}${release}${major}$shared_ext' - shlibpath_overrides_runpath=yes - shlibpath_var=DYLD_LIBRARY_PATH - shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' - - sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' - ;; - -dgux*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -freebsd1*) - dynamic_linker=no - ;; - -freebsd* | dragonfly*) - # DragonFly does not have aout. When/if they implement a new - # versioning mechanism, adjust this. - if test -x /usr/bin/objformat; then - objformat=`/usr/bin/objformat` - else - case $host_os in - freebsd[123]*) objformat=aout ;; - *) objformat=elf ;; - esac - fi - version_type=freebsd-$objformat - case $version_type in - freebsd-elf*) - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - need_version=no - need_lib_prefix=no - ;; - freebsd-*) - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' - need_version=yes - ;; - esac - shlibpath_var=LD_LIBRARY_PATH - case $host_os in - freebsd2*) - shlibpath_overrides_runpath=yes - ;; - freebsd3.[01]* | freebsdelf3.[01]*) - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ - freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - *) # from 4.6 on, and DragonFly - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - esac - ;; - -gnu*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - hardcode_into_libs=yes - ;; - -hpux9* | hpux10* | hpux11*) - # Give a soname corresponding to the major version so that dld.sl refuses to - # link against other versions. - version_type=sunos - need_lib_prefix=no - need_version=no - case $host_cpu in - ia64*) - shrext_cmds='.so' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.so" - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - if test "X$HPUX_IA64_MODE" = X32; then - sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" - else - sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" - fi - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - hppa*64*) - shrext_cmds='.sl' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.sl" - shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - *) - shrext_cmds='.sl' - dynamic_linker="$host_os dld.sl" - shlibpath_var=SHLIB_PATH - shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - ;; - esac - # HP-UX runs *really* slowly unless shared libraries are mode 555. - postinstall_cmds='chmod 555 $lib' - ;; - -interix[3-9]*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - -irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=nonstopux ;; - *) - if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux - else - version_type=irix - fi ;; - esac - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' - case $host_os in - irix5* | nonstopux*) - libsuff= shlibsuff= - ;; - *) - case $LD in # libtool.m4 will add one of these switches to LD - *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") - libsuff= shlibsuff= libmagic=32-bit;; - *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") - libsuff=32 shlibsuff=N32 libmagic=N32;; - *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") - libsuff=64 shlibsuff=64 libmagic=64-bit;; - *) libsuff= shlibsuff= libmagic=never-match;; - esac - ;; - esac - shlibpath_var=LD_LIBRARY${shlibsuff}_PATH - shlibpath_overrides_runpath=no - sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" - sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" - hardcode_into_libs=yes - ;; - -# No shared lib support for Linux oldld, aout, or coff. -linux*oldld* | linux*aout* | linux*coff*) - dynamic_linker=no - ;; - -# This must be Linux ELF. -linux* | k*bsd*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - # This implies no fast_install, which is unacceptable. - # Some rework will be needed to allow for fast_install - # before this can be enabled. - hardcode_into_libs=yes - - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` - sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" - fi - - # We used to test for /lib/ld.so.1 and disable shared libraries on - # powerpc, because MkLinux only supported shared libraries with the - # GNU dynamic linker. Since this was broken with cross compilers, - # most powerpc-linux boxes support dynamic linking these days and - # people can always --disable-shared, the test was removed, and we - # assume the GNU/Linux dynamic linker is in use. - dynamic_linker='GNU/Linux ld.so' - ;; - -netbsd*) - version_type=sunos - need_lib_prefix=no - need_version=no - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker='NetBSD (a.out) ld.so' - else - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='NetBSD ld.elf_so' - fi - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - -newsos6) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -nto-qnx*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -openbsd*) - version_type=sunos - sys_lib_dlsearch_path_spec="/usr/lib" - need_lib_prefix=no - # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. - case $host_os in - openbsd3.3 | openbsd3.3.*) need_version=yes ;; - *) need_version=no ;; - esac - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[89] | openbsd2.[89].*) - shlibpath_overrides_runpath=no - ;; - *) - shlibpath_overrides_runpath=yes - ;; - esac - else - shlibpath_overrides_runpath=yes - fi - ;; - -os2*) - libname_spec='$name' - shrext_cmds=".dll" - need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; - -osf3* | osf4* | osf5*) - version_type=osf - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" - ;; - -rdos*) - dynamic_linker=no - ;; - -solaris*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - # ldd complains unless libraries are executable - postinstall_cmds='chmod +x $lib' - ;; - -sunos4*) - version_type=sunos - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - if test "$with_gnu_ld" = yes; then - need_lib_prefix=no - fi - need_version=yes - ;; - -sysv4 | sysv4.3*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - case $host_vendor in - sni) - shlibpath_overrides_runpath=no - need_lib_prefix=no - export_dynamic_flag_spec='${wl}-Blargedynsym' - runpath_var=LD_RUN_PATH - ;; - siemens) - need_lib_prefix=no - ;; - motorola) - need_lib_prefix=no - need_version=no - shlibpath_overrides_runpath=no - sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' - ;; - esac - ;; - -sysv4*MP*) - if test -d /usr/nec ;then - version_type=linux - library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' - soname_spec='$libname${shared_ext}.$major' - shlibpath_var=LD_LIBRARY_PATH - fi - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - version_type=freebsd-elf - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - hardcode_into_libs=yes - if test "$with_gnu_ld" = yes; then - sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' - shlibpath_overrides_runpath=no - else - sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' - shlibpath_overrides_runpath=yes - case $host_os in - sco3.2v5*) - sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" - ;; - esac - fi - sys_lib_dlsearch_path_spec='/usr/lib' - ;; - -uts4*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -*) - dynamic_linker=no - ;; -esac -{ $as_echo "$as_me:$LINENO: result: $dynamic_linker" >&5 -$as_echo "$dynamic_linker" >&6; } -test "$dynamic_linker" = no && can_build_shared=no - -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi - -{ $as_echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 -$as_echo_n "checking how to hardcode library paths into programs... " >&6; } -hardcode_action_CXX= -if test -n "$hardcode_libdir_flag_spec_CXX" || \ - test -n "$runpath_var_CXX" || \ - test "X$hardcode_automatic_CXX" = "Xyes" ; then - - # We can hardcode non-existant directories. - if test "$hardcode_direct_CXX" != no && - # If the only mechanism to avoid hardcoding is shlibpath_var, we - # have to relink, otherwise we might link with an installed library - # when we should be linking with a yet-to-be-installed one - ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, CXX)" != no && - test "$hardcode_minus_L_CXX" != no; then - # Linking always hardcodes the temporary library directory. - hardcode_action_CXX=relink - else - # We can link without hardcoding, and we can hardcode nonexisting dirs. - hardcode_action_CXX=immediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - hardcode_action_CXX=unsupported -fi -{ $as_echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5 -$as_echo "$hardcode_action_CXX" >&6; } - -if test "$hardcode_action_CXX" = relink; then - # Fast installation is not supported - enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then - # Fast installation is not necessary - enable_fast_install=needless -fi - - -# The else clause should only fire when bootstrapping the -# libtool distribution, otherwise you forgot to ship ltmain.sh -# with your package, and you will get complaints that there are -# no rules to generate ltmain.sh. -if test -f "$ltmain"; then - # See if we are running on zsh, and set the options which allow our commands through - # without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST - fi - # Now quote all the things that may contain metacharacters while being - # careful not to overquote the AC_SUBSTed values. We take copies of the - # variables and quote the copies for generation of the libtool script. - for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ - SED SHELL STRIP \ - libname_spec library_names_spec soname_spec extract_expsyms_cmds \ - old_striplib striplib file_magic_cmd finish_cmds finish_eval \ - deplibs_check_method reload_flag reload_cmds need_locks \ - lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ - lt_cv_sys_global_symbol_to_c_name_address \ - sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ - old_postinstall_cmds old_postuninstall_cmds \ - compiler_CXX \ - CC_CXX \ - LD_CXX \ - lt_prog_compiler_wl_CXX \ - lt_prog_compiler_pic_CXX \ - lt_prog_compiler_static_CXX \ - lt_prog_compiler_no_builtin_flag_CXX \ - export_dynamic_flag_spec_CXX \ - thread_safe_flag_spec_CXX \ - whole_archive_flag_spec_CXX \ - enable_shared_with_static_runtimes_CXX \ - old_archive_cmds_CXX \ - old_archive_from_new_cmds_CXX \ - predep_objects_CXX \ - postdep_objects_CXX \ - predeps_CXX \ - postdeps_CXX \ - compiler_lib_search_path_CXX \ - archive_cmds_CXX \ - archive_expsym_cmds_CXX \ - postinstall_cmds_CXX \ - postuninstall_cmds_CXX \ - old_archive_from_expsyms_cmds_CXX \ - allow_undefined_flag_CXX \ - no_undefined_flag_CXX \ - export_symbols_cmds_CXX \ - hardcode_libdir_flag_spec_CXX \ - hardcode_libdir_flag_spec_ld_CXX \ - hardcode_libdir_separator_CXX \ - hardcode_automatic_CXX \ - module_cmds_CXX \ - module_expsym_cmds_CXX \ - lt_cv_prog_compiler_c_o_CXX \ - fix_srcfile_path_CXX \ - exclude_expsyms_CXX \ - include_expsyms_CXX; do - - case $var in - old_archive_cmds_CXX | \ - old_archive_from_new_cmds_CXX | \ - archive_cmds_CXX | \ - archive_expsym_cmds_CXX | \ - module_cmds_CXX | \ - module_expsym_cmds_CXX | \ - old_archive_from_expsyms_cmds_CXX | \ - export_symbols_cmds_CXX | \ - extract_expsyms_cmds | reload_cmds | finish_cmds | \ - postinstall_cmds | postuninstall_cmds | \ - old_postinstall_cmds | old_postuninstall_cmds | \ - sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) - # Double-quote double-evaled strings. - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" - ;; - *) - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" - ;; - esac - done - - case $lt_echo in - *'\$0 --fallback-echo"') - lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` - ;; - esac - -cfgfile="$ofile" - - cat <<__EOF__ >> "$cfgfile" -# ### BEGIN LIBTOOL TAG CONFIG: $tagname - -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: - -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL - -# Whether or not to build shared libraries. -build_libtool_libs=$enable_shared - -# Whether or not to build static libraries. -build_old_libs=$enable_static - -# Whether or not to add -lc for building shared libraries. -build_libtool_need_lc=$archive_cmds_need_lc_CXX - -# Whether or not to disallow shared libs when runtime libs are static -allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX - -# Whether or not to optimize for fast installation. -fast_install=$enable_fast_install - -# The host system. -host_alias=$host_alias -host=$host -host_os=$host_os - -# The build system. -build_alias=$build_alias -build=$build -build_os=$build_os - -# An echo program that does not interpret backslashes. -echo=$lt_echo - -# The archiver. -AR=$lt_AR -AR_FLAGS=$lt_AR_FLAGS - -# A C compiler. -LTCC=$lt_LTCC - -# LTCC compiler flags. -LTCFLAGS=$lt_LTCFLAGS - -# A language-specific compiler. -CC=$lt_compiler_CXX - -# Is the compiler the GNU C compiler? -with_gcc=$GCC_CXX - -# An ERE matcher. -EGREP=$lt_EGREP - -# The linker used to build libraries. -LD=$lt_LD_CXX - -# Whether we need hard or soft links. -LN_S=$lt_LN_S - -# A BSD-compatible nm program. -NM=$lt_NM - -# A symbol stripping program -STRIP=$lt_STRIP - -# Used to examine libraries when file_magic_cmd begins "file" -MAGIC_CMD=$MAGIC_CMD - -# Used on cygwin: DLL creation program. -DLLTOOL="$DLLTOOL" - -# Used on cygwin: object dumper. -OBJDUMP="$OBJDUMP" - -# Used on cygwin: assembler. -AS="$AS" - -# The name of the directory that contains temporary libtool files. -objdir=$objdir - -# How to create reloadable object files. -reload_flag=$lt_reload_flag -reload_cmds=$lt_reload_cmds - -# How to pass a linker flag through the compiler. -wl=$lt_lt_prog_compiler_wl_CXX - -# Object file suffix (normally "o"). -objext="$ac_objext" - -# Old archive suffix (normally "a"). -libext="$libext" - -# Shared library suffix (normally ".so"). -shrext_cmds='$shrext_cmds' - -# Executable file suffix (normally ""). -exeext="$exeext" - -# Additional compiler flags for building library objects. -pic_flag=$lt_lt_prog_compiler_pic_CXX -pic_mode=$pic_mode - -# What is the maximum length of a command? -max_cmd_len=$lt_cv_sys_max_cmd_len - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX - -# Must we lock files when doing compilation? -need_locks=$lt_need_locks - -# Do we need the lib prefix for modules? -need_lib_prefix=$need_lib_prefix - -# Do we need a version for libraries? -need_version=$need_version - -# Whether dlopen is supported. -dlopen_support=$enable_dlopen - -# Whether dlopen of programs is supported. -dlopen_self=$enable_dlopen_self - -# Whether dlopen of statically linked programs is supported. -dlopen_self_static=$enable_dlopen_self_static - -# Compiler flag to prevent dynamic linking. -link_static_flag=$lt_lt_prog_compiler_static_CXX - -# Compiler flag to turn off builtin functions. -no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX - -# Compiler flag to generate shared objects directly from archives. -whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX - -# Compiler flag to generate thread-safe objects. -thread_safe_flag_spec=$lt_thread_safe_flag_spec_CXX - -# Library versioning type. -version_type=$version_type - -# Format of library name prefix. -libname_spec=$lt_libname_spec - -# List of archive names. First name is the real one, the rest are links. -# The last name is the one that the linker finds with -lNAME. -library_names_spec=$lt_library_names_spec - -# The coded name of the library, if different from the real name. -soname_spec=$lt_soname_spec - -# Commands used to build and install an old-style archive. -RANLIB=$lt_RANLIB -old_archive_cmds=$lt_old_archive_cmds_CXX -old_postinstall_cmds=$lt_old_postinstall_cmds -old_postuninstall_cmds=$lt_old_postuninstall_cmds - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX - -# Create a temporary old-style archive to link instead of a shared archive. -old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX - -# Commands used to build and install a shared archive. -archive_cmds=$lt_archive_cmds_CXX -archive_expsym_cmds=$lt_archive_expsym_cmds_CXX -postinstall_cmds=$lt_postinstall_cmds -postuninstall_cmds=$lt_postuninstall_cmds - -# Commands used to build a loadable module (assumed same as above if empty) -module_cmds=$lt_module_cmds_CXX -module_expsym_cmds=$lt_module_expsym_cmds_CXX - -# Commands to strip libraries. -old_striplib=$lt_old_striplib -striplib=$lt_striplib - -# Dependencies to place before the objects being linked to create a -# shared library. -predep_objects=$lt_predep_objects_CXX - -# Dependencies to place after the objects being linked to create a -# shared library. -postdep_objects=$lt_postdep_objects_CXX - -# Dependencies to place before the objects being linked to create a -# shared library. -predeps=$lt_predeps_CXX - -# Dependencies to place after the objects being linked to create a -# shared library. -postdeps=$lt_postdeps_CXX - -# The library search path used internally by the compiler when linking -# a shared library. -compiler_lib_search_path=$lt_compiler_lib_search_path_CXX - -# Method to check whether dependent libraries are shared objects. -deplibs_check_method=$lt_deplibs_check_method - -# Command to use when deplibs_check_method == file_magic. -file_magic_cmd=$lt_file_magic_cmd - -# Flag that allows shared libraries with undefined symbols to be built. -allow_undefined_flag=$lt_allow_undefined_flag_CXX - -# Flag that forces no undefined symbols. -no_undefined_flag=$lt_no_undefined_flag_CXX - -# Commands used to finish a libtool library installation in a directory. -finish_cmds=$lt_finish_cmds - -# Same as above, but a single script fragment to be evaled but not shown. -finish_eval=$lt_finish_eval - -# Take the output of nm and produce a listing of raw symbols and C names. -global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe - -# Transform the output of nm in a proper C declaration -global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl - -# Transform the output of nm in a C name address pair -global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address - -# This is the shared library runtime path variable. -runpath_var=$runpath_var - -# This is the shared library path variable. -shlibpath_var=$shlibpath_var - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=$shlibpath_overrides_runpath - -# How to hardcode a shared library path into an executable. -hardcode_action=$hardcode_action_CXX - -# Whether we should hardcode library paths into libraries. -hardcode_into_libs=$hardcode_into_libs - -# Flag to hardcode \$libdir into a binary during linking. -# This must work even if \$libdir does not exist. -hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX - -# If ld is used when linking, flag to hardcode \$libdir into -# a binary during linking. This must work even if \$libdir does -# not exist. -hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX - -# Whether we need a single -rpath flag with a separated argument. -hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX - -# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the -# resulting binary. -hardcode_direct=$hardcode_direct_CXX - -# Set to yes if using the -LDIR flag during linking hardcodes DIR into the -# resulting binary. -hardcode_minus_L=$hardcode_minus_L_CXX - -# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into -# the resulting binary. -hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX - -# Set to yes if building a shared library automatically hardcodes DIR into the library -# and all subsequent libraries and executables linked against it. -hardcode_automatic=$hardcode_automatic_CXX - -# Variables whose values should be saved in libtool wrapper scripts and -# restored at relink time. -variables_saved_for_relink="$variables_saved_for_relink" - -# Whether libtool must link a program against all its dependency libraries. -link_all_deplibs=$link_all_deplibs_CXX - -# Compile-time system search path for libraries -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec - -# Run-time system search path for libraries -sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec - -# Fix the shell variable \$srcfile for the compiler. -fix_srcfile_path=$lt_fix_srcfile_path - -# Set to yes if exported symbols are required. -always_export_symbols=$always_export_symbols_CXX - -# The commands to list exported symbols. -export_symbols_cmds=$lt_export_symbols_cmds_CXX - -# The commands to extract the exported symbol list from a shared archive. -extract_expsyms_cmds=$lt_extract_expsyms_cmds - -# Symbols that should not be listed in the preloaded symbols. -exclude_expsyms=$lt_exclude_expsyms_CXX - -# Symbols that must always be exported. -include_expsyms=$lt_include_expsyms_CXX - -# ### END LIBTOOL TAG CONFIG: $tagname - -__EOF__ - - -else - # If there is no Makefile yet, we rely on a make rule to execute - # `config.status --recheck' to rerun these tests and create the - # libtool script then. - ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` - if test -f "$ltmain_in"; then - test -f Makefile && make "$ltmain" - fi -fi - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -CC=$lt_save_CC -LDCXX=$LD -LD=$lt_save_LD -GCC=$lt_save_GCC -with_gnu_ldcxx=$with_gnu_ld -with_gnu_ld=$lt_save_with_gnu_ld -lt_cv_path_LDCXX=$lt_cv_path_LD -lt_cv_path_LD=$lt_save_path_LD -lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld -lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld - - else - tagname="" - fi - ;; - - F77) - if test -n "$F77" && test "X$F77" != "Xno"; then - -ac_ext=f -ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' -ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_f77_compiler_gnu - - -archive_cmds_need_lc_F77=no -allow_undefined_flag_F77= -always_export_symbols_F77=no -archive_expsym_cmds_F77= -export_dynamic_flag_spec_F77= -hardcode_direct_F77=no -hardcode_libdir_flag_spec_F77= -hardcode_libdir_flag_spec_ld_F77= -hardcode_libdir_separator_F77= -hardcode_minus_L_F77=no -hardcode_automatic_F77=no -module_cmds_F77= -module_expsym_cmds_F77= -link_all_deplibs_F77=unknown -old_archive_cmds_F77=$old_archive_cmds -no_undefined_flag_F77= -whole_archive_flag_spec_F77= -enable_shared_with_static_runtimes_F77=no - -# Source file extension for f77 test sources. -ac_ext=f - -# Object file extension for compiled f77 test sources. -objext=o -objext_F77=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="\ - subroutine t - return - end -" - -# Code to be used in simple link tests -lt_simple_link_test_code="\ - program t - end -" - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - -# Allow CC to be a program name with arguments. -compiler=$CC - - -# save warnings/boilerplate of simple test code -ac_outfile=conftest.$ac_objext -echo "$lt_simple_compile_test_code" >conftest.$ac_ext -eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_compiler_boilerplate=`cat conftest.err` -$rm conftest* - -ac_outfile=conftest.$ac_objext -echo "$lt_simple_link_test_code" >conftest.$ac_ext -eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_linker_boilerplate=`cat conftest.err` -$rm conftest* - - -# Allow CC to be a program name with arguments. -lt_save_CC="$CC" -CC=${F77-"f77"} -compiler=$CC -compiler_F77=$CC -for cc_temp in $compiler""; do - case $cc_temp in - compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; - distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` - - -{ $as_echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 -$as_echo_n "checking if libtool supports shared libraries... " >&6; } -{ $as_echo "$as_me:$LINENO: result: $can_build_shared" >&5 -$as_echo "$can_build_shared" >&6; } - -{ $as_echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 -$as_echo_n "checking whether to build shared libraries... " >&6; } -test "$can_build_shared" = "no" && enable_shared=no - -# On AIX, shared libraries and static libraries use the same namespace, and -# are all built from PIC. -case $host_os in -aix3*) - test "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; -aix4* | aix5*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no - fi - ;; -esac -{ $as_echo "$as_me:$LINENO: result: $enable_shared" >&5 -$as_echo "$enable_shared" >&6; } - -{ $as_echo "$as_me:$LINENO: checking whether to build static libraries" >&5 -$as_echo_n "checking whether to build static libraries... " >&6; } -# Make sure either enable_shared or enable_static is yes. -test "$enable_shared" = yes || enable_static=yes -{ $as_echo "$as_me:$LINENO: result: $enable_static" >&5 -$as_echo "$enable_static" >&6; } - -GCC_F77="$G77" -LD_F77="$LD" - -lt_prog_compiler_wl_F77= -lt_prog_compiler_pic_F77= -lt_prog_compiler_static_F77= - -{ $as_echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 -$as_echo_n "checking for $compiler option to produce PIC... " >&6; } - - if test "$GCC" = yes; then - lt_prog_compiler_wl_F77='-Wl,' - lt_prog_compiler_static_F77='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static_F77='-Bstatic' - fi - ;; - - amigaos*) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. - lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4' - ;; - - beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - - mingw* | cygwin* | pw32* | os2*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - # Although the cygwin gcc ignores -fPIC, still need this for old-style - # (--disable-auto-import) libraries - lt_prog_compiler_pic_F77='-DDLL_EXPORT' - ;; - - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - lt_prog_compiler_pic_F77='-fno-common' - ;; - - interix[3-9]*) - # Interix 3.x gcc -fpic/-fPIC options generate broken code. - # Instead, we relocate shared libraries at runtime. - ;; - - msdosdjgpp*) - # Just because we use GCC doesn't mean we suddenly get shared libraries - # on systems that don't support them. - lt_prog_compiler_can_build_shared_F77=no - enable_shared=no - ;; - - sysv4*MP*) - if test -d /usr/nec; then - lt_prog_compiler_pic_F77=-Kconform_pic - fi - ;; - - hpux*) - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case $host_cpu in - hppa*64*|ia64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic_F77='-fPIC' - ;; - esac - ;; - - *) - lt_prog_compiler_pic_F77='-fPIC' - ;; - esac - else - # PORTME Check for flag to pass linker flags through the system compiler. - case $host_os in - aix*) - lt_prog_compiler_wl_F77='-Wl,' - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static_F77='-Bstatic' - else - lt_prog_compiler_static_F77='-bnso -bI:/lib/syscalls.exp' - fi - ;; - darwin*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - case $cc_basename in - xlc*) - lt_prog_compiler_pic_F77='-qnocommon' - lt_prog_compiler_wl_F77='-Wl,' - ;; - esac - ;; - - mingw* | cygwin* | pw32* | os2*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - lt_prog_compiler_pic_F77='-DDLL_EXPORT' - ;; - - hpux9* | hpux10* | hpux11*) - lt_prog_compiler_wl_F77='-Wl,' - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case $host_cpu in - hppa*64*|ia64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic_F77='+Z' - ;; - esac - # Is there a better lt_prog_compiler_static that works with the bundled CC? - lt_prog_compiler_static_F77='${wl}-a ${wl}archive' - ;; - - irix5* | irix6* | nonstopux*) - lt_prog_compiler_wl_F77='-Wl,' - # PIC (with -KPIC) is the default. - lt_prog_compiler_static_F77='-non_shared' - ;; - - newsos6) - lt_prog_compiler_pic_F77='-KPIC' - lt_prog_compiler_static_F77='-Bstatic' - ;; - - linux* | k*bsd*-gnu) - case $cc_basename in - icc* | ecc*) - lt_prog_compiler_wl_F77='-Wl,' - lt_prog_compiler_pic_F77='-KPIC' - lt_prog_compiler_static_F77='-static' - ;; - pgcc* | pgf77* | pgf90* | pgf95*) - # Portland Group compilers (*not* the Pentium gcc compiler, - # which looks to be a dead project) - lt_prog_compiler_wl_F77='-Wl,' - lt_prog_compiler_pic_F77='-fpic' - lt_prog_compiler_static_F77='-Bstatic' - ;; - ccc*) - lt_prog_compiler_wl_F77='-Wl,' - # All Alpha code is PIC. - lt_prog_compiler_static_F77='-non_shared' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C 5.9 - lt_prog_compiler_pic_F77='-KPIC' - lt_prog_compiler_static_F77='-Bstatic' - lt_prog_compiler_wl_F77='-Wl,' - ;; - *Sun\ F*) - # Sun Fortran 8.3 passes all unrecognized flags to the linker - lt_prog_compiler_pic_F77='-KPIC' - lt_prog_compiler_static_F77='-Bstatic' - lt_prog_compiler_wl_F77='' - ;; - esac - ;; - esac - ;; - - osf3* | osf4* | osf5*) - lt_prog_compiler_wl_F77='-Wl,' - # All OSF/1 code is PIC. - lt_prog_compiler_static_F77='-non_shared' - ;; - - rdos*) - lt_prog_compiler_static_F77='-non_shared' - ;; - - solaris*) - lt_prog_compiler_pic_F77='-KPIC' - lt_prog_compiler_static_F77='-Bstatic' - case $cc_basename in - f77* | f90* | f95*) - lt_prog_compiler_wl_F77='-Qoption ld ';; - *) - lt_prog_compiler_wl_F77='-Wl,';; - esac - ;; - - sunos4*) - lt_prog_compiler_wl_F77='-Qoption ld ' - lt_prog_compiler_pic_F77='-PIC' - lt_prog_compiler_static_F77='-Bstatic' - ;; - - sysv4 | sysv4.2uw2* | sysv4.3*) - lt_prog_compiler_wl_F77='-Wl,' - lt_prog_compiler_pic_F77='-KPIC' - lt_prog_compiler_static_F77='-Bstatic' - ;; - - sysv4*MP*) - if test -d /usr/nec ;then - lt_prog_compiler_pic_F77='-Kconform_pic' - lt_prog_compiler_static_F77='-Bstatic' - fi - ;; - - sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) - lt_prog_compiler_wl_F77='-Wl,' - lt_prog_compiler_pic_F77='-KPIC' - lt_prog_compiler_static_F77='-Bstatic' - ;; - - unicos*) - lt_prog_compiler_wl_F77='-Wl,' - lt_prog_compiler_can_build_shared_F77=no - ;; - - uts4*) - lt_prog_compiler_pic_F77='-pic' - lt_prog_compiler_static_F77='-Bstatic' - ;; - - *) - lt_prog_compiler_can_build_shared_F77=no - ;; - esac - fi - -{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5 -$as_echo "$lt_prog_compiler_pic_F77" >&6; } - -# -# Check to make sure the PIC flag actually works. -# -if test -n "$lt_prog_compiler_pic_F77"; then - -{ $as_echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5 -$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... " >&6; } -if test "${lt_prog_compiler_pic_works_F77+set}" = set; then - $as_echo_n "(cached) " >&6 -else - lt_prog_compiler_pic_works_F77=no - ac_outfile=conftest.$ac_objext - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="$lt_prog_compiler_pic_F77" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:13638: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:13642: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings other than the usual output. - $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then - lt_prog_compiler_pic_works_F77=yes - fi - fi - $rm conftest* - -fi -{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_F77" >&5 -$as_echo "$lt_prog_compiler_pic_works_F77" >&6; } - -if test x"$lt_prog_compiler_pic_works_F77" = xyes; then - case $lt_prog_compiler_pic_F77 in - "" | " "*) ;; - *) lt_prog_compiler_pic_F77=" $lt_prog_compiler_pic_F77" ;; - esac -else - lt_prog_compiler_pic_F77= - lt_prog_compiler_can_build_shared_F77=no -fi - -fi -case $host_os in - # For platforms which do not support PIC, -DPIC is meaningless: - *djgpp*) - lt_prog_compiler_pic_F77= - ;; - *) - lt_prog_compiler_pic_F77="$lt_prog_compiler_pic_F77" - ;; -esac - -# -# Check to make sure the static flag actually works. -# -wl=$lt_prog_compiler_wl_F77 eval lt_tmp_static_flag=\"$lt_prog_compiler_static_F77\" -{ $as_echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 -$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } -if test "${lt_prog_compiler_static_works_F77+set}" = set; then - $as_echo_n "(cached) " >&6 -else - lt_prog_compiler_static_works_F77=no - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS $lt_tmp_static_flag" - echo "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then - # The linker can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - # Append any errors to the config.log. - cat conftest.err 1>&5 - $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if diff conftest.exp conftest.er2 >/dev/null; then - lt_prog_compiler_static_works_F77=yes - fi - else - lt_prog_compiler_static_works_F77=yes - fi - fi - $rm conftest* - LDFLAGS="$save_LDFLAGS" - -fi -{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_F77" >&5 -$as_echo "$lt_prog_compiler_static_works_F77" >&6; } - -if test x"$lt_prog_compiler_static_works_F77" = xyes; then - : -else - lt_prog_compiler_static_F77= -fi - - -{ $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 -$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } -if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_c_o_F77=no - $rm -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - lt_compiler_flag="-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:13742: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:13746: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp - $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 - if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then - lt_cv_prog_compiler_c_o_F77=yes - fi - fi - chmod u+w . 2>&5 - $rm conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files - $rm out/* && rmdir out - cd .. - rmdir conftest - $rm conftest* - -fi -{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5 -$as_echo "$lt_cv_prog_compiler_c_o_F77" >&6; } - - -hard_links="nottested" -if test "$lt_cv_prog_compiler_c_o_F77" = no && test "$need_locks" != no; then - # do not overwrite the value of need_locks provided by the user - { $as_echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 -$as_echo_n "checking if we can lock with hard links... " >&6; } - hard_links=yes - $rm conftest* - ln conftest.a conftest.b 2>/dev/null && hard_links=no - touch conftest.a - ln conftest.a conftest.b 2>&5 || hard_links=no - ln conftest.a conftest.b 2>/dev/null && hard_links=no - { $as_echo "$as_me:$LINENO: result: $hard_links" >&5 -$as_echo "$hard_links" >&6; } - if test "$hard_links" = no; then - { $as_echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 -$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} - need_locks=warn - fi -else - need_locks=no -fi - -{ $as_echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 -$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } - - runpath_var= - allow_undefined_flag_F77= - enable_shared_with_static_runtimes_F77=no - archive_cmds_F77= - archive_expsym_cmds_F77= - old_archive_From_new_cmds_F77= - old_archive_from_expsyms_cmds_F77= - export_dynamic_flag_spec_F77= - whole_archive_flag_spec_F77= - thread_safe_flag_spec_F77= - hardcode_libdir_flag_spec_F77= - hardcode_libdir_flag_spec_ld_F77= - hardcode_libdir_separator_F77= - hardcode_direct_F77=no - hardcode_minus_L_F77=no - hardcode_shlibpath_var_F77=unsupported - link_all_deplibs_F77=unknown - hardcode_automatic_F77=no - module_cmds_F77= - module_expsym_cmds_F77= - always_export_symbols_F77=no - export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - # include_expsyms should be a list of space-separated symbols to be *always* - # included in the symbol list - include_expsyms_F77= - # exclude_expsyms can be an extended regexp of symbols to exclude - # it will be wrapped by ` (' and `)$', so one must not match beginning or - # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', - # as well as any symbol that contains `d'. - exclude_expsyms_F77="_GLOBAL_OFFSET_TABLE_" - # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out - # platforms (ab)use it in PIC code, but their linkers get confused if - # the symbol is explicitly referenced. Since portable code cannot - # rely on this symbol name, it's probably fine to never include it in - # preloaded symbol tables. - extract_expsyms_cmds= - # Just being paranoid about ensuring that cc_basename is set. - for cc_temp in $compiler""; do - case $cc_temp in - compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; - distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` - - case $host_os in - cygwin* | mingw* | pw32*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - if test "$GCC" != yes; then - with_gnu_ld=no - fi - ;; - interix*) - # we just hope/assume this is gcc and not c89 (= MSVC++) - with_gnu_ld=yes - ;; - openbsd*) - with_gnu_ld=no - ;; - esac - - ld_shlibs_F77=yes - if test "$with_gnu_ld" = yes; then - # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc='${wl}' - - # Set some defaults for GNU ld with shared library support. These - # are reset later if shared libraries are not supported. Putting them - # here allows them to be overridden if necessary. - runpath_var=LD_RUN_PATH - hardcode_libdir_flag_spec_F77='${wl}--rpath ${wl}$libdir' - export_dynamic_flag_spec_F77='${wl}--export-dynamic' - # ancient GNU ld didn't support --whole-archive et. al. - if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then - whole_archive_flag_spec_F77="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - whole_archive_flag_spec_F77= - fi - supports_anon_versioning=no - case `$LD -v 2>/dev/null` in - *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 - *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... - *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... - *\ 2.11.*) ;; # other 2.11 versions - *) supports_anon_versioning=yes ;; - esac - - # See if GNU ld supports shared libraries. - case $host_os in - aix3* | aix4* | aix5*) - # On AIX/PPC, the GNU linker is very broken - if test "$host_cpu" != ia64; then - ld_shlibs_F77=no - cat <<EOF 1>&2 - -*** Warning: the GNU linker, at least up to release 2.9.1, is reported -*** to be unable to reliably create shared libraries on AIX. -*** Therefore, libtool is disabling shared libraries support. If you -*** really care for shared libraries, you may want to modify your PATH -*** so that a non-GNU linker is found, and then restart. - -EOF - fi - ;; - - amigaos*) - archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec_F77='-L$libdir' - hardcode_minus_L_F77=yes - - # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports - # that the semantics of dynamic libraries on AmigaOS, at least up - # to version 4, is to share data among multiple programs linked - # with the same dynamic library. Since this doesn't match the - # behavior of shared libraries on other platforms, we can't use - # them. - ld_shlibs_F77=no - ;; - - beos*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - allow_undefined_flag_F77=unsupported - # Joseph Beckenbach <jrb3@best.com> says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - archive_cmds_F77='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - else - ld_shlibs_F77=no - fi - ;; - - cygwin* | mingw* | pw32*) - # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, F77) is actually meaningless, - # as there is no search path for DLLs. - hardcode_libdir_flag_spec_F77='-L$libdir' - allow_undefined_flag_F77=unsupported - always_export_symbols_F77=no - enable_shared_with_static_runtimes_F77=yes - export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' - - if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then - archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else - ld_shlibs_F77=no - fi - ;; - - interix[3-9]*) - hardcode_direct_F77=no - hardcode_shlibpath_var_F77=no - hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' - export_dynamic_flag_spec_F77='${wl}-E' - # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. - # Instead, shared libraries are loaded at an image base (0x10000000 by - # default) and relocated if they conflict, which is a slow very memory - # consuming and fragmenting process. To avoid this, we pick a random, - # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link - # time. Moving up from 0x10000000 also allows more sbrk(2) space. - archive_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - archive_expsym_cmds_F77='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - ;; - - gnu* | linux* | k*bsd*-gnu) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - tmp_addflag= - case $cc_basename,$host_cpu in - pgcc*) # Portland Group C compiler - whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag' - ;; - pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers - whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag -Mnomain' ;; - ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 - tmp_addflag=' -i_dynamic' ;; - efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 - tmp_addflag=' -i_dynamic -nofor_main' ;; - ifc* | ifort*) # Intel Fortran compiler - tmp_addflag=' -nofor_main' ;; - esac - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) # Sun C 5.9 - whole_archive_flag_spec_F77='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_sharedflag='-G' ;; - *Sun\ F*) # Sun Fortran 8.3 - tmp_sharedflag='-G' ;; - *) - tmp_sharedflag='-shared' ;; - esac - archive_cmds_F77='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - - if test $supports_anon_versioning = yes; then - archive_expsym_cmds_F77='$echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - $echo "local: *; };" >> $output_objdir/$libname.ver~ - $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' - fi - else - ld_shlibs_F77=no - fi - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else - archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - - solaris*) - if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then - ld_shlibs_F77=no - cat <<EOF 1>&2 - -*** Warning: The releases 2.8.* of the GNU linker cannot reliably -*** create shared libraries on Solaris systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.9.1 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -EOF - elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs_F77=no - fi - ;; - - sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) - case `$LD -v 2>&1` in - *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) - ld_shlibs_F77=no - cat <<_LT_EOF 1>&2 - -*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not -*** reliably create shared libraries on SCO systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.16.91.0.3 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -_LT_EOF - ;; - *) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' - archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' - archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' - else - ld_shlibs_F77=no - fi - ;; - esac - ;; - - sunos4*) - archive_cmds_F77='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' - wlarc= - hardcode_direct_F77=yes - hardcode_shlibpath_var_F77=no - ;; - - *) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs_F77=no - fi - ;; - esac - - if test "$ld_shlibs_F77" = no; then - runpath_var= - hardcode_libdir_flag_spec_F77= - export_dynamic_flag_spec_F77= - whole_archive_flag_spec_F77= - fi - else - # PORTME fill in a description of your system's linker (not GNU ld) - case $host_os in - aix3*) - allow_undefined_flag_F77=unsupported - always_export_symbols_F77=yes - archive_expsym_cmds_F77='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' - # Note: this linker hardcodes the directories in LIBPATH if there - # are no directories specified by -L. - hardcode_minus_L_F77=yes - if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - hardcode_direct_F77=unsupported - fi - ;; - - aix4* | aix5*) - if test "$host_cpu" = ia64; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - exp_sym_flag='-Bexport' - no_entry_flag="" - else - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm - if $NM -V 2>&1 | grep 'GNU' > /dev/null; then - export_symbols_cmds_F77='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' - else - export_symbols_cmds_F77='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' - fi - aix_use_runtimelinking=no - - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[23]|aix4.[23].*|aix5*) - for ld_flag in $LDFLAGS; do - if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then - aix_use_runtimelinking=yes - break - fi - done - ;; - esac - - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a library - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - archive_cmds_F77='' - hardcode_direct_F77=yes - hardcode_libdir_separator_F77=':' - link_all_deplibs_F77=yes - - if test "$GCC" = yes; then - case $host_os in aix4.[012]|aix4.[012].*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && \ - strings "$collect2name" | grep resolve_lib_name >/dev/null - then - # We have reworked collect2 - : - else - # We have old collect2 - hardcode_direct_F77=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - hardcode_minus_L_F77=yes - hardcode_libdir_flag_spec_F77='-L$libdir' - hardcode_libdir_separator_F77= - fi - ;; - esac - shared_flag='-shared' - if test "$aix_use_runtimelinking" = yes; then - shared_flag="$shared_flag "'${wl}-G' - fi - else - # not using gcc - if test "$host_cpu" = ia64; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to export. - always_export_symbols_F77=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - allow_undefined_flag_F77='-berok' - # Determine the default libpath from the value encoded in an empty executable. - cat >conftest.$ac_ext <<_ACEOF - program main - - end -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_f77_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - -lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\(.*\)$/\1/ - p - } - }' -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then - aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -fi -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" - archive_expsym_cmds_F77="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - hardcode_libdir_flag_spec_F77='${wl}-R $libdir:/usr/lib:/lib' - allow_undefined_flag_F77="-z nodefs" - archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an empty executable. - cat >conftest.$ac_ext <<_ACEOF - program main - - end -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_f77_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - -lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\(.*\)$/\1/ - p - } - }' -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then - aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -fi -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - no_undefined_flag_F77=' ${wl}-bernotok' - allow_undefined_flag_F77=' ${wl}-berok' - # Exported symbols can be pulled into shared objects from archives - whole_archive_flag_spec_F77='$convenience' - archive_cmds_need_lc_F77=yes - # This is similar to how AIX traditionally builds its shared libraries. - archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - - amigaos*) - archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec_F77='-L$libdir' - hardcode_minus_L_F77=yes - # see comment about different semantics on the GNU ld section - ld_shlibs_F77=no - ;; - - bsdi[45]*) - export_dynamic_flag_spec_F77=-rdynamic - ;; - - cygwin* | mingw* | pw32*) - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - hardcode_libdir_flag_spec_F77=' ' - allow_undefined_flag_F77=unsupported - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" - # FIXME: Setting linknames here is a bad hack. - archive_cmds_F77='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' - # The linker will automatically build a .lib file if we build a DLL. - old_archive_From_new_cmds_F77='true' - # FIXME: Should let the user specify the lib program. - old_archive_cmds_F77='lib -OUT:$oldlib$oldobjs$old_deplibs' - fix_srcfile_path_F77='`cygpath -w "$srcfile"`' - enable_shared_with_static_runtimes_F77=yes - ;; - - darwin* | rhapsody*) - case $host_os in - rhapsody* | darwin1.[012]) - allow_undefined_flag_F77='${wl}-undefined ${wl}suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[012]) - allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' - ;; - 10.*) - allow_undefined_flag_F77='${wl}-undefined ${wl}dynamic_lookup' - ;; - esac - fi - ;; - esac - archive_cmds_need_lc_F77=no - hardcode_direct_F77=no - hardcode_automatic_F77=yes - hardcode_shlibpath_var_F77=unsupported - whole_archive_flag_spec_F77='' - link_all_deplibs_F77=yes - if test "$GCC" = yes ; then - output_verbose_link_cmd='echo' - archive_cmds_F77='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds - archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - else - case $cc_basename in - xlc*) - output_verbose_link_cmd='echo' - archive_cmds_F77='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' - module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds - archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - ;; - *) - ld_shlibs_F77=no - ;; - esac - fi - ;; - - dgux*) - archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec_F77='-L$libdir' - hardcode_shlibpath_var_F77=no - ;; - - freebsd1*) - ld_shlibs_F77=no - ;; - - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor - # support. Future versions do this automatically, but an explicit c++rt0.o - # does not break anything, and helps significantly (at the cost of a little - # extra space). - freebsd2.2*) - archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' - hardcode_libdir_flag_spec_F77='-R$libdir' - hardcode_direct_F77=yes - hardcode_shlibpath_var_F77=no - ;; - - # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2*) - archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct_F77=yes - hardcode_minus_L_F77=yes - hardcode_shlibpath_var_F77=no - ;; - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly*) - archive_cmds_F77='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec_F77='-R$libdir' - hardcode_direct_F77=yes - hardcode_shlibpath_var_F77=no - ;; - - hpux9*) - if test "$GCC" = yes; then - archive_cmds_F77='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - archive_cmds_F77='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi - hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' - hardcode_libdir_separator_F77=: - hardcode_direct_F77=yes - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L_F77=yes - export_dynamic_flag_spec_F77='${wl}-E' - ;; - - hpux10*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then - archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds_F77='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - fi - if test "$with_gnu_ld" = no; then - hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' - hardcode_libdir_separator_F77=: - - hardcode_direct_F77=yes - export_dynamic_flag_spec_F77='${wl}-E' - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L_F77=yes - fi - ;; - - hpux11*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then - case $host_cpu in - hppa*64*) - archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else - case $host_cpu in - hppa*64*) - archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - fi - if test "$with_gnu_ld" = no; then - hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' - hardcode_libdir_separator_F77=: - - case $host_cpu in - hppa*64*|ia64*) - hardcode_libdir_flag_spec_ld_F77='+b $libdir' - hardcode_direct_F77=no - hardcode_shlibpath_var_F77=no - ;; - *) - hardcode_direct_F77=yes - export_dynamic_flag_spec_F77='${wl}-E' - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L_F77=yes - ;; - esac - fi - ;; - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then - archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - archive_cmds_F77='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec_ld_F77='-rpath $libdir' - fi - hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_F77=: - link_all_deplibs_F77=yes - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out - else - archive_cmds_F77='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF - fi - hardcode_libdir_flag_spec_F77='-R$libdir' - hardcode_direct_F77=yes - hardcode_shlibpath_var_F77=no - ;; - - newsos6) - archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct_F77=yes - hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_F77=: - hardcode_shlibpath_var_F77=no - ;; - - openbsd*) - if test -f /usr/libexec/ld.so; then - hardcode_direct_F77=yes - hardcode_shlibpath_var_F77=no - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' - hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' - export_dynamic_flag_spec_F77='${wl}-E' - else - case $host_os in - openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) - archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec_F77='-R$libdir' - ;; - *) - archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' - ;; - esac - fi - else - ld_shlibs_F77=no - fi - ;; - - os2*) - hardcode_libdir_flag_spec_F77='-L$libdir' - hardcode_minus_L_F77=yes - allow_undefined_flag_F77=unsupported - archive_cmds_F77='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' - old_archive_From_new_cmds_F77='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' - ;; - - osf3*) - if test "$GCC" = yes; then - allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - allow_undefined_flag_F77=' -expect_unresolved \*' - archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - fi - hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_F77=: - ;; - - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' - else - allow_undefined_flag_F77=' -expect_unresolved \*' - archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds_F77='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ - $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' - - # Both c and cxx compiler support -rpath directly - hardcode_libdir_flag_spec_F77='-rpath $libdir' - fi - hardcode_libdir_separator_F77=: - ;; - - solaris*) - no_undefined_flag_F77=' -z text' - if test "$GCC" = yes; then - wlarc='${wl}' - archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' - else - wlarc='' - archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' - fi - hardcode_libdir_flag_spec_F77='-R$libdir' - hardcode_shlibpath_var_F77=no - case $host_os in - solaris2.[0-5] | solaris2.[0-5].*) ;; - *) - # The compiler driver will combine and reorder linker options, - # but understands `-z linker_flag'. GCC discards it without `$wl', - # but is careful enough not to reorder. - # Supported since Solaris 2.6 (maybe 2.5.1?) - if test "$GCC" = yes; then - whole_archive_flag_spec_F77='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' - else - whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract' - fi - ;; - esac - link_all_deplibs_F77=yes - ;; - - sunos4*) - if test "x$host_vendor" = xsequent; then - # Use $CC to link under sequent, because it throws in some extra .o - # files that make .init and .fini sections work. - archive_cmds_F77='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds_F77='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' - fi - hardcode_libdir_flag_spec_F77='-L$libdir' - hardcode_direct_F77=yes - hardcode_minus_L_F77=yes - hardcode_shlibpath_var_F77=no - ;; - - sysv4) - case $host_vendor in - sni) - archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct_F77=yes # is this really true??? - ;; - siemens) - ## LD is ld it makes a PLAMLIB - ## CC just makes a GrossModule. - archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags' - reload_cmds_F77='$CC -r -o $output$reload_objs' - hardcode_direct_F77=no - ;; - motorola) - archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct_F77=no #Motorola manual says yes, but my tests say they lie - ;; - esac - runpath_var='LD_RUN_PATH' - hardcode_shlibpath_var_F77=no - ;; - - sysv4.3*) - archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var_F77=no - export_dynamic_flag_spec_F77='-Bexport' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var_F77=no - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ld_shlibs_F77=yes - fi - ;; - - sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) - no_undefined_flag_F77='${wl}-z,text' - archive_cmds_need_lc_F77=no - hardcode_shlibpath_var_F77=no - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then - archive_cmds_F77='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds_F77='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - sysv5* | sco3.2v5* | sco5v6*) - # Note: We can NOT use -z defs as we might desire, because we do not - # link with -lc, and that would cause any symbols used from libc to - # always be unresolved, which means just about no library would - # ever link correctly. If we're not using GNU ld we use -z text - # though, which does catch some bad symbols but isn't as heavy-handed - # as -z defs. - no_undefined_flag_F77='${wl}-z,text' - allow_undefined_flag_F77='${wl}-z,nodefs' - archive_cmds_need_lc_F77=no - hardcode_shlibpath_var_F77=no - hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' - hardcode_libdir_separator_F77=':' - link_all_deplibs_F77=yes - export_dynamic_flag_spec_F77='${wl}-Bexport' - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then - archive_cmds_F77='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds_F77='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - uts4*) - archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec_F77='-L$libdir' - hardcode_shlibpath_var_F77=no - ;; - - *) - ld_shlibs_F77=no - ;; - esac - fi - -{ $as_echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5 -$as_echo "$ld_shlibs_F77" >&6; } -test "$ld_shlibs_F77" = no && can_build_shared=no - -# -# Do we need to explicitly link libc? -# -case "x$archive_cmds_need_lc_F77" in -x|xyes) - # Assume -lc should be added - archive_cmds_need_lc_F77=yes - - if test "$enable_shared" = yes && test "$GCC" = yes; then - case $archive_cmds_F77 in - *'~'*) - # FIXME: we may have to deal with multi-command sequences. - ;; - '$CC '*) - # Test whether the compiler implicitly links with -lc since on some - # systems, -lgcc has to come before -lc. If gcc already passes -lc - # to ld, don't add -lc before -lgcc. - { $as_echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 -$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } - $rm conftest* - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } 2>conftest.err; then - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$lt_prog_compiler_wl_F77 - pic_flag=$lt_prog_compiler_pic_F77 - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - lt_save_allow_undefined_flag=$allow_undefined_flag_F77 - allow_undefined_flag_F77= - if { (eval echo "$as_me:$LINENO: \"$archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 - (eval $archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - then - archive_cmds_need_lc_F77=no - else - archive_cmds_need_lc_F77=yes - fi - allow_undefined_flag_F77=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $rm conftest* - { $as_echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5 -$as_echo "$archive_cmds_need_lc_F77" >&6; } - ;; - esac - fi - ;; -esac - -{ $as_echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 -$as_echo_n "checking dynamic linker characteristics... " >&6; } -library_names_spec= -libname_spec='lib$name' -soname_spec= -shrext_cmds=".so" -postinstall_cmds= -postuninstall_cmds= -finish_cmds= -finish_eval= -shlibpath_var= -shlibpath_overrides_runpath=unknown -version_type=none -dynamic_linker="$host_os ld.so" -sys_lib_dlsearch_path_spec="/lib /usr/lib" - -need_lib_prefix=unknown -hardcode_into_libs=no - -# when you set need_version to no, make sure it does not cause -set_version -# flags to be left without arguments -need_version=unknown - -case $host_os in -aix3*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' - shlibpath_var=LIBPATH - - # AIX 3 has no versioning support, so we append a major version to the name. - soname_spec='${libname}${release}${shared_ext}$major' - ;; - -aix4* | aix5*) - version_type=linux - need_lib_prefix=no - need_version=no - hardcode_into_libs=yes - if test "$host_cpu" = ia64; then - # AIX 5 supports IA64 - library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - else - # With GCC up to 2.95.x, collect2 would create an import file - # for dependence libraries. The import file would start with - # the line `#! .'. This would cause the generated library to - # depend on `.', always an invalid library. This was fixed in - # development snapshots of GCC prior to 3.0. - case $host_os in - aix4 | aix4.[01] | aix4.[01].*) - if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' - echo ' yes ' - echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then - : - else - can_build_shared=no - fi - ;; - esac - # AIX (on Power*) has no versioning support, so currently we can not hardcode correct - # soname into executable. Probably we can add versioning support to - # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" = yes; then - # If using run time linking (on AIX 4.2 or later) use lib<name>.so - # instead of lib<name>.a to let people know that these are not - # typical AIX shared libraries. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - else - # We preserve .a as extension for shared libraries through AIX4.2 - # and later when we are not doing run time linking. - library_names_spec='${libname}${release}.a $libname.a' - soname_spec='${libname}${release}${shared_ext}$major' - fi - shlibpath_var=LIBPATH - fi - ;; - -amigaos*) - library_names_spec='$libname.ixlibrary $libname.a' - # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' - ;; - -beos*) - library_names_spec='${libname}${shared_ext}' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; - -bsdi[45]*) - version_type=linux - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" - sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" - # the default ld.so.conf also contains /usr/contrib/lib and - # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow - # libtool to hard-code these into programs - ;; - -cygwin* | mingw* | pw32*) - version_type=windows - shrext_cmds=".dll" - need_version=no - need_lib_prefix=no - - case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32*) - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname~ - chmod a+x \$dldir/$dlname' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $rm \$dlpath' - shlibpath_overrides_runpath=yes - - case $host_os in - cygwin*) - # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" - ;; - mingw*) - # MinGW DLLs use traditional 'lib' prefix - soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then - # It is most probably a Windows format PATH printed by - # mingw gcc, but we are running on Cygwin. Gcc prints its search - # path with ; separators, and with drive letters. We can handle the - # drive letters (cygwin fileutils understands them), so leave them, - # especially as we might pass files found there to a mingw objdump, - # which wouldn't understand a cygwinified path. Ahh. - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - ;; - pw32*) - # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - ;; - esac - ;; - - *) - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' - ;; - esac - dynamic_linker='Win32 ld.exe' - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; - -darwin* | rhapsody*) - dynamic_linker="$host_os dyld" - version_type=darwin - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' - soname_spec='${libname}${release}${major}$shared_ext' - shlibpath_overrides_runpath=yes - shlibpath_var=DYLD_LIBRARY_PATH - shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' - - sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' - ;; - -dgux*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -freebsd1*) - dynamic_linker=no - ;; - -freebsd* | dragonfly*) - # DragonFly does not have aout. When/if they implement a new - # versioning mechanism, adjust this. - if test -x /usr/bin/objformat; then - objformat=`/usr/bin/objformat` - else - case $host_os in - freebsd[123]*) objformat=aout ;; - *) objformat=elf ;; - esac - fi - version_type=freebsd-$objformat - case $version_type in - freebsd-elf*) - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - need_version=no - need_lib_prefix=no - ;; - freebsd-*) - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' - need_version=yes - ;; - esac - shlibpath_var=LD_LIBRARY_PATH - case $host_os in - freebsd2*) - shlibpath_overrides_runpath=yes - ;; - freebsd3.[01]* | freebsdelf3.[01]*) - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ - freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - *) # from 4.6 on, and DragonFly - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - esac - ;; - -gnu*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - hardcode_into_libs=yes - ;; - -hpux9* | hpux10* | hpux11*) - # Give a soname corresponding to the major version so that dld.sl refuses to - # link against other versions. - version_type=sunos - need_lib_prefix=no - need_version=no - case $host_cpu in - ia64*) - shrext_cmds='.so' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.so" - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - if test "X$HPUX_IA64_MODE" = X32; then - sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" - else - sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" - fi - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - hppa*64*) - shrext_cmds='.sl' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.sl" - shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - *) - shrext_cmds='.sl' - dynamic_linker="$host_os dld.sl" - shlibpath_var=SHLIB_PATH - shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - ;; - esac - # HP-UX runs *really* slowly unless shared libraries are mode 555. - postinstall_cmds='chmod 555 $lib' - ;; - -interix[3-9]*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - -irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=nonstopux ;; - *) - if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux - else - version_type=irix - fi ;; - esac - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' - case $host_os in - irix5* | nonstopux*) - libsuff= shlibsuff= - ;; - *) - case $LD in # libtool.m4 will add one of these switches to LD - *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") - libsuff= shlibsuff= libmagic=32-bit;; - *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") - libsuff=32 shlibsuff=N32 libmagic=N32;; - *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") - libsuff=64 shlibsuff=64 libmagic=64-bit;; - *) libsuff= shlibsuff= libmagic=never-match;; - esac - ;; - esac - shlibpath_var=LD_LIBRARY${shlibsuff}_PATH - shlibpath_overrides_runpath=no - sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" - sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" - hardcode_into_libs=yes - ;; - -# No shared lib support for Linux oldld, aout, or coff. -linux*oldld* | linux*aout* | linux*coff*) - dynamic_linker=no - ;; - -# This must be Linux ELF. -linux* | k*bsd*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - # This implies no fast_install, which is unacceptable. - # Some rework will be needed to allow for fast_install - # before this can be enabled. - hardcode_into_libs=yes - - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` - sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" - fi - - # We used to test for /lib/ld.so.1 and disable shared libraries on - # powerpc, because MkLinux only supported shared libraries with the - # GNU dynamic linker. Since this was broken with cross compilers, - # most powerpc-linux boxes support dynamic linking these days and - # people can always --disable-shared, the test was removed, and we - # assume the GNU/Linux dynamic linker is in use. - dynamic_linker='GNU/Linux ld.so' - ;; - -netbsd*) - version_type=sunos - need_lib_prefix=no - need_version=no - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker='NetBSD (a.out) ld.so' - else - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='NetBSD ld.elf_so' - fi - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - -newsos6) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -nto-qnx*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -openbsd*) - version_type=sunos - sys_lib_dlsearch_path_spec="/usr/lib" - need_lib_prefix=no - # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. - case $host_os in - openbsd3.3 | openbsd3.3.*) need_version=yes ;; - *) need_version=no ;; - esac - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[89] | openbsd2.[89].*) - shlibpath_overrides_runpath=no - ;; - *) - shlibpath_overrides_runpath=yes - ;; - esac - else - shlibpath_overrides_runpath=yes - fi - ;; - -os2*) - libname_spec='$name' - shrext_cmds=".dll" - need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; - -osf3* | osf4* | osf5*) - version_type=osf - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" - ;; - -rdos*) - dynamic_linker=no - ;; - -solaris*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - # ldd complains unless libraries are executable - postinstall_cmds='chmod +x $lib' - ;; - -sunos4*) - version_type=sunos - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - if test "$with_gnu_ld" = yes; then - need_lib_prefix=no - fi - need_version=yes - ;; - -sysv4 | sysv4.3*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - case $host_vendor in - sni) - shlibpath_overrides_runpath=no - need_lib_prefix=no - export_dynamic_flag_spec='${wl}-Blargedynsym' - runpath_var=LD_RUN_PATH - ;; - siemens) - need_lib_prefix=no - ;; - motorola) - need_lib_prefix=no - need_version=no - shlibpath_overrides_runpath=no - sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' - ;; - esac - ;; - -sysv4*MP*) - if test -d /usr/nec ;then - version_type=linux - library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' - soname_spec='$libname${shared_ext}.$major' - shlibpath_var=LD_LIBRARY_PATH - fi - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - version_type=freebsd-elf - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - hardcode_into_libs=yes - if test "$with_gnu_ld" = yes; then - sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' - shlibpath_overrides_runpath=no - else - sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' - shlibpath_overrides_runpath=yes - case $host_os in - sco3.2v5*) - sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" - ;; - esac - fi - sys_lib_dlsearch_path_spec='/usr/lib' - ;; - -uts4*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -*) - dynamic_linker=no - ;; -esac -{ $as_echo "$as_me:$LINENO: result: $dynamic_linker" >&5 -$as_echo "$dynamic_linker" >&6; } -test "$dynamic_linker" = no && can_build_shared=no - -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi - -{ $as_echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 -$as_echo_n "checking how to hardcode library paths into programs... " >&6; } -hardcode_action_F77= -if test -n "$hardcode_libdir_flag_spec_F77" || \ - test -n "$runpath_var_F77" || \ - test "X$hardcode_automatic_F77" = "Xyes" ; then - - # We can hardcode non-existant directories. - if test "$hardcode_direct_F77" != no && - # If the only mechanism to avoid hardcoding is shlibpath_var, we - # have to relink, otherwise we might link with an installed library - # when we should be linking with a yet-to-be-installed one - ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, F77)" != no && - test "$hardcode_minus_L_F77" != no; then - # Linking always hardcodes the temporary library directory. - hardcode_action_F77=relink - else - # We can link without hardcoding, and we can hardcode nonexisting dirs. - hardcode_action_F77=immediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - hardcode_action_F77=unsupported -fi -{ $as_echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5 -$as_echo "$hardcode_action_F77" >&6; } - -if test "$hardcode_action_F77" = relink; then - # Fast installation is not supported - enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then - # Fast installation is not necessary - enable_fast_install=needless -fi - - -# The else clause should only fire when bootstrapping the -# libtool distribution, otherwise you forgot to ship ltmain.sh -# with your package, and you will get complaints that there are -# no rules to generate ltmain.sh. -if test -f "$ltmain"; then - # See if we are running on zsh, and set the options which allow our commands through - # without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST - fi - # Now quote all the things that may contain metacharacters while being - # careful not to overquote the AC_SUBSTed values. We take copies of the - # variables and quote the copies for generation of the libtool script. - for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ - SED SHELL STRIP \ - libname_spec library_names_spec soname_spec extract_expsyms_cmds \ - old_striplib striplib file_magic_cmd finish_cmds finish_eval \ - deplibs_check_method reload_flag reload_cmds need_locks \ - lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ - lt_cv_sys_global_symbol_to_c_name_address \ - sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ - old_postinstall_cmds old_postuninstall_cmds \ - compiler_F77 \ - CC_F77 \ - LD_F77 \ - lt_prog_compiler_wl_F77 \ - lt_prog_compiler_pic_F77 \ - lt_prog_compiler_static_F77 \ - lt_prog_compiler_no_builtin_flag_F77 \ - export_dynamic_flag_spec_F77 \ - thread_safe_flag_spec_F77 \ - whole_archive_flag_spec_F77 \ - enable_shared_with_static_runtimes_F77 \ - old_archive_cmds_F77 \ - old_archive_from_new_cmds_F77 \ - predep_objects_F77 \ - postdep_objects_F77 \ - predeps_F77 \ - postdeps_F77 \ - compiler_lib_search_path_F77 \ - archive_cmds_F77 \ - archive_expsym_cmds_F77 \ - postinstall_cmds_F77 \ - postuninstall_cmds_F77 \ - old_archive_from_expsyms_cmds_F77 \ - allow_undefined_flag_F77 \ - no_undefined_flag_F77 \ - export_symbols_cmds_F77 \ - hardcode_libdir_flag_spec_F77 \ - hardcode_libdir_flag_spec_ld_F77 \ - hardcode_libdir_separator_F77 \ - hardcode_automatic_F77 \ - module_cmds_F77 \ - module_expsym_cmds_F77 \ - lt_cv_prog_compiler_c_o_F77 \ - fix_srcfile_path_F77 \ - exclude_expsyms_F77 \ - include_expsyms_F77; do - - case $var in - old_archive_cmds_F77 | \ - old_archive_from_new_cmds_F77 | \ - archive_cmds_F77 | \ - archive_expsym_cmds_F77 | \ - module_cmds_F77 | \ - module_expsym_cmds_F77 | \ - old_archive_from_expsyms_cmds_F77 | \ - export_symbols_cmds_F77 | \ - extract_expsyms_cmds | reload_cmds | finish_cmds | \ - postinstall_cmds | postuninstall_cmds | \ - old_postinstall_cmds | old_postuninstall_cmds | \ - sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) - # Double-quote double-evaled strings. - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" - ;; - *) - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" - ;; - esac - done - - case $lt_echo in - *'\$0 --fallback-echo"') - lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` - ;; - esac - -cfgfile="$ofile" - - cat <<__EOF__ >> "$cfgfile" -# ### BEGIN LIBTOOL TAG CONFIG: $tagname - -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: - -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL - -# Whether or not to build shared libraries. -build_libtool_libs=$enable_shared - -# Whether or not to build static libraries. -build_old_libs=$enable_static - -# Whether or not to add -lc for building shared libraries. -build_libtool_need_lc=$archive_cmds_need_lc_F77 - -# Whether or not to disallow shared libs when runtime libs are static -allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_F77 - -# Whether or not to optimize for fast installation. -fast_install=$enable_fast_install - -# The host system. -host_alias=$host_alias -host=$host -host_os=$host_os - -# The build system. -build_alias=$build_alias -build=$build -build_os=$build_os - -# An echo program that does not interpret backslashes. -echo=$lt_echo - -# The archiver. -AR=$lt_AR -AR_FLAGS=$lt_AR_FLAGS - -# A C compiler. -LTCC=$lt_LTCC - -# LTCC compiler flags. -LTCFLAGS=$lt_LTCFLAGS - -# A language-specific compiler. -CC=$lt_compiler_F77 - -# Is the compiler the GNU C compiler? -with_gcc=$GCC_F77 - -# An ERE matcher. -EGREP=$lt_EGREP - -# The linker used to build libraries. -LD=$lt_LD_F77 - -# Whether we need hard or soft links. -LN_S=$lt_LN_S - -# A BSD-compatible nm program. -NM=$lt_NM - -# A symbol stripping program -STRIP=$lt_STRIP - -# Used to examine libraries when file_magic_cmd begins "file" -MAGIC_CMD=$MAGIC_CMD - -# Used on cygwin: DLL creation program. -DLLTOOL="$DLLTOOL" - -# Used on cygwin: object dumper. -OBJDUMP="$OBJDUMP" - -# Used on cygwin: assembler. -AS="$AS" - -# The name of the directory that contains temporary libtool files. -objdir=$objdir - -# How to create reloadable object files. -reload_flag=$lt_reload_flag -reload_cmds=$lt_reload_cmds - -# How to pass a linker flag through the compiler. -wl=$lt_lt_prog_compiler_wl_F77 - -# Object file suffix (normally "o"). -objext="$ac_objext" - -# Old archive suffix (normally "a"). -libext="$libext" - -# Shared library suffix (normally ".so"). -shrext_cmds='$shrext_cmds' - -# Executable file suffix (normally ""). -exeext="$exeext" - -# Additional compiler flags for building library objects. -pic_flag=$lt_lt_prog_compiler_pic_F77 -pic_mode=$pic_mode - -# What is the maximum length of a command? -max_cmd_len=$lt_cv_sys_max_cmd_len - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=$lt_lt_cv_prog_compiler_c_o_F77 - -# Must we lock files when doing compilation? -need_locks=$lt_need_locks - -# Do we need the lib prefix for modules? -need_lib_prefix=$need_lib_prefix - -# Do we need a version for libraries? -need_version=$need_version - -# Whether dlopen is supported. -dlopen_support=$enable_dlopen - -# Whether dlopen of programs is supported. -dlopen_self=$enable_dlopen_self - -# Whether dlopen of statically linked programs is supported. -dlopen_self_static=$enable_dlopen_self_static - -# Compiler flag to prevent dynamic linking. -link_static_flag=$lt_lt_prog_compiler_static_F77 - -# Compiler flag to turn off builtin functions. -no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_F77 - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_F77 - -# Compiler flag to generate shared objects directly from archives. -whole_archive_flag_spec=$lt_whole_archive_flag_spec_F77 - -# Compiler flag to generate thread-safe objects. -thread_safe_flag_spec=$lt_thread_safe_flag_spec_F77 - -# Library versioning type. -version_type=$version_type - -# Format of library name prefix. -libname_spec=$lt_libname_spec - -# List of archive names. First name is the real one, the rest are links. -# The last name is the one that the linker finds with -lNAME. -library_names_spec=$lt_library_names_spec - -# The coded name of the library, if different from the real name. -soname_spec=$lt_soname_spec - -# Commands used to build and install an old-style archive. -RANLIB=$lt_RANLIB -old_archive_cmds=$lt_old_archive_cmds_F77 -old_postinstall_cmds=$lt_old_postinstall_cmds -old_postuninstall_cmds=$lt_old_postuninstall_cmds - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_F77 - -# Create a temporary old-style archive to link instead of a shared archive. -old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_F77 - -# Commands used to build and install a shared archive. -archive_cmds=$lt_archive_cmds_F77 -archive_expsym_cmds=$lt_archive_expsym_cmds_F77 -postinstall_cmds=$lt_postinstall_cmds -postuninstall_cmds=$lt_postuninstall_cmds - -# Commands used to build a loadable module (assumed same as above if empty) -module_cmds=$lt_module_cmds_F77 -module_expsym_cmds=$lt_module_expsym_cmds_F77 - -# Commands to strip libraries. -old_striplib=$lt_old_striplib -striplib=$lt_striplib - -# Dependencies to place before the objects being linked to create a -# shared library. -predep_objects=$lt_predep_objects_F77 - -# Dependencies to place after the objects being linked to create a -# shared library. -postdep_objects=$lt_postdep_objects_F77 - -# Dependencies to place before the objects being linked to create a -# shared library. -predeps=$lt_predeps_F77 - -# Dependencies to place after the objects being linked to create a -# shared library. -postdeps=$lt_postdeps_F77 - -# The library search path used internally by the compiler when linking -# a shared library. -compiler_lib_search_path=$lt_compiler_lib_search_path_F77 - -# Method to check whether dependent libraries are shared objects. -deplibs_check_method=$lt_deplibs_check_method - -# Command to use when deplibs_check_method == file_magic. -file_magic_cmd=$lt_file_magic_cmd - -# Flag that allows shared libraries with undefined symbols to be built. -allow_undefined_flag=$lt_allow_undefined_flag_F77 - -# Flag that forces no undefined symbols. -no_undefined_flag=$lt_no_undefined_flag_F77 - -# Commands used to finish a libtool library installation in a directory. -finish_cmds=$lt_finish_cmds - -# Same as above, but a single script fragment to be evaled but not shown. -finish_eval=$lt_finish_eval - -# Take the output of nm and produce a listing of raw symbols and C names. -global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe - -# Transform the output of nm in a proper C declaration -global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl - -# Transform the output of nm in a C name address pair -global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address - -# This is the shared library runtime path variable. -runpath_var=$runpath_var - -# This is the shared library path variable. -shlibpath_var=$shlibpath_var - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=$shlibpath_overrides_runpath - -# How to hardcode a shared library path into an executable. -hardcode_action=$hardcode_action_F77 - -# Whether we should hardcode library paths into libraries. -hardcode_into_libs=$hardcode_into_libs - -# Flag to hardcode \$libdir into a binary during linking. -# This must work even if \$libdir does not exist. -hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_F77 - -# If ld is used when linking, flag to hardcode \$libdir into -# a binary during linking. This must work even if \$libdir does -# not exist. -hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_F77 - -# Whether we need a single -rpath flag with a separated argument. -hardcode_libdir_separator=$lt_hardcode_libdir_separator_F77 - -# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the -# resulting binary. -hardcode_direct=$hardcode_direct_F77 - -# Set to yes if using the -LDIR flag during linking hardcodes DIR into the -# resulting binary. -hardcode_minus_L=$hardcode_minus_L_F77 - -# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into -# the resulting binary. -hardcode_shlibpath_var=$hardcode_shlibpath_var_F77 - -# Set to yes if building a shared library automatically hardcodes DIR into the library -# and all subsequent libraries and executables linked against it. -hardcode_automatic=$hardcode_automatic_F77 - -# Variables whose values should be saved in libtool wrapper scripts and -# restored at relink time. -variables_saved_for_relink="$variables_saved_for_relink" - -# Whether libtool must link a program against all its dependency libraries. -link_all_deplibs=$link_all_deplibs_F77 - -# Compile-time system search path for libraries -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec - -# Run-time system search path for libraries -sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec - -# Fix the shell variable \$srcfile for the compiler. -fix_srcfile_path=$lt_fix_srcfile_path - -# Set to yes if exported symbols are required. -always_export_symbols=$always_export_symbols_F77 - -# The commands to list exported symbols. -export_symbols_cmds=$lt_export_symbols_cmds_F77 - -# The commands to extract the exported symbol list from a shared archive. -extract_expsyms_cmds=$lt_extract_expsyms_cmds - -# Symbols that should not be listed in the preloaded symbols. -exclude_expsyms=$lt_exclude_expsyms_F77 - -# Symbols that must always be exported. -include_expsyms=$lt_include_expsyms_F77 - -# ### END LIBTOOL TAG CONFIG: $tagname - -__EOF__ - - -else - # If there is no Makefile yet, we rely on a make rule to execute - # `config.status --recheck' to rerun these tests and create the - # libtool script then. - ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` - if test -f "$ltmain_in"; then - test -f Makefile && make "$ltmain" - fi -fi - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -CC="$lt_save_CC" - - else - tagname="" - fi - ;; - - GCJ) - if test -n "$GCJ" && test "X$GCJ" != "Xno"; then - - -# Source file extension for Java test sources. -ac_ext=java - -# Object file extension for compiled Java test sources. -objext=o -objext_GCJ=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="class foo {}" - -# Code to be used in simple link tests -lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }' - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - -# Allow CC to be a program name with arguments. -compiler=$CC - - -# save warnings/boilerplate of simple test code -ac_outfile=conftest.$ac_objext -echo "$lt_simple_compile_test_code" >conftest.$ac_ext -eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_compiler_boilerplate=`cat conftest.err` -$rm conftest* - -ac_outfile=conftest.$ac_objext -echo "$lt_simple_link_test_code" >conftest.$ac_ext -eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_linker_boilerplate=`cat conftest.err` -$rm conftest* - - -# Allow CC to be a program name with arguments. -lt_save_CC="$CC" -CC=${GCJ-"gcj"} -compiler=$CC -compiler_GCJ=$CC -for cc_temp in $compiler""; do - case $cc_temp in - compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; - distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` - - -# GCJ did not exist at the time GCC didn't implicitly link libc in. -archive_cmds_need_lc_GCJ=no - -old_archive_cmds_GCJ=$old_archive_cmds - - -lt_prog_compiler_no_builtin_flag_GCJ= - -if test "$GCC" = yes; then - lt_prog_compiler_no_builtin_flag_GCJ=' -fno-builtin' - - -{ $as_echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 -$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } -if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_rtti_exceptions=no - ac_outfile=conftest.$ac_objext - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="-fno-rtti -fno-exceptions" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:15931: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:15935: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings other than the usual output. - $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler_rtti_exceptions=yes - fi - fi - $rm conftest* - -fi -{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 -$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } - -if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then - lt_prog_compiler_no_builtin_flag_GCJ="$lt_prog_compiler_no_builtin_flag_GCJ -fno-rtti -fno-exceptions" -else - : -fi - -fi - -lt_prog_compiler_wl_GCJ= -lt_prog_compiler_pic_GCJ= -lt_prog_compiler_static_GCJ= - -{ $as_echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 -$as_echo_n "checking for $compiler option to produce PIC... " >&6; } - - if test "$GCC" = yes; then - lt_prog_compiler_wl_GCJ='-Wl,' - lt_prog_compiler_static_GCJ='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static_GCJ='-Bstatic' - fi - ;; - - amigaos*) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. - lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4' - ;; - - beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - - mingw* | cygwin* | pw32* | os2*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - # Although the cygwin gcc ignores -fPIC, still need this for old-style - # (--disable-auto-import) libraries - lt_prog_compiler_pic_GCJ='-DDLL_EXPORT' - ;; - - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - lt_prog_compiler_pic_GCJ='-fno-common' - ;; - - interix[3-9]*) - # Interix 3.x gcc -fpic/-fPIC options generate broken code. - # Instead, we relocate shared libraries at runtime. - ;; - - msdosdjgpp*) - # Just because we use GCC doesn't mean we suddenly get shared libraries - # on systems that don't support them. - lt_prog_compiler_can_build_shared_GCJ=no - enable_shared=no - ;; - - sysv4*MP*) - if test -d /usr/nec; then - lt_prog_compiler_pic_GCJ=-Kconform_pic - fi - ;; - - hpux*) - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case $host_cpu in - hppa*64*|ia64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic_GCJ='-fPIC' - ;; - esac - ;; - - *) - lt_prog_compiler_pic_GCJ='-fPIC' - ;; - esac - else - # PORTME Check for flag to pass linker flags through the system compiler. - case $host_os in - aix*) - lt_prog_compiler_wl_GCJ='-Wl,' - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static_GCJ='-Bstatic' - else - lt_prog_compiler_static_GCJ='-bnso -bI:/lib/syscalls.exp' - fi - ;; - darwin*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - case $cc_basename in - xlc*) - lt_prog_compiler_pic_GCJ='-qnocommon' - lt_prog_compiler_wl_GCJ='-Wl,' - ;; - esac - ;; - - mingw* | cygwin* | pw32* | os2*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - lt_prog_compiler_pic_GCJ='-DDLL_EXPORT' - ;; - - hpux9* | hpux10* | hpux11*) - lt_prog_compiler_wl_GCJ='-Wl,' - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case $host_cpu in - hppa*64*|ia64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic_GCJ='+Z' - ;; - esac - # Is there a better lt_prog_compiler_static that works with the bundled CC? - lt_prog_compiler_static_GCJ='${wl}-a ${wl}archive' - ;; - - irix5* | irix6* | nonstopux*) - lt_prog_compiler_wl_GCJ='-Wl,' - # PIC (with -KPIC) is the default. - lt_prog_compiler_static_GCJ='-non_shared' - ;; - - newsos6) - lt_prog_compiler_pic_GCJ='-KPIC' - lt_prog_compiler_static_GCJ='-Bstatic' - ;; - - linux* | k*bsd*-gnu) - case $cc_basename in - icc* | ecc*) - lt_prog_compiler_wl_GCJ='-Wl,' - lt_prog_compiler_pic_GCJ='-KPIC' - lt_prog_compiler_static_GCJ='-static' - ;; - pgcc* | pgf77* | pgf90* | pgf95*) - # Portland Group compilers (*not* the Pentium gcc compiler, - # which looks to be a dead project) - lt_prog_compiler_wl_GCJ='-Wl,' - lt_prog_compiler_pic_GCJ='-fpic' - lt_prog_compiler_static_GCJ='-Bstatic' - ;; - ccc*) - lt_prog_compiler_wl_GCJ='-Wl,' - # All Alpha code is PIC. - lt_prog_compiler_static_GCJ='-non_shared' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C 5.9 - lt_prog_compiler_pic_GCJ='-KPIC' - lt_prog_compiler_static_GCJ='-Bstatic' - lt_prog_compiler_wl_GCJ='-Wl,' - ;; - *Sun\ F*) - # Sun Fortran 8.3 passes all unrecognized flags to the linker - lt_prog_compiler_pic_GCJ='-KPIC' - lt_prog_compiler_static_GCJ='-Bstatic' - lt_prog_compiler_wl_GCJ='' - ;; - esac - ;; - esac - ;; - - osf3* | osf4* | osf5*) - lt_prog_compiler_wl_GCJ='-Wl,' - # All OSF/1 code is PIC. - lt_prog_compiler_static_GCJ='-non_shared' - ;; - - rdos*) - lt_prog_compiler_static_GCJ='-non_shared' - ;; - - solaris*) - lt_prog_compiler_pic_GCJ='-KPIC' - lt_prog_compiler_static_GCJ='-Bstatic' - case $cc_basename in - f77* | f90* | f95*) - lt_prog_compiler_wl_GCJ='-Qoption ld ';; - *) - lt_prog_compiler_wl_GCJ='-Wl,';; - esac - ;; - - sunos4*) - lt_prog_compiler_wl_GCJ='-Qoption ld ' - lt_prog_compiler_pic_GCJ='-PIC' - lt_prog_compiler_static_GCJ='-Bstatic' - ;; - - sysv4 | sysv4.2uw2* | sysv4.3*) - lt_prog_compiler_wl_GCJ='-Wl,' - lt_prog_compiler_pic_GCJ='-KPIC' - lt_prog_compiler_static_GCJ='-Bstatic' - ;; - - sysv4*MP*) - if test -d /usr/nec ;then - lt_prog_compiler_pic_GCJ='-Kconform_pic' - lt_prog_compiler_static_GCJ='-Bstatic' - fi - ;; - - sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) - lt_prog_compiler_wl_GCJ='-Wl,' - lt_prog_compiler_pic_GCJ='-KPIC' - lt_prog_compiler_static_GCJ='-Bstatic' - ;; - - unicos*) - lt_prog_compiler_wl_GCJ='-Wl,' - lt_prog_compiler_can_build_shared_GCJ=no - ;; - - uts4*) - lt_prog_compiler_pic_GCJ='-pic' - lt_prog_compiler_static_GCJ='-Bstatic' - ;; - - *) - lt_prog_compiler_can_build_shared_GCJ=no - ;; - esac - fi - -{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5 -$as_echo "$lt_prog_compiler_pic_GCJ" >&6; } - -# -# Check to make sure the PIC flag actually works. -# -if test -n "$lt_prog_compiler_pic_GCJ"; then - -{ $as_echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5 -$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... " >&6; } -if test "${lt_prog_compiler_pic_works_GCJ+set}" = set; then - $as_echo_n "(cached) " >&6 -else - lt_prog_compiler_pic_works_GCJ=no - ac_outfile=conftest.$ac_objext - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="$lt_prog_compiler_pic_GCJ" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:16221: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:16225: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings other than the usual output. - $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then - lt_prog_compiler_pic_works_GCJ=yes - fi - fi - $rm conftest* - -fi -{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_GCJ" >&5 -$as_echo "$lt_prog_compiler_pic_works_GCJ" >&6; } - -if test x"$lt_prog_compiler_pic_works_GCJ" = xyes; then - case $lt_prog_compiler_pic_GCJ in - "" | " "*) ;; - *) lt_prog_compiler_pic_GCJ=" $lt_prog_compiler_pic_GCJ" ;; - esac -else - lt_prog_compiler_pic_GCJ= - lt_prog_compiler_can_build_shared_GCJ=no -fi - -fi -case $host_os in - # For platforms which do not support PIC, -DPIC is meaningless: - *djgpp*) - lt_prog_compiler_pic_GCJ= - ;; - *) - lt_prog_compiler_pic_GCJ="$lt_prog_compiler_pic_GCJ" - ;; -esac - -# -# Check to make sure the static flag actually works. -# -wl=$lt_prog_compiler_wl_GCJ eval lt_tmp_static_flag=\"$lt_prog_compiler_static_GCJ\" -{ $as_echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 -$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } -if test "${lt_prog_compiler_static_works_GCJ+set}" = set; then - $as_echo_n "(cached) " >&6 -else - lt_prog_compiler_static_works_GCJ=no - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS $lt_tmp_static_flag" - echo "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then - # The linker can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - # Append any errors to the config.log. - cat conftest.err 1>&5 - $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if diff conftest.exp conftest.er2 >/dev/null; then - lt_prog_compiler_static_works_GCJ=yes - fi - else - lt_prog_compiler_static_works_GCJ=yes - fi - fi - $rm conftest* - LDFLAGS="$save_LDFLAGS" - -fi -{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_GCJ" >&5 -$as_echo "$lt_prog_compiler_static_works_GCJ" >&6; } - -if test x"$lt_prog_compiler_static_works_GCJ" = xyes; then - : -else - lt_prog_compiler_static_GCJ= -fi - - -{ $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 -$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } -if test "${lt_cv_prog_compiler_c_o_GCJ+set}" = set; then - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_c_o_GCJ=no - $rm -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - lt_compiler_flag="-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:16325: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:16329: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp - $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 - if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then - lt_cv_prog_compiler_c_o_GCJ=yes - fi - fi - chmod u+w . 2>&5 - $rm conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files - $rm out/* && rmdir out - cd .. - rmdir conftest - $rm conftest* - -fi -{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5 -$as_echo "$lt_cv_prog_compiler_c_o_GCJ" >&6; } - - -hard_links="nottested" -if test "$lt_cv_prog_compiler_c_o_GCJ" = no && test "$need_locks" != no; then - # do not overwrite the value of need_locks provided by the user - { $as_echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 -$as_echo_n "checking if we can lock with hard links... " >&6; } - hard_links=yes - $rm conftest* - ln conftest.a conftest.b 2>/dev/null && hard_links=no - touch conftest.a - ln conftest.a conftest.b 2>&5 || hard_links=no - ln conftest.a conftest.b 2>/dev/null && hard_links=no - { $as_echo "$as_me:$LINENO: result: $hard_links" >&5 -$as_echo "$hard_links" >&6; } - if test "$hard_links" = no; then - { $as_echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 -$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} - need_locks=warn - fi -else - need_locks=no -fi - -{ $as_echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 -$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } - - runpath_var= - allow_undefined_flag_GCJ= - enable_shared_with_static_runtimes_GCJ=no - archive_cmds_GCJ= - archive_expsym_cmds_GCJ= - old_archive_From_new_cmds_GCJ= - old_archive_from_expsyms_cmds_GCJ= - export_dynamic_flag_spec_GCJ= - whole_archive_flag_spec_GCJ= - thread_safe_flag_spec_GCJ= - hardcode_libdir_flag_spec_GCJ= - hardcode_libdir_flag_spec_ld_GCJ= - hardcode_libdir_separator_GCJ= - hardcode_direct_GCJ=no - hardcode_minus_L_GCJ=no - hardcode_shlibpath_var_GCJ=unsupported - link_all_deplibs_GCJ=unknown - hardcode_automatic_GCJ=no - module_cmds_GCJ= - module_expsym_cmds_GCJ= - always_export_symbols_GCJ=no - export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - # include_expsyms should be a list of space-separated symbols to be *always* - # included in the symbol list - include_expsyms_GCJ= - # exclude_expsyms can be an extended regexp of symbols to exclude - # it will be wrapped by ` (' and `)$', so one must not match beginning or - # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', - # as well as any symbol that contains `d'. - exclude_expsyms_GCJ="_GLOBAL_OFFSET_TABLE_" - # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out - # platforms (ab)use it in PIC code, but their linkers get confused if - # the symbol is explicitly referenced. Since portable code cannot - # rely on this symbol name, it's probably fine to never include it in - # preloaded symbol tables. - extract_expsyms_cmds= - # Just being paranoid about ensuring that cc_basename is set. - for cc_temp in $compiler""; do - case $cc_temp in - compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; - distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` - - case $host_os in - cygwin* | mingw* | pw32*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - if test "$GCC" != yes; then - with_gnu_ld=no - fi - ;; - interix*) - # we just hope/assume this is gcc and not c89 (= MSVC++) - with_gnu_ld=yes - ;; - openbsd*) - with_gnu_ld=no - ;; - esac - - ld_shlibs_GCJ=yes - if test "$with_gnu_ld" = yes; then - # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc='${wl}' - - # Set some defaults for GNU ld with shared library support. These - # are reset later if shared libraries are not supported. Putting them - # here allows them to be overridden if necessary. - runpath_var=LD_RUN_PATH - hardcode_libdir_flag_spec_GCJ='${wl}--rpath ${wl}$libdir' - export_dynamic_flag_spec_GCJ='${wl}--export-dynamic' - # ancient GNU ld didn't support --whole-archive et. al. - if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then - whole_archive_flag_spec_GCJ="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - whole_archive_flag_spec_GCJ= - fi - supports_anon_versioning=no - case `$LD -v 2>/dev/null` in - *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 - *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... - *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... - *\ 2.11.*) ;; # other 2.11 versions - *) supports_anon_versioning=yes ;; - esac - - # See if GNU ld supports shared libraries. - case $host_os in - aix3* | aix4* | aix5*) - # On AIX/PPC, the GNU linker is very broken - if test "$host_cpu" != ia64; then - ld_shlibs_GCJ=no - cat <<EOF 1>&2 - -*** Warning: the GNU linker, at least up to release 2.9.1, is reported -*** to be unable to reliably create shared libraries on AIX. -*** Therefore, libtool is disabling shared libraries support. If you -*** really care for shared libraries, you may want to modify your PATH -*** so that a non-GNU linker is found, and then restart. - -EOF - fi - ;; - - amigaos*) - archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec_GCJ='-L$libdir' - hardcode_minus_L_GCJ=yes - - # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports - # that the semantics of dynamic libraries on AmigaOS, at least up - # to version 4, is to share data among multiple programs linked - # with the same dynamic library. Since this doesn't match the - # behavior of shared libraries on other platforms, we can't use - # them. - ld_shlibs_GCJ=no - ;; - - beos*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - allow_undefined_flag_GCJ=unsupported - # Joseph Beckenbach <jrb3@best.com> says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - archive_cmds_GCJ='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - else - ld_shlibs_GCJ=no - fi - ;; - - cygwin* | mingw* | pw32*) - # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, GCJ) is actually meaningless, - # as there is no search path for DLLs. - hardcode_libdir_flag_spec_GCJ='-L$libdir' - allow_undefined_flag_GCJ=unsupported - always_export_symbols_GCJ=no - enable_shared_with_static_runtimes_GCJ=yes - export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' - - if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then - archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else - ld_shlibs_GCJ=no - fi - ;; - - interix[3-9]*) - hardcode_direct_GCJ=no - hardcode_shlibpath_var_GCJ=no - hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' - export_dynamic_flag_spec_GCJ='${wl}-E' - # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. - # Instead, shared libraries are loaded at an image base (0x10000000 by - # default) and relocated if they conflict, which is a slow very memory - # consuming and fragmenting process. To avoid this, we pick a random, - # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link - # time. Moving up from 0x10000000 also allows more sbrk(2) space. - archive_cmds_GCJ='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - archive_expsym_cmds_GCJ='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - ;; - - gnu* | linux* | k*bsd*-gnu) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - tmp_addflag= - case $cc_basename,$host_cpu in - pgcc*) # Portland Group C compiler - whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag' - ;; - pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers - whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag -Mnomain' ;; - ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 - tmp_addflag=' -i_dynamic' ;; - efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 - tmp_addflag=' -i_dynamic -nofor_main' ;; - ifc* | ifort*) # Intel Fortran compiler - tmp_addflag=' -nofor_main' ;; - esac - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) # Sun C 5.9 - whole_archive_flag_spec_GCJ='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_sharedflag='-G' ;; - *Sun\ F*) # Sun Fortran 8.3 - tmp_sharedflag='-G' ;; - *) - tmp_sharedflag='-shared' ;; - esac - archive_cmds_GCJ='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - - if test $supports_anon_versioning = yes; then - archive_expsym_cmds_GCJ='$echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - $echo "local: *; };" >> $output_objdir/$libname.ver~ - $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' - fi - else - ld_shlibs_GCJ=no - fi - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - archive_cmds_GCJ='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else - archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - - solaris*) - if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then - ld_shlibs_GCJ=no - cat <<EOF 1>&2 - -*** Warning: The releases 2.8.* of the GNU linker cannot reliably -*** create shared libraries on Solaris systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.9.1 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -EOF - elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs_GCJ=no - fi - ;; - - sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) - case `$LD -v 2>&1` in - *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) - ld_shlibs_GCJ=no - cat <<_LT_EOF 1>&2 - -*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not -*** reliably create shared libraries on SCO systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.16.91.0.3 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -_LT_EOF - ;; - *) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' - archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' - archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' - else - ld_shlibs_GCJ=no - fi - ;; - esac - ;; - - sunos4*) - archive_cmds_GCJ='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' - wlarc= - hardcode_direct_GCJ=yes - hardcode_shlibpath_var_GCJ=no - ;; - - *) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs_GCJ=no - fi - ;; - esac - - if test "$ld_shlibs_GCJ" = no; then - runpath_var= - hardcode_libdir_flag_spec_GCJ= - export_dynamic_flag_spec_GCJ= - whole_archive_flag_spec_GCJ= - fi - else - # PORTME fill in a description of your system's linker (not GNU ld) - case $host_os in - aix3*) - allow_undefined_flag_GCJ=unsupported - always_export_symbols_GCJ=yes - archive_expsym_cmds_GCJ='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' - # Note: this linker hardcodes the directories in LIBPATH if there - # are no directories specified by -L. - hardcode_minus_L_GCJ=yes - if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - hardcode_direct_GCJ=unsupported - fi - ;; - - aix4* | aix5*) - if test "$host_cpu" = ia64; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - exp_sym_flag='-Bexport' - no_entry_flag="" - else - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm - if $NM -V 2>&1 | grep 'GNU' > /dev/null; then - export_symbols_cmds_GCJ='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' - else - export_symbols_cmds_GCJ='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' - fi - aix_use_runtimelinking=no - - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[23]|aix4.[23].*|aix5*) - for ld_flag in $LDFLAGS; do - if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then - aix_use_runtimelinking=yes - break - fi - done - ;; - esac - - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a library - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - archive_cmds_GCJ='' - hardcode_direct_GCJ=yes - hardcode_libdir_separator_GCJ=':' - link_all_deplibs_GCJ=yes - - if test "$GCC" = yes; then - case $host_os in aix4.[012]|aix4.[012].*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && \ - strings "$collect2name" | grep resolve_lib_name >/dev/null - then - # We have reworked collect2 - : - else - # We have old collect2 - hardcode_direct_GCJ=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - hardcode_minus_L_GCJ=yes - hardcode_libdir_flag_spec_GCJ='-L$libdir' - hardcode_libdir_separator_GCJ= - fi - ;; - esac - shared_flag='-shared' - if test "$aix_use_runtimelinking" = yes; then - shared_flag="$shared_flag "'${wl}-G' - fi - else - # not using gcc - if test "$host_cpu" = ia64; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to export. - always_export_symbols_GCJ=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - allow_undefined_flag_GCJ='-berok' - # Determine the default libpath from the value encoded in an empty executable. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - -lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\(.*\)$/\1/ - p - } - }' -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then - aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -fi -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" - archive_expsym_cmds_GCJ="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - hardcode_libdir_flag_spec_GCJ='${wl}-R $libdir:/usr/lib:/lib' - allow_undefined_flag_GCJ="-z nodefs" - archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an empty executable. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - -lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\(.*\)$/\1/ - p - } - }' -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then - aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -fi -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi - - hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - no_undefined_flag_GCJ=' ${wl}-bernotok' - allow_undefined_flag_GCJ=' ${wl}-berok' - # Exported symbols can be pulled into shared objects from archives - whole_archive_flag_spec_GCJ='$convenience' - archive_cmds_need_lc_GCJ=yes - # This is similar to how AIX traditionally builds its shared libraries. - archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - - amigaos*) - archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec_GCJ='-L$libdir' - hardcode_minus_L_GCJ=yes - # see comment about different semantics on the GNU ld section - ld_shlibs_GCJ=no - ;; - - bsdi[45]*) - export_dynamic_flag_spec_GCJ=-rdynamic - ;; - - cygwin* | mingw* | pw32*) - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - hardcode_libdir_flag_spec_GCJ=' ' - allow_undefined_flag_GCJ=unsupported - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" - # FIXME: Setting linknames here is a bad hack. - archive_cmds_GCJ='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' - # The linker will automatically build a .lib file if we build a DLL. - old_archive_From_new_cmds_GCJ='true' - # FIXME: Should let the user specify the lib program. - old_archive_cmds_GCJ='lib -OUT:$oldlib$oldobjs$old_deplibs' - fix_srcfile_path_GCJ='`cygpath -w "$srcfile"`' - enable_shared_with_static_runtimes_GCJ=yes - ;; - - darwin* | rhapsody*) - case $host_os in - rhapsody* | darwin1.[012]) - allow_undefined_flag_GCJ='${wl}-undefined ${wl}suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[012]) - allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' - ;; - 10.*) - allow_undefined_flag_GCJ='${wl}-undefined ${wl}dynamic_lookup' - ;; - esac - fi - ;; - esac - archive_cmds_need_lc_GCJ=no - hardcode_direct_GCJ=no - hardcode_automatic_GCJ=yes - hardcode_shlibpath_var_GCJ=unsupported - whole_archive_flag_spec_GCJ='' - link_all_deplibs_GCJ=yes - if test "$GCC" = yes ; then - output_verbose_link_cmd='echo' - archive_cmds_GCJ='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds - archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - else - case $cc_basename in - xlc*) - output_verbose_link_cmd='echo' - archive_cmds_GCJ='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' - module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds - archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - ;; - *) - ld_shlibs_GCJ=no - ;; - esac - fi - ;; - - dgux*) - archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec_GCJ='-L$libdir' - hardcode_shlibpath_var_GCJ=no - ;; - - freebsd1*) - ld_shlibs_GCJ=no - ;; - - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor - # support. Future versions do this automatically, but an explicit c++rt0.o - # does not break anything, and helps significantly (at the cost of a little - # extra space). - freebsd2.2*) - archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' - hardcode_libdir_flag_spec_GCJ='-R$libdir' - hardcode_direct_GCJ=yes - hardcode_shlibpath_var_GCJ=no - ;; - - # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2*) - archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct_GCJ=yes - hardcode_minus_L_GCJ=yes - hardcode_shlibpath_var_GCJ=no - ;; - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly*) - archive_cmds_GCJ='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec_GCJ='-R$libdir' - hardcode_direct_GCJ=yes - hardcode_shlibpath_var_GCJ=no - ;; - - hpux9*) - if test "$GCC" = yes; then - archive_cmds_GCJ='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - archive_cmds_GCJ='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi - hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' - hardcode_libdir_separator_GCJ=: - hardcode_direct_GCJ=yes - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L_GCJ=yes - export_dynamic_flag_spec_GCJ='${wl}-E' - ;; - - hpux10*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then - archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds_GCJ='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - fi - if test "$with_gnu_ld" = no; then - hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' - hardcode_libdir_separator_GCJ=: - - hardcode_direct_GCJ=yes - export_dynamic_flag_spec_GCJ='${wl}-E' - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L_GCJ=yes - fi - ;; - - hpux11*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then - case $host_cpu in - hppa*64*) - archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else - case $host_cpu in - hppa*64*) - archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - fi - if test "$with_gnu_ld" = no; then - hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' - hardcode_libdir_separator_GCJ=: - - case $host_cpu in - hppa*64*|ia64*) - hardcode_libdir_flag_spec_ld_GCJ='+b $libdir' - hardcode_direct_GCJ=no - hardcode_shlibpath_var_GCJ=no - ;; - *) - hardcode_direct_GCJ=yes - export_dynamic_flag_spec_GCJ='${wl}-E' - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L_GCJ=yes - ;; - esac - fi - ;; - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then - archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - archive_cmds_GCJ='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec_ld_GCJ='-rpath $libdir' - fi - hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_GCJ=: - link_all_deplibs_GCJ=yes - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out - else - archive_cmds_GCJ='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF - fi - hardcode_libdir_flag_spec_GCJ='-R$libdir' - hardcode_direct_GCJ=yes - hardcode_shlibpath_var_GCJ=no - ;; - - newsos6) - archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct_GCJ=yes - hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_GCJ=: - hardcode_shlibpath_var_GCJ=no - ;; - - openbsd*) - if test -f /usr/libexec/ld.so; then - hardcode_direct_GCJ=yes - hardcode_shlibpath_var_GCJ=no - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' - hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' - export_dynamic_flag_spec_GCJ='${wl}-E' - else - case $host_os in - openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) - archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec_GCJ='-R$libdir' - ;; - *) - archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' - ;; - esac - fi - else - ld_shlibs_GCJ=no - fi - ;; - - os2*) - hardcode_libdir_flag_spec_GCJ='-L$libdir' - hardcode_minus_L_GCJ=yes - allow_undefined_flag_GCJ=unsupported - archive_cmds_GCJ='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' - old_archive_From_new_cmds_GCJ='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' - ;; - - osf3*) - if test "$GCC" = yes; then - allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - allow_undefined_flag_GCJ=' -expect_unresolved \*' - archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - fi - hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator_GCJ=: - ;; - - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' - else - allow_undefined_flag_GCJ=' -expect_unresolved \*' - archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds_GCJ='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ - $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' - - # Both c and cxx compiler support -rpath directly - hardcode_libdir_flag_spec_GCJ='-rpath $libdir' - fi - hardcode_libdir_separator_GCJ=: - ;; - - solaris*) - no_undefined_flag_GCJ=' -z text' - if test "$GCC" = yes; then - wlarc='${wl}' - archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' - else - wlarc='' - archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' - fi - hardcode_libdir_flag_spec_GCJ='-R$libdir' - hardcode_shlibpath_var_GCJ=no - case $host_os in - solaris2.[0-5] | solaris2.[0-5].*) ;; - *) - # The compiler driver will combine and reorder linker options, - # but understands `-z linker_flag'. GCC discards it without `$wl', - # but is careful enough not to reorder. - # Supported since Solaris 2.6 (maybe 2.5.1?) - if test "$GCC" = yes; then - whole_archive_flag_spec_GCJ='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' - else - whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract' - fi - ;; - esac - link_all_deplibs_GCJ=yes - ;; - - sunos4*) - if test "x$host_vendor" = xsequent; then - # Use $CC to link under sequent, because it throws in some extra .o - # files that make .init and .fini sections work. - archive_cmds_GCJ='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds_GCJ='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' - fi - hardcode_libdir_flag_spec_GCJ='-L$libdir' - hardcode_direct_GCJ=yes - hardcode_minus_L_GCJ=yes - hardcode_shlibpath_var_GCJ=no - ;; - - sysv4) - case $host_vendor in - sni) - archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct_GCJ=yes # is this really true??? - ;; - siemens) - ## LD is ld it makes a PLAMLIB - ## CC just makes a GrossModule. - archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags' - reload_cmds_GCJ='$CC -r -o $output$reload_objs' - hardcode_direct_GCJ=no - ;; - motorola) - archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct_GCJ=no #Motorola manual says yes, but my tests say they lie - ;; - esac - runpath_var='LD_RUN_PATH' - hardcode_shlibpath_var_GCJ=no - ;; - - sysv4.3*) - archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var_GCJ=no - export_dynamic_flag_spec_GCJ='-Bexport' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var_GCJ=no - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ld_shlibs_GCJ=yes - fi - ;; - - sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) - no_undefined_flag_GCJ='${wl}-z,text' - archive_cmds_need_lc_GCJ=no - hardcode_shlibpath_var_GCJ=no - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then - archive_cmds_GCJ='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds_GCJ='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - sysv5* | sco3.2v5* | sco5v6*) - # Note: We can NOT use -z defs as we might desire, because we do not - # link with -lc, and that would cause any symbols used from libc to - # always be unresolved, which means just about no library would - # ever link correctly. If we're not using GNU ld we use -z text - # though, which does catch some bad symbols but isn't as heavy-handed - # as -z defs. - no_undefined_flag_GCJ='${wl}-z,text' - allow_undefined_flag_GCJ='${wl}-z,nodefs' - archive_cmds_need_lc_GCJ=no - hardcode_shlibpath_var_GCJ=no - hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' - hardcode_libdir_separator_GCJ=':' - link_all_deplibs_GCJ=yes - export_dynamic_flag_spec_GCJ='${wl}-Bexport' - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then - archive_cmds_GCJ='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds_GCJ='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - uts4*) - archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec_GCJ='-L$libdir' - hardcode_shlibpath_var_GCJ=no - ;; - - *) - ld_shlibs_GCJ=no - ;; - esac - fi - -{ $as_echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5 -$as_echo "$ld_shlibs_GCJ" >&6; } -test "$ld_shlibs_GCJ" = no && can_build_shared=no - -# -# Do we need to explicitly link libc? -# -case "x$archive_cmds_need_lc_GCJ" in -x|xyes) - # Assume -lc should be added - archive_cmds_need_lc_GCJ=yes - - if test "$enable_shared" = yes && test "$GCC" = yes; then - case $archive_cmds_GCJ in - *'~'*) - # FIXME: we may have to deal with multi-command sequences. - ;; - '$CC '*) - # Test whether the compiler implicitly links with -lc since on some - # systems, -lgcc has to come before -lc. If gcc already passes -lc - # to ld, don't add -lc before -lgcc. - { $as_echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 -$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } - $rm conftest* - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } 2>conftest.err; then - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$lt_prog_compiler_wl_GCJ - pic_flag=$lt_prog_compiler_pic_GCJ - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - lt_save_allow_undefined_flag=$allow_undefined_flag_GCJ - allow_undefined_flag_GCJ= - if { (eval echo "$as_me:$LINENO: \"$archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 - (eval $archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - then - archive_cmds_need_lc_GCJ=no - else - archive_cmds_need_lc_GCJ=yes - fi - allow_undefined_flag_GCJ=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $rm conftest* - { $as_echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5 -$as_echo "$archive_cmds_need_lc_GCJ" >&6; } - ;; - esac - fi - ;; -esac - -{ $as_echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 -$as_echo_n "checking dynamic linker characteristics... " >&6; } -library_names_spec= -libname_spec='lib$name' -soname_spec= -shrext_cmds=".so" -postinstall_cmds= -postuninstall_cmds= -finish_cmds= -finish_eval= -shlibpath_var= -shlibpath_overrides_runpath=unknown -version_type=none -dynamic_linker="$host_os ld.so" -sys_lib_dlsearch_path_spec="/lib /usr/lib" - -need_lib_prefix=unknown -hardcode_into_libs=no - -# when you set need_version to no, make sure it does not cause -set_version -# flags to be left without arguments -need_version=unknown - -case $host_os in -aix3*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' - shlibpath_var=LIBPATH - - # AIX 3 has no versioning support, so we append a major version to the name. - soname_spec='${libname}${release}${shared_ext}$major' - ;; - -aix4* | aix5*) - version_type=linux - need_lib_prefix=no - need_version=no - hardcode_into_libs=yes - if test "$host_cpu" = ia64; then - # AIX 5 supports IA64 - library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - else - # With GCC up to 2.95.x, collect2 would create an import file - # for dependence libraries. The import file would start with - # the line `#! .'. This would cause the generated library to - # depend on `.', always an invalid library. This was fixed in - # development snapshots of GCC prior to 3.0. - case $host_os in - aix4 | aix4.[01] | aix4.[01].*) - if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' - echo ' yes ' - echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then - : - else - can_build_shared=no - fi - ;; - esac - # AIX (on Power*) has no versioning support, so currently we can not hardcode correct - # soname into executable. Probably we can add versioning support to - # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" = yes; then - # If using run time linking (on AIX 4.2 or later) use lib<name>.so - # instead of lib<name>.a to let people know that these are not - # typical AIX shared libraries. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - else - # We preserve .a as extension for shared libraries through AIX4.2 - # and later when we are not doing run time linking. - library_names_spec='${libname}${release}.a $libname.a' - soname_spec='${libname}${release}${shared_ext}$major' - fi - shlibpath_var=LIBPATH - fi - ;; - -amigaos*) - library_names_spec='$libname.ixlibrary $libname.a' - # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' - ;; - -beos*) - library_names_spec='${libname}${shared_ext}' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; - -bsdi[45]*) - version_type=linux - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" - sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" - # the default ld.so.conf also contains /usr/contrib/lib and - # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow - # libtool to hard-code these into programs - ;; - -cygwin* | mingw* | pw32*) - version_type=windows - shrext_cmds=".dll" - need_version=no - need_lib_prefix=no - - case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32*) - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname~ - chmod a+x \$dldir/$dlname' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $rm \$dlpath' - shlibpath_overrides_runpath=yes - - case $host_os in - cygwin*) - # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" - ;; - mingw*) - # MinGW DLLs use traditional 'lib' prefix - soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then - # It is most probably a Windows format PATH printed by - # mingw gcc, but we are running on Cygwin. Gcc prints its search - # path with ; separators, and with drive letters. We can handle the - # drive letters (cygwin fileutils understands them), so leave them, - # especially as we might pass files found there to a mingw objdump, - # which wouldn't understand a cygwinified path. Ahh. - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - ;; - pw32*) - # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - ;; - esac - ;; - - *) - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' - ;; - esac - dynamic_linker='Win32 ld.exe' - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; - -darwin* | rhapsody*) - dynamic_linker="$host_os dyld" - version_type=darwin - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' - soname_spec='${libname}${release}${major}$shared_ext' - shlibpath_overrides_runpath=yes - shlibpath_var=DYLD_LIBRARY_PATH - shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' - - sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' - ;; - -dgux*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -freebsd1*) - dynamic_linker=no - ;; - -freebsd* | dragonfly*) - # DragonFly does not have aout. When/if they implement a new - # versioning mechanism, adjust this. - if test -x /usr/bin/objformat; then - objformat=`/usr/bin/objformat` - else - case $host_os in - freebsd[123]*) objformat=aout ;; - *) objformat=elf ;; - esac - fi - version_type=freebsd-$objformat - case $version_type in - freebsd-elf*) - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - need_version=no - need_lib_prefix=no - ;; - freebsd-*) - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' - need_version=yes - ;; - esac - shlibpath_var=LD_LIBRARY_PATH - case $host_os in - freebsd2*) - shlibpath_overrides_runpath=yes - ;; - freebsd3.[01]* | freebsdelf3.[01]*) - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ - freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - *) # from 4.6 on, and DragonFly - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - esac - ;; - -gnu*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - hardcode_into_libs=yes - ;; - -hpux9* | hpux10* | hpux11*) - # Give a soname corresponding to the major version so that dld.sl refuses to - # link against other versions. - version_type=sunos - need_lib_prefix=no - need_version=no - case $host_cpu in - ia64*) - shrext_cmds='.so' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.so" - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - if test "X$HPUX_IA64_MODE" = X32; then - sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" - else - sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" - fi - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - hppa*64*) - shrext_cmds='.sl' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.sl" - shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - *) - shrext_cmds='.sl' - dynamic_linker="$host_os dld.sl" - shlibpath_var=SHLIB_PATH - shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - ;; - esac - # HP-UX runs *really* slowly unless shared libraries are mode 555. - postinstall_cmds='chmod 555 $lib' - ;; - -interix[3-9]*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - -irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=nonstopux ;; - *) - if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux - else - version_type=irix - fi ;; - esac - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' - case $host_os in - irix5* | nonstopux*) - libsuff= shlibsuff= - ;; - *) - case $LD in # libtool.m4 will add one of these switches to LD - *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") - libsuff= shlibsuff= libmagic=32-bit;; - *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") - libsuff=32 shlibsuff=N32 libmagic=N32;; - *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") - libsuff=64 shlibsuff=64 libmagic=64-bit;; - *) libsuff= shlibsuff= libmagic=never-match;; - esac - ;; - esac - shlibpath_var=LD_LIBRARY${shlibsuff}_PATH - shlibpath_overrides_runpath=no - sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" - sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" - hardcode_into_libs=yes - ;; - -# No shared lib support for Linux oldld, aout, or coff. -linux*oldld* | linux*aout* | linux*coff*) - dynamic_linker=no - ;; - -# This must be Linux ELF. -linux* | k*bsd*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - # This implies no fast_install, which is unacceptable. - # Some rework will be needed to allow for fast_install - # before this can be enabled. - hardcode_into_libs=yes - - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` - sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" - fi - - # We used to test for /lib/ld.so.1 and disable shared libraries on - # powerpc, because MkLinux only supported shared libraries with the - # GNU dynamic linker. Since this was broken with cross compilers, - # most powerpc-linux boxes support dynamic linking these days and - # people can always --disable-shared, the test was removed, and we - # assume the GNU/Linux dynamic linker is in use. - dynamic_linker='GNU/Linux ld.so' - ;; - -netbsd*) - version_type=sunos - need_lib_prefix=no - need_version=no - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker='NetBSD (a.out) ld.so' - else - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='NetBSD ld.elf_so' - fi - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - -newsos6) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -nto-qnx*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -openbsd*) - version_type=sunos - sys_lib_dlsearch_path_spec="/usr/lib" - need_lib_prefix=no - # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. - case $host_os in - openbsd3.3 | openbsd3.3.*) need_version=yes ;; - *) need_version=no ;; - esac - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[89] | openbsd2.[89].*) - shlibpath_overrides_runpath=no - ;; - *) - shlibpath_overrides_runpath=yes - ;; - esac - else - shlibpath_overrides_runpath=yes - fi - ;; - -os2*) - libname_spec='$name' - shrext_cmds=".dll" - need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; - -osf3* | osf4* | osf5*) - version_type=osf - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" - ;; - -rdos*) - dynamic_linker=no - ;; - -solaris*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - # ldd complains unless libraries are executable - postinstall_cmds='chmod +x $lib' - ;; - -sunos4*) - version_type=sunos - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - if test "$with_gnu_ld" = yes; then - need_lib_prefix=no - fi - need_version=yes - ;; - -sysv4 | sysv4.3*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - case $host_vendor in - sni) - shlibpath_overrides_runpath=no - need_lib_prefix=no - export_dynamic_flag_spec='${wl}-Blargedynsym' - runpath_var=LD_RUN_PATH - ;; - siemens) - need_lib_prefix=no - ;; - motorola) - need_lib_prefix=no - need_version=no - shlibpath_overrides_runpath=no - sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' - ;; - esac - ;; - -sysv4*MP*) - if test -d /usr/nec ;then - version_type=linux - library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' - soname_spec='$libname${shared_ext}.$major' - shlibpath_var=LD_LIBRARY_PATH - fi - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - version_type=freebsd-elf - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - hardcode_into_libs=yes - if test "$with_gnu_ld" = yes; then - sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' - shlibpath_overrides_runpath=no - else - sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' - shlibpath_overrides_runpath=yes - case $host_os in - sco3.2v5*) - sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" - ;; - esac - fi - sys_lib_dlsearch_path_spec='/usr/lib' - ;; - -uts4*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -*) - dynamic_linker=no - ;; -esac -{ $as_echo "$as_me:$LINENO: result: $dynamic_linker" >&5 -$as_echo "$dynamic_linker" >&6; } -test "$dynamic_linker" = no && can_build_shared=no - -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi - -{ $as_echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 -$as_echo_n "checking how to hardcode library paths into programs... " >&6; } -hardcode_action_GCJ= -if test -n "$hardcode_libdir_flag_spec_GCJ" || \ - test -n "$runpath_var_GCJ" || \ - test "X$hardcode_automatic_GCJ" = "Xyes" ; then - - # We can hardcode non-existant directories. - if test "$hardcode_direct_GCJ" != no && - # If the only mechanism to avoid hardcoding is shlibpath_var, we - # have to relink, otherwise we might link with an installed library - # when we should be linking with a yet-to-be-installed one - ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, GCJ)" != no && - test "$hardcode_minus_L_GCJ" != no; then - # Linking always hardcodes the temporary library directory. - hardcode_action_GCJ=relink - else - # We can link without hardcoding, and we can hardcode nonexisting dirs. - hardcode_action_GCJ=immediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - hardcode_action_GCJ=unsupported -fi -{ $as_echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5 -$as_echo "$hardcode_action_GCJ" >&6; } - -if test "$hardcode_action_GCJ" = relink; then - # Fast installation is not supported - enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then - # Fast installation is not necessary - enable_fast_install=needless -fi - - -# The else clause should only fire when bootstrapping the -# libtool distribution, otherwise you forgot to ship ltmain.sh -# with your package, and you will get complaints that there are -# no rules to generate ltmain.sh. -if test -f "$ltmain"; then - # See if we are running on zsh, and set the options which allow our commands through - # without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST - fi - # Now quote all the things that may contain metacharacters while being - # careful not to overquote the AC_SUBSTed values. We take copies of the - # variables and quote the copies for generation of the libtool script. - for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ - SED SHELL STRIP \ - libname_spec library_names_spec soname_spec extract_expsyms_cmds \ - old_striplib striplib file_magic_cmd finish_cmds finish_eval \ - deplibs_check_method reload_flag reload_cmds need_locks \ - lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ - lt_cv_sys_global_symbol_to_c_name_address \ - sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ - old_postinstall_cmds old_postuninstall_cmds \ - compiler_GCJ \ - CC_GCJ \ - LD_GCJ \ - lt_prog_compiler_wl_GCJ \ - lt_prog_compiler_pic_GCJ \ - lt_prog_compiler_static_GCJ \ - lt_prog_compiler_no_builtin_flag_GCJ \ - export_dynamic_flag_spec_GCJ \ - thread_safe_flag_spec_GCJ \ - whole_archive_flag_spec_GCJ \ - enable_shared_with_static_runtimes_GCJ \ - old_archive_cmds_GCJ \ - old_archive_from_new_cmds_GCJ \ - predep_objects_GCJ \ - postdep_objects_GCJ \ - predeps_GCJ \ - postdeps_GCJ \ - compiler_lib_search_path_GCJ \ - archive_cmds_GCJ \ - archive_expsym_cmds_GCJ \ - postinstall_cmds_GCJ \ - postuninstall_cmds_GCJ \ - old_archive_from_expsyms_cmds_GCJ \ - allow_undefined_flag_GCJ \ - no_undefined_flag_GCJ \ - export_symbols_cmds_GCJ \ - hardcode_libdir_flag_spec_GCJ \ - hardcode_libdir_flag_spec_ld_GCJ \ - hardcode_libdir_separator_GCJ \ - hardcode_automatic_GCJ \ - module_cmds_GCJ \ - module_expsym_cmds_GCJ \ - lt_cv_prog_compiler_c_o_GCJ \ - fix_srcfile_path_GCJ \ - exclude_expsyms_GCJ \ - include_expsyms_GCJ; do - - case $var in - old_archive_cmds_GCJ | \ - old_archive_from_new_cmds_GCJ | \ - archive_cmds_GCJ | \ - archive_expsym_cmds_GCJ | \ - module_cmds_GCJ | \ - module_expsym_cmds_GCJ | \ - old_archive_from_expsyms_cmds_GCJ | \ - export_symbols_cmds_GCJ | \ - extract_expsyms_cmds | reload_cmds | finish_cmds | \ - postinstall_cmds | postuninstall_cmds | \ - old_postinstall_cmds | old_postuninstall_cmds | \ - sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) - # Double-quote double-evaled strings. - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" - ;; - *) - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" - ;; - esac - done - - case $lt_echo in - *'\$0 --fallback-echo"') - lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` - ;; - esac - -cfgfile="$ofile" - - cat <<__EOF__ >> "$cfgfile" -# ### BEGIN LIBTOOL TAG CONFIG: $tagname - -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: - -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL - -# Whether or not to build shared libraries. -build_libtool_libs=$enable_shared - -# Whether or not to build static libraries. -build_old_libs=$enable_static - -# Whether or not to add -lc for building shared libraries. -build_libtool_need_lc=$archive_cmds_need_lc_GCJ - -# Whether or not to disallow shared libs when runtime libs are static -allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_GCJ - -# Whether or not to optimize for fast installation. -fast_install=$enable_fast_install - -# The host system. -host_alias=$host_alias -host=$host -host_os=$host_os - -# The build system. -build_alias=$build_alias -build=$build -build_os=$build_os - -# An echo program that does not interpret backslashes. -echo=$lt_echo - -# The archiver. -AR=$lt_AR -AR_FLAGS=$lt_AR_FLAGS - -# A C compiler. -LTCC=$lt_LTCC - -# LTCC compiler flags. -LTCFLAGS=$lt_LTCFLAGS - -# A language-specific compiler. -CC=$lt_compiler_GCJ - -# Is the compiler the GNU C compiler? -with_gcc=$GCC_GCJ - -# An ERE matcher. -EGREP=$lt_EGREP - -# The linker used to build libraries. -LD=$lt_LD_GCJ - -# Whether we need hard or soft links. -LN_S=$lt_LN_S - -# A BSD-compatible nm program. -NM=$lt_NM - -# A symbol stripping program -STRIP=$lt_STRIP - -# Used to examine libraries when file_magic_cmd begins "file" -MAGIC_CMD=$MAGIC_CMD - -# Used on cygwin: DLL creation program. -DLLTOOL="$DLLTOOL" - -# Used on cygwin: object dumper. -OBJDUMP="$OBJDUMP" - -# Used on cygwin: assembler. -AS="$AS" - -# The name of the directory that contains temporary libtool files. -objdir=$objdir - -# How to create reloadable object files. -reload_flag=$lt_reload_flag -reload_cmds=$lt_reload_cmds - -# How to pass a linker flag through the compiler. -wl=$lt_lt_prog_compiler_wl_GCJ - -# Object file suffix (normally "o"). -objext="$ac_objext" - -# Old archive suffix (normally "a"). -libext="$libext" - -# Shared library suffix (normally ".so"). -shrext_cmds='$shrext_cmds' - -# Executable file suffix (normally ""). -exeext="$exeext" - -# Additional compiler flags for building library objects. -pic_flag=$lt_lt_prog_compiler_pic_GCJ -pic_mode=$pic_mode - -# What is the maximum length of a command? -max_cmd_len=$lt_cv_sys_max_cmd_len - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=$lt_lt_cv_prog_compiler_c_o_GCJ - -# Must we lock files when doing compilation? -need_locks=$lt_need_locks - -# Do we need the lib prefix for modules? -need_lib_prefix=$need_lib_prefix - -# Do we need a version for libraries? -need_version=$need_version - -# Whether dlopen is supported. -dlopen_support=$enable_dlopen - -# Whether dlopen of programs is supported. -dlopen_self=$enable_dlopen_self - -# Whether dlopen of statically linked programs is supported. -dlopen_self_static=$enable_dlopen_self_static - -# Compiler flag to prevent dynamic linking. -link_static_flag=$lt_lt_prog_compiler_static_GCJ - -# Compiler flag to turn off builtin functions. -no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_GCJ - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_GCJ - -# Compiler flag to generate shared objects directly from archives. -whole_archive_flag_spec=$lt_whole_archive_flag_spec_GCJ - -# Compiler flag to generate thread-safe objects. -thread_safe_flag_spec=$lt_thread_safe_flag_spec_GCJ - -# Library versioning type. -version_type=$version_type - -# Format of library name prefix. -libname_spec=$lt_libname_spec - -# List of archive names. First name is the real one, the rest are links. -# The last name is the one that the linker finds with -lNAME. -library_names_spec=$lt_library_names_spec - -# The coded name of the library, if different from the real name. -soname_spec=$lt_soname_spec - -# Commands used to build and install an old-style archive. -RANLIB=$lt_RANLIB -old_archive_cmds=$lt_old_archive_cmds_GCJ -old_postinstall_cmds=$lt_old_postinstall_cmds -old_postuninstall_cmds=$lt_old_postuninstall_cmds - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_GCJ - -# Create a temporary old-style archive to link instead of a shared archive. -old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_GCJ - -# Commands used to build and install a shared archive. -archive_cmds=$lt_archive_cmds_GCJ -archive_expsym_cmds=$lt_archive_expsym_cmds_GCJ -postinstall_cmds=$lt_postinstall_cmds -postuninstall_cmds=$lt_postuninstall_cmds - -# Commands used to build a loadable module (assumed same as above if empty) -module_cmds=$lt_module_cmds_GCJ -module_expsym_cmds=$lt_module_expsym_cmds_GCJ - -# Commands to strip libraries. -old_striplib=$lt_old_striplib -striplib=$lt_striplib - -# Dependencies to place before the objects being linked to create a -# shared library. -predep_objects=$lt_predep_objects_GCJ - -# Dependencies to place after the objects being linked to create a -# shared library. -postdep_objects=$lt_postdep_objects_GCJ - -# Dependencies to place before the objects being linked to create a -# shared library. -predeps=$lt_predeps_GCJ - -# Dependencies to place after the objects being linked to create a -# shared library. -postdeps=$lt_postdeps_GCJ - -# The library search path used internally by the compiler when linking -# a shared library. -compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ - -# Method to check whether dependent libraries are shared objects. -deplibs_check_method=$lt_deplibs_check_method - -# Command to use when deplibs_check_method == file_magic. -file_magic_cmd=$lt_file_magic_cmd - -# Flag that allows shared libraries with undefined symbols to be built. -allow_undefined_flag=$lt_allow_undefined_flag_GCJ - -# Flag that forces no undefined symbols. -no_undefined_flag=$lt_no_undefined_flag_GCJ - -# Commands used to finish a libtool library installation in a directory. -finish_cmds=$lt_finish_cmds - -# Same as above, but a single script fragment to be evaled but not shown. -finish_eval=$lt_finish_eval - -# Take the output of nm and produce a listing of raw symbols and C names. -global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe - -# Transform the output of nm in a proper C declaration -global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl - -# Transform the output of nm in a C name address pair -global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address - -# This is the shared library runtime path variable. -runpath_var=$runpath_var - -# This is the shared library path variable. -shlibpath_var=$shlibpath_var - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=$shlibpath_overrides_runpath - -# How to hardcode a shared library path into an executable. -hardcode_action=$hardcode_action_GCJ - -# Whether we should hardcode library paths into libraries. -hardcode_into_libs=$hardcode_into_libs - -# Flag to hardcode \$libdir into a binary during linking. -# This must work even if \$libdir does not exist. -hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_GCJ - -# If ld is used when linking, flag to hardcode \$libdir into -# a binary during linking. This must work even if \$libdir does -# not exist. -hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_GCJ - -# Whether we need a single -rpath flag with a separated argument. -hardcode_libdir_separator=$lt_hardcode_libdir_separator_GCJ - -# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the -# resulting binary. -hardcode_direct=$hardcode_direct_GCJ - -# Set to yes if using the -LDIR flag during linking hardcodes DIR into the -# resulting binary. -hardcode_minus_L=$hardcode_minus_L_GCJ - -# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into -# the resulting binary. -hardcode_shlibpath_var=$hardcode_shlibpath_var_GCJ - -# Set to yes if building a shared library automatically hardcodes DIR into the library -# and all subsequent libraries and executables linked against it. -hardcode_automatic=$hardcode_automatic_GCJ - -# Variables whose values should be saved in libtool wrapper scripts and -# restored at relink time. -variables_saved_for_relink="$variables_saved_for_relink" - -# Whether libtool must link a program against all its dependency libraries. -link_all_deplibs=$link_all_deplibs_GCJ - -# Compile-time system search path for libraries -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec - -# Run-time system search path for libraries -sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec - -# Fix the shell variable \$srcfile for the compiler. -fix_srcfile_path=$lt_fix_srcfile_path - -# Set to yes if exported symbols are required. -always_export_symbols=$always_export_symbols_GCJ - -# The commands to list exported symbols. -export_symbols_cmds=$lt_export_symbols_cmds_GCJ - -# The commands to extract the exported symbol list from a shared archive. -extract_expsyms_cmds=$lt_extract_expsyms_cmds - -# Symbols that should not be listed in the preloaded symbols. -exclude_expsyms=$lt_exclude_expsyms_GCJ - -# Symbols that must always be exported. -include_expsyms=$lt_include_expsyms_GCJ - -# ### END LIBTOOL TAG CONFIG: $tagname - -__EOF__ - - -else - # If there is no Makefile yet, we rely on a make rule to execute - # `config.status --recheck' to rerun these tests and create the - # libtool script then. - ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` - if test -f "$ltmain_in"; then - test -f Makefile && make "$ltmain" - fi -fi - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -CC="$lt_save_CC" - - else - tagname="" - fi - ;; - - RC) - - -# Source file extension for RC test sources. -ac_ext=rc - -# Object file extension for compiled RC test sources. -objext=o -objext_RC=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' - -# Code to be used in simple link tests -lt_simple_link_test_code="$lt_simple_compile_test_code" - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - -# Allow CC to be a program name with arguments. -compiler=$CC - - -# save warnings/boilerplate of simple test code -ac_outfile=conftest.$ac_objext -echo "$lt_simple_compile_test_code" >conftest.$ac_ext -eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_compiler_boilerplate=`cat conftest.err` -$rm conftest* - -ac_outfile=conftest.$ac_objext -echo "$lt_simple_link_test_code" >conftest.$ac_ext -eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_linker_boilerplate=`cat conftest.err` -$rm conftest* - - -# Allow CC to be a program name with arguments. -lt_save_CC="$CC" -CC=${RC-"windres"} -compiler=$CC -compiler_RC=$CC -for cc_temp in $compiler""; do - case $cc_temp in - compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; - distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` - -lt_cv_prog_compiler_c_o_RC=yes - -# The else clause should only fire when bootstrapping the -# libtool distribution, otherwise you forgot to ship ltmain.sh -# with your package, and you will get complaints that there are -# no rules to generate ltmain.sh. -if test -f "$ltmain"; then - # See if we are running on zsh, and set the options which allow our commands through - # without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST - fi - # Now quote all the things that may contain metacharacters while being - # careful not to overquote the AC_SUBSTed values. We take copies of the - # variables and quote the copies for generation of the libtool script. - for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ - SED SHELL STRIP \ - libname_spec library_names_spec soname_spec extract_expsyms_cmds \ - old_striplib striplib file_magic_cmd finish_cmds finish_eval \ - deplibs_check_method reload_flag reload_cmds need_locks \ - lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ - lt_cv_sys_global_symbol_to_c_name_address \ - sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ - old_postinstall_cmds old_postuninstall_cmds \ - compiler_RC \ - CC_RC \ - LD_RC \ - lt_prog_compiler_wl_RC \ - lt_prog_compiler_pic_RC \ - lt_prog_compiler_static_RC \ - lt_prog_compiler_no_builtin_flag_RC \ - export_dynamic_flag_spec_RC \ - thread_safe_flag_spec_RC \ - whole_archive_flag_spec_RC \ - enable_shared_with_static_runtimes_RC \ - old_archive_cmds_RC \ - old_archive_from_new_cmds_RC \ - predep_objects_RC \ - postdep_objects_RC \ - predeps_RC \ - postdeps_RC \ - compiler_lib_search_path_RC \ - archive_cmds_RC \ - archive_expsym_cmds_RC \ - postinstall_cmds_RC \ - postuninstall_cmds_RC \ - old_archive_from_expsyms_cmds_RC \ - allow_undefined_flag_RC \ - no_undefined_flag_RC \ - export_symbols_cmds_RC \ - hardcode_libdir_flag_spec_RC \ - hardcode_libdir_flag_spec_ld_RC \ - hardcode_libdir_separator_RC \ - hardcode_automatic_RC \ - module_cmds_RC \ - module_expsym_cmds_RC \ - lt_cv_prog_compiler_c_o_RC \ - fix_srcfile_path_RC \ - exclude_expsyms_RC \ - include_expsyms_RC; do - - case $var in - old_archive_cmds_RC | \ - old_archive_from_new_cmds_RC | \ - archive_cmds_RC | \ - archive_expsym_cmds_RC | \ - module_cmds_RC | \ - module_expsym_cmds_RC | \ - old_archive_from_expsyms_cmds_RC | \ - export_symbols_cmds_RC | \ - extract_expsyms_cmds | reload_cmds | finish_cmds | \ - postinstall_cmds | postuninstall_cmds | \ - old_postinstall_cmds | old_postuninstall_cmds | \ - sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) - # Double-quote double-evaled strings. - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" - ;; - *) - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" - ;; - esac - done - - case $lt_echo in - *'\$0 --fallback-echo"') - lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` - ;; - esac - -cfgfile="$ofile" - - cat <<__EOF__ >> "$cfgfile" -# ### BEGIN LIBTOOL TAG CONFIG: $tagname - -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: - -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL - -# Whether or not to build shared libraries. -build_libtool_libs=$enable_shared - -# Whether or not to build static libraries. -build_old_libs=$enable_static - -# Whether or not to add -lc for building shared libraries. -build_libtool_need_lc=$archive_cmds_need_lc_RC - -# Whether or not to disallow shared libs when runtime libs are static -allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_RC - -# Whether or not to optimize for fast installation. -fast_install=$enable_fast_install - -# The host system. -host_alias=$host_alias -host=$host -host_os=$host_os - -# The build system. -build_alias=$build_alias -build=$build -build_os=$build_os - -# An echo program that does not interpret backslashes. -echo=$lt_echo - -# The archiver. -AR=$lt_AR -AR_FLAGS=$lt_AR_FLAGS - -# A C compiler. -LTCC=$lt_LTCC - -# LTCC compiler flags. -LTCFLAGS=$lt_LTCFLAGS - -# A language-specific compiler. -CC=$lt_compiler_RC - -# Is the compiler the GNU C compiler? -with_gcc=$GCC_RC - -# An ERE matcher. -EGREP=$lt_EGREP - -# The linker used to build libraries. -LD=$lt_LD_RC - -# Whether we need hard or soft links. -LN_S=$lt_LN_S - -# A BSD-compatible nm program. -NM=$lt_NM - -# A symbol stripping program -STRIP=$lt_STRIP - -# Used to examine libraries when file_magic_cmd begins "file" -MAGIC_CMD=$MAGIC_CMD - -# Used on cygwin: DLL creation program. -DLLTOOL="$DLLTOOL" - -# Used on cygwin: object dumper. -OBJDUMP="$OBJDUMP" - -# Used on cygwin: assembler. -AS="$AS" - -# The name of the directory that contains temporary libtool files. -objdir=$objdir - -# How to create reloadable object files. -reload_flag=$lt_reload_flag -reload_cmds=$lt_reload_cmds - -# How to pass a linker flag through the compiler. -wl=$lt_lt_prog_compiler_wl_RC - -# Object file suffix (normally "o"). -objext="$ac_objext" - -# Old archive suffix (normally "a"). -libext="$libext" - -# Shared library suffix (normally ".so"). -shrext_cmds='$shrext_cmds' - -# Executable file suffix (normally ""). -exeext="$exeext" - -# Additional compiler flags for building library objects. -pic_flag=$lt_lt_prog_compiler_pic_RC -pic_mode=$pic_mode - -# What is the maximum length of a command? -max_cmd_len=$lt_cv_sys_max_cmd_len - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=$lt_lt_cv_prog_compiler_c_o_RC - -# Must we lock files when doing compilation? -need_locks=$lt_need_locks - -# Do we need the lib prefix for modules? -need_lib_prefix=$need_lib_prefix - -# Do we need a version for libraries? -need_version=$need_version - -# Whether dlopen is supported. -dlopen_support=$enable_dlopen - -# Whether dlopen of programs is supported. -dlopen_self=$enable_dlopen_self - -# Whether dlopen of statically linked programs is supported. -dlopen_self_static=$enable_dlopen_self_static - -# Compiler flag to prevent dynamic linking. -link_static_flag=$lt_lt_prog_compiler_static_RC - -# Compiler flag to turn off builtin functions. -no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_RC - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_RC - -# Compiler flag to generate shared objects directly from archives. -whole_archive_flag_spec=$lt_whole_archive_flag_spec_RC - -# Compiler flag to generate thread-safe objects. -thread_safe_flag_spec=$lt_thread_safe_flag_spec_RC - -# Library versioning type. -version_type=$version_type - -# Format of library name prefix. -libname_spec=$lt_libname_spec - -# List of archive names. First name is the real one, the rest are links. -# The last name is the one that the linker finds with -lNAME. -library_names_spec=$lt_library_names_spec - -# The coded name of the library, if different from the real name. -soname_spec=$lt_soname_spec - -# Commands used to build and install an old-style archive. -RANLIB=$lt_RANLIB -old_archive_cmds=$lt_old_archive_cmds_RC -old_postinstall_cmds=$lt_old_postinstall_cmds -old_postuninstall_cmds=$lt_old_postuninstall_cmds - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_RC - -# Create a temporary old-style archive to link instead of a shared archive. -old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_RC - -# Commands used to build and install a shared archive. -archive_cmds=$lt_archive_cmds_RC -archive_expsym_cmds=$lt_archive_expsym_cmds_RC -postinstall_cmds=$lt_postinstall_cmds -postuninstall_cmds=$lt_postuninstall_cmds - -# Commands used to build a loadable module (assumed same as above if empty) -module_cmds=$lt_module_cmds_RC -module_expsym_cmds=$lt_module_expsym_cmds_RC - -# Commands to strip libraries. -old_striplib=$lt_old_striplib -striplib=$lt_striplib - -# Dependencies to place before the objects being linked to create a -# shared library. -predep_objects=$lt_predep_objects_RC - -# Dependencies to place after the objects being linked to create a -# shared library. -postdep_objects=$lt_postdep_objects_RC - -# Dependencies to place before the objects being linked to create a -# shared library. -predeps=$lt_predeps_RC - -# Dependencies to place after the objects being linked to create a -# shared library. -postdeps=$lt_postdeps_RC - -# The library search path used internally by the compiler when linking -# a shared library. -compiler_lib_search_path=$lt_compiler_lib_search_path_RC - -# Method to check whether dependent libraries are shared objects. -deplibs_check_method=$lt_deplibs_check_method - -# Command to use when deplibs_check_method == file_magic. -file_magic_cmd=$lt_file_magic_cmd - -# Flag that allows shared libraries with undefined symbols to be built. -allow_undefined_flag=$lt_allow_undefined_flag_RC - -# Flag that forces no undefined symbols. -no_undefined_flag=$lt_no_undefined_flag_RC - -# Commands used to finish a libtool library installation in a directory. -finish_cmds=$lt_finish_cmds - -# Same as above, but a single script fragment to be evaled but not shown. -finish_eval=$lt_finish_eval - -# Take the output of nm and produce a listing of raw symbols and C names. -global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe - -# Transform the output of nm in a proper C declaration -global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl - -# Transform the output of nm in a C name address pair -global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address - -# This is the shared library runtime path variable. -runpath_var=$runpath_var - -# This is the shared library path variable. -shlibpath_var=$shlibpath_var - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=$shlibpath_overrides_runpath - -# How to hardcode a shared library path into an executable. -hardcode_action=$hardcode_action_RC - -# Whether we should hardcode library paths into libraries. -hardcode_into_libs=$hardcode_into_libs - -# Flag to hardcode \$libdir into a binary during linking. -# This must work even if \$libdir does not exist. -hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_RC - -# If ld is used when linking, flag to hardcode \$libdir into -# a binary during linking. This must work even if \$libdir does -# not exist. -hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_RC - -# Whether we need a single -rpath flag with a separated argument. -hardcode_libdir_separator=$lt_hardcode_libdir_separator_RC - -# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the -# resulting binary. -hardcode_direct=$hardcode_direct_RC - -# Set to yes if using the -LDIR flag during linking hardcodes DIR into the -# resulting binary. -hardcode_minus_L=$hardcode_minus_L_RC - -# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into -# the resulting binary. -hardcode_shlibpath_var=$hardcode_shlibpath_var_RC - -# Set to yes if building a shared library automatically hardcodes DIR into the library -# and all subsequent libraries and executables linked against it. -hardcode_automatic=$hardcode_automatic_RC - -# Variables whose values should be saved in libtool wrapper scripts and -# restored at relink time. -variables_saved_for_relink="$variables_saved_for_relink" - -# Whether libtool must link a program against all its dependency libraries. -link_all_deplibs=$link_all_deplibs_RC - -# Compile-time system search path for libraries -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec - -# Run-time system search path for libraries -sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec - -# Fix the shell variable \$srcfile for the compiler. -fix_srcfile_path=$lt_fix_srcfile_path - -# Set to yes if exported symbols are required. -always_export_symbols=$always_export_symbols_RC - -# The commands to list exported symbols. -export_symbols_cmds=$lt_export_symbols_cmds_RC - -# The commands to extract the exported symbol list from a shared archive. -extract_expsyms_cmds=$lt_extract_expsyms_cmds - -# Symbols that should not be listed in the preloaded symbols. -exclude_expsyms=$lt_exclude_expsyms_RC - -# Symbols that must always be exported. -include_expsyms=$lt_include_expsyms_RC - -# ### END LIBTOOL TAG CONFIG: $tagname - -__EOF__ - - -else - # If there is no Makefile yet, we rely on a make rule to execute - # `config.status --recheck' to rerun these tests and create the - # libtool script then. - ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` - if test -f "$ltmain_in"; then - test -f Makefile && make "$ltmain" - fi -fi - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -CC="$lt_save_CC" - - ;; - - *) - { { $as_echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5 -$as_echo "$as_me: error: Unsupported tag name: $tagname" >&2;} - { (exit 1); exit 1; }; } - ;; - esac - - # Append the new tag name to the list of available tags. - if test -n "$tagname" ; then - available_tags="$available_tags $tagname" - fi - fi - done - IFS="$lt_save_ifs" - - # Now substitute the updated list of available tags. - if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then - mv "${ofile}T" "$ofile" - chmod +x "$ofile" - else - rm -f "${ofile}T" - { { $as_echo "$as_me:$LINENO: error: unable to update list of available tagged configurations." >&5 -$as_echo "$as_me: error: unable to update list of available tagged configurations." >&2;} - { (exit 1); exit 1; }; } - fi -fi - - - -# This can be used to rebuild libtool when needed -LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" - -# Always use our own libtool. -LIBTOOL='$(SHELL) $(top_builddir)/libtool' - -# Prevent multiple expansion - - - - - - - - - - - - - - - - - - - - - -freetype_version='1.5' - -version_info='6:0:4' - -# Check whether --enable-nls was given. -if test "${enable_nls+set}" = set; then - enableval=$enable_nls; USE_NLS=no -else - USE_NLS=yes -fi - - - -{ $as_echo "$as_me:$LINENO: checking target system type" >&5 -$as_echo_n "checking target system type... " >&6; } -if test "${ac_cv_target+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test "x$target_alias" = x; then - ac_cv_target=$ac_cv_host -else - ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` || - { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&5 -$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&2;} - { (exit 1); exit 1; }; } -fi - -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_target" >&5 -$as_echo "$ac_cv_target" >&6; } -case $ac_cv_target in -*-*-*) ;; -*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical target" >&5 -$as_echo "$as_me: error: invalid value of canonical target" >&2;} - { (exit 1); exit 1; }; };; -esac -target=$ac_cv_target -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_target -shift -target_cpu=$1 -target_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -target_os=$* -IFS=$ac_save_IFS -case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac - - -# The aliases save the names the user supplied, while $host etc. -# will get canonicalized. -test -n "$target_alias" && - test "$program_prefix$program_suffix$program_transform_name" = \ - NONENONEs,x,x, && - program_prefix=${target_alias}- - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:$LINENO: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -$as_echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:$LINENO: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:$LINENO: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:$LINENO: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl.exe -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -$as_echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -fi - -fi - - -test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } - -# Provide some information about the compiler. -$as_echo "$as_me:$LINENO: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -{ (ac_try="$ac_compiler --version >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler --version >&5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -v >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler -v >&5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -V >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler -V >&5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - -{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if test "${ac_cv_c_compiler_gnu+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_compiler_gnu=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_compiler_gnu=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GCC=yes -else - GCC= -fi -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 -$as_echo_n "checking whether $CC accepts -g... " >&6; } -if test "${ac_cv_prog_cc_g+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_prog_cc_g=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - CFLAGS="" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - : -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_prog_cc_g=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if test "${ac_cv_prog_cc_c89+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no -ac_save_CC=$CC -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <stdarg.h> -#include <stdio.h> -#include <sys/types.h> -#include <sys/stat.h> -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_prog_cc_c89=$ac_arg -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:$LINENO: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:$LINENO: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 -$as_echo_n "checking how to run the C preprocessor... " >&6; } -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if test "${ac_cv_prog_CPP+set}" = set; then - $as_echo_n "(cached) " >&6 -else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" - do - ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since - # <limits.h> exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef __STDC__ -# include <limits.h> -#else -# include <assert.h> -#endif - Syntax error -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - : -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Broken: fails on valid input. -continue -fi - -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <ac_nonexistent.h> -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - # Broken: success on invalid input. -continue -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Passes both tests. -ac_preproc_ok=: -break -fi - -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - break -fi - - done - ac_cv_prog_CPP=$CPP - -fi - CPP=$ac_cv_prog_CPP -else - ac_cv_prog_CPP=$CPP -fi -{ $as_echo "$as_me:$LINENO: result: $CPP" >&5 -$as_echo "$CPP" >&6; } -ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since - # <limits.h> exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef __STDC__ -# include <limits.h> -#else -# include <assert.h> -#endif - Syntax error -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - : -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Broken: fails on valid input. -continue -fi - -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <ac_nonexistent.h> -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - # Broken: success on invalid input. -continue -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Passes both tests. -ac_preproc_ok=: -break -fi - -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - : -else - { { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - -if test "x$CC" = xgcc; then - XX_CFLAGS="-Wall -fno-strict-aliasing -pedantic -ansi -D_REENTRANT" -else - case "$host" in - *-dec-osf*) - XX_CFLAGS="-std1 -O2 -g3" - ;; - *) - XX_CFLAGS= - ;; - esac -fi - - - -case "$host" in - *-dec-osf*) - ln -s ../../MakeSub lib/arch - ln -s ../../MakeSub test/arch - ;; -esac - - - - - - - - -if test "$USE_NLS" = "yes"; then - { $as_echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } -set x ${MAKE-make} -ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.make <<\_ACEOF -SHELL = /bin/sh -all: - @echo '@@@%%%=$(MAKE)=@@@%%%' -_ACEOF -# GNU make sometimes prints "make[1]: Entering...", which would confuse us. -case `${MAKE-make} -f conftest.make 2>/dev/null` in - *@@@%%%=?*=@@@%%%*) - eval ac_cv_prog_make_${ac_make}_set=yes;; - *) - eval ac_cv_prog_make_${ac_make}_set=no;; -esac -rm -f conftest.make -fi -if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } - SET_MAKE= -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } - SET_MAKE="MAKE=${MAKE-make}" -fi - - - -for ac_header in locale.h -do -as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 -$as_echo_n "checking for $ac_header... " >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -fi -ac_res=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 -$as_echo_n "checking $ac_header usability... " >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_header_compiler=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_compiler=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } - -# Is the header present? -{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 -$as_echo_n "checking $ac_header presence... " >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - ac_header_preproc=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi - -rm -f conftest.err conftest.$ac_ext -{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - - ;; -esac -{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 -$as_echo_n "checking for $ac_header... " >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -else - eval "$as_ac_Header=\$ac_header_preproc" -fi -ac_res=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - -fi -if test `eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - -for ac_func in setlocale -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 -$as_echo_n "checking for $ac_func... " >&6; } -if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func. - For example, HP-UX 11i <limits.h> declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer <limits.h> to <assert.h> if __STDC__ is defined, since - <limits.h> exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include <limits.h> -#else -# include <assert.h> -#endif - -#undef $ac_func - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_$ac_func || defined __stub___$ac_func -choke me -#endif - -int -main () -{ -return $ac_func (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - eval "$as_ac_var=yes" -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - eval "$as_ac_var=no" -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -ac_res=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if test `eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - - - -for ac_header in libintl.h -do -as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 -$as_echo_n "checking for $ac_header... " >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -fi -ac_res=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 -$as_echo_n "checking $ac_header usability... " >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_header_compiler=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_compiler=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } - -# Is the header present? -{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 -$as_echo_n "checking $ac_header presence... " >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - ac_header_preproc=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi - -rm -f conftest.err conftest.$ac_ext -{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - - ;; -esac -{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 -$as_echo_n "checking for $ac_header... " >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -else - eval "$as_ac_Header=\$ac_header_preproc" -fi -ac_res=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - -fi -if test `eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - ALL_LINGUAS="de fr cs nl es" - - LIBINTL= - LTLIBINTL= - - { $as_echo "$as_me:$LINENO: checking for GNU gettext in libc" >&5 -$as_echo_n "checking for GNU gettext in libc... " >&6; } -if test "${ftgt_cv_func_gnugettext_libc+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include <libintl.h> -extern int _nl_msg_cat_cntr; -extern int *_nl_domain_bindings; - -int -main () -{ - -bindtextdomain ("", ""); -return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_domain_bindings - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ftgt_cv_func_gnugettext_libc=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ftgt_cv_func_gnugettext_libc=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ftgt_cv_func_gnugettext_libc" >&5 -$as_echo "$ftgt_cv_func_gnugettext_libc" >&6; } - - if test "$ftgt_cv_func_gnugettext_libc" != "yes"; then - -{ $as_echo "$as_me:$LINENO: checking for gettext in -lintl" >&5 -$as_echo_n "checking for gettext in -lintl... " >&6; } -if test "${ac_cv_lib_intl_gettext+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lintl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char gettext (); -int -main () -{ -return gettext (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_intl_gettext=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_intl_gettext=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_intl_gettext" >&5 -$as_echo "$ac_cv_lib_intl_gettext" >&6; } -if test $ac_cv_lib_intl_gettext = yes; then - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBINTL 1 -_ACEOF - - LIBS="-lintl $LIBS" - -fi - - - if test "$ac_cv_lib_intl_gettext" != "yes"; then - { $as_echo "$as_me:$LINENO: checking for GNU gettext in libintl, using libiconv" >&5 -$as_echo_n "checking for GNU gettext in libintl, using libiconv... " >&6; } -if test "${ftgt_cv_func_gnugettext_libintliconv+set}" = set; then - $as_echo_n "(cached) " >&6 -else - { $as_echo "$as_me:$LINENO: checking for bindtextdomain in -lintl" >&5 -$as_echo_n "checking for bindtextdomain in -lintl... " >&6; } -if test "${ac_cv_lib_intl_bindtextdomain+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lintl -liconv $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char bindtextdomain (); -int -main () -{ -return bindtextdomain (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_intl_bindtextdomain=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_intl_bindtextdomain=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_intl_bindtextdomain" >&5 -$as_echo "$ac_cv_lib_intl_bindtextdomain" >&6; } -if test $ac_cv_lib_intl_bindtextdomain = yes; then - ftgt_cv_func_gnugettext_libintliconv=yes LIBS="$LIBS -lintl -liconv" -else - ftgt_cv_func_gnugettext_libintliconv=no - USE_NLS=no -fi - -fi -{ $as_echo "$as_me:$LINENO: result: $ftgt_cv_func_gnugettext_libintliconv" >&5 -$as_echo "$ftgt_cv_func_gnugettext_libintliconv" >&6; } - fi - fi -fi - -if test "$USE_NLS" = "yes"; then - LOCALEDIR='${prefix}/share/locale' - -# Check whether --with-locale-dir was given. -if test "${with_locale_dir+set}" = set; then - withval=$with_locale_dir; - if test x$withval = xyes; then - { $as_echo "$as_me:$LINENO: WARNING: Usage is: --with-locale-dir=basedir" >&5 -$as_echo "$as_me: WARNING: Usage is: --with-locale-dir=basedir" >&2;} - else - if test x$withval = xno; then - { $as_echo "$as_me:$LINENO: WARNING: Usage is: --with-locale-dir=basedir" >&5 -$as_echo "$as_me: WARNING: Usage is: --with-locale-dir=basedir" >&2;} - else - LOCALEDIR=$withval - fi - fi - -fi - - - - # Extract the first word of "msgfmt", so it can be a program name with args. -set dummy msgfmt; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_MSGFMT+set}" = set; then - $as_echo_n "(cached) " >&6 -else - case $MSGFMT in - [\\/]* | ?:[\\/]*) - ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_MSGFMT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - - test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="$MSGFMT" - ;; -esac -fi -MSGFMT=$ac_cv_path_MSGFMT -if test -n "$MSGFMT"; then - { $as_echo "$as_me:$LINENO: result: $MSGFMT" >&5 -$as_echo "$MSGFMT" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - if test -n "$MSGFMT"; then - -for ac_func in dcgettext -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 -$as_echo_n "checking for $ac_func... " >&6; } -if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func. - For example, HP-UX 11i <limits.h> declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer <limits.h> to <assert.h> if __STDC__ is defined, since - <limits.h> exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include <limits.h> -#else -# include <assert.h> -#endif - -#undef $ac_func - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_$ac_func || defined __stub___$ac_func -choke me -#endif - -int -main () -{ -return $ac_func (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - eval "$as_ac_var=yes" -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - eval "$as_ac_var=no" -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -ac_res=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if test `eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - # Extract the first word of "gmsgfmt", so it can be a program name with args. -set dummy gmsgfmt; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_GMSGFMT+set}" = set; then - $as_echo_n "(cached) " >&6 -else - case $GMSGFMT in - [\\/]* | ?:[\\/]*) - ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - - test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" - ;; -esac -fi -GMSGFMT=$ac_cv_path_GMSGFMT -if test -n "$GMSGFMT"; then - { $as_echo "$as_me:$LINENO: result: $GMSGFMT" >&5 -$as_echo "$GMSGFMT" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - # Extract the first word of "xgettext", so it can be a program name with args. -set dummy xgettext; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_XGETTEXT+set}" = set; then - $as_echo_n "(cached) " >&6 -else - case $XGETTEXT in - [\\/]* | ?:[\\/]*) - ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_XGETTEXT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - - test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT="$XGETTEXT" - ;; -esac -fi -XGETTEXT=$ac_cv_path_XGETTEXT -if test -n "$XGETTEXT"; then - { $as_echo "$as_me:$LINENO: result: $XGETTEXT" >&5 -$as_echo "$XGETTEXT" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - # Extract the first word of "msgmerge", so it can be a program name with args. -set dummy msgmerge; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_MSGMERGE+set}" = set; then - $as_echo_n "(cached) " >&6 -else - case $MSGMERGE in - [\\/]* | ?:[\\/]*) - ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_MSGMERGE="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - - test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE="$MSGMERGE" - ;; -esac -fi -MSGMERGE=$ac_cv_path_MSGMERGE -if test -n "$MSGMERGE"; then - { $as_echo "$as_me:$LINENO: result: $MSGMERGE" >&5 -$as_echo "$MSGMERGE" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - - if test -n "$XGETTEXT"; then - if $XGETTEXT --omit-header /dev/null 2> /dev/null; then - : ; - else - { $as_echo "$as_me:$LINENO: result: found xgettext program is not GNU xgettext; ignore it" >&5 -$as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; } - XGETTEXT="" - fi - fi - - if test -n "$XGETTEXT"; then - if $XGETTEXT --help > /dev/null 2> /dev/null; then - : ; - else - { $as_echo "$as_me:$LINENO: result: found xgettext program is not GNU xgettext; ignore it" >&5 -$as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; } - XGETTEXT="" - fi - fi - - if test -n "$MSGFMT"; then - if $MSGFMT < /dev/null 2> /dev/null; then - { $as_echo "$as_me:$LINENO: result: found msgfmt program is not GNU msgfmt; NLS won't be installed" >&5 -$as_echo "found msgfmt program is not GNU msgfmt; NLS won't be installed" >&6; } - MSGFMT="" - fi - fi - - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ -extern int _nl_msg_cat_cntr; - return _nl_msg_cat_cntr - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - CATOBJEXT=.gmo - DATADIRNAME=share -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - CATOBJEXT=.mo - DATADIRNAME=lib -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext - INSTOBJEXT=.mo - fi - - if test -n "$ALL_LINGUAS"; then - for lang in $ALL_LINGUAS; do - CATALOGS="$CATALOGS $lang$CATOBJEXT" - done - fi - - - - -fi - -if test x"$MSGFMT" = x; then - USE_NLS=no -fi - - -# Extract the first word of "rm", so it can be a program name with args. -set dummy rm; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_RM+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$RM"; then - ac_cv_prog_RM="$RM" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_RM="rm" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -RM=$ac_cv_prog_RM -if test -n "$RM"; then - { $as_echo "$as_me:$LINENO: result: $RM" >&5 -$as_echo "$RM" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - -# Extract the first word of "rmdir", so it can be a program name with args. -set dummy rmdir; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_RMDIR+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$RMDIR"; then - ac_cv_prog_RMDIR="$RMDIR" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_RMDIR="rmdir" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -RMDIR=$ac_cv_prog_RMDIR -if test -n "$RMDIR"; then - { $as_echo "$as_me:$LINENO: result: $RMDIR" >&5 -$as_echo "$RMDIR" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AmigaOS /C/install, which installs bootblocks on floppy discs -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# OS/2's system install, which has a completely different semantic -# ./install, which can be erroneously created by make from ./install.sh. -{ $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 -$as_echo_n "checking for a BSD-compatible install... " >&6; } -if test -z "$INSTALL"; then -if test "${ac_cv_path_install+set}" = set; then - $as_echo_n "(cached) " >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - # Account for people who put trailing slashes in PATH elements. -case $as_dir/ in - ./ | .// | /cC/* | \ - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ - ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ - /usr/ucb/* ) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then - if test $ac_prog = install && - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - elif test $ac_prog = install && - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # program-specific install script used by HP pwplus--don't use. - : - else - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 - fi - fi - done - done - ;; -esac -done -IFS=$as_save_IFS - - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL=$ac_cv_path_install - else - # As a last resort, use the slow shell script. Don't cache a - # value for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - INSTALL=$ac_install_sh - fi -fi -{ $as_echo "$as_me:$LINENO: result: $INSTALL" >&5 -$as_echo "$INSTALL" >&6; } - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - -{ $as_echo "$as_me:$LINENO: checking whether ln -s works" >&5 -$as_echo_n "checking whether ln -s works... " >&6; } -LN_S=$as_ln_s -if test "$LN_S" = "ln -s"; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no, using $LN_S" >&5 -$as_echo "no, using $LN_S" >&6; } -fi - - - - - - # Most operating systems have gethostbyname() in the default searched - # libraries (i.e. libc): - { $as_echo "$as_me:$LINENO: checking for gethostbyname" >&5 -$as_echo_n "checking for gethostbyname... " >&6; } -if test "${ac_cv_func_gethostbyname+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define gethostbyname to an innocuous variant, in case <limits.h> declares gethostbyname. - For example, HP-UX 11i <limits.h> declares gettimeofday. */ -#define gethostbyname innocuous_gethostbyname - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char gethostbyname (); below. - Prefer <limits.h> to <assert.h> if __STDC__ is defined, since - <limits.h> exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include <limits.h> -#else -# include <assert.h> -#endif - -#undef gethostbyname - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char gethostbyname (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_gethostbyname || defined __stub___gethostbyname -choke me -#endif - -int -main () -{ -return gethostbyname (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_func_gethostbyname=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_func_gethostbyname=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_gethostbyname" >&5 -$as_echo "$ac_cv_func_gethostbyname" >&6; } -if test $ac_cv_func_gethostbyname = yes; then - : -else - # Some OSes (eg. Solaris) place it in libnsl: - -{ $as_echo "$as_me:$LINENO: checking for gethostbyname in -lnsl" >&5 -$as_echo_n "checking for gethostbyname in -lnsl... " >&6; } -if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lnsl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char gethostbyname (); -int -main () -{ -return gethostbyname (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_nsl_gethostbyname=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_nsl_gethostbyname=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_gethostbyname" >&5 -$as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; } -if test $ac_cv_lib_nsl_gethostbyname = yes; then - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBNSL 1 -_ACEOF - - LIBS="-lnsl $LIBS" - -else - # Some strange OSes (SINIX) have it in libsocket: - -{ $as_echo "$as_me:$LINENO: checking for gethostbyname in -lsocket" >&5 -$as_echo_n "checking for gethostbyname in -lsocket... " >&6; } -if test "${ac_cv_lib_socket_gethostbyname+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsocket $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char gethostbyname (); -int -main () -{ -return gethostbyname (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_socket_gethostbyname=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_socket_gethostbyname=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_socket_gethostbyname" >&5 -$as_echo "$ac_cv_lib_socket_gethostbyname" >&6; } -if test $ac_cv_lib_socket_gethostbyname = yes; then - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBSOCKET 1 -_ACEOF - - LIBS="-lsocket $LIBS" - -else - # Unfortunately libsocket sometimes depends on libnsl. - # AC_CHECK_LIB's API is essentially broken so the following - # ugliness is necessary: - { $as_echo "$as_me:$LINENO: checking for gethostbyname in -lsocket" >&5 -$as_echo_n "checking for gethostbyname in -lsocket... " >&6; } -if test "${ac_cv_lib_socket_gethostbyname+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsocket -lnsl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char gethostbyname (); -int -main () -{ -return gethostbyname (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_socket_gethostbyname=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_socket_gethostbyname=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_socket_gethostbyname" >&5 -$as_echo "$ac_cv_lib_socket_gethostbyname" >&6; } -if test $ac_cv_lib_socket_gethostbyname = yes; then - LIBS="-lsocket -lnsl $LIBS" -else - -{ $as_echo "$as_me:$LINENO: checking for gethostbyname in -lresolv" >&5 -$as_echo_n "checking for gethostbyname in -lresolv... " >&6; } -if test "${ac_cv_lib_resolv_gethostbyname+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lresolv $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char gethostbyname (); -int -main () -{ -return gethostbyname (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_resolv_gethostbyname=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_resolv_gethostbyname=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_resolv_gethostbyname" >&5 -$as_echo "$ac_cv_lib_resolv_gethostbyname" >&6; } -if test $ac_cv_lib_resolv_gethostbyname = yes; then - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBRESOLV 1 -_ACEOF - - LIBS="-lresolv $LIBS" - -fi - -fi - - -fi - - -fi - - -fi - - { $as_echo "$as_me:$LINENO: checking for socket" >&5 -$as_echo_n "checking for socket... " >&6; } -if test "${ac_cv_func_socket+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define socket to an innocuous variant, in case <limits.h> declares socket. - For example, HP-UX 11i <limits.h> declares gettimeofday. */ -#define socket innocuous_socket - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char socket (); below. - Prefer <limits.h> to <assert.h> if __STDC__ is defined, since - <limits.h> exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include <limits.h> -#else -# include <assert.h> -#endif - -#undef socket - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char socket (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_socket || defined __stub___socket -choke me -#endif - -int -main () -{ -return socket (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_func_socket=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_func_socket=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_socket" >&5 -$as_echo "$ac_cv_func_socket" >&6; } -if test $ac_cv_func_socket = yes; then - : -else - -{ $as_echo "$as_me:$LINENO: checking for socket in -lsocket" >&5 -$as_echo_n "checking for socket in -lsocket... " >&6; } -if test "${ac_cv_lib_socket_socket+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsocket $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char socket (); -int -main () -{ -return socket (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_socket_socket=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_socket_socket=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_socket_socket" >&5 -$as_echo "$ac_cv_lib_socket_socket" >&6; } -if test $ac_cv_lib_socket_socket = yes; then - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBSOCKET 1 -_ACEOF - - LIBS="-lsocket $LIBS" - -else - { $as_echo "$as_me:$LINENO: checking for socket in -lsocket" >&5 -$as_echo_n "checking for socket in -lsocket... " >&6; } -if test "${ac_cv_lib_socket_socket+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsocket -lnsl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char socket (); -int -main () -{ -return socket (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_socket_socket=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_socket_socket=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_socket_socket" >&5 -$as_echo "$ac_cv_lib_socket_socket" >&6; } -if test $ac_cv_lib_socket_socket = yes; then - LIBS="-lsocket -lnsl $LIBS" -fi - -fi - -fi - - - -{ $as_echo "$as_me:$LINENO: checking for cos in -lm" >&5 -$as_echo_n "checking for cos in -lm... " >&6; } -if test "${ac_cv_lib_m_cos+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lm $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char cos (); -int -main () -{ -return cos (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_m_cos=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_m_cos=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_m_cos" >&5 -$as_echo "$ac_cv_lib_m_cos" >&6; } -if test $ac_cv_lib_m_cos = yes; then - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBM 1 -_ACEOF - - LIBS="-lm $LIBS" - -fi - - -{ $as_echo "$as_me:$LINENO: checking for X" >&5 -$as_echo_n "checking for X... " >&6; } - - -# Check whether --with-x was given. -if test "${with_x+set}" = set; then - withval=$with_x; -fi - -# $have_x is `yes', `no', `disabled', or empty when we do not yet know. -if test "x$with_x" = xno; then - # The user explicitly disabled X. - have_x=disabled -else - case $x_includes,$x_libraries in #( - *\'*) { { $as_echo "$as_me:$LINENO: error: Cannot use X directory names containing '" >&5 -$as_echo "$as_me: error: Cannot use X directory names containing '" >&2;} - { (exit 1); exit 1; }; };; #( - *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then - $as_echo_n "(cached) " >&6 -else - # One or both of the vars are not set, and there is no cached value. -ac_x_includes=no ac_x_libraries=no -rm -f -r conftest.dir -if mkdir conftest.dir; then - cd conftest.dir - cat >Imakefile <<'_ACEOF' -incroot: - @echo incroot='${INCROOT}' -usrlibdir: - @echo usrlibdir='${USRLIBDIR}' -libdir: - @echo libdir='${LIBDIR}' -_ACEOF - if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then - # GNU make sometimes prints "make[1]: Entering...", which would confuse us. - for ac_var in incroot usrlibdir libdir; do - eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`" - done - # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. - for ac_extension in a so sl; do - if test ! -f "$ac_im_usrlibdir/libX11.$ac_extension" && - test -f "$ac_im_libdir/libX11.$ac_extension"; then - ac_im_usrlibdir=$ac_im_libdir; break - fi - done - # Screen out bogus values from the imake configuration. They are - # bogus both because they are the default anyway, and because - # using them would break gcc on systems where it needs fixed includes. - case $ac_im_incroot in - /usr/include) ac_x_includes= ;; - *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;; - esac - case $ac_im_usrlibdir in - /usr/lib | /lib) ;; - *) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;; - esac - fi - cd .. - rm -f -r conftest.dir -fi - -# Standard set of common directories for X headers. -# Check X11 before X11Rn because it is often a symlink to the current release. -ac_x_header_dirs=' -/usr/X11/include -/usr/X11R6/include -/usr/X11R5/include -/usr/X11R4/include - -/usr/include/X11 -/usr/include/X11R6 -/usr/include/X11R5 -/usr/include/X11R4 - -/usr/local/X11/include -/usr/local/X11R6/include -/usr/local/X11R5/include -/usr/local/X11R4/include - -/usr/local/include/X11 -/usr/local/include/X11R6 -/usr/local/include/X11R5 -/usr/local/include/X11R4 - -/usr/X386/include -/usr/x386/include -/usr/XFree86/include/X11 - -/usr/include -/usr/local/include -/usr/unsupported/include -/usr/athena/include -/usr/local/x11r5/include -/usr/lpp/Xamples/include - -/usr/openwin/include -/usr/openwin/share/include' - -if test "$ac_x_includes" = no; then - # Guess where to find include files, by looking for Xlib.h. - # First, try using that file with no special directory specified. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <X11/Xlib.h> -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - # We can compile using X headers with no special include directory. -ac_x_includes= -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - for ac_dir in $ac_x_header_dirs; do - if test -r "$ac_dir/X11/Xlib.h"; then - ac_x_includes=$ac_dir - break - fi -done -fi - -rm -f conftest.err conftest.$ac_ext -fi # $ac_x_includes = no - -if test "$ac_x_libraries" = no; then - # Check for the libraries. - # See if we find them without any special options. - # Don't add to $LIBS permanently. - ac_save_LIBS=$LIBS - LIBS="-lX11 $LIBS" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <X11/Xlib.h> -int -main () -{ -XrmInitialize () - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - LIBS=$ac_save_LIBS -# We can link X programs with no special library path. -ac_x_libraries= -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - LIBS=$ac_save_LIBS -for ac_dir in `$as_echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g` -do - # Don't even attempt the hair of trying to link an X program! - for ac_extension in a so sl; do - if test -r "$ac_dir/libX11.$ac_extension"; then - ac_x_libraries=$ac_dir - break 2 - fi - done -done -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi # $ac_x_libraries = no - -case $ac_x_includes,$ac_x_libraries in #( - no,* | *,no | *\'*) - # Didn't find X, or a directory has "'" in its name. - ac_cv_have_x="have_x=no";; #( - *) - # Record where we found X for the cache. - ac_cv_have_x="have_x=yes\ - ac_x_includes='$ac_x_includes'\ - ac_x_libraries='$ac_x_libraries'" -esac -fi -;; #( - *) have_x=yes;; - esac - eval "$ac_cv_have_x" -fi # $with_x != no - -if test "$have_x" != yes; then - { $as_echo "$as_me:$LINENO: result: $have_x" >&5 -$as_echo "$have_x" >&6; } - no_x=yes -else - # If each of the values was on the command line, it overrides each guess. - test "x$x_includes" = xNONE && x_includes=$ac_x_includes - test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries - # Update the cache value to reflect the command line values. - ac_cv_have_x="have_x=yes\ - ac_x_includes='$x_includes'\ - ac_x_libraries='$x_libraries'" - { $as_echo "$as_me:$LINENO: result: libraries $x_libraries, headers $x_includes" >&5 -$as_echo "libraries $x_libraries, headers $x_includes" >&6; } -fi - -if test "$no_x" = yes; then - # Not all programs may use this symbol, but it does not hurt to define it. - -cat >>confdefs.h <<\_ACEOF -#define X_DISPLAY_MISSING 1 -_ACEOF - - X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS= -else - if test -n "$x_includes"; then - X_CFLAGS="$X_CFLAGS -I$x_includes" - fi - - # It would also be nice to do this for all -L options, not just this one. - if test -n "$x_libraries"; then - X_LIBS="$X_LIBS -L$x_libraries" - # For Solaris; some versions of Sun CC require a space after -R and - # others require no space. Words are not sufficient . . . . - { $as_echo "$as_me:$LINENO: checking whether -R must be followed by a space" >&5 -$as_echo_n "checking whether -R must be followed by a space... " >&6; } - ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries" - ac_xsave_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } - X_LIBS="$X_LIBS -R$x_libraries" -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - LIBS="$ac_xsave_LIBS -R $x_libraries" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } - X_LIBS="$X_LIBS -R $x_libraries" -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - { $as_echo "$as_me:$LINENO: result: neither works" >&5 -$as_echo "neither works" >&6; } -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext - ac_c_werror_flag=$ac_xsave_c_werror_flag - LIBS=$ac_xsave_LIBS - fi - - # Check for system-dependent libraries X programs must link with. - # Do this before checking for the system-independent R6 libraries - # (-lICE), since we may need -lsocket or whatever for X linking. - - if test "$ISC" = yes; then - X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet" - else - # Martyn Johnson says this is needed for Ultrix, if the X - # libraries were built with DECnet support. And Karl Berry says - # the Alpha needs dnet_stub (dnet does not exist). - ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char XOpenDisplay (); -int -main () -{ -return XOpenDisplay (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - : -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - { $as_echo "$as_me:$LINENO: checking for dnet_ntoa in -ldnet" >&5 -$as_echo_n "checking for dnet_ntoa in -ldnet... " >&6; } -if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldnet $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dnet_ntoa (); -int -main () -{ -return dnet_ntoa (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_dnet_dnet_ntoa=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_dnet_dnet_ntoa=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dnet_dnet_ntoa" >&5 -$as_echo "$ac_cv_lib_dnet_dnet_ntoa" >&6; } -if test $ac_cv_lib_dnet_dnet_ntoa = yes; then - X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet" -fi - - if test $ac_cv_lib_dnet_dnet_ntoa = no; then - { $as_echo "$as_me:$LINENO: checking for dnet_ntoa in -ldnet_stub" >&5 -$as_echo_n "checking for dnet_ntoa in -ldnet_stub... " >&6; } -if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldnet_stub $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dnet_ntoa (); -int -main () -{ -return dnet_ntoa (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_dnet_stub_dnet_ntoa=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_dnet_stub_dnet_ntoa=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5 -$as_echo "$ac_cv_lib_dnet_stub_dnet_ntoa" >&6; } -if test $ac_cv_lib_dnet_stub_dnet_ntoa = yes; then - X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub" -fi - - fi -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext - LIBS="$ac_xsave_LIBS" - - # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT, - # to get the SysV transport functions. - # Chad R. Larson says the Pyramis MIS-ES running DC/OSx (SVR4) - # needs -lnsl. - # The nsl library prevents programs from opening the X display - # on Irix 5.2, according to T.E. Dickey. - # The functions gethostbyname, getservbyname, and inet_addr are - # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking. - { $as_echo "$as_me:$LINENO: checking for gethostbyname" >&5 -$as_echo_n "checking for gethostbyname... " >&6; } -if test "${ac_cv_func_gethostbyname+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define gethostbyname to an innocuous variant, in case <limits.h> declares gethostbyname. - For example, HP-UX 11i <limits.h> declares gettimeofday. */ -#define gethostbyname innocuous_gethostbyname - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char gethostbyname (); below. - Prefer <limits.h> to <assert.h> if __STDC__ is defined, since - <limits.h> exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include <limits.h> -#else -# include <assert.h> -#endif - -#undef gethostbyname - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char gethostbyname (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_gethostbyname || defined __stub___gethostbyname -choke me -#endif - -int -main () -{ -return gethostbyname (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_func_gethostbyname=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_func_gethostbyname=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_gethostbyname" >&5 -$as_echo "$ac_cv_func_gethostbyname" >&6; } - - if test $ac_cv_func_gethostbyname = no; then - { $as_echo "$as_me:$LINENO: checking for gethostbyname in -lnsl" >&5 -$as_echo_n "checking for gethostbyname in -lnsl... " >&6; } -if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lnsl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char gethostbyname (); -int -main () -{ -return gethostbyname (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_nsl_gethostbyname=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_nsl_gethostbyname=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_gethostbyname" >&5 -$as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; } -if test $ac_cv_lib_nsl_gethostbyname = yes; then - X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl" -fi - - if test $ac_cv_lib_nsl_gethostbyname = no; then - { $as_echo "$as_me:$LINENO: checking for gethostbyname in -lbsd" >&5 -$as_echo_n "checking for gethostbyname in -lbsd... " >&6; } -if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lbsd $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char gethostbyname (); -int -main () -{ -return gethostbyname (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_bsd_gethostbyname=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_bsd_gethostbyname=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_bsd_gethostbyname" >&5 -$as_echo "$ac_cv_lib_bsd_gethostbyname" >&6; } -if test $ac_cv_lib_bsd_gethostbyname = yes; then - X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd" -fi - - fi - fi - - # lieder@skyler.mavd.honeywell.com says without -lsocket, - # socket/setsockopt and other routines are undefined under SCO ODT - # 2.0. But -lsocket is broken on IRIX 5.2 (and is not necessary - # on later versions), says Simon Leinen: it contains gethostby* - # variants that don't use the name server (or something). -lsocket - # must be given before -lnsl if both are needed. We assume that - # if connect needs -lnsl, so does gethostbyname. - { $as_echo "$as_me:$LINENO: checking for connect" >&5 -$as_echo_n "checking for connect... " >&6; } -if test "${ac_cv_func_connect+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define connect to an innocuous variant, in case <limits.h> declares connect. - For example, HP-UX 11i <limits.h> declares gettimeofday. */ -#define connect innocuous_connect - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char connect (); below. - Prefer <limits.h> to <assert.h> if __STDC__ is defined, since - <limits.h> exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include <limits.h> -#else -# include <assert.h> -#endif - -#undef connect - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char connect (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_connect || defined __stub___connect -choke me -#endif - -int -main () -{ -return connect (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_func_connect=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_func_connect=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_connect" >&5 -$as_echo "$ac_cv_func_connect" >&6; } - - if test $ac_cv_func_connect = no; then - { $as_echo "$as_me:$LINENO: checking for connect in -lsocket" >&5 -$as_echo_n "checking for connect in -lsocket... " >&6; } -if test "${ac_cv_lib_socket_connect+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsocket $X_EXTRA_LIBS $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char connect (); -int -main () -{ -return connect (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_socket_connect=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_socket_connect=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_socket_connect" >&5 -$as_echo "$ac_cv_lib_socket_connect" >&6; } -if test $ac_cv_lib_socket_connect = yes; then - X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS" -fi - - fi - - # Guillermo Gomez says -lposix is necessary on A/UX. - { $as_echo "$as_me:$LINENO: checking for remove" >&5 -$as_echo_n "checking for remove... " >&6; } -if test "${ac_cv_func_remove+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define remove to an innocuous variant, in case <limits.h> declares remove. - For example, HP-UX 11i <limits.h> declares gettimeofday. */ -#define remove innocuous_remove - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char remove (); below. - Prefer <limits.h> to <assert.h> if __STDC__ is defined, since - <limits.h> exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include <limits.h> -#else -# include <assert.h> -#endif - -#undef remove - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char remove (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_remove || defined __stub___remove -choke me -#endif - -int -main () -{ -return remove (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_func_remove=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_func_remove=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_remove" >&5 -$as_echo "$ac_cv_func_remove" >&6; } - - if test $ac_cv_func_remove = no; then - { $as_echo "$as_me:$LINENO: checking for remove in -lposix" >&5 -$as_echo_n "checking for remove in -lposix... " >&6; } -if test "${ac_cv_lib_posix_remove+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lposix $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char remove (); -int -main () -{ -return remove (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_posix_remove=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_posix_remove=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_posix_remove" >&5 -$as_echo "$ac_cv_lib_posix_remove" >&6; } -if test $ac_cv_lib_posix_remove = yes; then - X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix" -fi - - fi - - # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. - { $as_echo "$as_me:$LINENO: checking for shmat" >&5 -$as_echo_n "checking for shmat... " >&6; } -if test "${ac_cv_func_shmat+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define shmat to an innocuous variant, in case <limits.h> declares shmat. - For example, HP-UX 11i <limits.h> declares gettimeofday. */ -#define shmat innocuous_shmat - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char shmat (); below. - Prefer <limits.h> to <assert.h> if __STDC__ is defined, since - <limits.h> exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include <limits.h> -#else -# include <assert.h> -#endif - -#undef shmat - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char shmat (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_shmat || defined __stub___shmat -choke me -#endif - -int -main () -{ -return shmat (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_func_shmat=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_func_shmat=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_shmat" >&5 -$as_echo "$ac_cv_func_shmat" >&6; } - - if test $ac_cv_func_shmat = no; then - { $as_echo "$as_me:$LINENO: checking for shmat in -lipc" >&5 -$as_echo_n "checking for shmat in -lipc... " >&6; } -if test "${ac_cv_lib_ipc_shmat+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lipc $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char shmat (); -int -main () -{ -return shmat (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_ipc_shmat=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_ipc_shmat=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_ipc_shmat" >&5 -$as_echo "$ac_cv_lib_ipc_shmat" >&6; } -if test $ac_cv_lib_ipc_shmat = yes; then - X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc" -fi - - fi - fi - - # Check for libraries that X11R6 Xt/Xaw programs need. - ac_save_LDFLAGS=$LDFLAGS - test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries" - # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to - # check for ICE first), but we must link in the order -lSM -lICE or - # we get undefined symbols. So assume we have SM if we have ICE. - # These have to be linked with before -lX11, unlike the other - # libraries we check for below, so use a different variable. - # John Interrante, Karl Berry - { $as_echo "$as_me:$LINENO: checking for IceConnectionNumber in -lICE" >&5 -$as_echo_n "checking for IceConnectionNumber in -lICE... " >&6; } -if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lICE $X_EXTRA_LIBS $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char IceConnectionNumber (); -int -main () -{ -return IceConnectionNumber (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_ICE_IceConnectionNumber=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_ICE_IceConnectionNumber=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5 -$as_echo "$ac_cv_lib_ICE_IceConnectionNumber" >&6; } -if test $ac_cv_lib_ICE_IceConnectionNumber = yes; then - X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE" -fi - - LDFLAGS=$ac_save_LDFLAGS - -fi - -if test "$no_x" = yes; then - { $as_echo "$as_me:$LINENO: WARNING: Test programs needing X11 won't be compiled." >&5 -$as_echo "$as_me: WARNING: Test programs needing X11 won't be compiled." >&2;} -else - X_PROGRAMS="\$(X_PROGRAMS)" - -fi - - - - -for ac_header in stdlib.h fcntl.h unistd.h -do -as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 -$as_echo_n "checking for $ac_header... " >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -fi -ac_res=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 -$as_echo_n "checking $ac_header usability... " >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_header_compiler=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_compiler=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } - -# Is the header present? -{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 -$as_echo_n "checking $ac_header presence... " >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - ac_header_preproc=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi - -rm -f conftest.err conftest.$ac_ext -{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - - ;; -esac -{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 -$as_echo_n "checking for $ac_header... " >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -else - eval "$as_ac_Header=\$ac_header_preproc" -fi -ac_res=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - -fi -if test `eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - -{ $as_echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5 -$as_echo_n "checking for an ANSI C-conforming const... " >&6; } -if test "${ac_cv_c_const+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ -/* FIXME: Include the comments suggested by Paul. */ -#ifndef __cplusplus - /* Ultrix mips cc rejects this. */ - typedef int charset[2]; - const charset cs; - /* SunOS 4.1.1 cc rejects this. */ - char const *const *pcpcc; - char **ppc; - /* NEC SVR4.0.2 mips cc rejects this. */ - struct point {int x, y;}; - static struct point const zero = {0,0}; - /* AIX XL C 1.02.0.0 rejects this. - It does not let you subtract one const X* pointer from another in - an arm of an if-expression whose if-part is not a constant - expression */ - const char *g = "string"; - pcpcc = &g + (g ? g-g : 0); - /* HPUX 7.0 cc rejects these. */ - ++pcpcc; - ppc = (char**) pcpcc; - pcpcc = (char const *const *) ppc; - { /* SCO 3.2v4 cc rejects this. */ - char *t; - char const *s = 0 ? (char *) 0 : (char const *) 0; - - *t++ = 0; - if (s) return 0; - } - { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ - int x[] = {25, 17}; - const int *foo = &x[0]; - ++foo; - } - { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ - typedef const int *iptr; - iptr p = 0; - ++p; - } - { /* AIX XL C 1.02.0.0 rejects this saying - "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ - struct s { int j; const int *ap[3]; }; - struct s *b; b->j = 5; - } - { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ - const int foo = 10; - if (!foo) return 0; - } - return !cs[0] && !zero.x; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_c_const=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_c_const=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5 -$as_echo "$ac_cv_c_const" >&6; } -if test $ac_cv_c_const = no; then - -cat >>confdefs.h <<\_ACEOF -#define const -_ACEOF - -fi - -{ $as_echo "$as_me:$LINENO: checking for int" >&5 -$as_echo_n "checking for int... " >&6; } -if test "${ac_cv_type_int+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -typedef int ac__type_new_; -int -main () -{ -if ((ac__type_new_ *) 0) - return 0; -if (sizeof (ac__type_new_)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_type_int=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_type_int=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_int" >&5 -$as_echo "$ac_cv_type_int" >&6; } - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:$LINENO: checking size of int" >&5 -$as_echo_n "checking size of int... " >&6; } -if test "${ac_cv_sizeof_int+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then - # Depending upon the size, compute the lo and hi bounds. -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default - typedef int ac__type_sizeof_; -int -main () -{ -static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= 0)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_lo=0 ac_mid=0 - while :; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default - typedef int ac__type_sizeof_; -int -main () -{ -static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_hi=$ac_mid; break -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_lo=`expr $ac_mid + 1` - if test $ac_lo -le $ac_mid; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid + 1` -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default - typedef int ac__type_sizeof_; -int -main () -{ -static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) < 0)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_hi=-1 ac_mid=-1 - while :; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default - typedef int ac__type_sizeof_; -int -main () -{ -static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_lo=$ac_mid; break -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_hi=`expr '(' $ac_mid ')' - 1` - if test $ac_mid -le $ac_hi; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid` -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_lo= ac_hi= -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -# Binary search between lo and hi bounds. -while test "x$ac_lo" != "x$ac_hi"; do - ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default - typedef int ac__type_sizeof_; -int -main () -{ -static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_hi=$ac_mid -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_lo=`expr '(' $ac_mid ')' + 1` -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -done -case $ac_lo in -?*) ac_cv_sizeof_int=$ac_lo;; -'') if test "$ac_cv_type_int" = yes; then - { { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (int) -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: cannot compute sizeof (int) -See \`config.log' for more details." >&2;} - { (exit 77); exit 77; }; } - else - ac_cv_sizeof_int=0 - fi ;; -esac -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default - typedef int ac__type_sizeof_; -static long int longval () { return (long int) (sizeof (ac__type_sizeof_)); } -static unsigned long int ulongval () { return (long int) (sizeof (ac__type_sizeof_)); } -#include <stdio.h> -#include <stdlib.h> -int -main () -{ - - FILE *f = fopen ("conftest.val", "w"); - if (! f) - return 1; - if (((long int) (sizeof (ac__type_sizeof_))) < 0) - { - long int i = longval (); - if (i != ((long int) (sizeof (ac__type_sizeof_)))) - return 1; - fprintf (f, "%ld", i); - } - else - { - unsigned long int i = ulongval (); - if (i != ((long int) (sizeof (ac__type_sizeof_)))) - return 1; - fprintf (f, "%lu", i); - } - /* Do not output a trailing newline, as this causes \r\n confusion - on some platforms. */ - return ferror (f) || fclose (f) != 0; - - ; - return 0; -} -_ACEOF -rm -f conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_sizeof_int=`cat conftest.val` -else - $as_echo "$as_me: program exited with status $ac_status" >&5 -$as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -if test "$ac_cv_type_int" = yes; then - { { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (int) -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: cannot compute sizeof (int) -See \`config.log' for more details." >&2;} - { (exit 77); exit 77; }; } - else - ac_cv_sizeof_int=0 - fi -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -rm -f conftest.val -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_sizeof_int" >&5 -$as_echo "$ac_cv_sizeof_int" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_INT $ac_cv_sizeof_int -_ACEOF - - -{ $as_echo "$as_me:$LINENO: checking for long" >&5 -$as_echo_n "checking for long... " >&6; } -if test "${ac_cv_type_long+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -typedef long ac__type_new_; -int -main () -{ -if ((ac__type_new_ *) 0) - return 0; -if (sizeof (ac__type_new_)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_type_long=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_type_long=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_long" >&5 -$as_echo "$ac_cv_type_long" >&6; } - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:$LINENO: checking size of long" >&5 -$as_echo_n "checking size of long... " >&6; } -if test "${ac_cv_sizeof_long+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then - # Depending upon the size, compute the lo and hi bounds. -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default - typedef long ac__type_sizeof_; -int -main () -{ -static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= 0)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_lo=0 ac_mid=0 - while :; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default - typedef long ac__type_sizeof_; -int -main () -{ -static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_hi=$ac_mid; break -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_lo=`expr $ac_mid + 1` - if test $ac_lo -le $ac_mid; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid + 1` -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default - typedef long ac__type_sizeof_; -int -main () -{ -static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) < 0)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_hi=-1 ac_mid=-1 - while :; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default - typedef long ac__type_sizeof_; -int -main () -{ -static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_lo=$ac_mid; break -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_hi=`expr '(' $ac_mid ')' - 1` - if test $ac_mid -le $ac_hi; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid` -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_lo= ac_hi= -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -# Binary search between lo and hi bounds. -while test "x$ac_lo" != "x$ac_hi"; do - ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default - typedef long ac__type_sizeof_; -int -main () -{ -static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_hi=$ac_mid -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_lo=`expr '(' $ac_mid ')' + 1` -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -done -case $ac_lo in -?*) ac_cv_sizeof_long=$ac_lo;; -'') if test "$ac_cv_type_long" = yes; then - { { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (long) -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: cannot compute sizeof (long) -See \`config.log' for more details." >&2;} - { (exit 77); exit 77; }; } - else - ac_cv_sizeof_long=0 - fi ;; -esac -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default - typedef long ac__type_sizeof_; -static long int longval () { return (long int) (sizeof (ac__type_sizeof_)); } -static unsigned long int ulongval () { return (long int) (sizeof (ac__type_sizeof_)); } -#include <stdio.h> -#include <stdlib.h> -int -main () -{ - - FILE *f = fopen ("conftest.val", "w"); - if (! f) - return 1; - if (((long int) (sizeof (ac__type_sizeof_))) < 0) - { - long int i = longval (); - if (i != ((long int) (sizeof (ac__type_sizeof_)))) - return 1; - fprintf (f, "%ld", i); - } - else - { - unsigned long int i = ulongval (); - if (i != ((long int) (sizeof (ac__type_sizeof_)))) - return 1; - fprintf (f, "%lu", i); - } - /* Do not output a trailing newline, as this causes \r\n confusion - on some platforms. */ - return ferror (f) || fclose (f) != 0; - - ; - return 0; -} -_ACEOF -rm -f conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_sizeof_long=`cat conftest.val` -else - $as_echo "$as_me: program exited with status $ac_status" >&5 -$as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -if test "$ac_cv_type_long" = yes; then - { { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (long) -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: cannot compute sizeof (long) -See \`config.log' for more details." >&2;} - { (exit 77); exit 77; }; } - else - ac_cv_sizeof_long=0 - fi -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -rm -f conftest.val -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_sizeof_long" >&5 -$as_echo "$ac_cv_sizeof_long" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_LONG $ac_cv_sizeof_long -_ACEOF - - - - - - -for ac_header in stdlib.h unistd.h -do -as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 -$as_echo_n "checking for $ac_header... " >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -fi -ac_res=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 -$as_echo_n "checking $ac_header usability... " >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_header_compiler=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_compiler=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } - -# Is the header present? -{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 -$as_echo_n "checking $ac_header presence... " >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - ac_header_preproc=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi - -rm -f conftest.err conftest.$ac_ext -{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - - ;; -esac -{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 -$as_echo_n "checking for $ac_header... " >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -else - eval "$as_ac_Header=\$ac_header_preproc" -fi -ac_res=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - -fi -if test `eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - -for ac_func in getpagesize -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 -$as_echo_n "checking for $ac_func... " >&6; } -if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func. - For example, HP-UX 11i <limits.h> declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer <limits.h> to <assert.h> if __STDC__ is defined, since - <limits.h> exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include <limits.h> -#else -# include <assert.h> -#endif - -#undef $ac_func - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_$ac_func || defined __stub___$ac_func -choke me -#endif - -int -main () -{ -return $ac_func (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - eval "$as_ac_var=yes" -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - eval "$as_ac_var=no" -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -ac_res=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if test `eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - -{ $as_echo "$as_me:$LINENO: checking for working mmap" >&5 -$as_echo_n "checking for working mmap... " >&6; } -if test "${ac_cv_func_mmap_fixed_mapped+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then - ac_cv_func_mmap_fixed_mapped=no -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -/* malloc might have been renamed as rpl_malloc. */ -#undef malloc - -/* Thanks to Mike Haertel and Jim Avera for this test. - Here is a matrix of mmap possibilities: - mmap private not fixed - mmap private fixed at somewhere currently unmapped - mmap private fixed at somewhere already mapped - mmap shared not fixed - mmap shared fixed at somewhere currently unmapped - mmap shared fixed at somewhere already mapped - For private mappings, we should verify that changes cannot be read() - back from the file, nor mmap's back from the file at a different - address. (There have been systems where private was not correctly - implemented like the infamous i386 svr4.0, and systems where the - VM page cache was not coherent with the file system buffer cache - like early versions of FreeBSD and possibly contemporary NetBSD.) - For shared mappings, we should conversely verify that changes get - propagated back to all the places they're supposed to be. - - Grep wants private fixed already mapped. - The main things grep needs to know about mmap are: - * does it exist and is it safe to write into the mmap'd area - * how to use it (BSD variants) */ - -#include <fcntl.h> -#include <sys/mman.h> - -#if !defined STDC_HEADERS && !defined HAVE_STDLIB_H -char *malloc (); -#endif - -/* This mess was copied from the GNU getpagesize.h. */ -#ifndef HAVE_GETPAGESIZE -/* Assume that all systems that can run configure have sys/param.h. */ -# ifndef HAVE_SYS_PARAM_H -# define HAVE_SYS_PARAM_H 1 -# endif - -# ifdef _SC_PAGESIZE -# define getpagesize() sysconf(_SC_PAGESIZE) -# else /* no _SC_PAGESIZE */ -# ifdef HAVE_SYS_PARAM_H -# include <sys/param.h> -# ifdef EXEC_PAGESIZE -# define getpagesize() EXEC_PAGESIZE -# else /* no EXEC_PAGESIZE */ -# ifdef NBPG -# define getpagesize() NBPG * CLSIZE -# ifndef CLSIZE -# define CLSIZE 1 -# endif /* no CLSIZE */ -# else /* no NBPG */ -# ifdef NBPC -# define getpagesize() NBPC -# else /* no NBPC */ -# ifdef PAGESIZE -# define getpagesize() PAGESIZE -# endif /* PAGESIZE */ -# endif /* no NBPC */ -# endif /* no NBPG */ -# endif /* no EXEC_PAGESIZE */ -# else /* no HAVE_SYS_PARAM_H */ -# define getpagesize() 8192 /* punt totally */ -# endif /* no HAVE_SYS_PARAM_H */ -# endif /* no _SC_PAGESIZE */ - -#endif /* no HAVE_GETPAGESIZE */ - -int -main () -{ - char *data, *data2, *data3; - int i, pagesize; - int fd; - - pagesize = getpagesize (); - - /* First, make a file with some known garbage in it. */ - data = (char *) malloc (pagesize); - if (!data) - return 1; - for (i = 0; i < pagesize; ++i) - *(data + i) = rand (); - umask (0); - fd = creat ("conftest.mmap", 0600); - if (fd < 0) - return 1; - if (write (fd, data, pagesize) != pagesize) - return 1; - close (fd); - - /* Next, try to mmap the file at a fixed address which already has - something else allocated at it. If we can, also make sure that - we see the same garbage. */ - fd = open ("conftest.mmap", O_RDWR); - if (fd < 0) - return 1; - data2 = (char *) malloc (2 * pagesize); - if (!data2) - return 1; - data2 += (pagesize - ((long int) data2 & (pagesize - 1))) & (pagesize - 1); - if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE, - MAP_PRIVATE | MAP_FIXED, fd, 0L)) - return 1; - for (i = 0; i < pagesize; ++i) - if (*(data + i) != *(data2 + i)) - return 1; - - /* Finally, make sure that changes to the mapped area do not - percolate back to the file as seen by read(). (This is a bug on - some variants of i386 svr4.0.) */ - for (i = 0; i < pagesize; ++i) - *(data2 + i) = *(data2 + i) + 1; - data3 = (char *) malloc (pagesize); - if (!data3) - return 1; - if (read (fd, data3, pagesize) != pagesize) - return 1; - for (i = 0; i < pagesize; ++i) - if (*(data + i) != *(data3 + i)) - return 1; - close (fd); - return 0; -} -_ACEOF -rm -f conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_mmap_fixed_mapped=yes -else - $as_echo "$as_me: program exited with status $ac_status" >&5 -$as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_func_mmap_fixed_mapped=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi - - -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_mmap_fixed_mapped" >&5 -$as_echo "$ac_cv_func_mmap_fixed_mapped" >&6; } -if test $ac_cv_func_mmap_fixed_mapped = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_MMAP 1 -_ACEOF - -fi -rm -f conftest.mmap - -if test "$ac_cv_func_mmap_fixed_mapped" != yes; then - TT_FILE_COMPONENT=ttfile.c -else - TT_FILE_COMPONENT=arch/unix/ttmmap.c -fi - - - - -for ac_func in memcpy memmove -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 -$as_echo_n "checking for $ac_func... " >&6; } -if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func. - For example, HP-UX 11i <limits.h> declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer <limits.h> to <assert.h> if __STDC__ is defined, since - <limits.h> exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include <limits.h> -#else -# include <assert.h> -#endif - -#undef $ac_func - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_$ac_func || defined __stub___$ac_func -choke me -#endif - -int -main () -{ -return $ac_func (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - eval "$as_ac_var=yes" -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - eval "$as_ac_var=no" -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -ac_res=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if test `eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - -ac_config_headers="$ac_config_headers ft_conf.h" - - -$srcdir/mkinstalldirs lib/arch/unix test/arch/unix - -ac_config_files="$ac_config_files Makefile MakeSub lib/arch/unix/Makefile test/arch/unix/Makefile" - -ac_config_files="$ac_config_files po/Makefile.in" - -cat >confcache <<\_ACEOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs, see configure's option --config-cache. -# It is not useful on other systems. If it contains results you don't -# want to keep, you may remove or edit it. -# -# config.status only pays attention to the cache file if you give it -# the --recheck option to rerun configure. -# -# `ac_cv_env_foo' variables (set or unset) will be overridden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the -# following values. - -_ACEOF - -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, we kill variables containing newlines. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -( - for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 -$as_echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) $as_unset $ac_var ;; - esac ;; - esac - done - - (set) 2>&1 | - case $as_nl`(ac_space=' '; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - # `set' does not quote correctly, so add quotes (double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \). - sed -n \ - "s/'/'\\\\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; #( - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) | - sed ' - /^ac_cv_env_/b end - t clear - :clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - :end' >>confcache -if diff "$cache_file" confcache >/dev/null 2>&1; then :; else - if test -w "$cache_file"; then - test "x$cache_file" != "x/dev/null" && - { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5 -$as_echo "$as_me: updating cache $cache_file" >&6;} - cat confcache >$cache_file - else - { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 -$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} - fi -fi -rm -f confcache - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -DEFS=-DHAVE_CONFIG_H - -ac_libobjs= -ac_ltlibobjs= -for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue - # 1. Remove the extension, and $U if already installed. - ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' - ac_i=`$as_echo "$ac_i" | sed "$ac_script"` - # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR - # will be set to the directory where LIBOBJS objects are built. - ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" - ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' -done -LIBOBJS=$ac_libobjs - -LTLIBOBJS=$ac_ltlibobjs - - - -: ${CONFIG_STATUS=./config.status} -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 -$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} -cat >$CONFIG_STATUS <<_ACEOF -#! $SHELL -# Generated by $as_me. -# Run this file to recreate the current configuration. -# Compiler output produced by configure, useful for debugging -# configure, is in config.log if it exists. - -debug=false -ac_cs_recheck=false -ac_cs_silent=false -SHELL=\${CONFIG_SHELL-$SHELL} -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in - *posix*) set -o posix ;; -esac - -fi - - - - -# PATH needs CR -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - -# Support unset when possible. -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -case $0 in - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - { (exit 1); exit 1; } -fi - -# Work around bugs in pre-3.0 UWIN ksh. -for as_var in ENV MAIL MAILPATH -do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME -do - if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var - else - ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var - fi -done - -# Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - - -# Name of the executable. -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# CDPATH. -$as_unset CDPATH - - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line after each line using $LINENO; the second 'sed' - # does the real work. The second script uses 'N' to pair each - # line-number line with the line containing $LINENO, and appends - # trailing '-' during substitution so that $LINENO is not a special - # case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # scripts with optimization help from Paolo Bonzini. Blame Lee - # E. McMahon (1931-1989) for sed's syntax. :-) - sed -n ' - p - /[$]LINENO/= - ' <$as_myself | - sed ' - s/[$]LINENO.*/&-/ - t lineno - b - :lineno - N - :loop - s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ - t loop - s/-\n.*// - ' >$as_me.lineno && - chmod +x "$as_me.lineno" || - { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 - { (exit 1); exit 1; }; } - - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensitive to this). - . "./$as_me.lineno" - # Exit status is that of the last command. - exit -} - - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in --n*) - case `echo 'x\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - *) ECHO_C='\c';; - esac;; -*) - ECHO_N='-n';; -esac -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir -fi -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - -if mkdir -p . 2>/dev/null; then - as_mkdir_p=: -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -exec 6>&1 - -# Save the log message, to keep $[0] and so on meaningful, and to -# report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. -ac_log=" -This file was extended by $as_me, which was -generated by GNU Autoconf 2.61a. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $0 $@ - -on `(hostname || uname -n) 2>/dev/null | sed 1q` -" - -_ACEOF - -cat >>$CONFIG_STATUS <<_ACEOF -# Files that config.status was made for. -config_files="$ac_config_files" -config_headers="$ac_config_headers" - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF -ac_cs_usage="\ -\`$as_me' instantiates files from templates according to the -current configuration. - -Usage: $0 [OPTIONS] [FILE]... - - -h, --help print this help, then exit - -V, --version print version number and configuration settings, then exit - -q, --quiet do not print progress messages - -d, --debug don't remove temporary files - --recheck update $as_me by reconfiguring in the same conditions - --file=FILE[:TEMPLATE] - instantiate the configuration file FILE - --header=FILE[:TEMPLATE] - instantiate the configuration header FILE - -Configuration files: -$config_files - -Configuration headers: -$config_headers - -Report bugs to <bug-autoconf@gnu.org>." - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF -ac_cs_version="\\ -config.status -configured by $0, generated by GNU Autoconf 2.61a, - with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" - -Copyright (C) 2006 Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." - -ac_pwd='$ac_pwd' -srcdir='$srcdir' -INSTALL='$INSTALL' -test -n "\$AWK" || AWK=awk -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF -# If no file are specified by the user, then we need to provide default -# value. By we need to know if files were specified by the user. -ac_need_defaults=: -while test $# != 0 -do - case $1 in - --*=*) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` - ac_shift=: - ;; - *) - ac_option=$1 - ac_optarg=$2 - ac_shift=shift - ;; - esac - - case $ac_option in - # Handling of the options. - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - ac_cs_recheck=: ;; - --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) - $as_echo "$ac_cs_version"; exit ;; - --debug | --debu | --deb | --de | --d | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - $ac_shift - CONFIG_FILES="$CONFIG_FILES $ac_optarg" - ac_need_defaults=false;; - --header | --heade | --head | --hea ) - $ac_shift - CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" - ac_need_defaults=false;; - --he | --h) - # Conflict between --help and --header - { $as_echo "$as_me: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&2 - { (exit 1); exit 1; }; };; - --help | --hel | -h ) - $as_echo "$ac_cs_usage"; exit ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil | --si | --s) - ac_cs_silent=: ;; - - # This is an error. - -*) { $as_echo "$as_me: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&2 - { (exit 1); exit 1; }; } ;; - - *) ac_config_targets="$ac_config_targets $1" - ac_need_defaults=false ;; - - esac - shift -done - -ac_configure_extra_args= - -if $ac_cs_silent; then - exec 6>/dev/null - ac_configure_extra_args="$ac_configure_extra_args --silent" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF -if \$ac_cs_recheck; then - set X '$SHELL' '$0'$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion - shift - \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 - CONFIG_SHELL='$SHELL' - export CONFIG_SHELL - exec "\$@" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -## Running $as_me. ## -_ASBOX - $as_echo "$ac_log" -} >&5 - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF - -# Handling of arguments. -for ac_config_target in $ac_config_targets -do - case $ac_config_target in - "ft_conf.h") CONFIG_HEADERS="$CONFIG_HEADERS ft_conf.h" ;; - "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; - "MakeSub") CONFIG_FILES="$CONFIG_FILES MakeSub" ;; - "lib/arch/unix/Makefile") CONFIG_FILES="$CONFIG_FILES lib/arch/unix/Makefile" ;; - "test/arch/unix/Makefile") CONFIG_FILES="$CONFIG_FILES test/arch/unix/Makefile" ;; - "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; - - *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 -$as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;} - { (exit 1); exit 1; }; };; - esac -done - - -# If the user did not use the arguments to specify the items to instantiate, -# then the envvar interface is used. Set only those that are not. -# We use the long form for the default assignment because of an extremely -# bizarre bug on SunOS 4.1.3. -if $ac_need_defaults; then - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files - test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers -fi - -# Have a temporary directory for convenience. Make it in the build tree -# simply because there is no reason against having it here, and in addition, -# creating and moving files from /tmp can sometimes cause problems. -# Hook for its removal unless debugging. -# Note that there is a small window in which the directory will not be cleaned: -# after its creation but before its name has been assigned to `$tmp'. -$debug || -{ - tmp= - trap 'exit_status=$? - { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status -' 0 - trap '{ (exit 1); exit 1; }' 1 2 13 15 -} -# Create a (secure) tmp directory for tmp files. - -{ - tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" -} || -{ - tmp=./conf$$-$RANDOM - (umask 077 && mkdir "$tmp") -} || -{ - $as_echo "$me: cannot create a temporary directory in ." >&2 - { (exit 1); exit 1; } -} - -# Set up the scripts for CONFIG_FILES section. -# No need to generate them if there are no CONFIG_FILES. -# This happens for instance with `./config.status config.h'. -if test -n "$CONFIG_FILES"; then - - -echo 'BEGIN {' >"$tmp/subs.awk" -_ACEOF - - -{ - echo "cat >conf$$subs.awk <<_ACEOF" - echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' - echo "_ACEOF" -} >conf$$subs.sh -ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` -ac_delim='%!_!# ' -for ac_last_try in false false false false false :; do - . ./conf$$subs.sh - - if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` = $ac_delim_num; then - break - elif $ac_last_try; then - { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 -$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} - { (exit 1); exit 1; }; } - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done -rm -f conf$$subs.sh - -cat >>$CONFIG_STATUS <<_ACEOF -cat >>"\$tmp/subs.awk" <<\CEOF -_ACEOF -sed -n ' -h -s/^/S["/; s/!.*/"]=/ -p -g -s/^[^!]*!// -:repl -t repl -s/'"$ac_delim"'$// -t delim -:nl -h -s/\(.\{148\}\).*/\1/ -t more1 -s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ -p -n -b repl -:more1 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t nl -:delim -h -s/\(.\{148\}\).*/\1/ -t more2 -s/["\\]/\\&/g; s/^/"/; s/$/"/ -p -b -:more2 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t delim -' <conf$$subs.awk | sed ' -/^[^"]/{ - N - s/\n// -} -' >>$CONFIG_STATUS -rm -f conf$$subs.awk -cat >>$CONFIG_STATUS <<_ACEOF -CEOF -cat >>"\$tmp/subs.awk" <<CEOF - for (key in S) S_is_set[key] = 1 - FS = "" - -} -{ - line = $ 0 - nfields = split(line, field, "@") - substed = 0 - len = length(field[1]) - for (i = 2; i < nfields; i++) { - key = field[i] - keylen = length(key) - if (S_is_set[key]) { - value = S[key] - line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) - len += length(value) + length(field[++i]) - substed = 1 - } else - len += 1 + keylen - } - - print line -} - -CEOF -_ACEOF - -# VPATH may cause trouble with some makes, so we remove $(srcdir), -# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and -# trailing colons and then remove the whole line if VPATH becomes empty -# (actually we leave an empty line to preserve line numbers). -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=/{ -s/:*\$(srcdir):*/:/ -s/:*\${srcdir}:*/:/ -s/:*@srcdir@:*/:/ -s/^\([^=]*=[ ]*\):*/\1/ -s/:*$// -s/^[^=]*=[ ]*$// -}' -fi - -cat >>$CONFIG_STATUS <<\_ACEOF -fi # test -n "$CONFIG_FILES" - - -for ac_tag in :F $CONFIG_FILES :H $CONFIG_HEADERS -do - case $ac_tag in - :[FHLC]) ac_mode=$ac_tag; continue;; - esac - case $ac_mode$ac_tag in - :[FHL]*:*);; - :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5 -$as_echo "$as_me: error: Invalid tag $ac_tag." >&2;} - { (exit 1); exit 1; }; };; - :[FH]-) ac_tag=-:-;; - :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; - esac - ac_save_IFS=$IFS - IFS=: - set x $ac_tag - IFS=$ac_save_IFS - shift - ac_file=$1 - shift - - case $ac_mode in - :L) ac_source=$1;; - :[FH]) - ac_file_inputs= - for ac_f - do - case $ac_f in - -) ac_f="$tmp/stdin";; - *) # Look for the file first in the build tree, then in the source tree - # (if the path is not absolute). The absolute path cannot be DOS-style, - # because $ac_f cannot contain `:'. - test -f "$ac_f" || - case $ac_f in - [\\/$]*) false;; - *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; - esac || - { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 -$as_echo "$as_me: error: cannot find input file: $ac_f" >&2;} - { (exit 1); exit 1; }; };; - esac - ac_file_inputs="$ac_file_inputs $ac_f" - done - - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - configure_input='Generated from '` - $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' - `' by configure.' - if test x"$ac_file" != x-; then - configure_input="$ac_file. $configure_input" - { $as_echo "$as_me:$LINENO: creating $ac_file" >&5 -$as_echo "$as_me: creating $ac_file" >&6;} - fi - - case $ac_tag in - *:-:* | *:-) cat >"$tmp/stdin";; - esac - ;; - esac - - ac_dir=`$as_dirname -- "$ac_file" || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - { as_dir="$ac_dir" - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 -$as_echo "$as_me: error: cannot create directory $as_dir" >&2;} - { (exit 1); exit 1; }; }; } - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - - case $ac_mode in - :F) - # - # CONFIG_FILE - # - - case $INSTALL in - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; - *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; - esac -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF -# If the template does not know about datarootdir, expand it. -# FIXME: This hack should be removed a few years after 2.60. -ac_datarootdir_hack=; ac_datarootdir_seen= - -case `sed -n '/datarootdir/ { - p - q -} -/@datadir@/p -/@docdir@/p -/@infodir@/p -/@localedir@/p -/@mandir@/p -' $ac_file_inputs` in -*datarootdir*) ac_datarootdir_seen=yes;; -*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { $as_echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 -$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF - ac_datarootdir_hack=' - s&@datadir@&$datadir&g - s&@docdir@&$docdir&g - s&@infodir@&$infodir&g - s&@localedir@&$localedir&g - s&@mandir@&$mandir&g - s&\\\${datarootdir}&$datarootdir&g' ;; -esac -_ACEOF - -# Neutralize VPATH when `$srcdir' = `.'. -# Shell code in configure.ac might set extrasub. -# FIXME: do we really want to maintain this feature? -cat >>$CONFIG_STATUS <<_ACEOF - sed "$ac_vpsub -$extrasub -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s&@configure_input@&$configure_input&;t t -s&@top_builddir@&$ac_top_builddir_sub&;t t -s&@srcdir@&$ac_srcdir&;t t -s&@abs_srcdir@&$ac_abs_srcdir&;t t -s&@top_srcdir@&$ac_top_srcdir&;t t -s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t -s&@builddir@&$ac_builddir&;t t -s&@abs_builddir@&$ac_abs_builddir&;t t -s&@abs_top_builddir@&$ac_abs_top_builddir&;t t -s&@INSTALL@&$ac_INSTALL&;t t -$ac_datarootdir_hack -" $ac_file_inputs | $AWK -f "$tmp/subs.awk" >$tmp/out - -test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && - { $as_echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined." >&5 -$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined." >&2;} - - rm -f "$tmp/stdin" - case $ac_file in - -) cat "$tmp/out"; rm -f "$tmp/out";; - *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;; - esac - ;; - :H) - # - # CONFIG_HEADER - # -_ACEOF - -# Transform confdefs.h into a sed script `conftest.defines', that -# substitutes the proper values into config.h.in to produce config.h. -rm -f conftest.defines conftest.tail -# First, append a space to every undef/define line, to ease matching. -echo 's/$/ /' >conftest.defines -# Then, protect against being on the right side of a sed subst, or in -# an unquoted here document, in config.status. If some macros were -# called several times there might be several #defines for the same -# symbol, which is useless. But do not sort them, since the last -# AC_DEFINE must be honored. -ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* -# These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where -# NAME is the cpp macro being defined, VALUE is the value it is being given. -# PARAMS is the parameter list in the macro definition--in most cases, it's -# just an empty string. -ac_dA='s,^\\([ #]*\\)[^ ]*\\([ ]*' -ac_dB='\\)[ (].*,\\1define\\2' -ac_dC=' ' -ac_dD=' ,' - -uniq confdefs.h | - sed -n ' - t rset - :rset - s/^[ ]*#[ ]*define[ ][ ]*// - t ok - d - :ok - s/[\\&,]/\\&/g - s/^\('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p - s/^\('"$ac_word_re"'\)[ ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p - ' >>conftest.defines - -# Remove the space that was appended to ease matching. -# Then replace #undef with comments. This is necessary, for -# example, in the case of _POSIX_SOURCE, which is predefined and required -# on some systems where configure will not decide to define it. -# (The regexp can be short, since the line contains either #define or #undef.) -echo 's/ $// -s,^[ #]*u.*,/* & */,' >>conftest.defines - -# Break up conftest.defines: -ac_max_sed_lines=50 - -# First sed command is: sed -f defines.sed $ac_file_inputs >"$tmp/out1" -# Second one is: sed -f defines.sed "$tmp/out1" >"$tmp/out2" -# Third one will be: sed -f defines.sed "$tmp/out2" >"$tmp/out1" -# et cetera. -ac_in='$ac_file_inputs' -ac_out='"$tmp/out1"' -ac_nxt='"$tmp/out2"' - -while : -do - # Write a here document: - cat >>$CONFIG_STATUS <<_ACEOF - # First, check the format of the line: - cat >"\$tmp/defines.sed" <<\\CEOF -/^[ ]*#[ ]*undef[ ][ ]*$ac_word_re[ ]*\$/b def -/^[ ]*#[ ]*define[ ][ ]*$ac_word_re[( ]/b def -b -:def -_ACEOF - sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS - echo 'CEOF - sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS - ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in - sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail - grep . conftest.tail >/dev/null || break - rm -f conftest.defines - mv conftest.tail conftest.defines -done -rm -f conftest.defines conftest.tail - -echo "ac_result=$ac_in" >>$CONFIG_STATUS -cat >>$CONFIG_STATUS <<\_ACEOF - if test x"$ac_file" != x-; then - $as_echo "/* $configure_input */" >"$tmp/config.h" - cat "$ac_result" >>"$tmp/config.h" - if diff $ac_file "$tmp/config.h" >/dev/null 2>&1; then - { $as_echo "$as_me:$LINENO: $ac_file is unchanged" >&5 -$as_echo "$as_me: $ac_file is unchanged" >&6;} - else - rm -f $ac_file - mv "$tmp/config.h" $ac_file - fi - else - $as_echo "/* $configure_input */" - cat "$ac_result" - fi - rm -f "$tmp/out12" - ;; - - - esac - - - case $ac_file$ac_mode in - "po/Makefile.in":F) sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile ;; - - esac -done # for ac_tag - - -{ (exit 0); exit 0; } -_ACEOF -chmod +x $CONFIG_STATUS -ac_clean_files=$ac_clean_files_save - - -# configure is writing to config.log, and then calls config.status. -# config.status does its own redirection, appending to config.log. -# Unfortunately, on DOS this fails, as config.log is still kept open -# by configure, so config.status won't be able to write to it; its -# output is simply discarded. So we exec the FD to /dev/null, -# effectively closing config.log, so it can be properly (re)opened and -# appended to by config.status. When coming back to configure, we -# need to make the FD available again. -if test "$no_create" != yes; then - ac_cs_success=: - ac_config_status_args= - test "$silent" = yes && - ac_config_status_args="$ac_config_status_args --quiet" - exec 5>/dev/null - $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false - exec 5>>config.log - # Use ||, not &&, to avoid exiting from the if with $? = 1, which - # would make configure fail if this is the last instruction. - $ac_cs_success || { (exit 1); exit 1; } -fi - - - diff --git a/Build/source/libs/freetype/freetype-1.5/configure.in b/Build/source/libs/freetype/freetype-1.5/configure.in deleted file mode 100644 index 115cbaec601..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/configure.in +++ /dev/null @@ -1,266 +0,0 @@ -dnl This file is part of the FreeType project, and may only be used, -dnl modified, and distributed under the terms of the FreeType project -dnl license, LICENSE.TXT. By continuing to use, modify, or distribute -dnl this file you indicate that you have read the license and understand -dnl and accept it fully. -dnl -dnl Process this file with autoconf to produce a configure script. - -AC_INIT(lib/freetype.h) - -dnl Due to a bug in autoconf we must set $srcdir explicitly to an absolute -dnl path. -srcdir=`cd $srcdir; pwd` - -AM_DISABLE_STATIC -AC_LIBTOOL_WIN32_DLL -AM_PROG_LIBTOOL - -dnl FreeType version -freetype_version='1.5' - -dnl libttf.so version -version_info='6:0:4' - -AC_ARG_ENABLE(nls, - [ --disable-nls don't use NLS], - USE_NLS=no, USE_NLS=yes) -AC_SUBST(USE_NLS) - -dnl Checks for system type. -AC_CANONICAL_SYSTEM - -dnl Checks for programs. -AC_PROG_CC -AC_PROG_CPP - -dnl get Compiler flags right. - -if test "x$CC" = xgcc; then - XX_CFLAGS="-Wall -fno-strict-aliasing -pedantic -ansi -D_REENTRANT" -else - case "$host" in - *-dec-osf*) - XX_CFLAGS="-std1 -O2 -g3" - ;; - *) - XX_CFLAGS= - ;; - esac -fi -AC_SUBST(XX_CFLAGS) - -dnl at least Digital UNIX 4.0d needs this due to a strange make program - -case "$host" in - *-dec-osf*) - ln -s ../../MakeSub lib/arch - ln -s ../../MakeSub test/arch - ;; -esac - -AC_SUBST(freetype_version) -AC_SUBST(version_info) - - -dnl NLS/gettext nightmare^H^H^H^H^H^H^H^H^H^H support... - -dnl autoconf-2.59+ disallows AC_REQUIRE outside AC_DEFUN -AC_DEFUN([ft_AC_REQUIRE_AC_PROG_MAKE_SET], - [AC_REQUIRE([AC_PROG_MAKE_SET])]) - -if test "$USE_NLS" = "yes"; then - ft_AC_REQUIRE_AC_PROG_MAKE_SET - AC_CHECK_HEADERS(locale.h) - AC_CHECK_FUNCS(setlocale) - AC_SUBST(HAVE_LOCALE_H) - - AC_CHECK_HEADERS(libintl.h) - AC_SUBST(HAVE_LIBINTL_H) - - ALL_LINGUAS="de fr cs nl es" - - dnl We now need to check whether the "intl" library is available. - dnl The bad news is that a number of possibilities can happen: - dnl a) GNU gettext support is already available from the (modern) libc - dnl b) some version of gettext is available as standalone "intl" lib - dnl No real problem (this was the only case previously detected) - dnl c) a recent version of gettext is used, and it needs the - dnl (separate) "iconv" library to work - dnl - dnl This test has been adapted from gettext.m4, written by Bruno Haible - LIBINTL= - LTLIBINTL= - - dnl First, test case a) - AC_CACHE_CHECK([for GNU gettext in libc], ftgt_cv_func_gnugettext_libc, - [AC_TRY_LINK([ -#include <libintl.h> -extern int _nl_msg_cat_cntr; -extern int *_nl_domain_bindings; - ],[ -bindtextdomain ("", ""); -return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_domain_bindings - ], ftgt_cv_func_gnugettext_libc=yes, - ftgt_cv_func_gnugettext_libc=no)]) - - if test "$ftgt_cv_func_gnugettext_libc" != "yes"; then - dnl It does not come for free. Let's check case b), - dnl id est see whether libintl exists and does not depend on libiconv. - AC_CHECK_LIB(intl, gettext) - - if test "$ac_cv_lib_intl_gettext" != "yes"; then - dnl Does not work; so let's check case c), - dnl id est see whether libintl exists and depends on libiconv. - AC_CACHE_CHECK([for GNU gettext in libintl, using libiconv], - ftgt_cv_func_gnugettext_libintliconv, - [AC_CHECK_LIB(intl, bindtextdomain, - ftgt_cv_func_gnugettext_libintliconv=yes LIBS="$LIBS -lintl -liconv", - [ftgt_cv_func_gnugettext_libintliconv=no - dnl No NLS support then! - USE_NLS=no], - -liconv)]) - fi - fi -fi - -if test "$USE_NLS" = "yes"; then - dnl Handle localedir - LOCALEDIR='${prefix}/share/locale' - AC_ARG_WITH(locale-dir, - [ --with-locale-dir=DIR Location of the locale file(s) - [PREFIX/share/locale]],[ - if test x$withval = xyes; then - AC_MSG_WARN(Usage is: --with-locale-dir=basedir) - else - if test x$withval = xno; then - AC_MSG_WARN(Usage is: --with-locale-dir=basedir) - else - LOCALEDIR=$withval - fi - fi - ]) - AC_SUBST(LOCALEDIR) - - AC_PATH_PROG(MSGFMT, msgfmt, $MSGFMT) - if test -n "$MSGFMT"; then - AC_CHECK_FUNCS(dcgettext) - AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) - AC_PATH_PROG(XGETTEXT, xgettext, $XGETTEXT) - AC_PATH_PROG(MSGMERGE, msgmerge, $MSGMERGE) - - dnl Test whether we really found GNU xgettext. - if test -n "$XGETTEXT"; then - if $XGETTEXT --omit-header /dev/null 2> /dev/null; then - : ; - else - AC_MSG_RESULT( - [found xgettext program is not GNU xgettext; ignore it]) - XGETTEXT="" - fi - fi - - dnl We add another test for comparing GNU xgettext with openwin xgettext - if test -n "$XGETTEXT"; then - if $XGETTEXT --help > /dev/null 2> /dev/null; then - : ; - else - AC_MSG_RESULT( - [found xgettext program is not GNU xgettext; ignore it]) - XGETTEXT="" - fi - fi - - dnl Test whether we really found GNU msgfmt. - if test -n "$MSGFMT"; then - if $MSGFMT < /dev/null 2> /dev/null; then - AC_MSG_RESULT( - [found msgfmt program is not GNU msgfmt; NLS won't be installed]) - MSGFMT="" - fi - fi - - AC_TRY_LINK(, - [extern int _nl_msg_cat_cntr; - return _nl_msg_cat_cntr], - [CATOBJEXT=.gmo - DATADIRNAME=share], - [CATOBJEXT=.mo - DATADIRNAME=lib]) - INSTOBJEXT=.mo - fi - - if test -n "$ALL_LINGUAS"; then - for lang in $ALL_LINGUAS; do - CATALOGS="$CATALOGS $lang$CATOBJEXT" - done - fi - AC_SUBST(CATALOGS) - AC_SUBST(CATOBJEXT) - AC_SUBST(INSTOBJEXT) - AC_SUBST(DATADIRNAME) -fi - -dnl don't use NLS, when there is no gettext installed -if test x"$MSGFMT" = x; then - USE_NLS=no -fi - - -AC_CHECK_PROG(RM, rm, rm) -AC_CHECK_PROG(RMDIR, rmdir, rmdir) -AC_PROG_INSTALL -AC_PROG_LN_S - -dnl Checks for libraries. -sinclude(net.m4) -AC_LIBRARY_NET -AC_CHECK_LIB(m, cos) - -dnl Checks for header files. -AC_PATH_XTRA -dnl Don't compile X programs (and emit a warning message) -dnl if X isn't available. -if test "$no_x" = yes; then - AC_MSG_WARN([Test programs needing X11 won't be compiled.]) -else - X_PROGRAMS="\$(X_PROGRAMS)" - AC_SUBST(X_PROGRAMS) -fi - -AC_CHECK_HEADERS(stdlib.h fcntl.h unistd.h) - -dnl Checks for typedefs, structures, and compiler characteristics. -AC_C_CONST -AC_CHECK_SIZEOF(int) -AC_CHECK_SIZEOF(long) - -dnl Checks for library functions. - -dnl Here we check whether we can use our mmap file component. -AC_FUNC_MMAP -if test "$ac_cv_func_mmap_fixed_mapped" != yes; then - TT_FILE_COMPONENT=ttfile.c -else - TT_FILE_COMPONENT=arch/unix/ttmmap.c -fi -AC_SUBST(TT_FILE_COMPONENT) - -AC_CHECK_FUNCS(memcpy memmove) - -AC_CONFIG_HEADER(ft_conf.h) - -dnl Another bug: to make --srcdir work correctly we have to create the -dnl directory hierarchy first since autoconf only uses mkdir. -$srcdir/mkinstalldirs lib/arch/unix test/arch/unix - -AC_CONFIG_FILES([Makefile - MakeSub - lib/arch/unix/Makefile - test/arch/unix/Makefile]) -AC_CONFIG_FILES([po/Makefile.in], - [sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile]) -AC_OUTPUT - - -dnl end of configure.in diff --git a/Build/source/libs/freetype/freetype-1.5/docs/FAQ b/Build/source/libs/freetype/freetype-1.5/docs/FAQ deleted file mode 100644 index 3e80f2b69ba..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/docs/FAQ +++ /dev/null @@ -1,843 +0,0 @@ - FreeType 1 User FAQ - --------------------------------------------------------------------- - - - Table of contents - - -1. How do I compile the test programs? - -2. What are the test programs? - -3. How do I use them? - -4. How do I only compile the FreeType library? - -5. The library compiles fine on my system, unfortunately it seems - the test programs won't. What can I do? - -6. I did compile the test programs `out of the box' without - problems, but the results are ugly. What did I have wrong? - -7. What is FreeType, and what is it not? - -8. Can FreeType be ported to other platforms? - -9. My TrueType font only works on a Mac/in Windows. Will I be able - to use it with FreeType? - -10. What are the most common character mappings? - -11. How do I render text with FreeType? - -12. How do I render rotated/slanted text with FreeType? - -13. How do I compute a glyph bitmap's dimensions? - -14. Why is text rendering so slow? Does FreeType cache glyphs? - -15. Do you always render the same glyphs as Windows or the Mac? - -16. The program `ftlint' reports errors with one of my fonts, though - it works perfectly under Windows. What does this mean? - -17. What does the `fttimer' test program benchmarks? - -18. Is it possible to perform styling (like oblique, italic, bold, - underline, etc.) with FreeType? - -19. When does glyph hinting takes place? Is it when the glyph is - loaded, or when it is converted to a bitmap/pixmap? - -20. Which is the best, caching outlines or bitmaps? - -21. Can I open OpenType and/or TrueType GX fonts with FreeType? - -22. How can I access additional TrueType tables that FreeType - doesn't support? - -23. When will I be able to use FreeType to display TrueType fonts in - X11, Wine, or OS/2, or even other systems? - -24. What does the `free' in FreeType really means? - -25. Does FreeType support threads? Is it re-entrant? - -26. Does FreeType support `foreign languages'? - -27. I'm using fractional char sizes, but the glyphs stay at the same - integer size. Why? - -28. Hinting doesn't work at very small sizes. Why? - --------------------------------------------------------------------- - -1. How do I compile the test programs? - - Detailed compilation steps are given in the `freetype/INSTALL' - file, as well as system and compiler specific hints in the - `freetype/howto' directory. What follows is a _very_ simple - guide: - - For Unix: - - Do the following on the prompt while in the base directory of - the FreeType package: - - % ./configure - % make - % make install - - This will build and install the library (shared, if supported) - together with the test programs. Say `./configure --help' to - see the available configuring options. - - This should work with any ANSI C compiler. - - For other platforms: - - Go to the `test' directory. Look at one of the makefiles - located in the `arch/<system>' directory, and use the - appropriate makefile from there. - - For example: - - make -f arch/msdos/makefile.gcc (DJGPP or emx) - wmake -f=arch\msdos\makefile.wat (Watcom DOS) - nmake -f arch\os2\makefile.icc (Visual Age OS/2) - make -f arch/amigaos/makefile.gcc (GCC Amiga) - - This will compile both the library and the test programs. - - --------------------------------------------------------------------- - -2. What are the test programs? - - The test programs are simple sources that `show off' the FreeType - library. They are located in the `test' directory. They make use - of a small graphics sub-system which is able to display bitmaps - and pixmaps on a variety of platforms through the use of - system-specific `drivers'. - - The test programs are: - - ftdump: A simple TTF information dumper. Also prints the - memory used by each opened font file with FreeType. - Doesn't use the graphics sub-system. - - ftlint: A simple TrueType bytecode verifier. It simply hints - all glyphs of one or more font files at a given size - and reports errors. Doesn't use the graphics - sub-system. - - ftview: A simple font viewer. Displays all glyphs in a font - file in a window. - - ftstring: Renders a simple string to the screen. Demonstrates - how to produce text with FreeType. - - fttimer: A simple benchmark, used to profile the scan-line - conversion routines (and only them). Supports also - display. - - ftstrpnm: A version of `ftstring' which saves a bit/pixmap to a - PNM file rather than to the screen. No graphics - sub-system needed. - - ftzoom: A simple glyph viewer, useful to view, zoom and rotate - individual glyphs in a font file. - - fterror: This program demonstrates how to use the ftxerr18 - extension. Note that internationalized strings will - be available on some platforms only (e.g. Linux). - - ftmetric: A simple metric/glyph dumper. No graphics sub-system - needed. - - ftsbit: Displays data about embedded bitmaps in a TrueType - font. - - ftstrtto: Renders a string to screen, using TrueType Open - features. - - NOTE: The file `ftdebug.c' isn't part of the test suite. It is - used only by the developers team to debug the engine at a - higher level. It won't work with a standard library - compile. - - - The tiny graphics subsystem is defined in the following files: - - gmain.h/gmain.c: The subsystem's main body/interface. - - gevents.h: The definition of events defined for the - subsystem - - gdriver.h: The generic interface of all system-specific - drivers. - - System-specific drivers are in the `test/arch/<system>' - directories, like: - - test/arch/msdos/gfs_dos.c Full-Screen DOS driver - test/arch/os2/gpm_os2.c PM (Windowed) OS/2 driver - test/arch/unix/gwin_x11.c X11 Windowed driver - - etc. - - --------------------------------------------------------------------- - -3. How do I use them? - - Please read the file freetype/README for a full description. - - --------------------------------------------------------------------- - -4. How do I only compile the FreeType library? - - For Unix: - - Do a `configure' run as described in section 1. Then change to - the lib subdirectory and say `make' and `make install'. - - For other platforms: - - Go to the `lib' directory. Look at one of the makefiles located - in the `arch/<system>' directory, and use it from `lib'. - - For example: - - make -f arch/msdos/makefile.gcc (DJGPP or emx) - wmake -f=arch\msdos\makefile.wat (Watcom DOS) - nmake -f arch\os2\makefile.icc (Visual Age OS/2) - make -f arch/amigaos/makefile.gcc (GCC Amiga) - - The library is pure ANSI C and doesn't depend on any - system-specific package. You do not need gcc to compile it. - - --------------------------------------------------------------------- - -5. The library compiles fine on my system, unfortunately it seems - the test programs won't. What can I do? - - As said before, some test programs rely on a small graphics - sub-system to display the bitmaps and pixmaps produced by the - library. The following systems are currently supported: - - DOS Full-Screen Note that the windowed graphics - Amiga Full-Screen driver are very 'basic', they do - Amiga Windowed not provide menus, dialog boxes, - OS/2 Full-Screen etc. Rather, they provide one - OS/2 Windowed windowed bitmap/pixmap and translate - X11 Windowed events to the ones defined in - Win32 Windowed `test/gevents'. - - If you want to add support to your system, you should write a new - graphics driver. To do that, read the file `test/gdriver.h' which - contains the driver generic interface, then browse the drivers - that are already provided. - - The graphics drivers are located in the `test/arch/<system>' - directories. They're not part of the library proper. - - IMPORTANT NOTE: - - You can also directly link the library to your own application - and render glyphs directly into your own bitmaps with very few - efforts. - - --------------------------------------------------------------------- - -6. I did compile the test programs `out of the box' without - problems, but the results are ugly. What did I have wrong? - - Well, chances are you built the `patents-free' version of the - Freetype library, which does not enable the bytecode interpreter, - which means that at small to normal point sizes, the glyphs are - distorded, hence ugly. - - Apple Computer owns three patents that are related to the - processing of glyph outlines within TrueType fonts. This process - if also called hinting or grid-fitting and is used to enhance the - quality of glyphs at small bitmap sizes. - - When the work with Freetype began, we were not aware of these - patents. Since version 1.3, however, we have provided a way to - build a patent-compliant version of the library, which completely - disables the TrueType interpreter (quite a rude way). If the - result is usable with big point sizes, or for special tasks such - as font converting, it results about useless for normal screen - reading. Beginning with version 1.5, this behaviour is even by - default, so this is what you get if you compile `out of the box'. - - However, the source code for the bytecode interpreter is still - available and can be activated at compile time, for those who - want to use it anyway (because they purchased a license from - Apple, or because they are in a country where the patents do not - apply, etc.). For details, check the `freetype/INSTALL' file. - - --------------------------------------------------------------------- - -7. What is FreeType, and what is it not? - - FreeType is a rather low-level font engine. It has been designed - primarily to be the basis of several font servers, for very - different systems which all have their own metrics and graphics - models. This means that it focuses on the following points: - - - Opening and loading font files in memory. - - - Giving access to most important font properties and TrueType - tables. - - - Providing a simple way to translate system-specific character - codes into glyph indexes, according to the TrueType `cmap' - specification. - - - Loading and rendering _individual_ glyphs as nicely as possible - (either in outlines, bitmaps, or pixmaps), and performing - excellent hinting. - - It isn't a high-level text rendering library, and many tasks will - have to be performed by higher level layers like: - - - glyph caching (outlines and/or maps) - - text rendering - - justification, kerning - - font mapping - - rotated/slanted text - - However, its API provides many functions that ease these - operations considerably: - - - Glyph outlines can be copied and transformed easily with the API - functions, then rendered to bitmaps or pixmaps with FreeType's - scan-line converter, which is very fast. - - - The glyph loader places the outlines in order to ease the - process of text rendering. See the documentation file named - `glyphs.htm' (resp. `glyphs.txt') or `ftstring's source for more - details. - - - The engine gives you access to several TrueType tables that can - be processed by your application to provide more powerful - rendering (e.g. kerning). - - - It is possible, and rather simple, to write separately - compilable extensions to the engine to access other TrueType - tables that are not supported by the engine in this release. - This can be handy if one wants to access data in TrueType GX or - OpenType fonts (as these formats comply to the TrueType `sfnt' - file storage format, they can be opened by the FreeType engine - as a normal TrueType file). - - --------------------------------------------------------------------- - -8. Can FreeType be ported to other platforms? - - FreeType is written in pure ANSI C and should compile well on all - 16, 32, and 64 bit processors. Note, however, that the 16-bit - port requires a large memory model. Furthermore, some tables - found in TrueType programs may exceed 64 kBytes, which calls for - the so-called huge memory model. This is really true for CJK and - Unicode fonts. Nearly all others should work fine with the large - model. - - It does not support some very exotic platforms though, like a - 32-bit only processor (where the only word size is 32-bit, even - for chars and shorts). However, nothing prevents you to test it - by yourself... - - The memory management and file access routines have been gathered - in two components, namely `ttmemory' and `ttfile', which can be - specialized for a specific system. Their standard version, found - in the `lib' directory, uses simply the ANSI libc. However, - examples are given of alternative file components for OS/2 and - Unix in: - - lib/arch/os2/ttfile.c - (accessing the low-level OS/2 file API directly) - - lib/arch/unix/ttmmap.c - (using memory-mapped files for improved access) - - You would certainly need to rewrite these components if you intend - to use FreeType in an embedded system. - - --------------------------------------------------------------------- - -9. My TrueType font only works on a Mac/in Windows. Will I be able - to use it with FreeType? - - Short Answer: YES, but be cautious! - - If you have read section 9 or 25, you know that a font file might - have different charMaps entries, used to translate character codes - to glyph indexes. The problem of most `system-specific' TrueType - fonts (sigh) is that they only contain one single mapping, like - Apple Roman, or Windows Glyph List, making it usable only on the - platform it was `designed' for. - - The test program `ftdump' can be used to display the character - encodings supported in a font file. Most fonts come with Apple - Roman and Windows Unicode. - - FreeType can use every charmap found in a font file, so it is up - to your application to choose the one that fits its task best. If - you use a font which only provides an Apple Roman charcode, you'll - probably have a hard time rendering Unicode strings without an - additional translation. - - Note that the tool `ttf_edit' can actually add missing cmaps to a - TrueType font file. More info on this can be found at: - - http://www.truetex.com - - Another possibility is to use Just van Rossum's TTX compiler - (still beta) which can convert a TrueType font into an XML - description and vice versa; it can be found at - - http://www.letterror.com/ttx/ - http://sourceforge.net/projects/fonttools/ - - --------------------------------------------------------------------- - -10. What are the most common character mappings? - - If you don't want to read the TrueType specification, here is some - information about the most used char maps. Each map is designed - by a `platform ID', followed by a platform-specific `encoding ID': - - Examples: - - 0, 0 : Apple Unicode - 1, 0 : Apple Roman - 3, 0 : Windows Symbol - 3, 1 : Windows Unicode - - Windows and Apple Unicode charmaps differ only in internal storage - layout. Both can be used transparently with FreeType. - - Many fonts come also with both Apple Roman and Windows Unicode. - - --------------------------------------------------------------------- - -11. How do I render text with FreeType? - - This is explained with great detail in the glyphs documentation - file available in both text (glyphs.txt) and HTML (glyphs.htm, - including schematics). - - Text rendering isn't difficult. One can also look at the code for - `ftstring' or `ftstrtto' to see how it is done. - - --------------------------------------------------------------------- - -12. How do I render rotated/slanted text with FreeType? - - It is possible to transform the outlines returned by the glyph - loader, hence producing rotated or slanted text. Please read the - `glyphs' documentation file, which explains this in great detail, - as well as some other important things. - - --------------------------------------------------------------------- - -13. How do I compute a glyph bitmap's dimensions? - - You should grid-fit its bounding box, then compute its width and - height. This is explained in the `bitmaps.txt' documentation - file. - - --------------------------------------------------------------------- - -14. Why is text rendering so slow? - Does FreeType cache glyphs? - - The FreeType 1 engine doesn't cache anything, be it outlines or - bitmaps. Hence, a program that renders text by calling the glyph - loader on each letter is slow. - - Because caching cannot be performed in both an _easy_ and - _portable_ way it is left to the application. Moreover, some - graphics systems already provide some sort of caching, and it is - better to take advantage of it rather than re-implementing it. - - The `how's and `when's of caching are explained in the `glyphs' - documentation file. The `bitmaps' documentation file is also a - good source of information if you intend to render individual - glyph bitmaps. - - --------------------------------------------------------------------- - -15. Do you always render the same glyphs as Windows or the Mac? - - Short answer: No for rare cases. - - There are a lot of technical details, too numerous and lengthy to - be put here, that prevents the FreeType library from matching 100% - the glyphs produced by the Windows or Macintosh rasterizers. - - This engine is a clean-room implementation, and most of the - reasons why its development took so much time is the largely - deficient TrueType specification published by Apple and Microsoft. - A number of key technical aspects are missing, and we found many - `undocumented' features in the TrueType bytecode, after several - months of testing and trying. We are now very satisfied with the - current quality, though still try to improve it. - - The glyph metrics (bearings and advances) also match significantly - those computed by Windows, or found in the TrueType pre-calc - tables. - - As hinting glyphs also makes use of several rounding operations, - we will be unable to provide a perfect clone unless we implement - the exact same computations _and_ rounding errors -- this is - very unlikely... - - --------------------------------------------------------------------- - -16. The program `ftlint' reports errors with one of my fonts, though - it works perfectly under Windows. What does this mean? - - Associated to each glyph is a small `program', written in a - specific bytecode language, which is in charge of hinting the - glyph's outline to make it perfect on screen as on paper. Some of - these programs can be broken (e.g., accessing invalid areas of - memory, performing a divide by zero, etc.), and these are the - errors that are reported by `ftlint'. - - They can also mean a bug in the TrueType bytecode interpreter (or - more likely an `undocumented' feature we haven't discovered yet), - but should now be extremely rare. - - Surprisingly, even largely distributed fonts can contain broken - glyph programs. For example: - - - antqua.ttf, glyph 163 (MS Office 4.2): - - The program tries to access point number 0x127, which is too - much. - - - timesbs, arialbs, courbs (MS Office International): - - The back-slanted versions of the MS core fonts produce stack - overflows in many glyphs, and other oddities. It seems their - `maximum profile' table is invalid. - - - a ton of `free' fonts, apparently designed with mediocre tools. - - It seems the Windows TrueType engine doesn't check its arguments - often, and let all overflows run, possibly writing to critical - portions of memory. Please, don't ask us what this could do to - Windows NT :-) - - The FreeType engine performs checks on every opcode. We cannot - guarantee that it is bullet proof, of course, but it seems to work - well and catch font bugs accordingly. - - We also have artificially `enlarged' some allocated tables to make - the engine work with the back-slanted fonts without compromising - security, but it's clearly a hack we would have preferred to - avoid! - - --------------------------------------------------------------------- - -17. What does the `fttimer' test program benchmarks? - - This test program is only dedicated to profiling FreeType's - scan-line converter, a component also called `rasterizer', which - is in charge of converting a vectorial outline into a bitmap, or a - pixmap. - - It simply loads all glyphs of a font file (by slices of 512 at - once), then converts them. Only the conversion is actually - benchmarked. - - The glyphs are rendered at size 400pt at a resolution of 96dpi - (this is about 500 pixels high). As you'll see by running - `fttimer', the rasterizer is very fast. - - --------------------------------------------------------------------- - -18. Is it possible to perform styling (like oblique, italic, bold, - underline, etc.) with FreeType? - - Actually, these refer to very different things: - - - Italic and Bold styles usually mean many variations from the - `Regular' font. This is why you normally need a proper font - file for each of these. For example, the MS core font Times - comes in the following TrueType files: - - TIMES.TTF Times New Roman Regular - TIMESI.TTF Times New Roman Italic - TIMESB.TTF Times New Roman Bold - TIMESBI.TTF Times New Roman Bold Italic - (sometimes named TIMESZ.TTF) - - With FreeType, you simply need the required font file to use it. - - - Oblique style refers to a transformation that is applied to a - regular font in order to make it `slanted', likes italics do. - However, an italic font very frequently contains small but - important variations that cannot be produced by this method and - make the font more appealing. - - Slanting can easily be done with a transformation under - FreeType, with the exact same process as rendering rotated text. - Please read the `glyphs' documentation file where it is - explained in details. - - Usually, Windows or the Macintosh produce oblique versions of a - regular font if the corresponding italic TrueType file isn't - available. They also stretch regular fonts horizontally if the - bold one isn't available. All of this can be done with trivial - transformations. - - - Underlining and stroking are not really part of the glyphs. - They're simply lines that are printed on the glyph after it has - been rendered. Each TrueType file provides, in its OS/2 table - (which is accessible through the face object properties in - FreeType), several values that define the position and width of - those lines, in notional font units. - - If you want to use them, you'll have to scale these values to - your current instance/point size, then draw the lines yourself. - - --------------------------------------------------------------------- - -19. When does glyph hinting takes place? Is it when the glyph is - loaded, or when it is converted to a bitmap/pixmap? - - The glyph loader returns fitted outlines by default (it can be - asked to return a non-fitted one, or simply the original outline - in notional coordinates too). - - This is important to have a glyph's correct metrics, even if it is - not to be rendered immediately, like when caching outlines for - rotated text. - - --------------------------------------------------------------------- - -20. Which is the best, caching outlines or bitmaps? - - It depends on your application, and what it does with text. - - Usually, if all you need is render some simple text at specific - point sizes, then simply cache the bitmaps or pixmaps. - - However, if you want to do more advanced things, like rotated - text, which require sub-pixel placement to look good, you should - then only cache the outlines, and transform/place them as needed - before sending them to the scan-line converter. - - It's always possible to produce a bitmap from an outline, and the - scan-converter is very fast. It's up to you then... - - --------------------------------------------------------------------- - -21. Can I open OpenType and/or TrueType GX fonts with FreeType? - - TrueType GX fonts are normal TrueType fonts with enhanced tables - and capabilities. They can always be opened by a normal TrueType - engine (like Windows, the Mac, or FreeType), but their improved - features won't be available. - - On the contrary, OpenType fonts may vary. While some may contain - legal TrueType glyphs, an `otf' file may only contain glyphs - encoded in the Type 2 format. You won't be able to produce any - glyphs from such a font file without a dedicated font engine (like - the ones promised in NT 5 and Java 2D... or with Freetype 2). - - FreeType 1 is a TrueType glyph engine and doesn't support Type 2 - fonts. Supporting them would require a very different philosophy - and a different core engine (even though they could share an API). - - Note that you can write extensions to the engine to access - supplemental tables defined in these formats (see next question). - - Note that FreeType version 2 (which is now widely available) - includes a PostScript Type 1 / Type 2 interpreter... - - --------------------------------------------------------------------- - -22. How can I access additional TrueType tables that FreeType - doesn't support? - - You can write an `engine extension'. This is a separately - compilable component which can enhance the base library's - functionalities, without recompiling it. Some important - extensions are provided in the `lib/extend' directory. - - You'll need of course to know the TrueType specification - precisely, as well as some of the conventions used to access - tables and to manage memory. Read the documentation files for - more details, or contact the developers at: - - devel@freetype.org - - --------------------------------------------------------------------- - -23. When will I be able to use FreeType to display TrueType fonts in - X11, Wine or OS/2, or even other systems? - - Actually, an OS/2 replacement for TRUETYPE.DLL based on FreeType - is part of this package (to be found in contrib/ftos2). Thanks go - to Michal Necasek (mike@mendelu.cz) for his excellent work! - - At least three X11 TrueType font servers are available; two of - them (xfsft and xtt) are based on FreeType, whereas the third - (xfstt) uses a separately developed TrueType engine. - - More information about these servers is available at the FreeType - homepage (http://www.freetype.org). - - Don't hesitate to contact us if you plan to use or port the engine - to exotic platforms, we're always interested in helping out. - - --------------------------------------------------------------------- - -24. What does the `free' in FreeType really means? - - The previous releases of FreeType (alphas and beta) were placed - under the LGPL. FreeType 1.0, and later releases, come with an an - alternate license, inspired from the BSD, Artistic, and IJG's - (Independent JPEG Group) ones. In short: - - - You are encouraged to use and distribute this program in all - kinds of products, including commercial ones. - - - You don't have to pay us anything for it (royalty-free). - - - You may not pretend you wrote it, or part of it that you may use - in one of your product, and you have to state clearly that you - use the FreeType code if you distribute products based on it, or - parts of it (credits clause). - - - This source code is provided AS IS, with no warranty whatsoever, - and we cannot promise support for it. - - From version 1.5 and later releases, we added the choice for the - user of the library to use the GNU General Public License instead. - As a result, you can link the Freetype library with any GPL-ed - software, without any inconvenience; however, you then have the - obligation to publish all of the source code of the products you - release. - - The exact and legal terms are in the files `docs/FTL.txt' and - `docs/GPL.txt', respectively. - - Enjoy ;-) - - --------------------------------------------------------------------- - -25. Does FreeType support threads? Is it re-entrant? - - Short answer: Basically yes, but not fully tested. - - We have changed some code since FreeType 1.0 in order to support - multi-threaded environments. However, these have not been tested - yet. Apparently, the thread-safe and reentrant builds now work - well perfectly once compiled; however, no serious concurrency - testing has been performed (of course, a serious lock analysis was - done in order to modify the source). - - Right now, the mutex management functions are all gathered in the - component `ttmutex', which has to be specialized for your own - system if a thread build will be necessary. - - --------------------------------------------------------------------- - -26. Does FreeType support `foreign languages'? - - Short Answer: YES, it does! - - From a TrueType font file point of view, there are several parts - to the file, one of them being the `glyphs', i.e., picture - representations of the symbols. - - Another part is the mapping table, also called `charMap'. - - For example, glyph #1 could be letter `A', and glyph #2 could be - letter `Z'. Glyphs can be stored in any order in a font file. - - The mapping tables contain at least one char-map entry. For - example, you could have an ASCII-map that maps character code 0x41 - to glyph #1, and code 0x5A to glyph #2, etc. FreeType provides a - `charMap' object class to access and use this information easily. - - There are several character encodings recognized and defined by - the TrueType specification, like Latin-1, Unicode, Apple Scripts, - WGL, etc., but a font file might only contain one or two of them. - - When using a more `exotic' character encoding like EBCDIC (this is - IBM mainframe stuff!), you would need to translate it to one of - the available formats (or to add a charmap table to the font). - Cf. section 8. - - --------------------------------------------------------------------- - -27. I'm using fractional char sizes, but the glyphs stay at the same - integer size. Why? - - Because hinting only works well with integer pixel sizes. There - is a flag that can be set in a TrueType font file to force integer - pixel size scaling, even if you ask for fractional sizes with an - API function like TT_Set_Instance_CharSize(). Needless to say, - nearly all fonts have the flag set. So this is normal. - - Also, notice that when giving a charsize in fractional points, - this will be converted to integer pixels with the formula: - - pixel_size = char_size * y_resolution / 72 - - For example, using a resolution of 96 dpi, we would have: - - 9.5 pts => 12.666 pixels => 13 pixels - 10.0 pts => 13.333 pixels => 13 pixels, i.e. same size - 10.5 pts => 14 pixels => 14 pixels - 11.0 pts => 14.666 pixels => 15 pixels - 11.5 pts => 15.333 pixels => 15 pixels, i.e. same size - - If you want to control the exact size in pixels of your glyphs, - simply use a resolution of 72dpi, where char_size = pixel_size. - - --------------------------------------------------------------------- - -28. Hinting doesn't work at very small sizes. Why? - - This is normal. There are very good technical reasons why hinting - doesn't work well at sizes under 7 ppem, usually meaning the - appearance of ugly spikes and glyph distortions. This is why the - engine disables hinting by default at such low sizes. - - ---- end of FAQ --- diff --git a/Build/source/libs/freetype/freetype-1.5/docs/FTL.txt b/Build/source/libs/freetype/freetype-1.5/docs/FTL.txt deleted file mode 100644 index be596b35e4c..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/docs/FTL.txt +++ /dev/null @@ -1,165 +0,0 @@ - The FreeType Project LICENSE - ---------------------------- - - 2000-Feb-08 - - Copyright 1996-2002 by - David Turner, Robert Wilhelm, and Werner Lemberg - - Minor editings 2001-Mar-01 - - - -Introduction -============ - - The FreeType Project is distributed in several archive packages; - some of them may contain, in addition to the FreeType font engine, - various tools and contributions which rely on, or relate to, the - FreeType Project. - - This license applies to all files found in such packages, and - which do not fall under their own explicit license. The license - affects thus the FreeType font engine, the test programs, - documentation and makefiles, at the very least. - - This license was inspired by the BSD, Artistic, and IJG - (Independent JPEG Group) licenses, which all encourage inclusion - and use of free software in commercial and freeware products - alike. As a consequence, its main points are that: - - o We don't promise that this software works. However, we will be - interested in any kind of bug reports. (`as is' distribution) - - o You can use this software for whatever you want, in parts or - full form, without having to pay us. (`royalty-free' usage) - - o You may not pretend that you wrote this software. If you use - it, or only parts of it, in a program, you must acknowledge - somewhere in your documentation that you have used the - FreeType code. (`credits') - - We specifically permit and encourage the inclusion of this - software, with or without modifications, in commercial products. - We disclaim all warranties covering The FreeType Project and - assume no liability related to The FreeType Project. - - -Legal Terms -=========== - -0. Definitions --------------- - - Throughout this license, the terms `package', `FreeType Project', - and `FreeType archive' refer to the set of files originally - distributed by the authors (David Turner, Robert Wilhelm, and - Werner Lemberg) as the `FreeType Project', be they named as alpha, - beta or final release. - - `You' refers to the licensee, or person using the project, where - `using' is a generic term including compiling the project's source - code as well as linking it to form a `program' or `executable'. - This program is referred to as `a program using the FreeType - engine'. - - This license applies to all files distributed in the original - FreeType Project, including all source code, binaries and - documentation, unless otherwise stated in the file in its - original, unmodified form as distributed in the original archive. - If you are unsure whether or not a particular file is covered by - this license, you must contact us to verify this. - - The FreeType Project is copyright (C) 1996-2002 by David Turner, - Robert Wilhelm, and Werner Lemberg. All rights reserved except as - specified below. - -1. No Warranty --------------- - - THE FREETYPE PROJECT IS PROVIDED `AS IS' WITHOUT WARRANTY OF ANY - KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - PURPOSE. IN NO EVENT WILL ANY OF THE AUTHORS OR COPYRIGHT HOLDERS - BE LIABLE FOR ANY DAMAGES CAUSED BY THE USE OR THE INABILITY TO - USE, OF THE FREETYPE PROJECT. - -2. Redistribution ------------------ - - This license grants a worldwide, royalty-free, perpetual and - irrevocable right and license to use, execute, perform, compile, - display, copy, create derivative works of, distribute and - sublicense the FreeType Project (in both source and object code - forms) and derivative works thereof for any purpose; and to - authorize others to exercise some or all of the rights granted - herein, subject to the following conditions: - - o Redistribution of source code must retain this license file - unaltered; any additions, deletions or changes to the original - files must be clearly indicated in accompanying documentation. - The copyright notices of the unaltered, original files must be - preserved in all copies of source files. - - o Redistribution in binary form must provide a disclaimer that - states that the software is based in part of the work of the - FreeType Team, in the distribution documentation. We also - encourage you to put an URL to the FreeType web page in your - documentation, though this isn't mandatory. - - These conditions apply to any software derived from or based on - the FreeType Project, not just the unmodified files. If you use - our work, you must acknowledge us. However, no fee need be paid - to us. - -3. Advertising --------------- - - Neither the FreeType authors and contributors nor you shall use - the name of the other for commercial, advertising, or promotional - purposes without specific prior written permission. - - We suggest, but do not require, that you use one or more of the - following phrases to refer to this software in your documentation - or advertising materials: `FreeType Project', `FreeType Engine', - `FreeType library', or `FreeType Distribution'. - - As you have not signed this license, you are not required to - accept it. However, as the FreeType Project is copyrighted - material, only this license, or another one contracted with the - authors, grants you the right to use, distribute, and modify it. - Therefore, by using, distributing, or modifying the FreeType - Project, you indicate that you understand and accept all the terms - of this license. - -4. Contacts ------------ - - There are two mailing lists related to FreeType: - - o freetype@freetype.org - - Discusses general use and applications of FreeType, as well as - future and wanted additions to the library and distribution. - If you are looking for support, start in this list if you - haven't found anything to help you in the documentation. - - o devel@freetype.org - - Discusses bugs, as well as engine internals, design issues, - specific licenses, porting, etc. - - o http://www.freetype.org - - Holds the current FreeType web page, which will allow you to - download our latest development version and read online - documentation. - - You can also contact us individually at: - - David Turner <david.turner@freetype.org> - Robert Wilhelm <robert.wilhelm@freetype.org> - Werner Lemberg <werner.lemberg@freetype.org> - - ---- end of FTL.txt --- diff --git a/Build/source/libs/freetype/freetype-1.5/docs/GPL.txt b/Build/source/libs/freetype/freetype-1.5/docs/GPL.txt deleted file mode 100644 index e8a612e5c3b..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/docs/GPL.txt +++ /dev/null @@ -1,339 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1990, 1991, 1992 Free Software Foundation, Inc. - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - Appendix: How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - <one line to give the program's name and a brief idea of what it does.> - Copyright (C) 19yy <name of author> - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) 19yy name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - <signature of Ty Coon>, 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. diff --git a/Build/source/libs/freetype/freetype-1.5/docs/apiref.txt b/Build/source/libs/freetype/freetype-1.5/docs/apiref.txt deleted file mode 100644 index b40e66d93d1..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/docs/apiref.txt +++ /dev/null @@ -1,1918 +0,0 @@ - The FreeType Engine - - Core Library Reference - - - ----------------------------------- - - - Table of Contents: - - Introduction - - I. Types - - II. Functions - - III. Error codes - - - -------------------- - - -Introduction -============ - - This reference presents the types, functions, and error codes - defined in the high-level API header file `freetype.h'. Note that - all symbols defined in this file are prefixed by `TT_' to avoid - conflict of names with other packages at link time. - - The reference for extensions of the FreeType library can be found - in the file `apirefx.txt'. - - - --------------------------------------------------------------------- --------------------------------------------------------------------- - - - -I. Types -======== - - Here is the list of all types defined in the core FreeType API. - Their exact definition can be found in the file `freetype.h' which - should be included in every client application. - - - TT_Bool - - Can be either non-zero (true) or zero (false). - - .................................................................. - - TT_Fixed - - A signed 16.16 fixed float integer type used to specify - transform coefficients and other important data. - - .................................................................. - - TT_FWord - - A signed 16-bit type used to express a distance measured in the - font's original EM units. These are also called `FUnits' in the - TrueType specification. - - .................................................................. - - TT_UFWord - - An unsigned 16-bit type. - - .................................................................. - - TT_String - TT_Char - TT_Byte - - These types represent various 8-bit integer values (for strings, - signed, and unsigned values, respectively). - - .................................................................. - - TT_Short - TT_UShort - TT_Long - TT_ULong - - These four types are aliases for 16-bit integer (signed and - unsigned) and 32-bit integer types (signed and unsigned). - - .................................................................. - - TT_Int - - A signed type, either 16-bit or 32-bit, whichever is the most - efficient for the target platform. - - .................................................................. - - TT_F2Dot14 - - A 2.14 fixed float integer type used for unary vectors and some - scaling coefficients. Its layout is: - - s : 1 -- sign bit - m : 1 -- mantissa bit - f : 14 -- unsigned fractional value - - where `s:m' denotes a 2-bit signed integer value to which the - positive fractional part `f' should always be added. - - .................................................................. - - TT_F26Dot6 - - A 26.6 fixed float integer format used to define fractional - pixel coordinates. Here, 1 unit = 1/64 pixel. - - .................................................................. - - TT_Pos - - This type is used to store point coordinates, either in - fractional pixels (26.6 fixed floats) or in EM units (simple - integers). - - The interpretation of the value depends on the context. For - example, all distances relative to a scaled glyph are expressed - in fractional pixels (including bearings, advances, etc). - However, the same distances are measured in notional font units - when the glyph has been loaded unscaled. - - .................................................................. - - TT_UnitVector - - A simple structure used to store a unit vector. The vector's - coordinates are expressed in fixed float format (2.14). - - struct - { - TT_F2Dot14 x; - TT_F2Dot14 y; - } - - .................................................................. - - TT_Vector - - A simple structure used to store a single vector. Its - coordinates are expressed in fixed float format (26.6). - - struct - { - TT_F26Dot6 x; - TT_F26Dot6 y; - } - - .................................................................. - - TT_Matrix - - A simple structure used to store a single 2x2 matrix. Its - coefficients are expressed in 16.16 fixed float format. This - matrix is used to perform linear transformations on the glyph - outline, such as slanting or rotation. - - struct - { - TT_Fixed xx, xy; - TT_Fixed yx, yy; - }; - - The computation performed is: - - x' = xx * x + xy * y - y' = yx * x + yy * y - - .................................................................. - - TT_BBox - - A simple type to hold a glyph's bounding box. Used by the - TT_Get_Outline_BBox() API. - - struct - { - TT_Pos xMin, yMin; - TT_Pos xMax, yMax; - } - - .................................................................. - - TT_Outline - - Outlines are represented from now on as a class in itself, with - their own API. - - This structure is used to describe a vectorial glyph - representation to the rasterizer. It consists of several fields - as described below. Note however that: - - ***** THIS STRUCTURE MAY CHANGE IN THE FUTURE. We thus - ***** encourage you to use the outlines APIs described below to - ***** process your outlines i.e., create/copy/translate/ - ***** transform them, as well as rendering bitmaps and pixmaps. - - ***** THE STRUCTURE CHANGED BETWEEN 1.0 and 1.1! - - Now that you have been warned, the fields are: - - - An array of points: - - The `n_points' field gives the number of points in the - outline, while their coordinates are found in the single - vector array called `points'. The `flags' array holds a flag - for each point indicating its type. - - Currently, only the first bit (bit 0, the least significant - bit) of each byte is meaningful to the rasterizer. If set, it - indicates that the point is _on_ the curve. If not set, the - point is said to be _off_ the curve. It is then a Bezier - control point. - - For more information about point states, read the TrueType - specification or the scan-line documentation `raster.txt'. - - - An array of contours end-point indices: - - The `n_contours' field gives the number of contours, while the - `contours' array holds the indices of each contour's last - point. Note that the first contour always begins at point 0. - - Hence, `contours[0]' holds the index of the last point of the - first contour. The second contour starts at point number - `contours[0]+1', and ends at point number `contours[1]'. - - ** IMPORTANT NOTE: ** - ********************* - - The last table entry _must_ always give the total number of - points used to draw the contours, i.e.: - - contours[n_contours - 1] == n_points - - If this value is greater than `n_points' when calling the - scan-line converter, the component will immediately return - an error (TT_Err_Too_Many_Points). If the value is smaller, - only the points contained in the described contours will be - used in the conversion process. - - - An owner field: - - This flag should **NEVER** be changed by the user. It - indicates whether the pointer fields own the arrays they refer - to (when the flag is set), or if they simply alias them (flag - unset). - - - A high precision flag: - - If this boolean is set (i.e. not zero), the scan-line - converter uses a higher precision to compute segment and - Bezier coordinates (more precisely, it uses 1/1024 precision, - instead of the normal 1/64). This is of course slower but can - be important for glyphs rendered at small sizes. - - - A second pass flag: - - If this boolean is set, the scan-line converter performs a - second sweep on the bitmap/pixmap to detect vertical drop-out. - Only horizontal drop-outs are detected in the first pass. - This is slower, but important for glyphs rendered at small - sizes. - - - A dropout mode: - - Used to specify which method applies for drop-out control - (also called `continuity testing' in other environments). The - mode value must be one of the values defined by the TrueType - specification. - - The more recent modes 4 and 5 introduced in the newest - TrueType specification (Version 1.66) are fully supported. - - An invalid value (i.e., not 0, 1, 2, 4, or 5) is taken as no - dropout control (equivalent to mode 0). - - NOTE 1: - - The outline returned by TT_Get_Glyph_Outline() only alias the - data that is part of a glyph container (see below). However, - it is possible to create and process your own outlines with - the new API functions TT_New_Outline(), TT_Done_Outline(), - TT_Copy_Outline(), TT_Translate_Outline(), etc. - - TT_Done_Outline() will only discard an outline's array if it - owns them. - - NOTE 2: - - The outlines created by TT_New_Outline() are _not_ released by - the engine while executing TT_Done_FreeType(), they must be - explicitly discarded by the user who has created them! - - NOTE 3: - - The glyph loader sets the fields `high_precision', - `dropout_mode', and `second_pass' automatically. - - NOTE 4: - - This structure was called TT_Glyph_Outline in beta versions of - FreeType. - - .................................................................. - - TT_Glyph_Metrics - - A structure used to return simple glyph metrics, applicable for - either horizontal or vertical layout. The values are expressed - in fractional pixels (26.6 format) if scaling was active, - otherwise in FUnits. - - The main idea was to accomodate vertical text layouts by - eradicating the two explicit `leftSideBearing' and - `advanceWidth' names. - - The interpretation of the fields varies with the text layout: - - bearingX: Also known as the `left side bearing'. In - horizontal metrics, this value gives the horizontal - distance from the pen position to the glyph's bbox - xmin, otherwise it specifies the vertical distance. - - bearingY: Also known as the `top side bearing', this is the - vertical distance from the baseline to the glyph's - bbox ymax in horizontal metrics, otherwise the - horizontal distance. - - struct - { - TT_BBox bbox; /* the glyph's bbox */ - - TT_Pos bearingX; /* left-side bearing */ - TT_Pos bearingY; /* top-side bearing */ - - TT_Pos advance; /* advance width or height */ - }; - - ** IMPORTANT NOTE ** - - Because of the conventions inherent to the TrueType engine, - the outlines generated at glyph-load time are all placed so - that the pen is at position (0,0). This means that it is not - necessary to increase the pen position by `bearingX' and/or - `bearingY' before writing a glyph. Text output can be - performed with simple lines such as: - - for (glyphs in text) - { - TT_Load_Glyph( ... ); - TT_Get_Glyph_Outline( glyph, &outline ); - TT_Translate_Outline( outline, - cur_pos_x * 64, cur_pos_y * 64 ); - - TT_Get_Outline_Bitmap( outline, bitmap ); - /* blit bitmap to surface */ - - cur_pos_x += (metrics.advance + 32) / 64 - } - - For an example see the file `test/ftstring.c'. - - NOTE 2: - - This structure has changed from the beta version of FreeType. - - NOTE 3: - - FreeType only implements TT_Get_Glyph_Metrics() to return - horizontal metrics. For extracting vertical metrics you - should use TT_Get_Glyph_Big_Metrics(). - - .................................................................. - - TT_Big_Glyph_Metrics - - This structure is used to return the metrics of a glyph for both - horizontal and vertical layout. - - The `linearXXX' fields represent unhinted scaled metrics values. - They can be useful for applications which need to compute device - independent placement of glyphs. Applying these metrics to - hinted glyphs will in most cases ruin the grid fitting performed - by the bytecode interpreter. - - struct - { - TT_BBox bbox; /* the glyph's bounding box */ - - TT_Pos horiBearingX; /* horizontal left-side bearing */ - TT_Pos horiBearingY; /* horizontal top-side bearing */ - - TT_Pos vertBearingX; /* vertical left-side bearing */ - TT_Pos vertBearingY; /* vertical top-side bearing */ - - TT_Pos horiAdvance; /* horizontal advance */ - TT_Pos vertAdvance; /* vertical advance */ - - TT_Pos linearHoriBearingX; /* lin. scaled hor. lsb. */ - TT_Pos linearHoriAdvance; /* lin. scaled hor. adv. */ - - TT_Pos linearVertBearingY; /* lin. scaled vert. tsb. */ - TT_Pos linearVertAdvance; /* lin. scaled vert. adv. */ - } - - .................................................................. - - TT_Instance_Metrics - - A structure used to return instance (point size) metrics. - - struct - { - int pointSize; - /* point size in points (1 point = 1/72 inch) */ - - TT_UShort x_ppem; /* horizontal pixels per EM square */ - TT_UShort y_ppem; /* vertical pixels per EM square */ - - TT_Fixed x_scale; /* 16.16 scale for EM -> frac pixels */ - TT_Fixed y_scale; /* 16.16 scale for EM -> frac pixels */ - - TT_UShort x_resolution; /* device hor. res. in dpi */ - TT_UShort y_resolution; /* device vert. res. in dpi */ - }; - - The fields `x_scale' and `y_scale' can be used by clients to - convert notional units (in funits) in fractional pixels (in 26.6 - fixed float format), e.g.: - - TT_FUnit em_distance; - TT_F26Dot6 frac_distance; - TT_Fixed x_scale; - - frac_distance = (em_distance * x_scale) / 0x10000; - - .................................................................. - - TT_Raster_Map - - This structure is used to specify a target bitmap (or pixmap) - for the scan-line converter. It _must_ be set up by the client - application. - - - The `rows' field contains the total number of rows in the - bitmap. - - - The `width' field gives the number of pixels per row (a bit or - a byte, depending on the map's nature). - - - The `cols' field gives the number of columns, i.e. bytes, - taken by each row in the map buffer. - - ** IMPORTANT: ** The `cols' field must be a multiple of 4 for - pixmaps! - - Usually, its value should be `(width+7)/8' for bitmaps, and - `(width+3) & -4' for pixmaps. - - - The `flow' field gives the map's vertical orientation. - - If the first bytes of the bitmap buffer pertain to its upper - row, the flow is said to be going `down' and the field should - take the value `TT_Flow_Down', otherwise the flow is going - `up', and the value is `TT_Flow_Up'. - - To cite an example, the PC video modes use a `down' flow, - where the first VRAM byte corresponds to the upper and - leftmost corner of the screen. - - - The `bitmap' field is a typeless pointer to the map's buffer. - - - The `size' field contains the buffer's size in bytes. It is - usually computed as follows: - - size = rows * cols; - - NOTE 1: - - For bitmaps, the leftmost-pixel is related to the highest - (i.e. most significant) bit of its byte. There is currently - no support for the opposite convention found in some systems. - - (It can be easily added if you really need it, just ask the - development team.) - - struct - { - int rows; /* number of rows */ - int cols; /* number of columns (bytes) per row */ - int width; /* number of pixels per line */ - int flow; /* bitmap orientation */ - - void* bitmap; /* bit/pixmap buffer */ - long size; /* bit/pixmap size in bytes */ - } TT_Raster_Map; - - NOTE 2: - - TT_Get_Outline_Bitmap() resp. TT_Get_Glyph_Bitmap() are used - to render bitmaps into a TT_Raster_Map. The convention used - is 0 for the background, and 1 for the foreground. The glyph - is simply `or-ed' to the bitmap buffer. - - NOTE 3: - - TT_Get_Outline_Pixmap() and TT_Get_Glyph_Pixmap() are used to - render pixmaps into a TT_Raster_Map. Note that pixels are - drawn in spans of 4 successive bytes, only if needed. This - means that you must ALWAYS pass a clean pixmap buffer to these - functions. Otherwise, garbage could accumulate! - - .................................................................. - - TT_Header - - This structure is used to hold the font's header. Its layout - and meaning are defined in the TrueType specification, in the - `head' section. - - .................................................................. - - TT_Horizontal_Header - - This structure is used to hold the font's horizontal header. - Its layout and meaning are defined in the TrueType - specification, in the `hhead' section. - - .................................................................. - - TT_OS2 - - This structure is used to hold the font's OS/2 table. Its - layout and meaning are defined in the TrueType specification, in - the `OS/2' section. - - Note that since FreeType 1.3, we support fonts without an OS/2 - table (mainly old but popular Mac fonts). In this case, the - table's `version' field will be set to 0xFFFF by the loader, and - all other fields will be zeroed. - - .................................................................. - - TT_Postscript - - This structure is used to hold the font's PostScript table. Its - layout and meaning are defined in the TrueType specification, in - the `post' section. - - .................................................................. - - TT_Hdmx - - This structure is used to hold the font's horizontal device - metrics. Its layout and meaning are defined in the in the - `hdmx' section of the TrueType specification. - - .................................................................. - - TT_Face_Properties - - This structure is used to return an opened face's properties. - These are: - - - The total number of glyphs in the font, given by the field - `num_Glyphs'. - - - The maximum number of points for the font's glyphs. This - value is used to allocate the points tables of a glyph - container's outline. It can be fairly large (like 256 points - for Roman fonts). - - - The maximum number of contours for the font's glyphs. This - value is used to allocate the contours tables of a glyph - container's outline. It can be fairly large (over 16, even in - Roman fonts). - - - The number of character mappings and name records within the - font. These values can still be retrieved through the APIs - TT_Get_CharMapCount() and TT_Get_Num_Names(), though these - have been _seriously_ deprecated. - - - The number of associated faces. This number is always 1 for a - normal TrueType font file. However, when the face object was - opened from a TrueType collection, it contains the total - number of embedded fonts. - - - Pointers to the face's header and horizontal header, the OS/2 - and PostScript tables, and the horizontal device metrics. - - struct - { - TT_UShort num_Glyphs; /* number of glyphs in face */ - TT_UShort max_Points; /* max. numb. of points in a glyph */ - TT_Short max_Contours; - /* maximum number of contours in a glyph */ - - TT_ULong num_Faces; - /* 1 for normal TrueType files resp. */ - /* the number of embedded faces for TT */ - /* collections */ - - TT_Header* header; /* TrueType header table */ - TT_Horizontal_Header* horizontal; - /* TrueType horizontal header */ - TT_Vertical_Header* vertical; - /* TrueType vertical header */ - TT_OS2* os2; /* TrueType OS/2 table */ - TT_Postscript* postscript; - /* TrueType PostScript table */ - TT_Hdmx* hdmx; /* TrueType hdmx table */ - - } TT_Face_Properties; - - - Note that the `vertical' field is set to NULL if the font file - does not contain any vertical metrics. - - - Note also that since version 1.3 we support font files without - an OS/2 table. See the definition of TT_OS2 for more details. - - .................................................................. - - TT_Stream - - This handle type defines a stream used to access a font file's - data. A client application should never deal with streams - directly, but some engine extensions need it to support more - advanced features like sbit support. - - .................................................................. - - TT_Face - - This type defines a handle used to reference a face object. The - objects are never accessed directly by a client application; it - can only obtain handles to new objects, and use them to query - specific information or processes. - - See also: - - TT_Open_Face(), TT_Open_Collection(), TT_Close_Face(), - TT_Get_Face_Properties(), etc. - - .................................................................. - - TT_Instance - - This type defines a handle used to reference an instance object - (also called a `pointsize' in other type engines). An instance - is always created from a valid face object, and is destroyed - with it by the engine. - - See also: - - TT_New_Instance(), TT_Done_Instance(), - TT_Set_Instance_CharSizes(), TT_Set_Instance_Resolutions(), - etc. - - .................................................................. - - TT_Glyph - - This type defines a handle used to reference a glyph container - object. A glyph container is an object owning tables sized to - the font's maximum profile to hold any glyph of a given font - file. - - It contains an outline, some metrics, as well as some data - related to the way it should be processed by the scan-line - converter. - - Note that a glyph container doesn't contain any bitmap or - pixmap! - - See also: - - TT_New_Glyph(), TT_Done_Glyph(), TT_Load_Glyph(), - TT_Get_Glyph_Metrics(), TT_Get_Glyph_Big_Metrics(), - TT_Get_Glyph_Outline(), TT_Get_Glyph_Bitmap(), - TT_Get_Glyph_Pixmap() - - .................................................................. - - TT_CharMap - - This type defines a handle used to reference a charMap object. - A charMap is an object owning the tables needed to perform the - mapping from characters code to glyphs numbers. A charMap is - always created from a valid face object, and is destroyed with - it by the engine. - - See also: - - TT_Get_CharMap(), TT_Char_Index(). - - .................................................................. - - TT_Error - - This is the type of all error codes returned by the API. Nearly - all functions return an error code, set to 0 in case of success. - - A list of all error codes is given in section III. - - .................................................................. - - TT_Engine - - For the sake of re-entrancy it is possible to distinguish - `engines' to separate several running instances of the library. - For example, it could be used as a DLL shared by several client - applications. - - Each client program must begin by creating its own engine, - through a call to TT_Init_FreeType(). The engine must also be - passed as the first argument of the following functions: - - TT_Open_Face() - TT_Open_Collection() - TT_Set_Raster_Gray_Palette() - TT_Get_Outline_Bitmap() - TT_Get_Outline_Pixmap() - TT_Done_FreeType() - - Note that any FreeType object pertains to one single engine - (there is no sharing). Closing an engine with - TT_Done_FreeType() will delete all the objects that have been - allocated within its instance. - - - --------------------------------------------------------------------- --------------------------------------------------------------------- - - - -II. Functions -============= - - Here is a list of the core library's API. - - NOTE: - - A function's default result is an error code of type TT_Error; a - list of error codes is given in section III below. - - Some functions return other types, in which case the result type - is documented with its description. - - .................................................................. - - TT_FreeType_Version( int* major, int* minor ); - - Queries the major and minor version of the library. - - .................................................................. - - TT_Init_FreeType( TT_Engine* engine ); - - Creates and initializes a new engine. Returns a handle to the - engine in the `*engine' variable. - - This call must be performed before any other function of - FreeType is invoked. The engine handle must be passed to the - following functions: - - TT_Open_Face() - TT_Open_Collection() - TT_Set_Raster_Gray_Palette() - TT_Done_FreeType() - - .................................................................. - - TT_Done_FreeType( TT_Engine engine ); - - Finalizes and destroys an engine. This call destroys _all_ - objects that were previously created and used with the engine. - - .................................................................. - - TT_Open_Face( TT_Engine engine, - TT_Text* fontPathName, - TT_Face* face ); - - This call opens a font file, located by `fontPathName', and - returns a handle to the newly corresponding face object in the - handle `*face'. The object is part of the `engine' instance. - - Example: - - error = TT_Open_Face( engine, "c:\ttf\wingding.ttf", &face ); - if ( error ) - fprintf( stderr, "Could not open face.\n" ); - - NOTE 1: - - The font file can be a TrueType collection; in this case, the - engine will always open the first embedded font found in the - file. - - NOTE 2: - - `TT_Text' is usually defined as `char' by a typedef - declaration. It may be a 16-bit quantity (or even wider) for - some operating systems; see ttconfig.h for details. - - .................................................................. - - TT_Open_Collection( TT_Engine engine, - TT_Text* collectionPathName, - TT_ULong fontIndex, - TT_Face* face ); - - This call opens one of the fonts found in a TrueType collection. - The font is selected through the `fontIndex' argument. The - first font has index 0. - - Note that to know a collection's number of embedded fonts, - you will have to: - - 1 - open the first collection font with TT_Open_Face(). - - 2 - query the face's properties through - TT_Get_Face_Properties(). - - The number of embedded faces is then `properties->num_Faces'. - - Example: - - TT_Face face; - TT_Face_Properties properties; - - - /* Open first embedded collection font */ - error = TT_Open_Face( engine, "c:\ttf\sample.ttc", &face ); - if ( error ) { ...error... } - - /* Get face properties */ - error = TT_Get_Face_Properties( face, &properties ); - if ( error ) { ...error... } - - printf( "There are %d fonts in this collection.\n", - properties->num_Faces ); - - TT_Close_Face( face ); - - /* Open second font in collection */ - error = TT_Open_Collection( engine, "c:\ttf\sample.ttc", 1, - &face ); - if ( error ) { ...error... } - - NOTE 1: - - If the file isn't a collection, `fontIndex' must be zero. - Otherwise, an error will be returned. - - NOTE 2: - - `TT_Text' is usually defined as `char' by a typedef - declaration. It may be a 16-bit quantity (or even wider) for - some operating systems; see ttconfig.h for details. - - .................................................................. - - TT_Set_Raster_Gray_Palette( TT_Engine engine, - TT_Byte* palette ); - - Sets the gray-level palette for an engine. The palette is used - to create pixmaps through the TT_Get_Glyph_Pixmap() function. - It is an array of five bytes, following the convention: - - palette[0] = background (white) - palette[1] = light - palette[2] = medium - palette[3] = dark - palette[4] = foreground (black) - - .................................................................. - - TT_Get_Face_Properties( TT_Face face, - TT_Face_Properties* properties ); - - Returns the `face' object's `*properties'. This structure - contains various data like the total number of glyphs and - pointers to some mandatory TrueType tables. - - See the definition of TT_Face_Properties in section I for more - details. - - Note that since version 1.3, FreeType supports fonts with no - OS/2 table, like many old Mac fonts. See the definition of - TT_OS2 for more details. - - .................................................................. - - TT_Get_Face_Metrics( TT_Face face, - TT_UShort firstGlyph, - TT_UShort lastGlyph, - TT_Short* leftBearings, - TT_UShort* widths, - TT_Short* topBearings, - TT_UShort* heights ); - - This function returns the original horizontal AND vertical - metrics for a given face `face' and a given glyph range specified - by `firstGlyph' and `lastGlyph' as found in the `hmtx' and `vmtx' - tables. These are the glyphs' left-side bearings (in - `leftBearings') and horizontal advance widths (in `widths'), as - well as top-side bearings (in `topBearings') and vertical advance - heights (in `heights'). If you aren't interested in any of the - metrics fields, simply set its value to NULL. - - All are expressed in font units, a.k.a. EM units. - - The metrics arrays must be allocated by the client program. - - IMPORTANT NOTE: - - As vertical metrics are optional in a TrueType font, this - function will return an error (TT_Err_No_Vertical_Data) if this - function is called on such a face with non-NULL `topBearings' - or `heights' arguments. - - If a font has no vertical data, the `vertical' field in its - properties structure is set to NULL. - - .................................................................. - - TT_Set_Face_Pointer( TT_Face face, - void* data ); - - For convenience purposes, each face object has a `generic' - pointer which value is unused by the engine, but that can be set - freely by client applications through this function. - - Do what you want with it; it is here to give you a chance to - link a face object to your own structures and data. - - .................................................................. - - void* TT_Get_Face_Pointer( TT_Face face ); - ^^^^ - Returns a face object's generic pointer. See - TT_Set_Face_Pointer() above. - - .................................................................. - - TT_Flush_Face( TT_Face face ); - - Closes a given face object's file handler or descriptor. This - is useful to save system resources if your application opens - dozens or even hundreds of fonts. The face object is still - valid, and its file will be re-opened automatically on the next - request which requires disk access. - - .................................................................. - - TT_Close_Face( TT_Face face ); - - Closes a given `face' object. This function will also destroy - all the face's child instances. The face's glyphs will not be - destroyed, however. - - .................................................................. - - TT_New_Instance( TT_Face face, - TT_Instance* instance ); - - Creates a new instance object related to the `face' object. A - handle to the newly created instance is returned in `instance'. - - The default instance resolution is 96dpi in both vertical and - horizontal direction; the default point size is 10pt. - - .................................................................. - - TT_Set_Instance_Resolutions( TT_Instance instance, - TT_UShort xResolution, - TT_UShort yResolution ); - - Sets the target device resolutions for a given instance. The - values are expressed in dots per inch (dpi). A value of 96dpi - is typical for an SVGA display, 72dpi for a Macintosh one, and - 300 to 6000dpi for printers. Default value (before a call to - this function) is 96dpi. - - .................................................................. - - TT_Set_Instance_CharSize( TT_Instance instance, - TT_F26Dot6 charsize ); - - Sets the point size for a given instance. The size is expressed - in fractional (26.6) `points', where 1 point = 1/72 inch. The - default value is 10pt (before a call to this function). - - For example, to use a char size of 12pt, call the function with: - - TT_Set_Instance_CharSize( instance, 12 * 64 ); - - Fractional point sizes are thus possible. - - Call this function after TT_Set_Instance_Resolutions(). - - .................................................................. - - TT_Set_Instance_CharSizes( TT_Instance instance, - TT_F26Dot6 charWidth, - TT_F26Dot6 charHeight ); - - Sets an instance's glyph width and height independently in - fractional (26.6) points. Similar to Set_Instance_CharSize() - with the exception that the horizontal and vertical glyph - dimensions can differ. - - Call this function after TT_Set_Instance_Resolutions(). - - .................................................................. - - TT_Set_Instance_PixelSizes( TT_Instance instance, - TT_UShort pixelWidth, - TT_UShort pixelHeight, - TT_F26Dot6 pointSize ); - - This function can be used to specify directly the pixel sizes - and point size of a given instance, independently of device - resolutions. This is not the recommended way to do it, but can - be used for debugging or simplicity in some special cases. - - Note that you _must_ provide a point size! - - Call this function after TT_Set_Instance_Resolutions(). - - .................................................................. - - TT_Set_Instance_Transform_Flags( TT_Instance instance, - TT_Bool rotated, - TT_Bool stretched ); - - Sets the transform flags for a given instance. These flags are - passed to the interpreter each time a glyph is loaded within the - instance. Their role is to notify the glyph hinting mechanism - that the resulting glyph will be transformed in a special way. - Setting one of these flags to true usually disables hinting, - though this behaviour varies with each font file. - - NOTE: - - The glyph loader doesn't perform the rotation or the - stretching automatically; this must be done explicitly by the - client application. Use the function TT_Transform_Outline() - for that purpose. - - .................................................................. - - TT_Get_Instance_Metrics( TT_Instance instance, - TT_Instance_Metrics* imetrics ); - - This call returns a given instance's current metrics. They are - returned in the `imetrics' structure, which contains, among - other things, the current point size, ppem, and device - resolution (horizontal and vertical). - - .................................................................. - - TT_Set_Instance_Pointer( TT_Instance instance, - void* data ); - - For convenience purposes, each instance object has a `generic' - pointer which value is unused by the engine, but that can be set - freely by client applications through this function. - - Do what you want with it, it is here to give you a chance to - link a face object to your own structures and data. - - .................................................................. - - void* TT_Get_Instance_Pointer( TT_Instance instance ) - ^^^^ - - This function returns an instance object's generic pointer set - through TT_Set_Instance_Pointer(). - - .................................................................. - - TT_Done_Instance( TT_Instance instance ); - - Closes a given instance object, destroying its associated data. - Note that this is performed automatically when a face is closed - on all its child instances. However, explicit deallocation can - help in freeing the memory used by the application earlier. - - .................................................................. - - TT_New_Glyph( TT_Face face, - TT_Glyph* glyph ); - - Creates a new glyph container for the glyphs of the font - described by the `face' handle. A pointer to the container is - returned in `glyph'. The face is said to be the glyph's parent. - - NOTE: - - A glyph is destroyed with its parent face object. However, it - is possible to delete it explicitly with TT_Done_Glyph(). - - .................................................................. - - TT_Done_Glyph( TT_Glyph glyph ); - - Discards a glyph container. This is also done automatically for - all glyphs when closing its parent face object. - - .................................................................. - - TT_Load_Glyph( TT_Instance instance, - TT_Glyph glyph, - TT_UShort glyphIndex, - TT_UShort loadFlags ); - - Loads and processes (scales and/or hints) a glyph at a given - `instance' into the `glyph' container. - - Note that `glyph' and `instance' must have the _same_ parent - face object, otherwise an error message will be returned. - - `glyph_index' is the glyph's index as found in the TrueType - font. It is _not_ a character code (see the charmap functions - below). - - `load_flags' is an integer that specifies which operations are - to be performed on the loaded glyph. The following values/bits - are used: - - TTLOAD_SCALE_GLYPH - - Indicates that the glyph must be scaled to the instance's - resolution. The pixel coordinates returned in the glyph - outline structure (see below) are then expressed in - fractional pixels represented in the 26.6 fixed point - floating format (F26Dot6). - - If scaling is disabled, the coordinates returned in the - outline structure are integer font units, also called - `FUnits' by the TrueType specification. - - TTLOAD_HINT_GLYPH - - This flag is only valid when scaling is on. It informs the - loader that the glyph must be hinted (i.e., grid-fitted for - optimal display). Note that hinting will occur only if the - instance's transformations and metrics allow it (for - example, most font programs disable hinting automatically in - case of rotation or stretching). - - When loading a hinted glyph, the metrics computed by the - loader, including the bounding box, will also be - grid-fitted. - - TTLOAD_PEDANTIC - - Starting with FreeType version 1.3, the bytecode interpreter - can ignore even more errors (like out-of-bound array - accesses). Using this flag it is possible to force TrueType - compliant interpretation of font programs. - - TTLOAD_IGNORE_GLOBAL_ADVANCE_WIDTH - - A flag to handle monospaced fonts with an incorrect global - advance width in the `hhea' table. If set, the actual - advance width value of a particular glyph will be used; if - unset, the advance widths for all glyphs are forced to be - equal to the global value. - - - NOTE: - - You can also use the constant TTLOAD_DEFAULT, which is simply - the union of TTLOAD_SCALE_GLYPH and TTLOAD_HINT_GLYPH for most - `typical' loads. - - .................................................................. - - TT_Get_Glyph_Outline( TT_Glyph glyph, - TT_Outline* outline ); - - This call returns the glyph's `outline'. This is a simple - structure which contains pointers to the data used to describe - an outline to the rasterizer. See the definition of - TT_Outline in section I. - - .................................................................. - - TT_Get_Glyph_Metrics( TT_Glyph glyph, - TT_Glyph_Metrics* metrics ); - - Extracts the glyph's metrics and copies them to the `*metrics' - structure. Its format is described in section I. - - If the glyph has been loaded without scaling, the values are - expressed in FUnits (integers relative to the original font grid - called the EM Square). - - If the glyph has been loaded _with_ scaling, which is the - default, the values are expressed in fractional pixels in 26.6 - fixed point float format (F26Dot6; 1 unit = 1/64th of a pixel). - - If the glyph has been loaded with hinting, the metrics are also - grid-fitted, including the bounding box. To get the un-fitted - bbox, call TT_Get_Outline_BBox() on the glyph's outline. - - NOTE: - - BBox fitting occurs according to the following scheme: - - #define FLOOR( x ) ( (x) & -64 ) - #define CEILING( x ) ( ( (x) + 63 ) & -64 ) - - xMin = FLOOR( xMin ); - yMin = FLOOR( yMin ); - xMax = CEILING( xMax ); - yMax = CEILING( yMax ); - - This means that the outline's width and height in pixels can be - computed simply from the fitted bbox, namely - - (xMax-xMin)/64 and (yMax-yMin)/64 - - .................................................................. - - TT_Get_Glyph_Big_Metrics( TT_Glyph glyph, - TT_Big_Glyph_Metrics* metrics ); - - Extracts the glyph's big metrics and copies them to the - `*metrics' structure. Its format is described in section I. - - If the glyph has been loaded without scaling, the values are - expressed in FUnits (integers relative to the original font grid - called the EM Square). - - If the glyph has been loaded _with_ scaling, which is the - default, the values are expressed in fractional pixels in 26.6 - fixed point float format (F26Dot6; 1 unit = 1/64th of a pixel). - - If the glyph has been loaded with hinting, the metrics are also - grid-fitted, including the bounding box. To get the un-fitted - bbox, just call TT_Get_Outline_BBox() on the glyph's outline. - - NOTE 1: - - BBox fitting occurs according to the following scheme: - - #define FLOOR( x ) ( (x) & -64 ) - #define CEILING( x ) ( ( (x) + 63 ) & -64 ) - - xMin = FLOOR( xMin ); - yMin = FLOOR( yMin ); - xMax = CEILING( xMax ); - yMax = CEILING( yMax ); - - This means that the outline's width and height in pixels can be - computed simply from the fitted bounding box, namely - - (xMax-xMin)/64 and (yMax-yMin)/64 - - NOTE 2: - - The vertBearingX value in `metrics' cannot be extracted for - outline glyphs -- it is defined for embedded bitmaps only. - Instead, it is set to (xMin-xMax)/2; this will center the - bounding box on the vertical `baseline'. - - .................................................................. - - TT_Get_Glyph_Bitmap( TT_Glyph glyph, - TT_Raster_Map* bitmap, - TT_F26Dot6 xOffset, - TT_F26Dot6 yOffset ); - - This call converts the vectorial glyph representation contained - in the object handled by `glyph' into a bitmap. - - The target bitmap is described by the `bitmap' pointer. - Clipping will be done if necessary. You can also specify an - offset to be applied before the scan-line conversion; `xOffset' - and `yOffset' must be expressed in fractional pixels (where - 1 unit = 1/64th pixel). - - NOTE 1: - - Choosing non integer pixel offsets, i.e., values of `xOffset' - and `yOffset' that are not multiples of 64, will ruin the - hinting performed by the interpreter, and result in bad - rendering at small sizes. - - NOTE 2: - - The glyph's point coordinates must be scaled before calling - this function. Never call this function with a glyph that - were loaded with no scaling! - - NOTE 3: - - FreeType always shifts the glyph horizontally so that the left - side bearing is equal to the left side of the bounding box. - - .................................................................. - - TT_Get_Glyph_Pixmap( TT_Glyph glyph, - TT_Raster_Map* pixmap, - TT_F26Dot6 xOffset, - TT_F26Dot6 yOffset ); - - This call converts the vectorial glyph representation contained - in the object handled by `glyph' into a pixmap (i.e., an - 8-bit/pixel map). The result is an anti-aliased version of the - glyph (`anti-aliasing' is also known as `font-smoothing'). - - The target pixmap is described by the `pixmap' pointer. Note - that its width _must_ be a multiple of 4. For the definition - and description of a pixmap see Section I. - - As with TT_Get_Glyph_Bitmap(), you can specify offsets to be - applied before the rendering (`xOffset' and `yOffset' must be - expressed in fractional pixel coordinates). - - NOTE 1: - - You don't need to supply a temporary bitmap for the - anti-aliaser. The rasterizer uses its own scheme to optimize - memory usage. - - NOTE 2: - - The glyph's point coordinates must be scaled before calling - this function. This means that you should never call it with - a glyph which has been loaded without scaling! - - NOTE 3: - - The pixmap passed to this function should always be EMPTY - (i.e., filled with zero bytes) before the call. If not, - garbage will accumulate! - - NOTE 4: - - FreeType always shifts the glyph horizontally so that the left - side bearing is equal to the left side of the bounding box. - - .................................................................. - - TT_New_Outline( TT_UShort numPoints, - TT_UShort numContours, - TT_Outline* outline ); - - Creates a new outline object. This function creates the arrays - necessary to hold `numPoints' points and `numContours' contours, - and set `outline's pointers to them. - - The new outline owns the arrays, and they will be destroyed with - it through TT_Done_Outline(). - - NOTE 1: - - Outlines created with this function are called `user' - outlines, in contrast with the outlines returned by - TT_Get_Glyph_Outline(), which fields refer to the data - contained within a glyph object (i.e., these outlines do not - own the arrays they refer to). - - NOTE 2: - - User outlines aren't tracked by the engine, which means they - are not destroyed by a TT_Done_FreeType(). You have to - explicitly discard them through TT_Done_Outline() to avoid - memory leaks. - - .................................................................. - - TT_Done_Outline( TT_Outline* outline ); - - Deletes an outline's data. Note that you need not destroy the - outlines returned by TT_Get_Glyph_Outline(), only those created - by TT_New_Outline(). - - .................................................................. - - TT_Copy_Outline( TT_Outline* source, - TT_Outline* target ); - - Copies the content of the `source' outline into the content of - the `target' outline. The two outlines must have been created - with the same dimensions (num_points and num_contours), - otherwise this function will return an error code. - - .................................................................. - - void TT_Transform_Outline( TT_Glyph_Outline* outline, - ^^^^ TT_Matrix* matrix ); - - Applies a simple transformation matrix on a given outline. This - will multiply each point coordinate vector by a 2x2 matrix, - which coefficients are given in the 16.16 fixed float format. - - Rotation can be performed with this function. - - NOTE: - - This function takes an outline, and not a glyph handle, as a - parameter. This `feature' lets you apply transformations on - your own copies of glyphs. - - .................................................................. - - void TT_Translate_Outline( TT_Glyph_Outline* outline, - ^^^^ TT_Pos xOffset, - TT_Pos yOffset ); - - Applies a simple translation on a given outline. - - NOTE: - - This function takes an outline, and not a glyph handle, as a - parameter. This `feature' lets you apply translation to your - own copies of glyphs. - - .................................................................. - - TT_Get_Outline_Bitmap( TT_Engine engine, - TT_Outline* outline, - TT_Raster_Map* bitmap ); - - Renders an outline into a bitmap. The latter must be setup by - the user before the call (i.e., it is not created by this - function, instead it must be provided by the user). - - .................................................................. - - TT_Get_Outline_Pixmap( TT_Engine engine, - TT_Outline* outline, - TT_Raster_Map* pixmap ); - - Renders an outline into a pixmap. The latter must be setup by - the user before the call (i.e., it is not created by this - function, instead it must be provided by the user). - - NOTE: - - The pixmap passed to this function must always be EMPTY (i.e., - filled with zero bytes) before the call. Otherwise, garbage may - accumulate! - - .................................................................. - - TT_Get_Outline_BBox( TT_Outline* outline, - TT_BBox* bbox ); - - Returns an outline's bounding box in the `bbox' structure. Note - that the returned coordinates are not grid fitted! - - NOTE: - - The current release of FreeType (1.x) does compute the bounding - box for the outline's control points, and not the `exact' box - based on Bezier arcs extrema. Hence, the bbox returned by this - function may be slightly larger than necessary if the glyph - doesn't have control points at its extrema, or if it has been - rotated. - - .................................................................. - - void TT_Transform_Vector( TT_Pos* x, - ^^^^ TT_Pos* y, - TT_Matrix* matrix ); - - Applies a 2x2 matrix to a vector. - - .................................................................. - - int TT_Get_CharMapCount( TT_Face face ); - ^^^ - - Gets the number of character mappings present in the TrueType - file described by the `face' handle. Returns -1 if the handle - is invalid. - - IMPORTANT NOTE: ******** - - This function is deprecated. Get the number of character maps - from the `num_CharMaps' field in the structure returned by - TT_Get_Face_Property() instead. - - .................................................................. - - TT_Get_CharMap_ID( TT_Face face, - TT_UShort charmapIndex, - TT_UShort* platformID, - TT_UShort* encodingID ); - - Returns the platform ID and platform-specific encoding ID for - the charmap numbered `charmapIndex' in the `face' object. The - total number of character mapping tables can be found in the - `num_CharMaps' field in the structure returned by - TT_Get_Face_Property(). - - .................................................................. - - TT_Get_CharMap( TT_Face face, - TT_UShort charmapIndex, - TT_CharMap* charMap ); - - Returns a handle for the character map number `charmapIndex' of - `face'. The handle is placed in `*charMap' and can be used - later for fast lookup with the TT_Char_Index() API function. - - Charmap objects are automatically destroyed when their face - object is destroyed. - - .................................................................. - - TT_UShort TT_Char_Index( TT_CharMap charMap, - ^^^^^^^^^ TT_ULong charCode ); - - Applies a charMap to translate `charCode' into a glyph index - that can be used to load and address a glyph in the TrueType - file. In case of error, the undefined glyph (index 0) is - returned. - - Note: Since FT 1.5, the `charCode' is an unsigned long instead - of an unsigned short. - - The charmap handle can be obtained with TT_Get_CharMap(). - - .................................................................. - - int TT_Get_Name_Count( TT_Face face ); - ^^^ - - Gets the number of name strings found in a face's name table. - This function will return -1 if the face handle is invalid. - - IMPORTANT NOTE: ******** - - This function is deprecated. Get the number of name strings - from the `num_Names' field in the structure returned by - TT_Get_Face_Property() instead. - - .................................................................. - - TT_Get_Name_ID( TT_Face face, - TT_UShort nameIndex, - TT_UShort* platformID, - TT_UShort* encodingID, - TT_UShort* languageID, - TT_UShort* nameID ); - - Returns the ID of a given name string, indexed by the number - `nameIndex' in a given face. The name index ranges from 0 to - `num_names' minus one; this value can be found in the structure - returned by TT_Get_Face_Property(). - - Each string has a `platformID', `encodingID', `languageID' and - `nameID', as defined by the TrueType specification. - - The platformID is typically in the range [0,3]. Some font files - have unusual name table entries; these can be detected from - their platformID which is larger than 3. - - .................................................................. - - TT_Get_Name_String( TT_Face face, - TT_UShort nameIndex, - TT_String** stringPtr, - TT_UShort* length ); - - Returns a name string's address and length. Note that an - invalid name table entry always returns NULL for `stringPtr' and - zero for `length'. - - NOTE 1: - - The string belongs to the face object and should not be - written to or freed by the client application. - - NOTE 2: - - The library does not care about endianess here! If you are - using a little-endian machine and you have to interpret the - string bytes as 16-bit-wide characters (e.g. Unicode encoded), - you must byte-swap the data because 16-bit data is stored as - big-endian in TrueType fonts, and FreeType reads in the whole - name table bytewise. - - .................................................................. - - TT_Get_Font_Data( TT_face face, - TT_Long tag, - TT_Long offset, - void* buffer, - TT_Long* length ); - - Gets font or table data. Similar to the GetFontData() API of - the Windows world. You can use the macro MAKE_TT_TAG() to - generate TrueType table tags from character descriptions, like - - MAKE_TT_TAG( 'e', 'b', 'l', 'c' ) - - Use the value 0 instead for `tag' if you want to access the - whole font file. `offset' specifies the starting offset in the - table (or the offset in the file if tag == 0), `buffer' the - address of target buffer. - - Depending on the value of length, various actions are performed. - If `length' is NULL, the whole table will be loaded. An error - will be returned if `offset' is not 0. If `*length' is zero, - TT_Get_Font_Data() exits immediately, returning only the length - of the given table (in the variable `length'), or of the font - file, depending on the value of `tag'. Finally, if `*length' is - not zero, the next `length' bytes of the table (resp. the font) - are loaded into an array pointed to by `buffer', starting at - offset `offset'. Note that the `buffer' array must be large - enough to hold `length' bytes. - - --------------------------------------------------------------------- --------------------------------------------------------------------- - - - -III. Error Messages -=================== - - Most functions return an error code, typed to TT_Error. A return - value of zero indicates no error. The error values are defined in - the file `freetype.h'. In the following table, the prefix - `TT_Err_' is omitted, e.g. `Ok' -> `TT_Err_Ok'. - - - Error Unprefixed Error - Code Macro Name Description - ------------------------------------------------------------------ - - 0x0000 Ok Successful function call. - Always 0! - - ----------------- high-level API error codes --------------------- - - The following error codes are returned by the high-level API to - indicate an invalid client request. - - 0x0001 Invalid_Face_Handle An invalid face object handle was - passed to an API function. - - 0x0002 Invalid_Instance_Handle An invalid instance object handle - was passed to an API function. - - 0x0003 Invalid_Glyph_Handle An invalid glyph container handle - was passed to an API function. - - 0x0004 Invalid_CharMap_Handle An invalid charmap handle was - passed to an API function. - - 0x0005 Invalid_Result_Address An output parameter (a result) - was given a NULL address in an - API call. - - 0x0006 Invalid_Glyph_Index An invalid glyph index was passed - to an API function. - - 0x0007 Invalid_Argument An invalid argument was passed to - an API function. Usually, this - means a simple out-of-bounds - error. - - 0x0008 Could_Not_Open_File The pathname passed doesn't point - to an existing or accessible - file. - - 0x0009 File_Is_Not_Collection Returned by TT_Open_Collection - while trying to open a file which - isn't a collection. - - 0x000A Table_Missing The requested TrueType table is - missing in the font file. - - 0x000B Invalid_Horiz_Metrics The font's HMTX table is invalid. - Denotes a broken font. - - 0x000C Invalid_CharMap_Format A font's charmap entry has an - invalid format. Some other - entries may be valid though. - - 0x000D Invalid_PPem Invalid PPem values specified, - i.e., you are accessing a scaled - glyph without having called - TT_Set_Instance_CharSize() or - TT_Set_Instance_PixelSizes(). - - 0x0010 Invalid_File_Format The file isn't a TrueType font or - collection. - - 0x0011 Invalid_Vert_Metrics The font's VMTX table is invalid. - Denotes a broken font. - - 0x0020 Invalid_Engine An invalid engine handle was - passed to one of the API - functions. - - 0x0021 Too_Many_Extensions The client application is trying - to initialize too many - extensions. The default max - extensions number is 8 (this - value can be changed at compile - time). - - 0x0022 Extensions_Unsupported This build of the engine doesn't - support extensions. - - 0x0023 Invalid_Extension_Id This error indicates that the - client application is trying to - use an extension that has not - been initialized yet. - - 0x0030 No_Vertical_Data There is no vertical data, but - you are requesting it. Instead, - call TT_Get_Face_Metrics() with - NULL pointers for `topBearings' - and `heights'. - - 0x0080 Max_Profile_Missing The max profile table is missing. - => broken font file - - 0x0081 Header_Table_Missing The font header table is missing. - => broken font file - - 0x0082 Horiz_Header_Missing The horizontal header is missing. - => broken font file - - 0x0083 Locations_Missing The locations table is missing. - => broken font file - - 0x0084 Name_Table_Missing The name table is missing. - => broken font file - - 0x0085 CMap_Table_Missing The character encoding tables are - missing. - => broken font file - - 0x0086 Hmtx_Table_Missing The hmtx table is missing. - => broken font file - - 0x0087 OS2_Table_Missing The OS/2 table is missing. - Some Mac fonts don't have it. - - 0x0088 Post_Table_Missing The PostScript table is missing. - => broken font file - - 0x0089 Glyf_Table_Missing The glyph table is missing. - => broken font file - - ----------------- memory component error codes ------------------- - - 0x0100 Out_Of_Memory An operation couldn't be - performed due to memory - exhaustion. - - ----------------- file component error codes --------------------- - - 0x0200 Invalid_File_Offset Trying to seek to an invalid - portion of the font file. - Denotes a broken file. - - 0x0201 Invalid_File_Read Trying to read an invalid portion - of the font file. Denotes a - broken file. - - 0x0202 Invalid_Frame_Access Trying to frame an invalid - portion of the font file. - Denotes a broken file. - - ----------------- glyph loader error codes ----------------------- - - These errors are produced by the glyph loader. They denote an - invalid glyph record within the font file. - - 0x0300 Too_Many_Points The glyph has too many points to - be valid for its font file. - - 0x0301 Too_Many_Contours The glyph has too many contours - to be valid for its font file. - - 0x0302 Invalid_Composite_Glyph A composite glyph's description - is broken. - - 0x0303 Too_Many_Ins The glyph has too many - instructions to be valid for its - font file. - - ----------------- byte-code interpreter error codes -------------- - - These error codes are produced by the TrueType byte-code - interpreter. They usually indicate a broken font file or a broken - glyph within a font. - - 0x0400 Invalid_Opcode Found an invalid opcode in a - TrueType byte-code stream. - - 0x0401 Too_Few_Arguments An opcode was invoked with too - few arguments on the stack. - - 0x0402 Stack_Overflow The interpreter's stack has been - filled up and operations can't - continue. - - 0x0403 Code_Overflow The byte-code stream runs out of - its valid bounds. - - 0x0404 Bad_Argument A function received an invalid - argument. - - 0x0405 Divide_By_Zero A division by 0 operation was - queried by the interpreter - program. - - 0x0406 Storage_Overflow The program tried to access data - outside of its storage area. - - 0x0407 Cvt_Overflow The program tried to access data - outside of its control value - table. - - 0x0408 Invalid_Reference The program tried to reference an - invalid point, zone, or contour. - - 0x0409 Invalid_Distance The program tried to use an - invalid distance. - - 0x040A Interpolate_Twilight The program tried to interpolate - twilight points. - - 0x040B Debug_Opcode The now invalid `debug' opcode - was found in the byte-code - stream. - - 0x040C ENDF_In_Exec_Stream A misplaced ENDF was encountered - in the byte-code stream. - - 0x040D Out_Of_CodeRanges The program tried to allocate too - much code ranges (this is really - an engine internal error that - should never happen). - - 0x040E Nested_DEFS Nested function definitions - encountered. - - 0x040F Invalid_CodeRange The program tried to access an - invalid code range. - - 0x0410 Invalid_Displacement The program tried to use an - invalid displacement. - - 0x0411 Execution_Too_Long In order to get rid of `poison' - fonts, the interpreter produces - this error if more than one - million opcodes have been - interpreted in a single glyph - program. This detects infinite - loops softly. - - ----------------- internal failure error codes ------------------- - - These error codes are produced if an incoherent library state has - been detected. All of these reflect a severe bug in the engine - (or a severe memory corruption due to massive overwrites by your - application into the library's data)! - - If you do encounter a font that makes one of the test programs - produce such an error, please report it! - - 0x0500 Nested_Frame_Access - 0x0501 Invalid_Cache_List - 0x0502 Could_Not_Find_Context - 0x0503 Unlisted_Object - - ----------------- scan-line converter error codes ---------------- - - These error codes are produced by the raster component. They - indicate that an outline structure was incoherently set up, or - that you are trying to render a horribly complex glyph. - - They should be _extremely_ rare, however. - - 0x0600 Raster_Pool_Overflow Render pool overflow. This should - never happen in this release. - - 0x0601 Raster_Negative_Height A negative height was produced. - - 0x0602 Raster_Invalid_Value The outline data wasn't set - properly. Check that: - points >= endContours[contours] - - 0x0603 Raster_Not_Initialized You did not call - TT_Init_FreeType()! - - ---- end of apiref.txt --- diff --git a/Build/source/libs/freetype/freetype-1.5/docs/apirefx.txt b/Build/source/libs/freetype/freetype-1.5/docs/apirefx.txt deleted file mode 100644 index 19bc7d9feb3..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/docs/apirefx.txt +++ /dev/null @@ -1,1223 +0,0 @@ - The FreeType Engine - - Extension Library Reference - - - ----------------------------------- - - - Table of Contents: - - I. Engine extensions - 1. kerning (ftxkern) - 2. PostScript names (ftxpost) - 3. TrueType Open (ftxopen) - a. The `BASE' table (baseline data) - b. The `GDEF' table (glyph definitions) - c. The `GPOS' table (glyph positions) - d. The `GSUB' table (glyph substitions) - e. The `JSTF' table (justification data) - f. auxiliary functions - 4. embedded bitmaps (ftxsbit) - - II. API extensions - 1. cmap iteration (ftxcmap) - 2. internationalized error messages (ftxerr18) - 3. access to the `gasp' table (ftxgasp) - 4. fast retrieval of glyph widths and heights (ftxwidth) - - III. Error codes - - - -------------------- - - -Please read the file `user.txt' for an introduction into FreeType's -extension mechanism and the difference between engine and API -extensions. - - -I. Engine extensions -==================== - -To use engine extensions you have to compile the library with the -macro TT_CONFIG_OPTION_EXTEND_ENGINE. By default, this macro is set -and all engine extensions are linked to the FreeType library. - - - 1. kerning (ftxkern) - -------------------- - - TT_Init_Kerning_Extension( TT_Engine engine ) - - Initializes the kerning extension for a given engine. This must - be called just after the engine creation, and before any face - object allocation. Example: - - TT_Init_FreeType( &engine ); - TT_Init_Kerning_Extension( engine ); - - .................................................................. - - TT_Get_Kerning_Directory( TT_Face face, - TT_Kerning* directory ) - - Queries the kerning directory found in a face object. If no - kerning table is found in the TrueType file, the error - TT_Err_Table_Is_Missing will be returned. - - You can access the subtables through the pointers of the - directory. However, by default, the directory is only loaded if - a face object is created. You must load the subtables that - interest you with a call to TT_Load_Kerning_Table(). - - The layout of all kerning structures is defined in the file - `lib/extend/ftxkern.h'. Formats 0 and 2 (as defined in the - Microsoft TrueType specification) are exposed by this API. - - NOTE: - - This function must be called after the kerning extension has - been initialized. - - .................................................................. - - TT_Load_Kerning_Table( TT_Face face, - TT_UShort kernIndex ) - - Loads the kerning subtable number `kern_index' into memory. The - subtable can be accessed through the pointers provided by the - kerning directory, obtained from a call to the function - TT_Get_Kerning_Directory(). - - Note that the interpretation of the kerning data is left to the - client application. Read the TrueType specification for more - information on kerning encoding. - - NOTE 1: - - This function must be called after the kerning extension were - initialized. - - NOTE 2: - - An example can be found in the file `test/ftstrtto.c'. - - -==================================================================== - - - 2. PostScript names (ftxpost) - ----------------------------- - - TT_Init_Post_Extension( TT_Engine engine ) - - Initializes the PostScript name extension to load the PostScript - glyph names given in the `post' table. This must be called just - after creation of the engine, and before any face object - allocation. See description of TT_Get_PS_Name() for an example. - - .................................................................. - - TT_Load_PS_Names( TT_Face face, - TT_Post* post ) - - Loads the PostScript glyph names into memory. This must be done - before TT_Get_PS_Name() is called. In case of error, either - TT_Err_Invalid_Post_Table or TT_Err_Invalid_Post_Table_Format is - returned. See description of TT_Get_PS_Name() for an example. - - .................................................................. - - TT_Get_PS_Name( TT_Face face, - TT_UShort index, - TT_String** PSname ) - - Get the PostScript glyph name for a given glyph index. A - pointer to the name is returned in `PSname'. Example: - - ... - TT_Post post; - char* PSname; - - ... - TT_Init_Post_Extension( engine ); - TT_Load_PS_Names( face, &post ); - - ... - TT_Get_PS_Name( face, index, &PSname ); - - - NOTE 1: - - You must not alter the PostScript glyph name string returned - in `PSname'. - - NOTE 2: - - Some standard names sometimes present some variations, as: - - Omega vs. Ohm - Delta vs. increment - macron vs. overscore - mu vs. mu1 - periodcentered vs. middot - - We always return the first listed name, which correspond to - the last version of the TrueType specifications (which did - vary in the past on this respect). You may have to adjust the - source (in lib/extend/ftxpost.c) in order to interface with - some old applications. - - -==================================================================== - - - 3. TrueType Open (ftxopen) - -------------------------- - - Please note that TrueType Open specific error codes have the - prefix `TTO_Err_' instead of `TT_Err_'. - - a. The `BASE' table (baseline data) - - Not yet supported. - - b. The `GDEF' table (glyph definitions) - - TT_Init_GDEF_Extension( TT_Engine engine ) - - Initializes the GDEF extension to load the glyph definition - data given in the `GDEF' table. This must be called just - after creation of the engine, and before any face object - allocation. See the file `ftstrtto.c' for an example. - - ................................................................ - - TT_Load_GDEF_Table( TT_Face face, - TTO_GDEFHeader* gdef ) - - Loads the GDEF table into `gdef' for a given face `face'. - This must be done before any queries about glyph properties - with TT_GSUB_Get_Property(). Returns TT_Err_Table_Missing if - there is no GDEF table in the font. - - ................................................................ - - TT_GDEF_Get_Glyph_Property( TTO_GDEFHeader* gdef, - TT_UShort glyphID, - TT_UShort* property ) - - Use this function to get glyph properties in the variable - `property' for the glyph with index `glyphID' stored in the - `gdef' table. This data is essential for many fonts to - correctly apply contextual substitution (both GSUB and GPOS). - As a special case, zero is assigned to `property' if `gdef' is - NULL or the glyph has no special glyph property assigned to - it. The other return values of `property' are TTO_BASE, - TTO_LIGATURE, TTO_MARK, and TTO_COMPONENT; you can directly - apply the `LookupFlag' mask to check for certain properties: - - TTO_GDEFHeader* gdef; - TTO_Lookup* lo; - TT_UShort glyph_ID; - TT_UShort p; - - - TT_GDEF_Get_Property( gdef, glyph_ID, &p ); - - if ( p & lo->LookupFlag ) - return TTO_Err_Not_Covered; - - Usually, you don't need to take care of glyph properties by - yourself since TT_GSUB_Apply_String() will do this for you by - calling TT_GDEF_Get_Property(). - - Some fonts need GDEF-like data even if no GDEF table is - provided (for example, the Arabic script needs information - which glyphs are base glyphs and which are mark glyphs). In - such cases, you should use TT_GDEF_Build_ClassDefinition() to - build the necessary structures so that TT_GDEF_Get_Property() - returns meaningful values. - - See also TT_Load_GSUB_Table() and TT_Load_GPOS_Table(). - - ................................................................ - - TT_GDEF_Build_ClassDefinition( TTO_GDEFHeader* gdef, - TT_UShort num_glyphs, - TT_UShort glyph_count, - TT_UShort* glyph_array, - TT_UShort* class_array ) - - Fills a `gdef' structure with data to make - TT_GDEF_Get_Property() work in case no GDEF table is - available. `num_glyphs' is the number of glyphs in the font. - - `glyph_count' is the number of glyphs resp. class values (as - specified in the GDEF specification) given in the arrays - `glyph_array' and `class_array', respectively. The glyph - indices in `glyph_array' must be all different and sorted in - ascending order; the function expects that glyph index - `glyph_array[n]' has its class value in `class_array[n]'. - - Note that mark attach classes as defined in OpenType 1.2 are - not supported for constructed GDEF tables. - - See `arabic.c' for an example. - - - c. The `GPOS' table (glyph positionings) - - For glyph positioning, a data object of type TTO_GPOS_Data is - used. The `x_pos' and `y_pos' fields contain offsets to be - added to the glyph's position; `x_advance' and `y_advance' hold - values to be added to the horizonal and vertical advance widths, - respectively. If `new_advance' is TRUE, `x_advance' and - `y_advance' are absolute, i.e., they won't be added to the - original glyph's value but rather replace them. All offset - values are given as fractional pixels. - - To position marks, `back' holds the number of glyphs to go back - for applying `x_pos' and `y_pos' (advance values are always zero - in this case). If the target glyph itself has a non-zero `back' - value, it is necessary to repeat this process -- the offset - values have to be accumulated then. - - As a consequence, it is necessary to track glyph positions. - - struct TTO_GPOS_Data_ - { - TT_Pos x_pos; - TT_Pos y_pos; - TT_Pos x_advance; - TT_Pos y_advance; - TT_UShort back; - TT_Bool new_advance; - }; - - typedef struct TTO_GPOS_Data_ TTO_GPOS_Data; - - Here some pseudo code to demonstrate the needed algorithm: - - TT_GSUB_Apply_String() - TT_GPOS_Apply_String() - collect_glyph_positions() /* don't advance for marks */ - /* take care of kerning */ - /* apply GPOS data */ - - for all glyphs do - { - if `back' == 0 - render_glyph_at_current_position() - else - { - search_base_glyph() - render_glyph_at_base_glyph_position() - } - } - - A real example can be found in ftstrtto.c. Please note that the - code in this test program is not optimized; using a glyph cache - could improve speed considerably. - - Contrary to GSUB handling, GPOS needs data from the glyphs - itself. Some formats of anchor tables (used e.g. to attach mark - glyphs to base glyphs) and device tables refer to contour - points, and cursive connections need advance values and - dimensions of the glyphs if used vertically (vertical cursive - connections have not been implemented yet -- this is the only - omission of GPOS support currently). - - Two hooks are defined to get this data: TTO_GlyphFunction and - TTO_MMFunction. The former defaults to TT_Load_Glyph() and - should be replaced with a similar function which caches data if - necessary, the latter (to access data from Multiple Master - fonts) defaults to an error message. - - GPOS handling must always be done *after* GSUB handling! - - ................................................................ - - TT_Init_GPOS_Extension( TT_Engine engine ) - - Initializes the GPOS extension to load the glyph positioning - data given in the `GPOS' table. This must be called just - after creation of the engine, and before any face object - allocation. See the files `ftstrtto.c' and `ftdump.c' for - detailed examples. - - ................................................................ - - TT_Load_GPOS_Table( TT_Face face, - TTO_GPOSHeader* gpos, - TTO_GDEFHeader* gdef ) - - Loads the GPOS table into `gpos' for a given face `face'. - This must be done before any queries about or selection of - scripts, languages, and features. Returns - TT_Err_Table_Missing if there is no GPOS table in the font. - - `gdef' should contain a pointer to an associated GDEF table, - either a native one loaded with TT_Load_GDEF_Table() or - emulated with TT_GDEF_Build_ClassDefinition(). If `gdef' is - set to NULL, no GDEF data will be used. - - ................................................................ - - TT_GPOS_Select_Script( TTO_GPOSHeader* gpos, - TT_ULong script_tag, - TT_UShort* script_index ) - - This function sets the script index of a given script tag - `script_tag' in the variable `script_index' for the GPOS table - `gpos'. Returns TTO_Err_Not_Covered if the script tag cannot - be found. The available script tags can be queried with the - function TT_GPOS_Query_Scripts(). - - ................................................................ - - TT_GPOS_Select_Language( TTO_GPOSHeader* gpos, - TT_ULong language_tag, - TT_UShort script_index, - TT_UShort* language_index, - TT_UShort* req_feature_index ) - - This function sets the language index of a given language tag - `language_tag' and script index `script_index' in the variable - `language_index' for the GPOS table `gpos'. Returns - TTO_Err_Not_Covered if the language tag cannot be found. The - available language tags can be queried with the function - TT_GPOS_Query_Languages(). - - Additionally, the index of the required feature for this - language system is returned in `req_feature_index'; it must be - later registered for use with TT_GPOS_Add_Feature(). - - ................................................................ - - TT_GPOS_Select_Feature( TTO_GPOSHeader* gpos, - TT_ULong feature_tag, - TT_UShort script_index, - TT_UShort language_index, - TT_UShort* feature_index ) - - This function sets the feature index of a feature tag - `feature_tag', script index `script_index', and language index - `language_index' in the variable `feature_index' for the GPOS - table `gpos'. Returns TTO_Err_Not_Covered if the feature tag - cannot be found. The available feature tags can be queried - with the function TT_GPOS_Query_Features(). Setting - language_index to 0xFFFF selects the default language system. - - ................................................................ - - TT_GPOS_Query_Scripts( TTO_GPOSHeader* gpos, - TT_ULong** script_tag_list ) - - Returns the available script tags for a given GPOS table - `gpos' in the array `script_tag_list'. The array can be later - deallocated with free(). - - ................................................................ - - TT_GPOS_Query_Languages( TTO_GPOSHeader* gpos, - TT_UShort script_index, - TT_ULong** language_tag_list ) - - Returns the available language tags for a given GPOS table - `gpos' and script index `script_index' in the array - `language_tag_list'. The array can be later deallocated with - free(). - - ................................................................ - - TT_GPOS_Query_Features( TTO_GPOSHeader* gpos, - TT_UShort script_index, - TT_UShort language_index, - TT_ULong** feature_tag_list ) - - Returns the available feature tags for a given GPOS table - `gpos', script index `script_index', and language index - `language_index' in the array `feature_tag_list'. If language - index is set to 0xFFFF, the values for the default language - system are returned. The array can be later deallocated with - free(). - - ................................................................ - - TT_GPOS_Add_Feature( TTO_GPOSHeader* gpos, - TT_UShort feature_index, - TT_UShort property ) - - To prepare a call to TT_GPOS_Apply_String() which should - process a given feature with index `feature_index' and the - property `property', you must use this function. Its task is - to mark the lookup tables used by the feature for further - processing. - - `property' defines a relationship between the input string - object and the specific feature. The client must handle this - variable as a bit field, i.e., up to 16 user properties can be - defined. If `property' is set to ALL_GLYPHS (0xFFFF, the only - predefined value), or if the input string object has no set - bits in the `properties' field, the feature applies to all - glyphs. If bit `x' is set in `property', the feature applies - only to glyphs which have bit `x' not set in glyph's - `properties' field in the input string object. See - TT_GPOS_Apply_String() for an example. - - Returns TT_Err_Invalid_Argument in case of error. - - ................................................................ - - TT_GPOS_Clear_Features( TTO_GPOSHeader* gpos ) - - Clears the list of used features and properties. No lookup - tables will be processed. - - ................................................................ - - TT_GPOS_Register_Glyph_Function( TTO_GPOSHeader* gpos, - TTO_GlyphFunction gfunc ); - - Installs a function `gfunc' which loads a glyph. Its - parameters are the same as in a call to TT_Load_Glyph() -- if - no glyph loading function will be registered with - TTO_GPOS_Register_Glyph_Function(), TT_Load_Glyph() will be - called indeed. The purpose of this function is to provide a - hook for caching glyph outlines and sbits (using the - instance's generic pointer to hold the data). - - If for some reason no outline data is available (e.g. for an - embedded bitmap glyph), _glyph->outline.n_points should be set - to zero. _glyph can be computed with - - _glyph = HANDLE_Glyph( glyph ) - - `gfunc' is defined as - - typedef TT_Error - (*TTO_GlyphFunction)(TT_Instance instance, - TT_Glyph glyph, - TT_UShort glyphIndex, - TT_UShort loadFlags ); - - ................................................................ - - TT_GPOS_Register_MM_Function( TTO_GPOSHeader* gpos, - TTO_MMFunction mmfunc, - void* data ); - - Installs a function `mmfunc' which accesses the PostScript - interpreter. Multiple Master fonts need this interface to - convert a metric ID (as stored in an OpenType font version 1.2 - or higher) into a metric value. - - `data' points to a user-defined structure which will not be - used by the GPOS extension itself. It is passed directly to - `mmfunc', which is defined as - - typedef TT_Error - (*TTO_MMFunction)(TT_Instance instance, - TT_UShort metric_id, - TT_Pos* metric_value, - void* data ); - - `metric_value' must be returned as a scaled value (but - shouldn't be rounded). - - ................................................................ - - TT_GPOS_Apply_String( TT_Instance instance, - TT_Glyph glyph, - TTO_GPOSHeader* gpos, - TT_Bool load_flags, - TTO_GSUB_String* in, - TTO_GPOS_Data** out, - TT_Bool dvi, - TT_Bool r2l ) - - This is the very function which handles glyph positioning - according to the features set up with TT_GPOS_Add_Feature(), - using both GPOS and GDEF data (if defined). A TTO_GSUB_String - object `in' (see the next section for a complete description) - and a TTO_GPOS_Data object array pointer `out' (as described - above) are taken for input and output; after successful - excecution, the GPOS data can been found in `out'. Note that - the `out' array has in->length elements. - - `instance', `glyph', and `load_flags' are directly forwarded - to the glyph function registered with - TTO_GPOS_Register_Glyph_Function(). Note that glyphs are - always loaded as scaled. - - If `dvi' is TRUE, `glyph' is ignored completely. Use this to - get device independent positioning values. - - The parameter `r2l' should be set to TRUE if you process a - right-to-left script like Arabic. It is used for cursive - connections only to compute correct advance values. - - Example: - - /* We assume that the feature `xxxx' has index 5, and */ - /* feature `yyyy' has index 8, applying only to glyphs */ - /* with the property `FINAL_GLYPHS' set (0x1000 is an */ - /* ad-hoc value just for this example). */ - - /* The order of calls to TT_GPOS_Add_Feature() is not */ - /* significant. */ - - #define FINAL_GLYPHS 0x1000 - - TTO_GPOS_DATA* gd = NULL; - - - TT_GPOS_Clear_Features( &gpos ); - TT_GPOS_Add_Feature( &gpos, 8, FINAL_GLYPHS ); - TT_GPOS_Add_Feature( &gpos, 5, ALL_GLYPHS ); - - TT_GSUB_Apply_String( &gsub, &in, &out ); - TT_GPOS_Apply_String( instance, glyph, &gpos, - TTLOAD_HINT_GLYPH, - &out, &gd, 0, 0 ); - - You must initialize the `gd' pointer to NULL; allocation - necessary for the `gd' array will be handled automatically. - If necessary, you can use free() to deallocate `gd'. - - - d. The `GSUB' table (glyph substitions) - - For glyph substitution, a string object of type TTO_GSUB_String - is used. The field `length' holds the length of the string, - `pos' points to the actual position in the glyph string `string' - (for input strings) resp. the position where the substituted - glyphs should be placed at (for output strings). - - Within the `properties' array (which must always have the same - length as `string' if set), you can define properties for glyphs - -- `string[n]' is associated with `properties[n]'. The idea is - that some features apply to specific glyphs only. As an - example, the `fina' feature for Arabic applies only to glyphs - which appear at the end of a word (strictly speaking, this - feature is used only for glyphs which have a `final' property; - such glyphs can occur in the middle of a word also under certain - circumstances which is dependent on Arabic script rules). The - relationship between properties and features can be set up with - the function TT_GSUB_Add_Feature(). If `properties' is set to - NULL, all selected features apply to all glyphs in the given - string object. If `properties' is non-NULL, the elements of the - array are treated as bit fields. A set flag means that the - corresponding feature (as set with the TT_GSUB_Add_Feature() - function) should not be applied to the particular glyph. As a - consequence, a zero value for these 16 bits means that all - features should be applied, and a value of 0xFFFF implies that - no feature at all should be used for the glyph. - - The field `allocated' is for internal use only and must not be - modified. If its value is larger than zero, you should use - free() to deallocate the memory used by `string' (and - `properties' if set) in case you want to destroy a - TTO_GSUB_String object (memory for `string' and `properties' is - allocated automatically e.g. by TT_GSUB_Apply_String() for - output string objects). - - struct TTO_GSUB_String_ - { - TT_ULong length; - TT_ULong pos; - TT_ULong allocated; - TT_UShort* string; - TT_UShort* properties; - }; - - typedef struct TTO_GSUB_String_ TTO_GSUB_String; - - Note that the `string' field must contain glyph indices, not - character codes. - - For initializing an input string object, you should set the - `length', `string', and `properties' fields (the last one only - if necessary) to appropriate values. `pos' has to be set to the - position where the substitution lookups should start (usually - zero). The `allocated' field will be ignored. - - For initializing an output string object, all fields (except - `length' which will be ignored) must be set to zero. If you - want to reuse the object, set `pos' to the position where the - substituted glyphs should be placed at (usually zero), but don't - touch the `allocated', `string', and `properties' fields. - - ................................................................ - - TT_Init_GSUB_Extension( TT_Engine engine ) - - Initializes the GSUB extension to load the glyph substitution - data given in the `GSUB' table. This must be called just - after creation of the engine, and before any face object - allocation. See the files `ftstrtto.c' and `ftdump.c' for - detailed examples. - - ................................................................ - - TT_Load_GSUB_Table( TT_Face face, - TTO_GSUBHeader* gsub, - TTO_GDEFHeader* gdef ) - - Loads the GSUB table into `gsub' for a given face `face'. - This must be done before any queries about or selection of - scripts, languages, and features. Returns - TT_Err_Table_Missing if there is no GSUB table in the font. - - `gdef' should contain a pointer to an associated GDEF table, - either a native one loaded with TT_Load_GDEF_Table() or - emulated with TT_GDEF_Build_ClassDefinition(). If `gdef' is - set to NULL, no GDEF data will be used. - - ................................................................ - - TT_GSUB_Select_Script( TTO_GSUBHeader* gsub, - TT_ULong script_tag, - TT_UShort* script_index ) - - This function sets the script index of a given script tag - `script_tag' in the variable `script_index' for the GSUB table - `gsub'. Returns TTO_Err_Not_Covered if the script tag cannot - be found. The available script tags can be queried with the - function TT_GSUB_Query_Scripts(). - - ................................................................ - - TT_GSUB_Select_Language( TTO_GSUBHeader* gsub, - TT_ULong language_tag, - TT_UShort script_index, - TT_UShort* language_index, - TT_UShort* req_feature_index ) - - This function sets the language index of a given language tag - `language_tag' and script index `script_index' in the variable - `language_index' for the GSUB table `gsub'. Returns - TTO_Err_Not_Covered if the language tag cannot be found. The - available language tags can be queried with the function - TT_GSUB_Query_Languages(). - - Additionally, the index of the required feature for this - language system is returned in `req_feature_index'; it must be - later registered for use with TT_GSUB_Add_Feature(). - - ................................................................ - - TT_GSUB_Select_Feature( TTO_GSUBHeader* gsub, - TT_ULong feature_tag, - TT_UShort script_index, - TT_UShort language_index, - TT_UShort* feature_index ) - - This function sets the feature index of a feature tag - `feature_tag', script index `script_index', and language index - `language_index' in the variable `feature_index' for the GSUB - table `gsub'. Returns TTO_Err_Not_Covered if the feature tag - cannot be found. The available feature tags can be queried - with the function TT_GSUB_Query_Features(). Setting - language_index to 0xFFFF selects the default language system. - - ................................................................ - - TT_GSUB_Query_Scripts( TTO_GSUBHeader* gsub, - TT_ULong** script_tag_list ) - - Returns the available script tags for a given GSUB table - `gsub' in the array `script_tag_list'. The array can be later - deallocated with free(). - - ................................................................ - - TT_GSUB_Query_Languages( TTO_GSUBHeader* gsub, - TT_UShort script_index, - TT_ULong** language_tag_list ) - - Returns the available language tags for a given GSUB table - `gsub' and script index `script_index' in the array - `language_tag_list'. The array can be later deallocated with - free(). - - ................................................................ - - TT_GSUB_Query_Features( TTO_GSUBHeader* gsub, - TT_UShort script_index, - TT_UShort language_index, - TT_ULong** feature_tag_list ) - - Returns the available feature tags for a given GSUB table - `gsub', script index `script_index', and language index - `language_index' in the array `feature_tag_list'. If language - index is set to 0xFFFF, the values for the default language - system are returned. The array can be later deallocated with - free(). - - ................................................................ - - TT_GSUB_Add_Feature( TTO_GSUBHeader* gsub, - TT_UShort feature_index, - TT_UShort property ) - - To prepare a call to TT_GSUB_Apply_String() which should - process a given feature with index `feature_index' and the - property `property', you must use this function. Its task is - to mark the lookup tables used by the feature for further - processing. - - `property' defines a relationship between the input string - object and the specific feature. The client must handle this - variable as a bit field, i.e., up to 16 user properties can be - defined. If `property' is set to ALL_GLYPHS (0xFFFF, the only - predefined value), or if the input string object has no set - bits in the `properties' field, the feature applies to all - glyphs. If bit `x' is set in `property', the feature applies - only to glyphs which have bit `x' not set in glyph's - `properties' field in the input string object. See - TT_GSUB_Apply_String() for an example. - - Returns TT_Err_Invalid_Argument in case of error. - - ................................................................ - - TT_GSUB_Clear_Features( TTO_GSUBHeader* gsub ) - - Clears the list of used features and properties. No lookup - tables will be processed. - - ................................................................ - - TT_GSUB_Register_Alternate_Function( TTO_GSUBHeader* gsub, - TTO_AltFunction altfunc, - void* data ) - - Installs a callback function to handle alternate - substitutions. `data' is a generic pointer to a user-defined - structure which will be completely ignored by the ftxopen - extension. `altfunc' is a function pointer defined as - - typedef TT_UShort - (*TTO_AltFunction)(TT_ULong pos, - TT_UShort glyphID, - TT_UShort num_alternates, - TT_UShort* alternates, - void* data ); - - If TT_GSUB_Apply_String() encounters an alternate lookup while - processing the input string, it will call the function - `altfunc' to find out which alternate glyph it should use. - `pos' gives the position in the string, `glyphID' the glyph ID - of the glyph to be replaced with an alternate glyph, and - `num_alternates' the number of alternate glyphs in the - `alternates' array. A pointer to the user-defined `data' - structure is also available. `altfunc' must return an index - into `alternates'. - - If `altfunc' is NULL or if this function isn't called at all, - TT_GSUB_Apply_String() will always use the first alternate - glyph. - - Please note that theoretically an alternate lookup can happen - during any other lookup! For example, a lookup chain like - - single subst -> alternate subst -> ligature subst - - *is* possible (albeit rather unlikely). Thus be warned that - `pos' does not necessarily reflect the position of a glyph to - be displayed at all, nor does `glyphID' specifies a glyph - which will be in the final output string. - - ................................................................ - - TT_GSUB_Apply_String( TTO_GSUBHeader* gsub, - TTO_GSUB_String* in, - TTO_GSUB_String* out ) - - This is the very function which handles glyph substitution - according to the features set up with TT_GSUB_Add_Feature(), - using both GSUB and GDEF data (if defined). Two - TTO_GSUB_String objects `in' and `out' (as described above) - are taken for input and output; after successful excecution, - the converted glyph string can been found in `out', and - `out.length' gives the actual length of the output string - (counted from the begin of the array). - - Example: - - /* We assume that the feature `xxxx' has index 5, and */ - /* feature `yyyy' has index 8, applying only to glyphs */ - /* with the property `FINAL_GLYPHS' set (0x1000 is an */ - /* ad-hoc value just for this example). */ - - /* The order of calls to TT_GSUB_Add_Feature() is not */ - /* significant. */ - - #define FINAL_GLYPHS 0x1000 - - TT_GSUB_Clear_Features( &gsub ); - TT_GSUB_Add_Feature( &gsub, 8, FINAL_GLYPHS ); - TT_GSUB_Add_Feature( &gsub, 5, ALL_GLYPHS ); - - TT_GSUB_Apply_String( &gsub, &in, &out ); - - You must initialize both `in' and `out' structures; allocation - necessary for the `out' object will be handled automatically. - - In case you don't register a function to handle alternate - substitutions (GSUB lookup 3), always the first alternate - glyph will be used. See TT_GSUB_Register_Alternate_Function() - above for more details. - - - e. The `JSTF' table (justification data) - - Not yet supported. - - - f. auxiliary functions - - TT_GSUB_Add_String( TTO_GSUB_String* in, - TT_UShort num_in, - TTO_GSUB_String* out, - TT_UShort num_out, - TT_UShort* glyph_data, - TT_UShort component, - TT_UShort ligID ) - - This function copies `num_out' elements from `glyph_data' to - `out', advancing the array pointer in the `in' structure by - `num_in' elements, and in `out' by `num_out' elements. If the - string (resp. the properties) array in `out' is empty or too - small, it allocates resp. reallocates the string (and - properties) array. Finally, it sets the `length' field of - `out' equal to `pos' of the `out' structure. - - The properties (if defined) for all replaced glyphs are taken - from the glyph at position `in->pos'. - - If `component' is 0xFFFF, the value `in->component[in->pos]' - will be copied `num_out' times, otherwise `component' itself - will be used to fill `out->component'. - - If `ligID' is 0xFFFF, the value `in->lig_IDs[in->pos]' will be - copied `num_out' times, otherwise `ligID' itself will be used - to fill `out->ligIDs'. - - TT_GSUB_Add_String() is normally used in - TT_GSUB_Apply_String(); you will need it for the special case - to skip some glyphs (i.e., copy glyphs directly from the `in' - to the `out' object), bypassing a possible GSUB substitution. - - Here an example which copies one glyph: - - TT_GSUB_Add_String( in, 1, - out, 1, - &in->string[in->pos], - 0xFFFF, 0xFFFF ); - - -==================================================================== - - - 4. embedded bitmaps (ftxsbit) - ----------------------------- - - TT_Init_SBit_Extension( TT_Engine engine ) - - Initializes the embedded bitmap extension to load the bitmap - glyphs given in the various sbit tables: `EBLC', `bloc', `EBDT', - and `bdat' (`bloc' and `bdat' tables are only in Apple fonts; - the former is equivalent to `EBLC', the latter equivalent to - `EBDT'). This must be called just after creation of the engine, - and before any face object allocation. See description of - TT_Load_Glyph_Bitmap() for an example. - - .................................................................. - - TT_Get_Face_Bitmaps( TT_Face face, - TT_EBLC* eblc_table ) - - Loads the `EBLC' (resp. `bloc') table from a font file into the - `eblc_table' structure. Use this function for testing whether - embedded bitmaps are available or not. - - This function returns TT_Err_Table_Missing if the font contains - no embedded bitmaps. All fields in `eblc_table' will then be - set to 0. - - .................................................................. - - TT_New_SBit_Image( TT_SBit_Image** image ) - - Allocates a new embedded bitmap container, pointed to by - `image'. - - .................................................................. - - void TT_Done_SBit_Image( TT_SBit_Image* image ) - ^^^^ - - Releases the embedded bitmap container `image'. - - .................................................................. - - TT_Get_SBit_Strike( TT_Face face, - TT_Instance instance, - TT_SBit_Strike* strike ) - - Loads a suitable strike (i.e. bitmap sizetable) for the given - instance. Will return TT_Err_Invalid_PPem if there is no strike - for the current x_ppem and y_ppem values. - - .................................................................. - - TT_Load_Glyph_Bitmap( TT_Face face, - TT_Instance instance, - TT_UShort glyph_index, - TT_SBit_Image* bitmap ); - - Loads a glyph bitmap for a given glyph index `glyph_index' (in - face `face' and instance `instance') into `bitmap'. It calls - TT_Get_SBit_Strike() internally for checking the current x_ppem - and y_ppem values. - - This function returns an error if there is no embedded bitmap - for the glyph at the given instance. - - Example (omitting the error handling): - - ... - TT_SBit_Image* bitmap; - - ... - TT_Init_SBit_Extension( engine ); - TT_New_SBit_Image( &bitmap ); - ... - TT_Load_Glyph_Bitmap( face, instance, glyph_index, bitmap ); - - - --------------------------------------------------------------------- --------------------------------------------------------------------- - - - -II. API extensions -================== - -To use API extensions, simply compile the specific extension file -and link it to the library or your program. By default, all -extensions described below are linked to the library. - - - 1. cmap iteration (ftxcmap) - --------------------------- - - TT_Long TT_CharMap_First( TT_CharMap charMap, - ^^^^^^^ TT_UShort* glyph_index ) - - Returns the first valid character code in a given character map - `charMap'. Also returns the corresponding glyph index (in the - parameter `*glyph_index'). In case of failure, -1 is returned, - and `*glyph_index' is undefined. - - .................................................................. - - TT_Long TT_CharMap_Next( TT_CharMap charMap, - ^^^^^^^ TT_ULong last_char, - TT_UShort* glyph_index ) - - Returns the next valid character code in a given character map - `charMap' which follows `last_char'. Also returns the - corresponding glyph index (in the parameter `*glyph_index'). In - case of failure, -1 is returned, and `glyph_index' is undefined. - - .................................................................. - - TT_Long TT_CharMap_Last( TT_CharMap charMap, - ^^^^^^^ TT_UShort* glyph_index ) - - Returns the last valid character code in a given character map - `charMap'. Also returns the corresponding glyph index (in the - parameter `*glyph_index'). In case of failure, -1 is returned, - and `*glyph_index' is undefined. - - -==================================================================== - - - 2. internationalized error messages (ftxerr18) - ---------------------------------------------- - - This extension provides internationalized error strings from the - various error messages. It uses the `gettext' package if - available or returns English/American message strings if not. - Currently, the gettext package is only available on UNIX-like - systems like Linux (and on similarly inspired systems, like DJGPP - or MinGW); this means that for other platforms only English error - strings are returned. - - If the gettext package is found on your system, the configure - script automatically includes it by default. In case you don't - want to use it, or if you encounter some problems compiling this - file, try to disable nls support by configuring FreeType with - `./configure --disable-nls'. - - Please read the gettext info files for more information how to set - up your system for internationalized messages. A short - introduction is also given in the file `i18n.txt'. - - - TT_String* TT_ErrToString18( TT_Error i ) - ^^^^^^^^^^ - - This function returns an error string for a given error code - `i'. The type `TT_String' usually defaults to `char'; see - apiref.txt for more details. - - An example how to use this function (in connection with the - gettext interface) is given in test/ftdump.c or test/fterror.c. - - -==================================================================== - - - 3. access to the `gasp' table (ftxgasp) - --------------------------------------- - - The `gasp' table is currently loaded by the core engine, but the - standard API doesn't give access to it. - - - TT_Get_Face_Gasp_Flags( TT_Face face, - TT_UShort point_size, - TT_Bool* grid_fit, - TT_Bool* smooth_font ) - - This function returns for a given `point_size' the values of the - gasp flags `grid_fit' and `smooth_font'. The returned values - are booleans (where 0 = NO, and 1 = YES). - - Note that this function will return TT_Err_Table_Missing if the - font file doesn't contain any gasp table. - - -==================================================================== - - - 4. fast retrieval of glyph widths and heights (ftxwidth) - -------------------------------------------------------- - - This extension is used to parse the `glyf' table of a TrueType - file in order to extract the bounding box of a given range of - glyphs. - - The bounding box is then used to build font unit widths and - heights that are returned in two parallel arrays. - - This extension is needed by the FreeType/2 OS/2 Font Driver. - - - TT_Get_Face_Widths( TT_Face face, - TT_UShort first_glyph, - TT_UShort last_glyph, - TT_UShort* widths, - TT_UShort* heights ) - - Returns the widths (in array `widths') and heights (in array - `heights') of a glyph range which starts at `first_glyph' and - ends at `last_glyph'. All returned values are returned in font - units. If either `widths' or `heights' is set to a NULL - pointer, no data will be returned for that particular array. - - Note: TT_Get_Face_Widths() does *not* allocate the two arrays! - - - --------------------------------------------------------------------- --------------------------------------------------------------------- - - - -III. Error Messages -=================== - - Most functions return an error code, typed to TT_Error. A return - value of zero indicates no error. The error values are defined in - the various extension header files (e.g. ftxkern.h). In the - following table, the prefix `TT_Err_' is omitted, e.g. `Ok' -> - `TT_Err_Ok'. - - - Error Unprefixed Error - Code Macro Name Description - ------------------------------------------------------------------ - - 0x0A00 Invalid_Kerning_Table_Format - An invalid kerning subtable - format was found in this font. - - 0x0A01 Invalid_Kerning_Table A kerning table contains illegal - glyph indices. - - 0x0B00 Invalid_Post_Table_Format - The post table format specified - in the font is invalid. - - 0x0B01 Invalid_Post_Table The post table contains illegal - entries. - - - Here the TrueType Open error codes. In the following table, the - prefix `TTO_Err_' is omitted. - - - Error Unprefixed Error - Code Macro Name Description - ------------------------------------------------------------------ - 0x1000 Invalid_SubTable_Format The TrueType Open subtable format - specified in the font is invalid. - - 0x1001 Invalid_SubTable A TrueType Open subtable contains - illegal entries. - - 0x1002 Not_Covered The requested feature, glyph, - etc. isn't covered by the actual - function. - - 0x1003 Too_Many_Nested_Contexts - A loop in the contextual lookup - tables (either GSUB or GPOS) has - been detected. - - 0x1004 No_MM_Interpreter The interface to a PostScript - interpreter with Multiple Master - font support is missing. - - 0x1010 Invalid_GSUB_SubTable_Format - The GSUB subtable format - specified in the font is invalid. - - 0x1011 Invalid_GSUB_SubTable The GSUB subtable contains - illegal entries. - - 0x1020 Invalid_GPOS_SubTable_Format - The GPOS subtable format - specified in the font is invalid. - - 0x1021 Invalid_GPOS_SubTable The GPOS subtable contains - illegal entries. - - 0x1030 Invalid_GDEF_SubTable_Format - The GDEF subtable format - specified in the font is invalid. - - 0x1031 Invalid_GDEF_SubTable The GDEF subtable contains - illegal entries. - - ---- end of apirefx.txt --- diff --git a/Build/source/libs/freetype/freetype-1.5/docs/bitmaps.txt b/Build/source/libs/freetype/freetype-1.5/docs/bitmaps.txt deleted file mode 100644 index 79ed2ddbea9..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/docs/bitmaps.txt +++ /dev/null @@ -1,770 +0,0 @@ - - Bitmap and Pixmap generation with FreeType - ------------------------------------------ - - Table of Contents - - - Introduction - - I. The rasterizer component - - II. Bitmap & pixmap descriptors - - III. Rendering an outline - - IV. Anti-aliasing palette and other concerns - - Conclusion - - - -Introduction ------------- - - This document describes the steps that are needed to render a - glyph outline into a bitmap or a pixmap with the FreeType library. - It contains several important details needed to generate bitmaps - correctly in all situations, including if an outline has been - transformed or translated. - - --------------------------------------------------------------------- - - -I. The rasterizer component ---------------------------- - - In FreeType, the component in charge of performing bitmap and - pixmap rendering is called the `rasterizer'. Generation is - performed through a traditional process called `scan-line - conversion', but exhibits certain properties: - - - The rasterizer doesn't allocate bitmaps: - - In fact, it is only able to render an outline into an existing - bitmap or pixmap, which is passed to one of its rendering - functions. This means that the target bitmap/pixmap must be set - up correctly by the caller to achieve desired results. Setting - up bitmap and pixmap descriptors is explained in section II. - - - It is able to render anti-aliased pixmaps directly: - - This is unlike other graphics packages, which render to a - `large' bitmap which is then filtered down. Putting the - anti-aliasing logic within the rasterizer improves performance - and reduces memory usage, as well as lets us use better - algorithms which couldn't work in a `two-phase' process. - - The rasterizer is located in the files `ttraster.h' and - `ttraster.c'. - - The format of outlines isn't important for most developers and - won't be discussed here. However, a few conventions must be - explained regarding the vector outlines: - - - 1. Units - - All point coordinates within an outline are stored in 32-bit - fractional pixel values, using the 26.6 fixed float format - (which uses 26 bits for the integer part, and 6 bits for the - fractional part). The following table gives some examples of - real versus 26.6 coordinates: - - ----------------------------------------- - real real coord 26.6 coord - coord. * 2^6 - ----------------------------------------- - 0 0*64 = 0.0 0 - 2.4 2.4*64 = 153.6 154 - 3 3*64 = 192.0 192 - -1.7 -1.7*64 = -108.8 -109 - - As you can see, conversion is relatively simple -- basically a - multiplication by 64. - - In order to differentiate coordinates expressed in real or 26.6 - systems, we'll use in the following lines brackets (`[' and `]') - for real coordinates, and simple parentheses (`(' and `)') for - fractional coordinates so that - - [1.0,2.5] equals (64,160) - - [0,0] equals (0,0) - - [-2,3] equals (-128,192) - - - 2. Orientation - - The rasterizer uses the traditional convention of an X axis - oriented from left to right, and of a Y axis oriented from - bottom to top. - - ^ Y - | - | - | - -*-----> X - | - - You've probably already used it at school when doing math :-) - - Though the orientation of bitmap lines has the opposite - direction on nearly all graphics systems, the former convention - is the _right_ one when it comes to vector graphics. The reason - is simply that for managing angles and vector cross-products - resp. orientations in complex algorithms, a single convention, - used in math as well as computing alike solves many headaches. - - And due to education, most people expect a 45 degrees angle to - be in the top right quadrant, at coordinate (1,1). - - - 3. Pixels and the grid - - In a vector outline, a point is immaterial and has no size or - width, just like in usual geometry. A `pixel' is an element of - a computer image called a `map' (like a bitmap or a pixmap). - - The FreeType rasterizer follows the convention defined by the - TrueType specification regarding pixel placement: - - - The map can be seen as a `grid' placed in the vector plane. - The grid lines are set on integer real coordinates (i.e., on - multiples of 64 in 26.6 fractional notation). - - Each pixel is one `cell' of the grid, and can be `lit' with - any color. Hence, each pixel has a width and a height of - [1.0] units, (i.e., 64 fixed float units). - - ^ Y - | - | The pixel grid with two - | points (not pixels!) - +-----+-----+-----+-----+-----+ at coordinates [0,0] - | | | | | | and [2,2]. - | | | | | | - | | | | |[2,2]| - +-----+-----+-----+-----@-----+ The pixels are the - | | |11111|22222| | grid's cells, and this - | | |11111|22222| | example show the four - | | |11111|22222| | pixels enclosed within - +-----+-----+-----+-----+-----+ the rectangle delimited - | | |33333|44444| | by these two points. - | | |33333|44444| | - | | |33333|44444| | - --+-----+-----@-----+-----+-----+----> X - | | |[0,0]| | | - | | | | | | Note that the numbering - | | | | | | of pixels isn't - +-----+-----+-----+-----+-----+ meaningful here, it's - | | | | | | only used to distinguish - | | | | | | them. - | | | | | | - +-----+-----+-----+-----+-----+ - | - | - - - The `center' of each pixel is always located on a - `half-integer' coordinate, i.e., at -1.5, -0.5, 0.5, 1.5, etc. - - - When drawing a shape, the rasterizer only `lits' a pixel when - its center is placed _within_ the shape. This is important - because an outline point may not be necessarily be on a grid - line. - - - When a pixel center falls on the shape, the pixel is lit too. - - For example, the following graphics show the `lit' pixels - corresponding to the rectangle enclosed by the points: - - [-0.2, 0] and [2.4, 2.7] - - - ^ Y As one can see, the - | newest pixels `1' - | and `2' are now lit, - | because its centers - +-----+-----+-----+-----+--[2.4,2.7] are located at - | | |11111|22222| @ | coordinates - | . | . |11.11|22.22| . | [0.5,2.5] and - | | |11111|22222| | [1.5,2.5], - +-----+-----+-----+-----+-----+ respectively. - | | |33333|44444| | - | . | . |33.33|44.44| . | Note that pixel - | | |33333|44444| | centers are - +-----+-----+-----+-----+-----+ represented with a - | | |55555|66666| | dot in the graphics. - | . | . |55.55|66.66| . | - | | |55555|66666| | - --+-----+----@+-----+-----+-----+----> X - | | [-0.2,0] | | | - | . | . | . | . | . | - | | | | | | Note also that pixel - +-----+-----+-----+-----+-----+ numbering is still - | | | | | | meaningless there. - | . | . | . | . | . | - | | | | | | - +-----+-----+-----+-----+-----+ - | - | - - - 4. Drop-out control - - Sometimes, a stroke is too thin to even contain a single pixel - center. This results in `lost continuity' in the resulting - bitmap, i.e., some unpleasant `holes' or `breaks' in the - rendered shape, which are called a `drop-out'. - - Because a glyph representation uses curves (Bezier arcs), this - case is not easily controllable during the `hinting' of glyph - outlines by the font driver, which means that the rasterizer - must be able to correct these `artefacts'. - - This processing is called `drop-out control', and can be - performed in several modes, defined by the TrueType - specification, and which details do not belong to this document. - However, the important idea is that, in _some_ cases, a pixel - may be lit even if its center isn't part of the shape. - - This case is relatively rare, but is mentioned because it has - consequences of the rendering of maps. More precisely, in the - way an outline's extent is computed (see below). - - --------------------------------------------------------------------- - - -II. Bitmap and pixmap descriptors ---------------------------------- - - The Freetype rasterizer only supports bitmaps and 8-bit pixmaps. - In order to render an outline, a map descriptor must be sent to - its rendering functions, along with a vectorial outline. - - - 1. Bitmap properties - - This section explains how to set up a bitmap descriptor, and how - vector coordinates in the outline plane relate to pixel - positions within the bitmap buffer. - - A bitmap's `raw data' is made of a simple bit buffer where each - bit corresponds to a monochrome pixel. For the sake of - simplicity, the FreeType rasterizer uses the following - conventions to store bitmaps in a buffer: - - - The value 0 is used for `unlit' pixels, usually the - `background' when rendering text. Hence 1 is used for `lit'. - - - Lines are padded to 8 bits, i.e. bytes. A bitmap row thus - takes an integral number of bytes in its buffer. No further - alignment is required. - - (Some systems compress bitmaps by _not_ padding bit rows to - byte boundaries. It is not possible to render into such a - bitmap buffer with FreeType.) - - - In a bitmap buffer byte, the left-most pixel is represented by - the most significant bit (i.e., 0x80). - - The opposite convention is not supported by the FreeType - rasterizer, though it may possibly be implemented too if this - ever comes useful (ask the developers -- for now, nobody did). - - - Increasing offsets within a row correspond to right-most - positions in the bitmap (i.e., byte 1 contains the - 8 bits/pixels that are located on the right of the - 8 bits/pixels of byte 0). - - - A bitmap can be oriented in two ways: - - o If increasing row addresses within the buffer correspond to - lower vertical lines, the bitmap is said to go `down'. This - is, for example, the case of nearly all video RAMs. - - o If increasing row addresses within the buffer correspond to - higher vertical lines, the bitmap is said to go `up'. This - is the case, for example, for OS/2 bitmaps. - - The `direction' of a bitmap is called `flow' to avoid any - confusion. In both cases, the rasterizer ALWAYS matches the - vector coordinate (0,0) with the lower-left corner of the - *lower-left* pixel in the bitmap. - - The following graphics illustrate these ideas: - - - - Y ^ - | A `down-flow' bitmap. - +--+--+--+--+--+--+--+--+ On the left is each - | | | | | | | | | row's number and its - 0: 0 | | | | | | | | | offset in the bitmap - +--+--+--+--+--+--+--+--+ buffer (where `w' is - | | | | | | | | | the width, in bytes, - 1: w | | | | | | | | | of a single bitmap - +--+--+--+--+--+--+--+--+ row). Note that the - | | | | | | | | | origin is located at - 2: 2*w | | | | | | | | | the lower left, i.e., - +--+--+--+--+--+--+--+--+ near the leftmost bit - | | | | | | | | | of the last bitmap - 3: 3*w | | | | | | | | | row. - -@--+--+--+--+--+--+--+-----> X - |[0,0] - - - - Y ^ - | An `up-flow' bitmap. - +--+--+--+--+--+--+--+--+ On the left is each - | | | | | | | | | row's number and its - 3: 3*w | | | | | | | | | offset in the bitmap - +--+--+--+--+--+--+--+--+ buffer (where `w' is - | | | | | | | | | the width, in bytes, - 2: 2*w | | | | | | | | | of a single bitmap - +--+--+--+--+--+--+--+--+ row). Note that the - | | | | | | | | | origin is located at - 1: w | | | | | | | | | the lower left, i.e., - +--+--+--+--+--+--+--+--+ near the first bit in - | | | | | | | | | the buffer. - 0: 0 | | | | | | | | | The first buffer bit - -@--+--+--+--+--+--+--+-----> X corresponds to the - |[0,0] rectangle [0,0]-[1,1] - in the vector plane. - - - 2. Bitmap descriptors - - Now that you understand all these details, a bitmap can be - described to the rasterizer engine through a map, which - structure must be set up by client application: - - struct TT_Raster_Map_ - { - int rows; /* number of rows */ - int cols; /* number of columns (bytes) per row */ - int width; /* number of pixels per line */ - int flow; /* bitmap orientation */ - - void* bitmap; /* bit/pixmap buffer */ - long size; /* bit/pixmap size in bytes */ - }; - typedef struct TT_Raster_Map_ TT_Raster_Map; - - where the fields stand for: - - rows: - The number of rows within the bitmap buffer. - - cols: - The number of columns, i.e. bytes per row within the - buffer. It corresponds to the `w' value used in the above - graphics. - - width: - The number of pixels (i.e. bits) per row in the buffer. The - rasterizer always clips its rendering to the bit width - specified in this field, even if the `cols' fields - corresponds to a larger width. - - flow: - The bitmap flow. Use the constants TT_Flow_Up and - TT_Flow_Down exclusively for this field. - - bitmap: - A typeless pointer to the bit buffer. - - size: - The total size of the bit buffer in bytes. This is not used - directly by the rasterizer, so applications can use it. - - Note that the `cols' field should always be bigger than the - value of `width' multiplied by 8. The rasterizer clips the - generated bitmap to the `width' first bits in a row. - - Note also that it is of course allowed to create, for example, a - Windows or X11 bitmap through a normal system-specific API call, - using a TT_Raster_Map that describes it to the rasterizer. It - is thus possible to draw directly into such OS specific - structures. - - - IMPORTANT: ***************************************************** - - When rendering a bitmap, the rasterizer always OR-es the shape - on the target bitmap. It is thus possible to draw several - shapes into a single surface which successive calls to the - render functions. - - **************************************************************** - - - 3. Pixmap properties - - The rasterizer only supports 8-bit pixmaps, where one pixel is - represented by a single byte. They must conform to the - following rules: - - - A 5-entries palette is used to generate an outline's pixmap in - the buffer. They correspond to: - - palette[0] -> background - palette[1] -> `light' - palette[2] -> `medium' - palette[3] -> `dark' - palette[4] -> foreground - - where the terms `light', `medium', and `dark' correspond to - intermediate values between the first (background) and last - (foreground) entry. - - The upcoming FreeType 2.0 will feature an additional - anti-aliasing logic with a 17-entries palette. - - - Lines are padded to 32 bits, i.e. 4 bytes. A pixmap row thus - takes a multiple of 4 bytes in its buffer. - - - Increasing offsets within a row correspond to right-most - positions in the bitmap (i.e., byte/pixel 1 is to the right of - byte/pixel 0). - - - A pixmap can be oriented in two ways, following the same rules - as a bitmap regarding its flow. - - - IMPORTANT: ***************************************************** - - In order to improve performance when rendering large outlines - with anti-aliasing, the rasterizer draws pixels in runs of - 4-bytes ONLY when at least one of their `colour' isn't 0 - (background). - - This means that you should ALWAYS CLEAR the pixmap buffer before - calling the rendering function, you may otherwise experience - ugly artefacts, which are possibly left from a previous - rendering! - - In general, it is not possible to do colour compositing with the - FreeType rasterizer (compositing is if you want to superpose a - transparent coloured layer on top of an image). This is mainly - due to the fact that: - - - There are too many pixel formats to support. - - - There is not a single portable way to do it anyway. - - - It really is a graphics processing question, not one that - should be solved by a text rendering engine. - - **************************************************************** - - - 4. Pixmap descriptors - - Pixmaps use the same descriptor structure as bitmaps, with a few - differences in interpretation: - - - The `cols' field is used to indicate the number of _bytes_ in - a pixmap row. It must thus be a multiple of 4! - - - The rasterizer clips the outline to the first `width' - pixels/width within each buffer row. - - As usual, it should be possible to use a system-specific pixmap - and render directly into it, as long as you set up a descriptor - for it. - - -------------------------------------------------------------------------- - - -III. Rendering an outline -------------------------- - - Now that you understand how the rasterizer sees the target bitmaps - and pixmaps it renders to, this section will explain how the - rendering eventually happen. - - - 1. Outline coordinates and extents - - Let's first consider the case where we're rendering text - directly into a huge single bitmap. To do that, we simply - translate each glyph outline before calling the rasterizer. - Here the roadmap: - - - Vectorial coordinates [0,0] are mapped to the lower left - `corner' (in the grid) of the lower left pixel in the bitmap - (whatever its flow is). - - - When the glyph loader returns an outline, the latter is placed - so that the coordinate [0,0] corresponds to the current cursor - position. - - This means that: - - - If we use our own cursor (cx,cy) within the bitmap during text - rendering, we must translate the outline to its position - before rendering it, e.g. with - - TT_Translate_Outline( outline, cx, cy ) - - (and the cursor position must be incremented after rendering - each glyph). - - - Before translation (i.e., when it is returned by the glyph - loader), the glyph outline doesn't necessarily lie on any of - the coordinate axes, nor is it limited to the first quadrant - (i.e., x>0 and y>0 is not true in general). - - Its extent can be computed with the function - TT_Get_Outline_BBox(), which returns the minimum and maximum - values of its X and Y point coordinates (in 26.6 format, of - course). - - - 2. Computing an outline's dimensions in pixels - - In many cases, however, it is much better to render individual - glyph bitmaps, then cache them with appropriate metrics in order - to render text much more quickly at a given point size. - - To be able to render the smallest possible bitmap, the exact - outline's extent dimensions in pixel are required. Again a - roadmap: - - - Get the outline's bounding box in vector coordinates: - - Simply call the TT_Get_Outline_BBox() function which will - return the values of xMin, yMin, xMax, and yMax in vector - (i.e. fractional) coordinates. - - - Grid-fit the bounding box: - - Because of the way pixels are lit in the bitmaps relative to - the position of their `centers' within the shape (see - section I), it is necessary to align the values of xMin, xMax, - yMin, and yMax to the pixel grid in order to compute the width - and height of the resulting bitmap. This can be done with: - - xMin = FLOOR ( xMin ); with FLOOR(x) == (x & -64) - xMax = CEILING( xMax ); CEILING(x) == ((x+63) & -64) - yMin = FLOOR ( yMin ); - yMax = CEILING( yMax ); - - The extents in pixels can then be simply computed as: - - pixel_width = (xMax - xMin) / 64; - pixel_height = (yMax - yMin) / 64; - - Note that because of drop-out control, and because the - bounding box computed currently includes all Bezier control - points from the outline, the bitmap may be slightly larger - than necessary in some cases. - - Some improvements are planned for FreeType 2.0; for now, you - should consider that finding the `exact' bitmap bounding box - requires to scan all `borders' to detect null columns or rows. - However, the values are right in most cases. - - NOTE: It seems that in some *rare* cases, which relate to - weird drop-out control situations, the above dimensions - are not enough to store all bits from the outline (there - are one or more bits `cut' on the edge). - - This being hard to study (it only appears in very poorly - hinted fonts), we leave this problem to FreeType 2.0. - - - Create/setup a bitmap with the computed dimensions. DON'T - FORGET TO CLEAR ITS BUFFER TOO! - - - Translate the outline to stick within the bitmap space. This - is done easily by translating it by (-xMin,-yMin), where you - should ALWAYS USE THE GRID-FITTED VALUES computed above for - xMin and yMin: - - TT_Translate_Outline( outline, -xMin, -yMin ); - - - IMPORTANT: *************************************************** - - For technical reasons, you should never translate a HINTED - outline by a non-integer vector (i.e., a vector which - coordinates aren't multiples of 64)! This would CERTAINLY - completely RUIN the delicate HINTING of the glyph, and will - result probably in pure GARBAGE at small point sizes. - - Of course, if you're not interested in hinting, like when - displaying rotated text, you can ignore this rule and - translate to any position freely. - - ************************************************************** - - - Render the bitmap (or pixmap). - - DON'T FORGET TO STORE THE GRID-FITTED xMin and yMin WITH THE - BITMAP! This will allow you later to place it correctly - relative to your cursor position. - - - Here's some example pseudo code: - - { - ... load the glyph ... - - TT_Outline outline; - TT_BBox bbox; - TT_Raster_Map bitmap; - - - /* get the outline */ - TT_Get_Glyph_Outline( glyph, &outline ); - - /* compute its extent */ - TT_Get_Outline_BBox( &outline, &bbox ); - - /* Grid-fit it */ - bbox.xMin &= -64; - bbox.xMax = ( bbox.xMax + 63 ) & -64; - bbox.yMin &= -64; - bbox.yMax = ( bbox.yMax + 63 ) & -64; - - /* compute pixel dimensions */ - width = (bbox.xMax - bbox.xMin) / 64; - height = (bbox.yMax - bbox.yMin) / 64; - - /* set up bitmap */ - bitmap.rows = height; - bitmap.width = width; - bitmap.cols = (width + 7) / 8; - bitmap.size = bitmap.rows * bitmap.cols; - bitmap.bitmap = malloc( bitmap.size ); - if ( !bitmap.bitmap ) - return error_memory... - - /* clear the bitmap buffer! */ - memset( bitmap.bitmap, 0, bitmap.size ); - - /* translate outline */ - TT_Translate_Outline( &outline, -bbox.xMin, -bbox.yMin ); - - /* render it within the bitmap */ - TT_Get_Outline_Bitmap( engine, &outline, &bitmap ); - - /* We're done; don't forget to save bbox.xMin and */ - /* bbox.yMin to adjust the bitmap position when */ - /* rendering text with it */ - - ... - } - - - 3. The case of transformed/rotated glyphs: - - You may want to apply a transformation other than a translation - to your glyph outlines before rendering them. For example, a - simple slant to synthesize italics, or a slight rotation. - - In all cases, it is possible to render individual glyph bitmaps. - Just make sure to follow the same process AFTER you have - transformed you outline! - - DON'T FORGET THAT YOU NEED TO RE-COMPUTE THE BBOX TO GET THE - CORRECT PIXEL DIMENSIONS AFTER A TRANSFORMATION. - - --------------------------------------------------------------------- - - -IV. Anti-aliasing palette and other concerns - - When rendering pixmaps, using the TT_Get_Outline_Pixmap() or - TT_Get_Glyph_Pixmap() functions, the rasterizer uses a 5-entries - palette of 8-bit deep `colors'. - - By default, this palette is set to ( 0, 1, 2, 3, 4 ), but one can - change it to suit your needs with TT_Set_Raster_Palette(). - - While in bitmap mode, it simply OR-es the pixel values to the - target bitmap that has been passed to TT_Get_Outline_Bitmap(). - - For pixmaps it simply writes directly the palette entries - corresponding to the `color' of the `lit' pixels it has computed. - This means that it is NOT POSSIBLE to render text in a single - pixmap with multiple calls to TT_Get_Outline_Pixmaps() within the - same target! - - The reason is that `gray' pixels of two distinct outlines are not - `added' when they overlap (the operation called 'compositing'), as - it could be expected by applications. - - The following graphic shows this effect when rendering two - overlapping anti-aliased shapes: - - - *** *** - .** .** - ** **. **. ** - .*. .*.. .*..*. - .*. + .*. = ---> ..*. - .*. ** | .*. ** - ** | ** - **. | **. - *** | *** - | - - missing black pixel after second - rendering... - - - There is no simple way to perform a composition within the - rasterizer. This would not be portable; moreover, it would be - extremely slow if it is too general. This operation is thus left - to client applications which can use their own system-specific API - for transparently blitting the glyph pixmaps into a surface to - form text. - - NOTE: - - If your system doesn't support transparent/alpha blits, you can - still have a look at the source file `freetype/test/display.c'. - It uses a large pixmap, with a special palette trick to render all - text quickly, then convert everything to `real' colors for - display. - - --------------------------------------------------------------------- - - -Conclusion ----------- - - We've seen how the FreeType rasterizer sees bitmaps through - descriptors, as well as the mapping which exists between the - vector coordinate space and the pixel position space. - - You should now be able to render outlines into bitmaps and pixmaps - while applying transformations like translation, slanting, or - rotation. Don't forget a few rules, however: - - - Always clear the bitmap/pixmap buffer before rendering (unless - you want to render several glyphs in a single _bitmap_; it won't - work on a pixmap). - - - A pixmap `cols' field, i.e. the size in bytes of each rows, must - be a multiple of 4. - - - Never translate a hinted outline by a non-integer vector if you - want to preserve the hints (i.e., the vector's coordinates must - be multiples of 64). - - - Finally, don't expect the rasterizer to composite transparent - `grays' for you in a single target pixmap through multiple - calls. - - ---- end of bitmaps.txt --- diff --git a/Build/source/libs/freetype/freetype-1.5/docs/changes.txt b/Build/source/libs/freetype/freetype-1.5/docs/changes.txt deleted file mode 100644 index e76cf6fce66..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/docs/changes.txt +++ /dev/null @@ -1,1031 +0,0 @@ -Changes between FreeType version 1.3.1 and version 1.5 -====================================================== -** -** WARNING: Because of the Apple patents problem, the TrueType -** bytecode interpreter is now turned *OFF* by default. Edit -** ft_conf.h if you want to (and can) use grid-fitting. -** - -Note: Version 1.4 has never been released officially. - - -Documentation -------------- - - apiref.txt has been again revised. - - - apirefx.txt has been extended to document the GPOS interface. - - - TODO has been dropped (since we consider there will be no - further development). - - -API functions -------------- - - TT_Char_Index() now uses TT_ULong for character codes. It now - supports cmap tables in format 8 and 12. - - - New error code (TT_Err_Too_Many_FDefs) when a font defines too - many functions. - - -Architectures -------------- - - Support files for BeOS have been contributed by Chris Herborth - <cherborth@vdelta.com>. - - - The EXPORT_DEF/EXPORT_FUNC/etc. stuff has been replaced with a - more elaborate scheme (coming from the Freetype 2 experience) - that allows more complex cases of interface to be handled. See - ttconfig.h for details. - - - Cleaning up of the ft_conf.h files to remove obsolete stuff. - - -Extensions ----------- -** -** Full support for the GPOS table has been implemented. As usual, -** the documentation is available in apirefx.txt, and ftstrtto -** demonstrates how to use it. -** - - TT_GSUB_Add_String() has two additional parameters needed for - GPOS support. - - - TT_CharMap_Next() of the ftxcmap extension now uses `TT_ULong' - as the second parameter. - - - A long-lived bug in ftxpost.c (with 2.0 format, when the - additional names were out of order, the names were incorrectly - assigned) has been extermined. Thanks to Jean-Christophe Dubacq - <Jean-Christophe.Dubacq@lri.fr>. - - -Test programs -------------- - - ftstrtto now uses `S' instead of `G' to toggle activation of - GSUB. `P' will toggle GPOS activation (this is new). UTF-8 - values greater than U+FFFF are supported. - - - ftdump will dump some information about the GPOS table also. - - - ftstrpnm now supports coloured text. - - -Miscellaneous -------------- -** -** You can now at your option use either the FreeType license -** (usable in commercial products) or the GPL license (usable with -** other free software, but this requires any further development -** to be released to the public). -** - - The library has been updated to use libtool 1.3.4. - - - Fixed a mutex bug in the ttraster module. - - - The FreeType license has been reworded to improve legibility - (thanks to Ruthanna Wilson <ruthanna@us.ibm.com>). - - - Fixed a property bug in the arabic module. - - - Various small fixes to reduce compiler warnings. - - - Fixed the thread-safe build. The following files didn't compile - properly when TT_CONFIG_OPTION_THREAD_SAFE is defined: - - lib/arch/unix/ttmmap.c - lib/extend/ftxsbit.c - lib/extend/ftxgpos.c - lib/extend/ftxgdef.c - lib/extend/ftxgsub.c - - - More tests to prevent division by zero. - - - <ttnameid.h> has been updated. - - - OS/2 table version 2 is now recognized. - - -Contributed programs --------------------- - - ttf2bdf: - Changed bitmap generation for outline glyphs to Flow_Down. - - - Added support for strikes (bitmaps). - - - Added missing parameter documentation. - - - Minor documentation changes and compatibility with latest - Freetype. - - - ttf2pk: - Added support for multiple SFD files. - - New option `-L' to provide a ligature mapping file (patch from - CHO Jin-Hwan <chofchof@kias.re.kr>). - - New option `-w' to emit PostScript encoding vectors for - subfont files to be used with pdfLaTeX (patch from CHO - Jin-Hwan <chofchof@kias.re.kr>). - - Add support for a configuration file (ttf2pk.cfg) which can - read more than a single map file, similar to pdfTeX (patch - from CHO Jin-Hwan <chofchof@kias.re.kr>). - - Support for character codes greater than 0xFFFF (patch from - Dominique Unruh <dominique@unruh.de>). - - ttf2tfm no longer assumes that the x-height is always 400 PS - units. - - -Pascal source code ------------------- -** -** The Pascal source files have been completely removed from the -** FreeType distribution. It is now available as an extra package; -** for more information please visit http://www.freetype.org. -** - - -Changes between FreeType version 1.3 and version 1.3.1 -====================================================== - - Bug fixes. - - - -Changes between FreeType version 1.2 and version 1.3 -==================================================== - - -Documentation -------------- - - Improved installation instructions. - - - Complete revision of almost all documentation files. - -** -** Added the file apirefx.txt to document all extensions to the -** FreeType library. Consequently, errstr.txt has been removed. -** - - Added the file optimize.txt, explaining how to improve FreeType - on a given architecture. - -** -** Documentation about possible patent restrictions added. -** - - Added howto/mac.txt (stating basically that the FreeType team - can't support the Macintosh platform because of lack of - knowledge). - - - Added howto/msdos.txt, documenting compilation for various 16bit - and 32bit compilers. - - -API functions -------------- - - TT_Load_Kerning_Table() now returns TT_Err_Invalid_Argument - instead of TT_Err_Bad_Argument (which is used for an internal - error only) for an invalid argument. The same holds for - TT_Get_Face_Widths() and TT_Get_Glyph_Big_Metrics(). - - - If the glyf table is missing, the new error code - TT_Err_Glyf_Table_Missing is returned instead of - TT_Err_Table_Missing. This affects TT_Get_Face_Widths(), - TT_Load_Glyph(), and TT_Open_Face(). - -** -** New function TT_FreeType_Version() to get the major and minor -** version dynamically. -** - - TT_Load_Glyph() has now two additional flags. TTLOAD_PEDANTIC - will force pedantic handling of the glyph instructions, and - TTLOAD_IGNORE_GLOBAL_ADVANCE_WIDTH is needed for some fonts - which have correct advance width values for the glyphs but an - incorrect global advance width value. - - - TT_Get_Glyph_Big_Metrics() now returns correct vertical bearing - values (both linear and pixel values). - - - New error code TT_Err_Glyf_Table_Missing (0x89) used to indicate - a missing `glyf' table. - - - The following macros have been shortened to stay within the - limit of 32 characters (the longer macro names are still - available if HAVE_LIMITS_ON_IDENTS is not defined). - - TT_UCR_ARABIC_PRESENTATION_FORMS_A -> - TT_UCR_ARABIC_PRESENTATIONS_A - TT_UCR_ARABIC_PRESENTATION_FORMS_B -> - TT_UCR_ARABIC_PRESENTATIONS_B - - TT_UCR_COMBINING_DIACRITICAL_MARKS -> - TT_UCR_COMBINING_DIACRITICS - TT_UCR_COMBINING_DIACRITICAL_MARKS_SYMB -> - TT_UCR_COMBINING_DIACRITICS_SYMB - - - freetype.h: - - TT_Bool is now typedef'ed as `typedef int'. - - New typedefs: TT_Int and TT_UInt. - - Declarations of TT_Matrix_Multiply() and TT_Matrix_Invert() - have been removed since these functions were never - implemented. - - -Architectures -------------- - - Added `ansi' directory to the supported architectures -- any - ANSI C compiler should compile FreeType with these files. - - - Added `debugger' directory to the architectures. Use this to - build a special version of FreeType for bytecode debugging - (tested with OS/2 and Unix). - - - Added more files to the `mac' architecture directory to make - basic support complete. - - - Support for VMS added (to compile the library only). - Contributed by Jouk Jansen <joukj@hrem.stm.tudelft.nl>. - - - Added `win16' architecture directory for older Windows versions. - A graphics driver (gw_win16.c) for the example programs is - available also. - -** -** Antoine Leca contributed support for many MS-DOS and Windows -** compilers (including library fixes to make it 16bit compliant): -** - Borland C++ for MS-DOS (tested with v. 3.1, 4.02, 5.0), - Microsoft C for MS-DOS, - Turbo C (versions 1.5 and 2.0 -- version 1.0 is too old), - Borland C++ 4.0 and 5.0 for Windows (both 16bit and 32bit - versions), - gcc under Win32 (Cygwin32 or MinGW32), - Microsoft Visual C++ 2.x, 4.x, 5.0, and 6.0 for Windows - - - Support for the gettext package with DJGPP compiler has been - added. - - - Since many older compilers on both MS-DOS and Windows platforms - have problems to build dependency files automatically, scripts - for gcc under Unix have been added to do this. Similarly, a - script to produce a DLL definition file is now included in the - distribution. - - - Moved old win32 support to contrib/win32, replacing all CR/LF - with LF, and using only lowercase file names for consistency. - Additionally, some missing files in the FreeType 1.2 - distribution have been added. Antoine Leca has written a new, - light-weight graphics driver (gw_win32.c) which fits better into - the current scheme. - - - Small additions have been made to the Amiga graphics driver. - - - The use of the ARM macro (intended for this architecture) has - been completely removed due to lack of support. - - - Checks for endianness have been removed completely since - FreeType isn't dependent on it. - - -Global compilation macros -------------------------- - - The TT_HUGE_PTR macro has been added to support fonts with more - than 16000 characters or so with 16bit MS-DOS compilers. - Consequently, the files hugefile.c and hugemem.c have been added - which provide special versions for these compilers. - - - HAVE_LIMITS_ON_IDENTS has been introduced to overcome - restrictions with old compilers which can't digest identifiers - longer than 32 characters. - -** -** Added option TT_CONFIG_OPTION_NO_INTERPRETER to desactivate the -** bytecode interpreter completely. This option is off by default. -** - - Added options TT_CONFIG_OPTION_STATIC_RASTER and - TT_CONFIG_OPTION_STATIC_INTERPRETER to build static versions of - the respective components. Off by default. (It was formerly - called TT_STATIC_RASTER.) - - Better debugging support (see ttconfig.h for details): - DEBUG_LEVEL_TRACE, DEBUG_LEVEL_ERROR, DEBUG_INTERPRETER, - DEBUG_MEMORY, DEBUG_FILE. - - Added TT_MAX_EXTENSIONS to define the maximal number of - extensions (currently set to 8 -- this macro was previously in - ttextend.c). - - -Extensions ----------- -** -** Full support for TrueType Open resp. OpenType GSUB tables has -** been implemented. It uses a GDEF table if available; otherwise, -** a method to construct an artificial GDEF table has been added -** (note that GDEF parts not related to GSUB are loaded but not -** further handled). An example how to use it can be found in the -** new test program ftstrtto. -** - - Rudimentary GPOS support -- currently, you can load the GPOS - subtables but nothing more. - -** -** Documentation for all extensions can be found in the file -** apirefx.txt. -** - - Fixed a bug in TT_Load_PS_Names() which returned a local, thus - invalid pointer. - -** -** Support for embedded bitmaps has been added (thanks to -** YAMANO'UCHI Hidetoshi <mer@interlink.or.jp> who has contributed -** a lot of the code). It can handle `bloc', `bdat', `EBLC', and -** `EBDT' tables. [TrueType embedded bitmaps are also called -** `sbits' (for `scaler bitmaps').] -** - -Test programs -------------- -** -** A new test program called ftstrtto has been added to test -** TrueType Open features. Almost all available FreeType -** extensions are used in this program -- it displays a UTF 8 -** encoded string on screen, allowing to toggle kerning, embedded -** bitmaps, GSUB support, and hinting. Additionally, it has a -** special module to handle the Arabic script properly (in -** arabic.c), i.e., it treats initial, medial, final, and isolated -** glyphs correctly. -** - - The new module `blitter.c' provides the blitting function - Blit_Bitmap() for bitmaps of various depth. - - - The debugging program `fdebug' has been rewritten to provide a - better user interface. - - - ftdump has been extended to show information about embedded - bitmaps and GSUB data. It will now also show the PostScript - name of the font. - - - The new test program ftmetric can dump metrics and glyphs -- it - uses the gettext package for i18n support. - - - Another new test program is ftsbit to dump embedded bitmaps - contained in a font. - - - A small bug has been fixed in ftstring to compute the right - bounding box of the string. - - - ftview has been extended to display embedded bitmaps also - (switch `-B'). - - - The maximal point size of glyphs in ftview has been increased to - 5000pt -- this has shown some clipping bugs in the engine which - have been fixed meanwhile. As a demonstration, it also - activates tracing of the raster and gload component if - DEBUG_LEVEL_TRACE (see above) is defined. - - -Miscellaneous -------------- - - The library has been updated to use autoconf 2.13 and libtool - 1.3.3 throughout. - -** -** FreeType will now install its header files in -** <prefix>/freetype/... since the number of files has grown again. -** - - Added a lot of EXPORT_FUNC/EXPORT_DEF macros to functions for - correct exporting in DLLs. - -** -** FreeType can now successfully load Mac fonts which don't have an -** `OS/2' table. -** - - Fixed a bug in handling composite glyphs where the composite - elements use attached points. - - - Better debugging support for instructions. - - - Various workarounds have been implemented to support slightly - broken fonts (or rather, fonts not following exactly the - TrueType specifications). - - -Contributed programs --------------------- - - ttf2bdf: -** -** Swapped all the columns in the mapping files. -** - - Changed the mapping table loader to index on the second column - instead of the first. - - - Changed the includes to deal with compilation on Windows. - - - Added some new mapping tables. - - - Fixed an incorrect parameter for Traditional C compilers. - - - Added generation of the _XFREE86_GLYPH_RANGES properties. - - - Change all CRLF's, CR's, or LF's in copyright strings to - double spaces. - - - Changed it so gcc 2.8.1 likes the return type of main() again. - - - Changed Makefile.in a bit to make installation more - consistent. - - - Changed the lower limit for the vertical and horizontal - resolutions to be 10dpi instead of 50dpi. - - - ttf2pfb: - - Has now rudimentary support for mapping tables (switch `-m') - and better PostScript name support for ordinary Type 1 fonts - -- nevertheless, it is far from finished, and there are some - plans to merge it with ttf2pt1. - - configure script added. - - Option `-k' added to keep output file in case of error. - - `-v' is now really verbose. - - ttf2pk: -** -** Support for MiKTeX's file searching mechanism added (ttf2pk -** and ttf2tfm are now part of the MiKTeX). -** -** -** Support for rotated glyphs added (only for subfonts; switches -** `-x' and `-y' to activate rotation resp. controlling the y -** offset). If a GSUB table with the `vert' feature is available -** in the font, vertical glyph presentation forms are used. -** - - Added warning message to the configure script in case the - kpathsea library isn't used. - - - Fixed an omission in Bg5.sfd. - -** -** Added UBg5plus.sfd for mapping Unicode to Bg5+ encoding. -** Similar SFD files now available: UBg5.sfd, UGB.sfd, UGBK.sfd, -** UJIS.sfd, UKS.sfd. -** - - Added documentation for dvidrv.btm. - - - Will now compile with kpathsea version 3.3 or newer also. - - - Subfont ligature support added as needed in the HLaTeX package - for Korean (switch `-l'). - -** -** Since ttf2pk support has been added to teTeX version 1.0 and -** newer, no patch are necessary. -** - - Fixed a string initialization bug in buildtfm() (file - tfmaux.c). - - - Added more documentation about file searching and a full - example how to use ttf2tfm. - - - Fixed a small bug in ttf2tfm.c which printed `(null)' instead - of nothing for the ttfonts.map entry if the font name prefix - string was empty. - - - ttf2tfm will now use the first type 0 kerning table only - (instead of the first kerning table only). - - - Both ttf2pk and ttf2tfm will now apply stretching and slanting - directly to the outline. This usually yields smaller bounding - boxes. - - - ttf2tfm will now output a comment string to the VPL file to - illustrate the meaning of the `HEADER' lines. - - - ttfbanner: - - Added Makefile for emx+gcc compiler. - - - Added autoconf support. - - - Fixed a lot of compilation warnings. - - -Pascal source code ------------------- - - The Pascal source code has been seriously updated since 1.2. - Here are the most important changes. - -** -** A. Support for charmaps and the name table -** -** -** The Charmap functions were not correctly implemented before -** 1.3. They are now available in the Pascal API. -** -** -** Similarly, the `name' table was not loaded, and the -** TT_Get_Name function wasn't implemented before 1.3. It is now -** done. -** -** -** The Pascal engine is now feature-complete, except that it -** provides no extensions like the C source code. -** - - B. Improvements in the glyph loader and the interpreter - - - Several changes were made in order to be able to load more - broken fonts, as well as old Apple fonts which happened to use - some very rarely-used aspects of the specification. - - - Note that the Pascal bytecode interpreter, contrary to the C - version, is not able to silently accept broken glyphs yet, or - even use the flag TTLOAD_PEDANTIC. Implementing this in - Pascal would require some serious work (unlike to C, where - this feature was introduced easily with the use of a few - macros to minimize source changes). So TT_Load_Glyph might - return an error with the Pascal engine while the C one accept - the same request successfully. - - - C. Ports to Delphi and Free Pascal - - This release has been compiled on the following compilers: - - - Free Pascal 0.9 (Dos,Linux,Win32,OS/2) - - Virtual Pascal 1.1 and 2.0 (Win32 and OS/2) - - Turbo Pascal 6.0 and Borland Pascal 7.0 (Dos) - - Delphi 1, 2, and 3. It should work with D4 and D5 also. - (Windows) - - Note that most of the test programs will not compile on - anything except MS-DOS or OS/2. The debugger also needs the - Turbo Vision library. The library, however, should compile - fine with all tools cited above. - - - -Changes between FreeType 1.1 and 1.2 -==================================== - -Mostly bug fixes and build fixes. - - - -Changes between FreeType 1.0 and 1.1 -==================================== - -There were various changes since the 1.0 release. Here they are -summarized: - -- Added vertical layout support - - The engine now loads the vertical header and metrics if available - and makes them visible through the new `vertical' field of the - face properties (it is set to NULL if no vertical data was found - in the font file). - - The glyph loader now loads all metrics (horizontal and vertical), - but still returns the horizontal ones only with the API - TT_Get_Glyph_Metrics(). However, TT_Get_Glyph_Bit_Metrics() has - been added to extract them from a glyph container. - - -- Serialization of coordinates arrays in TT_Outline() - - As announced in the previous API reference, the structure of - TT_Outline changed slightly, as well as the naming of its fields. - The points are now stored in a single array of TT_Vector, instead - of two parallel arrays (one for the Xs, the other for the Ys). - - -- New API function TT_Get_Face_Metrics() - - Useful to access unscaled metrics like left side bearings, advance - widths, top side bearings, and advance height, for a given range - of glyphs. - - -- New extension: ftxcmap.c - - Used by some applications to enumerate and parse the charmap - tables in an easier way. - - -- New extension: ftxpost.c - - With this extension you can access the PostScript glyph names - given in the `post' table. - - -- New extension: ftxwidth.c - - This extension is used to parse the `glyf' table to extract the - bounding boxes of a given range of glyphs. This is much faster - than loading individual glyphs. - - -- The FreeType engine is now THREAD-SAFE and REENTRANT - - However, the implementation of ttmutex must be refined for your - system -- the default one is a dummy and doesn't do anything! - Beware! THIS IS STILL IN BETA. - - The thread-safe and reentrant builds now compile and seem to run - well when used with a single thread. Some efforts have been spent - to check the coherency of the lock contentions within the engine, - but we haven't tested multi-threading heavily. - - -- Large internal re-organization - - Too technical to explain shortly, but results in a much better - memory footprint and smaller code, especially when opening - multiple faces. - - -- Fixes/enhancements to the interpreter - - The infamous Monotype.com bug (a new free font released by - Microsoft Typography a few days after the FreeType 1.0 release!) - is fixed, of course, as well as few other little and unpleasant - artifacts... - - The interpreter was also seriously re-organized to allow the use - of a very large `switch' statement, instead of a jump table, which - results in smaller and faster code on some systems (depending of - the compiler too). Users of the library can experiment with the - TT_CONFIG_OPTION_INTERPRETER_SWITCH configuration macro to test - this. - - -- Single object compilation mode - - The core engine can now be compiled into a single object file. - This allows optimizing compilers to do more global optimizations, - and get rid of many of the `intermediate' internal symbols used to - link internal engine components together. - - The engine now takes only 48kByte of stripped Intel object code! - - -- DLL compilation mode - - In order to allow the compilation of the library as a DLL, the - keyword EXPORT has been added as a prefix to all high-level API - functions found in `freetype.h'. Define it to the value you need - before `#include "freetype.h"' when building the DLL (if undefined - it will default to nothing within this header file). - - (Apparently, this is only useful on Win32, maybe on OS/2.) - - -- Renamed configuration macros - - These were renamed to forms of TT_CONFIG_OPTION_XXXXX_YYYYY. - They're located in ttconfig.h and can be defined/undefined - manually by developers who want to tune the compilation of the - engine: - - TT_CONFIG_OPTION_EXTEND_ENGINE - - Allows extensions to be linked with the single object engine. - If you don't need any of them, you may save one or more - kilobytes by undefining it. - - - TT_CONFIG_OPTION_GRAY_SCALING - - Allows the compilation of the gray-scaling (font smoothing) - code in ttraster. If undefined, some APIs won't be available: - - TT_Set_Raster_Palette(), - TT_Get_Glyph_Pixmap(), - TT_Get_Outline_Pixmap() - - - TT_CONFIG_OPTION_INTERPRETER_SWITCH - - Uses a large `switch' statement in the bytecode interpreter - instead of a constant call-table. Depending on your processor - and compiler, this can lead to significant reduction of code - size and/or increase of performance. - - - TT_CONFIG_OPTION_THREAD_SAFE - - When defined, a thread-safe version of the engine is built. A - thread-safe version is a bit bigger, probably not slower, than - a non-threaded build. ATTENTION: You must redefine the file - `lib/ttmutex.c' for your own platform to get it to work - correctly. - - - Some more options may come in the future... - - -- New API functions TT_MulDiv() and TT_MulFix()" - - To help you compute `a*b/c' with 64-bit intermediate precision, or - `a*b/0x10000' with the same one... - - These are not necessarily the fastest functions but they are - clearly portable and overflow-safe. Your runtime/compiler may - provide better replacements, though... - - - -Changes between FreeType Beta and 1.0 -===================================== - -There were a number of changes since the public beta: - - -I. Bug fixes ------------- - - The following bugs have been fixed in this release: - - - - Incorrect advance width and left side bearings - - The glyph loader has been re-designed to match the values found - in the pre-calc tables... - - - - Problems when opening multiple fonts - - Fixed. A stupid bug in the i/o component. - - - - Problems with some Georgian fonts - - Fixed. Discovered some new undocumented opcodes behaviour... - - - - Buglets in the test programs which made them return invalid - error codes - - Fixed. - - - - Memory leaks when trying to open broken some font files - - Fixed. Waiting for more broken fonts to test... - - - - Non-square resolutions don't work or display correctly - - They now work very well! - - - - The scan-line converter, while in font-smoothing mode, doesn't - perform horizontal drop-out control - - This wasn't really bug, but the feature has been correctly - added. - - -The remaining `features' persist, as they're not essential yet: - - - The `rotated' and `stretched' flags do not work (glyph loading - will then return errors). However, it is still possible to - rotate or transform any outline without setting these flags. - - - We always use drop-out mode number 2, as some of the values - returned by some `cvt programs' seem invalid for now... - - -Note also that an `event hook/callback' has been introduced in this -release, but is still under alpha (not even beta; it is commented -out currently). You should not rely on this... - - -II. Code changes ----------------- - - 1. API Changes - - A few API changes were necessary in order to support important - features, or future improvements which will come in later - releases. - - - - TT_Set_Instance_Resolution() was renamed to - TT_Set_Instance_Resolutions(). - - - - TT_Set_Instance_PointSize() has disappeared. Instead, the - following APIs have been defined: - - TT_Set_Instance_CharSize() - TT_Set_Instance_CharSizes() - TT_Set_Instance_PixelSizes() - - - - The TT_Engine class has been introduced. It models one - instance of the library, and is used to allow re-entrance and - shared library code. The functions which now depend on a - TT_Engine parameter are: - - TT_Init_FreeType() - TT_Done_FreeType() - TT_Open_Face() - TT_Open_Collection() - TT_Set_Raster_Palette() - TT_Get_Outline_Bitmap() - TT_Get_Outline_Pixmap() - - Note that there is _no_ sharing of objects between distinct - engines. - - - - Each face and instance object have an inside pointer which use - is reserved to client application. Several functions are - defined to set and read it: - - TT_Set_Face_Pointer() / TT_Get_Face_Pointer() - TT_Set_Instance_Pointer() / TT_Get_Instance_Pointer() - - - - TT_Apply_Outline_Matrix() has been renamed to - TT_Transform_Outline(). - TT_Apply_Outline_Translation() has been renamed to - TT_Translate_Outline() - TT_Apply_Vector_Matrix() has been renamed to - TT_Transform_Vector() - - all for the sake of clarity. - - - 2. Structural changes - - Some structures have evolved. - - - - The instance metrics have now two new fields which are - `x_scale' and `y_scale'. Each one is a scaling factor, - expressed in the 16.16 fixed float format (TT_Fixed), used to - convert one distance expressed in font units into the same - distance in fractional (26.6) pixels. - - - - A new structure TT_BBox has been defined to describe an - outline's bounding box. - - - - The outlines are now full-class citizen. It is possible to - create new outlines, copy, clone, transform, translate and - render them through specific methods of the TT_Outline class - (previously called TT_Glyph_Outline). Read the API reference - for a complete listing. - - - - The glyph metrics have a new structure: they contain a TT_BBox - field, a TT_Outline field, as well as three metrics values, - which are `bearingX', `bearingY', and `advance'. Read the - file `glyphs.txt' for more information about their definitions - and uses. - - - 3. Small but IMPORTANT changes - - - - The `max_Faces' field of a face's properties has disappeared. - It is replaced by `num_Faces' which gives the total number of - fonts embedded in a collection (the previous field gave the - total minus one). - - - - TT_Load_Glyph() now returns correctly placed outlines, and - computes advance widths which match the pre-calc values in the - "hdmx" table in nearly all cases. - - - - TT_Get_Glyph_Metrics() returns grid-fitted metrics for hinted - glyphs (i.e., loaded with the TTLOAD_HINT_GLYPH, or - TTLOAD_DEFAULT, flags). This includes the bounding box. To - get the exact bounding box of a hinted glyph, you should - extract its outline, then call TT_Get_Outline_BBox(). - - - - Some improvements in the glyph loader, which improves - drastically the placement of glyphs (especially composite - ones) which previously caused trouble for some fonts - (e.g. goudy.ttf). - - - - Several minor improvements in the interpreter to improve - rendering and bounds checking... - - - - Up-to-date Pascal source code, with output equivalent to the C - tree... - - ---- END --- diff --git a/Build/source/libs/freetype/freetype-1.5/docs/convntns.txt b/Build/source/libs/freetype/freetype-1.5/docs/convntns.txt deleted file mode 100644 index 01177854f3d..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/docs/convntns.txt +++ /dev/null @@ -1,970 +0,0 @@ - - Conventions and Design in the FreeType library - ---------------------------------------------- - - -Table of Contents - -Introduction - -I. Style and Formatting - - 1. Naming - 2. Declarations & Statements - 3. Blocks - 4. Macros - -II. Design conventions - - 1. Modularity and Components Layout - 2. Configuration and Debugging - -III. Usage conventions - - 1. Error handling - 2. Font File I/O - 3. Memory management (due to change soon) - 4. Support for threaded environments - 5. Object Management - - -Introduction -============ - -This text introduces the many conventions used within the FreeType -library code. Please read it before trying any modifications or -extensions of the source code. - - - -I. Style and Formatting -======================= - -The following coding rules are extremely important to keep the -library's source code homogeneously. Keep in mind the following -points: - - - `Humans read source code, not machines' (Donald Knuth) - - The library source code should be as readable as possible, even - by non-C experts. With `readable', two things are meant: First, - the source code should be pleasant to the eye, with sufficient - whitespace and newlines, to not look like a boring stack of - characters stuck to each other. Second, the source should be - _expressive_ enough about its goals. This convention contains - rules that can help the source focus on its purpose, not on a - particular implementation. - - - `Paper is the _ultimate_ debugger' (David Turner :-) - - There is nothing like sheets of paper (and a large floor) to - help you understand the design of a library you're new to, or to - debug it. The formatting style presented here is targeted at - printing. For example, it is more than highly recommended to - never produce a source line that is wider than 78 columns. More - on this below. - - -1. Naming ---------- - - a. Components - - A unit of the library is called a `component'. Each component - has at least an interface, and often a body. The library comes - in two language flavors, C and Pascal (the latter severely out - of date unfortunately). A component in C is defined by two - files, one `.h' header and one `.c' body, while a Pascal - component is contained in a single `.pas' file. - - All component source file names begin with the `tt' prefix, with - the exception of the `FreeType' component. For example, the - file component is implemented by the files `ttfile.h', - `ttfile.c', and `ttfile.pas'. Only lowercase letters should be - used, following the 8+3 naming convention to allow compilation - under DOS. - - In the C version, a single component can have multiple bodies. - For example, `ttfile.c' provides stream i/o through standard - ANSI libc calls, while `ttfile2.c' implements the same thing - using a Unix memory-mapping API. - - The FreeType component is an interface-only component. - - b. Long and expressive labels - - Never hesitate to use long labels for your types, variables, - etc.! Except maybe for things like very trivial types, the - longest is the best, as it increases the source's - _expressiveness_. Never forget that the role of a label is to - express the `function' of the entity it represents, not its - implementation! - - NOTE: Hungarian notation is NOT expressive, as it sticks the - `type' of a variable to its name. A label like `usFoo' - rarely tells the use of the variable it represents. - - And the state of a variable (global, static, dynamic) - isn't helpful anymore. - - Avoid Hungarian Notation like the *plague*! - - - When forging a name with several nouns - (e.g. `number-of-points'), use an uppercase letter for the first - letter of each word (except the first), like: - - numberOfPoints - - You are also welcomed to introduce underscores `_' in your - labels, especially when sticking large nouns together, as it - `airs' the code greatly. E.g.: - - `numberOfPoints' or `number_Of_Points' - - `IncredibleFunction' or `Incredible_Function' - - And finally, always put a capital letter after an underscore, - except in variable labels that are all lowercase: - - `number_of_points' is OK for a variable (_all_ lowercase label) - - `incredible_function' is NOT for a function! - ^ ^ - - `Microsoft_windows' is a *shame*! - ^ ^ - - `Microsoft_Windows' isn't really better, but at least its a - ^ ^ correct function label within this - convention ;-) - - c. Types - - All types that are defined for use by FreeType client - applications are defined in the FreeType component. All types - defined there have a label beginning with `TT_'. Examples: - - TT_Face, TT_F26Dot6, etc. - - However, the library uses a lot more of internal types that are - defined in the Types, Tables, and Objs components (`tttypes' & - `tttables' files). - - By convention, all internal types, except the simplest ones like - integers, have their name beginning with a capital `T', like in - 'TFoo'. Note that the first letter of `foo' is also - capitalized. The corresponding pointer type uses a capital `P' - instead, i.e. (TFoo*) is simply named 'PFoo'. Examples: - - typedef struct _TTableDir - { - TT_Fixed version; /* should be 0x10000 */ - UShort numTables; /* Tables number */ - - UShort searchRange; /* These parameters are only used */ - UShort entrySelector;/* for a dichotomy search in the */ - UShort rangeShift; /* directory. We ignore them. */ - } TTableDir; - - typedef TTableDir* PTableDir; - - Note that we _always_ define a typedef for structures. The - original struct label starts with `_T'. - - This convention is a famous one from the Pascal world. - - Try to use C or Pascal types to the very least! Rely on - internally defined equivalent types instead. For example, not - all compilers agree on the sign of `char'; the size of `int' is - platform-specific, etc. - - There are equivalents to the most common types in the `Types' - components, like `Short', `UShort', etc. Using the internal - types will guarantee that you won't need to replace every - occurence of `short' or wathever when compiling on a weird - platform or with a weird compiler, and there are many more than - you could think of... - - d. Functions - - The name of a function should always begin with a capital - letter, as lowercase first letters are reserved for variables. - The name of a function should be, again, _expressive_! Never - hesitate to put long function names in your code: It will make - the code much more readable. - - Expressiveness doesn't necessarily imply lengthiness though; for - instance, reading shorts from a file stream is performed using - the following functions defined in the `File' component: - - Get_Byte, Get_Short, Get_UShort, Get_Long, etc. - - Which is somewhat more readable than: - - cget, sget, usget, lget, etc. - - e. Variables - - Variable names should always begin with a lowercase letter. - Lowercase first letters are reserved for variables in this - convention, as it has been already explained above. You're - still welcome to use long and expressive variable names. - - Something like `numP' can express a number of pixels, porks, - pancakes, and much more... Something like `num_points' won't. - - Today, we are still using short variable labels in some parts of - the library. We're working on removing them however... - - As a side note, a field name of a structure counts as a variable - name too. There are exceptions to the first-lowercase-letter - rule, but these are only related to fields within the structure - defined by the TrueType specification (well, at least it - _should_ be that way). - - -2. Declarations & Statements ----------------------------- - - a. Columning - - Try to align declarations and assignments in columns, if it - proves logical. For example (taken from `ttraster.c'): - - struct _TProfile - { - Int flow; /* Profile orientation : Asc/Descending */ - Int height; /* profile's height in scanlines */ - Int start; /* profile's start scanline */ - ULong offset; /* offset of profile's data in render pool */ - PProfile link; /* link to next profile */ - Int index; /* index of profile's entry in trace table */ - Int count_lines; /* count of lines having to be drawn */ - Int start_line; /* lines to be rendered before this profile */ - PTraceRec trace; /* pointer to profile's current trace table */ - }; - - instead of - - struct _TProfile { - Int flow; /* Profile orientation : Asc/Descending */ - Int height; /* profile's height in scanlines */ - Int start; /* profile's start scanline */ - ULong offset; /* offset of profile's data in render pool */ - PProfile link; /* link to next profile */ - Int index; /* index of profile's entry in trace table */ - Int count_lines; /* count of lines having to be drawn */ - Int start_line; /* lines to be rendered before this profile */ - PTraceRec trace; /* pointer to profile's current trace table */ - }; - - This comes from the fact that you're more interested by the - field and its function than by its type. - - Or: - - x = i + 1; - y += j; - min = 100; - - instead of - - x=i+1; - y+=j; - min=100; - - And don't hesitate to separate blocks of declarations with - newlines to `distinguish' logical sections. - - E.g., taken from an old source file, in the declarations of the CMap - loader: - - long n, num_SH; - unsigned short u; - long off; - unsigned short l; - long num_Seg; - unsigned short* glArray; - long table_start; - int limit, i; - - TCMapDir cmap_dir; - TCMapDirEntry entry_; - PCMapTable Plcmt; - PCMap2SubHeader Plcmsub; - PCMap4 Plcm4; - PCMap4Segment segments; - - instead of - - long n, num_SH; - unsigned short u; - long off; - unsigned short l; - long num_Seg; - unsigned short *glArray; - long table_start; - int limit, i; - TCMapDir cmap_dir; - TCMapDirEntry entry_; - PCMapTable Plcmt; - PCMap2SubHeader Plcmsub; - PCMap4 Plcm4; - PCMap4Segment segments; - - b. Aliases and the `with' clause - - The Pascal language comes with a very handy `with' clause that - is often used when dealing with the fields of a same record. - The following Pascal source extract - - with table[incredibly_long_index] do - begin - x := some_x; - y := some_y; - z := wathever_the_hell; - end; - - is usually translated to: - - table[incredibly_long_index].x = some_x; - table[incredibly_long_index].y = some_y; - table[incredibly_long_index].z = wathever_the_hell; - - When a lot of fields are involved, it is usually helpful to - define an `alias' for the record, like in: - - alias = table + incredibly_long_index; - - alias->x = some_x; - alias->y = some_y; - alias->z = wathever_the_hell; - - which gives cleaner source code, and eases the compiler's - optimization work. - - Though the use of aliases is currently not fixed in the current - library source, it is useful to follow one of these rules: - - - Avoid an alias with a stupid, or cryptic name, something like: - - TFooRecord tfr; - .... - [lots of lines snipped] - .... - - tfr = weird_table + weird_index; - - ... - - tfr->num = n; - - It doesn't really help to guess what 'tfr' stands for several - lines after its declaration, even if it's an extreme - contraction of one particular type. - - Something like `cur_record' or `alias_cmap' is better. The - current source also uses a prefix of `Pl' for such aliases - (like Pointer to Local alias), but this use is _not_ - encouraged. If you want to use prefixes, use `loc_', `cur_', - or `al_' at the very least, with a descriptive name following. - - - Or simply use a local variable with a semi-expressive name: - - { - THorizontalHeader hheader; - TVerticalHeader vheader; - - - hheader = instance->fontRes->horizontalHeader; - vheader = instance->fontRes->verticalHeader; - - hheader->foo = bar; - vheader->foo = bar2; - ... - } - - which is much better than - - { - THorizontalHeader Plhhead; - TVerticalHeader Plvhead; - - Plhhead = instance->fontRes->horizontalHeader; - Plvhead = instance->fontRes->verticalHeader; - - Plhhead->foo = bar; - Plvhead->foo = bar2; - ... - } - - -3. Blocks ---------- - - Block separation is done with `{' and `}'. We do not use the K&R - convention which becomes only useful with an extensive use of - tabs. The `{' and its corresponding `}' should always be on the - same column. It makes it easier to separate a block from the rest - of the source, and it helps your _brain_ associates the accolades - easily (ask any Lisp programmer on the topic!). - - Use two spaces for the next indentation level. - - Never use tabs in your code, their widths may vary with editors - and systems. - - Example: - - if (condition_test) { - waow mamma; - I'm doing K&R format; - just like the Linux kernel; - } else { - This test failed poorly; - } - - is _OUT_! - - if ( condition_test ) - { - This code isn't stuck to the condition; - read it on paper, you'll find it more; - pleasant to the eye; - } - else - { - Of course, this is a matter of taste; - That's just the way it is in this convention; - and you should follow it to be homogenous with; - the rest of the FreeType code; - } - - is _IN_! - - -4. Macros ---------- - - Macros should be made of uppercase letters. When a macro label is - forged from several words, it is possible to only uppercasify the - first word, using an underscore to separate the nouns. This is - used in ttload.c, ttgload.c and ttfile.c with macros like - - ACCESS_Frame, GET_UShort, CUR_Stream - - The role of the macros used throughout the engine is explained - later in this document. - - - -II. Design Conventions -====================== - - -1. Modularity and Components Layout ------------------------------------ - - The FreeType engine has been designed with portability in mind. - This implies the ability to compile and run it on a great variety - of systems and weird environments, unlike many packages where the - word strictly means `runs on a bunch of Unix-like systems'. We - have thus decided to stick to the following restrictions: - - - The C version is written in ANSI C. The Pascal version compiles - and run under Turbo Pascal 5.0 and compatible compilers. - - - The library, if compiled with gcc, doesn't produce any warning - with the `-ansi -pedantic' flags. Other compilers with better - checks may produce ANSI warnings that we'd be happy to now - about. - - (NOTE: It can of course be compiled by an `average' C compiler, - and even by a C++ one.) - - - It only requires in its simplest form an ANSI libc to compile, - and no utilities other than a C pre-processor, compiler, and - linker. - - - It is written in a modular fashion. Each module is called a - `component' and is made of two files in the C version (an - interface with suffix `.h' and body with suffix `.c' ) and one - file in the Pascal one. - - - The very low-level components can be easily replaced by - system-specific ones that do not rely on the standard libc. - These components deal mainly with i/o, memory, and mutex - operations. - - - A client application must only include one interface file named - `freetype.h' resp. `freetype.pas' to use the engine. All other - components should never be used or accessed by client - applications, and their name always begin with a `tt' prefix: - - ttmemory, ttobjs, ttinterp, ttapi, etc. - - - All configuration options are gathered in two files. One - contains the processor and OS specific configuration options, - while the other treats options that may be enabled or disabled - by the developer to test specific features (like assertions, - debugging, etc). - - IMPORTANT NOTES: - - These restrictions only apply to the core engine. The package - that comes with it contains several test programs sources that - are much less portable, even if they present a modular model - inspired from the engine's layout. - - The components currently found in the `lib' directory are: - - -------- high-level interface ---------------------------------- - - freetype.h High-level API, to be used by client applications. - - ttapi.c Implementation of the api found in `freetype.h'. - - -------- configuration ----------------------------------------- - - ttconfig.h Engine configuration options. These are commented - and switched by hand by the developer. See - section 2 below for more info. - - ft-conf.h Included by ttconfig.h, this file isn't part of - the `lib' directory, but depends on the target - environment. See section 2 blow for more info. - - -------- definitions ------------------------------------------- - - tttypes.h The engine's internal types definitions. - tttables.h The TrueType tables definitions, per se the Specs. - tttags.h The TrueType table tags definitions. - tterror.[ch] The error and debugging component. - - ttdebug.[ch] Only used by the debugger, should not be linked - into a release build. - - ttcalc.[ch] Math component used to perform some computations - with an intermediate 64-bit precision. - - -------- replaceable components -------------------------------- - - ttmemory.[ch] Memory component. This version uses the ANSI libc - but can be replaced easily by your own version. - - ttfile.[ch] Stream i/o component. This version uses the ANSI - libc but can be replaced easily by your own - version. Compiled only if file memory mapping - isn't available on your system. - - ttfile2.[ch] Unix-specific file memory mapping version of the - file component. It won't compile on other - systems. Usually results in much faster file - access (about 2x on a SCSI P166 system) - - ttmutex.[ch] Generic mutex component. This version is a dummy - and should only be used for a single-thread build. - You _need_ to replace this component's body with - your own implementation to be able to build a - threaded version of the engine. - - -------- data management --------------------------------------- - - ttengine.h The engine instance record definition, root of all - engine data. - - ttlists.[ch] Generic lists manager. - ttcache.[ch] Generic cache manager. - - ttobjs.[ch] The engine's object definitions and - implementations module contains structures, - constructors, destructors and methods for the - following objects: - - face, instance, glyph, execution_context - - ttload.[c] The TrueType tables loader. - - ttgload.[ch] The glyph loader. A component in itself, due to - the task's complexity. - - ttindex.[ch] The character mapping to glyph index conversion - routines. Implements functions defined in - `freetype.h'. - - ttinterp.[ch] The TrueType instructions interpreter. Probably - the nicest source in this engine. Apparently, - many have failed to produce a comparable one due - to the very poorly written specification! It took - David Turner three months of his spare time to get - it working correctly! :-) - - ttraster.[ch] The engine's second best piece. This is the - scan-line converter. Performs gray-level - rendering (also known as font-smoothing) as well - as dropout-control. - - -2. Configuration and Debugging ------------------------------- - - As stated above, configuration depends on two files: - - The environment configuration file `ft-conf.h': - - This file contains the definitions of many configuration options - that are processor and OS-dependent. On Unix systems, this file - is generated automatically by the `configure' script that comes - with the released package. - - On other environments, it is located in one of the architecture - directories found in `arch' (e.g. `arch/os2/ft-conf.h'). - - The path to this file should be passed to the compiler when - compiling _each_ component. (typically with an -I option). - - The engine configuration file `ttconfig.h': - - This file contains many configuration options that the developer - can turn on or off to experiment with some `features' of the - engine that are not part of its `simplest' form. The options - are commented. - - Note that the makefiles are compiler-specific. - - It is possible to enable the dumping of debugging information by - compiling the components with the various debug macros. Please - consult the file `ttconfig.h' for details. - - If you want to port the engine to another environment, you will - need to - - - Write a new `ft-conf.h' file for it. Just copy one of those - available and change the flags accordingly (they're all - commented). - - - Replace the memory, file, and mutex components with yours, - presenting the same interface and behaviour. - - - Eventually add some code in ttapi.c to initialize - system-specific data with the engine. - - - -III. Usage conventions -====================== - - -1. Error Handling ------------------ - - Error handling has been refined to allow reentrant builds of the - library, available only in the C version. We thus have now two - different conventions. - - In Pascal: - - A global error variable is used to report errors when they are - detected. All functions return a boolean that indicates success - or failure of the call. If an error occurs within a given - function, the latter must set the error variable and return - `false' (which means failure). - - It is then possible to make several calls in a single `if' - statement like: - - if not Perform_Action_1( parms_of_1 ) or - not Perform_Action_2( parms_of_2 ) or - not Perform_Action_3( parms_of_3 ) then goto Fail; - - where execution will jump to the `Fail' label whenever an error - occurs in the sequence of actions invoked in the condition. - - In C: - - Global errors are forbidden in re-entrant builds. Each function - thus returns directly an error code. A return value of 0 means - that no error occured, while a non-zero other value indicates a - failure of any kind. - - This convention is more constraining than the one used in the - Pascal source. The above Pascal statement should be translated - into the following C fragment: - - rc = Perform_Action_1( parms_of_1 ); - if ( rc ) - goto Fail; - - rc = Perform_Action_2( parms_of_2 ); - if ( rc ) - goto Fail; - - rc = Perform_Action_3( parms_of_3 ); - if ( rc ) - goto Fail; - - which, while being equivalent, isn't as pleasantly readable. - - One `simple' way to match the original fragment would be to - write: - - if ( (rc = Perform_Action_1( parms_of_1 )) || - (rc = Perform_Action_2( parms_of_2 )) || - (rc = Perform_Action_3( parms_of_3 )) ) - goto Fail; - - which is better but uses assignments within expressions, which - are always delicate to manipulate in C (the risk of writing `==' - exists, and would go unnoticed by a compiler). Moreover, the - assignments are a bit redundant and don't express much things - about the actions performed (they only speak of the error - management issue). - - That is why some macros have been defined for the most - frequently used functions. They relate to low-level routines - that are called very often (mainly i/o, mutex, and memory - handling functions). Each macro produces an implicit assignment - to a variable called `error' and can be used instead as a simple - function call. Example: - - if ( PERFORM_Action_1( parms_of_1 ) || - PERFORM_Action_2( parms_of_2 ) || - PERFORM_Action_3( parms_of_3 ) ) - goto Fail; - - with - - #define PERFORM_Action_1( parms_1 ) \ - ( error = Perform_Action_1( parms_1 ) ) - #define PERFORM_Action_2( parms_1 ) \ - ( error = Perform_Action_2( parms_1 ) ) - #define PERFORM_Action_3( parms_1 ) \ - ( error = Perform_Action_3( parms_1 ) ) - - defined at the beginning of the file. - - There, the developer only needs to define a local `error' - variable and use the macros directly in the code, without caring - about the actual error handling performed. Examples of such a - usage can be found in `ttload.c' and `ttgload.c'. Moreover, the - structure of the source files remain very similar, even though - the error handling is very different. - - This convention is very close to the use of exceptions in - languages like C++, Pascal, Java, etc. where the developer - focuses on the actions to perform, and not on every little error - checking. - - -2. Font File I/O ----------------- - - a. Streams - - The engine uses `streams' to access the font files. A stream is - a structure defined in the `File' component containing - information used to access files through a system-specific i/o - library. - - The current implementation of the File component uses the ANSI - libc i/o functions. However, for the sake of embedding in light - systems and independence of a complete libc, it is possible to - re-implement the component for a specific system or OS, letting - it use system calls. - - A stream is of type `TStream' defined in the `TTObjs' interface. - The type is `(void*)' but actually points to a structure defined - within the File component. - - A stream is created, managed and closed through the interface of - the `File' component. Several implementations of the same - component can co-exist, each taking advantage of specific system - features (the file `ttfile2.c' uses memory-mapped files for - instance) as long as it respects the interface. - - b. Frames - - TrueType is tied to the big-endian format, which implies that - reading shorts or longs from the font file may need conversions - depending on the target processor. To be able to easily detect - read errors and allow simple conversion calls or macros, the - engine is able to access a font file using `frames'. - - A frame is simply a sequence of successive bytes taken from the - input file at the current position. A frame is pre-loaded into - memory by a `TT_Access_Frame()' call of the `File' component. - - It is then possible to read all sizes of data through the - `Get_xxx()' functions, like Get_Byte(), Get_Short(), - Get_UShort(), etc. - - When all important data is read, the frame can be released by a - call to `TT_Forget_Frame()'. - - The benefits of frames are various. Consider these two - approaches at extracting values: - - if ( (error = Read_Short( &var1 )) || - (error = Read_Long ( &var2 )) || - (error = Read_Long ( &var3 )) || - (error = Read_Short( &var4 )) ) - - return FAILURE; - - and - - /* Read the next 16 bytes */ - if ( (error = TT_Access_Frame( 16L )) ) - return error; /* The Frame could not be read */ - - var1 = Get_Short(); /* extract values from the frame */ - var2 = Get_Long(); - var3 = Get_Long(); - var4 = Get_Short(); - - TT_Forget_Frame(); /* release the frame */ - - In the first case, there are four error assignments with four - checks of the file read. This unnecessarily increases the size - of the generated code. Moreover, you must be sure that `var1' - and `var4' are short variables, `var2' and `var3' long ones, if - you want to avoid bugs and/or compiler warnings. - - In the second case, you perform only one check for the read, and - exit immediately on failure. Then the values are extracted from - the frame, as the result of function calls. This means that you - can use automatic type conversion; there is no problem if - e.g. `var1' and `var4' are longs, unlike previously. - - On big-endian machines, the `Get_xxx()' functions could also be - simple macros that merely peek the values directly from the - frame, which speeds up and simplifies the generated code! - - And finally, frames are ideal when you are using memory-mapped - files, as the frame is not really `pre-loaded' and never uses - any `heap' space. - - IMPORTANT: You CANNOT nest several frame accesses. There is - only one frame available at a time for a specific - instance. - - It is also the programmer's responsibility to never - extract more data than was pre-loaded in the frame! - (But you usually know how many values you want to - extract from the file before doing so). - - -3. Memory Management --------------------- - - The library now uses a component which interface is similar to - malloc()/free(). It defines only two functions. - - * Alloc() - - To be used like malloc(), except that it returns an error code, - not an address. Its arguments are the size of the requested - block and the address of the target pointer to the `fresh' - block. An error code is returned in case of failure (and this - will also set the target pointer to NULL), 0 in case of success. - - Alloc() should always respect the following rules: - - - Requesting a block of size 0 should set the target pointer to - NULL and return no error code (i.e., return 0). - - - The returned block is always zeroed. This is an important - assumption of other parts of the library. - - If you wish to replace the memory component with your own, - please respect this behaviour, or your engine won't work - correctly. - - * Free() - - As you may have already guessed, Free() is Alloc()'s - counterpart. It takes as argument the _target pointer's - address_! You should _never_ pass the block's address directly, - i.e. the pointer, to Free(). - - Free should always respect the following rules: - - - Calling it with a NULL argument, or the address of a NULL - pointer is valid, and should return success. - - - The pointer is always set to NULL after the block's - deallocation. This is also an important assumption of many - other parts of the library. - - If you wish to replace the memory component with your own, - please respect this behaviour, or your engine won't work - correctly. - - As the pointers addresses needed as arguments are typed `void**', - the component's interface also provides in the C version some - macros to help use them more easily, these are: - - MEM_Alloc A version of Alloc that casts the argument pointer - to (void**). - - ALLOC Same as MEM_Alloc, but with an assignment to a - variable called `error'. See the section `error - handling' above for more info on this. - - FREE A version of Free() that casts the argument - pointer to (void**). There is currently no error - handling by with this macro. - - MEM_Set An alias for `memset()', which can be easily - changed to anything else if you wish to use a - different memory manager than the functions - provided by the ANSI libc. - - MEM_Copy An alias of `memcpy()' or `bcopy()' used to move - blocks of memory. You may change it to something - different if you wish to use something else that - your standard libc. - - -4. Support for threaded environments ------------------------------------- - - Support for threaded environments have been added to the C - sources, and only to these. It is now theorically possible to - build three distinct versions of the library: - - single-thread build: - - The default build. This one doesn't known about different - threads. Hence, no code is generated to perform coherent data - sharing and locking. - - thread-safe build: - - With this build, several threads can use the library at the - same time. However, some key components can only be used by - one single thread at a time, and use a mutex to synchronize - access to their functions. These are mainly the file, raster - and interpreter components. - - re-entrant build: - - A re-entrant version is able to perform certain actions in - parallel that a thread-safe one cannot. This includes - accessing file(s) in parallel, interpreting different - instruction streams in parallel, or even scan-line converting - distinct glyphs at the same time. - - Note that most of the latest changes in the engine are making the - distinction between the thread-safe and re-entrant builds thinner - than ever. - - There is a `ttmutex' component that presents a generic interface - to mutex operations. It should be re-implemented for each - platform. - -<to be continued> - - ---- end of convntns.txt --- diff --git a/Build/source/libs/freetype/freetype-1.5/docs/credits b/Build/source/libs/freetype/freetype-1.5/docs/credits deleted file mode 100644 index 661cde2c1a2..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/docs/credits +++ /dev/null @@ -1,97 +0,0 @@ - -NOTE: This list is far from being complete. Please send a mail if - you want to be included. - - -David TURNER (david.turner@freetype.org) - - Main engine design and coding. - - -Robert WILHELM (robert.wilhelm@freetype.org) - - Web, FTP and CVS wizard & administrator. C source maintainer. - Incredible bug and spell fixer! - - -Werner LEMBERG (werner.lemberg@freetype.org) - - Internationalization and CJK guru. ttf2pk author. - - -Antoine LECA (Antoine-Freetype@Leca-Marti.org) - - 16-bit support for various compilers and platforms, and current - Pascal maintainer. - - -Mark LEISHER (mleisher@crl.nmsu.edu) - - Internationalization. X11 font server prototype author. ttf2bdf - author. - - -Pavel KANKOVSKY (peak@argo.troja.mff.cuni.cz) - - Old logo, internationalization, on-line demo, humor, and - remarkable bug hunter! - - -Erwin DIETERICH (erwin.dieterich.ed@bayer-ag.de) - - *Real* internationalization :-) Author of the ftxerr18 and gettext - support. - - -Michal NECASEK (mike@mendelu.cz) - - Author and maintainer of the OS/2 font driver based on FreeType. - - -Munagala V. S. RAMANATH, CurveSoft, Inc. (ram@curvesoft.com) - - Contributor of many bug fixes and code improvements. - - -Dave WILLISS (dwilliss@tnt.microimages.com) - - GSUB support. Author of the Mac port. - - -YAMANO-UCHI, Hidetoshi - - Embedded bitmap support. - - - -The following people have also contributed to the development of -FreeType: - - Beebe, Nelson H. F.: Tested FreeType on many platforms. - Benett, Kendall - Cho, Jin-Hwan: Contributed extensions to the ttf2pk package. - Choi, Junho - Chong, Chin Soon - Chroboczek, Juliusz: Author of the xfsft Truetype font server. - Cohen, Marc L. - Davis, Jack - Demaille, Akim - Dubacq, Jean-Christophe - Ellis, Duane - Feinberg, Matthew - Furr, Anthony - Hoo, Dave: 16bit support - Jamme, Thibault - Lewis, Kevin - Long, Jeff - Marukawa, Kazushi - Nijtmans, Jan - Olson, Eric - Paterson-Jones, Roland - Pommnitz, Joerg - Quigley, Ian - Steger, Helmut - Taggart, Scott - - ---- end of credits --- diff --git a/Build/source/libs/freetype/freetype-1.5/docs/freetype.lsm b/Build/source/libs/freetype/freetype-1.5/docs/freetype.lsm deleted file mode 100644 index a8190f9d562..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/docs/freetype.lsm +++ /dev/null @@ -1,17 +0,0 @@ -Begin3 -Title: freetype -Version: 1.5 -Entered-date: 18JAN02 -Description: truetype font rasterizer -Keywords: font truetype rasterizer freetype -Author: david.turner@freetype.org (David Turner) - werner.lemberg@freetype.org (Werner Lemberg) - robert.wilhelm@freetype.org (Robert Wilhelm) -Maintained-by: robert.wilhelm@freetype.org (Robert Wilhelm) - werner.lemberg@freetype.org (Werner Lemberg) - Antoine-Freetype@Leca-Marti.org (Antoine Leca) -Primary-site: ftp.freetype.org /freetype - 1400 KB freetype-1.5.tar.gz -Alternate-site: sunsite.unc.edu /pub/Linux/X11/fonts/ -Copying-policy: BSD-like or GPL -End diff --git a/Build/source/libs/freetype/freetype-1.5/docs/glyphs.htm b/Build/source/libs/freetype/freetype-1.5/docs/glyphs.htm deleted file mode 100644 index d6f0b54374a..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/docs/glyphs.htm +++ /dev/null @@ -1,1257 +0,0 @@ -<html> -<head> -<title>An introduction to glyphs</title> - -<META name="description" - content="Glyphs in the FreeType engine"> -<META name="keywords" - content="FreeType TrueType library engine glyphs baseline bearing - bounding box"> -</head> - -<body text="#000000" - bgcolor="#FFFFFF" - link="#0000EF" - vlink="#51188E" - alink="#FF0000"> - - -<font size=1>http://www.freetype.org</font><p> - -<center> - <font size="+2">Glyph Hell<p> - - <font size="+1">An introduction to glyphs, as used and defined in - the FreeType engine<p> -</center> - -<hr><p> - -<font size="+2">Introduction<p> - -<font size="+0">This article discusses in great detail the definition -of glyph metrics, per se the TrueType specification, and the way they -are managed and used by the FreeType engine. This information is -crucial when it comes to rendering text strings, either in a -conventional (i.e. Roman) layout, or with vertical or right-to-left -ones. Some aspects like glyph rotation and transformation are -explained too.<p> - -Comments and corrections are highly welcome, and can be sent to the -<a href="mailto:devel@freetype.org">FreeType developers list</a>.<p> - -<hr><p> - - -<font size="+2">I. An overview of font files<p> - -<font size="+0">In TrueType, a single font file is used to contain -information related to classification, modeling and rendering of text -using a given typeface. This data is located in various independent -`tables', which can be sorted in four simple classes, as described -below:<p> - -<ul> - - <b><font size="+1"><li>Face Data</font></b><p> - - We call <i>face data</i> the amount of information related to a - given typeface, independently of any particular scaling, - transformation, and/or glyph index. This usually means some - typeface-global metrics and attributes, like family and styles, - PANOSE number, typographic ascenders and descenders, as well as - some very TrueType specific items like the font `programs' found - in the <i>fpgm</i> and <i>prep</i> tables, the <i>gasp</i> table, - character mappings, etc.<p> - - In FreeType, a <i>face object</i> is used to model a font file's - face data.<p> - - <b><font size="+1"><li>Instance Data</font></b><p> - - We call <i>instance</i> a given pointsize/transformation, at a - given device resolution (e.g. 8pt at 96x96dpi, or 12pt at - 300x600dpi, etc). Some tables found in the font files are used to - produce instance-specific data, like the <i>cvt</i> table, or the - <i>prep</i> program. Though they are often part of the face data, - their processing results in information called <i>instance - data</i>.<p> - - In FreeType, it is modeled through an <i>instance object</i>, - which is always created from an existing face object.<p> - - <b><font size="+1"><li>Glyph Data</font></b><p> - - We call <i>glyph data</i> the piece of information related to - specific glyphs. This includes the following things that are - described in more details in the next sections:<p> - - <ul> - - <li>The glyph's vectorial representation, also called its - <i>outline</i>.<p> - - <li>Various metrics, like the glyph's <i>bounding box</i>, its - <i>bearings</i> and <i>advance</i> values.<p> - - <li>TrueType specifies a specific instruction <i>bytecode</i>, - used to associate each glyph with a small <i>program</i>, - called the <i>glyph code</i>. Its purpose is to grid-fit the - outline to any target instance, in order to produce excellent - output at small pixel sizes. - - </ul><p> - - The FreeType engine doesn't map each glyph to a single structure, - as this would waste memory for no good reason. Rather, a <i>glyph - object</i> is a <i>container</i>, created from any active face, - which can be used to load and/or process any font glyph at any - instance (or even no instance at all). Of course, the glyph - properties (outline, metrics, bitmaps, etc.) can be extracted - independently from an object once it has been loaded or - processed.<p> - - <b><font size="+1"><li>Text and Layout Data</font></b><p> - - Finally, there is a last class of data that doesn't really fit in - all others, and that can be called <i>text</i> data. It comprises - information related to the grouping of glyphs together to form - text. Simple examples are the <i>kerning</i> table, which - controls the spacing between adjacent glyphs, as well as some of - the extensions introduced in <i>TrueType Open</i>, - <i>OpenType</i>, and <i>TrueType GX</i> like glyph substitution - (ligatures, vertical representations), baseline management, - justification, etc.<p> - - This article focuses on the basic TrueType tables, and hence, will - only talk about kerning, as FreeType doesn't support OpenType nor - GX (yet). [Support for TrueType Open is already partially - available.] - -</ul><p> - -<hr><p> - - -<font size="+2">II. Glyph Outlines<p> - -<font size="+0">TrueType is a scalable font format; it is thus -possible to render glyphs at any scale, and under any affine -transform, from a single source representation. However, simply -scaling vectorial shapes exhibits at small sizes (where `small' refers -here to anything smaller than at least 150 pixels) a collection -of un-harmonious artifacts, like widths and/or heights -degradations.<p> - -Because of this, the format also provides a complete programming -language used to design small programs associated to each glyph. Its -role is to align the point positions on the pixel grid after the -scaling. This operation is hence called <i>grid-fitting</i>, or even -<i>hinting</i>.<p> - -<ol> - - <font size="+1"><li>Vectorial representation</font><p> - - The source format of outlines is a collection of closed paths - called <i>contours</i>. Each contour delimits an outer or inner - region of the glyph, and can be made of either line segments - and/or second-order beziers (also called <i>conic beziers</i> or - <i>quadratics</i>).<p> - - It is described internally as a series of successive points, with - each point having an associated flag indicating whether it is `on' - or `off' the curve. These rules are applied to decompose the - contour:<p> - - <ul> - - <li>Two successive `on' points indicate a line segment joining - them.<p> - - <li>One `off' point amidst two `on' points indicates a conic - bezier, the `off' point being the control point, and the `on' - ones the start and end points.<p> - - <li>Finally, two successive `off' points forces the rasterizer - to create (only during bitmap rendering) a virtual `on' point - amidst them, at their exact middle. This greatly facilitates - the definition of successive Bezier arcs. - - </ul><p> - -<pre> - * # on - * off - __---__ - #-__ _-- -_ - --__ _- - - --__ # \ - --__ # - -# - Two `on' points - Two `on' points and one `off' point - between them - - - - * - # __ Two `on' points with two `off' - \ - - points between them. The point - \ / \ marked `0' is the middle of the - - 0 \ `off' points, and is a `virtual - -_ _- # on' point where the curve passes. - -- It does not appear in the point - list. - * -</pre> - - <img src="image/emsquare.gif" align="right" width=333 height=274> - - Each glyph's original outline points are located on a grid of - indivisible units. The points are stored in the font file as - 16-bit integer grid coordinates, with the grid origin's being at - (0,0); they thus range from -16384 to 16383.<p> - - In creating the glyph outlines, a type designer uses an imaginary - square called the <i>EM square</i>. Typically, the EM square - encloses the capital letter `M' and most other letters of a - typical roman alphabet. The square's size, i.e., the number of - grid units on its sides, is very important for two reasons:<p> - - <ul> - - <li>It is the reference used to scale the outlines to a given - instance. For example, a size of 12pt at 300x300dpi - corresponds to 12*300/72 = 50 pixels. This is the - size the EM square would appear on the output device if it was - rendered directly. In other words, scaling from grid units to - pixels uses the formula<p> - - <center> - pixel_size = point_size * - resolution / 72 - </center><p> - - <center> - pixel_coordinate = grid_coordinate * - pixel_size / EM_size - </center><p> - - <li>The greater the EM size is, the larger resolution the - designer can use when digitizing outlines. For example, in - the extreme example of an EM size of 4 units, there are - only 25 point positions available within the EM square - which is clearly not enough. Typical TrueType fonts use an EM - size of 2048 units (note: with Type 1 PostScript - fonts, the EM size is fixed to 1000 grid units. However, - point coordinates can be expressed in floating values). - - </ul><p> - - Note that glyphs can freely extend beyond the EM square if the - font designer wants this. The EM is used as a convenience, and is - a valuable convenience from traditional typography.<p> - - <center> - <font size="+1"> - Grid units are very often called <i>font units</i> or <i>EM - units</i>. - </font> - </center><p> - - <hr> - <i>IMPORTANT NOTE:</i><p> - - Under FreeType, scaled pixel positions are all expressed in the - 26.6 fixed float format (made of a 26-bit integer mantissa, and a - 6-bit fractional part). In other words, all coordinates are - multiplied by 64. The grid lines along the integer pixel - positions, are multiples of 64, like (0,0), (64,0), (0,64), - (128,128), etc., while the pixel centers lie at middle coordinates - (32 modulo 64) like (32,32), (96,32), etc. - <hr><p> - - <font size="+1"><li>Hinting and Bitmap rendering</font><p> - - As said before, simply scaling outlines to a specific instance - always creates undesirable artifacts, like stems of different - widths or heights in letters like `E' or `H'. Proper glyph - rendering needs that the scaled points are aligned along the pixel - grid (hence the name <i>grid-fitting</i>), and that important - widths and heights are respected throughout the whole font (for - example, it is very often desirable that the letters `I' and `T' - have their central vertical line of the same pixel width).<p> - - Type 1 PostScript font files include with each glyph a small - series of distances called <i>hints</i>, which are later used by - the type manager to try grid-fitting the outlines as cleverly as - possible. On one hand, it has the consequence that upgrading your - font engine can enhance the visual aspects of all fonts of your - system; on the other hand, the quality of even the best version of - Adobe's Type Manager isn't always very pleasing at small sizes - (notwithstanding font smoothing).<p> - - TrueType takes a radically different approach: Each glyph has an - associated `program', designed in a specific geometrical language, - which is used to align explicitly each outline point to the pixel - grid, preserving important distances and metrics. A stack-based - low-level bytecode is used to store it in the font file, and is - interpreted later when rendering the scaled glyphs.<p> - - This means that even very complex glyphs can be rendered perfectly - at very small sizes, as long as the corresponding glyph code is - designed correctly. Moreover, a glyph can loose some of its - details, like serifs, at small sizes to become more readable, - because the bytecode provides interesting features.<p> - - However, this also have the sad implication that an ill-designed - glyph code will always render junk, whatever the font engine's - version, and that it's very difficult to produce quality glyph - code. There are about 200 TrueType opcodes, and no known - `high-level language' for it. Most type artists aren't - programmers at all and the only tools able to produce quality code - from vectorial representation have been distributed to only a few - font foundries, while tools available to the public, e.g. - Fontographer, are usually expensive though generating average to - mediocre glyph code.<p> - - All this explains why an enormous number of broken or ugly `free' - fonts have appeared on the TrueType scene, and that this format is - now mistakenly thought as `crap' by many people. Funnily, these - are often the same who stare at the `beauty' of the classic `Times - New Roman' and `Arial/Helvetica' at 8 points.<p> - - Once a glyph's code has been executed, the scan-line converter - converts the fitted outline into a bitmap (or a pixmap with - font-smoothing). - -</ol><p> - - -<hr><p> - -<font size="+2">III. Glyph metrics</font><p> - -<ol> - - <font size="+1"><li>Baseline, Pens and Layouts</font><p> - - The baseline is an imaginary line that is used to `guide' glyphs - when rendering text. It can be horizontal (e.g. Roman, Cyrillic, - Arabic, etc.) or vertical (e.g. Chinese, Japanese, etc). - Moreover, to render text, a virtual point, located on the - baseline, called the <i>pen position</i>, is used to locate - glyphs.<p> - - Each layout uses a different convention for glyph placement:<p> - - <ul> - - <li>With horizontal layout, glyphs simply `rest' on the - baseline. Text is rendered by incrementing the pen position, - either to the right or to the left.<p> - - <center> - <img src="image/baseline.gif" width=458 height=179><p> - </center> - - The distance between two successive pen positions is - glyph-specific and is called the <i>advance width</i>. Note - that its value is <b>always</b> positive, even for - right-to-left oriented alphabets, like Arabic. This - introduces some differences in the way text is rendered.<p> - - <hr> - <i>IMPORTANT NOTE:</i><p> - - The pen position is always placed on the baseline in - TrueType, unlike the convention used by some graphics - systems, like Windows, to always put the pen above the line, - at the ascender's position. - <hr><p> - - <li>With vertical layout, glyphs are centered around the - baseline:<p> - - <center> - <img src="image/baselin2.gif" width=162 height=275> - </center> - - </ul><p> - - <font size="+1"><li>Typographic metrics and bounding - boxes</font><p> - - A various number of face metrics are defined for all glyphs in - a given font. Three of them have a rather curious status in - the TrueType specification; they only apply to horizontal - layouts:<p> - - <ul> - - <li>The <i>ascent</i><p> - - This is the distance from the baseline to the highest/upper - grid coordinate used to place an outline point. It is a - positive value, due to the grid's orientation with the - y axis upwards.<p> - - <li>The <i>descent</i><p> - - The distance from the baseline to the lowest grid coordinate - used to place an outline point. This is a negative value, - due to the grid's orientation.<p> - - <li>The <i>linegap</i><p> - - The distance that must be placed between two lines of text. - The baseline-to-baseline distance should be computed as<p> - - <center> - ascent - descent + linegap - </center><p> - - if you use the typographic values. - - </ul><p> - - The problem with these metrics is that they appear three times - in a single font file, each version having a slightly different - meaning:<p> - - <ol> - - <li>The font's horizontal header provides the ascent, descent - and linegap fields, which are used to express the designer's - intents, rather than the real values that may be computed - from all glyphs in the outline. These are used by the - Macintosh font engine to perform font mapping (i.e. font - substitution).<p> - - <li>The OS/2 table provides the <i>usWinAscent</i> and - <i>usWinDescent</i> fields. These values are computed for - glyphs of the Windows ANSI charset only, which means that - they are wrong for any other glyph. Note that - <i>usWinDescent</i> is always positive (i.e. looks like - `-descent').<p> - - <li>The OS/2 table provides the <i>typoAscender</i>, - <i>typoDescender</i> and <i>typoLinegap</i> values, which - hopefully concern the whole font file. These are the - correct system-independent values! - - </ol><p> - - All metrics are expressed in font units. If you want to use any - of the two first versions of these metrics, the TrueType - specification contains some considerations and computing tips - that might help you.<p> - - Other, simpler metrics are:<p> - - <ul> - - <li>The glyph's bounding box, also called <i>bbox</i><p> - - This is an imaginary box that encloses any glyph (usually as - tightly as possible). It is represented by four fields, - namely <i>xMin</i>, <i>yMin</i>, <i>xMax</i>, and - <i>yMax</i>, that can be computed for any outline. In - FreeType, their values can be in font units (if measured in - the original outline) or in 26.6 pixel units (if - measured on scaled outlines).<p> - - Note that if it wasn't for grid-fitting, you wouldn't need - to know a box's complete values, but only its dimensions to - know how big is a glyph outline/bitmapa. However, correct - rendering of hinted glyphs needs the preservation of - important grid alignment on each glyph translation/placement - on the baseline, which is why FreeType always returns the - complete glyph outline.<p> - - Note also that the font's header contains a global font - bounding box in font units which should enclose all glyphs - in a font. This can be used to pre-compute the maximum - dimensions of any glyph at a given instance.<p> - - <li>The <i>internal leading</i><p> - - This concept comes directly from the world of traditional - typography. It represents the amount of space within the - `leading' which is reserved for glyph features that lay - outside of the EM square (like accentuation). It usually - can be computed as<p> - - <center> - internal_leading = ascent - descent - - EM_size - </center><p> - - <li>The <i>external leading</i><p> - - This is another name for the linegap. - - </ul><p> - - <font size="+1"><li><i>Bearings</i> and <i>Advances</i></font><p> - - Each glyph has also distances called <i>bearings</i> and - <i>advances</i>. Their definition is constant, but their values - depend on the layout, as the same glyph can be used to render - text either horizontally or vertically.<p> - - <ol> - <li>The <i>left side bearing</i>: a.k.a. <i>bearingX</i><p> - - This is the horizontal distance from the current pen - position to the glyph's left bounding box edge. It is - positive for horizontal layouts, and most generally negative - for vertical one.<p> - - <li>The <i>top side bearing</i>: a.k.a. <i>bearingY</i><p> - - This is the vertical distance from the baseline to the top - of the glyph's bounding box. It is usually positive for - horizontal layouts, and negative for vertical ones<p> - - <li>The <i>advance width</i>: a.k.a. <i>advanceX</i><p> - - This is the horizontal distance the pen position must be - incremented (for left-to-right writing) or decremented (for - right-to-left writing) by after each glyph is rendered when - processing text. It is always positive for horizontal - layouts, and null for vertical ones.<p> - - <li>The <i>advance height</i>: a.k.a. <i>advanceY</i><p> - - This is the vertical distance the pen position must be - decremented by after each glyph is rendered. It is always - null for horizontal layouts, and positive for vertical - layouts.<p> - - <li>The <i>glyph width</i><p> - - The glyph's horizontal extent. More simply, it is - (bbox.xMax - bbox.xMin) for unscaled font coordinates. - For scaled glyphs, its computation requests specific care, - described in the grid-fitting chapter below.<p> - - <li>The <i>glyph height</i><p> - - The glyph's vertical extent. More simply, it is - (bbox.yMax - bbox.yMin) for unscaled font coordinates. - For scaled glyphs, its computation requests specific care, - described in the grid-fitting chapter below.<p> - - <li>The <i>right side bearing</i><p> - - Only used for horizontal layouts to describe the distance - from the bbox's right edge to the advance width. It is in - most cases a non-negative number. The FreeType library - doesn't provide this metric directly, as it isn't really - part of the TrueType specification. It can be computed - simply as<p> - - <center> - advance_width - left_side_bearing - (xMax-xMin) - </center> - - </ol><p> - - <center> - <img src="image/metrics.gif" width=388 height=253><p> - - <img src="image/metrics2.gif" width=294 height=278> - </center><p> - - Finally, if you use `ABC widths' under Windows and OS/2, the - following relations apply: - -<pre> - A = left side bearing - B = width - C = right side bearing - - A+B+C = advance width -</pre> - - <font size="+1"><li>The effects of grid-fitting</font><p> - - All these metrics are stored in font units in the font file. - They must be scaled and grid-fitted properly to be used at a - specific instance. This implies several things:<p> - - <ul> - - <li>First, a glyph program not only aligns the outline along - the grid pixel, it also processes the left side bearing and - the advance width. Other grid-fitted metrics are usually - available in optional TrueType tables if you need them.<p> - - <li>A glyph program may decide to extend or stretch any of - these two metrics if it has a need for it. This means that - you cannot assume that the fitted metrics are simply equal - to the scaled one plus or minus a liberal distance - < 1 pixel (i.e., less than 64 fractional - pixel units). For example, it is often necessary to stretch - the letter `m' horizontally at small pixel sizes to make all - vertical stems visible, while the same glyph can be - perfectly `square' at larger sizes.<p> - - <li>Querying the fitted metrics of all glyphs at a given - instance is very slow, as it needs to load and process each - glyph independently. For this reason, some optional - TrueType tables are defined in the specification, containing - pre-computed metrics for specific instances (the most - commonly used, like 8, 9, 10, 11, 12, and 14 points at - 96dpi, for example). These tables aren't always present in - a TrueType font.<p> - - If you don't need the exact fitted value, it's much faster - to query the metrics in font units, then scale them to the - instance's dimensions. - - </ul><p> - - <hr> - <i>IMPORTANT NOTE:</i><p> - - Another very important consequence of grid-fitting is the fact - that moving a fitted outline by a non-integer pixel distance - will simply ruin the hinter's work, as alignments won't be - preserved. The translated glyph will then look `ugly' when - converted to a bitmap!<p> - - In other words, each time you want to translate a fitted glyph - outline, you must take care of only using integer pixel - distances (the x and y offsets must be multiples - of 64, which equals to 1.0 in the 26.6 fixed float - format). - - If you don't care about grid-fitting (typically when rendering - rotated text), you can use any offset you want and use sub-pixel - glyph placement. - <hr><p> - - </ol> - -<hr><p> - - -<font size="+2">IV. Text processing</font><p> - -This section demonstrates how to use the concepts previously defined -to render text, whatever the layout you use.<p> - -<ol> - - <font size="+1"><li>Writing simple text strings</font><p> - - We will start by generating a simple string with a Roman alphabet. - The layout is thus horizontal, left to right.<p> - - For now, we will assume all glyphs are rendered in a single target - bitmap. The case of generating individual glyph bitmaps, then - placing them on demand on a device is presented in a later chapter - of this section.<p> - - Rendering the string needs to place each glyph on the baseline; - this process looks like the following:<p> - - <ol> - - <li>Place the pen to the cursor position. The pen is always - located on the baseline. Its coordinates must be grid-fitted - (i.e. multiples of 64)!<p> - -<pre> - pen_x = cursor_x; - pen_y = cursor_y; -</pre> - - <li>Load the glyph outline and its metrics. Using the flag - TTLOAD_DEFAULT will scale and hint the glyph: - -<pre> - TT_Load_Glyph( instance, - glyph, - glyph_index, - TTLOAD_DEFAULT ); - - TT_Get_Glyph_Metrics( glyph, &metrics ); - TT_Get_Glyph_Outline( glyph, &outline ); -</pre> - - <li>The loader always places the glyph outline relative to the - imaginary pen position (0,0). You thus simply need to - translate the outline by the vector: - -<pre> - ( pen_x, pen_y ) -</pre> - - To place it on its correct position, you can use the call - -<pre> - TT_Translate_Outline( outline, pen_x, pen_y ); -</pre> - - <li>Render the outline in the target bitmap, the glyph will be - surimposed on it with a binary `or' operation (FreeType never - creates glyph bitmaps by itself, it simply renders glyphs in - the arrays you pass to it. See the API reference for a - complete description of bitmaps and pixmaps). - -<pre> - TT_Get_Outline_Bitmap( outline, &target_bitmap ); -</pre> - - <hr> - <i>IMPORTANT NOTE:</i><p> - - If you don't want to access the outline in your code, you can - also use the API function TT_Get_Glyph_Bitmap() which does the - same as the previous lines: - -<pre> - TT_Get_Glyph_Outline( glyph, &outline ); - TT_Translate_Outline( outline, x_offset, y_offset ); - TT_Get_Outline_Bitmap( outline, &target_bitmap ); - TT_Translate_Outline( outline, -x_offset, -y_offset ); -</pre> - - is equivalent to: - -<pre> - TT_Get_Glyph_Bitmap( glyph, - x_offset, - y_offset, - &target_bitmap ); -</pre> - <hr><p> - - <li>Now advance the pen to its next position. The advance is - always grid-fitted when the glyph was hinted:<p> - -<pre> - pen_x += metrics.advance; -</pre> - - The advance being grid-fitted, the pen position remains - aligned on the grid.<p> - - <li>Start over on item 2 until string completion. That's - it! - - </ol><p> - - <font size="+1"><li>Writing right-to-left and vertical text</font><p> - - Generating strings for different layouts is very similar. Here - are the most important differences.<p> - - <ul> - - <li>For right-to-left text (like Arabic)<p> - - The main difference here is that, as the advance width and - left side bearings are oriented against the flow of text, the - pen position must be <i>decremented</i> by the advance width, - <i>before</i> placing and rendering the glyph. Other than - that, the rest is strictly similar.<p> - - <li>For vertical text (like Chinese or Japanese)<p> - - In this case, the baseline is vertical, which means that the - pen position must be shifted in the vertical direction. You - need the vertical glyph metrics to do that (using the - TT_Get_Big_Glyph_Metrics() function).<p> - - Once you get these, the rest of the process is very similar. - The glyph outline is placed relative to an imaginary origin of - (0,0), and you should translate it to the pen position before - rendering it.<p> - - The big difference is that you must decrement pen_y, rather - than increment pen_x (this is for the TrueType convention of y - oriented upwards). - -<pre> - pen_y -= metrics.advance; -</pre> - - </ul><p> - - <font size="+1"><li>Generating individual glyph bitmaps and using - them to render text</font><p> - - Loading each glyph when rendering text is slow, and it's much - more efficient to render each one in a standalone bitmap to place - it in a cache. Text can then be rendered fast by applying simple - blit operations on the target device.<p> - - To be able to render text correctly with the bitmaps, you must - record and associate with them its fitted bearings and advances. - Hence the following process:<p> - - <ol> - - <li>Generate the bitmaps.<p> - - <ul> - - <li>Load the glyph and get its metrics. - -<pre> - TT_Load_Glyph( instance, - glyph, - glyph_index, - TTLOAD_DEFAULT ); - - TT_Get_Glyph_Metrics( glyph, &metrics ); -</pre> - - The bbox is always fitted when calling - TT_Get_Glyph_Metrics() on a hinted glyph. You can then - easily compute the glyph's dimension in pixels as: - -<pre> - width = (bbox.xMax - bbox.xMin) / 64; - height = (bbox.yMax - bbox.yMin) / 64; -</pre> - - NOTE 1:<br> - The fitted bounding box always contains all the dropouts - that may be produced by the scan-line converter. This - width and height are thus valid for all kinds of - glyphs).<p> - - NOTE 2:<br> - If you want to compute the dimensions of a rotated - outline's bitmap, compute its bounding box with - TT_Get_Outline_BBox(), then grid-fit the bbox manually: - -<pre> - #define FLOOR(x) ((x) & -64) - #define CEILING(x) (((x)+63) & -64) - - xMin = FLOOR(xMin); - yMin = FLOOR(yMin); - yMin = CEILING(xMax); - yMax = CEILING(yMax); -</pre> - - then compute width and height as above.<p> - - <li>Create a bitmap of the given dimension, e.g.: - -<pre> - bitmap.width = width; - bitmap.cols = (width+7) & -8; - bitmap.rows = height; - bitmap.flow = TT_Flow_Up; - bitmap.size = bitmap.cols * bitmap.rows; - bitmap.buffer = malloc( bitmap.size ); -</pre> - - <li>Render the glyph into the bitmap.<p> - - Don't forget to shift it by (-xMin, -yMin) to fit it in - the bitmap: - -<pre> - /* Note that the offsets must be grid-fitted to */ - /* preserve hinting! */ - TT_Get_Glyph_Bitmap( glyph, - &bitmap, - -bbox.xMin, - -bbox.yMin ); -</pre> - - </ul> - - <li>Store the bitmap with the following values: - -<pre> - bearingX / 64 = left side bearing in pixels - advance / 64 = advance width/height in pixels -</pre> - - When your cache is set up, you can then render text using a - scheme similar to the ones describe in 1. and 2., - with the exception that now pen positions and metrics are - expressed in pixel values. We are done! - -<pre> - pen_x = cursor_x; - pen_y = cursor_y; - - while ( glyph_to_render ) - { - access_cache( glyph_index, metrics, bitmap ); - - blit_bitmap_to_position - ( pen_x + bearingX, - pen_y (+ bearingY depending on orientation ) ); - - pen_x += advance; - } -</pre> - - </ol> - - <font size="+1"><li>Device-independent text rendering</font><p> - - The previously described rendering processes all align glyphs on - the baseline according to metrics fitted for the display's - distance. In some cases, the display isn't the final output, and - placing the glyphs in a device-independent way is more important - than anything.<p> - - A typical case is a word processor which displays text as it - should appear on paper when printed. As you've probably noticed, - the glyphs aren't always spaced uniformly on the screen as you - type them, sometimes the space between an `m' and a `t' is too - small, some other it is too large, etc.<p> - - These differences are simply due to the fact that the word - processor aligns glyphs in an device-independent way, using - original metrics in font units to do it, then scale them as it - can to display text on screen, usually at a very smaller - resolution than your printer's one.<p> - - Device-independence is a crucial part of document portability, - and it is very saddening to see that most professional word - processors don't do it correctly. For example, MS Word uses - the fitted metrics of the printer's resolution, rather than the - originals in font units.<p> - - This is great to get sure that your text prints very well on your - printer, but it also implies that someone printing the exact same - document on a device with different output resolutions (e.g. - bubble-jet vs. laser printers) may encounter trouble.<p> - - As the differences in advances accumulate on one line, they can - sum to the width of one or more glyphs in extreme cases, which is - enough to `overflow' the automatic justification algorithm. This - may add additional lines of printed text, or even remove some. - Moreover, supplemental lines can produce unexpected page breaks - and `blank' pages. This can be extremely painful when working - with large documents, as this `feature' may require you to - redesign completely your formatting to re-print it.<p> - - In conclusion, if you want portable document rendering, never - hesitate to use and apply device-independent terms! For example, - a simple way to produce text would be:<p> - - <ol> - - <li>Get a scale to convert from your device-independent units - to 26.6 pixels.<p> - - <li>Get another scale to convert from original font units to - device-independent units.<p> - - <li>Perform pen placement and advances in device-independent - units.<p> - - <li>To render each glyph, compute the pen's rounded position, - as well as the rounded glyph left side bearing, both - expressed in 26.6 pixels (don't use the fitted metrics). You - will then be able to place the glyph and/or blit its bitmap. - - </ol><p> - - <font size="+1"><li>Kerning glyphs</font><p> - - An interesting effect that most people appreciate is - <i>kerning</i>. It consists of modifying the spacing between two - successive glyphs according to their outlines. For example, the - letters `T' and a `y' can be easily moved closer, as the top of - the `y' fits nicely under the `T's upper right bar.<p> - - To perform kerning, the TrueType specification provides a - specific table (its tag being `kern'), with several storage - formats. This section doesn't explain how to access this - information; however, you can have a look at the standard - extension called `ttkern.h' which comes with FreeType.<p> - - The <i>kerning distance</i> between two glyphs is a value - expressed in font units which indicates whether their outline can - be moved together or apart when one follows the other. The - distance isn't reflexive, which means that the kerning for the - glyph pair (`T',`y') isn't the same as the one for (`y',`T').<p> - - The value is positive when the glyphs must be moved apart, and - negative when they must be moved closer. You can implement - kerning simply by adding its scaled and rounded value to the - advance width when moving the pen position. Here an example for - horizontal kerning: - -<pre> - #define ROUND( x ) ( (x + 32) & -64 ) - - scaled_kerning = kerning * imetrics.x_scale / 0x10000; - - pen_x += metrics.advance + ROUND( scaled_kerning ); -</pre> - - <font size="+1"><li>Rotated and stretched/slanted text</font><p> - - In order to produce rotated glyphs with FreeType, one must - understand a few things:<p> - - <ul> - - <li>The engine doesn't apply specific transformations to the - glyphs it loads and processes (other than the simpler - resolution-base scaling and grid-fitting). If you want to - rotate glyphs, you will have to load their outline, then apply - the geometric transformations that please you (a number of - APIs are there to help you to do it easily).<p> - - <li>Even if the glyph loader hints `straight' glyphs, it is - possible to inform the font and glyph programs that you're - going to later transform the resulting outlines. Two flags - can be passed to the bytecode interpreter:<p> - - <ul> - - <li>The `rotated' flag indicates that you are going to - rotate the glyphs in a non-trivial direction (i.e., on - neither of the two coordinate axis). You are advised not - to set it when writing 90 degrees-rotated text for - example.<p> - - <li>The `stretched' flag indicates that you are going to - apply a transformation that will distort distances. While - rotations and symmetries keep distances constant, slanting - and stretching do modify them. - - </ul> - - </ul><p> - - These flags can be interpreted by the glyph code to toggle certain - processings which vary from one font to the other. However, most - of the TrueType fonts that were tested with FreeType, if not all - of them, simply change the dropout-mode when any of these flags is - set, and/or disable hinting when rotation is detected. We advise - you to never set these flags, even when rotating text. For what - it's worth, hinted rotated text is no uglier than un-hinted - one.<p> - - You can use the function TT_Set_Instance_Transform_Flags() to set - them. Then, rendering can be done with the following calls: - -<pre> - /* set the flags */ - TT_Set_Instance_Transforms( instance, - rotated, - stretched ); - - /* load a given glyph */ - TT_Get_Glyph_Outline( instance, - glyph, - index, - TTLOAD_DEFAULT ); - - /* access its outline */ - TT_Get_Glyph_Outline( instance, &outline ); - - /* in order to transform it */ - TT_Transform_Outline( outline, &matrix ); - /* and/or */ - TT_Translate_Outline( outline, - x_offset, y_offset ); - - /* to render it */ - TT_Get_Outline_Bitmap( outline, &bitmap ); -</pre> - - Here is an example, assuming that the following variables - -<pre> - TT_Matrix matrix; /* 2x2 matrix */ - TT_Pos x_off, y_off; /* corrective offsets */ -</pre> - - define a transformation that can be correctly applied to a glyph - outline which have been previously placed relative to the - imaginary point position (0,0) with bearings preserved. Rendering - text can now be done as follows:<p> - - <ol> - - <li>Initialize the pen position; when rotating, it is extremely - well advised to use sub-pixel placement as you don't care - about hinting. - -<pre> - pen_x = cursor_x; - pen_y = cursor_y; -</pre> - - <li>Transform the glyph as needed, then translate it to the - current pen position: - -<pre> - TT_Transform_Outline( outline, &matrix ); - TT_Translate_Outline( outline, - pen_x + x_off, - pen_y + y_off ); -</pre> - - (Note that the transformation offsets have been included in - the translation.)<p> - - <li>Render the bitmap, as it has now been placed correctly.<p> - - <li>To change the pen position, transform the vector (0,advance) - with your matrix, and add it: - -<pre> - vec_x = metrics.advance; - vec_y = 0; - TT_Transform_Vector( &vec_x, &vec_y, &matrix ); - pen_x += vec_x; - pen_y += vec_y; -</pre> - - <li>Start over at 2. until completion. - - </ol><p> - - <hr> - <i>IMPORTANT NOTE:</i><p> - - Do not grid-fit the pen position before rendering your glyph when - rendering rotated text. If you do, your transformed baseline - won't be preserved on each glyph, and the text will look like it's - `hopping' randomly. This is particularly visible at small - sizes.<p> - - Sub-pixel precision placement is <i>very</i> important for clean - rotated text. - <hr><p> - - <font size="+1"><li>Font-smoothing, a.k.a. gray-levels - rendering</font><p> - - The FreeType engine's scan-line converter (the component also - called the <i>rasterizer</i>) is able to convert a vectorial glyph - outline into either a normal bitmap, or an 8-bit pixmap (a.k.a. - <i>colored bitmaps</i> on some systems). This last feature is - called <i>gray-level rendering</i> or <i>font-smoothing</i>, - because it uses a user-supplied palette to produce anti-aliased - versions of the glyphs.<p> - - Its principle is to render a bitmap which is twice as large than - the target pixmap, then simply filtering it using a 2x2 - summation.<p> - - <hr> - <i>NOTE:</i><p> - - FreeType's scan-line converter doesn't use or need an intermediate - second bitmap. Rather, filtering is performed in a single pass - during the sweep (see the file `raster.txt' for more information - about it). - <hr><p> - - You'll notice that, as with Windows 95, FreeType's rasterizer - only grays those parts of the glyph which need it, i.e., diagonals - and curves, while keeping horizontal and vertical stems straight - `black'. This greatly improves the legibility of text, while - avoiding the `blurry' look anti-aliased fonts typically found with - Adobe's Type Manager or Acrobat.<p> - - There are thus five available gray-levels, ranging from 0 - to 4, where level 0 and level 4 are the background - and foreground colors, respectively, and where levels 1, - 2, 3 are intermediate. For example, to render black text on - a white background, one can use a palette like:<p> - - <ul> - - palette[0] = white (background) <br> - palette[1] = light gray <br> - palette[2] = medium gray <br> - palette[3] = dark gray <br> - palette[4] = black (foreground) <br> - - </ul><p> - - To set the engine's gray-level palette, simply use the API - function TT_Set_Raster_Palette() after initialization. It expects - an array of 5 chars which will be used to render the - pixmaps.<p> - - Note that the rasterizer doesn't create bitmaps or pixmaps. - Rather, it simply renders glyphs in the arrays you pass to it. - The generated glyph bitmaps are simply `or'-ed to the target (with - 0 being the background as a convention); in the case of pixmaps, - pixels are simply written to the buffer, in spans of four aligned - bytes.<p> - - <hr> - <i>NOTE:</i><p> - - The raster isn't able to superpose `transparent' glyphs on the - target pixmap. This means that you should always call the API - functions TT_Get_Glyph_Pixmap() and TT_Get_Outline_Pixmap() with - an empty map, and perform the superposition yourself.<p> - - This can be more or less tricky, depending on the palette you are - using and your target graphics resolution. One of the components - found in the test directory, called `display.c', has large - comments on the way it implements it for the test programs. You - are encouraged to read the test program sources to understand how - one can take advantage of font smoothing.<p> - - Pixmap surimposition is too system-specific a feature to be part - of the FreeType engine. Moreover, not everybody needs it! - <hr><p> - - Finally, the question of sur-imposing anti-aliased colored text on - any texture, since being even more tricky, is left as an exercise - to the reader ;-) If this topic really interests you, the - FreeType mailing list may host some helpful enthusiasts ready to - answer your questions. Who knows :-)<p> - - <font size="+1"><li>Other interesting text processes</font><p> - - <ul> - - <li>Glyph substitution<p> - - Substitution is used to replace one glyph by another when some - specific condition is met in the text string. Its most common - examples are ligatures (like replacing the `f' followed by `i' - by the single glyph `fi' if available in the font), as well as - positional selection as performed in the Arabic script (for - those not aware of this, each letter of the Arabic alphabet - can be written differently according to its position on words: - starting, ending, intermediate, or isolated).<p> - - The base TrueType format doesn't define any table for glyph - substitution. However, GX, TrueType Open, and OpenType - provide (incompatible) extensions to perform it. Of course, - it isn't supported by the engine, but an extension could be - easily written to access the required tables.<p> - - [Support for TrueType Open is already partially available.]<p> - - <li>Justification<p> - - ... - - </ul> - -</ol> - -To be continued... - -</body> -</html> diff --git a/Build/source/libs/freetype/freetype-1.5/docs/glyphs.txt b/Build/source/libs/freetype/freetype-1.5/docs/glyphs.txt deleted file mode 100644 index 239686aefea..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/docs/glyphs.txt +++ /dev/null @@ -1,999 +0,0 @@ -http://www.freetype.org - - Glyph Hell - - An introduction to glyphs, as used and defined in the FreeType engine - - ------------------------------------------------------------------------ - -Introduction - -This article discusses in great detail the definition of glyph metrics, per -se the TrueType specification, and the way they are managed and used by the -FreeType engine. This information is crucial when it comes to rendering text -strings, either in a conventional (i.e. Roman) layout, or with vertical or -right-to-left ones. Some aspects like glyph rotation and transformation are -explained too. - -Comments and corrections are highly welcome, and can be sent to the FreeType -developers list. - - ------------------------------------------------------------------------ - -I. An overview of font files - -In TrueType, a single font file is used to contain information related to -classification, modeling and rendering of text using a given typeface. This -data is located in various independent `tables', which can be sorted in four -simple classes, as described below: - - * Face Data - - We call face data the amount of information related to a given - typeface, independently of any particular scaling, transformation, - and/or glyph index. This usually means some typeface-global metrics and - attributes, like family and styles, PANOSE number, typographic - ascenders and descenders, as well as some very TrueType specific items - like the font `programs' found in the fpgm and prep tables, the gasp - table, character mappings, etc. - - In FreeType, a face object is used to model a font file's face data. - - * Instance Data - - We call instance a given pointsize/transformation, at a given device - resolution (e.g. 8pt at 96x96dpi, or 12pt at 300x600dpi, etc). Some - tables found in the font files are used to produce instance-specific - data, like the cvt table, or the prep program. Though they are often - part of the face data, their processing results in information called - instance data. - - In FreeType, it is modeled through an instance object, which is always - created from an existing face object. - - * Glyph Data - - We call glyph data the piece of information related to specific glyphs. - This includes the following things that are described in more details - in the next sections: - - o The glyph's vectorial representation, also called its outline. - - o Various metrics, like the glyph's bounding box, its bearings and - advance values. - - o TrueType specifies a specific instruction bytecode, used to - associate each glyph with a small program, called the glyph code. - Its purpose is to grid-fit the outline to any target instance, in - order to produce excellent output at small pixel sizes. - - The FreeType engine doesn't map each glyph to a single structure, as - this would waste memory for no good reason. Rather, a glyph object is a - container, created from any active face, which can be used to load - and/or process any font glyph at any instance (or even no instance at - all). Of course, the glyph properties (outline, metrics, bitmaps, etc.) - can be extracted independently from an object once it has been loaded - or processed. - - * Text and Layout Data - - Finally, there is a last class of data that doesn't really fit in all - others, and that can be called text data. It comprises information - related to the grouping of glyphs together to form text. Simple - examples are the kerning table, which controls the spacing between - adjacent glyphs, as well as some of the extensions introduced in - TrueType Open, OpenType, and TrueType GX like glyph substitution - (ligatures, vertical representations), baseline management, - justification, etc. - - This article focuses on the basic TrueType tables, and hence, will only - talk about kerning, as FreeType doesn't support OpenType nor GX (yet). - [Support for TrueType Open is already partially available.] - - ------------------------------------------------------------------------ - -II. Glyph Outlines - -TrueType is a scalable font format; it is thus possible to render glyphs at -any scale, and under any affine transform, from a single source -representation. However, simply scaling vectorial shapes exhibits at small -sizes (where `small' refers here to anything smaller than at least -150 pixels) a collection of un-harmonious artifacts, like widths and/or -heights degradations. - -Because of this, the format also provides a complete programming language -used to design small programs associated to each glyph. Its role is to align -the point positions on the pixel grid after the scaling. This operation is -hence called grid-fitting, or even hinting. - - 1. Vectorial representation - - The source format of outlines is a collection of closed paths called - contours. Each contour delimits an outer or inner region of the glyph, - and can be made of either line segments and/or second-order beziers - (also called conic beziers or quadratics). - - It is described internally as a series of successive points, with each - point having an associated flag indicating whether it is `on' or `off' - the curve. These rules are applied to decompose the contour: - - o Two successive `on' points indicate a line segment joining them. - - o One `off' point amidst two `on' points indicates a conic bezier, - the `off' point being the control point, and the `on' ones the - start and end points. - - o Finally, two successive `off' points forces the rasterizer to - create (only during bitmap rendering) a virtual `on' point amidst - them, at their exact middle. This greatly facilitates the - definition of successive Bezier arcs. - - * # on - * off - __---__ - #-__ _-- -_ - --__ _- - - --__ # \ - --__ # - -# - Two `on' points - Two `on' points and one `off' point - between them - - * - # __ Two `on' points with two `off' - \ - - points between them. The point - \ / \ marked `0' is the middle of the - - 0 \ `off' points, and is a `virtual - -_ _- # on' point where the curve passes. - -- It does not appear in the point - list. - * - - Each glyph's original outline points are located on a grid of - indivisible units. The points are stored in the font file as - 16-bit integer grid coordinates, with the grid origin's being at (0,0); - they thus range from -16384 to 16383. - - In creating the glyph outlines, a type designer uses an imaginary - square called the EM square. Typically, the EM square encloses the - capital letter `M' and most other letters of a typical roman alphabet. - The square's size, i.e., the number of grid units on its sides, is very - important for two reasons: - - o It is the reference used to scale the outlines to a given - instance. For example, a size of 12pt at 300x300dpi corresponds to - 12*300/72 = 50 pixels. This is the size the EM square would appear - on the output device if it was rendered directly. In other words, - scaling from grid units to pixels uses the formula - - pixel_size = point_size * resolution / 72 - - pixel_coordinate = grid_coordinate * pixel_size / EM_size - - o The greater the EM size is, the larger resolution the designer can - use when digitizing outlines. For example, in the extreme example - of an EM size of 4 units, there are only 25 point positions - available within the EM square which is clearly not enough. - Typical TrueType fonts use an EM size of 2048 units (note: with - Type 1 PostScript fonts, the EM size is fixed to 1000 grid units. - However, point coordinates can be expressed in floating values). - - Note that glyphs can freely extend beyond the EM square if the font - designer wants this. The EM is used as a convenience, and is a valuable - convenience from traditional typography. - - Grid units are very often called font units or EM units. - - ----------------------------------------------------------------------- - IMPORTANT NOTE: - - Under FreeType, scaled pixel positions are all expressed in the 26.6 - fixed float format (made of a 26-bit integer mantissa, and a 6-bit - fractional part). In other words, all coordinates are multiplied by 64. - The grid lines along the integer pixel positions, are multiples of 64, - like (0,0), (64,0), (0,64), (128,128), etc., while the pixel centers - lie at middle coordinates (32 modulo 64) like (32,32), (96,32), etc. - ----------------------------------------------------------------------- - - 2. Hinting and Bitmap rendering - - As said before, simply scaling outlines to a specific instance always - creates undesirable artifacts, like stems of different widths or - heights in letters like `E' or `H'. Proper glyph rendering needs that - the scaled points are aligned along the pixel grid (hence the name - grid-fitting), and that important widths and heights are respected - throughout the whole font (for example, it is very often desirable that - the letters `I' and `T' have their central vertical line of the same - pixel width). - - Type 1 PostScript font files include with each glyph a small series of - distances called hints, which are later used by the type manager to try - grid-fitting the outlines as cleverly as possible. On one hand, it has - the consequence that upgrading your font engine can enhance the visual - aspects of all fonts of your system; on the other hand, the quality of - even the best version of Adobe's Type Manager isn't always very - pleasing at small sizes (notwithstanding font smoothing). - - TrueType takes a radically different approach: Each glyph has an - associated `program', designed in a specific geometrical language, - which is used to align explicitly each outline point to the pixel grid, - preserving important distances and metrics. A stack-based low-level - bytecode is used to store it in the font file, and is interpreted later - when rendering the scaled glyphs. - - This means that even very complex glyphs can be rendered perfectly at - very small sizes, as long as the corresponding glyph code is designed - correctly. Moreover, a glyph can loose some of its details, like - serifs, at small sizes to become more readable, because the bytecode - provides interesting features. - - However, this also have the sad implication that an ill-designed glyph - code will always render junk, whatever the font engine's version, and - that it's very difficult to produce quality glyph code. There are about - 200 TrueType opcodes, and no known `high-level language' for it. Most - type artists aren't programmers at all and the only tools able to - produce quality code from vectorial representation have been - distributed to only a few font foundries, while tools available to the - public, e.g. Fontographer, are usually expensive though generating - average to mediocre glyph code. - - All this explains why an enormous number of broken or ugly `free' fonts - have appeared on the TrueType scene, and that this format is now - mistakenly thought as `crap' by many people. Funnily, these are often - the same who stare at the `beauty' of the classic `Times New Roman' and - `Arial/Helvetica' at 8 points. - - Once a glyph's code has been executed, the scan-line converter converts - the fitted outline into a bitmap (or a pixmap with font-smoothing). - - ------------------------------------------------------------------------ - -III. Glyph metrics - - 1. Baseline, Pens and Layouts - - The baseline is an imaginary line that is used to `guide' glyphs when - rendering text. It can be horizontal (e.g. Roman, Cyrillic, Arabic, - etc.) or vertical (e.g. Chinese, Japanese, etc). Moreover, to render - text, a virtual point, located on the baseline, called the pen - position, is used to locate glyphs. - - Each layout uses a different convention for glyph placement: - - o With horizontal layout, glyphs simply `rest' on the baseline. Text - is rendered by incrementing the pen position, either to the right - or to the left. - - [Image] - - The distance between two successive pen positions is - glyph-specific and is called the advance width. Note that its - value is always positive, even for right-to-left oriented - alphabets, like Arabic. This introduces some differences in the - way text is rendered. - - ------------------------------------------------------------------ - IMPORTANT NOTE: - - The pen position is always placed on the baseline in TrueType, - unlike the convention used by some graphics systems, like Windows, - to always put the pen above the line, at the ascender's position. - ------------------------------------------------------------------ - - o With vertical layout, glyphs are centered around the baseline: - - [Image] - - 2. Typographic metrics and bounding boxes - - A various number of face metrics are defined for all glyphs in a given - font. Three of them have a rather curious status in the TrueType - specification; they only apply to horizontal layouts: - - o The ascent - - This is the distance from the baseline to the highest/upper grid - coordinate used to place an outline point. It is a positive value, - due to the grid's orientation with the y axis upwards. - - o The descent - - The distance from the baseline to the lowest grid coordinate used - to place an outline point. This is a negative value, due to the - grid's orientation. - - o The linegap - - The distance that must be placed between two lines of text. The - baseline-to-baseline distance should be computed as - - ascent - descent + linegap - - if you use the typographic values. - - The problem with these metrics is that they appear three times in a - single font file, each version having a slightly different meaning: - - 1. The font's horizontal header provides the ascent, descent and - linegap fields, which are used to express the designer's intents, - rather than the real values that may be computed from all glyphs - in the outline. These are used by the Macintosh font engine to - perform font mapping (i.e. font substitution). - - 2. The OS/2 table provides the usWinAscent and usWinDescent fields. - These values are computed for glyphs of the Windows ANSI charset - only, which means that they are wrong for any other glyph. Note - that usWinDescent is always positive (i.e. looks like `-descent'). - - 3. The OS/2 table provides the typoAscender, typoDescender and - typoLinegap values, which hopefully concern the whole font file. - These are the correct system-independent values! - - All metrics are expressed in font units. If you want to use any of the - two first versions of these metrics, the TrueType specification - contains some considerations and computing tips that might help you. - - Other, simpler metrics are: - - o The glyph's bounding box, also called bbox - - This is an imaginary box that encloses any glyph (usually as - tightly as possible). It is represented by four fields, namely - xMin, yMin, xMax, and yMax, that can be computed for any outline. - In FreeType, their values can be in font units (if measured in the - original outline) or in 26.6 pixel units (if measured on scaled - outlines). - - Note that if it wasn't for grid-fitting, you wouldn't need to know - a box's complete values, but only its dimensions to know how big - is a glyph outline/bitmapa. However, correct rendering of hinted - glyphs needs the preservation of important grid alignment on each - glyph translation/placement on the baseline, which is why FreeType - always returns the complete glyph outline. - - Note also that the font's header contains a global font bounding - box in font units which should enclose all glyphs in a font. This - can be used to pre-compute the maximum dimensions of any glyph at - a given instance. - - o The internal leading - - This concept comes directly from the world of traditional - typography. It represents the amount of space within the `leading' - which is reserved for glyph features that lay outside of the EM - square (like accentuation). It usually can be computed as - - internal_leading = ascent - descent - EM_size - - o The external leading - - This is another name for the linegap. - - 3. Bearings and Advances - - Each glyph has also distances called bearings and advances. Their - definition is constant, but their values depend on the layout, as the - same glyph can be used to render text either horizontally or - vertically. - - 1. The left side bearing: a.k.a. bearingX - - This is the horizontal distance from the current pen position to - the glyph's left bounding box edge. It is positive for horizontal - layouts, and most generally negative for vertical one. - - 2. The top side bearing: a.k.a. bearingY - - This is the vertical distance from the baseline to the top of the - glyph's bounding box. It is usually positive for horizontal - layouts, and negative for vertical ones - - 3. The advance width: a.k.a. advanceX - - This is the horizontal distance the pen position must be - incremented (for left-to-right writing) or decremented (for - right-to-left writing) by after each glyph is rendered when - processing text. It is always positive for horizontal layouts, and - null for vertical ones. - - 4. The advance height: a.k.a. advanceY - - This is the vertical distance the pen position must be decremented - by after each glyph is rendered. It is always null for horizontal - layouts, and positive for vertical layouts. - - 5. The glyph width - - The glyph's horizontal extent. More simply, it is (bbox.xMax - - bbox.xMin) for unscaled font coordinates. For scaled glyphs, its - computation requests specific care, described in the grid-fitting - chapter below. - - 6. The glyph height - - The glyph's vertical extent. More simply, it is (bbox.yMax - - bbox.yMin) for unscaled font coordinates. For scaled glyphs, its - computation requests specific care, described in the grid-fitting - chapter below. - - 7. The right side bearing - - Only used for horizontal layouts to describe the distance from the - bbox's right edge to the advance width. It is in most cases a - non-negative number. The FreeType library doesn't provide this - metric directly, as it isn't really part of the TrueType - specification. It can be computed simply as - - advance_width - left_side_bearing - (xMax-xMin) - - [Image] - - [Image] - - Finally, if you use `ABC widths' under Windows and OS/2, the following - relations apply: - - A = left side bearing - B = width - C = right side bearing - - A+B+C = advance width - - 4. The effects of grid-fitting - - All these metrics are stored in font units in the font file. They must - be scaled and grid-fitted properly to be used at a specific instance. - This implies several things: - - o First, a glyph program not only aligns the outline along the grid - pixel, it also processes the left side bearing and the advance - width. Other grid-fitted metrics are usually available in optional - TrueType tables if you need them. - - o A glyph program may decide to extend or stretch any of these two - metrics if it has a need for it. This means that you cannot assume - that the fitted metrics are simply equal to the scaled one plus or - minus a liberal distance < 1 pixel (i.e., less than 64 fractional - pixel units). For example, it is often necessary to stretch the - letter `m' horizontally at small pixel sizes to make all vertical - stems visible, while the same glyph can be perfectly `square' at - larger sizes. - - o Querying the fitted metrics of all glyphs at a given instance is - very slow, as it needs to load and process each glyph - independently. For this reason, some optional TrueType tables are - defined in the specification, containing pre-computed metrics for - specific instances (the most commonly used, like 8, 9, 10, 11, 12, - and 14 points at 96dpi, for example). These tables aren't always - present in a TrueType font. - - If you don't need the exact fitted value, it's much faster to - query the metrics in font units, then scale them to the instance's - dimensions. - - ----------------------------------------------------------------------- - IMPORTANT NOTE: - - Another very important consequence of grid-fitting is the fact that - moving a fitted outline by a non-integer pixel distance will simply - ruin the hinter's work, as alignments won't be preserved. The - translated glyph will then look `ugly' when converted to a bitmap! - - In other words, each time you want to translate a fitted glyph outline, - you must take care of only using integer pixel distances (the x and - y offsets must be multiples of 64, which equals to 1.0 in the 26.6 - fixed float format). If you don't care about grid-fitting (typically - when rendering rotated text), you can use any offset you want and use - sub-pixel glyph placement. - ----------------------------------------------------------------------- - - ------------------------------------------------------------------------ - -IV. Text processing - -This section demonstrates how to use the concepts previously defined to -render text, whatever the layout you use. - - 1. Writing simple text strings - - We will start by generating a simple string with a Roman alphabet. The - layout is thus horizontal, left to right. - - For now, we will assume all glyphs are rendered in a single target - bitmap. The case of generating individual glyph bitmaps, then placing - them on demand on a device is presented in a later chapter of this - section. - - Rendering the string needs to place each glyph on the baseline; this - process looks like the following: - - 1. Place the pen to the cursor position. The pen is always located on - the baseline. Its coordinates must be grid-fitted (i.e. multiples - of 64)! - - pen_x = cursor_x; - pen_y = cursor_y; - - 2. Load the glyph outline and its metrics. Using the flag - TTLOAD_DEFAULT will scale and hint the glyph: - - TT_Load_Glyph( instance, - glyph, - glyph_index, - TTLOAD_DEFAULT ); - - TT_Get_Glyph_Metrics( glyph, &metrics ); - TT_Get_Glyph_Outline( glyph, &outline ); - - 3. The loader always places the glyph outline relative to the - imaginary pen position (0,0). You thus simply need to translate - the outline by the vector: - - ( pen_x, pen_y ) - - To place it on its correct position, you can use the call - - TT_Translate_Outline( outline, pen_x, pen_y ); - - 4. Render the outline in the target bitmap, the glyph will be - surimposed on it with a binary `or' operation (FreeType never - creates glyph bitmaps by itself, it simply renders glyphs in the - arrays you pass to it. See the API reference for a complete - description of bitmaps and pixmaps). - - TT_Get_Outline_Bitmap( outline, &target_bitmap ); - - ------------------------------------------------------------------ - IMPORTANT NOTE: - - If you don't want to access the outline in your code, you can also - use the API function TT_Get_Glyph_Bitmap() which does the same as - the previous lines: - - TT_Get_Glyph_Outline( glyph, &outline ); - TT_Translate_Outline( outline, x_offset, y_offset ); - TT_Get_Outline_Bitmap( outline, &target_bitmap ); - TT_Translate_Outline( outline, -x_offset, -y_offset ); - - is equivalent to: - - TT_Get_Glyph_Bitmap( glyph, - x_offset, - y_offset, - &target_bitmap ); - - ------------------------------------------------------------------ - - 5. Now advance the pen to its next position. The advance is always - grid-fitted when the glyph was hinted: - - pen_x += metrics.advance; - - The advance being grid-fitted, the pen position remains aligned on - the grid. - - 6. Start over on item 2 until string completion. That's it! - - 2. Writing right-to-left and vertical text - - Generating strings for different layouts is very similar. Here are the - most important differences. - - o For right-to-left text (like Arabic) - - The main difference here is that, as the advance width and left - side bearings are oriented against the flow of text, the pen - position must be decremented by the advance width, before placing - and rendering the glyph. Other than that, the rest is strictly - similar. - - o For vertical text (like Chinese or Japanese) - - In this case, the baseline is vertical, which means that the pen - position must be shifted in the vertical direction. You need the - vertical glyph metrics to do that (using the - TT_Get_Big_Glyph_Metrics() function). - - Once you get these, the rest of the process is very similar. The - glyph outline is placed relative to an imaginary origin of (0,0), - and you should translate it to the pen position before rendering - it. - - The big difference is that you must decrement pen_y, rather than - increment pen_x (this is for the TrueType convention of y oriented - upwards). - - pen_y -= metrics.advance; - - 3. Generating individual glyph bitmaps and using them to render text - - Loading each glyph when rendering text is slow, and it's much more - efficient to render each one in a standalone bitmap to place it in a - cache. Text can then be rendered fast by applying simple blit - operations on the target device. - - To be able to render text correctly with the bitmaps, you must record - and associate with them its fitted bearings and advances. Hence the - following process: - - 1. Generate the bitmaps. - - + Load the glyph and get its metrics. - - TT_Load_Glyph( instance, - glyph, - glyph_index, - TTLOAD_DEFAULT ); - - TT_Get_Glyph_Metrics( glyph, &metrics ); - - The bbox is always fitted when calling TT_Get_Glyph_Metrics() - on a hinted glyph. You can then easily compute the glyph's - dimension in pixels as: - - width = (bbox.xMax - bbox.xMin) / 64; - height = (bbox.yMax - bbox.yMin) / 64; - - NOTE 1: - The fitted bounding box always contains all the dropouts that - may be produced by the scan-line converter. This width and - height are thus valid for all kinds of glyphs). - - NOTE 2: - If you want to compute the dimensions of a rotated outline's - bitmap, compute its bounding box with TT_Get_Outline_BBox(), - then grid-fit the bbox manually: - - #define FLOOR(x) ((x) & -64) - #define CEILING(x) (((x)+63) & -64) - - xMin = FLOOR(xMin); - yMin = FLOOR(yMin); - yMin = CEILING(xMax); - yMax = CEILING(yMax); - - then compute width and height as above. - - + Create a bitmap of the given dimension, e.g.: - - bitmap.width = width; - bitmap.cols = (width+7) & -8; - bitmap.rows = height; - bitmap.flow = TT_Flow_Up; - bitmap.size = bitmap.cols * bitmap.rows; - bitmap.buffer = malloc( bitmap.size ); - - + Render the glyph into the bitmap. - - Don't forget to shift it by (-xMin, -yMin) to fit it in the - bitmap: - - /* Note that the offsets must be grid-fitted to */ - /* preserve hinting! */ - TT_Get_Glyph_Bitmap( glyph, - &bitmap, - -bbox.xMin, - -bbox.yMin ); - - 2. Store the bitmap with the following values: - - bearingX / 64 = left side bearing in pixels - advance / 64 = advance width/height in pixels - - When your cache is set up, you can then render text using a scheme - similar to the ones describe in 1. and 2., with the exception that - now pen positions and metrics are expressed in pixel values. We - are done! - - pen_x = cursor_x; - pen_y = cursor_y; - - while ( glyph_to_render ) - { - access_cache( glyph_index, metrics, bitmap ); - - blit_bitmap_to_position - ( pen_x + bearingX, - pen_y (+ bearingY depending on orientation ) ); - - pen_x += advance; - } - - 4. Device-independent text rendering - - The previously described rendering processes all align glyphs on the - baseline according to metrics fitted for the display's distance. In - some cases, the display isn't the final output, and placing the glyphs - in a device-independent way is more important than anything. - - A typical case is a word processor which displays text as it should - appear on paper when printed. As you've probably noticed, the glyphs - aren't always spaced uniformly on the screen as you type them, - sometimes the space between an `m' and a `t' is too small, some other - it is too large, etc. - - These differences are simply due to the fact that the word processor - aligns glyphs in an device-independent way, using original metrics in - font units to do it, then scale them as it can to display text on - screen, usually at a very smaller resolution than your printer's one. - - Device-independence is a crucial part of document portability, and it - is very saddening to see that most professional word processors don't - do it correctly. For example, MS Word uses the fitted metrics of the - printer's resolution, rather than the originals in font units. - - This is great to get sure that your text prints very well on your - printer, but it also implies that someone printing the exact same - document on a device with different output resolutions (e.g. bubble-jet - vs. laser printers) may encounter trouble. - - As the differences in advances accumulate on one line, they can sum to - the width of one or more glyphs in extreme cases, which is enough to - `overflow' the automatic justification algorithm. This may add - additional lines of printed text, or even remove some. Moreover, - supplemental lines can produce unexpected page breaks and `blank' - pages. This can be extremely painful when working with large documents, - as this `feature' may require you to redesign completely your - formatting to re-print it. - - In conclusion, if you want portable document rendering, never hesitate - to use and apply device-independent terms! For example, a simple way to - produce text would be: - - 1. Get a scale to convert from your device-independent units to 26.6 - pixels. - - 2. Get another scale to convert from original font units to - device-independent units. - - 3. Perform pen placement and advances in device-independent units. - - 4. To render each glyph, compute the pen's rounded position, as well - as the rounded glyph left side bearing, both expressed in 26.6 - pixels (don't use the fitted metrics). You will then be able to - place the glyph and/or blit its bitmap. - - 5. Kerning glyphs - - An interesting effect that most people appreciate is kerning. It - consists of modifying the spacing between two successive glyphs - according to their outlines. For example, the letters `T' and a `y' can - be easily moved closer, as the top of the `y' fits nicely under the - `T's upper right bar. - - To perform kerning, the TrueType specification provides a specific - table (its tag being `kern'), with several storage formats. This - section doesn't explain how to access this information; however, you - can have a look at the standard extension called `ttkern.h' which comes - with FreeType. - - The kerning distance between two glyphs is a value expressed in font - units which indicates whether their outline can be moved together or - apart when one follows the other. The distance isn't reflexive, which - means that the kerning for the glyph pair (`T',`y') isn't the same as - the one for (`y',`T'). - - The value is positive when the glyphs must be moved apart, and negative - when they must be moved closer. You can implement kerning simply by - adding its scaled and rounded value to the advance width when moving - the pen position. Here an example for horizontal kerning: - - #define ROUND( x ) ( (x + 32) & -64 ) - - scaled_kerning = kerning * imetrics.x_scale / 0x10000; - - pen_x += metrics.advance + ROUND( scaled_kerning ); - - 6. Rotated and stretched/slanted text - - In order to produce rotated glyphs with FreeType, one must understand a - few things: - - o The engine doesn't apply specific transformations to the glyphs it - loads and processes (other than the simpler resolution-base - scaling and grid-fitting). If you want to rotate glyphs, you will - have to load their outline, then apply the geometric - transformations that please you (a number of APIs are there to - help you to do it easily). - - o Even if the glyph loader hints `straight' glyphs, it is possible - to inform the font and glyph programs that you're going to later - transform the resulting outlines. Two flags can be passed to the - bytecode interpreter: - - + The `rotated' flag indicates that you are going to rotate the - glyphs in a non-trivial direction (i.e., on neither of the - two coordinate axis). You are advised not to set it when - writing 90 degrees-rotated text for example. - - + The `stretched' flag indicates that you are going to apply a - transformation that will distort distances. While rotations - and symmetries keep distances constant, slanting and - stretching do modify them. - - These flags can be interpreted by the glyph code to toggle certain - processings which vary from one font to the other. However, most of the - TrueType fonts that were tested with FreeType, if not all of them, - simply change the dropout-mode when any of these flags is set, and/or - disable hinting when rotation is detected. We advise you to never set - these flags, even when rotating text. For what it's worth, hinted - rotated text is no uglier than un-hinted one. - - You can use the function TT_Set_Instance_Transform_Flags() to set them. - Then, rendering can be done with the following calls: - - /* set the flags */ - TT_Set_Instance_Transforms( instance, - rotated, - stretched ); - - /* load a given glyph */ - TT_Get_Glyph_Outline( instance, - glyph, - index, - TTLOAD_DEFAULT ); - - /* access its outline */ - TT_Get_Glyph_Outline( instance, &outline ); - - /* in order to transform it */ - TT_Transform_Outline( outline, &matrix ); - /* and/or */ - TT_Translate_Outline( outline, - x_offset, y_offset ); - - /* to render it */ - TT_Get_Outline_Bitmap( outline, &bitmap ); - - Here is an example, assuming that the following variables - - TT_Matrix matrix; /* 2x2 matrix */ - TT_Pos x_off, y_off; /* corrective offsets */ - - define a transformation that can be correctly applied to a glyph - outline which have been previously placed relative to the imaginary - point position (0,0) with bearings preserved. Rendering text can now be - done as follows: - - 1. Initialize the pen position; when rotating, it is extremely well - advised to use sub-pixel placement as you don't care about - hinting. - - pen_x = cursor_x; - pen_y = cursor_y; - - 2. Transform the glyph as needed, then translate it to the current - pen position: - - TT_Transform_Outline( outline, &matrix ); - TT_Translate_Outline( outline, - pen_x + x_off, - pen_y + y_off ); - - (Note that the transformation offsets have been included in the - translation.) - - 3. Render the bitmap, as it has now been placed correctly. - - 4. To change the pen position, transform the vector (0,advance) with - your matrix, and add it: - - vec_x = metrics.advance; - vec_y = 0; - TT_Transform_Vector( &vec_x, &vec_y, &matrix ); - pen_x += vec_x; - pen_y += vec_y; - - 5. Start over at 2. until completion. - - ----------------------------------------------------------------------- - IMPORTANT NOTE: - - Do not grid-fit the pen position before rendering your glyph when - rendering rotated text. If you do, your transformed baseline won't be - preserved on each glyph, and the text will look like it's `hopping' - randomly. This is particularly visible at small sizes. - - Sub-pixel precision placement is very important for clean rotated text. - ----------------------------------------------------------------------- - - 7. Font-smoothing, a.k.a. gray-levels rendering - - The FreeType engine's scan-line converter (the component also called - the rasterizer) is able to convert a vectorial glyph outline into - either a normal bitmap, or an 8-bit pixmap (a.k.a. colored bitmaps on - some systems). This last feature is called gray-level rendering or - font-smoothing, because it uses a user-supplied palette to produce - anti-aliased versions of the glyphs. - - Its principle is to render a bitmap which is twice as large than the - target pixmap, then simply filtering it using a 2x2 summation. - - ----------------------------------------------------------------------- - NOTE: - - FreeType's scan-line converter doesn't use or need an intermediate - second bitmap. Rather, filtering is performed in a single pass during - the sweep (see the file `raster.txt' for more information about it). - ----------------------------------------------------------------------- - - You'll notice that, as with Windows 95, FreeType's rasterizer only - grays those parts of the glyph which need it, i.e., diagonals and - curves, while keeping horizontal and vertical stems straight `black'. - This greatly improves the legibility of text, while avoiding the - `blurry' look anti-aliased fonts typically found with Adobe's Type - Manager or Acrobat. - - There are thus five available gray-levels, ranging from 0 to 4, where - level 0 and level 4 are the background and foreground colors, - respectively, and where levels 1, 2, 3 are intermediate. For example, - to render black text on a white background, one can use a palette like: - - palette[0] = white (background) - palette[1] = light gray - palette[2] = medium gray - palette[3] = dark gray - palette[4] = black (foreground) - - To set the engine's gray-level palette, simply use the API function - TT_Set_Raster_Palette() after initialization. It expects an array of - 5 chars which will be used to render the pixmaps. - - Note that the rasterizer doesn't create bitmaps or pixmaps. Rather, it - simply renders glyphs in the arrays you pass to it. The generated glyph - bitmaps are simply `or'-ed to the target (with 0 being the background - as a convention); in the case of pixmaps, pixels are simply written to - the buffer, in spans of four aligned bytes. - - ----------------------------------------------------------------------- - NOTE: - - The raster isn't able to superpose `transparent' glyphs on the target - pixmap. This means that you should always call the API functions - TT_Get_Glyph_Pixmap() and TT_Get_Outline_Pixmap() with an empty map, - and perform the superposition yourself. - - This can be more or less tricky, depending on the palette you are using - and your target graphics resolution. One of the components found in the - test directory, called `display.c', has large comments on the way it - implements it for the test programs. You are encouraged to read the - test program sources to understand how one can take advantage of font - smoothing. - - Pixmap surimposition is too system-specific a feature to be part of the - FreeType engine. Moreover, not everybody needs it! - ----------------------------------------------------------------------- - - Finally, the question of sur-imposing anti-aliased colored text on any - texture, since being even more tricky, is left as an exercise to the - reader ;-) If this topic really interests you, the FreeType mailing - list may host some helpful enthusiasts ready to answer your questions. - Who knows :-) - - 8. Other interesting text processes - - o Glyph substitution - - Substitution is used to replace one glyph by another when some - specific condition is met in the text string. Its most common - examples are ligatures (like replacing the `f' followed by `i' by - the single glyph `fi' if available in the font), as well as - positional selection as performed in the Arabic script (for those - not aware of this, each letter of the Arabic alphabet can be - written differently according to its position on words: starting, - ending, intermediate, or isolated). - - The base TrueType format doesn't define any table for glyph - substitution. However, GX, TrueType Open, and OpenType provide - (incompatible) extensions to perform it. Of course, it isn't - supported by the engine, but an extension could be easily written - to access the required tables. - - [Support for TrueType Open is already partially available.] - - o Justification - - ... - -To be continued... diff --git a/Build/source/libs/freetype/freetype-1.5/docs/i18n.txt b/Build/source/libs/freetype/freetype-1.5/docs/i18n.txt deleted file mode 100644 index 22f5da9c1fd..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/docs/i18n.txt +++ /dev/null @@ -1,161 +0,0 @@ - -Using national language support (NLS) in FreeType -================================================= - -21. 1. 1998 -Erwin Dieterich - - -1) Introduction -2) Using gettext (user's view) -3) Using gettext (programmer's view) -4) Using gettext (maintainer's view) -5) How can I switch off NLS? I don't need/want it. - - -Only Unix NLS using gettext() is covered here. If you are able to -help with internationalization (i18n) for different operating -systems, please e-mail me at Erwin.Dieterich.ED@Bayer-AG.de. - - - -1) Introduction - -If a program is to be used by people who are not fluent speakers of -English, the first thing they will ask for is communication in their -native language. If someone tries to implement NLS in a program -using only #ifdefs and other such programming strategies, it's -likely that this someone will get nowhere. - -Gettext() is a possible way to help. Only minimal extra programming -effort is needed; the translations are implemented separately from -the program, and it is not necessary to recompile a program if you -want to switch the messages to a different language. If you wouldd -like to know more about gettext(), I recommend reading the GNU -gettext tools manual, written by Ulrich Drepper, Jim Meyering, and -Francois Pinard. - -Currently supported languages are: - - Czech (cz) translator: Pavel Kankovsky - <peak@kerberos.troja.mff.cuni.cz> - Dutch (nl) translator: Gertjan de Back <gertjan.de.back@pi.net> - French (fr) translator: David Turner <david.turner@freetype.org> - German (de) translator: Erwin Dieterich - <erwin.dieterich.ed@bayer-ag.de> - Spain (es) translator: Miguel A. Perez Valdenebro - <map@fujitsu.es> - -Currently supported programs in the `test' directory are: - - ftlint - ftdump - fterror - ftmetric - ftsbit - - -2) Using gettext (user's view) - -Using gettext as an end user is very simple. If FreeType is -correctly installed on your computer, you can simply issue an -`export LANG=<language id>' in your Bourne shell or `setenv -LANG=<language id>' if you are using csh. That's all. In order to -switch back to English, just use `export LANG=' or `setenv LANG='. - -<language id> is a two character code describing your language: -de=German, fr=French etc. Every supported language has its own -<language id>.po file in the `po' directory of FreeType. If your -language is not there you should consider contributing a -translation. Just e-mail me. Here is a transcript of what `export -LANG=<language id>' does: - - test> ftlint 24 furiosot.ttf - Could not find or open furiosot.ttf. - FreeType error message: OS/2 table missing. - - test> export LANG=de - test> ftlint 24 furiosot.ttf - Datei `furiosot.ttf' konnte nicht gefunden oder geöffnet werden. - FreeType Fehlermeldung: `OS/2'-Tabelle fehlt. - - test> export LANG= - test> ftlint 24 furiosot.ttf - Could not find or open file furioso.ttf. - FreeType error message: OS/2 table missing. - -Doesn't this look good? But what if nothing happens if you set -LANG? Here are some hints: - -First: Is your language really supported? If it is, you need to be -sure that you have gettext() installed (if you are sitting at a -Linux box, chances are very good that you have). If you compiled -FreeType yourself and nothing strange happened, then your version of -FreeType has NLS compiled in, as this is the default, unless you -forgot to install the translation files in the right places (`make -install' in the po/ directory should be enough, but you need root -permissions as these files are installed somewhere in /usr/local) -- -good luck :-) - - -3) Using gettext (programmer's view) - -If you intend to use NLS in your program, you just need to make a -few simple changes. Here I only describe how NLS is enabled in the -programs that come with FreeType in test/. If you would like to add -NLS to other programs using FreeType as well, take a look at -FreeType's installation files; you can probably use these files as a -model. - -Every string that should be translated needs gettext() around it. -So - - Message( "Usage: %s fontname[.ttf|.ttc]\n\n", - execname ); - -becomes - - Message( gettext( "Usage: %s fontname[.ttf|.ttc]\n\n" ), - execname ); - - -Yes, it's that simple. Next you need to initialize gettext. Put -the following in the header section of your file: - - #include "ft_conf.h" - #ifdef HAVE_LIBINTL_H - #include <libintl.h> - #endif - - #ifndef HAVE_LIBINTL_H - #define gettext( x ) ( x ) - #endif - -and this at the very beginning of your main program: - - #ifdef HAVE_LIBINTL_H - setlocale(LC_ALL, ""); - bindtextdomain( "freetype", LOCALEDIR ); - textdomain( "freetype" ); - #endif - - -That's all. Just have a look at fterror.c in test/. - - -4) Using gettext (maintainer's view) - -I am too lazy today :-) If something isn't clear, just ask me. - - -5) How can I switch off NLS? I don't need/want it. - -Just say `configure --disable-nls' and recompile FreeType. - - -If you have any questions or comments regarding this short -introduction to NLS & FreeType, feel free to email me at -Erwin.Dieterich.ED@Bayer-AG.de. - - ---- end of i18n.txt --- diff --git a/Build/source/libs/freetype/freetype-1.5/docs/image/baselin2.gif b/Build/source/libs/freetype/freetype-1.5/docs/image/baselin2.gif Binary files differdeleted file mode 100644 index b9c28bd6523..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/docs/image/baselin2.gif +++ /dev/null diff --git a/Build/source/libs/freetype/freetype-1.5/docs/image/baseline.gif b/Build/source/libs/freetype/freetype-1.5/docs/image/baseline.gif Binary files differdeleted file mode 100644 index f966ad21817..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/docs/image/baseline.gif +++ /dev/null diff --git a/Build/source/libs/freetype/freetype-1.5/docs/image/emsquare.gif b/Build/source/libs/freetype/freetype-1.5/docs/image/emsquare.gif Binary files differdeleted file mode 100644 index 21dcfb34ead..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/docs/image/emsquare.gif +++ /dev/null diff --git a/Build/source/libs/freetype/freetype-1.5/docs/image/freetype.gif b/Build/source/libs/freetype/freetype-1.5/docs/image/freetype.gif Binary files differdeleted file mode 100644 index 8be6d2153ee..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/docs/image/freetype.gif +++ /dev/null diff --git a/Build/source/libs/freetype/freetype-1.5/docs/image/freetype.png b/Build/source/libs/freetype/freetype-1.5/docs/image/freetype.png Binary files differdeleted file mode 100644 index d520046feea..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/docs/image/freetype.png +++ /dev/null diff --git a/Build/source/libs/freetype/freetype-1.5/docs/image/grid1.gif b/Build/source/libs/freetype/freetype-1.5/docs/image/grid1.gif Binary files differdeleted file mode 100644 index db15e23cf1c..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/docs/image/grid1.gif +++ /dev/null diff --git a/Build/source/libs/freetype/freetype-1.5/docs/image/grid2.gif b/Build/source/libs/freetype/freetype-1.5/docs/image/grid2.gif Binary files differdeleted file mode 100644 index d0d9529603e..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/docs/image/grid2.gif +++ /dev/null diff --git a/Build/source/libs/freetype/freetype-1.5/docs/image/grid3.gif b/Build/source/libs/freetype/freetype-1.5/docs/image/grid3.gif Binary files differdeleted file mode 100644 index 5b8035dafd2..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/docs/image/grid3.gif +++ /dev/null diff --git a/Build/source/libs/freetype/freetype-1.5/docs/image/metrics.gif b/Build/source/libs/freetype/freetype-1.5/docs/image/metrics.gif Binary files differdeleted file mode 100644 index b8813b41004..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/docs/image/metrics.gif +++ /dev/null diff --git a/Build/source/libs/freetype/freetype-1.5/docs/image/metrics2.gif b/Build/source/libs/freetype/freetype-1.5/docs/image/metrics2.gif Binary files differdeleted file mode 100644 index 1366ef237e9..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/docs/image/metrics2.gif +++ /dev/null diff --git a/Build/source/libs/freetype/freetype-1.5/docs/image/small2.gif b/Build/source/libs/freetype/freetype-1.5/docs/image/small2.gif Binary files differdeleted file mode 100644 index 25f6afe83ab..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/docs/image/small2.gif +++ /dev/null diff --git a/Build/source/libs/freetype/freetype-1.5/docs/image/tfp-back.png b/Build/source/libs/freetype/freetype-1.5/docs/image/tfp-back.png Binary files differdeleted file mode 100644 index 53be67191db..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/docs/image/tfp-back.png +++ /dev/null diff --git a/Build/source/libs/freetype/freetype-1.5/docs/optimize.txt b/Build/source/libs/freetype/freetype-1.5/docs/optimize.txt deleted file mode 100644 index 2f7af918eca..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/docs/optimize.txt +++ /dev/null @@ -1,181 +0,0 @@ - - FreeType Optimization HOWTO - - - -Introduction -============ - - This file describes several ways to improve the performance of the - FreeType engine on specific builds. Each `trick' has some - drawbacks, be it on code size or portability. - - The performance improvement cannot be quantified here simply - because id depends significantly on platforms _and_ compilers. - - - -I. Tweaking the configuration file -================================== - - The FreeType configuration file is named `ft_conf.h' and contains - the definition of various macros that are used to configure the - engine at build time. - - Apart from the Unix configuration file, which is generated when - calling the `configure' script from the template called - - freetype/ft_conf.h.in , - - all configuration files are located in - - freetype/lib/arch/<system>/ft_conf.h , - - where <system> stands for your platform. This release also - provides an `ansi' build, i.e., the directory `lib/arch/ansi' used - to compile with any ANSI-compliant compiler. - - The configuration macros that relate to performance are described - next. - - - 1. TT_CONFIG_OPTION_INTERPRETER_SWITCH - -------------------------------------- - - If set, this macro builds a bytecode interpreter which uses a - huge `switch' statement to parse the bytecode stream during - glyph hinting. - - If unset, the interpreter uses a big jump table to call each - bytecode's routine. - - This macro is *set* by default. However, it may be worthwile on - some platforms to unset it. - - Note that this macro is ignored until - TT_CONFIG_OPTION_BYTECODE_INTERPRETER is set. - - - 2. TT_CONFIG_OPTION_STATIC_INTERPRETER - -------------------------------------- - - If set, this macro builds a bytecode interpreter which uses a - static variable to store its state. On some processors, this - will produce code which is bigger but slightly faster. - - Note that you should NOT DEFINE this macro when building a - thread-safe version of the engine. - - This macro is *unset* by default. - - - 3. TT_CONFIG_OPTION_STATIC_RASTER - --------------------------------- - - If set, this macro builds a scan-line converter which uses a - static variable to store its state. On some processors, though - depending on the compiler used, this will produce code which is - bigger but moderately faster. - - Note that you should NOT DEFINE this macro when building a - thread-safe version of the engine. - - This macro is *unset* by default. We do not recommend using it - except for extreme cases where a performance `edge' is needed. - - - 4. TT_USE_LONG_LONG - ------------------- - - Define TT_USE_LONG_LONG if you want to enable the use of the - 'long long' 64-bit type provided by gcc and other compilers. - Note that: - - 1. The type wasn't ANSI C in 1989 (but is now OK with the new - C99), and thus will produce many warnings during library - compilation with many compilers, including gcc 2.8.x. - - 2. Though the generated object files are slightly smaller, the - resulting executables are bigger of about 4kB! gcc must be - linking some extra code in there! - - 3. There is really no speed gain in doing so (but it may help - debug the ttcalc component). - - IMPORTANT NOTE: You don't need to define it on 64-bits machines! - - NOTE 2 : This flag used to be _GNUC_LONG64_ - - - -II. Replacing some components with optimized versions -===================================================== - - You can also, in order to improve performance, replace one or more - components from the original source files. Here are our - suggestions. - - - 1. Use memory-mapped files whenever available - --------------------------------------------- - - Loading a glyph from a TrueType file needs many random seeks, - which take a lot of time when using disk-based files. - - Whenever possible, use memory-mappings to improve load - performance dramatically. For an example, see the source file - - freetype/lib/arch/unix/ttmmap.c - - which uses Unix memory-mapped files. - - - 2. Replace the computation routines in `ttcalc.c' - --------------------------------------------------- - - This file contains many computation routines that can easily be - replaced by inline-assembly, tailored for a specific processor - and/or compiler. - - After heavy testing, we have found that these functions, - especially TT_MulDiv(), are the ones that are most extensively - used and called when loading glyphs from a font file. - - We do not provide inline-assembly with this release, as we want - to emphasize the portability of our library. However, when - working on a specific project where the hardware is known to be - fixed (like on an embedded system), great performance gains - could be achieved by replacing these routines. - - (By the way, the square root function is not optimal, but it is - very seldom called. However, its accuracy is _critical_. - Replacing it with a fast but inaccurate algorithm will ruin the - rendering of glyphs at small sizes.) - - - -III. Measuring performance improvements -======================================= - - Once you have chosen some improvements and rebuilt the library, - some quick ways to measure the `new' speed are: - - - Run the test program `ftlint' on a directory containing many - TrueType fonts, and measure the time it takes. On Unix, you can - use the shell command `time' to do it like in - - % time test/ftlint 10 /ttfonts/*.ttf - - This will measure the performance improvement of the TrueType - interpreter. - - - Run the test program `fttimer' on a font containing many complex - glyphs (the latest available versions of Times or Arial should - do it), probaby using anti-aliasing, as in: - - % time test/fttimer -g /ttfonts/arial.ttf - - Compare the results of several of these runs for each build. - - ---- end of OPTIMIZE --- diff --git a/Build/source/libs/freetype/freetype-1.5/docs/porting.txt b/Build/source/libs/freetype/freetype-1.5/docs/porting.txt deleted file mode 100644 index f5dd737e8dc..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/docs/porting.txt +++ /dev/null @@ -1,1078 +0,0 @@ - - - The FreeType Porting Guide - - or - - Everything you need to know to make FreeType - run on the weirdest system - - --------------------------------------------------------------------- - - Table of Contents - - - Introduction - - I. General design and system modules - - II. Memory component API - - 1. The alloction function: TT_Alloc() - 2. The release function: TT_Free() - 3. The ALLOC() and ALLOC_ARRAY() macros - 4. The MEM_xxxx() macros - - III. File component API - - 1. Streams and their functions - 2. Frames and file access - 3. Differences in thread support levels - - IV. Mutex component API - - V. Summary & Advanced concepts - - 1. Porting summary - 2. Exotic filesystems - - VI. Troubleshooting - - Conclusion - - --------------------------------------------------------------------- - -Introduction -============ - -The FreeType engine is portable in many ways: - -- First, it can be compiled by any ANSI C compliant compiler, which - guarantees the widest possible uses. - -- Its default build uses a tiny fraction of the ANSI libc, mainly - for memory management and I/O access, which should be available on - most systems (i.e., malloc(), free(), fopen(), fread(), etc). - -- Its design is modular, and allows an implementer to remove all - dependencies on a particular runtime environment, to adapt the - engine to its specific needs. For example, it is possible to use - memory-mapped files on systems which support them. - -This document explains the engine's design, presenting the `system' -modules that need to be changed by porters of the library, as well -as how to do it. - -Note that this documentation is _very_ detailed, and you may -DIRECTLY JUMP to SECTION V (Summary and advanced concepts) which -gives you a QUICK STEP-BY-STEP GUIDE TO PORTING each component, -without the need to understand all the guts of the TrueType engine. - -Several issues are discussed, including the use of exotic font -storage conventions. - - --------------------------------------------------------------------- - - -I. General design, and system modules -===================================== - - The engine's design is intentionally highly modular. It is made - of several `components', each with its own specific goals. Three - of these play an important role with regards to portability. They - are: - - - the memory component: - - Found in the files `ttmemory.h' and `ttmemory.c'. It defines - several macros and a few functions used by _all_ other modules - to allocate, release, copy, and move memory blocks. - - - the file component: - - Found in the files `ttfile.h' and `ttfile.c'. It defines - several types and abstractions (streams, frames), that are used - by _all_ other modules to access font files. - - - the mutex component: - - This component compiles to a null object if the engine is built - in single-thread mode. Otherwise, for thread-safe and reentrant - builds, the macros and functions it defines are used by the rest - of the engine to protect shared variables. - - NOTE: - - Because the ANSI libc does not provide synchronisation - primitives (synchronisation isn't portable accross platforms), - the default implementation, found in `ttmutex.c', is made of - dummy functions which always return a successful error - condition. - - You _need_ to re-define this component for your system if you - decide to make a thread-safe or reentrant build, even if you - use the ANSI libc. - - - When specializing a component, i.e., rewriting it for your - platform, you should respect a few conventions which are explained - in the following sections. Note also that the system-specific - implementations are usually placed in the - `freetype/lib/arch/<system>' directory. For example: - - freetype/lib/arch/unix/ttmmap.c - - A Unix-only implementation of ttfile which uses the - memory-mapped file API (this greatly improves the engine's - performance, due to the random access pattern typicals of - glyph data retrieval). - - freetype/lib/arch/os2/os2file.c - - This is an implementation of ttfile specific to OS/2, which - directly calls the system functions DosOpen(), DosRead(), etc. - - The FreeType/2 DLL (a free TrueType font driver for OS/2) also - uses its own memory component which calls a special allocation - routine required in its runtime environment, and also provides - additional statistics that can be displayed by an auxiliary - tool while the driver is running in the system. - -We ask you to respect this directory convention. This really needs -a minor Makefile change, and still having the ability to compile the -`default' ttfile and ttmemory will help you debug your specific -ports by easy comparisons. - - --------------------------------------------------------------------- - - -II. Memory component API -======================== - - This section presents the macros and functions defined in - ttmemory.h, and how they should be implemented, if you decide to - rewrite the source file ttmemory.c from scratch. An easier - solution would be to replace the calls to malloc() and free() with - your own functions, though. - - -1. Allocation routine : TT_Alloc() ----------------------------------- - - This function is used to allocate blocks of memory, just like - malloc(), but defines a very different interface. Its prototype - is: - - TT_Error TT_Alloc( long size, void** p ); - - [The FreeType source files use abstract data types like `Long' for - all internal functions and `TT_Long' for externally visible - structures. See tttypes.h and freetype.h, respectively.] - - We can see that: - - - The function returns an error code, and _not_ a pointer. The - reason for this is that your own implementation may perfectly - fail for more than one good reason. For example, it could - detect a corrupted heap, a memory exhaustion or an unusually - large block, and have a different error code for each of these - cases. - - If a memory allocation error occurs in a FreeType function, it - is always taken into account (of course, for safety reasons), - but its code is directly sent to the caller. This means that - your own applications and font servers will be able to interpret - these errors and let you handle them appropriately. - - - Its second argument is the _address_ of a typeless pointer. - This means the need to typecast it before calling this function. - - The macro MEM_Alloc() is defined in ttmemory.h to do it for you, - as well as the `memory extraction' performed by the `&' - operator, so that you can write: - - char* buffer; - - - MEM_Alloc( size, buffer ); - - instead of - - TT_Alloc( size, (void**)&buffer ); - - Note that the engine _never_ uses this macro directly, but - ALLOC() instead (see below) in order to _always_ test the error - code. - - ***************** - *** IMPORTANT *** - ***************** - - - A newly allocated block should _always_ be filled with zeroes! - This is a _very_ strong convention used within all the engine. - It helps greatly to reduce code size, in general. If your - implementation of TT_Alloc() does not respect it, you are pretty - certain to build an unrunnable (at best) or (worse) instable - engine! Beware. - - -2. Release routine: TT_Free() ------------------------------ - - This routine is naturally used to release any block created - through TT_Alloc(). Its prototype is: - - TT_Error TT_Free( void** P ); - - We can see that: - - - It also returns an error code. Note, however, that the error is - ignored in most, if not all, parts of the engine. This is - because freeing memory usually happens when all necessary work - has been finished, or when something already wrong happened. - - - It takes the address of a typeless-pointer, and _not_ the - pointer's value itself. This is used to set the pointer's value - to NULL just after the block was released, which avoids dangling - references in objects. Of course, there is a macro defined to - simplify source writing. One can use FREE() like: - - char* buffer; - - - MEM_Alloc( size, buffer ); - - .... work .... - - FREE( buffer ); - - /* now `buffer' is set to NULL; the following line will */ - /* seg-fault */ - - a = buffer[0]; - - - ***************** - *** IMPORTANT *** - ***************** - - - The function TT_Free() (and thus the macro FREE()) will accept a - NULL pointer successfully! This means more precisely that the - address of a pointer may have the value NULL; in this case it - will return with a successful error code (TT_Err_Ok == 0). - - This convention is also _very_ strong in the engine, and - simplifies both code size and style. One of its primary origin - is the engine's object management which requires the ability to - release an object, be it normal or `partial', with the same - code. - - -3. The ALLOC() and ALLOC_ARRAY() macros ---------------------------------------- - - Two macros are also defined to make the FreeType source code - easier to read and understand. Their role is to perform an - allocation, while saving the error condition in an _implicit_ - local variable called `error', and returning a boolean which is - set to true in case of error. Their definition is - - #define ALLOC( pointer, size ) \ - ( ( error = MEM_Alloc( pointer, size ) ) != TT_Err_Ok ) - - and - - #define ALLOC_ARRAY( pointer, count, type ) \ - ( ( error = MEM_Alloc( pointer, \ - (count) * sizeof ( type ) ) ) \ - != TT_Err_Ok ) - - They are always used in `if' statements, and can be chained - together. Here is some example code: - - char* buffer1 = 0; /* temporary buffer 1 */ - char* buffer2 = 0; /* temporary buffer 2 */ - TT_Error error; - - - ... - - if ( ALLOC_ARRAY( buffer1, n, TT_F26Dot6 ) || - ALLOC_ARRAY( buffer2, n, short ) ) - goto Fail; - - ... work ... - - Fail: - FREE( buffer2 ); - FREE( buffer1 ); - return error; - - - Notes: - - - If an error occurs during the first allocation, execution will - jump immediately to the `Fail' label. - - - The failure code, which releases the buffers, does not need to - differentiate whether the first allocation succeeded or not - (simply because FREE() accepts null pointers with no - problems). - - The equivalent code, without macros, would be: - - char* buffer1; - char* buffer2; - TT_Error error; - - - error = TT_Alloc( n * sizeof ( TT_F26Dot6 ), - (void**)&buffer1 ); - if ( error ) goto Fail_Buffer1; - - error = TT_Alloc( n * sizeof ( short ), - (void**)&buffer2 ); - if ( error ) goto Fail_Buffer2; - - .... work .... - - Fail_Buffer2: - TT_Free( (void**)&buffer2 ); - - Fail_Buffer1: - TT_Free( (void**)&buffer1 ); - - - Which is a lot less clear about its intents, and uses more special - cases. - - -4. The MEM_xxxx() macros ------------------------- - - Finally, three macros are defined to perform some common memory - block operations. Their names are rather explicative: - - - MEM_Copy() - - Used by the engine to copy one block of data in memory to - another one. - - - MEM_Set() - - Used to set all bytes of a block of memory to a given value. - - - MEM_Move() - - Well, guess what ;-) - - - These operations could have been embedded in functions like - TT_Mem_Copy(), TT_Mem_Set(), and TT_Mem_Move(), but a lot of - compilers are able to inline directly calls to such `intrinsic' - functions as memcpy() and memmove(). Hence, macros make sense - here. - - --------------------------------------------------------------------- - - -III. File Component API -======================= - - This section describes the file component's API, and the things - that are needed to port it to a specific system. Note that only a - fraction of the source code in `ttfile.c' needs to be rewritten - during a port. - - -1. Streams and their functions ------------------------------- - - A stream in FreeType (version 1.x) encapsulates both the - location/naming of a file, and its access. This is due to the - fact that they were originally designed to embed a simple ANSI - `FILE*' file pointer. - - This means several things: - - - A stream is created and opened via the TT_Open_Stream() - function. It takes, in the default build, a font pathname of - type `char*' that it uses when calling fopen(). - - - It can be released/closed via the function TT_Close_Stream(). - - - It embeds a `current file position', just like an ordinary file - descriptor. It is thus seekable, through the function - TT_Seek_File(). - - - Raw data can be extracted from a stream through TT_Read_File() - and TT_Read_At_File(). - - However, it has certain properties that differ from a libc `FILE*' - data type: - - - Because each face object has its own stream, and because most - operating systems limit the number of opened system resources in - each process, it is more than helpful to be able to `flush' a - stream. - - A stream is said to be flushed if the system resource it - contains (like a file descriptor) has been closed. However, - this resource is re-opened automatically when needed. - - The function TT_Flush_Stream() is used to flush a stream. If a - stream has been flushed, it is also said to be `asleep'. - - - The engine calls TT_Use_Stream() before each new stream access. - With it, the file component is able to awake (or `activate') - streams that are flushed, if needed. - - - Consequently, the engine calls TT_Done_Stream() when it has - performed all I/O access. These two APIs (TT_Use_Stream() and - TT_Done_Stream()) let the file component track and manage the - engine's access patterns, and allows it to cache opened streams - more cleverly. - - For example, one could implement an LRU list used to track the - `oldest' streams, and only activate the 10 `freshest' ones, thus - limiting the total number of system stream resources used by the - library, independently of the total number of opened faces in - the engine. - - -2. Frames and file access -------------------------- - - In order to resolve endianess and alignment issues, the engine - uses the concept of `frames' to extract data from a TrueType - table. - - - A frame is simply a sequence of successive bytes, taken from a - stream from its current position. A frame can only exist within - a stream. - - - The function TT_Access_Frame() (ideally) reads its data and - places it into an intermediate buffer, which is later used for - parsing. This function also checks that the whole frame fits - into the original file. For example, it will return an error if - detecting `over-reads' in the file (which can happen if the font - file is broken). - - Note that the intermediate buffer disappears in the case of - memory-mapped files. - - - Each frame has an internal cursor, which is set to its buffer's - base by the previous function. Note, however, that it differs - from the stream's current position, which has been advanced once - TT_Acess_Frame() is completed. - - - Data is extracted from the frame through calls to functions of - the form: - - TT_Get_<IntegerType>(); - - where <IntegerType> can be any of: Byte (unsigned char), Char - (signed char), Short, UShort, Long, or ULong. - - Each function returns the integer below the current frame - cursor, and advances the latter in the buffer. - - - Finally, when the frame access ends, the engine calls the - TT_Forget_Frame() function, which will release the intermediate - buffer and set the cursor to NULL. - - Here is a typical frame read sequence: - - /* first - read the next 12-bytes frame in memory */ - error = TT_Access_Frame( 12 ); - if ( error ) - return error; - - /* now, extract all data */ - object->field1 = TT_Get_Short(); - object->field2 = TT_Get_Long(); - object->field3 = TT_Get_Char(); - object->filed4 = TT_Get_Long(); - object->field5 = TT_Get_Byte(); - - /* done - now release the frame */ - TT_Forget_Frame(); - - /* now perform some checks */ - if ( object->field1 == -1 ) - return Error_1; - - if ( object->field2 > object->field4 ) - return Error_2; - - - ***************** - *** IMPORTANT *** - ***************** - - A few things need to be noticed by porters when they implement - frame loading (i.e. the TT_Access_Frame() function): - - - The functions that need to be ported are TT_Access_Frame() and - TT_Forget_Frame(). The TT_Get_XXXX() functions should be left - as is. - - - A frame has a state, and must _always_ be released through - TT_Forget_Frame() in case of an error. This means that the - engine will _never_ use code like the following: - - error = TT_Access_Frame( 12 ); - if ( error ) - goto Fail; - - object->field1 = TT_Get_Short(); - - /* now check error and return immediately -- */ - /* WITHOUT RELEASING FRAME! ERROR! */ - if ( object->field1 == -1 ) - goto Fail; - - object->field2 = TT_Get_Long(); - object->field3 = TT_Get_Char(); - object->field4 = TT_Get_Long(); - - /* check for error, return immediately -- */ - /* WITHOUT RELEASING FRAME! ERROR! */ - if ( object->field2 > object->field4 ) - goto Fail; - - /* now release frame */ - TT_Forget_Frame(); - - This means more simply that EACH successful call to - TT_Access_Frame() will ALWAYS be followed by a call to - TT_Forget_Frame()! - - - As a consequence of the first rule, and also in order to keep - things simple, NESTING FRAME ACCESSES are not allowed. For - example, the following code will produce an error: - - /* First frame access */ - error = TT_Access_Frame( 8 ); - if ( error ) - goto Fail; - - /* read a file offset */ - offset = TT_Get_Long(); - - /* seek and load another frame */ - error = TT_File_Seek( stream, offset ); - if ( error ) - goto Fail; - - error = TT_Access_Frame( 4 ); - /* The function TT_Access_Frame detects nested calls */ - /* and ALWAYS returns TT_Err_Nested_Frame_Access! */ - if ( error ) - goto Fail; - - data1 = TT_Get_Long(); - - /* release second frame */ - TT_Forget_Frame(); - - /* read next integer from the first frame */ - data2 = TT_Get_Long(); - - /* release first frame */ - TT_Forget_Frame(); - - This simplifies the work that needs to be done wen porting the - TT_Access_Frame() and TT_Forget_Frame() functions. - - -3. Differences in thread support levels ---------------------------------------- - - The FreeType library can be built to three distinct thread-support - levels. This section will present each other, and show how this - translates within the ttfile.c source code. - - a. Levels - - The three levels are - - - single thread - - No synchronization primitive is used to protect the data in - the file component. Hence, there is only one `current' stream - at any one time. Note, however, that in some cases, more than - one stream may be `active' (or `awakened'); e.g., when using - memory-mapped files, each opened face needs a valid mapping - before it can be used/parsed by the engine. - - - thread-safe - - The thread safe mode synchronizes concurrent accesses to the - renderer's component through mutexes. For the file component, - this means a single mutex which is `locked' by a call to - TT_Use_Stream(), and `released' by TT_Done_Stream(). - - As a consequence, there is only one possible `current' stream - when the engine reads files, like in the single thread case. - - - re-entrant - - In this mode, concurrent accesses are possible on many - components, including ttfile. This means that each - TT_Use_Stream() must _really_ create its own system/ANSI - stream for a single file, and that the file component _cannot_ - have any state (only stream objects have!), like a `current - stream' and `current frame'. - - This mode must use mutexes to protect all shared variables and - lists from concurrent changes/reads. The only component which - is still serialized in this mode is the scan-line converter - (a.k.a. ttraster). - - b. Implementation differences - - Because the TrueType engine serves more as a `font format - driver' than a general and high-level text-rendering library, it - has been decided to keep its code as simple and compact as - possible. - - This implies some implementation differences between the three - thread modes, which are briefly explained below: - - - Single-thread and thread-safe mode can have a state, which - means for ttfile.c, a `current stream' and `current frame'. - - - In the reentrant mode, the `state' must be stored in a - thread-local place, which means the stack (or more simply - local function variables). - - What follows is that some `ttfile' functions will not take the - same number of arguments depending on the thread-support mode. - Let us take the example of frame access and parsing: - - In single-thread and thread-safe mode, the current frame is - automatically set by the TT_Access_Frame() function, which only - takes a `size' argument to determine the run of bytes to extract - from the _current_stream_ within ttfile's state. - - Moreover, the TT_Get_XXXX() functions extract data from the - current frame, and need no arguments. A simple frame access - then looks like this: - - /* read the next 12-bytes frame from the _current_stream_ */ - error = TT_Access_Frame( 12 ); - if ( error ) - return error; - - /* now, extract all data from the _current_frame_ */ - object->field1 = TT_Get_Short(); - object->field2 = TT_Get_Long(); - object->field3 = TT_Get_Char(); - object->filed4 = TT_Get_Long(); - object->field5 = TT_Get_Byte(); - - /* done - now release the current frame */ - TT_Forget_Frame(); - - In reentrant mode, things are a bit different. The current - stream and current frame must be passed as parameters, and the - code looks like this (notice the new function parameters!): - - - TT_Frame frame; /* define a local variable to handle */ - /* the current frame */ - - .... /* we suppose we already have a stream variable */ - .... /* named `stream' (how surprising ;-) */ - - /* read the next 12-bytes frame from a given stream */ - error = TT_Access_Frame( stream, 12, &frame ); - if ( error ) - return error; - - /* now, extract all data from the given frame */ - object->field1 = TT_Get_Short( frame ); - object->field2 = TT_Get_Long ( frame ); - object->field3 = TT_Get_Char ( frame ); - object->filed4 = TT_Get_Long ( frame ); - object->field5 = TT_Get_Byte ( frame ); - - /* done - now release the current frame */ - TT_Forget_Frame( frame ); - - - The differences between these two schemes are striking. Though - an `easy' solution would have been to only write the engine in - reentrant-mode, it would have resulted in larger and slightly - slower code, as well as the source a bit more obscure about its - intents and thus harder to maintain. Also, the reentrant - version is only needed in rare cases and environments, and it - was not thought as a good idea to complexify _source_ code in - order to comply with rare uses. - - The problem is solved within the engine by the use of a set of - carefully selected macros, which help generate both versions - from a _single_ source file. - - Moreover, as the macros imitate the non-reentrant syntax (i.e., - the use of the `stream' and `frame' parameters is implicit to - the macros), the source is kept clear and easy to understand, - even if compiled in re-entrant mode. - - The code looks then like the following in the engine: - - /* read the next 12-bytes frame from the current stream */ - /* assignment of the error code in the local `error' */ - /* variable is also implicit to the ACCESS_Frame macro, */ - /* and its result is always a boolean (no ANSI warnings) */ - - if ( ACCESS_Frame( 12 ) ) - goto Fail; - - /* Now, extract all data from the current frame. */ - /* The macros GET_xxxxx use an implicit local `frame' */ - /* variable in reentrant mode. */ - - object->field1 = GET_Short(); - object->field2 = GET_Long(); - object->field3 = GET_Char(); - object->filed4 = GET_Long(); - object->field5 = GET_Byte(); - - /* done - now release the current frame */ - - FORGET_Frame(); - - Another advantage of the above code is its `expressiveness' in - the sense that it really describes what is happening during the - frame load, hiding the boring but necessary details required by - error checking and reentrancy. And if the error checks are - within the macros, we are sure we won't forget them because they - are `too boring to code' (one of the reason why `exceptions' - caught so quickly in C++ and Java). - - c. Consequences on ttfile - - Of course, the macros only hide real differences in - implementation which must be reflected in ttfile.h and ttfile.c. - In order to ease this task, some other macros are used, which - use is reserved for these two files. There are: - - STREAM_ARG - STREAM_ARGS - FRAME_ARG - FRAME_ARGS in ttfile.h - - CUR_Stream - STREAM_VAR - STREAM_VARS - FRAME_VAR - FRAME_VARS in ttfile.c - - All of these macros (with the exception of CUR_Stream) default - to nothing (i.e. a void macro) in single-thread and re-entrant - mode, which only differ from the use of a mutex lock and release - in the functions TT_Use_Stream() and TT_Done_Stream(). - CUR_Stream defaults to the file component's current stream, - found in its internal state (as you can guess, it designates the - `current stream'). - - On the opposite, the macros are used to define additional - function parameters (if a function is called) and arguments (if - calling in a function). For example, the following (fictional) - code: - - /* return the size of a given stream */ - long Stream_Size( STREAM_ARG ) - { - return CUR_Stream.size; - } - - expands to: - - long Stream_Size() - { - return file_component.current_stream.size; - } - - in non-reentrant mode, and to: - - long Stream_Size( TT_Stream stream ) - { - return (*stream).size; - } - - otherwise. - - Thus, we can see the following reentrant expansions: - - STREAM_ARG --> TT_Stream stream - STREAM_ARGS --> TT_Stream stream, (note the comma) - - FRAME_ARG --> TT_Frame frame - FRAME_ARGS --> TT_Frame frame, (note the comma) - - STREAM_VAR --> stream - STREAM_VARS --> stream, - - FRAME_VAR --> frame - FRAME_VARS --> frame, - - They follow these simple rules: - - - An XXXX_ARG is used to define a single optional parameter in - a function _prototype_. The parameter is said to be single - if it is not followed by anything, e.g. - - long Stream_Size( STREAM_ARG ) - - - An XXXX_ARGS is the same, followed by a comma, in order to - place other (non-optional) parameters behind, e.g. - - TT_Error Stream_Seek( STREAM_ARGS long pos ) - - - An XXXX_VAR is used, _only_ within ttfile.c, to _call_ a - function having an XXXX_ARG or XXXX_ARGS in its prototype - resp. declaration. - - long Stream_Left( STREAM_ARG ) - { - return ( Stream_Size( STREAM_VAR ) - - Stream_Pos( STREAM_VAR ) ); - } - - - An XXXX_VARS is the same, but can be followed by non-optional - parameters. - - The macros allow you to write some code independently of the - thread level within ttfile.c. - - ***************** - *** IMPORTANT *** - ***************** - - In general, porters should not be concerned about the use of - these macros. One easy way to port is to take the ANSI code in - ttfile.c and modify only the parts that really access the system - (like fopen(), fread(), fseek(), etc). - - These details are explained here to make you understand how the - code works, in case you are interested in more elaborate ports. - - --------------------------------------------------------------------- - - -IV. Mutex Component API -======================= - - As said before, the default library source code uses the ANSI libc - only, and the source code in ttmutex.c only contains dummy - functions which return a successful error condition in all cases. - - You thus NEED to specialize it in order to successfully use a - thread-safe or reentrant build. Here is explained what is really - important: - - -1. The TMutex type ------------------- - - The engine uses the `TMutex' type defined in ttmutex.h to handle - mutexes. It is only a typedef of a `void*' and should be kept - that way for the fastest porting. - - Your job will most probably be to store a system mutex/semaphore - handle or pointer in it. - - -2. The mutex macros and functions ---------------------------------- - - The interface file ttmutex.h defines several macros that are used - within the engine to protect all shared variables (like lists) - from concurrent accesses. All macros default to `void' (nothing) - in single thread mode, and to calls to the TT_Mutex_XXXX() - functions in multi-threaded modes. - - These functions are: - - o TT_Mutex_Create() - - Takes a TMutex address as an argument. It should place a NULL - pointer in this output variable in case of failure. - - o TT_Mutex_Lock() - - It also takes the address of a TMutex as an argument. Used to - lock the mutex/semaphore, of course. - - o TT_Mutex_Release() - - Guess what ;-) Same interface. - - o TT_Mutex_Delete() - - Destroys a mutex/semaphore. - - -3. Redefining the TMutex type ------------------------------ - - You can also get rid of the TT_Mutex_xxxx() functions if you want - to use your system's synchronization API. This can be done in two - simple steps: - - a. Redefine the TMutex type to suit your system's handle types. - - b. Redefine the MUTEX_xxxx() macros in order to call directly your - API in the case of multi-threaded builds. - - Both methods (specializing the TT_Mutex_xxx() functions or - redefining the macros) are possible. - - --------------------------------------------------------------------------- - - -V. Summary and Advanced Concepts -================================ - -1. Quick step-by-step guide to porting the system components ------------------------------------------------------------- - - a. Port the memory component - - o Look at the `ttmemory.h' file and change the macros - MEM_Copy(), MEM_Move(), and MEM_Set() to reflect your system's - API providing the equivalent functionality. The reason that - macros instead of functions are used there is that many - compilers are able to inline directly these functions within - your code. - - o Look at the `ttmemory.c' file. Replace the single malloc() - call with your own allocation routine, and the single free() - with your own release routine. If your allocator uses more - sophisticated functions, you will probably have to rewrite - more parts of this file. See section I above. - - b. Port the mutex component - - o Look at the file `ttmutex.c' and specialize each routine to - have it use your system's synchronization API. - - o For a more advanced port, you can also directly redefine the - definition of the TMutex type in ttmutex.h, as well as the - macro definitions (like MUTEX_Create(), MUTEX_Lock(), etc.) to - use directly your system's API. The TT_Mutex_xxxx() will not - be necessary then. - - c. Port the file component - - o For a quick port, look at the following functions and replace - the ANSI libc calls (like fopen(), fclose(), fread(), etc.): - - Stream_Activate(), Stream_Deactivate(), TT_Open_Stream(), - TT_Done_Stream(), TT_Seek_File(), TT_Skip_File(), - TT_Read_File(), TT_File_Pos() - - o If you plan to use memory-mapped files, you can have a look at - the Unix file component found in - `freetype/lib/arch/unix/ttmmap.c'. It should give you an - indication of what to do. - - -2. Exotic file systems and font resources ------------------------------------------ - - a. Other file naming conventions - - The high-level library uses the `TT_Text*' type to define the - type of characters used for a font file's pathname. By default, - it equals to the `char*' type, which allow you to open a face - object with the following call: - - error = TT_Open_Face( engine, "c:\fonts\times.ttf", &face ); - - The implementation of TT_Open_Face() passes directly the - pathname pointer to the internal TT_Open_Stream() function, - located in the file component, which really opens the file. - - Some filesystems use different naming conventions, like UTF-16 - code, where each character is coded in 16 bits. In order to - help them to use FreeType, all you need to do is the following: - - - Define the macro HAVE_TT_TEXT. - - - Define the type `TT_Text' to the character type you need, like - 'wchar_t' for Unicode. - - Note that this should apply when compiling the FreeType library, - as well as WHEN INCLUDING THE FILE `freetype.h' IN YOUR - APPLICATIONS. - - If the configuration macro HAVE_TT_TEXT is not defined, the file - `freetype.h' defines TT_Text as `char*'. You can read its - source code to see it more explicitly (look at the very first - lines of the code). - - You can also use TT_Text as a pointer to more specific files, - like a simple memory address when the font is located in ROM, - etc. - - Just synchronize the definition of TT_Text with the - implementation in ttfile.c! - - b. Font Resources - - FreeType 2.0 will feature many architectural changes that will - help make porting easier, especially with regards of the file - component. - - To do this, it will separate the concepts of a `font resource', - i.e. a file seen as a storage, from a `font stream', i.e. a - file seen as a stream of data. Only the resource related code - will be visible to porters, and it will be much easier to port - (for example, nearly all thread-support levels issues will be - treated internally in the rest of the engine, and will be - invisible to the resource component). - - We are sorry for the current design and state, but TT_Stream - started as a simple encapsulation of an ANSI FILE* variable, - before font-specific access patterns made them become what they - now are. - - FreeType 2.0 will be a good reason to re-design I/O access more - clearly, and fortunately with more power and flexibility (like - using easily files of different type, ROM-based, memory-mapped, - disk-based, in a single engine). - - However, all of this does not mean than the current design - does not work. It does, so do not hesitate to use it :-) - - --------------------------------------------------------------------- - - -VI. Troubleshooting -=================== - - To be written. - - --------------------------------------------------------------------- - - -Conclusion -========== - - To be written. - - ---- end of porting.txt --- diff --git a/Build/source/libs/freetype/freetype-1.5/docs/raster.txt b/Build/source/libs/freetype/freetype-1.5/docs/raster.txt deleted file mode 100644 index 34d05eb311d..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/docs/raster.txt +++ /dev/null @@ -1,577 +0,0 @@ -This file is an attempt at explaining the internals of the FreeType -rasterizer. This component is quite general purpose and could -easily be integrated into other programs (but still under the -current license). - --------------------------------------------------------------------- - - The HOWs and WHYs of the FreeType rasterizer - - by David Turner - - - I. Introduction - - II. Rendering Technology - -III. Implementation Details - - IV. Gray-Level Support - - - -I. Introduction -=============== - - A rasterizer is a library in charge of converting a vectorial - representation of a shape into a bitmap. The FreeType rasterizer - has been developed to render the glyphs found in TrueType files, - made up of segments and second-order Beziers. This document is an - explanation of its design and implementation. - - Though these explanations start from the basics, a knowledge of - common rasterization techniques is assumed. - - --------------------------------------------------------------------- - - -II. Rendering Technology -======================== - -1. Requirements ---------------- - - We will assume that all scaling/rotating/hinting/whatever has been - already done. The glyph is thus described, as in the TrueType - specification, by a list of points. Each point has an x and y - coordinate, as well as a flag that indicates whether the point is - _on_ or _off_ the curve. - - More precisely: - - - All point coordinates are in the 26.6 fixed float format as - defined by the specification. The orientation used is: - - ^ y - | reference orientation - | - *----> x - 0 - - This means that the `distance' between two neighbouring pixels - is 64 `units' (1 unit = 1/64th of a pixel). - - Note that, for the rasterizer, pixel centers are located at - integer coordinates, i.e., (0.0, 0.0) is the coordinate of the - origin's center (unlike what happens within the TrueType - bytecode interpreter where this point's center lies at (0.5, - 0.5)). - - A pixel line in the target bitmap is called a `scanline'. - - - A glyph is usually made of several contours, also called - outlines. A contour is simply a closed curve that delimits an - outer or inner region of the glyph. It is described by a series - of successive points of the points table. - - Each point of the glyph has an associated flag that indicates - whether it is `on' or `off' the curve. Two successive `on' - points indicate a line segment joining the two points. - - One `off' point amidst two `on' points indicates a second degree - Bezier parametric arc, defined by these three points (the `off' - point being the control point, and the `on' ones the start and - end points). - - Finally, two successive `off' points forces the rasterizer to - create, during rendering, an `on' point amidst them, at their - exact middle. This greatly facilitates the definition of - successive Bezier arcs. - - * # on curve - * off curve - __---__ - #-__ _-- -_ - --__ _- - - --__ # \ - --__ # - -# - Two `on' points - Two `on' points and one `off' point - between them - - * - # __ Two `on' points with two `off' - \ - - points between them. The point - \ / \ marked `0' is the middle of the - - 0 \ `off' points, and is a `virtual - -_ _- # on' point where the curve passes. - -- It does not appear in the point - * list. - - - The FreeType rasterizer, as intended to render TrueType glyphs, - does not support third order Beziers, usually found in Type 1 - fonts. Type 1 support may lead to further development of the - engine (it is already part of FreeType 2.0). - - The parametric form of a second-order Bezier is: - - P(t) = (1-t)^2*P1 + 2*t*(1-t)*P2 + t^2*P3 - - with t a real number in the range [0..1] - - P1 and P3 are the endpoints, P2 the control point. - - Note that the rasterizer does not use this formula. It exhibits, - however, one very useful property of Bezier arcs: Each point of - the curve is a weighted average of the control points. - - As all weights are positive and always sum up to 1, whatever the - value of t, each arc point lies within the triangle defined by the - arc's three control points. - - -2. Profiles and Spans ---------------------- - - The following is a basic explanation of the _kind_ of computations - made by the rasterizer to build a bitmap from a vector - representation. Note that the actual implementation is slightly - different, due to performance tuning and other factors. - - However, the following ideas remain in the same category, and are - more convenient to understand. - - a. Sweeping the shape - - The best way to fill a shape is to decompose it into a number of - simple horizontal segments, then turn them on in the target - bitmap. These segments are called `spans'. - - __---__ - _-- -_ - _- - - - \ - / \ - / \ - | \ - - __---__ Example: filling a shape - _----------_ with spans. - _-------------- - ----------------\ - /-----------------\ This is typically done from the top - / \ to the bottom of the shape, in a - | | \ movement called a `sweep". - V - - __---__ - _----------_ - _-------------- - ----------------\ - /-----------------\ - /-------------------\ - |---------------------\ - - - In order to draw a span, the rasterizer must compute its - coordinates, which are simply the shape's contours' - x-coordinates taken on the y-scanlines. - - - /---/ |---| Note that there are usually - /---/ |---| several spans per scanline. - | /---/ |---| - | /---/_______|---| When rendering this shape to the - V /----------------| current scanline y, we must - /-----------------| compute the x values of the - a /----| |---| points a, b, c, and d. - - - - * * - - - - * * - - y - - / / b c| |d - - - /---/ |---| - /---/ |---| And then turn on the spans a-b - /---/ |---| and c-d. - /---/_______|---| - /----------------| - /-----------------| - a /----| |---| - - - - ####### - - - - ##### - - y - - / / b c| |d - - b. Decomposing outlines into profiles - - For each scanline during the sweep, we need the following - information: - - o The number of spans on the current scanline, given by the - number of shape points intersecting the scanline (these are - the points a, b, c, and d in the above example). - - o The x coordinates of these points. - - These are computed before the sweep, in a phase called - `decomposition' which converts the glyph into *profiles*. - - Put it simply, a `profile' is a contour's portion that can only - be either ascending or descending, i.e., it is monotonic in the - vertical direction (we will also say y-monotonic). There is no - such thing as a horizontal profile, as we shall see. - - Here are a few examples: - - - this square - 1 2 - ---->---- is made of two - | | | | - | | profiles | | - ^ v ^ + v - | | | | - | | | | - ----<---- - - up down - - - this triangle - - P2 1 2 - - |\ is made of two | \ - ^ | \ \ | \ - | | \ \ profiles | \ | - | | \ v ^ | \ | - | \ | | + \ v - | \ | | \ - P1 ---___ \ ---___ \ - ---_\ ---_ \ - <--__ P3 up down - - - - A more general contour can be made of more than two profiles: - - __ ^ - / | / ___ / | - / | / | / | / | - | | / / => | v / / - | | | | | | ^ | - ^ | |___| | | ^ + | + | + v - | | | v | | - | | | up | - |___________| | down | - - <-- up down - - - Successive profiles are always joined by horizontal segments - that are not part of the profiles themselves. - - Note that for the rasterizer, a profile is simply an *array* - that associates one horizontal *pixel* coordinate to each bitmap - *scanline* crossed by the contour's section containing the - profile. Note also that profiles are *oriented* up or down - along the glyph's original flow orientation. - - In other graphics libraries, profiles are also called `edges' or - `edgelists'. - - c. The Render Pool - - FreeType has been designed to be able to run well on _very_ - light systems, including embedded systems with very few memory. - - A render pool will be allocated once; the rasterizer uses this - pool for all its needs by managing this memory directly in it. - The algorithms that are used for profile computation make it - possible to use the pool as a simple growing heap. This means - that this memory management is actually easy, and faster than - any kind of malloc()/free() combination. - - Moreover, we'll see later that the rasterizer is able, when - dealing with profiles too large and numerous to lie all at once - in the render pool, to immediately decompose recursively the - rendering process into independent sub-tasks, each taking less - memory to be performed (see `sub-banding' below). - - The render pool doesn't need to be large. A 4kByte pool is - enough for nearly all renditions, though nearly 100% slower than - a more confortable 16 or 32kByte pool (that was tested with - complex glyphs at sizes over 500 pixels). - - d. Computing Profiles Extents - - Remember that a profile is an array, associating a _scanline_ to - the x pixel coordinate of its intersection with a contour. - - Though it's not exactly how the FreeType rasterizer works, it is - convenient to think that we need a profile's height before - allocating it in the pool and computing its coordinates. - - The profile's height is the number of scanlines crossed by the - y-monotonic section of a contour. We thus need to compute these - sections from the vectorial description. In order to do that, - we are obliged to compute all (local and global) y-extrema of - the glyph (minima and maxima). - - - P2 For instance, this triangle has only - two y-extrema, which are simply - |\ - | \ P2.y as an y-maximum - | \ P3.y as an y-minimum - | \ - | \ P1.y is not an y-extremum (though it is - | \ a x-minimum, which we don't need). - P1 ---___ \ - ---_\ - P3 - - Note that the extrema are expressed in pixel units, not in - scanlines. The triangle's height is certainly (P3.y-P2.y+1) - pixel units, but its profiles' heights are computed in - scanlines. The exact conversion is simply: - - - min scanline = FLOOR ( min y ) - - max scanline = CEILING( max y ) - - A problem arises with Bezier Arcs. While a segment is always - necessarily y-monotonic (i.e., flat, ascending, or descending), - which makes extrema computations easy, the ascent of an arc can - vary between its control points. - - P2 - * - # on curve - * off curve - __-x--_ - _-- -_ - P1 _- - A non y-monotonic Bezier arc. - # \ - - The arc goes from P1 to P3. - \ - \ P3 - # - - We first need to be able to easily detect non-monotonic arcs, - according to their control points. I will state here, without - proof, that the monotony condition can be expressed as: - - P1.y <= P2.y <= P3.y for an ever-ascending arc - - P1.y >= P2.y >= P3.y for an ever-descending arc - - with the special case of - - P1.y = P2.y = P3.y where the arc is said to be `flat'. - - As you can see, these conditions can be very easily tested. - They are, however, extremely important, as any arc that does not - satisfy them necessarily contains an extremum. - - Note also that a monotonic arc can contain an extremum too, - which is then one of its `on' points: - - P1 P2 - #---__ * P1P2P3 is ever-descending, but P1 - -_ is an y-extremum. - - - ---_ \ - -> \ - \ P3 - # - - Let's go back to our previous example: - - P2 - * - # on curve - * off curve - __-x--_ - _-- -_ - P1 _- - A non-y-monotonic Bezier arc. - # \ - - Here we have - \ P2.y >= P1.y && - \ P3 P2.y >= P3.y (!) - # - - We need to compute the y-maximum of this arc to be able to - compute a profile's height (the point marked by an `x'). The - arc's equation indicates that a direct computation is possible, - but we'll rely on a different technique, which use will become - apparent a bit later. - - Bezier arcs have the special property of being very easily - decomposed into two other sub-arcs, which are themselves Beziers - arcs. Moreover, it is easy to prove that there is at most one - y-extremum on each Bezier arc (for second degree ones). - - For instance, the following arc P1P2P3 can be decomposed into - two sub-arcs Q1Q2Q3 and R1R2R3 that look like: - - P2 - * - # on curve - * off curve - - - Original Bezier Arc P1P2P3. - __---__ - _-- --_ - _- -_ - - - - / \ - / \ - # # - P1 P3 - - - - - P2 - * - - - - Q3 Decomposed into two subarcs - Q2 R2 Q1Q2Q3 and R1R2R3 - * __-#-__ * - _-- --_ - _- R1 -_ Q1 = P1 R3 = P3 - - - Q2 = (P1+P2)/2 R2 = (P2+P3)/2 - / \ - / \ Q3 = R1 = (Q2+R2)/2 - # # - Q1 R3 Note that Q2, R2, and Q3=R1 - are on a single line which is - tangent to the curve. - - We have then decomposed a non-y-monotonic bezier into two - smaller sub-arcs. Note that in the above drawing, both sub-arcs - are monotonic, and that the extremum is then Q3=R1. However, in - a more general case, only one sub-arc is guaranteed to be - monotonic. Getting back to our former example: - - Q2 - * - - __-x--_ R1 - _-- #_ - Q1 _- Q3 - R2 - # \ * - - - \ - \ R3 - # - - Here, we see that, though Q1Q2Q3 is still non-monotonic, R1R2R3 - is ever descending: we thus know that it doesn't contain the - extremum. We can then re-subdivide Q1Q2Q3 into two sub-arcs and - go on recursively, stopping when we encounter two monotonic - subarcs, or when the subarcs become simply too small. - - We will finally find the y-extremum. Note that the iterative - process of finding an extremum is called `flattening'. - - e. Computing Profiles coordinates - - Once we have the height of each profile, we are able to allocate - it in the render pool. We now have to compute its coordinate - for each scanline. - - In the case of segments, the computation is straightforward, and - uses good old Euclide (also known as Bresenham ;-). However, - for Bezier arcs, things get a little more complicated. - - We assume that all Beziers that are part of a profile are the - result of `flattening' the curve, which means that they are all - y-monotonic (ascending or descending, and never flat). We now - have to compute the arcs' intersections with the profile's - scanlines. One way is to use a similar scheme to `flattening', - called `stepping'. - - Consider this arc, going from P1 to - --------------------- P3. Suppose that we need to - compute its intersections with the - drawn scanlines. Again, this is - --------------------- feasible directly, if we dare - to compute one square root per - * P2 _---# P3 scanline (how great!). - ------------- _-- -- - _- - _/ Rather, it is still possible to use - ---------/----------- the decomposition property in the - / same recursive way, i.e. subdivide - | the arc into subarcs until these - ------|-------------- get too small to cross more than - | one scanline! - | - -----|--------------- This is very easily done using a - | rasterizer-managed stack of - | subarcs. - # P1 - - f. Sweeping and Sorting the spans - - Once all our profiles have been computed, we begin the sweep to - build (and fill) the spans. - - As the TrueType specification uses the winding fill rule, we - place on each scanline the profiles present in two separate - lists. - - One list, called the `left' one, only contains ascending - profiles, while the other `right' list contains the descending - profiles. - - As each glyph is made of closed curves, a simple geometric - property is that the two lists necessarily contain the same - number of elements. - - Creating spans is there straightforward: - - 1. We sort each list in increasing x order. - - 2. We pair each value of the left list, with its corresponding - value in the right one. - - - / / | | For example, we have here - / / | | four profiles. Two of - >/ / | | | them are ascending (1 & - 1// / ^ | | | 2 3), while the two others - // // 3| | | v are descending (2 & 4). - / //4 | | | On the given scanline, - a / /< | | the left list is (1,3), - - - - *-----* - - - - *---* - - y - and the right one is - / / b c| |d (4,2) (sorted). - - There are then two spans, joining - 1 to 4 (i.e. a-b) and 3 to 2 - (i.e. c-d)! - - Sorting doesn't necessarily take much time, as in 99 cases out - of 100, the lists' order is kept from one scanline to the next. - We can thus implement it with two simple singly-linked lists, - sorted by a classic bubble-sort, which takes a minimum amount of - time when the lists are already sorted. - - A previous version of the rasterizer used more elaborate - structures, like arrays to perform `faster' sorting. It turned - out that this old scheme is not faster than the one described - above. - - Once the spans have been `created', we can simply draw them in - the target bitmap. - - g. Drop-out control - - To be continued. - - ---- end of raster.txt --- diff --git a/Build/source/libs/freetype/freetype-1.5/docs/readme.txt b/Build/source/libs/freetype/freetype-1.5/docs/readme.txt deleted file mode 100644 index ff3db7176ed..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/docs/readme.txt +++ /dev/null @@ -1,106 +0,0 @@ -Welcome to the documentation directory of FreeType. - -Here are short overview where you can find which information. - - - apiref.txt FreeType high-level API reference. All the types, - functions, and error codes of FreeType. - - .................................................................. - - apirefx.txt The API reference of FreeType extensions which come - with the library itself. - - .................................................................. - - bitmaps.txt How to render a glyph outline into a bitmap. - - .................................................................. - - changes.txt Guess what :-) - - .................................................................. - - convntns.txt The FreeType developer's conventions guide. Lists - the design and coding conventions used in the - engine's source code. This file is incomplete but - contains information that should be read by any - person willing to hack the FreeType code. - - .................................................................. - - credits A list of persons who have contributed to FreeType. - - .................................................................. - - glyphs.htm An introduction to glyphs in general, its usage in - glyphs.txt TrueType, and how FreeType handles them. The file - `glyphs.txt' is a simple text dump (done with - Netscape) of glyphs.htm. - - .................................................................. - - i18n.txt A short introduction to the GNU gettext package. - - .................................................................. - - porting.txt The FreeType porting guide. All you need to - configure and adapt very easily FreeType's source - code to tailor it to your own platform. - - Learn how to provide your own memory, i/o, and mutex - components, optimally fitted to your system. See - how you can build a singly-threaded, thread-safe, or - re-entrant version of the engine from the same - source code! - - .................................................................. - - raster.txt The scan-line converter's internals explained. The - document is still incomplete but presents many key - concepts. - - .................................................................. - - threads.txt How to use threads with FreeType. - - .................................................................. - - user.txt FreeType's user guide. A guide to FreeType's - concepts, a step by step example, and a note about - future works and projects. - - .................................................................. - - FAQ The new up-to-date FreeType FAQ. Look here first if - you have problems with the library. - - .................................................................. - - TODO Things which probably will come, which would be nice - to have, problems still here, etc. - - - -These documents were scheduled, but will probably never come... - - develop.txt The FreeType developer's guide. All you need to know - in order to be able to understand and even hack the - engine's core source code. - - extend.txt The FreeType extension writer's how-to. All you need - to be able to provide new extensions to the engine. - - undoc.txt Undocumented TrueType! - - Yes, ladies and gentlemen, the TrueType - specification is fuzzy and misleading enough to - disband some serious commercial developers, but that - wasn't enough for us. Even though it took some time - (aaargh...), we finally discovered through hard work - the real meanings of the specs, fixed some errors - and even found surprising undocumented behaviour or - features! - - ---- end of readme.txt --- diff --git a/Build/source/libs/freetype/freetype-1.5/docs/threads.txt b/Build/source/libs/freetype/freetype-1.5/docs/threads.txt deleted file mode 100644 index 6e157fa3e1a..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/docs/threads.txt +++ /dev/null @@ -1,117 +0,0 @@ -Threads with FreeType -===================== - - -The FreeType engine can now be compiled in thread-safe mode. -Because we want to keep the engine small and fast, the thread -protection is simple. This file gives an overview of what you can -do, and what you should strictly never do. - - -How to enable thread-safe support? - -A. You must have a valid replacement for the file `lib/ttmutex.c' - which calls your system's API to create, lock, and release - mutexes or semaphores. The current implementation is a dummy and - doesn't do anything. - -B. You must re-define the configuration macro - TT_CONFIG_OPTION_THREAD_SAFE located in `ttconfig.h'. Then - recompile. - - -IMPORTANT NOTE: - - If two threads create and use their own TT_Engine structure, they - can freely call the library concurrently on each of them (as well - as all their related objects), even in the non-threaded build. - The following remarks only apply to concurrent requests performed - on a single TT_Engine shared by multiple threads. - - --------------------------------------------------------------------- - -- What you can do: - - With the exceptions listed below (in `What you can't do'), you can - call all API functions concurrently with two different threads. - This includes: - - Creating two or more faces from the same engine (i.e. concurrent - calls to TT_Open_Face()/TT_Open_Collection()). - - Creating two or more instances from the same face object - (i.e. concurrent calls to TT_New_Instance()). - - Creating two or more glyph containers from the same face object - (i.e. concurrent calls to TT_New_Glyph()). - - The same holds for destruction of objects. - - Load two or more glyphs concurrently for the same face or - instance (i.e. concurrent TT_Load_Glyph() calls). - - Render two or more glyphs at the same time, in the same engine - (i.e. calling TT_Get_Glyph_Bitmap()/TT_Get_Glyph_Pixmap() or - TT_Get_Outline_Bitmap()/TT_GetOutline_Pixmap() concurrently). - - NOTE: The scan-line converter can only render one glyph at a - time, for a given TT_Engine. Concurrent calls are - synchronized through a mutex, though. - - If you really, _really_, need to generate bitmaps or - pixmaps concurrently, create an additional engine and use - it with TT_Get_Outline_Bitmap()/TT_Get_Outline_Pixmap() - (you don't need to create any object in it, the outline - can come from any source too). - - This is, however, not recommended (it works perfectly, but - this could change in the future for various technical - reasons). - - ---------------------------------------------------------------------------- - -- What you cannot do: - - - You shouldn't try to delete an object while still using it with - another thread. The engine doesn't protect you from stupidity! - For example, these concurrent calls: - - TT_Close_Face( face ); - TT_Get_Glyph_Bitmap( glyph, &bitmap ); - - will act unexpectedly if the glyph is a child of the face (i.e., - was created with TT_New_Glyph( face, &glyph )) - ^^^^ - same face - - Here are some other examples: - - TT_Get_Glyph_Outline( glyph1, ... ); - TT_Load_Glyph( instance, glyph1, ... ); - - or - - TT_Get_Outline_BBox( outline, &bbox ); - TT_Transform_Outline( outline ); - - etc. - - You get the idea: Only the face and instances are protected -- - glyph containers and outlines should be thread-specific. - - - - You shouldn't initialize extensions in an engine concurrently - (which is what every mere mortal will do anyway :-). - - - -That's about it. Now enjoy the lib ;-) - - -PS: See the `MT-Note' and `MT-Safe' remarks in ttapi.c for more - detailed information on each specific function. - - ---- end of threads.txt --- diff --git a/Build/source/libs/freetype/freetype-1.5/docs/user.txt b/Build/source/libs/freetype/freetype-1.5/docs/user.txt deleted file mode 100644 index d24d693b0ae..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/docs/user.txt +++ /dev/null @@ -1,916 +0,0 @@ - - The FreeType Engine - - Core Library User Guide - - or - - How to use the engine in your applications and font servers - - --------------------------------------------------- - - Introduction - - - I. Basic Concepts - - 1. Concepts - 2. Handles - 3. Conventions of use - 4. Object classes - - II. Extensions - - 1. What is an extension? - 2. Where to find them - 3. Writing your own extension - - Conclusion - --------------------------------------------------------------------- - -Introduction -============ - - This file has been written to present the FreeType core library to - would-be writers of applications and font servers. It first - describes the concepts on which the engine is based, then how to - use it to obtain glyph metrics, outlines and bitmaps. - - The last part discusses the ability to add and use extensions to - the core library to get access to supplemental TrueType tables - which are not currently provided by the core engine. If you would - like to write your own extensions, read also the FreeType - developer's guide. - - -I. Basic Concepts -================= - - - 1. Concepts - ----------- - - FreeType defines several kinds of structures called `objects', - that are used to manage the various abstractions required to - access and display fonts. - - In care of good encapsulation, these objects are not directly - accessible from a client application. Rather, the user receives - a `handle' for each object he or she queries and wants to use. - This handle is a stand-alone reference; it cannot be used like a - pointer to access directly the object's data. - - 2. Properties - ------------- - - It is however possible to obtain and set object properties - through several functions of the API. For example, you can - query a face object's properties with only a handle for it, - using the function TT_Get_Face_Properties(). - - Note that the data will be returned in a user-allocated - structure, but will also contain pointers addressing directly - some data found within the object. - - A client application should never modify the data through these - pointers! In order to set new properties' values, the user must - always call a specific API function to do so, as a certain - number of other related data might not appear in the returned - structure and imply various non-visible coherency and coercion - rules. - - 3. Conventions of use - --------------------- - - o All API functions have their label prefixed by `TT_', as well - as all external (i.e. client-side) types. - - o To allow the use of FreeType's core engine in threaded - environments, nearly all API functions return an error code, - which is always set to 0 in case of success. - - The error codes' type is `TT_Error', and a listing of them is - given in the API references (see `apiref.txt' and - `apirefx.txt'). - - Some functions do not return an error code. Their result is - usually a value that becomes negative in case of error (this - is used for functions where only one kind of error can be - reported, like an invalid glyph index). - - An important note is that the engine should not leak memory - when returning an error, e.g., querying the creation of an - object will allocate several internal tables that will be - freed if a disk error occurs during a load. - - o A handle is acquired through API functions labeled along the - names: - - TT_Open_xxxx(), TT_New_xxxx() - - where `xxxx' is the object's class (Face, Instance, etc). - - Examples: - - TT_Open_Face(), TT_Open_Collection(), - TT_New_Instance(), TT_New_Glyph() - - o A handle is closed through an API labeled - - TT_Close_xxxx() or TT_Done_xxxx() - - where `xxxx' is the object's class (Face, Instance, etc). - - Examples: - - TT_Close_Face(), TT_Done_Instance(), TT_Done_Glyph() - - o Properties are obtained through an API labeled - - TT_Get_xxxx_yyyy() - - where `xxxx' is the object's class, and `yyyy' its property. - - Examples: - - TT_Get_Face_Properties(), TT_Get_Instance_Metrics() - TT_Get_Glyph_Outline(), TT_Get_Glyph_Bitmap() - - o Properties are set through an API labeled - - TT_Set_xxxx_yyyy() - - where `xxxx' is the object's class, and `yyyy' its property. - - Examples: - - TT_Set_Instance_Resolutions(), - TT_Set_Instance_CharSize() - - 4. Object Classes - ----------------- - - The following object classes are defined in this release of the - engine: - - o The Engine objects - - The FreeType library can be built to be completely re-entrant, - even though its default build doesn't support threads (more on - this in the `threads.txt'). - - As a consequence, it is possible to open several instances of - the library, called `engines'. Each engine has its own set of - current objects (faces, instances, etc.), and there is no - sharing between them. - - The idea is that the library could be compiled as a shared - library or DLL, and then be able to provide several distinct - engines to independent client applications. In this case, - each client program must create its own engine with - TT_Init_FreeType() to hold its data. - - Closing an engine will destroy _all_ objects that were - allocated since its opening, releasing all resources, etc., - with the exception of user-allocated outline objects. - - o The Face objects - - A face contains the data that is specific to a single TrueType - font file. It presents information common to all glyphs and - all point sizes like font-specific metrics and properties. - - You can open a face object by simply giving a pathname to the - TrueType file. You can later close (i.e. discard) the face - object. - - You can also open a single face embedded in a TrueType - collection. - - See also: - - TT_Open_Face(), TT_Open_Collection(), TT_Close_Face(), - TT_Get_face_Properties() - - o The Instance objects - - An instance is also called a `pointsize' or a `fontsize' in - some windowing systems. An instance holds the information - used to render glyphs on a specific device at a given point - size; it is always related to an opened face object. - - For instance, if you want to generate glyphs for text from the - same typeface at `sizes' of 10 and 12 points, all you need is - one face object, from which you will create two distinct - instances. - - A device is defined by its horizontal and vertical resolution, - usually specified in dots per inch (dpi). A point size is a - scaling number, given as _absolute_ values in points, where 1 - point = 1/72 inch. - - The `pixel' size, also known as the `ppem' value (for Points - Per EM square) is computed from both the device resolution and - the point size. It determines the size of the resulting glyph - bitmaps on your screen or sheet of paper. - - The default device resolution for any new instance is 96dpi in - both directions, which corresponds to VGA screens. The - default point size is 10pt. The high-level API allows you to - change this whenever you want for any given instance object. - - Note that closing a face object will automatically destroy all - its child instances (even though you can release them yourself - to free memory). - - See also: - - TT_New_Instance(), TT_Done_Instance(), - TT_Get_Instance_Metrics(), TT_Set_Instance_Resolutions(), - TT_Set_Instance_Pointsize() - - o The Glyph objects - - A Glyph object is a _container_ for the data that describes - any glyph of a given font. This means that it typically - holds: - - - Glyph metrics information, like bounding box or advance - width. - - - Outline arrays sized large enough to hold any glyph from the - face. This size is extracted from the face's internal - `maxProfile' table to optimize memory costs. - - - Other important parameters related to the `fine' rendering - of the glyphs. This includes things like the - dropout-control mode used at low sizes. - - - And it doesn't contain a bitmap or a pixmap! - - A glyph object is used to load, hint, and rasterize a single - glyph, as taken from the font file. - - See also: - - TT_New_Glyph(), TT_Done_Glyph(), TT_Get_Glyph_Metrics(), - TT_Get_Glyph_Outline(), TT_Get_Glyph_Bitmap(), - TT_Get_Glyph_Pixmap() - - o The Character Map (CharMap) handle - - Glyphs can be indexed in a TrueType file in any order, - independently of any standard character encoding, like ASCII - or Unicode. For this reason, each file comes with one or more - character mapping tables, used to translate from one specific - encoding's character codes to font glyph indices. - - There are many encoding formats, and each one can be - distinguished by two values: - - - its platform ID - - its platform-specific encoding ID - - Their values are defined in the TrueType specification and - won't be commented there. The FAQ lists the most commonly - used (platform,encoding) pairs. - - It is possible to enumerate the charmaps provided by a - TrueType font and to use any of these to perform translations. - - The charmaps are loaded into memory only on demand to save the - space taken by the maps that are not needed on your system. - They are part of the face object, however. - - This means that even though a charmap can be accessed through - a handle (obtained through the TT_Get_CharMap() function), it - isn't a stand-alone object. For example, you never need to - de-allocate it; this is automatically done by the engine when - its face object expires. - - See also: - - TT_Get_CharMap_Count(), TT_Get_CharMap_ID(), - TT_Get_CharMap(), TT_Char_Index(). - - o The Outline Objects - - An outline is a vector representation of a glyph. It is made - of several control points joined by line segments and Bezier - arcs, themselves gathered in closed paths called `contours'. - The outline have also several flags, or attributes, which are - used by the scan-line converter to select the best rendering - algorithms to convert the glyph's bitmap. - - Unlike other objects in FreeType, outlines aren't managed - through handles, but directly with the structure `TT_Outline', - defined for client applications. Each glyph container - contains an outline sized large enough to hold any glyph from - its parent face. Client applications can access it with - TT_Get_Glyph_Outline(). However, one can also create its own - outlines if needed with TT_New_Outline() and - TT_Clone_Outline(). - - Note that user-created outlines are NOT tracked by the - library. Hence, the client must release them himself with one - or more calls to TT_Done_Outline(). - - A various number of methods/operations are defined for the - outline class to simplify its management. - - - IMPORTANT NOTE: ********************************************** - - The definition of TT_Outline may change in the future. - Developers are thus advised to always use the outline - methods provided by the API rather than reading or setting - data themselves. - - ************************************************************** - - See also: - - TT_New_Outline(), TT_Clone_Outline(), TT_Copy_Outline(), - TT_Done_Outline(), TT_Get_Outline_BBox(), - TT_Get_Outline_Bitmap(), TT_Get_Outline_Pixmap(), - TT_Translate_Outline(), TT_Transform_Outline() - - o Bitmaps and Pixmaps - - One very important aspect of FreeType is that it is unable to - create bitmaps on its own. Rather, it is up to the client - application to do it, and pass a reference, in the form of a - TT_Raster_Map, to the scan-line converter (the component in - charge of generating bitmaps from outlines). - - Hence the importance of the TT_Raster_Map structure, which - layout is: - - struct - { - int rows; /* number of rows */ - int cols; /* number of columns (bytes) per row */ - int width; /* number of pixels per line */ - int flow; /* bitmap orientation */ - - void* bitmap; /* bit/pixmap buffer */ - long size; /* bit/pixmap size in bytes */ - } TT_Raster_Map; - - - The `rows' field contains the total number of rows in the - bitmap. - - - The `width' field gives the number of pixels per row (a bit - or a byte, depending on the map's nature). - - - The `cols' field gives the number of columns, i.e. bytes, - taken by each row in the map buffer. - - IMPORTANT: The `cols' field must be a multiple of 4 for - pixmaps! - - Typically, its value should be `(width+7)/8' for bitmaps, - and `(width+3) & -4' for pixmaps. - - - The `flow' field gives the map's vertical orientation. - - For example, if the first bytes of the bitmap buffer pertain - to its upper row, the flow is said to be going `down', and - the field should take the value `TT_Flow_Down'. If these - bytes pertain to its lowest row, the flow is going `up', and - the value is `TT_Flow_Up'. - - As an example, the PC video modes use a `down' flow, where - the first VRAM byte corresponds to the upper and leftmost - corner of the screen. - - - The `bitmap' field is a typeless pointer to the map's - buffer. - - - The `size' field contains the buffer's size in bytes. It is - usually computed as follows: - - size = rows * cols; - - NOTE: For bitmaps, the leftmost-pixel is related to the - highest (i.e. most significant) bit of its byte. - There is currently no support for the opposite - convention found in some systems. - - (It can be easily added if you really need it, just - ask the development team.) - - -II. Step-by-step Example -======================== - - Here is an example to show, step by step, how a client application - can open a font file, set one or several instances, load any - glyph, then render it to a bitmap. - - 1. Initialize the engine - ------------------------ - - This is the first thing to do. You need to initialize an engine - through a call to TT_Init_FreeType(). This function will set up - a various number of structures needed by the library. - - This allocates about 68kByte, of which 64kByte are dedicated to - the scan-line converter's `render pool', a workspace used for - bitmap generation. Note that even though this space is bounded, - the raster is able to render a glyph to any size or bitmap, even - horribly huge ones. - - NOTE: You can reduce the size of this pool by modifying the - constant RASTER_RENDER_POOL in the file `ttraster.c'. A - smaller pool will result in slower rendering at large - sizes. Take care of never assigning a value smaller than - 4kByte however, as bugs may start to lurk in! - - Example: - - TT_Engine engine; - - - error = TT_Init_FreeType( &engine ); - if ( error ) - { - printf( "could not create engine instance\n"); - ... - } - - 2. Initialize the extensions you need - ------------------------------------- - - FreeType provides several extensions which are optional, - separately compilable components to add some rare features to - the engine and its API. - - You need to explicitly initialize the extensions you want to - use. Each extension must provide an initialization function, - following the naming convention: - - TT_Init_xxx_Extension( engine ); - - where `xxx' is the extension's `kind'. - - Example: - - error = TT_Init_Kerning_Extension( engine ); - if ( error ) - ... - - 3. Open the font file - --------------------- - - There are two ways to open a font face, depending on its file - format: - - - If it is a TrueType file (ttf), you can simply use the API - named TT_Open_Face(), which takes the file's pathname as - argument, as well as the address of the returned face handle. - - Check the returned error code to see if the file could be - opened and accessed successfully. - - TT_Face face; /* face handle */ - - - error = TT_Open_Face( engine, "/fonts/arial.ttf", &face ); - if ( error ) - { - printf( "could not open the file\n" ); - ... - } - - - If the font is embedded in a TrueType collection (ttc), you - can use the API named TT_Open_Collection(), which takes also - the font's index within the collection's directory. - - TT_Face face; /* face handle */ - - - /* Load the collection's second face (index=1) */ - error = TT_Open_Collection( engine, "/fonts/mingli.ttc", - 1, &face ); - if ( error ) - { - printf( "could not open the file\n" ); - ... - } - - - Finally, when you do not know the number of faces embedded in - a TrueType collection, the following technique can be used: - - o Call TT_Open_Face() with the collection file's pathname. - This API recognizes collections automatically and always - return a handle for its first embedded font. - - o Get the face's properties through TT_Get_Face_Properties(). - These contain, among other things, the total number of fonts - embedded in the collection, in its field `num_Faces'. - - TT_Face face; /* face handle */ - TT_Face_Properties props; /* face properties */ - - - /* open the first collection font */ - error = TT_Open_Face( engine, "/fonts/mingli.ttc", - &face ); - if ( error ) - { - printf( "could not open the file\n" ); - ... - } - - /* Get the face properties */ - TT_Get_Face_Properties( face, &props ); - - /* Now print the number of faces */ - printf( "there are %d faces in this collection file\n", - props->num_Faces ); - - 4. Create an instance from the face object - ------------------------------------------ - - You must create an instance (also known as a `pointsize') which - contains information relative to the target output device's - resolutions and a given point size. - - o The instance object is created through TT_New_Instance(): - - TT_Instance instance; - - - error = TT_New_Instance( face, &instance ); - if ( error ) - { - printf( "could not create instance\n" ); - ... - } - - TECHNICAL NOTE: Creating a new instance executes its font - program. This can fail if the font is broken. - Never assume that the error code returned here - is always 0. - - o You must set the instance's properties to suit your needs. - These are simply its device resolutions, set through - TT_Set_Instance_Resolutions(), and its point size, set through - TT_Set_Instance_CharSize(): - - /* Set the target horizontal and vertical resolution to */ - /* 300dpi in each direction (typically for a printer). */ - /* A fresh instance's default resolutions are 96dpi in */ - /* both directions. */ - error = TT_Set_Instance_Resolutions( instance, 300, 300 ); - if ( error ) - { - printf( "could not set resolution\n" ); - ... - } - - /* Now set the point size to 12pt. Default is 10pt. */ - /* Don't forget that the size is expressed in 26.6 fixed */ - /* float format, so multiply by 64. */ - error = TT_Set_Instance_CharSize( instance, 12 * 64 ); - if ( error ) - { - printf( "could not set point size\n" ); - ... - } - - TECHNICAL NOTE: These calls may execute the font's `prep' - program, which can fail if the font is broken. - Never assume that the error code returned is - are always 0. - - o You can also set the instance's transformation flags to tell - the glyph loading function that you are going to perform a - transformation (like rotation or slanting) on the glyph. Note - that the glyph loader doesn't perform the transformation. It - only informs the glyphs' hinting instruction streams about - these flags which may use it to disable or enable various - features (grid-fitting, drop-out control, etc). - - Use e.g. - - TT_Set_Instance_Transforms( FALSE, TRUE ); - - to indicate that you're going to stretch, but not rotate, this - instance's glyphs. Default is, of course, both FALSE. - - 5. Create a glyph container - --------------------------- - - You need a glyph object to serve as a container for the glyphs - you want to load from the face. This is done simply by - - TT_Glyph glyph; /* glyph object handle */ - - - error = TT_New_Glyph( face, &glyph ); - if ( error ) - { - printf( "could not create glyph\n" ); - ... - } - - 6. Find your platform's character mappings - ------------------------------------------ - - Each font file can come with one or more character mapping - tables, used to convert character codes to glyph indices. You - must know the values of the `platformID' and `encodingID' as - defined in the TrueType specification for your platform. For - example, Windows Unicode encoding is (platform:3,encoding:1), - while Apple Unicode is (platform:0,encoding:0). Both formats - differ in internal storage layout and can be used transparently - with the same inputs with FreeType. - - The function TT_Get_CharMap_Count() returns the number of - character mappings present in a face. You can then enumerate - these with the function TT_Get_CharMap_ID(). Once you've found - a mapping usable for your platform, use TT_Get_CharMap() to - return a TT_CharMap handle that will be used later to get glyph - indices. - - 7. Load the glyph - ----------------- - - The glyph loader is easily queried through TT_Load_Glyph(). - This API function takes several arguments: - - o An instance handle to specify at which point size and - resolution the loaded glyph should be scaled and grid-fitted. - - o A glyph container, used to hold the glyph's data in memory. - Note that the instance and the glyph must relate to the _same_ - font file. An error would be produced immediately otherwise. - - o A glyph index, used to reference the glyph within the font - file. This index is not a platform specific character code, - and a character's glyph index may vary from one font to - another. To compute glyph indices from character codes, use - the TT_CharMap handle created in section 6 with - TT_Char_Index(). - - We strongly recommend using the Unicode charmap whenever - possible. - - o A load mode, indicating what kind of operations you need. - There are only two defined for the moment: - - TTLOAD_SCALE_GLYPH: - - If set, this flag indicates that the loaded glyph will be - scaled (according to the instance specified as an - argument) to fractional pixel coordinates (26.6). If not, - the coordinates will remain integer FUnits. Please refer - to the TrueType specification and the FreeType header - files for more details on the 26.6 format and other data - types. - - TTLOAD_HINT_GLYPH: - - This flag is only in effect if the TTLOAD_SCALE_GLYPH flag - is set. It indicates that the glyph must also be `hinted' - resp. `grid-fitted' for better display results. Note that - this also means that the glyph metrics will be - grid-fitted, including the bounding box. - - You can simply `or' the flags. As most applications will - require both flags to be set, the constant TTLOAD_DEFAULT is - defined as: - - #define TTLOAD_DEFAULT (TTLOAD_SCALE_GLYPH | \ - TTLOAD_HINT_GLYPH ) - - Example: - - error = TT_Load_Glyph( instance, glyph, 36, - TTLOAD_DEFAULT ); - if ( error ) - { - printf("could not load the glyph\n"); - ... - } - - 8. Query glyph properties - ------------------------- - - You're then able to query various glyph properties: - - o The glyph metrics can be obtained through - TT_Get_Glyph_Metrics(). The data returned in the metrics - structure is: - - - the glyph's left side bearing (bearingX) - - the glyph's top side bearing (bearingY) - - the glyph's advance width (advance) - - the glyph's bounding box (bbox) - - These values are expressed in 26.6 pixel units when the glyph - was loaded with scaling, or in FUnits if not. To obtain - vertical metrics you should use the function - TT_Get_Glyph_Big_Metrics(). - - o The glyph outline can be queried through - TT_Get_Glyph_Outline(). This can be useful to process the - point coordinates (e.g. applying stretching or rotation) with - functions like TT_Apply_Outline_Matrix() or - TT_Apply_Outline_Translation(). Note that these functions do - not recompute a glyph's metrics after the transformation! - - The outline's structure is described in the reference - `apiref.txt'. - - A bitmap or pixmap for the glyph can be queried with the API - functions TT_Get_Glyph_Bitmap() and TT_Get_Glyph_Pixmap(). - These functions take a glyph handle as an argument, as well as - a bitmap/pixmap description block and two offsets. - - The target map is described through a TT_Raster_Map object, - which structure is defined in the reference (see - `apiref.txt'). The offsets are given in the same units as the - points coordinates and glyph metrics: 26.6 pixel units for a - scaled glyph, and FUnits for an unscaled one. - - IMPORTANT TECHNICAL NOTE: If the glyph has been scaled and - hinted, the offsets _must_ be - multiples of 64 (i.e. integer pixel - offsets). Otherwise, you would ruin - the grid fitting (which usually - results in ugly glyphs). - - Example: - - TT_Glyph_Metrics metrics; - TT_Outline outline; - TT_Raster_Map bitmap; - - - TT_Get_Glyph_Metrics( glyph, &metrics ); - TT_Get_Glyph_Outline( glyph, &outline ); - - /* set up the bitmap */ - ... - TT_Get_Glyph_Bitmap( glyph, &bitmap, 0, 0 ); - - 9. When you are done - -------------------- - - o You can close any font face object with TT_Close_Face(). This - call will automatically discard its child instances, glyphs - and charmaps. - - o You can also close the engine with a single call to - TT_Done_FreeType(). This will release _all_ objects that were - previously allocated (with the exception of user-created - outlines), and close all font files, as well as extensions - that were inited for it. - - -III. Extensions -=============== - - 1. What is an extension? - ------------------------ - - FreeType allows you to access a various number of TrueType - tables, as well as to render individual glyphs. However: - - 1. It doesn't perform some high-level operations, like - generating a string text from many individual glyphs. - - 2. It doesn't perform kerning (which can be needed by operations - mentioned in item 1). - - 3. It doesn't give access to all the defined TrueType tables, - especially the optional ones. - - While item 1 is a feature that will never go into FreeType's - core engine, which goal is to provide easy access to font data - and rendering _individual_ glyphs, point 2 and 3 can be added to - the engine's features through extensions. - - An extension is simply a small piece of code that extends the - engine's abilities and APIs. It is possible to extend the - engine without touching the core's source code, this is - described in chapter 3 below. - - 2. The two kinds of extensions - ------------------------------ - - There are basically two kinds of extensions, which require - different implementations. - - a. API extensions - - An API extension is a set of functions that extend the - FreeType core API to give access to tables that are already - loaded by the engine, but not provided for now. An example of - such data can be: - - - the horizontal metrics table (hmtx) - - the `gasp' table - - This kind of extension is made of: - - o an API extension header file, following the usage convention - introduced here (all labels prefixed with `TT_'), and which - will be included by the clients which want to use the - extension. By convention, such header names begin with - `ftx' (for FreeType eXtension). - - Examples: ftxgasp.h, ftxhmtx.h - - o One or more functions used to give access to the tables that - are already loaded and managed by the engine. They usually - only copy pointers to the target structure given by the - client application since these structures are not accessible - through the 'normal' API. An API extension doesn't need to - be initialized before being used. - - b. Engine extensions - - It can sometimes be useful to load and manage several tables - that are not considered by the core engine. These extensions - need to provide additional functions to fit into FreeType's - internal object management model, and are more sophisticated - than API extensions. - - An example is given in this distribution to provide kerning - support (or more technically spoken, access to the kerning - tables found within the TrueType files). It is made of: - - o An API extension providing new interfaces to the client - applications that need it. See the file `ftxkern.h' - resp. `apirefx.txt'. - - o A specific implementation, providing services to create, - load, and manage kerning tables as additional parts of a - face object. In the case of kerning, the directory of - tables is loaded when the face is opened, and tables - themselves are fetched from the file on demand. This - implies several `hooks' in the core engine. See the files - `ttkern.h' and `ttkern.c'. These are called `engine - extensions'. - - o A specific extension initialization function, namely - TT_Init_Kerning_Extension(), that must be called after an - engine's creation, and before any face object allocation. - This function will `register' the extension within the - engine and make its API workable. - - 3. Writing your own extensions - ------------------------------ - - As it was suggested earlier, writing an engine extension is a - delicate process, as the additional code must follow a certain - number of design rules, presented in the FreeType developer's - guide. Unfortunately, there is currently no extension writer's - guide. - - By writing your own extensions, it will be possible to support - more advanced TrueType formats like TrueType GX or OpenType in a - near future, without having to torture the engine core source at - each iteration. - - If you encounter some difficulties when trying to create your - own extension, please read the core source file carefully, and - in the event that you may need changes that are not fitted to - the current extension mechanism, do not hesitate to contact the - authors at `devel@freetype.org'. - - -Conclusion -========== - - The engine source code has become rather stable since now, and - its quality compares very favorably to Windows and the Macintosh - rasterizers. Its internals will continue to change, though very - slowly, even if the API isn't expected to grow much in a near - future. - - FreeType is really a glyph-oriented TrueType driver. Its - purpose is to open and manage font files in order to load single - glyphs and render them as cleanly as possible. A number of - features, important to developers, like text string rendering, - font mapping and underlining/stroking, to name a few, aren't - provided there even though they'd be highly appreciated. - - We hope you have success and fun using this engine. Much time - has been taken to make it one of the best in its genre. - Remember that it is not intended to be a complete font server or - text rendering library, but a pretty solid base for these kinds - of applications, as well as others. - - We thank you for your time and consideration. - - David Turner, Robert Wilhelm, Werner Lemberg, - and all the FreeType enthusiasts... - - ---- End of user.txt --- diff --git a/Build/source/libs/freetype/freetype-1.5/freetype.spec b/Build/source/libs/freetype/freetype-1.5/freetype.spec deleted file mode 100644 index 9dc71c8ce07..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/freetype.spec +++ /dev/null @@ -1,171 +0,0 @@ -Summary: FreeType library -Name: freetype -Version: 1.5 -Release: 1 -Source: ftp://ftp.freetype.org/freetype/freetype1-%{version}-%{release}.tar.gz -URL: http://www.freetype.org/ -Copyright: BSD-Like + GPL -Group: Libraries -BuildRoot: /var/tmp/freetype - -%description -The FreeType engine is a free and portable TrueType font rendering -engine. It has been developed to provide TrueType support to a -great variety of platforms and environments. - -Note that FreeType is a *library*. It is not a font server for your -favorite platform, even though it was designed to be used in many of -them. Note also that it is *not* a complete text-rendering library. -Its purpose is simply to open and manage font files, as well as -load, hint and render individual glyphs efficiently. You can also -see it as a `TrueType driver' for a higher-level library, though -rendering text with it is extremely easy, as demo-ed by the test -programs. - -This package contains the files needed to run programs that use the -FreeType engine. - -%package devel -Summary: FreeType development headers and libraries -Group: Development/Libraries -Requires: %{name} = %{version} - -%description devel -The FreeType engine is a free and portable TrueType font rendering -engine. It has been developed to provide TrueType support to a -great variety of platforms and environments. - -Note that FreeType is a *library*. It is not a font server for your -favorite platform, even though it was designed to be used in many of -them. Note also that it is *not* a complete text-rendering library. -Its purpose is simply to open and manage font files, as well as -load, hint and render individual glyphs efficiently. You can also -see it as a `TrueType driver' for a higher-level library, though -rendering text with it is extremely easy, as demo-ed by the test -programs. - -This package contains all supplementary files you need to develop -your own programs using the FreeType engine. - -%package demo -Summary: FreeType test and demo programs -Group: Applications/Graphics -Requires: %{name} = %{version} - -%description demo -The FreeType engine is a free and portable TrueType font rendering engine. -It has been developed to provide TT support to a great variety of platforms -and environments. - -Note that FreeType is a *library*. It is not a font server for your favorite -platform, even though it was designed to be used in many of them. Note also -that it is *not* a complete text-rendering library. Its purpose is simply to -open and manage font files, as well as load, hint and render individual -glyphs efficiently. You can also see it as a "TrueType driver" for a -higher-level library, though rendering text with it is extremely easy, as -demo-ed by the test programs. - -This package contains several programs bundled with the FreeType engine for -testing and demonstration purposes. - -%changelog -* Tue Jan 08 2002 Werner Lemberg <werner.lemberg@freetype.org> -- Updated to version 1.5. - -* Mon Oct 29 2001 Antoine Leca <Antoine-Freetype@Leca-Marti.org> -- Updated to version 1.4.9 (pre 1.5); NOTE: 1.4 was never released officially. - -* Wed Feb 23 2000 Werner Lemberg <werner.lemberg@freetype.org> -- Updated to version 1.4. - -* Thu Sep 9 1999 Pavel Kankovsky <peak@kerberos.troja.mff.cuni.cz> -- Simplified (and fixed) file list. - -* Wed Jun 16 1999 Werner Lemberg <werner.lemberg@freetype.org> -- Updated to version 1.3. - -* Sun Oct 25 1998 Pavel Kankovsky <peak@kerberos.troja.mff.cuni.cz> -- libttf.so version number updated again. -- Default localedir based on prefix. -- File list adjustments (howto/). - -* Sun Oct 16 1998 Pavel Kankovsky <peak@kerberos.troja.mff.cuni.cz> -- Source filename fixed. -- HOWTO removed. -- libttf.so version number updated. - -* Tue Sep 29 1998 Robert Wilhelm <robert@freetype.org> -- Updated to version 1.2. - -* Tue Jul 14 1998 Alexander Zimmermann <Alexander.Zimmermann@fmi.uni-passau.de> -- Added missing files. -- Added %defattr tags. - -* Thu Jun 18 1998 Robert Wilhelm <robert@freetype.org> -- Added lots of attr(-,root,root). - -* Wed May 27 1998 Pavel Kankovsky <peak@kerberos.troja.mff.cuni.cz> -- Changed group attr of freetype and freetype-devel package. -- Fixed misc glitches. - -* Sun May 24 1998 Pavel Kankovsky <peak@kerberos.troja.mff.cuni.cz> -- Split the package into three parts (runtime library, development - tools, and demo programs). -- Added missing files (headers, NLS). -- Added ldconfing upon (de)installation. - -* Thu Mar 12 1998 Bruno Lopes F. Cabral <bruno@openline.com.br> -- NLS for Portuguese language is missing, sorry (may be in a near future) - (please note the workaround using --with-locale-dir and gnulocaledir. - NLS Makefile needs a bit more rework but again I'll not patch it here). - -%prep -%setup - -find . -name CVS -type d | xargs rm -rf - -%build -./configure --prefix=/usr --enable-static -make all - -%install -make install prefix=$RPM_BUILD_ROOT/usr - -%clean -rm -rf $RPM_BUILD_ROOT - -%post -/sbin/ldconfig - -%postun -/sbin/ldconfig - -%files -%defattr(644, root, root, 755) -%doc announce license.txt docs/FTL.txt docs/GPL.txt -/usr/lib/libttf.so.* -/usr/share/locale/ - -%files devel -%defattr(644, root, root, 755) -%doc INSTALL README PATENTS announce license.txt readme.1st -%doc docs/ howto/ -/usr/lib/libttf.so -/usr/lib/libttf.la -/usr/lib/libttf.a -/usr/include/freetype/ - -%files demo -%defattr(755, root, root, 755) -%doc announce license.txt -/usr/bin/ftdump -/usr/bin/fterror -/usr/bin/ftlint -/usr/bin/ftmetric -/usr/bin/ftsbit -/usr/bin/ftstring -/usr/bin/ftstrpnm -/usr/bin/ftstrtto -/usr/bin/fttimer -/usr/bin/ftview -/usr/bin/ftzoom diff --git a/Build/source/libs/freetype/freetype-1.5/ft_conf.h.in b/Build/source/libs/freetype/freetype-1.5/ft_conf.h.in deleted file mode 100644 index da296c4a6e0..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/ft_conf.h.in +++ /dev/null @@ -1,220 +0,0 @@ -/******************************************************************* - * - * ft_conf.h.in - * - * Template ft_conf.h for Unix systems - * - * - * Copyright 1996-2002 by - * David Turner, Robert Wilhelm, and Werner Lemberg - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - ******************************************************************/ - -/* we need the following because there are some typedefs in this file */ - -#ifndef FT_CONF_H -#define FT_CONF_H - -/* Define to empty if the keyword does not work. */ -#undef const - -/* Define if you have a working `mmap' system call. */ -#undef HAVE_MMAP - -/* Define if you have the <stdlib.h> header file. */ -#undef HAVE_STDLIB_H - -/* Define if the X Window System is missing or not being used. */ -#undef X_DISPLAY_MISSING - -/* The number of bytes in a int. */ -#undef SIZEOF_INT - -/* The number of bytes in a long. */ -#undef SIZEOF_LONG - -/* Define if you have the getpagesize function. */ -#undef HAVE_GETPAGESIZE - -/* Define if you have the memcpy function. */ -#undef HAVE_MEMCPY - -/* Define if you have the memmove function. */ -#undef HAVE_MEMMOVE - -/* Define if you have the <fcntl.h> header file. */ -#undef HAVE_FCNTL_H - -/* Define if you have the <unistd.h> header file. */ -#undef HAVE_UNISTD_H - -/* Define if you have the <locale.h> header file. */ -#undef HAVE_LOCALE_H - -/* Define if you have the <libintl.h> header file. */ -#undef HAVE_LIBINTL_H - -/**********************************************************************/ -/* */ -/* The following configuration macros can be tweaked manually by */ -/* a developer to turn on or off certain features or options in the */ -/* TrueType engine. This may be useful to tune it for specific */ -/* purposes.. */ -/* */ -/**********************************************************************/ - -/*************************************************************************/ -/* Define this if the underlying operating system uses a different */ -/* character width than 8bit for file names. You must then also supply */ -/* a typedef declaration for defining 'TT_Text'. Default is off. */ - -#undef HAVE_TT_TEXT - - -/*************************************************************************/ -/* Define this if you want to generate code to support engine extensions */ -/* Default is on, but if you're satisfied by the basic services provided */ -/* by the engine and need no extensions, undefine this configuration */ -/* macro to save a few more bytes. */ - -#define TT_CONFIG_OPTION_EXTEND_ENGINE - - -/*************************************************************************/ -/* Define this if you want to generate code to support gray-scaling, */ -/* a.k.a. font-smoothing or anti-aliasing. Default is on, but you can */ -/* disable it if you don't need it. */ - -#define TT_CONFIG_OPTION_GRAY_SCALING - - -/*************************************************************************/ -/* Define this if you want to compile a bytecode interpreter in the */ -/* TrueType driver. Note that there are important patent issues related */ -/* to the use of the interpreter. */ -/* */ -/* By undefining this, you will only compile the code necessary to load */ -/* TrueType glyphs without hinting. */ - -#undef TT_CONFIG_OPTION_BYTECODE_INTERPRETER - - -/*************************************************************************/ -/* Define this if you want to use a big 'switch' statement within the */ -/* bytecode interpreter. Because some non-optimizing compilers are not */ -/* able to produce jump tables from such statements, undefining this */ -/* configuration macro will generate the appropriate C jump table in */ -/* ttinterp.c. If you use an optimizing compiler, you should leave it */ -/* defined for better performance and code compactness.. */ - -#define TT_CONFIG_OPTION_INTERPRETER_SWITCH - - -/*************************************************************************/ -/* Define this if you want to build a 'static' version of the scan-line */ -/* converter (the component which in charge of converting outlines into */ -/* bitmaps). This will produce a bigger object file for "ttraster.c", */ -/* which _may_ be faster on some architectures.. */ -/* */ -/* Do NOT DEFINE THIS is you build a thread-safe version of the engine */ -/* */ -#undef TT_CONFIG_OPTION_STATIC_RASTER - - -/*************************************************************************/ -/* Define this if you want to build a 'static' version of the TrueType */ -/* bytecode interpreter. This will produce much bigger code, which */ -/* _may_ be faster on some architectures.. */ -/* */ -/* Do NOT DEFINE THIS is you build a thread-safe version of the engine */ -/* */ -#undef TT_CONFIG_OPTION_STATIC_INTERPRETER - - -/*************************************************************************/ -/* Define TT_CONFIG_THREAD_SAFE if you want to build a thread-safe */ -/* version of the library. */ - -#undef TT_CONFIG_OPTION_THREAD_SAFE - - -/**********************************************************************/ -/* */ -/* The following macros are used to define the debug level, as well */ -/* as individual tracing levels for each component. There are */ -/* currently three modes of operation : */ -/* */ -/* - trace mode (define DEBUG_LEVEL_TRACE) */ -/* */ -/* The engine prints all error messages, as well as tracing */ -/* ones, filtered by each component's level */ -/* */ -/* - debug mode (define DEBUG_LEVEL_ERROR) */ -/* */ -/* Disable tracing, but keeps error output and assertion */ -/* checks. */ -/* */ -/* - release mode (don't define anything) */ -/* */ -/* Don't include error-checking or tracing code in the */ -/* engine's code. Ideal for releases. */ -/* */ -/* NOTE : */ -/* */ -/* Each component's tracing level is defined in its own source. */ -/* */ -/**********************************************************************/ - -/* Define if you want to use the tracing debug mode */ -#undef DEBUG_LEVEL_TRACE - -/* Define if you want to use the error debug mode - ignored if */ -/* DEBUG_LEVEL_TRACE is defined */ -#undef DEBUG_LEVEL_ERROR - - -/**************************************************************************/ -/* Definition of various integer sizes. These types are used by ttcalc */ -/* and ttinterp (for the 64-bit integers) only.. */ - -#if SIZEOF_INT == 4 - - typedef signed int TT_Int32; - typedef unsigned int TT_Word32; - -#elif SIZEOF_LONG == 4 - - typedef signed long TT_Int32; - typedef unsigned long TT_Word32; - -#else -#error "no 32bit type found" -#endif - -#if SIZEOF_LONG == 8 - -/* LONG64 must be defined when a 64-bit type is available */ -/* INT64 must then be defined to this type.. */ -#define LONG64 -#define INT64 long - -#else - -/* GCC provides the non-ANSI 'long long' 64-bit type. You can activate */ -/* by defining the TT_USE_LONG_LONG macro in 'ft_conf.h'. Note that this */ -/* will produce many -ansi warnings during library compilation. */ -#ifdef TT_USE_LONG_LONG - -#define LONG64 -#define INT64 long long - -#endif /* TT_USE_LONG_LONG */ -#endif - -#endif /* FT_CONF_H */ diff --git a/Build/source/libs/freetype/freetype-1.5/howto/mac.txt b/Build/source/libs/freetype/freetype-1.5/howto/mac.txt deleted file mode 100644 index 6ed97d9f7a3..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/howto/mac.txt +++ /dev/null @@ -1,19 +0,0 @@ - The FreeType Mac Compilation HowTo - - - Please note that the FreeType team does *not* support the - Macintosh platform due to lack of knowledge. - - However, we provide the basic files to compile the library in - the lib/arch/mac directory (OK, `folders'). Also the project - files for PowerPC with CodeWarrior have been contributed (in - contrib/mac). - - A noteworthy point is that the precompiled standard MacOS - headers should be turned off to compile the library, to avoid - errors caused by conflicting definitions of `Fixed' and `Byte'. - - -Good luck! - ---- end of mac.txt --- diff --git a/Build/source/libs/freetype/freetype-1.5/howto/msdos.txt b/Build/source/libs/freetype/freetype-1.5/howto/msdos.txt deleted file mode 100644 index 01a01f93982..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/howto/msdos.txt +++ /dev/null @@ -1,272 +0,0 @@ - The FreeType MS-DOS Compilation HowTo - -Contents - -Introduction -I. Building the library - 1. Quick Compilation - 2. Manual compilation - 3. Notes -II. Building other parts of the package - 1. Test programs - 2. Other contribs -III. Compiler Issues - 1. Special issues of 16-bit MS-DOS - 2. Borland Turbo C v.2.0x - - - -Introduction -============ - -This file describes the compilation of the FreeType package on a -MS-DOS system. It comes with Makefiles for the following compilers: - - - gcc/emx and gcc/djgpp with GNU make (32 bit) - - - wcc386 with wmake (Watcom -- tried with 10.6) - - - gcc/emx with dmake (32 bit) - - - cl with nmake (16-bit Microsoft C -- tried with 7 and VC++ 1.5x) - - - bcc/tcc with Borland make (16-bit Borland C++ and Turbo C) - -NOTE: - - You are advised to jump to section II.1 if you want to run the - FreeType test/demo programs as quick as possible. - - - -I. Building the library -======================= - - -1. Quick Compilation --------------------- - - The easiest way to compile the library on MS-DOS is to go to the - directory `freetype/lib'. Then type, depending on your compiler: - - gcc/emx, - gcc/djgpp: make -f arch/msdos/Makefile.gcc - gcc/dmake: dmake -r -f arch/msdos/Makefile.dm - - wcc386: wmake -f=arch\msdos\Makefile.wat - - cl: nmake /f arch\msdos\Makefile.MS (for versions 6-7) - cl: nmake /f arch\msdos\Makefile.VC (for Visual C++ 1.x) - - tcc: make -farch/msdos/Makefile.TC - bcc: make -farch/msdos/Makefile.BC - - This should build the `libttf.a' or `libttf.lib' library files. - - You can also use the following targets: - - depend - (for gcc with emx or DJGPP only) Creates a file that - lists the dependancies. Useful for the developper. - - clean - Cleans all intermediate object files created during - compilation. Keeps all library and executables in - place. - - distclean - Cleans everything, leaving the directories as they - were before the compilation. - - debug - Makes a development version of the library. Only - useful for FreeType developers and hackers. - - Note that you can also select to use the `debugging' flags for - your compiler (instead of the `optimizing' ones), by defining - the `DEBUG' symbol, like in - - nmake /f arch\msdos\Makefile.MS DEBUG=1 - make -farch/msdos/Makefile.BC /DDEBUG - etc. - - Doing so will automatically select the debug target instead of - the normal mode. - - For 16-bit compilers, you can also try defining the `BIGFONTS' - symbol, to enable the use of the `huge pointers' needed to - handle some big fonts. More on this at the end of this file. - - -2. Manual compilation ---------------------- - - Here are explained the steps that are required to compile the - FreeType _library_ (and only this one) by hand. - - Unlike previous versions, FreeType 1.1 and above can be compiled - in two modes, called `debug mode' and `single object mode'. - - Debug mode is simply the normal way of compiling C programs, i.e., - each `*.c' file is compiled into an individual `*.obj' object - file, and all of them are linked together into an archive (i.e., - `*.lib' library). - - Single object mode is slightly different: All C files are included - in a single source during compilation, resulting in a single final - object file for the core library. This has the advantage of - letting optimizing compilers do more global work, as well as - getting rid of all external which are used solely for the purpose - of components interfacing. - - In both modes, you need to include the following paths to your - makefile/command line: - - the location of all `tt*.[hc]' files - the location of system-specific files - - For example, if you are compiling from the `freetype/lib' - directory, you can type for debug mode something like - - gcc -c -I. -Iarch/msdos tt*.c - - to compile all required files into object ones. Then assemble - them in a library with `ar', `lib', or `tlib'. - - In single object mode, you only need to compile the file named - `freetype.c' which is located in `freetype/lib/arch/msdos'. From - the same directory as before, one would type - - cl -c -I. -Iarch/msdos arch/msdos/freetype.c - - You can also compile the extensions located in - `freetype/lib/extend' separately from the base engine. You will - need to include the same paths as before, though; be sure to add - the path to the `extend' directory, like in - - bcc -c -I. -Iarch/msdos -Iextend extend/*.c - - -3. Notes --------- - - `char' is always `signed char' in the sources! - - `ttconfig.h' relies heavily on a file called `ft_conf.h' that - contains information related to the target platform, located in - the `freetype/lib/arch/msdos/' directory. Depending on your - compiler, you may need to slightly edit it. - - We use gcc as our reference compiler for warnings. This means - that we use the `-ansi -pedantic -Wall' flags and try to get rid - of warnings in this situation. If you're compiling with another - compiler, you may encounter warnings, not errors. Note that the - Borland compilers seem to produce lots of irrelevant warnings - (like `potential loss of precision'). - - - -II. Building other parts of the package -======================================= - - -1. Test programs ----------------- - - These are located in `freetype/test'. Most of them use a tiny - graphics sub-system which is simply used to display bitmaps and - pixmaps on a variety of platforms. The MS-DOS version is a very - basic one that only works in full-screen using standard VGA mode. - - To compile them, you must be in the `freetype/test' directory and - invoke the makefile in arch/msdos. For example: - - nmake /f arch\msdos\Makefile.VC - - - NOTE 1: - - This will automatically invoke the library makefile for you! - - NOTE 2: - - For now, the graphical test programs only run on the following - platforms: Unix, OS/2, Dos, Amiga, and Windows. - - The library, being pure ANSI-C, can be used on any system to - generate bitmaps and pixmaps. - - -2. Other contribs ------------------ - - You may find some other contributions to the FreeType project in - the `freetype/contrib' directory. Each of these programs should - have its own Makefiles and documentations. Also check their - licenses, as the programs are not necessarily distributed under - the FreeType one. - - Most of these contributions are targeted to Unix. You are invited - to port them to MS-DOS, and then contribute your improvements. - - - -III. Compiler Issues -==================== - - Many comments specific to a given compiler are now stored in its - relevant Makefile's, in the arch/msdos subdirectories. - - -1. Special issues of 16-bit MS-DOS ----------------------------------- - - As usual, 16-bit MS-DOS have some limitations. - - First, and mainly, only the large model is usable. The small and - medium models are not usable, because the library uses more than - 64kByte of data; and the compact model is unusable as well, since - the code of the library itself is slightly less than 64kByte, thus - leaving very small place for the real work. The net effect of - that limitation is that performances are not very impressive, to - say the least (32-bit DOS extenders perform usually three-time - faster). - - Even with the large model, the rasterizer is still limited in - size, particularly with pixmaps (that is, with anti-aliasing gray - levels). - - Another annoying limitation exists with some East Asian fonts that - have 16,383 glyphs or more, since an internal table then - overflows. We tried to overcome this using the so-called `huge - pointers', but then good support for these in the run-time library - is needed. To enable this support, try defining the `BIGFONTS' - symbol with the makefile, like using - - nmake /f arch\msdos\makefile.MS BIGFONTS=1 - make -farch/msdos/makefile.BC /DBIGFONTS - etc. - - The Makefiles for both Microsoft and Borland compilers depend on a - special file, `arch/msdos/depend.dos', which is built by a Unix - script named `makedep'. You may consider editing it if you - heavily modify the source files; or better yet, re-run the script, - using any clone of the Bourne shell and gcc, the GNU compiler, - with - - arch/msdos/makedep - - in both the `lib' and the `test' directories. - - -2. Turbo C v. 2.0x ------------------- - - Unlike the precedent version 1.5 (!), Turbo C v.2.0 is not able to - compile C sources if they use the Unix convention for end-of- - line. So make sure either you use the .zip archive (where files - are stored with CR-LF), or if you use the .tar.gz version, the - program that does the transformation (WinZip can do it if - instructed, look after "CR/LF conversion for TAR"). - - -Good luck! - - ---- end of msdos.txt --- diff --git a/Build/source/libs/freetype/freetype-1.5/howto/os2.txt b/Build/source/libs/freetype/freetype-1.5/howto/os2.txt deleted file mode 100644 index 2ce5bab50b7..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/howto/os2.txt +++ /dev/null @@ -1,200 +0,0 @@ - The FreeType OS/2 Compilation HowTo - -Contents - -Introduction -I. Building the library - 1. Quick Compilation - 2. Manual compilation - 3. Notes -II. Building other parts of the package - 1. Test programs - 2. Other contribs -III. Troubleshooting - - - -Introduction -============ - -This file describes the compilation of the FreeType package on an -OS/2 system. It comes with makefiles for the following compilers: - - - gcc/emx with GNU make - - - icc with nmake (Visual Age C++) - - - wcc386 with wmake (Watcom -- tried with 10.6) - - - gcc/emx with dmake - - -NOTE: - - You're advised to jump to section II.1 if you want to run the - FreeType test/demo programs as quick as possible. - - - -I. Building the library -======================= - - -1. Quick Compilation --------------------- - - The easiest way to compile the library on OS/2 is to go to the - directory `freetype/lib'. Then type, depending on your compiler, - - gcc/emx: make -f arch/os2/makefile.emx - gcc/dmake: dmake -f arch/os2/makefile.dm - - icc: nmake -f arch\os2\makefile.icc - wcc386: wmake -f=arch\os2\makefile.wat - - This should build the `libttf.a' or `libttf.lib' library files. - - You can also use the following targets: - - debug - Makes a development version of the library. Only - useful for FreeType developers and hackers. - - clean - Cleans all intermediate object files created during - compilation. Keeps all library and executables in - place. - - distclean - Cleans everything, leaving the directories as they - were before the compilation. - - -2. Manual compilation ---------------------- - - Here are explained the steps that are required to compile the - FreeType _library_ (and only this one) by hand. - - Unlike previous versions, FreeType 1.1 and above can be compiled - in two modes, called `debug mode' and `single object mode'. - - Debug mode is simply the normal way of compiling C programs, i.e., - each `*.c' file is compiled into an individual `*.obj' object - file, and all of them are linked together into an archive (i.e., - `*.lib' library). - - Single object mode is slightly different: all C files are included - in a single source during compilation, resulting in a single final - object file for the core library. This has the advantage of - letting optimizing compilers do more global work, as well as - getting rid of all external symbols which are used solely for the - purpose of components interfacing. - - In both modes, you need to include the following paths to your - makefile/command line: - - the location of all `tt*.[hc]' files - the location of system-specific files - - For example, if you are compiling from the `freetype/lib' - directory, you can type for debug mode something like - - gcc -c -I. -Iarch/os2 tt*.c arch/os2/os2file.c - - to compile all required files into object ones. Then assemble - them in a library with `ar' or `implib'. - - In single object mode, you only need to compile the file named - `freetype.c' which is located in `freetype/lib/arch/os2'. From - the same directory as before, one would type: - - gcc -c -I. -Iarch/os2 arch/os2/freetype.c - - You can also compile the extensions located in - `freetype/lib/extend' separately from the base engine. You will - need to include the same paths as before, though; be sure to add - the path to the `extend' directory, like in - - gcc -c -I. -Iarch/os2 -Iextend extend/*.c - - - -II. Building other parts of the package -======================================= - - -1. Test programs ----------------- - - The test programs are located in `freetype/test'. Most of them - use a tiny graphics sub-system which is simply used to display - bitmaps and pixmaps in a windows on a variety of platforms. The - OS/2 version comes in two flavors: PM and full-screen. - - To compile them, you must be in the `freetype/test' directory, and - invoke the makefile in arch/os2. For example: - - nmake -f arch\os2\makefile.os2 - - - NOTE 1: - - This will automatically invoke the library makefile for you! - - NOTE 2: - - The test programs come in two flavors, distinguished by the `fs' - suffix appended to their name. For example: - - ftview (PM version) - ftviewfs (Full Screen version) - - The full-screen version is there mainly for debugging purposes. - - NOTE 3: - - For now, the graphical test programs only run on the following - platforms: Unix, OS/2, Dos, Amiga, and Windows. - - The library, being pure ANSI-C, can be used on any system to - generate bitmaps and pixmaps. - - -2. Other contributions ----------------------- - - You may find some other contributions to the FreeType project in - the `freetype/contrib' directory. Each of these programs should - have its own Makefiles and documentations. Also check their - licenses, as the programs not necessarily distributed under the - FreeType one. You are invited to port the non-OS/2 applications - to OS/2. - - For OS/2, you will find the source code for the FreeType/2 font - driver in `freetype/contrib/os2'. Read its documentation - carefully before trying to compile it, as it certainly won't be - easy. - - - -III. Troubleshooting -==================== - - There is only one important point on OS/2: - - `The test program crashes with anti-aliasing on!' - - It has been discovered that some versions of Visual Age C++ - contain a bug which miscompiles the anti-aliasing source in - ttraster.c, hence resulting in a page fault when trying to render - a pixmap in the engine. Apparently, not all levels/versions of - the compiler contain the bug. You'll notice the problem - immediately (page fault :-). - - Please apply the most recent fixpack to your Visual Age C++ copy - in order to get rid of it (newer fixpacks seem to solve the - issue). - - -Good luck! - - ---- end of os2.txt --- diff --git a/Build/source/libs/freetype/freetype-1.5/howto/unix.txt b/Build/source/libs/freetype/freetype-1.5/howto/unix.txt deleted file mode 100644 index ba97452dc77..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/howto/unix.txt +++ /dev/null @@ -1,258 +0,0 @@ - The FreeType Unix Compilation HOWTO - -Contents - -Introduction -I. Building the library - 1. Quick Compilation - 2. Manual compilation - 3. Notes -II. Building other parts of the package - 1. Test programs - 2. Other contribs -III. Successful Build Reports - - - -Introduction -============ - -This file describes the compilation of the FreeType package on a -Unix system. Using the `configure' script it should be rather easy -to build the library. However, detailed instructions on how to -compile the library manually are given later in this document. - - - -I. Building the library -======================= - - -1. Quick Compilation --------------------- - - The easiest way to compile the library on a Unix system is by - using the `configure' script that comes with it. Simply go to the - root directory of the FreeType package, then type - - ./configure - - to run a script that will probe your system and detect various - configuration issues, which are explained later in this document. - - From there, you can simply type - - make - - to invoke compilation of the whole package. You can also use the - following commands: - - make debug - Make a development version of the library. - Only useful for FreeType developers and - hackers. The default build should come with - `-g' (i.e., debug info in the object file) - already. - - make clean - Clean all intermediate object files created - during compilation. Keeps all library and - executables in place. - - make distclean - Clean everything, leaving the directories as - they were before the compilation. You'll need - to run `./configure' again to be able to - re-build it. - - make install - Install the library files libttf.a, libttf.la - or libttf.so to your system library path - (`/usr/local/lib' by default). The path can be - set manually with ./configure. - - make uninstall - Undo a `make install'. - - Note that the Makefile uses nested variables which causes problems - with BSD make. Use GNU make instead. - - -2. Trouble-shooting and simple customization --------------------------------------------- - - The make build seems to fail on some Solaris systems. This is - mainly due to the fact that the test programs (not the font - library itself) try to use certain libraries and/or utilities if - they find them on your system. In some cases, the Sun versions - are incompatible to the GNU ones. If you encounter such problems, - please report them to us so we can try to fix it. - - The configure script and makefiles that it generates can/make use - of the following things: - - - gettext - In order to compile the internationalized error - message string extension, which isn't part of the - core library. You can disable this and get a - clean compile with - - ./configure --disable-nls - - - - libtool - Used to generate shared libraries. You can - disable it by typing - - ./configure --disable-shared - - which will generate and link the FreeType engine - as a static library. - - By default, static compilation is disabled if the - configure script detects that your compiler - and/or operating system supports shared - libraries. You can ask for static libraries with - - ./configure --enable-static - - For more configuration options, type `./configure --help' to see a - summary of what is possible. The option to change the library - installation path for `make install' is, as usual, - `--prefix=<path>'. Example: - - ./configure --prefix=${HOME}/local/lib --disable-shared - - to install a static library (libttf.a) in `~/local/lib' (after a - `make install') - - -3. Manual compilation ---------------------- - - Here are explained the steps that are required to compile the - FreeType _library_ (and only this one) by hand. - - a. Generate a configuration file named `ft_conf.h' - - This file contains a certain number of configuration macro - declarations which must fit your system. The configure script - generates it automatically for you, but you can also take the - template file `freetype/ft_conf.h.in' and change it by hand, - then save it as `freetype/ft_conf.h'. - - b. Choose your compilation mode - - Unlike previous versions, FreeType 1.1 and above can be compiled - in two modes, called `debug mode' and `single object mode'. - - Debug mode is simply the normal way of compiling C programs, - i.e., each *.c file is compiled into an individual *.o object - file, and all of them are linked together into an archive (i.e., - a *.a library). - - Single object mode is slightly different: All C files are - included in a single source file during compilation, resulting - in a single final object file for the core library. This has - the advantage of letting optimizing compilers do more global - work, as well as getting rid of all external symbols which are - used solely for the purpose of components interfacing. - - In both modes, you need to include the following paths to your - makefile/command line: - - . the location of the `ft_conf.h' file - . the location of all `tt*.[hc]' files - . the location of system-specific files, i.e., `ttmmap.c' on - Unix. - - For example, if you are compiling from the `freetype/lib' - directory, you can type for debug mode something like - - gcc -c -I.. -I. -Iarch/unix tt*.c arch/unix/ttmmap.c - - to compile all required files. Then assemble them in a library - with `ar' (and run `runlib' if necessary). - - In single object mode, you only need to compile the file named - `freetype.c' which is located in `freetype/lib/arch/unix'. From - the same directory as before, one would type: - - gcc -c -I.. -I. -Iarch/unix arch/unix/freetype.c - - You can also compile the extensions located in - `freetype/lib/extend' separately from the base engine. You'll - need to include the same paths as before, though. - - - -II. Building other parts of the package -======================================= - - -1. Test programs ----------------- - - All test programs are located in `freetype/test'. Most of them - use a tiny graphics sub-system which simply display bitmaps and - pixmaps in a windows on a variety of platforms. Of course, the - Unix version uses X11. - - The default `make' builds all tests programs automatically. Just - go the `freetype/test' and launch the programs when you are there. - Documentation on the test programs can be found in the file - `freetype/README'. - - NOTE: - - For now, the graphical test programs only run on the following - platforms: Unix, OS/2, Dos, Amiga, and Windows. - - The library, being pure ANSI-C, can be used on any system to - generate bitmaps and pixmaps. - - -2. Other contributions ----------------------- - - You may find some other contributions to the FreeType project in - the `freetype/contrib' directory. Each of these programs should - have their own makefiles and documentations. Also check their - licenses, as they are not necessarily distributed under the - FreeType one. - - - -III. Successful Build Reports -============================= - -Nelson H. F. Beebe <beebe@math.utah.edu> and others report the -following successfully builds (with gcc 2.8.1) of freetype-1.1 on - - DEC Alpha 2100-5/250: OSF/1 3.2 - HP 9000/735: HP-UX 10.01 - Intel Pentium (200MHz MMX): Linux 2.0.30 - SGI Challenge L: IRIX 5.3 - Sun SPARC 20/512: Solaris 2.6 - Sun SPARC Ultra-2: SunOS 5.5.1 - IBM RS/6000: AIX 4.1 - -Chances are good the the current release will build on the same -machines and platforms. - -There are build problems reported on SunOs 4.x which have the form - - ld: /usr/tmp/cca07291.o: assert pure-text failed: - reference to [offset] at f754 in /usr/tmp/cca07291.o - -This may be a compiler bug in gcc 2.8.1. - -You can work around by just building a static library with - - ./configure --disable-shared --enable-static --disable-nls - -Maybe `make debug' will help here too (untested). - -Other successful builds: - - Sun SPARC Solaris 2.5 with Sun C compiler+linker - -For updated build reports, please consult our web site: - - http://www.freetype.org - - ---- end of unix.txt --- diff --git a/Build/source/libs/freetype/freetype-1.5/howto/windows.txt b/Build/source/libs/freetype/freetype-1.5/howto/windows.txt deleted file mode 100644 index f777f816431..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/howto/windows.txt +++ /dev/null @@ -1,349 +0,0 @@ - The FreeType Windows Compilation HowTo - -Contents - -Introduction -I. Building the library - 1. Quick Compilation - 2. Manual compilation - 3. Building a DLL - 4. Notes -II. Building other parts of the package - 1. Test programs - 2. Other contributions -III. Special issues of 16-bit Windows - - - -Introduction -============ - -This file describes the compilation of the FreeType package on a -Windows system. It comes with Makefiles for the following -compilers: - - - gcc/CygWin32 and gcc/MinGW32 with GNU make (32 bit) - - - cl with nmake (16-bit and 32-bit Microsoft C and Visual C++) - - - bcc with make (16-bit and 32-bit Borland C++ and also Borland - C++ builder) - -Throughout this file, we use `winXX' if it applies indifferently to -both 16-bit and 32-bit versions. You should replace it with win16 -resp. win32, as applicable. - -NOTE: - - You are advised to jump to section II.1 if you want to run the - FreeType test/demo programs as quick as possible. - - - -I. Building the library -======================= - - -1. Quick Compilation --------------------- - - The easiest way to compile the library on Windows is to go to the - directory `freetype/lib'. Then type, depending on your compiler: - - gcc: make -f arch/win32/Makefile.gcc - - cl: nmake /f arch\win16\Makefile.MS (for C/C++ 7) - cl: nmake /f arch\win16\Makefile.VC (for VC++ 16bit) - cl: nmake /f arch\win32\Makefile.CL (for VC++ 32bit) - - bcc: make -farch/win16/Makefile.BC - bcc32: make -farch/win32/Makefile.BC - - This should build the `libttf.a' or `libttf.lib' library files. - Of course, this assumes that your compiler is regularly installed. - - You can also use the following targets: - - depend - (for gcc only) Creates a file that lists the - dependancies. Useful for the developper. - - clean - Cleans all intermediate object files created during - compilation. Keeps all library and executables in - place. - - distclean - Cleans everything, leaving the directories as they - were before the compilation. - - debug - Makes a development version of the library. Only - useful for FreeType developers and hackers. - - Note that you can also select to use the `debugging' flags for - your compiler (instead of the `optimizing' ones), by defining - the `DEBUG' symbol, like in - - nmake /f arch\win32\Makefile.CL DEBUG=1 - make -farch/winXX/Makefile.BC /DDEBUG - etc. - - Doing so will automatically select the debug target instead of - the normal mode. - - For 16-bit compilers, you can also try to define the `BIGFONTS' - symbol, enabling the use of the `huge pointers' needed to handle - some big fonts. More on this at the end of this file. - - Another way to compile the library is to use the IDE provided with - the following compilers: Borland C++ 4.x/5.0, Visual C++ 4.0, and - Visual Studio. The project/workspace files can be found in the - `freetype/lib/arch/win32' directory: - - freetype.ide for Borland C++ 4.0, 4.5, and 5.0 - - freetype.dsp project and workspace files for - freetype.dsw Visual Studio - ft_dll.dsp (a.k.a. Visual C++ 5, 6, and 7) - - freetype.mdp project and makefile files for - freetype.mak Visual C++ 4.0 - - They generate a static library, which contain the core engine as a - single object file, as well as all standard extensions. - - Notes: - - - You may need to update the include paths in the Borland C++ - workspace settings. The current one looks in the directory - "C:\Program Files\Borland\BC 5.0\Include" for include files. - - - Take care that some compilers may overwrite these files when - generating the library (e.g. Borland C++ creates its own - `freetype.dsw' file, which isn't a Visual C++ project during - compilation). - - This is only important if you try to compile the lib with - several compilers. - - We gladly accept project files for other compilers. - - -2. Manual compilation ---------------------- - - Here are explained the steps that are required to compile the - FreeType _library_ (and only this one) by hand. - - Unlike previous versions, FreeType 1.1 and above can be compiled - in two modes, called `debug mode' and `single object mode'. - - Debug mode is simply the normal way of compiling C programs, i.e., - each `*.c' file is compiled into an individual `*.obj' object - file, and all of them are linked together into an archive (i.e., - `*.lib' library). - - Single object mode is slightly different: All C files are included - in a single source during compilation, resulting in a single final - object file for the core library. This has the advantage of - letting optimizing compilers do more global work, as well as - getting rid of all external which are used solely for the purpose - of components interfacing. - - In both modes, you need to include the following paths to your - makefile/command line: - - the location of all `tt*.[hc]' files - the location of system-specific files - - For example, if you are compiling from the `freetype/lib' - directory, you can type for debug mode something like - - gcc -c -I. -Iarch/win32 tt*.c - - to compile all required files into object ones. Then assemble - them in a library with `ar', `lib', or `tlib'. - - In single object mode, you only need to compile the file named - `freetype.c' which is located in `freetype/lib/arch/winXX'. From - the same directory as before, one would type - - gcc -c -I. -Iarch/win32 arch/win32/freetype.c - - You can also compile the extensions located in - `freetype/lib/extend' separately from the base engine. You will - need to include the same paths as before, though; be sure to add - the path to the `extend' directory, like in - - gcc -c -I. -Iarch/win32 -Iextend extend/*.c - - -3. Building a DLL ------------------ - - The easiest way to build the library as a DLL is also to use the - Makefiles we provide! Go to the directory `freetype/lib', then - type, depending on your compiler: - - gcc: (not yet supported) - - cl: nmake /f arch\win16\Makefile.VC DLL=1 dll (16bit) - cl: nmake /f arch\win32\Makefile.CL DLL=1 dll (32bit) - - bcc: make -farch/win16/Makefile.BC -DDLL dll - bcc32: make -farch/win32/Makefile.BC -DDLL dll - - This should build `ft15_XX.dll' (`15' for versions 1.5.*, `XX' is - either 16 or 32), and the `libttf.lib' library file. - - You can also use the following target: - - install - Install the DLL `ft15_XX.dll' to your system directory - (`C:\WINDOWS' by default). You can override the - directory by specifying the name of the directory: - - make -farch/winXX/Makefile.BC /DINSTALL_DIR=C:\TESTDLL install - nmake /f arch\win32\Makefile.CL INSTALL_DIR=D:\WINNT install - - Note that you can also select to use the `debugging' flags for - your compiler (instead of the `optimizing' ones), by defining - the `DEBUG' symbol, like in - - nmake /f arch\win16\Makefile.VC DEBUG=1 DLL=1 dll - make -farch/winXX/Makefile.BC /DDEBUG /DDLL dll - etc. - - Another way to build to DLL with Visual C++ is to use a special - Makefile that does exactly that, without relying on any settings. - - With VC++ 6.0, just type while in the `freetype/lib/arch/win32' - directory: - - nmake /f makefile.vc - - on the command line. - - For other versions, modify the $(TOOLS32) variable to point to the - directory where the build tools are. No need to set any - environment variables. - - -4. Notes --------- - - `char' is always `signed char' in the sources! - - `ttconfig.h' relies heavily on a file called `ft_conf.h' that - contains information related to the target platform, located in - the `freetype/lib/arch/winXX/' directory. Depending on your - compiler, you may need to slightly edit it. - - We use gcc as our reference compiler for warnings. This means - that we use the `-ansi -pedantic -Wall' flags and try to get rid - of warnings in this situation. If you are compiling with another - compiler, you may encounter warnings, not errors. Note that the - Borland compilers seem to produce lots of irrelevant warnings - (like `potential loss of precision'). - - - -II. Building other parts of the package -======================================= - - -1. Test programs ----------------- - - All test programs are located in `freetype/test'. Most of them - use a tiny graphics sub-system which is simply used to display - bitmaps and pixmaps on a variety of platforms. The Windows - version is a very basic one that only displays a small graphic - windows in addition to the console where the flow of messages - still goes. - - To compile them, you must be in the `freetype/test' directory and - invoke the makefile in arch/winXX. For example: - - nmake -f arch\os2\Makefile.VC - - NOTE 1: - - This will automatically invoke the library makefile for you! - - NOTE 2: - - For now, the graphical test programs only run on the following - platforms: Unix, OS/2, Dos, Amiga, and Windows. - - The library, being pure ANSI-C, can be used on any system to - generate bitmaps and pixmaps. - - -2. Other contributions ----------------------- - - You may find some other contributions to the FreeType project in - the `freetype/contrib' directory. Each of these programs should - have its own Makefiles and documentations. Also check their - licenses, as the programs are not necessarily distributed under - the FreeType one. - - Most of these contributions are targeted to Unix. You are invited - to port them to Windows, and then contribute your improvements. - - - -III. Special issues of 16-bit Windows -===================================== - - As usual, 16-bit Windows have some limitations. - - First, and mainly, only the large model is usable. The small and - medium models are not usable, because the library uses more than - 64kByte of data; and the compact model is unusable as well, since - the code of the library itself is slightly less than 64kByte, thus - leaving very small place for the real work. The net effect of - that limitation is that performances are not very impressive, to - say the least (32-bit DOS extenders perform usually three-time - faster). - - Even with the large model, the rasterizer is still limited in - size, particularly with pixmaps (that is, with anti-aliasing gray - levels). - - The test programs rely on a tiny graphical driver that mimics the - ones available on other platforms. It has some peculiarities. - First, as the test programs need a `console', the programs should - linked with some emulation of that concept. We used successfully - Borland EasyWin and Microsoft QuickWin for this purpose. Then, - the graphics window that displays the bitmaps incur the usual - 64kByte limit: The size of the window is quite tiny, particularly - when displaying `gray-level' bitmaps (the size is then 320x200, - but contrary to full-screen MS-DOS the pixels are not magnified). - Ultimately, no efforts have been done to accomodate the colors of - the screen: As a result, displaying gray bitmaps in 256-color mode - uses only 4 levels of gray (instead of 5 rendered by the library). - - Another annoying limitation exists with some East Asian fonts that - have 16,383 glyphs or more, since an internal table then - overflows. We tried to overcome this using so-called `huge - pointers', but then good support for these in the run-time library - is needed. To enable huge pointers, try defining the `BIGFONTS' - symbol with the makefile, like - - nmake /f arch\win16\makefile.VC BIGFONTS=1 - make -farch/win16/makefile.BC /DBIGFONTS - etc. - - The makefiles for both Microsoft and Borland compilers depend on a - special file, arch/winXX/depend.win, which is built by a Unix - script named `makedep'. You may consider editing it if you - heavily modify the source files; or better yet, re-run the script, - using any clone of the Bourne shell, sed, and gcc, the GNU - compiler, with - - arch/winXX/makedep - - in both the `lib' and the `test' directories. - - -Good luck! - ---- end of windows.txt --- diff --git a/Build/source/libs/freetype/freetype-1.5/install-sh b/Build/source/libs/freetype/freetype-1.5/install-sh deleted file mode 100755 index 377bb8687ff..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/install-sh +++ /dev/null @@ -1,527 +0,0 @@ -#!/bin/sh -# install - install a program, script, or datafile - -scriptversion=2011-11-20.07; # UTC - -# This originates from X11R5 (mit/util/scripts/install.sh), which was -# later released in X11R6 (xc/config/util/install.sh) with the -# following copyright and license. -# -# Copyright (C) 1994 X Consortium -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to -# deal in the Software without restriction, including without limitation the -# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -# sell copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- -# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -# -# Except as contained in this notice, the name of the X Consortium shall not -# be used in advertising or otherwise to promote the sale, use or other deal- -# ings in this Software without prior written authorization from the X Consor- -# tium. -# -# -# FSF changes to this file are in the public domain. -# -# Calling this script install-sh is preferred over install.sh, to prevent -# 'make' implicit rules from creating a file called install from it -# when there is no Makefile. -# -# This script is compatible with the BSD install script, but was written -# from scratch. - -nl=' -' -IFS=" "" $nl" - -# set DOITPROG to echo to test this script - -# Don't use :- since 4.3BSD and earlier shells don't like it. -doit=${DOITPROG-} -if test -z "$doit"; then - doit_exec=exec -else - doit_exec=$doit -fi - -# Put in absolute file names if you don't have them in your path; -# or use environment vars. - -chgrpprog=${CHGRPPROG-chgrp} -chmodprog=${CHMODPROG-chmod} -chownprog=${CHOWNPROG-chown} -cmpprog=${CMPPROG-cmp} -cpprog=${CPPROG-cp} -mkdirprog=${MKDIRPROG-mkdir} -mvprog=${MVPROG-mv} -rmprog=${RMPROG-rm} -stripprog=${STRIPPROG-strip} - -posix_glob='?' -initialize_posix_glob=' - test "$posix_glob" != "?" || { - if (set -f) 2>/dev/null; then - posix_glob= - else - posix_glob=: - fi - } -' - -posix_mkdir= - -# Desired mode of installed file. -mode=0755 - -chgrpcmd= -chmodcmd=$chmodprog -chowncmd= -mvcmd=$mvprog -rmcmd="$rmprog -f" -stripcmd= - -src= -dst= -dir_arg= -dst_arg= - -copy_on_change=false -no_target_directory= - -usage="\ -Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE - or: $0 [OPTION]... SRCFILES... DIRECTORY - or: $0 [OPTION]... -t DIRECTORY SRCFILES... - or: $0 [OPTION]... -d DIRECTORIES... - -In the 1st form, copy SRCFILE to DSTFILE. -In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. -In the 4th, create DIRECTORIES. - -Options: - --help display this help and exit. - --version display version info and exit. - - -c (ignored) - -C install only if different (preserve the last data modification time) - -d create directories instead of installing files. - -g GROUP $chgrpprog installed files to GROUP. - -m MODE $chmodprog installed files to MODE. - -o USER $chownprog installed files to USER. - -s $stripprog installed files. - -t DIRECTORY install into DIRECTORY. - -T report an error if DSTFILE is a directory. - -Environment variables override the default commands: - CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG - RMPROG STRIPPROG -" - -while test $# -ne 0; do - case $1 in - -c) ;; - - -C) copy_on_change=true;; - - -d) dir_arg=true;; - - -g) chgrpcmd="$chgrpprog $2" - shift;; - - --help) echo "$usage"; exit $?;; - - -m) mode=$2 - case $mode in - *' '* | *' '* | *' -'* | *'*'* | *'?'* | *'['*) - echo "$0: invalid mode: $mode" >&2 - exit 1;; - esac - shift;; - - -o) chowncmd="$chownprog $2" - shift;; - - -s) stripcmd=$stripprog;; - - -t) dst_arg=$2 - # Protect names problematic for 'test' and other utilities. - case $dst_arg in - -* | [=\(\)!]) dst_arg=./$dst_arg;; - esac - shift;; - - -T) no_target_directory=true;; - - --version) echo "$0 $scriptversion"; exit $?;; - - --) shift - break;; - - -*) echo "$0: invalid option: $1" >&2 - exit 1;; - - *) break;; - esac - shift -done - -if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then - # When -d is used, all remaining arguments are directories to create. - # When -t is used, the destination is already specified. - # Otherwise, the last argument is the destination. Remove it from $@. - for arg - do - if test -n "$dst_arg"; then - # $@ is not empty: it contains at least $arg. - set fnord "$@" "$dst_arg" - shift # fnord - fi - shift # arg - dst_arg=$arg - # Protect names problematic for 'test' and other utilities. - case $dst_arg in - -* | [=\(\)!]) dst_arg=./$dst_arg;; - esac - done -fi - -if test $# -eq 0; then - if test -z "$dir_arg"; then - echo "$0: no input file specified." >&2 - exit 1 - fi - # It's OK to call 'install-sh -d' without argument. - # This can happen when creating conditional directories. - exit 0 -fi - -if test -z "$dir_arg"; then - do_exit='(exit $ret); exit $ret' - trap "ret=129; $do_exit" 1 - trap "ret=130; $do_exit" 2 - trap "ret=141; $do_exit" 13 - trap "ret=143; $do_exit" 15 - - # Set umask so as not to create temps with too-generous modes. - # However, 'strip' requires both read and write access to temps. - case $mode in - # Optimize common cases. - *644) cp_umask=133;; - *755) cp_umask=22;; - - *[0-7]) - if test -z "$stripcmd"; then - u_plus_rw= - else - u_plus_rw='% 200' - fi - cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; - *) - if test -z "$stripcmd"; then - u_plus_rw= - else - u_plus_rw=,u+rw - fi - cp_umask=$mode$u_plus_rw;; - esac -fi - -for src -do - # Protect names problematic for 'test' and other utilities. - case $src in - -* | [=\(\)!]) src=./$src;; - esac - - if test -n "$dir_arg"; then - dst=$src - dstdir=$dst - test -d "$dstdir" - dstdir_status=$? - else - - # Waiting for this to be detected by the "$cpprog $src $dsttmp" command - # might cause directories to be created, which would be especially bad - # if $src (and thus $dsttmp) contains '*'. - if test ! -f "$src" && test ! -d "$src"; then - echo "$0: $src does not exist." >&2 - exit 1 - fi - - if test -z "$dst_arg"; then - echo "$0: no destination specified." >&2 - exit 1 - fi - dst=$dst_arg - - # If destination is a directory, append the input filename; won't work - # if double slashes aren't ignored. - if test -d "$dst"; then - if test -n "$no_target_directory"; then - echo "$0: $dst_arg: Is a directory" >&2 - exit 1 - fi - dstdir=$dst - dst=$dstdir/`basename "$src"` - dstdir_status=0 - else - # Prefer dirname, but fall back on a substitute if dirname fails. - dstdir=` - (dirname "$dst") 2>/dev/null || - expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$dst" : 'X\(//\)[^/]' \| \ - X"$dst" : 'X\(//\)$' \| \ - X"$dst" : 'X\(/\)' \| . 2>/dev/null || - echo X"$dst" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q' - ` - - test -d "$dstdir" - dstdir_status=$? - fi - fi - - obsolete_mkdir_used=false - - if test $dstdir_status != 0; then - case $posix_mkdir in - '') - # Create intermediate dirs using mode 755 as modified by the umask. - # This is like FreeBSD 'install' as of 1997-10-28. - umask=`umask` - case $stripcmd.$umask in - # Optimize common cases. - *[2367][2367]) mkdir_umask=$umask;; - .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; - - *[0-7]) - mkdir_umask=`expr $umask + 22 \ - - $umask % 100 % 40 + $umask % 20 \ - - $umask % 10 % 4 + $umask % 2 - `;; - *) mkdir_umask=$umask,go-w;; - esac - - # With -d, create the new directory with the user-specified mode. - # Otherwise, rely on $mkdir_umask. - if test -n "$dir_arg"; then - mkdir_mode=-m$mode - else - mkdir_mode= - fi - - posix_mkdir=false - case $umask in - *[123567][0-7][0-7]) - # POSIX mkdir -p sets u+wx bits regardless of umask, which - # is incompatible with FreeBSD 'install' when (umask & 300) != 0. - ;; - *) - tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ - trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 - - if (umask $mkdir_umask && - exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 - then - if test -z "$dir_arg" || { - # Check for POSIX incompatibilities with -m. - # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or - # other-writable bit of parent directory when it shouldn't. - # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. - ls_ld_tmpdir=`ls -ld "$tmpdir"` - case $ls_ld_tmpdir in - d????-?r-*) different_mode=700;; - d????-?--*) different_mode=755;; - *) false;; - esac && - $mkdirprog -m$different_mode -p -- "$tmpdir" && { - ls_ld_tmpdir_1=`ls -ld "$tmpdir"` - test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" - } - } - then posix_mkdir=: - fi - rmdir "$tmpdir/d" "$tmpdir" - else - # Remove any dirs left behind by ancient mkdir implementations. - rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null - fi - trap '' 0;; - esac;; - esac - - if - $posix_mkdir && ( - umask $mkdir_umask && - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" - ) - then : - else - - # The umask is ridiculous, or mkdir does not conform to POSIX, - # or it failed possibly due to a race condition. Create the - # directory the slow way, step by step, checking for races as we go. - - case $dstdir in - /*) prefix='/';; - [-=\(\)!]*) prefix='./';; - *) prefix='';; - esac - - eval "$initialize_posix_glob" - - oIFS=$IFS - IFS=/ - $posix_glob set -f - set fnord $dstdir - shift - $posix_glob set +f - IFS=$oIFS - - prefixes= - - for d - do - test X"$d" = X && continue - - prefix=$prefix$d - if test -d "$prefix"; then - prefixes= - else - if $posix_mkdir; then - (umask=$mkdir_umask && - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break - # Don't fail if two instances are running concurrently. - test -d "$prefix" || exit 1 - else - case $prefix in - *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; - *) qprefix=$prefix;; - esac - prefixes="$prefixes '$qprefix'" - fi - fi - prefix=$prefix/ - done - - if test -n "$prefixes"; then - # Don't fail if two instances are running concurrently. - (umask $mkdir_umask && - eval "\$doit_exec \$mkdirprog $prefixes") || - test -d "$dstdir" || exit 1 - obsolete_mkdir_used=true - fi - fi - fi - - if test -n "$dir_arg"; then - { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && - { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && - { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || - test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 - else - - # Make a couple of temp file names in the proper directory. - dsttmp=$dstdir/_inst.$$_ - rmtmp=$dstdir/_rm.$$_ - - # Trap to clean up those temp files at exit. - trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 - - # Copy the file name to the temp name. - (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && - - # and set any options; do chmod last to preserve setuid bits. - # - # If any of these fail, we abort the whole thing. If we want to - # ignore errors from any of these, just make sure not to ignore - # errors from the above "$doit $cpprog $src $dsttmp" command. - # - { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && - { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && - { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && - { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && - - # If -C, don't bother to copy if it wouldn't change the file. - if $copy_on_change && - old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && - new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && - - eval "$initialize_posix_glob" && - $posix_glob set -f && - set X $old && old=:$2:$4:$5:$6 && - set X $new && new=:$2:$4:$5:$6 && - $posix_glob set +f && - - test "$old" = "$new" && - $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 - then - rm -f "$dsttmp" - else - # Rename the file to the real destination. - $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || - - # The rename failed, perhaps because mv can't rename something else - # to itself, or perhaps because mv is so ancient that it does not - # support -f. - { - # Now remove or move aside any old file at destination location. - # We try this two ways since rm can't unlink itself on some - # systems and the destination file might be busy for other - # reasons. In this case, the final cleanup might fail but the new - # file should still install successfully. - { - test ! -f "$dst" || - $doit $rmcmd -f "$dst" 2>/dev/null || - { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && - { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } - } || - { echo "$0: cannot unlink or rename $dst" >&2 - (exit 1); exit 1 - } - } && - - # Now rename the file to the real destination. - $doit $mvcmd "$dsttmp" "$dst" - } - fi || exit 1 - - trap '' 0 - fi -done - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" -# time-stamp-end: "; # UTC" -# End: diff --git a/Build/source/libs/freetype/freetype-1.5/lib/.cvsignore b/Build/source/libs/freetype/freetype-1.5/lib/.cvsignore deleted file mode 100644 index e61a727f46f..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.libs -*.lo -libttf.la diff --git a/Build/source/libs/freetype/freetype-1.5/lib/.cvsignore.delete b/Build/source/libs/freetype/freetype-1.5/lib/.cvsignore.delete deleted file mode 100644 index e69de29bb2d..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/.cvsignore.delete +++ /dev/null diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/amigaos/Makefile.gcc b/Build/source/libs/freetype/freetype-1.5/lib/arch/amigaos/Makefile.gcc deleted file mode 100644 index d91dde3d291..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/amigaos/Makefile.gcc +++ /dev/null @@ -1,77 +0,0 @@ -# This file builds the library for Amiga using ADE environment. -# -# You will need GNU make. -# -# Use this file while in the lib directory with the following statement: -# -# make -f arch/amigaos/Makefile.gcc -# -# -# Copyright 1996-2001 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. - -ARCH = arch/amigaos -FT_MAKEFILE = $(ARCH)/Makefile.gcc - -AR = ar -RM = rm - -CC = gcc - -CFLAGS = -Wall -pedantic -ansi -O2 -g -noixemul -I$(ARCH) -I. -Iextend - -SRC_X = extend/ftxgasp.c extend/ftxkern.c extend/ftxpost.c \ - extend/ftxcmap.c extend/ftxwidth.c extend/ftxsbit.c \ - extend/ftxgsub.c extend/ftxgpos.c extend/ftxgdef.c \ - extend/ftxopen.c extend/ftxerr18.c -OBJS_X = $(SRC_X:.c=.o) - -SRC_M = ttapi.c ttcache.c ttcalc.c ttcmap.c ttdebug.c \ - ttextend.c ttfile.c ttgload.c ttinterp.c ttload.c \ - ttmemory.c ttmutex.c ttobjs.c ttraster.c -OBJS_M = $(SRC_M:.c=.o) $(OBJS_X) - -SRC_S = $(ARCH)/freetype.c -OBJ_S = $(SRC_S:.c=.o) -OBJS_S = $(OBJ_S) $(OBJS_X) - - -%.o: %.c - $(CC) $(CFLAGS) -c -o $@ $< - -.PHONY: all debug clean distclean - - -all: - $(MAKE) -f $(FT_MAKEFILE) LIB_FILES=OBJS_S libttf.a - -debug: - $(MAKE) -f $(FT_MAKEFILE) LIB_FILES=OBJS_M libttf.a - - -$(OBJ_S): $(SRC_S) $(SRC_M) - - -libttf.a: $($(LIB_FILES)) - $(AR) src $@ $^ - -clean: - $(RM) $($(LIB_FILES)) - -distclean: clean - $(RM) dep.end libttf.a - -depend: $(SRC_S) $(SRC_M) $(SRC_X) - $(CC) -E -MM -I$(ARCH) -I. -Iextend $^ > dep.end - -ifeq (dep.end,$(wildcard dep.end)) - include dep.end -endif - -# end of Makefile.gcc diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/amigaos/freetype.c b/Build/source/libs/freetype/freetype-1.5/lib/arch/amigaos/freetype.c deleted file mode 100644 index 723c8f463ce..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/amigaos/freetype.c +++ /dev/null @@ -1,25 +0,0 @@ -/* This file is part of the FreeType project */ - -/* Single object library component for AmigaOS */ -#define TT_MAKE_OPTION_SINGLE_OBJECT - -#include "ttapi.c" -#include "ttcache.c" -#include "ttcalc.c" -#include "ttcmap.c" -#include "ttdebug.c" -#include "ttfile.c" -#include "ttgload.c" -#include "ttinterp.c" -#include "ttload.c" -#include "ttmemory.c" -#include "ttmutex.c" -#include "ttobjs.c" -#include "ttraster.c" - -#ifdef TT_CONFIG_OPTION_EXTEND_ENGINE -#include "ttextend.c" -#endif - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/amigaos/ft_conf.h b/Build/source/libs/freetype/freetype-1.5/lib/arch/amigaos/ft_conf.h deleted file mode 100644 index fef44662e75..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/amigaos/ft_conf.h +++ /dev/null @@ -1,212 +0,0 @@ -/******************************************************************* - * - * ft_conf.h for AmigaOS using ADE environment - * - * - * Copyright 1996-2002 by - * David Turner, Robert Wilhelm, and Werner Lemberg - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - ******************************************************************/ - - -/* we need the following because there are some typedefs in this file */ - -#ifndef FT_CONF_H -#define FT_CONF_H - -/* Define to empty if the keyword does not work. */ - -/* #undef const */ - -/* Define if you have the <stdlib.h> header file. */ -#define HAVE_STDLIB_H - -/* The number of bytes in a int. */ -#define SIZEOF_INT 4 - -/* The number of bytes in a long. */ -#define SIZEOF_LONG 4 - -/* Define if you have the memcpy function. */ -#define HAVE_MEMCPY - -/* Define if you have the memmove function. */ -#define HAVE_MEMMOVE - -/* Define if you have the <unistd.h> header file. */ -#define HAVE_UNISTD_H - -/* Define if you have the <libintl.h> header file. */ -/* #undef HAVE_LIBINTL_H */ - -/* Define if you have the <locale.h> header file. */ -/* Only meaningful if you have <libintl.h>. */ -#define HAVE_LOCALE_H - -/**********************************************************************/ -/* */ -/* The following configuration macros can be tweaked manually by */ -/* a developer to turn on or off certain features or options in the */ -/* TrueType engine. This may be useful to tune it for specific */ -/* purposes.. */ -/* */ -/**********************************************************************/ - - -/*************************************************************************/ -/* Define this if the underlying operating system uses a different */ -/* character width than 8bit for file names. You must then also supply */ -/* a typedef declaration for defining 'TT_Text'. Default is off. */ - -/* #define HAVE_TT_TEXT */ - - -/*************************************************************************/ -/* Define this if you want to generate code to support engine extensions */ -/* Default is on, but if you're satisfied by the basic services provided */ -/* by the engine and need no extensions, undefine this configuration */ -/* macro to save a few more bytes. */ - -#define TT_CONFIG_OPTION_EXTEND_ENGINE - - -/*************************************************************************/ -/* Define this if you want to generate code to support gray-scaling, */ -/* a.k.a. font-smoothing or anti-aliasing. Default is on, but you can */ -/* disable it if you don't need it. */ - -#define TT_CONFIG_OPTION_GRAY_SCALING - - -/*************************************************************************/ -/* Define this if you want to compile a bytecode interpreter in the */ -/* TrueType driver. Note that there are important patent issues related */ -/* to the use of the interpreter. */ -/* */ -/* By undefining this, you will only compile the code necessary to load */ -/* TrueType glyphs without hinting. */ - -#undef TT_CONFIG_OPTION_BYTECODE_INTERPRETER - - -/*************************************************************************/ -/* Define this if you want to use a big 'switch' statement within the */ -/* bytecode interpreter. Because some non-optimizing compilers are not */ -/* able to produce jump tables from such statements, undefining this */ -/* configuration macro will generate the appropriate C jump table in */ -/* ttinterp.c. If you use an optimizing compiler, you should leave it */ -/* defined for better performance and code compactness.. */ - -#define TT_CONFIG_OPTION_INTERPRETER_SWITCH - - -/*************************************************************************/ -/* Define this if you want to build a 'static' version of the TrueType */ -/* bytecode interpreter. This will produce much bigger code, which */ -/* _may_ be faster on some architectures.. */ -/* */ -/* Do NOT DEFINE THIS is you build a thread-safe version of the engine */ - -#undef TT_CONFIG_OPTION_STATIC_INTERPRETER - - -/*************************************************************************/ -/* Define this if you want to build a 'static' version of the scan-line */ -/* converter (the component which in charge of converting outlines into */ -/* bitmaps). This will produce a bigger object file for "ttraster.c", */ -/* which _may_ be faster on some architectures.. */ -/* */ -/* Do NOT DEFINE THIS is you build a thread-safe version of the engine */ - -#undef TT_CONFIG_OPTION_STATIC_RASTER - - -/*************************************************************************/ -/* Define TT_CONFIG_THREAD_SAFE if you want to build a thread-safe */ -/* version of the library. */ - -#undef TT_CONFIG_OPTION_THREAD_SAFE - - -/**********************************************************************/ -/* */ -/* The following macros are used to define the debug level, as well */ -/* as individual tracing levels for each component. There are */ -/* currently three modes of operation : */ -/* */ -/* - trace mode (define DEBUG_LEVEL_TRACE) */ -/* */ -/* The engine prints all error messages, as well as tracing */ -/* ones, filtered by each component's level */ -/* */ -/* - debug mode (define DEBUG_LEVEL_ERROR) */ -/* */ -/* Disable tracing, but keeps error output and assertion */ -/* checks. */ -/* */ -/* - release mode (don't define anything) */ -/* */ -/* Don't include error-checking or tracing code in the */ -/* engine's code. Ideal for releases. */ -/* */ -/* NOTE : */ -/* */ -/* Each component's tracing level is defined in its own source. */ -/* */ -/**********************************************************************/ - -/* Define if you want to use the tracing debug mode */ -#undef DEBUG_LEVEL_TRACE - -/* Define if you want to use the error debug mode - ignored if */ -/* DEBUG_LEVEL_TRACE is defined */ -#undef DEBUG_LEVEL_ERROR - -/**************************************************************************/ -/* Definition of various integer sizes. These types are used by ttcalc */ -/* and ttinterp (for the 64-bit integers) only.. */ - -#if SIZEOF_INT == 4 - - typedef signed int TT_Int32; - typedef unsigned int TT_Word32; - -#elif SIZEOF_LONG == 4 - - typedef signed long TT_Int32; - typedef unsigned long TT_Word32; - -#else -#error "no 32bit type found" -#endif - -#if SIZEOF_LONG == 8 - -/* LONG64 must be defined when a 64-bit type is available */ -/* INT64 must then be defined to this type.. */ -#define LONG64 -#define INT64 long - -#else - -/* GCC provides the non-ANSI 'long long' 64-bit type. You can activate */ -/* by defining the TT_USE_LONG_LONG macro in 'ft_conf.h'. Note that this */ -/* will produce many -ansi warnings during library compilation. */ -#ifdef TT_USE_LONG_LONG - -#define LONG64 -#define INT64 long long - -#endif /* TT_USE_LONG_LONG */ -#endif - -#endif /* FT_CONF_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/amigaos/smakefile b/Build/source/libs/freetype/freetype-1.5/lib/arch/amigaos/smakefile deleted file mode 100644 index 533c75195b4..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/amigaos/smakefile +++ /dev/null @@ -1,126 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library for amiga using SAS/C and smake -# -# Use this file while in the 'lib/arch/amigaos' directory with -# the following statements: -# -# smake assign -# smake -# -# the 'assign' step creates an assignment to simplify referencing -# the core library module, as smake has quite a few limitations in -# dealing with multi-directory projects. -# -# -# Copyright 1996-2001 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. - -OBJB = ttapi.o ttcache.o ttcalc.o ttcmap.o ttdebug.o \ - ttextend.o ttfile.o ttgload.o ttinterp.o ttload.o \ - ttmemory.o ttmutex.o ttobjs.o ttraster.o - -OBJS = freetype.o - -OBJX = ftxgasp.o ftxkern.o ftxpost.o ftxcmap.o ftxwidth.o \ - ftxsbit.o ftxgsub.o ftxgpos.o ftxgdef.o ftxopen.o - -CORE = FT:lib/ -COREXT = $(CORE)extend/ - -OPTIMIZER = optimize optcomp=5 optdep=4 optinlocal optrdep=4 - -SCFLAGS = idlen=40 idir=$(CORE)arch/amigaos idir=$(CORE) idir=$(COREXT) - -LIB=ttf.lib - -all: ttf.lib - -assign: - assign FT: /// - -ttf.lib: $(OBJS) $(OBJX) - oml $@ r $(OBJS) $(OBJX) - -ttfdbg.lib: $(OBJB) $(OBJX) - oml $@ r $(OBJB) $(OBJX) - -clean: - -delete \#?.o - -delete //\#?.o - -distclean: clean - -delete \#?.lib - - -# -# freetype library core single object -# -freetype.o: $(CORE)arch/amigaos/freetype.c - sc $(SCFLAGS) code=far $(OPTIMIZER) objname=$@ $< - -# -# freetype library core as separate objects -# -ttapi.o: $(CORE)ttapi.c - sc $(SCFLAGS) objname=$@ $< -ttcache.o: $(CORE)ttcache.c - sc $(SCFLAGS) objname=$@ $< -ttcalc.o: $(CORE)ttcalc.c - sc $(SCFLAGS) objname=$@ $< -ttcmap.o: $(CORE)ttcmap.c - sc $(SCFLAGS) objname=$@ $< -ttdebug.o: $(CORE)ttdebug.c - sc $(SCFLAGS) objname=$@ $< -ttextend.o: $(CORE)ttextend.c - sc $(SCFLAGS) objname=$@ $< -ttfile.o: $(CORE)ttfile.c - sc $(SCFLAGS) objname=$@ $< -ttgload.o: $(CORE)ttgload.c - sc $(SCFLAGS) objname=$@ $< -ttinterp.o: $(CORE)ttinterp.c - sc $(SCFLAGS) objname=$@ $< -ttload.o: $(CORE)ttload.c - sc $(SCFLAGS) objname=$@ $< -ttmemory.o: $(CORE)ttmemory.c - sc $(SCFLAGS) objname=$@ $< -ttmutex.o: $(CORE)ttmutex.c - sc $(SCFLAGS) objname=$@ $< -ttobjs.o: $(CORE)ttobjs.c - sc $(SCFLAGS) objname=$@ $< -ttraster.o: $(CORE)ttraster.c - sc $(SCFLAGS) objname=$@ $< - -# -# library extentions -# -ftxgasp.o: $(COREXT)ftxgasp.c - sc $(SCFLAGS) objname=$@ $< -ftxkern.o: $(COREXT)ftxkern.c - sc $(SCFLAGS) objname=$@ $< -ftxpost.o: $(COREXT)ftxpost.c - sc $(SCFLAGS) objname=$@ $< -ftxcmap.o: $(COREXT)ftxcmap.c - sc $(SCFLAGS) objname=$@ $< -ftxwidth.o: $(COREXT)ftxwidth.c - sc $(SCFLAGS) objname=$@ $< -ftxerr18.o: $(COREXT)ftxerr18.c - sc $(SCFLAGS) objname=$@ $< -ftxsbit.o: $(COREXT)ftxsbit.c - sc $(SCFLAGS) objname=$@ $< -ftxgsub.o: $(COREXT)ftxgsub.c - sc $(SCFLAGS) objname=$@ $< -ftxgpos.o: $(COREXT)ftxgpos.c - sc $(SCFLAGS) objname=$@ $< -ftxgdef.o: $(COREXT)ftxgdef.c - sc $(SCFLAGS) objname=$@ $< -ftxopen.o: $(COREXT)ftxopen.c - sc $(SCFLAGS) objname=$@ $< - -# end of smakefile diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/ansi/freetype.c b/Build/source/libs/freetype/freetype-1.5/lib/arch/ansi/freetype.c deleted file mode 100644 index 820687a1533..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/ansi/freetype.c +++ /dev/null @@ -1,32 +0,0 @@ -/* This file is part of the FreeType project */ - -/* Single file library component for the ANSI target */ -#define TT_MAKE_OPTION_SINGLE_OBJECT - -/* first include common core components */ - -#include "ttapi.c" -#include "ttcache.c" -#include "ttcalc.c" -#include "ttcmap.c" -#include "ttdebug.c" -#include "ttgload.c" -#include "ttinterp.c" -#include "ttload.c" -#include "ttobjs.c" -#include "ttraster.c" - -/* then system-specific (or ANSI) components */ - -#include "ttfile.c" -#include "ttmemory.c" -#include "ttmutex.c" - -/* the extensions are compiled separately, but we need to */ -/* include the file ttextend.c if we want to support them */ - -#ifdef TT_CONFIG_OPTION_EXTEND_ENGINE -#include "ttextend.c" -#endif - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/ansi/ft_conf.h b/Build/source/libs/freetype/freetype-1.5/lib/arch/ansi/ft_conf.h deleted file mode 100644 index 011ee118f17..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/ansi/ft_conf.h +++ /dev/null @@ -1,245 +0,0 @@ -/******************************************************************* - * - * ft_conf.h for the `bare ANSI' build - * - * - * Copyright 1996-2002 by - * David Turner, Robert Wilhelm, and Werner Lemberg - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - ******************************************************************/ - - -/* we need the following because there are some typedefs in this file */ - -#ifndef FT_CONF_H -#define FT_CONF_H - -/* Define to empty if the keyword does not work. */ -/* #undef const */ - -/* Define if you have the <stdlib.h> header file. */ -#define HAVE_STDLIB_H - -/* Define if you have the memcpy function. */ -#define HAVE_MEMCPY - -/* Define if you have the memmove function. */ -#define HAVE_MEMMOVE - -/* Some systems (read: M$-DOS/Windows command.com) can't pipe stderr */ -/* into a file; so we redirect any message into stdout. */ -#define HAVE_PRINT_FUNCTION 1 - -#define Print( format, ap ) vfprintf( stdout, (format), (ap) ) - - -/* The number of bytes in a int. We use the ANSI header file limits.h */ -/* for determining it since there is no easy way to guess. */ -/* */ -#include <limits.h> -#if UINT_MAX == 0xFFFF -#define SIZEOF_INT 2 -#elif UINT_MAX == 0xFFFFFFFF -#define SIZEOF_INT 4 -#else -#error "Unsupported number of bytes in `int' type!" -#endif - -/* We now try to guess the size of longs in the same way */ -/* */ -#if ULONG_MAX == 0xFFFFFFFF -#define SIZEOF_LONG 4 -#elif ULONG_MAX == 0xFFFFFFFFFFFFFFFF -#define SIZEOF_LONG 8 -#else -#error "Unsupported number of bytes in `long' type!" -#endif - -/* Define if you have the <libintl.h> header file. */ -#undef HAVE_LIBINTL_H - -/* Define if you have the <locale.h> header file. */ -/* Only meaningful if you have <libintl.h>. */ -#define HAVE_LOCALE_H - -/**********************************************************************/ -/* */ -/* The following configuration macros can be tweaked manually by */ -/* a developer to turn on or off certain features or options in the */ -/* TrueType engine. This may be useful to tune it for specific */ -/* purposes. */ -/* */ -/**********************************************************************/ - - -/*************************************************************************/ -/* Define this if the underlying operating system uses a different */ -/* character width than 8bit for file names. You must then also supply */ -/* a typedef declaration for defining 'TT_Text'. Default is off. */ - -/* #define HAVE_TT_TEXT */ - - -/*************************************************************************/ -/* Define this if you want to generate code to support engine extensions */ -/* Default is on, but if you're satisfied by the basic services provided */ -/* by the engine and need no extensions, undefine this configuration */ -/* macro to save a few more bytes. */ - -#define TT_CONFIG_OPTION_EXTEND_ENGINE - - -/*************************************************************************/ -/* Define this if you want to generate code to support gray-scaling, */ -/* a.k.a. font-smoothing or anti-aliasing. Default is on, but you can */ -/* disable it if you don't need it. */ - -#define TT_CONFIG_OPTION_GRAY_SCALING - - -/*************************************************************************/ -/* Define this if you want to compile a bytecode interpreter in the */ -/* TrueType driver. Note that there are important patent issues related */ -/* to the use of the interpreter. */ -/* */ -/* By undefining this, you will only compile the code necessary to load */ -/* TrueType glyphs without hinting. */ - -#undef TT_CONFIG_OPTION_BYTECODE_INTERPRETER - - -/*************************************************************************/ -/* Define this if you want to use a big 'switch' statement within the */ -/* bytecode interpreter. Because some non-optimizing compilers are not */ -/* able to produce jump tables from such statements, undefining this */ -/* configuration macro will generate the appropriate C jump table in */ -/* ttinterp.c. If you use an optimizing compiler, you should leave it */ -/* defined for better performance and code compactness. */ - -#define TT_CONFIG_OPTION_INTERPRETER_SWITCH - - -/*************************************************************************/ -/* Define this if you want to build a 'static' version of the TrueType */ -/* bytecode interpreter. This will produce much bigger code, which */ -/* _may_ be faster on some architectures. */ -/* */ -/* Do NOT DEFINE THIS is you build a thread-safe version of the engine */ - -#undef TT_CONFIG_OPTION_STATIC_INTERPRETER - - -/*************************************************************************/ -/* Define this if you want to build a 'static' version of the scan-line */ -/* converter (the component which in charge of converting outlines into */ -/* bitmaps). This will produce a bigger object file for "ttraster.c", */ -/* which _may_ be faster on some architectures. */ -/* */ -/* Do NOT DEFINE THIS is you build a thread-safe version of the engine */ - -#define TT_CONFIG_OPTION_STATIC_RASTER - - -/*************************************************************************/ -/* Define TT_CONFIG_THREAD_SAFE if you want to build a thread-safe */ -/* version of the library. */ - -#undef TT_CONFIG_OPTION_THREAD_SAFE - - -/**********************************************************************/ -/* */ -/* The following macros are used to define the debug level, as well */ -/* as individual tracing levels for each component. There are */ -/* currently three modes of operation : */ -/* */ -/* - trace mode (define DEBUG_LEVEL_TRACE) */ -/* */ -/* The engine prints all error messages, as well as tracing */ -/* ones, filtered by each component's level */ -/* */ -/* - debug mode (define DEBUG_LEVEL_ERROR) */ -/* */ -/* Disable tracing, but keeps error output and assertion */ -/* checks. */ -/* */ -/* - release mode (don't define anything) */ -/* */ -/* Don't include error-checking or tracing code in the */ -/* engine's code. Ideal for releases. */ -/* */ -/* NOTE : */ -/* */ -/* Each component's tracing level is defined in its own source. */ -/* */ -/**********************************************************************/ - -/* Define if you want to use the tracing debug mode */ -#undef DEBUG_LEVEL_TRACE - -/* Define if you want to use the error debug mode - ignored if */ -/* DEBUG_LEVEL_TRACE is defined */ -#undef DEBUG_LEVEL_ERROR - - -/**************************************************************************/ -/* Definition of various integer sizes. These types are used by ttcalc */ -/* and ttinterp (for the 64-bit integers) only. */ - -#if SIZEOF_INT == 4 - - typedef signed int TT_Int32; - typedef unsigned int TT_Word32; - -#elif SIZEOF_LONG == 4 - - typedef signed long TT_Int32; - typedef unsigned long TT_Word32; - -#else -#error "no 32bit type found" -#endif - -#if SIZEOF_LONG == 8 - -/* LONG64 must be defined when a 64-bit type is available. */ -/* INT64 must then be defined to this type. */ -#define LONG64 -#define INT64 long - -#elif defined( __STDC_VERSION__ ) && ( __STDC_VERSION__ >= 199901L ) - -/* `long long' was officially introduced in the C99 standard. */ -/* Purists will note that the defined() test above is unnecessary */ -/* (according to the standard, undefined macros in #if expressions */ -/* default to 1), but we don't rely on this, and since it is easy */ -/* to avoid problems... */ -/* If your compiler complains a lot about possible ANSI violations */ -/* because of this setting, report this as a bug to the compiler */ -/* vendor. */ -#define LONG64 -#define INT64 long long - -#else - -/* GCC provides the non-ANSI89 'long long' 64-bit type. You can */ -/* activate it by defining the TT_USE_LONG_LONG macro. Note that */ -/* this will produce many -ansi warnings during library compilation. */ -#ifdef TT_USE_LONG_LONG - -#define LONG64 -#define INT64 long long - -#endif /* TT_USE_LONG_LONG */ -#endif - -#endif /* FT_CONF_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/beos/Makefile b/Build/source/libs/freetype/freetype-1.5/lib/arch/beos/Makefile deleted file mode 100644 index d0403a56fef..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/beos/Makefile +++ /dev/null @@ -1,102 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library for BeOS with gcc. -# -# You will need GNU make. -# -# Use this file while in the lib directory with the following statement: -# -# make -f arch/beos/Makefile.gcc -# -# If you have the GNU gettext package installed, you can also try -# -# make -f arch/beos/Makefile.gcc HAVE_GETTEXT -# -# -# Copyright 1996-2001 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. - -ARCH = arch/beos -FT_MAKEFILE = $(ARCH)/Makefile.gcc - -CC = gcc - -ifndef GETTEXT -GETTEXT=NO_GETTEXT -endif - -ifdef DEBUG -CFLAGS = -Wall -O2 -g -ansi -pedantic -I$(ARCH) -I. -Iextend -D$(GETTEXT) -else -CFLAGS = -Wall -ansi -pedantic -O2 -s -I$(ARCH) -I. -Iextend -D$(GETTEXT) -endif - - -TTFILE = ./ttfile.c -TTMEMORY = ./ttmemory.c -TTMUTEX = $(ARCH)/ttmutex.c - -PORT = $(TTFILE) $(TTMEMORY) $(TTMUTEX) - -SRC_X = extend/ftxgasp.c extend/ftxkern.c extend/ftxpost.c \ - extend/ftxcmap.c extend/ftxwidth.c extend/ftxsbit.c \ - extend/ftxgsub.c extend/ftxgpos.c extend/ftxgdef.c \ - extend/ftxopen.c extend/ftxerr18.c -OBJS_X = $(SRC_X:.c=.o) - -SRC_M = ttapi.c ttcache.c ttcalc.c ttcmap.c ttdebug.c \ - ttgload.c ttinterp.c ttload.c ttobjs.c \ - ttraster.c ttextend.c $(PORT) -OBJS_M = $(SRC_M:.c=.o) $(OBJS_X) - -SRC_S = $(ARCH)/freetype.c -OBJ_S = $(SRC_S:.c=.o) -OBJS_S = $(OBJ_S) $(OBJS_X) - - -%.o: %.c - $(CC) $(CFLAGS) -c -o $@ $< - -.PHONY: all debug clean distclean depend - - -all: - $(MAKE) -f $(FT_MAKEFILE) LIB_FILES=OBJS_S libttf.a - -debug: - $(MAKE) -f $(FT_MAKEFILE) LIB_FILES=OBJS_M DEBUG=1 libttf.a - -HAVE_GETTEXT: - $(MAKE) -f $(FT_MAKEFILE) LIB_FILES=OBJS_S GETTEXT=HAVE_GETTEXT \ - libttf.a - -$(OBJ_S): $(SRC_S) $(SRC_M) - -libttf.a: $($(LIB_FILES)) - -del $@ - ar src $@ $^ - -clean: - -del *.o - -del extend\*.o - -del $(ARCH)\*.o - -del response - -distclean: clean - -del dep.end - -del libttf.a - -depend: $(SRC_S) $(SRC_M) $(SRC_X) - $(CC) -E -MM -I$(ARCH) -I. -Iextend $^ > dep.end - -ifeq (dep.end,$(wildcard dep.end)) - include dep.end -endif - -# end of Makefile.gcc diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/beos/freetype.c b/Build/source/libs/freetype/freetype-1.5/lib/arch/beos/freetype.c deleted file mode 100644 index a08c39b44b3..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/beos/freetype.c +++ /dev/null @@ -1,32 +0,0 @@ -/* This file is part of the FreeType project */ - -/* Single file library component for the ANSI target */ -#define TT_MAKE_OPTION_SINGLE_OBJECT - -/* first include common core components */ - -#include "ttapi.c" -#include "ttcache.c" -#include "ttcalc.c" -#include "ttcmap.c" -#include "ttdebug.c" -#include "ttgload.c" -#include "ttinterp.c" -#include "ttload.c" -#include "ttobjs.c" -#include "ttraster.c" - -/* then system-specific (or ANSI) components */ - -#include "ttfile.c" -#include "ttmemory.c" -#include "arch/beos/ttmutex.c" - -/* the extensions are compiled separately, but we need to */ -/* include the file ttextend.c if we want to support them */ - -#ifdef TT_CONFIG_OPTION_EXTEND_ENGINE -#include "ttextend.c" -#endif - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/beos/ft_conf.h b/Build/source/libs/freetype/freetype-1.5/lib/arch/beos/ft_conf.h deleted file mode 100644 index 758126de897..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/beos/ft_conf.h +++ /dev/null @@ -1,214 +0,0 @@ -/******************************************************************* - * - * ft_conf.h for BeOS - * - * - * Copyright 1996-2002 by - * David Turner, Robert Wilhelm, and Werner Lemberg - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - ******************************************************************/ - - -/* we need the following because there are some typedefs in this file */ - -#ifndef FT_CONF_H -#define FT_CONF_H - -#ifndef BEOS -#define BEOS -#endif - -/* Define to empty if the keyword does not work. */ -/* #undef const */ - -/* Define if you have the <stdlib.h> header file. */ -#define HAVE_STDLIB_H - -/* The number of bytes in a int. */ -#define SIZEOF_INT 4 - -/* The number of bytes in a long. */ -#define SIZEOF_LONG 4 - -/* Define if you have the memcpy function. */ -#define HAVE_MEMCPY - -/* Define if you have the memmove function. */ -#define HAVE_MEMMOVE - -/* Define if you have the <unistd.h> header file. */ -#define HAVE_UNISTD_H - -/* Define if you have the <libintl.h> header file. */ -/* #undef HAVE_LIBINTL_H */ - -/* Define if you have the <locale.h> header file. */ -/* Only meaningful if you have <libintl.h>. */ -#define HAVE_LOCALE_H - -/**********************************************************************/ -/* */ -/* The following configuration macros can be tweaked manually by */ -/* a developer to turn on or off certain features or options in the */ -/* TrueType engine. This may be useful to tune it for specific */ -/* purposes.. */ -/* */ -/**********************************************************************/ - -/*************************************************************************/ -/* Define this if the underlying operating system uses a different */ -/* character width than 8bit for file names. You must then also supply */ -/* a typedef declaration for defining 'TT_Text'. Default is off. */ - -/* #define HAVE_TT_TEXT */ - - -/*************************************************************************/ -/* Define this if you want to generate code to support engine extensions */ -/* Default is on, but if you're satisfied by the basic services provided */ -/* by the engine and need no extensions, undefine this configuration */ -/* macro to save a few more bytes. */ - -#define TT_CONFIG_OPTION_EXTEND_ENGINE - - -/*************************************************************************/ -/* Define this if you want to generate code to support gray-scaling, */ -/* a.k.a. font-smoothing or anti-aliasing. Default is on, but you can */ -/* disable it if you don't need it. */ - -#define TT_CONFIG_OPTION_GRAY_SCALING - - -/*************************************************************************/ -/* Define this if you want to compile a bytecode interpreter in the */ -/* TrueType driver. Note that there are important patent issues related */ -/* to the use of the interpreter. */ -/* */ -/* By undefining this, you will only compile the code necessary to load */ -/* TrueType glyphs without hinting. */ - -#undef TT_CONFIG_OPTION_BYTECODE_INTERPRETER - - -/*************************************************************************/ -/* Define this if you want to use a big 'switch' statement within the */ -/* bytecode interpreter. Because some non-optimizing compilers are not */ -/* able to produce jump tables from such statements, undefining this */ -/* configuration macro will generate the appropriate C jump table in */ -/* ttinterp.c. If you use an optimizing compiler, you should leave it */ -/* defined for better performance and code compactness.. */ - -#define TT_CONFIG_OPTION_INTERPRETER_SWITCH - - -/*************************************************************************/ -/* Define this if you want to build a 'static' version of the scan-line */ -/* converter (the component which in charge of converting outlines into */ -/* bitmaps). This will produce a bigger object file for "ttraster.c", */ -/* which _may_ be faster on some architectures.. */ -/* */ -/* Do NOT DEFINE THIS is you build a thread-safe version of the engine */ - -#undef TT_CONFIG_OPTION_STATIC_RASTER - - -/*************************************************************************/ -/* Define this if you want to build a 'static' version of the TrueType */ -/* bytecode interpreter. This will produce much bigger code, which */ -/* _may_ be faster on some architectures.. */ -/* */ -/* Do NOT DEFINE THIS is you build a thread-safe version of the engine */ - -#undef TT_CONFIG_OPTION_STATIC_INTERPRETER - - -/*************************************************************************/ -/* Define TT_CONFIG_THREAD_SAFE if you want to build a thread-safe */ -/* version of the library. */ - -#define TT_CONFIG_OPTION_THREAD_SAFE - - -/**********************************************************************/ -/* */ -/* The following macros are used to define the debug level, as well */ -/* as individual tracing levels for each component. There are */ -/* currently three modes of operation : */ -/* */ -/* - trace mode (define DEBUG_LEVEL_TRACE) */ -/* */ -/* The engine prints all error messages, as well as tracing */ -/* ones, filtered by each component's level */ -/* */ -/* - debug mode (define DEBUG_LEVEL_ERROR) */ -/* */ -/* Disable tracing, but keeps error output and assertion */ -/* checks. */ -/* */ -/* - release mode (don't define anything) */ -/* */ -/* Don't include error-checking or tracing code in the */ -/* engine's code. Ideal for releases. */ -/* */ -/* NOTE : */ -/* */ -/* Each component's tracing level is defined in its own source. */ -/* */ -/**********************************************************************/ - -/* Define if you want to use the tracing debug mode */ -#undef DEBUG_LEVEL_TRACE - -/* Define if you want to use the error debug mode - ignored if */ -/* DEBUG_LEVEL_TRACE is defined */ -#undef DEBUG_LEVEL_ERROR - - -/**************************************************************************/ -/* Definition of various integer sizes. These types are used by ttcalc */ -/* and ttinterp (for the 64-bit integers) only.. */ - -#if SIZEOF_INT == 4 - - typedef signed int TT_Int32; - typedef unsigned int TT_Word32; - -#elif SIZEOF_LONG == 4 - - typedef signed long TT_Int32; - typedef unsigned long TT_Word32; - -#else -#error "no 32bit type found" -#endif - -#if SIZEOF_LONG == 8 - -/* LONG64 must be defined when a 64-bit type is available */ -/* INT64 must then be defined to this type.. */ -#define LONG64 -#define INT64 long - -#else - -/* GCC provides the non-ANSI 'long long' 64-bit type. You can activate */ -/* by defining the TT_USE_LONG_LONG macro in 'ft_conf.h'. Note that this */ -/* will produce many -ansi warnings during library compilation. */ -#define TT_USE_LONG_LONG - -#ifdef TT_USE_LONG_LONG - -#define LONG64 -#define INT64 long long - -#endif /* TT_USE_LONG_LONG */ -#endif - -#endif /* FT_CONF_H */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/beos/ttmutex.c b/Build/source/libs/freetype/freetype-1.5/lib/arch/beos/ttmutex.c deleted file mode 100644 index 2df23d34161..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/beos/ttmutex.c +++ /dev/null @@ -1,150 +0,0 @@ -/******************************************************************* - * - * ttmutex.c 1.0 - * - * Mutual exclusion object, BeOS implementation - * - * Copyright 1999-2001 by - * Catharon Productions, Inc. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - ******************************************************************/ - -#include "ttmutex.h" - -#include <kernel/OS.h> -#include <support/SupportDefs.h> -#include <stdio.h> - -/* required by the tracing mode */ -#undef TT_COMPONENT -#define TT_COMPONENT trace_mutex - - -#ifdef TT_CONFIG_OPTION_THREAD_SAFE - -/* New and improved BeOS mutex in the form of a "benaphore". */ - -typedef struct -{ - sem_id _sem; - int32 _atom; -} beos_mutex_t; - -/* Counter so the semaphores have unique names; access this with */ -/* atomic_*() functions only! */ - -static int32 _mutex_counter = 0; - -/* Allocate and initialize the mutex. */ - -FT_INTERNAL_FUNC( void ) -TT_Mutex_Create( TMutex* mutex ) -{ - beos_mutex_t* m = NULL; - - - m = (beos_mutex_t *)malloc( sizeof( beos_mutex_t ) ); - if ( m ) - { - char mutex_name[B_OS_NAME_LENGTH]; - int32 prev = atomic_add( &_mutex_counter, 1 ); - - - sprintf( mutex_name, "FreeType mutex (%d)", (int)prev ); - - m->_atom = 0; - m->_sem = create_sem( 0, mutex_name ); - - if ( m->_sem < B_NO_ERROR ) - { - /* Can't get a semaphore, so we're screwed. */ - free( m ); - m = NULL; - } - } - - /* Send back the new mutex. */ - *mutex = (TMutex)m; -} - - -/* Delete a mutex. */ - -FT_INTERNAL_FUNC( void ) -TT_Mutex_Delete( TMutex* mutex ) -{ - if ( mutex ) - { - beos_mutex_t* m = (beos_mutex_t *)*mutex; - - - if ( m->_sem >= B_NO_ERROR ) - { - status_t retval = delete_sem( m->_sem ); - - - /* Make the compiler shut up... */ - retval = retval; - } - - free( m ); - } -} - - -/* Attempt to lock a mutex; blocks until we can lock it or the semaphore */ -/* is destroyed. */ - -FT_INTERNAL_FUNC( void ) -TT_Mutex_Lock( TMutex* mutex ) -{ - int32 prev = 0; - beos_mutex_t* m = (beos_mutex_t *)*mutex; - - - if ( !mutex ) - return; - - prev = atomic_add( &(m->_atom), 1 ); - if ( prev > 0 ) - { - status_t retval = acquire_sem( m->_sem ); - - - /* Make the compiler shut up... */ - retval = retval; - } -} - - -/* Release a mutex. */ - -FT_INTERNAL_FUNC( void ) -TT_Mutex_Release( TMutex* mutex ) -{ - int32 prev = 0; - beos_mutex_t* m = (beos_mutex_t *)*mutex; - - - if ( !mutex ) - return; - - prev = atomic_add( &(m->_atom), -1 ); - if ( prev > 1 ) { - status_t retval = release_sem( m->_sem ); - - /* Make the compiler shut up... */ - retval = retval; - } -} - -#endif /* TT_CONFIG_OPTION_THREAD_SAFE */ - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/debugger/Makefile b/Build/source/libs/freetype/freetype-1.5/lib/arch/debugger/Makefile deleted file mode 100644 index 9d361a78176..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/debugger/Makefile +++ /dev/null @@ -1,107 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library and test programs for emx-gcc under OS/2 or under -# Unix with extra debugging capabilities. -# -# You will need GNU make. -# -# Use this file while in the lib directory with the following statements: -# -# make -f arch/debugger/Makefile depend -# make -f arch/debugger/Makefile -# -# -# Copyright 1996-2002 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. - -ARCH = arch/debugger -FT_MAKEFILE = $(ARCH)/Makefile - -CC = gcc - -#CFLAGS = -W -Wall -O0 -g -ansi -pedantic -I$(ARCH) -I. -Iextend - -CFLAGS = -Wall -O0 -g -ansi -I$(ARCH) -I. -Iextend - -#CFLAGS = -Wall -ansi -pedantic -O2 -s -I$(ARCH) -I. -Iextend - -# Detect OS/2 to add the flag -DOS2 when compiling ttinterp.c -# -ifdef OS2_SHELL -OS := OS2 -RM := del -else -OS := UNIX # Unix build otherwise -RM := rm -f -endif - -TTFILE = ./ttfile.c -TTMEMORY = ./ttmemory.c -TTMUTEX = ./ttmutex.c - -PORT = $(TTFILE) $(TTMEMORY) $(TTMUTEX) - -SRC_X = extend/ftxgasp.c extend/ftxkern.c extend/ftxpost.c \ - extend/ftxcmap.c extend/ftxwidth.c extend/ftxsbit.c \ - extend/ftxgsub.c extend/ftxgpos.c extend/ftxopen.c \ - extend/ftxgdef.c -OBJS_X = $(SRC_X:.c=.o) - -SRC_M = ttapi.c ttcache.c ttcalc.c ttcmap.c ttdebug.c \ - ttgload.c ttinterp.c ttload.c ttobjs.c \ - ttraster.c ttextend.c $(PORT) -OBJS_M = $(SRC_M:.c=.o) $(OBJS_X) - -SRC_S = $(ARCH)/freetype.c -OBJ_S = $(SRC_S:.c=.o) -OBJS_S = $(OBJ_S) $(OBJS_X) - -# We place the library file in the ARCH directory, so that it doesn't -# interfere with the normal build. -# -LIBTTF_A = $(ARCH)/libttf.a - -%.o: %.c - $(CC) $(CFLAGS) -c -o $@ $< -D$(OS) - -.PHONY: all debug clean distclean depend - - -all: - $(MAKE) -f $(FT_MAKEFILE) LIB_FILES=OBJS_S $(LIBTTF_A) - -debug: - $(MAKE) -f $(FT_MAKEFILE) LIB_FILES=OBJS_M $(LIBTTF_A) - -$(OBJ_S): $(SRC_S) $(SRC_M) - -$(LIBTTF_A): $($(LIB_FILES)) - -$(RM) $@ - ar src $@ $^ - -clean: -ifdef OS2_SHELL - -$(RM) $(subst /,\,$(LIBTTF_A)) - -$(RM) $(subst /,\,$(OBJS_S)) -else - -$(RM) $(LIBTTF_A) - -$(RM) $(OBJS_S) -endif - -distclean: clean - -$(RM) dep.end - -depend: $(SRC_S) $(SRC_M) $(SRC_X) - $(CC) $(CFLAGS) -E -MM -I$(ARCH) -I. -Iextend $^ > dep.end - -ifeq (dep.end,$(wildcard dep.end)) - include dep.end -endif - -# end of Makefile diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/debugger/freetype.c b/Build/source/libs/freetype/freetype-1.5/lib/arch/debugger/freetype.c deleted file mode 100644 index b431cdfadc5..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/debugger/freetype.c +++ /dev/null @@ -1,32 +0,0 @@ -/* This file is part of the FreeType project */ - -/* Single file library component for the debugging target */ -#define TT_MAKE_OPTION_SINGLE_OBJECT - -/* first include common core components */ - -#include "ttapi.c" -#include "ttcache.c" -#include "ttcalc.c" -#include "ttcmap.c" -#include "ttdebug.c" -#include "ttgload.c" -#include "ttinterp.c" -#include "ttload.c" -#include "ttobjs.c" -#include "ttraster.c" - -/* then system-specific (or ANSI) components */ - -#include "ttfile.c" -#include "ttmemory.c" -#include "ttmutex.c" - -/* the extensions are compiled separately, but we need to */ -/* include the file ttextend.c if we want to support them */ - -#ifdef TT_CONFIG_OPTION_EXTEND_ENGINE -#include "ttextend.c" -#endif - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/debugger/ft_conf.h b/Build/source/libs/freetype/freetype-1.5/lib/arch/debugger/ft_conf.h deleted file mode 100644 index 6673dd960e4..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/debugger/ft_conf.h +++ /dev/null @@ -1,249 +0,0 @@ -/******************************************************************* - * - * ft_conf.h for a debugging build - * - * - * Copyright 1996-2002 by - * David Turner, Robert Wilhelm, and Werner Lemberg - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - ******************************************************************/ - - -/* we need the following because there are some typedefs in this file */ - -#ifndef FT_CONF_H -#define FT_CONF_H - -/* Define to empty if the keyword does not work. */ -/* #undef const */ - -/* Define if you have the <stdlib.h> header file. */ -#define HAVE_STDLIB_H - -/* Define if you have the memcpy function. */ -#define HAVE_MEMCPY - -/* Define if you have the memmove function. */ -#define HAVE_MEMMOVE - -/* command.com can't pipe stderr into a file; so any message will */ -/* be redirected into stdout (which is manageable). */ -#define HAVE_PRINT_FUNCTION 1 - -#define Print( format, ap ) vfprintf( stdout, (format), (ap) ) - - -/* The number of bytes in a int. We use the ANSI header file limits.h */ -/* for determining it since there is no easy way to guess. */ -/* */ -#include <limits.h> -#if UINT_MAX == 0xFFFF -#define SIZEOF_INT 2 -#elif UINT_MAX == 0xFFFFFFFF -#define SIZEOF_INT 4 -#else -#error "Unsupported number of bytes in `int' type!" -#endif - -/* We now try to guess the size of longs in the same way */ -/* */ -#if ULONG_MAX == 0xFFFFFFFF -#define SIZEOF_LONG 4 -#elif ULONG_MAX == 0xFFFFFFFFFFFFFFFF -#define SIZEOF_LONG 8 -#else -#error "Unsupported number of bytes in `long' type!" -#endif - - -/* Define if you have the <libintl.h> header file. */ -/* #undef HAVE_LIBINTL_H */ - -/* Define if you have the <locale.h> header file. */ -/* Only meaningful if you have <libintl.h>. */ -#define HAVE_LOCALE_H - -/**********************************************************************/ -/* */ -/* The following configuration macros can be tweaked manually by */ -/* a developer to turn on or off certain features or options in the */ -/* TrueType engine. This may be useful to tune it for specific */ -/* purposes.. */ -/* */ -/**********************************************************************/ - - -/*************************************************************************/ -/* Define this if the underlying operating system uses a different */ -/* character width than 8bit for file names. You must then also supply */ -/* a typedef declaration for defining 'TT_Text'. Default is off. */ - -/* #define HAVE_TT_TEXT */ - - -/*************************************************************************/ -/* Define this if you want to generate code to support engine extensions */ -/* Default is on, but if you're satisfied by the basic services provided */ -/* by the engine and need no extensions, undefine this configuration */ -/* macro to save a few more bytes. */ - -#define TT_CONFIG_OPTION_EXTEND_ENGINE - - -/*************************************************************************/ -/* Define this if you want to generate code to support gray-scaling, */ -/* a.k.a. font-smoothing or anti-aliasing. Default is on, but you can */ -/* disable it if you don't need it. */ - -#define TT_CONFIG_OPTION_GRAY_SCALING - - -/*************************************************************************/ -/* Define this if you want to compile a bytecode interpreter in the */ -/* TrueType driver. Note that there are important patent issues related */ -/* to the use of the interpreter. */ -/* */ -/* By undefining this, you will only compile the code necessary to load */ -/* TrueType glyphs without hinting. */ -/* */ -/* The debugger is useless (and can't be compiled) without the bytecode */ -/* interpreter. But we require TT_CONFIG_OPTION_BYTECODE_INTERPRETER to */ -/* be passed explicitly to avoid disputes with the lawyers. */ - -/* #undef TT_CONFIG_OPTION_BYTECODE_INTERPRETER */ - - -/*************************************************************************/ -/* Define this if you want to use a big 'switch' statement within the */ -/* bytecode interpreter. Because some non-optimizing compilers are not */ -/* able to produce jump tables from such statements, undefining this */ -/* configuration macro will generate the appropriate C jump table in */ -/* ttinterp.c. If you use an optimizing compiler, you should leave it */ -/* defined for better performance and code compactness.. */ -/* */ -/* For debugging, we use a jump table; this allows some interesting */ -/* things during development. */ - -#undef TT_CONFIG_OPTION_INTERPRETER_SWITCH - - -/*************************************************************************/ -/* Define this if you want to build a `static' version of the TrueType */ -/* bytecode interpreter. This will produce much bigger code, which */ -/* _may_ be faster on some architectures. */ -/* */ -/* Do NOT DEFINE THIS is you build a thread-safe version of the engine. */ -/* */ -/* We use a static interpreter in the debugger; this helps in setting */ -/* data breakpoints to fixed memory addresses. */ - -#undef TT_CONFIG_OPTION_STATIC_INTERPRETER - -/* an extra for the debugger */ -#define DEBUG_INTERPRETER - -/*************************************************************************/ -/* Define this if you want to build a 'static' version of the scan-line */ -/* converter (the component which in charge of converting outlines into */ -/* bitmaps). This will produce a bigger object file for "ttraster.c", */ -/* which _may_ be faster on some architectures.. */ -/* */ -/* Do NOT DEFINE THIS is you build a thread-safe version of the engine */ - -#undef TT_CONFIG_OPTION_STATIC_RASTER - - -/*************************************************************************/ -/* Define TT_CONFIG_THREAD_SAFE if you want to build a thread-safe */ -/* version of the library. */ - -#undef TT_CONFIG_OPTION_THREAD_SAFE - - -/**********************************************************************/ -/* */ -/* The following macros are used to define the debug level, as well */ -/* as individual tracing levels for each component. There are */ -/* currently three modes of operation : */ -/* */ -/* - trace mode (define DEBUG_LEVEL_TRACE) */ -/* */ -/* The engine prints all error messages, as well as tracing */ -/* ones, filtered by each component's level */ -/* */ -/* - debug mode (define DEBUG_LEVEL_ERROR) */ -/* */ -/* Disable tracing, but keeps error output and assertion */ -/* checks. */ -/* */ -/* - release mode (don't define anything) */ -/* */ -/* Don't include error-checking or tracing code in the */ -/* engine's code. Ideal for releases. */ -/* */ -/* NOTE : */ -/* */ -/* Each component's tracing level is defined in its own source. */ -/* */ -/**********************************************************************/ - -/* Define if you want to use the tracing debug mode. */ -/* Set to DEBUG_LEVEL_TRACE for the debugger. */ -#define DEBUG_LEVEL_TRACE - -/* Define if you want to use the error debug mode - ignored if */ -/* DEBUG_LEVEL_TRACE is defined */ -#undef DEBUG_LEVEL_ERROR - - -/**************************************************************************/ -/* Definition of various integer sizes. These types are used by ttcalc */ -/* and ttinterp (for the 64-bit integers) only.. */ - -#if SIZEOF_INT == 4 - - typedef signed int TT_Int32; - typedef unsigned int TT_Word32; - -#elif SIZEOF_LONG == 4 - - typedef signed long TT_Int32; - typedef unsigned long TT_Word32; - -#else -#error "no 32bit type found" -#endif - -#if SIZEOF_LONG == 8 - -/* LONG64 must be defined when a 64-bit type is available */ -/* INT64 must then be defined to this type.. */ -#define LONG64 -#define INT64 long - -/* Note that contrary to the `ansi' target, there is no test against C99 */ -/* here, because we really want to control whether we use 64-bit type or */ -/* not. So you have to use TT_USE_LONG_LONG to use it on a 32-bit machine. */ -#else - -/* GCC provides the non-ANSI 'long long' 64-bit type. You can activate */ -/* by defining the TT_USE_LONG_LONG macro in 'ft_conf.h'. Note that this */ -/* will produce many -ansi warnings during library compilation. */ -#ifdef TT_USE_LONG_LONG - -#define LONG64 -#define INT64 long long - -#endif /* TT_USE_LONG_LONG */ -#endif - -#endif /* FT_CONF_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/mac/README b/Build/source/libs/freetype/freetype-1.5/lib/arch/mac/README deleted file mode 100644 index 80334869bdd..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/mac/README +++ /dev/null @@ -1,47 +0,0 @@ - -This is the readme of the freetype.hqx archive in the contrib/mac -subdirectory. Please note that the FreeType team does *not* support the -Macintosh platform due to lack of knowledge. All questions regarding the -code should be sent to both David Williss and the freetype-devel list. - - ----------------------------------------------------------------------------- - - -These are CodeWarrior projects for building the FreeType library on a Macintosh -I've only provided PPC projects here, but building for 68K shouldn't be hard. -There are two directories here (OK, "folders"). One contains a project for -building freetype.ppc.lib and the other is for freetype.ppc.dll. (I havn't -actually tested the DLL yet.) - -The Macintosh stores TrueType fonts in a "Fonts" folder under the "System" -folder. There is a standard MacOS API for finding this folder, so I use it. -However, the fonts aren't normal flat files. They have all the data in -resources in the resource fork. Each font is an 'sfnt' resource, and each -file can have more than one 'sfnt' resource. - -To get at them, I made a copy of ttmmap.c from the Unix implementation and -modified it to load/release the resource and lock/unlock the handle as needed. -This only required a change to the open and close functions. After that, it -works just as if it was using Unix memory mapping. - -One thing however. Because of the bizarre scheme for storing the fonts, I -made up a way of specifying the font filename. - - fonts:/fontfile/fontname - -Where fonts:/ is a literal string that means "the fonts folder", fontfile is -the name of the actual file and fontname is the name of the 'sfnt' resource. -Currently, this is the only thing it understands. It might be nice if some -day (2.0 maybe?) ttfile.c and ttmmap.c wern't mutialy exclusive and it could -decide which method to use based on the filename or something. - -Another thing that I had to change to make this work. It seems that Macintosh -TrueType fonts have no OS/2 table, so ttload.c needs to be modified to make -that nonfatal, at least on a Macintosh. - ---- - -David Williss -MicroImages, Inc. -dwilliss@microimages.com diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/mac/freetype.c b/Build/source/libs/freetype/freetype-1.5/lib/arch/mac/freetype.c deleted file mode 100644 index 66af7f1f7aa..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/mac/freetype.c +++ /dev/null @@ -1,44 +0,0 @@ -/* This file is *not* part of the FreeType project, because the team */ -/* lacks the necessary expertise to support it. */ - -/* freetype.c for MacOS */ -/* single object library component for MacOS */ - -/* Written by Dave Willis <dwilliss@microimages.com> on 1998-07-30. */ -/* Modified by Antoine Leca for the 1.3 release, but untested. */ - -#define TT_MAKE_OPTION_SINGLE_OBJECT - -/* Note, you should define the FT_EXPORT_xxx macros here if you want */ -/* special builds. See 'ttconfig.h' for details. */ - - -/* first include common core components */ - -#define MAC_MAIN_OBJECT -#include "ttapi.c" -#include "ttcache.c" -#include "ttcalc.c" -#include "ttcmap.c" -#include "ttdebug.c" -#include "ttgload.c" -#include "ttinterp.c" -#include "ttload.c" -#include "ttobjs.c" -#include "ttobjs.c" -#include "ttraster.c" - -/* then system-specific (or ANSI) components */ - -#include "ttmmap.c" /* Was "ttfile.c" */ -#include "ttmemory.c" -#include "ttmutex.c" - -/* finally, add some extensions */ - -#ifdef TT_CONFIG_OPTION_EXTEND_ENGINE -#include "ttextend.c" -#endif - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/mac/ft_conf.h b/Build/source/libs/freetype/freetype-1.5/lib/arch/mac/ft_conf.h deleted file mode 100644 index 1507fd882cf..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/mac/ft_conf.h +++ /dev/null @@ -1,198 +0,0 @@ -/* This file is *not* part of the FreeType project, because the team */ -/* lacks the necessary expertise to support it. */ - -/* ft_conf.h for MacOS */ - -/* Written by Dave Willis <dwilliss@microimages.com> on 1998-07-30. */ -/* Modified by Antoine Leca for the 1.3 release, but untested. */ - - -/* we need the following because there are some typedefs in this file */ - -#ifndef FT_CONF_H -#define FT_CONF_H - -/* Define to empty if the 'const' keyword does not work. */ -/* #undef const */ - -/* Define if you have the <stdlib.h> header file. */ -#define HAVE_STDLIB_H - -/* Define if you have the memcpy function. */ -#define HAVE_MEMCPY - -/* Define if you have the memmove function. */ -#define HAVE_MEMMOVE - -/* Define if you have the <unistd.h> header file. */ -#undef HAVE_UNISTD_H - -/* The number of bytes in a int. */ -#define SIZEOF_INT 4 - -/* The number of bytes in a long. */ -#define SIZEOF_LONG 4 - -/**********************************************************************/ -/* */ -/* The following configuration macros can be tweaked manually by */ -/* a developer to turn on or off certain features or options in the */ -/* TrueType engine. This may be useful to tune it for specific */ -/* purposes.. */ -/* */ -/**********************************************************************/ - - -/*************************************************************************/ -/* Define this if the underlying operating system uses a different */ -/* character width than 8bit for file names. You must then also supply */ -/* a typedef declaration for defining 'TT_Text'. Default is off. */ - -/* #define HAVE_TT_TEXT */ - - -/*************************************************************************/ -/* Define this if you want to generate code to support engine extensions */ -/* Default is on, but if you're satisfied by the basic services provided */ -/* by the engine and need no extensions, undefine this configuration */ -/* macro to save a few more bytes. */ - -#define TT_CONFIG_OPTION_EXTEND_ENGINE - - -/*************************************************************************/ -/* Define this if you want to generate code to support gray-scaling, */ -/* a.k.a. font-smoothing or anti-aliasing. Default is on, but you can */ -/* disable it if you don't need it. */ - -#define TT_CONFIG_OPTION_GRAY_SCALING - - -/*************************************************************************/ -/* Define this if you want to compile a bytecode interpreter in the */ -/* TrueType driver. Note that there are important patent issues related */ -/* to the use of the interpreter. */ -/* */ -/* By undefining this, you will only compile the code necessary to load */ -/* TrueType glyphs without hinting. */ - -#undef TT_CONFIG_OPTION_BYTECODE_INTERPRETER - - -/*************************************************************************/ -/* Define this if you want to use a big 'switch' statement within the */ -/* bytecode interpreter. Because some non-optimizing compilers are not */ -/* able to produce jump tables from such statements, undefining this */ -/* configuration macro will generate the appropriate C jump table in */ -/* ttinterp.c. If you use an optimizing compiler, you should leave it */ -/* defined for better performance and code compactness.. */ - -#define TT_CONFIG_OPTION_INTERPRETER_SWITCH - - -/*************************************************************************/ -/* Define this if you want to build a 'static' version of the TrueType */ -/* bytecode interpreter. This will produce much bigger code, which */ -/* _may_ be faster on some architectures.. */ -/* */ -/* Do NOT DEFINE THIS is you build a thread-safe version of the engine */ - -#undef TT_CONFIG_OPTION_STATIC_INTERPRETER - - -/*************************************************************************/ -/* Define this if you want to build a 'static' version of the scan-line */ -/* converter (the component which in charge of converting outlines into */ -/* bitmaps). This will produce a bigger object file for "ttraster.c", */ -/* which _may_ be faster on some architectures.. */ -/* */ -/* Do NOT DEFINE THIS is you build a thread-safe version of the engine */ - -#undef TT_CONFIG_OPTION_STATIC_RASTER - - - -/*************************************************************************/ -/* Define TT_CONFIG_THREAD_SAFE if you want to build a thread-safe */ -/* version of the library. */ - -#undef TT_CONFIG_OPTION_THREAD_SAFE - - -/**********************************************************************/ -/* */ -/* The following macros are used to define the debug level, as well */ -/* as individual tracing levels for each component. There are */ -/* currently three modes of operation : */ -/* */ -/* - trace mode (define DEBUG_LEVEL_TRACE) */ -/* */ -/* The engine prints all error messages, as well as tracing */ -/* ones, filtered by each component's level */ -/* */ -/* - debug mode (define DEBUG_LEVEL_ERROR) */ -/* */ -/* Disable tracing, but keeps error output and assertion */ -/* checks. */ -/* */ -/* - release mode (don't define anything) */ -/* */ -/* Don't include error-checking or tracing code in the */ -/* engine's code. Ideal for releases. */ -/* */ -/* NOTE : */ -/* */ -/* Each component's tracing level is defined in its own source. */ -/* */ -/**********************************************************************/ - -/* Define if you want to use the tracing debug mode */ -#undef DEBUG_LEVEL_TRACE - -/* Define if you want to use the error debug mode - ignored if */ -/* DEBUG_LEVEL_TRACE is defined */ -#undef DEBUG_LEVEL_ERROR - - -/**************************************************************************/ -/* Definition of various integer sizes. These types are used by ttcalc */ -/* and ttinterp (for the 64-bit integers) only.. */ - -#if SIZEOF_INT == 4 - - typedef signed int TT_Int32; - typedef unsigned int TT_Word32; - -#elif SIZEOF_LONG == 4 - - typedef signed long TT_Int32; - typedef unsigned long TT_Word32; - -#else -#error "no 32bit type found" -#endif - -#if SIZEOF_LONG == 8 - -/* LONG64 must be defined when a 64-bit type is available */ -/* INT64 must then be defined to this type.. */ -#define LONG64 -#define INT64 long - -#else - -/* GCC provides the non-ANSI 'long long' 64-bit type. You can activate */ -/* by defining the TT_USE_LONG_LONG macro in 'ft_conf.h'. Note that this */ -/* will produce many -ansi warnings during library compilation. */ -#ifdef TT_USE_LONG_LONG - -#define LONG64 -#define INT64 long long - -#endif /* TT_USE_LONG_LONG */ -#endif - -#endif /* FT_CONF_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/mac/ttmmap.c b/Build/source/libs/freetype/freetype-1.5/lib/arch/mac/ttmmap.c deleted file mode 100644 index 8f5ee998636..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/mac/ttmmap.c +++ /dev/null @@ -1,1072 +0,0 @@ -/******************************************************************* - * - * ttmmap.c 2.0 - * - * Memory-Mapped file component ( replaces ttfile.c ). - * - * Copyright 1996-2001 by David Williss, - * David Turner, Robert Wilhelm, and Werner Lemberg - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - * Changes between 2.0 and 1.3 : - * - * - adopted new design/separation introduced in ttfile.c 2.0 - * - ******************************************************************/ - -#include "ttconfig.h" - -#include <stdio.h> -#include <string.h> - -#ifdef HAVE_UNISTD_H -#include <unistd.h> -#endif - - -#ifdef HAVE_FCNTL_H -#include <fcntl.h> -#endif - -#include <folders.h> -#include <resources.h> - - -#include "freetype.h" -#include "tttypes.h" -#include "ttdebug.h" -#include "ttengine.h" -#include "ttmutex.h" -#include "ttmemory.h" -#include "ttfile.h" /* our prototypes */ - - /* This definition is mandatory for each file component! */ - FT_EXPORT_VAR( const TFileFrame ) - TT_Null_FileFrame = { NULL, 0, 0 }; - - /* It has proven useful to do some bounds checks during */ - /* development phase. Define DEBUG_FILE when compiling */ - /* this component to enable them. */ - -#ifdef DEBUG_FILE -#define CHECK_FRAME( frame, n ) \ - do { \ - if ( frame.cursor+n > frame.address + frame.size ) \ - Panic( "Frame boundary error!\n" ); \ - } while ( 0 ) -#else -#define CHECK_FRAME( frame, n ) \ - do { \ - } while( 0 ) -#endif - - struct _TFileMap - { - String* base; /* base address of mapped file */ - Int refcount; /* reference count for handle region */ - Long size; /* stream size in file */ - Long offset; /* offset in file */ - Handle handle; /* Macintosh style handle to lock/unlock */ - short resid; /* Id of resource file to close when done */ - }; - - typedef struct _TFileMap TFileMap; - -#define MAP_Address( map ) (Byte*)( (map)->base + (map)->offset ) - - /* The stream record structure */ - typedef struct _TStream_Rec - { - TFileMap* map; /* mapped file description */ - Long pos ; /* cursor in mapped file */ - } TStream_Rec; - - typedef TStream_Rec* PStream_Rec; - -#define STREAM2REC( x ) ( (TStream_Rec*)HANDLE_Val( x ) ) - - -#ifndef TT_CONFIG_OPTION_THREAD_SAFE - - /*******************************************************************/ - /*******************************************************************/ - /*******************************************************************/ - /**** ****/ - /**** N O N R E E N T R A N T I M P L E M E N T A T I O N ****/ - /**** ****/ - /*******************************************************************/ - /*******************************************************************/ - /*******************************************************************/ - - /* The TFile_Component structure holds all the data that was */ - /* previously declared static or global in this component. */ - /* */ - /* It is accessible through the 'engine.file_component' */ - /* variable in re-entrant builds, or directly through the */ - /* static 'files' variable in other builds. */ - - struct _TFile_Component - { - TMutex lock; /* used by the thread-safe build only */ - PStream_Rec stream; /* current stream */ - TFileFrame frame; /* current frame */ - }; - - typedef struct _TFile_Component TFile_Component; - -/* The macro CUR_Stream denotes the current input stream */ -/* Note that for the re-entrant version, the 'stream' name has been */ -/* chosen according to the macro STREAM_ARGS. */ - -/* The macro CUR_Frame denotes the current file frame */ -/* Note that for the re-entrant version, the 'frame' name has been */ -/* chosen according to the macro FRAME_ARGS. */ - -/* The macro STREAM_VAR is used when calling public functions */ -/* that need an 'optional' stream argument. */ - -#define CUR_Stream files.stream /* thread-safe macros */ -#define CUR_Frame files.frame - -#define STREAM_VARS /* void */ -#define STREAM_VAR /* void */ - - /* the 'files' variable is only defined in non-reentrant builds */ - - static TFile_Component files; - - - -/******************************************************************* - * - * Function : TTFile_Init - * - * Description : Initializes the File component. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TTFile_Init( PEngine_Instance engine ) - { - MUTEX_Create( files.lock ); - files.stream = NULL; - ZERO_Frame( files.frame ); - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TTFile_Done - * - * Description : Finalizes the File component. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TTFile_Done( PEngine_Instance engine ) - { - MUTEX_Destroy( files.lock ); - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Use_Stream - * - * Description : Copies or duplicates a given stream. - * - * Input : org_stream original stream - * stream target stream (copy or duplicate) - * - * Output : Error code - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Use_Stream( TT_Stream org_stream, - TT_Stream* stream ) - { - MUTEX_Lock( files.lock ); - *stream = org_stream; - files.stream = STREAM2REC( org_stream ); /* set current stream */ - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Done_Stream - * - * Description : Releases a given stream. - * - * Input : stream - * - * Output : Error code - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Done_Stream( TT_Stream* stream ) - { - HANDLE_Set( *stream, NULL ); - MUTEX_Release( files.lock ); - - return TT_Err_Ok; - } - -#else /* TT_CONFIG_OPTION_THREAD_SAFE */ - - /*******************************************************************/ - /*******************************************************************/ - /*******************************************************************/ - /******** ********/ - /******** R E E N T R A N T I M P L E M E N T A T I O N ********/ - /******** ********/ - /*******************************************************************/ - /*******************************************************************/ - /*******************************************************************/ - -#define CUR_Stream STREAM2REC( stream ) /* re-entrant macros */ -#define CUR_Frame (*frame) - -#define STREAM_VARS stream, -#define STREAM_VAR stream - - -/******************************************************************* - * - * Function : TTFile_Init - * - * Description : Initializes the File component. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TTFile_Init( PEngine_Instance engine ) - { - engine.file_component = NULL; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TTFile_Done - * - * Description : Finalizes the File component. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TTFile_Done( PEngine_Instance engine ) - { - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Use_Stream - * - * Description : Copies or duplicates a given stream. - * - * Input : org_stream original stream - * stream target stream (copy or duplicate) - * - * Output : Error code. The output stream is set to NULL in - * case of Failure. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Use_Stream( TT_Stream input_stream, - TT_Stream* copy ) - { - TT_Error error; - PStream_Rec stream_rec; - PStream_Rec copy_rec; - - - stream_rec = STREAM2REC( input_stream ); - - if ( ALLOC( copy_rec, sizeof ( TStream_Rec ) ) ) - goto Fail; - - HANDLE_Set( *copy, copy_rec ); - - copy_rec->map->refcount++; - copy_rec->pos = 0; - - return TT_Err_Ok; - - Fail: - HANDLE_Set( *copy, NULL ); - return error; - } - - -/******************************************************************* - * - * Function : TT_Done_Stream - * - * Description : Releases a given stream. - * - * Input : stream - * - * Output : error code - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Done_Stream( TT_Stream* stream ) - { - return TT_Close_Stream( stream ); - } - -#endif /* TT_CONFIG_OPTION_THREAD_SAFE */ - - - /*******************************************************************/ - /*******************************************************************/ - /*******************************************************************/ - /*********** ***********/ - /*********** C O M M O N I M P L E M E N T A T I O N ***********/ - /*********** ***********/ - /*******************************************************************/ - /*******************************************************************/ - /*******************************************************************/ - -/******************************************************************* - * - * Function : AllocateMap - * - * Description : Allocates a new map from the table. - * - * Output : Pointer to new stream rec. NULL in case of failure. - * - ******************************************************************/ - - static TFileMap* - Allocate_Map( void ) - { - TFileMap* result; - - - if ( MEM_Alloc( result, sizeof ( TFileMap ) ) ) - return NULL; - - result->refcount = 1; - return result; - } - - -/******************************************************************* - * - * Function : ReleaseMap - * - * Description : Releases a used map to the table if reference i - * counter reaches zero. - * - * Input : map - * - * Output : None. - * - * Note : Called by TT_Close_File() - * - ******************************************************************/ - - static void - Release_Map ( TFileMap* map ) - { - map->refcount--; - if ( map->refcount <= 0 ) - { - /* MacOS System calls */ - HUnlock(map->handle); - ReleaseResource(map->handle); - CloseResFile(map->resid); - - FREE( map ); - } - } - - -/* Whadda ya mean "strdup undefined"? Fine, I'll define my own! */ - static char * - mystrdup( const char *str ) - { - char *ret; - - if ( TT_Alloc(strlen(str) + 1, (void**)&ret) != 0 ) return(NULL); - strcpy(ret, str); - return(ret); - } - - -/******************************************************************* - * - * Function : TT_Open_Stream - * - * Description : Opens the font file and saves the total file size. - * - * Input : error address of stream's error variable - * (re-entrant build only). - * filepathname pathname of the file to open - * stream address of target TT_Stream structure - * - * Output : SUCCESS on success, FAILURE on error. - * The target stream is set to -1 in case of failure. - * - ******************************************************************/ -/* -** This is not a totally generic implementation. It currently assumes the filename -** starts with "fonts:" and uses slashes instead of colons like Mac code normally -** would. Given a filename of the form "fonts:/filename/resname", Load the resource -** and lock the handle -** -** The "fonts:" at the beginning is just a convention I came up with to -** indicate the Fonts folder inside the current System folder (find via FindFolder()) -*/ - - FT_INTERNAL_FUNC( TT_Error ) - TT_Open_Stream( const String* filepathname, - TT_Stream* stream ) - { - TT_Error error; - Int file; - PStream_Rec stream_rec; - TFileMap* map; - - int size, err = 0; - short vRefNum, res = -1; - Str255 FontName; - char *cp, *p, *fname, *sep; - Str63 myName; - long dirID; - - - if ( ALLOC( *stream, sizeof ( TStream_Rec ) ) ) - return error; - - map = Allocate_Map(); - if ( !map ) - { - error = TT_Err_Out_Of_Memory; - goto Memory_Fail; - } - - stream_rec = STREAM2REC( *stream ); - - /* Find the dirID of the Fonts folder in the current System folder */ - if (FindFolder(kOnSystemDisk, kFontsFolderType, kDontCreateFolder, &vRefNum, &dirID)) - goto File_Fail; - - /* Break the name apart */ - fname = mystrdup(filepathname); /* Make a copy so we can muck with it */ - sep = ":/"; /* Things that can seperate file path componants */ - - strtok(fname, sep); /* Skip over "fonts:" */ - - if ((p = strtok(NULL, sep)) == NULL) /* Get filename */ - goto File_Fail; - strcpy(myName + 1, p); /* Make this a Pascal string (Yuck!) */ - myName[0] = strlen(p); - - if ((p = strtok(NULL, sep)) == NULL) /* Get res name */ - goto File_Fail; - strcpy(FontName+1, p); /* Make this a Pascal string (Yuck!) */ - FontName[0] = strlen(p); - - FREE( fname ); - - if ((cp = strchr(FontName, '.')) != NULL) /* Strip off ".ttf" , if any */ - *cp = 0; - - /* Read the font into a buffer */ - if ((map->resid = HOpenResFile(vRefNum, dirID, myName, fsRdPerm)) == -1) - goto File_Fail; - - if ((map->handle = Get1NamedResource('sfnt', FontName)) == NULL) - goto Map_Fail; - - HLock(map->handle); - map->base = *map->handle; - map->offset = 0; - map->size = GetResourceSizeOnDisk(map->handle); - - if ( map->base == NULL ) - goto Lock_Fail; - - stream_rec->map = map; - stream_rec->pos = 0; - -#ifndef TT_CONFIG_OPTION_THREAD_SAFE - CUR_Stream = stream_rec; -#endif - - return TT_Err_Ok; - - Lock_Fail: - ReleaseResource(map->handle); - - Map_Fail: - CloseResFile(map->resid); - - File_Fail: - error = TT_Err_Could_Not_Open_File; - FREE( map ); - - Memory_Fail: - FREE( *stream ); - FREE( fname ); - return error; - } - - -/******************************************************************* - * - * Function : TT_Close_Stream - * - * Description : Closes a stream. - * - * Input : stream - * - * Output : SUCCESS (always) - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TT_Close_Stream( TT_Stream* stream ) - { - PStream_Rec rec = STREAM2REC( *stream ); - - - Release_Map( rec->map ); - FREE( rec ); - - HANDLE_Set( *stream, NULL ); - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Flush_Stream - * - * Description : Flushes a stream, i.e., closes its file handle. - * - * Input : stream address of target TT_Stream structure - * - * Output : Error code - * - * NOTE : Never flush the current opened stream. This means that - * you should _never_ call this function between a - * TT_Use_Stream() and a TT_Done_Stream()! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Flush_Stream( TT_Stream* stream ) - { - /* XXX - DUMMY IMPLEMENTATION */ - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Stream_Size - * - * Description : Returns the length of a given stream, even if it - * is flushed. - * - * Input : stream the stream - * - * Output : Length of stream in bytes. - * - ******************************************************************/ - - FT_EXPORT_FUNC( Long ) - TT_Stream_Size( TT_Stream stream ) - { - PStream_Rec rec = STREAM2REC( stream ); - - - if ( rec ) - return rec->map->size; - else - return 0; /* invalid stream - return 0 */ - } - - -/******************************************************************* - * - * Function : TT_Seek_File - * - * Description : Seeks the file cursor to a different position. - * - * Input : position new position in file - * - * Output : SUCCESS on success. FAILURE if out of range. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Seek_File( STREAM_ARGS Long position ) - { - if ( position > CUR_Stream->map->size ) - return TT_Err_Invalid_File_Offset; - - CUR_Stream->pos = position; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Skip_File - * - * Description : Skips forward the file cursor. - * - * Input : distance number of bytes to skip - * - * Output : see TT_Seek_File - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Skip_File( STREAM_ARGS Long distance ) - { - return TT_Seek_File( STREAM_VARS CUR_Stream->pos + distance ); - } - - -/******************************************************************* - * - * Function : TT_Read_File - * - * Description : Reads a chunk of the file and copies it to memory. - * - * Input : buffer target buffer - * count length in bytes to read - * - * Output : SUCCESS on success. FAILURE if out of range. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Read_File( STREAM_ARGS void* buffer, Long count ) - { - if ( CUR_Stream->pos + count > CUR_Stream->map->size ) - return TT_Err_Invalid_File_Read; - - MEM_Copy( buffer, - MAP_Address( CUR_Stream->map ) + CUR_Stream->pos, count ); - CUR_Stream->pos += count; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Read_At_File - * - * Description : Reads file at a specified position. - * - * Input : position position to seek to before read - * buffer target buffer - * count number of bytes to read - * - * Output : SUCCESS on success. FAILURE if error. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Read_At_File( STREAM_ARGS Long position, - void* buffer, - Long count ) - { - TT_Error error; - - - if ( (error = TT_Seek_File( STREAM_VARS position )) || - (error = TT_Read_File( STREAM_VARS buffer, count )) ) - return error; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_File_Pos - * - * Description : Returns current file seek pointer. - * - * Input : none - * - * Output : current file position - * - ******************************************************************/ - - FT_EXPORT_FUNC( Long ) - TT_File_Pos( STREAM_ARG ) - { - return CUR_Stream->pos; - } - - -/******************************************************************* - * - * Function : TT_Access_Frame - * - * Description : Notifies the component that we're going to read - * 'size' bytes from the current file position. - * This function should load/cache/map these bytes - * so that they will be addressed by the GET_xxx() - * functions easily. - * - * Input : size number of bytes to access. - * - * Output : Error code - * - * Notes: The function fails if the byte range is not within the - * the file, or if there is not enough memory to cache - * the bytes properly (which usually means that aSize is - * too big in both cases). - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Access_Frame( STREAM_ARGS FRAME_ARGS Long size ) - { - if ( CUR_Frame.address != NULL ) - return TT_Err_Nested_Frame_Access; - - if ( CUR_Stream->pos + size > CUR_Stream->map->size ) - return TT_Err_Invalid_Frame_Access; - - CUR_Frame.size = size; - CUR_Frame.address = MAP_Address( CUR_Stream->map ) + CUR_Stream->pos; - CUR_Frame.cursor = CUR_Frame.address; - - CUR_Stream->pos += size; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Check_And_Access_Frame - * - * Description : Notifies the component that we're going to read - * 'size' bytes from the current file position. - * This function should load/cache/map these bytes - * so that they will be addressed by the GET_xxx() - * functions easily. - * - * Input : size number of bytes to access. - * - * Output : Error code - * - * Notes: The function truncates 'size' if the byte range is not - * within the file. - * - * It will fail if there is not enough memory to cache - * the bytes properly (which usually means that aSize is - * too big). - * - * It will fail if you make two consecutive calls - * to TT_Access_Frame(), without a TT_Forget_Frame() between - * them. - * - * The only difference with TT_Access_Frame() is that we - * check that the frame is within the current file. We - * otherwise truncate it. The 'overflow' is set to zero. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Check_And_Access_Frame( STREAM_ARGS FRAME_ARGS Long size ) - { - TT_Error error; - Long readBytes; - - - if ( CUR_Frame.address != NULL ) - return TT_Err_Nested_Frame_Access; - - readBytes = CUR_Stream->map->size - CUR_Stream->pos; - if ( size > readBytes ) - { - /* There is overflow, we allocate a new block then */ - if ( ALLOC( CUR_Frame.address, size ) ) - return error; - - CUR_Frame.size = size; - - /* copy the valid part */ - MEM_Copy( CUR_Frame.address, - MAP_Address( CUR_Stream->map ) + CUR_Stream->pos, - readBytes ); - } - else - { - CUR_Frame.size = size; - CUR_Frame.address = MAP_Address( CUR_Stream->map ) + CUR_Stream->pos; - } - - CUR_Frame.cursor = CUR_Frame.address; - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Forget_Frame - * - * Description : Releases a cached frame after reading. - * - * Input : None - * - * Output : SUCCESS on success. FAILURE on error. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Forget_Frame( FRAME_ARG ) - { - if ( CUR_Frame.address == NULL ) - return TT_Err_Nested_Frame_Access; - - /* If we were using a duplicate in case of overflow, free it now */ - if ( CUR_Frame.address < (Byte*)CUR_Stream->map->base || - CUR_Frame.address >= (Byte*)CUR_Stream->map->base + - CUR_Stream->map->size ) - FREE( CUR_Frame.address ); - - ZERO_Frame( files.frame ); - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : GET_Byte - * - * Description : Extracts a byte from the current file frame. - * - * Input : None or current frame - * - * Output : Extracted Byte - * - * NOTES : We consider that the programmer is intelligent enough - * not to try to get a byte that is out of the frame. Hence, - * we provide no bounds check here. (A misbehaving client - * could easily page fault using this call.) - * - ******************************************************************/ - -#if 0 - - FT_EXPORT_FUNC( Byte ) - TT_Get_Byte( FRAME_ARG ) - { - CHECK_FRAME( CUR_Frame, 1 ); - - return (Byte)(*CUR_Frame.cursor++); - } - -#endif - - -/******************************************************************* - * - * Function : GET_Char - * - * Description : Extracts a signed byte from the current file frame. - * - * Input : None or current frame - * - * Output : Extracted char - * - * NOTES : We consider that the programmer is intelligent enough - * not to try to get a byte that is out of the frame. Hence, - * we provide no bounds check here. (A misbehaving client - * could easily page fault using this call.) - * - ******************************************************************/ - - FT_EXPORT_FUNC( Char ) - TT_Get_Char( FRAME_ARG ) - { - CHECK_FRAME( CUR_Frame, 1 ); - - return (Char)(*CUR_Frame.cursor++); - } - - -/******************************************************************* - * - * Function : GET_Short - * - * Description : Extracts a short from the current file frame. - * - * Input : None or current frame - * - * Output : Extracted short - * - * NOTES : We consider that the programmer is intelligent enough - * not to try to get a byte that is out of the frame. Hence, - * we provide no bounds check here. (A misbehaving client - * could easily page fault using this call.) - * - ******************************************************************/ - - FT_EXPORT_FUNC( Short ) - TT_Get_Short( FRAME_ARG ) - { - Short getshort; - - - CHECK_FRAME( CUR_Frame, 2 ); - - getshort = ((Short)CUR_Frame.cursor[0] << 8) | - (Short)CUR_Frame.cursor[1]; - - CUR_Frame.cursor += 2; - - return getshort; - } - - -/******************************************************************* - * - * Function : GET_UShort - * - * Description : Extracts an unsigned short from the frame. - * - * Input : None or current frame - * - * Output : Extracted ushort - * - * NOTES : We consider that the programmer is intelligent enough - * not to try to get a byte that is out of the frame. Hence, - * we provide no bounds check here. (A misbehaving client - * could easily page fault using this call.) - * - ******************************************************************/ - -#if 0 - - FT_EXPORT_FUNC( UShort ) - TT_Get_UShort( FRAME_ARG ) - { - UShort getshort; - - - CHECK_FRAME( CUR_Frame, 2 ); - - getshort = ((UShort)CUR_Frame.cursor[0] << 8) | - (UShort)CUR_Frame.cursor[1]; - - CUR_Frame.cursor += 2; - - return getshort; - } - -#endif - - -/******************************************************************* - * - * Function : GET_Long - * - * Description : Extracts a long from the frame. - * - * Input : None or current frame - * - * Output : Extracted long - * - * NOTES : We consider that the programmer is intelligent enough - * not to try to get a byte that is out of the frame. Hence, - * we provide no bounds check here. (A misbehaving client - * could easily page fault using this call.) - * - ******************************************************************/ - - FT_EXPORT_FUNC( Long ) - TT_Get_Long( FRAME_ARG ) - { - Long getlong; - - - CHECK_FRAME( CUR_Frame, 4 ); - - getlong = ((Long)CUR_Frame.cursor[0] << 24) | - ((Long)CUR_Frame.cursor[1] << 16) | - ((Long)CUR_Frame.cursor[2] << 8 ) | - (Long)CUR_Frame.cursor[3]; - - CUR_Frame.cursor += 4; - - return getlong; - } - - -/******************************************************************* - * - * Function : GET_ULong - * - * Description : Extracts an unsigned long from the frame. - * - * Input : None - * - * Output : Extracted ulong - * - * NOTES : We consider that the programmer is intelligent enough - * not to try to get a byte that is out of the frame. Hence, - * we provide no bounds check here. (A misbehaving client - * could easily page fault using this call.) - * - ******************************************************************/ - -#if 0 - - FT_EXPORT_FUNC( ULong ) - TT_Get_ULong( FRAME_ARG ) - { - ULong getlong; - - - CHECK_FRAME( CUR_Frame, 4 ); - - getlong = ( ((ULong)CUR_Frame.cursor[0] << 24) | - ((ULong)CUR_Frame.cursor[1] << 16) | - ((ULong)CUR_Frame.cursor[2] << 8 ) | - (ULong)CUR_Frame.cursor[3] ); - - CUR_Frame.cursor += 4; - - return getlong; - } - -#endif - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/msdos/Makefile.BC b/Build/source/libs/freetype/freetype-1.5/lib/arch/msdos/Makefile.BC deleted file mode 100644 index 4ef5f224c1f..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/msdos/Makefile.BC +++ /dev/null @@ -1,171 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library for Borland C++ for MS-DOS, large model. -# Due to size constraints, it does not try to pack all modules into one -# (`single-object mode'). -# -# You will need Borland MAKE. -# Tested with Borland C++ v.3.1, 4.02, 4.51, 5.02. -# See below for a note for Borland C++ 2.0, 3.0 or Turbo C++ 3.0. -# -# Use this file while in the lib directory with the following statement: -# -# make -farch/msdos/Makefile.BC -# -# -# A debug version can be obtained with -# -# make -DDEBUG -farch/msdos/Makefile.BC -# -# A special version enabled to handle big fonts (with more than 16,384 -# glyphs) can be obtained with -# -# make -DBIGFONTS -farch/msdos/Makefile.BC -# -# -# Copyright 1996-2001 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. -# -# -# Various notes about specific versions... -# -# NOTE: Borland C++ v. 2.0, 3.0, or Turbo C++ 3.0 -# -# There is something that will fail as it stands: the -i40 option -# passed to CFLAGS was not recognized until v.3.1, so the compiler -# will complain. So you should remove the -i40 option below. -# -# Also, __huge was not introduced before v.3.1, so if you want the -# BIGFONTS option, you should use _huge instead (and perhaps remove -# -A in CFLAGS). -# -# NOTE 2: Turbo C++ 3.0 -# -# You should write `CC=tcc' below, as it should be obvious. -# Alternatively, you can `set CC=tcc', then invoke make with -e. -# -# NOTE 3: Borland C++ 2.0 -# -# Not really very tested; expect problems with make (overflows). -# Alternatively, use Makefile.TC, replacing there tcc with bcc. - - -ARCH = arch\msdos -FT_MAKEFILE = $(ARCH)\Makefile.BC - -!if ! $d(CC) -CC = bcc -!endif - -LIB = tlib /c /e - -# Credits go to Dave Hoo <dhoo@flash.net> for pointing out that modern -# Borland compilers (from BC++ 3.1 on) can increase the limit on -# the length of identifiers. - -!if ! $d(DEBUG) -CFLAGS = -ml -A -O2 -3 -i40 -w-nak -w-par -w-use -w-aus -w-stu -w-stv -w-cln -w-sig -I$(ARCH);.;extend -!else -CFLAGS = -v -N -ml -A -i40 -w-nak -w-par -w-use -w-aus -w-stu -w-stv -w-cln -w-sig -I$(ARCH);.;extend -!endif - - -!if $d(BIGFONTS) -CFLAGS = $(CFLAGS) -DTT_HUGE_PTR=__huge - -TTFILE = $(ARCH)\.\hugefile.c -TTMEMORY = $(ARCH)\.\hugemem.c -!else -TTFILE = .\ttfile.c -TTMEMORY = .\ttmemory.c -!endif -TTMUTEX = .\ttmutex.c - -PORT = $(TTFILE) $(TTMEMORY) $(TTMUTEX) - -# Do not insert spaces before the \ at end of line, -# otherwise the substitution for TLIB command line will fail. -SRC_X = extend\ftxgasp.c extend\ftxkern.c extend\ftxpost.c \ - extend\ftxcmap.c extend\ftxwidth.c extend\ftxerr18.c \ - extend\ftxsbit.c extend\ftxgsub.c extend\ftxgpos.c \ - extend\ftxopen.c extend\ftxgdef.c -OBJS_X = $(SRC_X:.c=.obj) - -SRC_M = ttapi.c ttcache.c ttcalc.c ttcmap.c \ - ttgload.c ttinterp.c ttload.c ttobjs.c \ - ttraster.c ttextend.c ttdebug.c $(PORT) -OBJS_M = $(SRC_M:.c=.obj) $(OBJS_X) - -SRC_S = $(ARCH)\.\freetype.c -OBJ_S = $(SRC_S:.c=.obj) -OBJS_S = $(OBJ_S) $(OBJS_X) - - -# Since Borland's make does not handle $($(LIB_FILES)), and using -# -DLIB_FILES="$(OBJS_S)" will excess the capacity of COMMAND.COM, we cheat -# by constructing TLIB's response file directly in the `all' target. -# -# Another solution, useful during debugging of part of the library, -# would be to include each .obj in the library as soon as it is compiled. -# It is commented out below. See Makefile.TC for an application. -.c.obj: - $(CC) -c -o$* @&&| - $(CFLAGS) $< -| -# $(LIB) libttf +-$*.obj - - -!if !$d(DEBUG) -# Skipped if DEBUG build -# (but it changes nothing, since we always build in multiple parts). -all: $(OBJS_M) - -del libttf.lib - $(LIB) libttf.lib @&&| -+ $(OBJS_M: = + ) -| - -!endif - - -debug: $(OBJS_M) - -del libttf.lib - $(LIB) libttf.lib @&&| -+ $(OBJS_M: = + ) -| - -$(OBJ_S): $(SRC_S) $(SRC_M) - -# Not used here because it excesses the capacity of COMMAND.COM... -libttf.lib: $(LIB_FILES) - -del libttf.lib - $(LIB) libttf.lib @&&| -+ $(**: = + ) -| - -!if $d(BIGFONTS) -$(TTMEMORY:.c=.obj): $(TTMEMORY) - $(CC) -c -o$* @&&| - $(CFLAGS) -A- $*.c -| -!endif - - -clean: - -del *.obj - -del extend\*.obj - -del $(ARCH)\*.obj - -del libttf.bak - -del response - -distclean: clean - -del libttf.lib - -!include "$(ARCH)\depend.dos" - -# end of Makefile diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/msdos/Makefile.MS b/Build/source/libs/freetype/freetype-1.5/lib/arch/msdos/Makefile.MS deleted file mode 100644 index 2e3a9e43cea..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/msdos/Makefile.MS +++ /dev/null @@ -1,127 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library for Microsoft C for MS-DOS, large model. -# It also works for Visual C++ 1.x 16-bits compiler, but you should -# instead use the Makefile customized for it, Makefile.VC. -# Due to size constraints, it does not try to pack all modules into one. -# -# Tested with Microsoft C v.6.0ax, C/C++ v.7.0, Visual C++ v.1.5. -# Microsoft C v.5.1 chokes on some (definitively) ANSI constructs, -# like switch() with an expression of type long. Upgrade your compiler! -# -# You will need NMAKE. -# -# Use this file while in the lib directory with the following statement: -# -# nmake /f arch\msdos\Makefile.MS -# -# -# A debug version can be obtained with -# -# nmake DEBUG=1 /f arch\msdos\Makefile.MS -# -# A special version enabled to handle big fonts (with more than 16,384 -# glyphs) can be obtained with -# -# nmake BIGFONTS=1 /f arch\msdos\Makefile.MS -# -# -# Copyright 1996-2002 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. - -ARCH = arch\msdos -FT_MAKEFILE = $(ARCH)\Makefile.MS - -CC = cl /nologo -LIB = lib - -!ifndef DEBUG -CFLAGS = /Ox /AL /W0 /G2 /I$(ARCH) /I. /Iextend -!else -CFLAGS = /Zi /AL /W0 /G2 /I$(ARCH) /I. /Iextend -!endif - - -!ifndef BIGFONTS -CFLAGS = $(CFLAGS) /Za - -TTFILE = .\ttfile.c -TTMEMORY = .\ttmemory.c -!else -CFLAGS = $(CFLAGS) /DTT_HUGE_PTR=huge /Ze - -TTFILE = $(ARCH)\hugefile.c -TTMEMORY = $(ARCH)\hugemem.c -!endif - -TTMUTEX = .\ttmutex.c - -PORT = $(TTFILE) $(TTMEMORY) $(TTMUTEX) - -OBJS_X = extend\ftxgasp.obj extend\ftxkern.obj extend\ftxpost.obj \ - extend\ftxcmap.obj extend\ftxwidth.obj extend\ftxerr18.obj \ - extend\ftxsbit.obj extend\ftxopen.obj extend\ftxgsub.obj \ - extend\ftxgpos.obj extend\ftxgdef.obj -# the line below does not work with these old versions of nmake... -# OBJS_X = $(SRC_X:.c=.obj) - -OBJS_M = ttapi.obj ttcache.obj ttcalc.obj ttcmap.obj ttdebug.obj \ - ttgload.obj ttinterp.obj ttload.obj ttobjs.obj \ - ttraster.obj ttextend.obj $(PORT) $(OBJS_X) -# OBJS_M = $(SRC_M:.c=.obj) $(OBJS_X) - -# Not used here because the compiler runs out of memory... -OBJ_S = $(ARCH)\freetype.obj -#SRC_S = $(ARCH)\freetype.c -OBJS_S = $(OBJ_S) $(OBJS_X) - - -# Since Microsoft's NMAKE does not handle $($(LIB_FILES)), and using -# LIB_FILES="$(OBJS_S)" will excess the capacity of COMMAND.COM, we include -# each .obj in the library as soon as it is compiled. Better schemes are -# used in the other Makefile's, please give them a look. -.c.obj: - $(CC) /c /Fo$@ $(CFLAGS) $*.c - $(LIB) libttf -+$*.obj; - - -!ifndef DEBUG -# Skipped if DEBUG build -# (but it changes nothing, since we always build in multiple parts). -all: $(OBJS_M) -# -del libttf.lib -# $(LIB) libttf.lib @<<response -#+ $(OBJS_M: = -+ ); -#<<KEEP -!endif - -debug: $(OBJS_M) -# -del libttf.lib -# $(LIB) libttf.lib @<<response -#+ $(OBJS_M: = -+ ); -#<<KEEP - -#$(OBJ_S): $(SRC_S) $(SRC_M) - -# Not used here because it excesses the capacity of COMMAND.COM... -libttf.lib: $(LIB_FILES) - $(LIB) $@ +-$(?: =-+); - -clean: - -del *.obj - -del extend\*.obj - -del $(ARCH)\*.obj - -del response - -distclean: clean - -del libttf.lib - -!include "$(ARCH)\depend.dos" - -# end of Makefile.MS diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/msdos/Makefile.TC b/Build/source/libs/freetype/freetype-1.5/lib/arch/msdos/Makefile.TC deleted file mode 100644 index fdd042d922f..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/msdos/Makefile.TC +++ /dev/null @@ -1,127 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library for Turbo C for MS-DOS, large model. -# Due to size constraints, it does not try to pack all modules into one -# (`single-object mode'). -# -# You will need Borland MAKE. -# Tested with Turbo C v.1.5, v.2.0, Turbo C++ v.1.0, v.3.0. -# Turbo C v.1.0 (May '87) is too old (lack of structure assignment) -# to compile FreeType. Update your compiler. ;-) -# See below for notes regarding the various versions. -# -# Use this file while in the lib directory with the following statement: -# -# make -farch/msdos/Makefile.TC -# -# -# A debug version can be obtained (except for TC1.5, see below) with -# -# make -DDEBUG -farch/msdos/Makefile.TC -# -# The main difference is with the compiler options, because due to size -# constraints, all sources are always compiled separately. -# -# -# Copyright 1996-2001 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. -# -# -# Various notes about specific versions... -# -# The lack of space in the command line prevents us to turn off the -# -w-use warning (when TCC.CFG file had enable it). -# -# NOTE: Turbo C++ v. 3.0 -# -# The Makefile.TC for this version is common with the older versions. -# Alternatively, you can consider using Makefile.BC instead, changing -# the name of the compiler from BCC to TCC! -# -# NOTE 2: Turbo C++ v. 1.0 -# -# Unlike v.3.0, the version of make shipped with this version is not able -# to cater with some of the possibilities used in Makefile.BC, for example -# the inline construction of the `option' file, with the && command. -# So you should stick with this one. -# -# NOTE 3: Turbo C v. 1.5 -# -# You will need to replace the -v option in CFLAGS by -y. - -ARCH = arch\msdos -FT_MAKEFILE = $(ARCH)\Makefile.TC - -CC = tcc -LIB = tlib /c - -!if ! $d(DEBUG) -CFLAGS = -ml -A -a -G -w-stu -w-par -w-rch -w-aus -w-stv -w-cln -w-sig -I$(ARCH);.;extend -!else -# For Turbo C v.1.5, you'll need to replace the -v option below by -y. -CFLAGS = -y -N -ml -A -w-stu -w-par -w-rch -w-aus -w-stv -w-cln -w-sig -I$(ARCH);.;extend -!endif -# The lack of space in the command line prevents us to turn off the -# -w-use warning (when the TCC.CFG file had enable it). - - -TTFILE = .\ttfile.obj -TTMEMORY = .\ttmemory.obj -TTMUTEX = .\ttmutex.obj - -PORT = $(TTFILE) $(TTMEMORY) $(TTMUTEX) - -OBJS_X = extend\ftxgasp.obj extend\ftxkern.obj extend\ftxpost.obj \ - extend\ftxcmap.obj extend\ftxwidth.obj extend\ftxerr18.obj \ - extend\ftxsbit.obj extend\ftxopen.obj extend\ftxgsub.obj \ - extend\ftxgpos.obj extend\ftxgdef.obj -# the line below does not work with these old versions of make... -# OBJS_X = $(SRC_X:.c=.obj) - -OBJS_M = ttapi.obj ttcache.obj ttcalc.obj ttcmap.obj ttdebug.obj \ - ttgload.obj ttinterp.obj ttload.obj ttobjs.obj \ - ttraster.obj ttextend.obj $(PORT) $(OBJS_X) -# OBJS_M = $(SRC_M:.c=.obj) $(OBJS_X) - -# Not used here because the compiler runs out of memory... -OBJ_S = $(ARCH)\freetype.obj -OBJS_S = $(OBJ_S) $(OBJS_X) - - -# Since these Borland's make are very primitive, we include each .obj -# in the library as soon as it is compiled. Better schemes are used -# in the other Makefile's, please give them a look. - -.c.obj: - $(CC) $(CFLAGS) -c -o$* $< - $(LIB) libttf +-$*.obj - - - -!if !$d(DEBUG) -# Skipped if DEBUG build (but with the `release' compiler options); -# it does not change anything, since we always build in multiple parts. -all: $(OBJS_M) - -!endif - -debug: $(OBJS_M) - -clean: - -del *.obj - -del extend\*.obj - -del $(ARCH)\*.obj - -del libttf.bak - -distclean: clean - -del libttf.lib - -!include "$(ARCH)\depend.dos" - -# end of Makefile diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/msdos/Makefile.VC b/Build/source/libs/freetype/freetype-1.5/lib/arch/msdos/Makefile.VC deleted file mode 100644 index 44c6225675b..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/msdos/Makefile.VC +++ /dev/null @@ -1,129 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library for Microsoft Visual C++ 1.x for MS-DOS, large model. -# It also works for Microsoft C/C++ v.7.0 (with a minor edit), but not for -# previous versions (use Makefile.MS instead). -# -# Tested with Microsoft C/C++ v.7.0, Visual C++ v.1.5. -# -# You will need NMAKE. -# -# Use this file while in the lib directory with the following statement: -# -# nmake /f arch\msdos\Makefile.VC -# -# -# A debug version can be obtained with -# -# nmake DEBUG=1 /f arch\msdos\Makefile.VC -# -# A special version enabled to handle big fonts (with more than 16,384 -# glyphs) can be obtained with -# -# nmake BIGFONTS=1 /f arch\msdos\Makefile.VC -# -# -# Copyright 1996-2001 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. - -ARCH = arch\msdos -FT_MAKEFILE = $(ARCH)\Makefile.VC - -CC = cl /nologo -LIB = lib /noignorecase /nologo - -# One can also consider using "set MSC_CMD_FLAGS=/Gr /Op- /Gy /YX". -# With Microsoft C/C++ 7.0, use /G2 instead of /G3. -!ifndef DEBUG -CFLAGS = $(CFLAGS) /Ox /AL /W2 /G3 /I$(ARCH) /I. /Iextend -!else -CFLAGS = $(CFLAGS) /Zi /Ge /AL /W2 /G3 /I$(ARCH) /I. /Iextend -!endif - - -!ifndef BIGFONTS -CFLAGS = $(CFLAGS) /Za - -TTFILE = .\ttfile.c -TTMEMORY = .\ttmemory.c -!else -CFLAGS = $(CFLAGS) /DTT_HUGE_PTR=__huge /Ze - -TTFILE = $(ARCH)\hugefile.c -TTMEMORY = $(ARCH)\hugemem.c -!endif - -TTMUTEX = .\ttmutex.c - -PORT = $(TTFILE) $(TTMEMORY) $(TTMUTEX) - -# Do not insert spaces between the file names or at end of line, otherwise -# the substitution for LIB command line will fail. Thank you. -# -SRC_X = extend\ftxgasp.c extend\ftxkern.c extend\ftxpost.c\ -extend\ftxcmap.c extend\ftxwidth.c extend\ftxerr18.c extend\ftxsbit.c\ -extend\ftxopen.c extend\ftxgsub.c extend\ftxgpos.c extend\ftxgdef.c -OBJS_X = $(SRC_X:.c=.obj) - -SRC_M = ttapi.c ttcache.c ttcalc.c ttcmap.c ttdebug.c\ -ttgload.c ttinterp.c ttload.c ttobjs.c ttraster.c ttextend.c $(PORT) -OBJS_M = $(SRC_M:.c=.obj) $(OBJS_X) - -SRC_S = $(ARCH)\freetype.c -OBJ_S = $(SRC_S:.c=.obj) -OBJS_S = $(OBJ_S) $(OBJS_X) - - -# Since Microsoft's NMAKE does not handle $($(LIB_FILES)), and using -# LIB_FILES="$(OBJS_S)" will excess the capacity of COMMAND.COM, we cheat -# by constructing LIB's response file directly in the `all' target. -# -# Another solution, useful during debugging of part of the library, -# would be to include each .obj in the library as soon as it is compiled. -# It is commented out below. See Makefile.TC for an application. -.c.obj: - @$(CC) /c /Fo$@ @<< - $(CFLAGS) $*.c -<< -# $(LIB) libttf +-$*.obj - - -!ifndef DEBUG -# Skipped if DEBUG build -all: $(OBJS_S) - -del libttf.lib - $(LIB) libttf.lib @<<response -+ $(OBJS_S: = + ); -<<KEEP -!endif - -debug: $(OBJS_M) - -del libttf.lib - $(LIB) libttf.lib @<<response -+ $(OBJS_M: = + ); -<<KEEP - -$(OBJ_S): $(SRC_S) $(SRC_M) - -# Not used here because it excesses the capacity of COMMAND.COM... -libttf.lib: $(LIB_FILES) - $(LIB) $@ +-$(?: =-+); - -clean: - -del *.obj - -del extend\*.obj - -del $(ARCH)\*.obj - -del response - -distclean: clean - -del libttf.lib - -!include "$(ARCH)\depend.dos" - -# end of Makefile.VC diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/msdos/Makefile.dm b/Build/source/libs/freetype/freetype-1.5/lib/arch/msdos/Makefile.dm deleted file mode 100644 index 6e02e7b423c..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/msdos/Makefile.dm +++ /dev/null @@ -1,94 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library and test programs for emx-gcc or djgpp under MSDOS. -# -# You will need dmake. -# -# Use this file while in the lib directory with the following statement: -# -# dmake -r -f arch/msdos/Makefile.dm -# -# -# Copyright 1996-2001 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. - -ARCH = arch/msdos -FT_MAKEFILE = $(ARCH)/Makefile.dm -FT_MAKE = dmake -r - -.IMPORT: COMSPEC -SHELL := $(COMSPEC) -SHELLFLAGS := /c -GROUPSHELL := $(SHELL) -GROUPFLAGS := $(SHELLFLAGS) -GROUPSUFFIX := .bat -SHELLMETAS := *"?<>&| - -CC = gcc - -CFLAGS = -Wall -O2 -g -ansi -pedantic -I$(ARCH) -I. -Iextend -# CFLAGS = -Wall -ansi -O2 -s -I$(ARCH) -I. -Iextend - -SRC_X = extend/ftxgasp.c extend/ftxkern.c extend/ftxpost.c \ - extend/ftxcmap.c extend/ftxwidth.c extend/ftxsbit.c \ - extend/ftxgsub.c extend/ftxgpos.c extend/ftxopen.c \ - extend/ftxgdef.c extend/ftxerr18.c -OBJS_X = $(SRC_X:.c=.o) - -SRC_M = ttapi.c ttcache.c ttcalc.c ttcmap.c ttdebug.c \ - ttfile.c ttgload.c ttinterp.c ttload.c \ - ttmemory.c ttmutex.c ttobjs.c ttraster.c ttextend.c -OBJS_M = $(SRC_M:.c=.o) $(OBJS_X) - -SRC_S = $(ARCH)/freetype.c -OBJ_S = $(SRC_S:.c=.o) -OBJS_S = $(OBJ_S) $(OBJS_X) - - -%.o: %.c - $(CC) $(CFLAGS) -c -o $@ $< - -.PHONY: all debug clean distclean depend - - -all: - $(FT_MAKE) -f $(FT_MAKEFILE) LIB_FILES=OBJS_S libttf.a - -debug: - $(FT_MAKE) -f $(FT_MAKEFILE) LIB_FILES=OBJS_M libttf.a - - -$(OBJ_S): $(SRC_S) $(SRC_M) - $(CC) $(CFLAGS) -c -o $@ $(SRC_S) - -libttf.a: $($(LIB_FILES)) - +-del $@ - ar src $@ @$(mktmp $(<:t"\n")\n) - -clean: --[ - del *.o - del extend\*.o - del $(ARCH)\*.o -] - -distclean: clean --[ - del dep.end - del libttf.a -] - -# depend: $(SRC_S) $(SRC_M) $(SRC_X) -# $(CC) -E -M @$(mktmp $(<:t"\n")\n) > dep.end - -# ifeq (dep.end,$(wildcard dep.end)) -# include dep.end -# endif - -# end of Makefile.dm diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/msdos/Makefile.gcc b/Build/source/libs/freetype/freetype-1.5/lib/arch/msdos/Makefile.gcc deleted file mode 100644 index 7425f2adabc..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/msdos/Makefile.gcc +++ /dev/null @@ -1,108 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library for emx-gcc or djgpp under MSDOS. -# -# You will need GNU make, and sed if you want to make depend -# -# Use this file while in the lib directory with the following statements: -# -# make -f arch/msdos/Makefile.gcc depend -# make -f arch/msdos/Makefile.gcc -# -# If you have the GNU gettext package installed with DJGPP, you can also try -# -# make -f arch/msdos/Makefile.gcc HAVE_GETTEXT -# -# You should also modify the path below to reflect where the *.mo -# files are on your system, and install there the one for freetype. -# -# -# Copyright 1996-2002 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. - -ARCH = arch/msdos -FT_MAKEFILE = $(ARCH)/Makefile.gcc - -CC = gcc - -ifndef GETTEXT -GETTEXT=NO_GETTEXT -endif - -ifdef DEBUG -CFLAGS = -Wall -O2 -g -ansi -pedantic -I$(ARCH) -I. -Iextend -D$(GETTEXT) -else -CFLAGS = -Wall -ansi -pedantic -O2 -s -I$(ARCH) -I. -Iextend -D$(GETTEXT) -endif - - -TTFILE = ./ttfile.c -TTMEMORY = ./ttmemory.c -TTMUTEX = ./ttmutex.c - -PORT = $(TTFILE) $(TTMEMORY) $(TTMUTEX) - -SRC_X = extend/ftxgasp.c extend/ftxkern.c extend/ftxpost.c \ - extend/ftxcmap.c extend/ftxwidth.c extend/ftxsbit.c \ - extend/ftxgsub.c extend/ftxgpos.c extend/ftxgdef.c \ - extend/ftxopen.c extend/ftxerr18.c -OBJS_X = $(SRC_X:.c=.o) - -SRC_M = ttapi.c ttcache.c ttcalc.c ttcmap.c ttdebug.c \ - ttgload.c ttinterp.c ttload.c ttobjs.c \ - ttraster.c ttextend.c $(PORT) -OBJS_M = $(SRC_M:.c=.o) $(OBJS_X) - -SRC_S = $(ARCH)/freetype.c -OBJ_S = $(SRC_S:.c=.o) -OBJS_S = $(OBJ_S) $(OBJS_X) - - -%.o: %.c - $(CC) $(CFLAGS) -c -o $@ $< - -.PHONY: all debug clean distclean depend - - -all: - $(MAKE) -f $(FT_MAKEFILE) LIB_FILES=OBJS_S libttf.a - -debug: - $(MAKE) -f $(FT_MAKEFILE) LIB_FILES=OBJS_M DEBUG=1 libttf.a - -HAVE_GETTEXT: - $(MAKE) -f $(FT_MAKEFILE) LIB_FILES=OBJS_S GETTEXT=HAVE_GETTEXT \ - libttf.a - -$(OBJ_S): $(SRC_S) $(SRC_M) - -libttf.a: $($(LIB_FILES)) - -del $@ - ar src $@ $^ - -clean: - -del *.o - -del extend\*.o - -del arch\msdos\*.o - -del response - -distclean: clean - -del dep.end - -del libttf.a - -depend: $(SRC_S) $(SRC_M) $(SRC_X) - $(CC) -E -MM -I$(ARCH) -I. -Iextend $^ | \ - sed -e "s!^freetype.!$(ARCH)/freetype.!" | \ - sed -e "s!^ftx!extend/ftx!" > dep.end - -ifeq (dep.end,$(wildcard dep.end)) - include dep.end -endif - -# end of Makefile.gcc diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/msdos/Makefile.wat b/Build/source/libs/freetype/freetype-1.5/lib/arch/msdos/Makefile.wat deleted file mode 100644 index 12647edc579..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/msdos/Makefile.wat +++ /dev/null @@ -1,105 +0,0 @@ -# This file is part of the FreeType project -# -# This builds the Watcom library with Watcom's wcc386 under DOS -# -# You'll need Watcom's wmake -# -# -# Invoke by "wmake -f arch\msdos\Makefile.wat" while in the "lib" directory -# -# This will build "freetype\lib\libttf.lib" -# -# -# Copyright 1996-2001 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. -# -# This compiler did compile early versions of the FreeType package. -# While we tried our best to maintain the makefiles, the development team -# does not have currently access to a copy of this compiler, and we did not -# receive notices of successfull builts since many years. So be prepared -# to some problems; and if it works for you, or if you can upgrade the -# package in any way, please notify us! - - -ARCH = arch\msdos -FT_MAKEFILE = $(ARCH)\Makefile.wat -FT_MAKE = wmake -h - - -.EXTENSIONS: -.EXTENSIONS: .lib .obj .c .h -.obj:.;.\extend;.\$(ARCH) -.c:.;.\extend;.\$(ARCH) -.h:.;.\extend;.\$(ARCH) - -CC = wcc386 - -CCFLAGS = /otexanl+ /s /w4 /zq /d3 -I$(ARCH) -I. -Iextend - - -# FIXME: should use something like OBJ = $(SRC:.c=.obj) - -SRC_X = ftxgasp.c ftxkern.c ftxpost.c & - ftxcmap.c ftxwidth.c ftxsbit.c ftxerr18.c & - ftxgsub.c ftxgpos.c ftxopen.c ftxgdef.c -OBJS_X = ftxgasp.obj ftxkern.obj ftxpost.obj & - ftxcmap.obj ftxwidth.obj ftxsbit.obj ftxerr18.obj & - ftxgsub.obj ftxgpos.obj ftxopen.obj ftxgdef.obj - -SRC_M = ttapi.c ttcache.c ttcalc.c ttcmap.c ttdebug.c & - ttfile.c ttgload.c ttinterp.c & - ttload.c ttmemory.c ttmutex.c ttobjs.c ttraster.c & - ttextend.c -OBJS_M = ttapi.obj ttcache.obj ttcalc.obj ttcmap.obj ttdebug.obj & - ttfile.obj ttgload.obj ttinterp.obj & - ttload.obj ttmemory.obj ttmutex.obj ttobjs.obj ttraster.obj & - ttextend.obj $(OBJS_X) - -SRC_S = freetype.c -OBJ_S = freetype.obj -OBJS_S = $(OBJ_S) $(OBJ_X) - - -.c.obj: - $(CC) $(CCFLAGS) $[* /fo=$[*.obj - -libname = libttf -libfile = $(libname).lib -cmdfile = $(libname).lst - - -all: .symbolic - $(FT_MAKE) -f $(FT_MAKEFILE) LIB_FILES=OBJS_S $(libfile) - -debug: .symbolic - $(FT_MAKE) -f $(FT_MAKEFILE) LIB_FILES=OBJS_M $(libfile) - - -$(libfile): $($(LIB_FILES)) - wlib -q -n $(libfile) @$(cmdfile) - -# is this correct? Know nothing about wmake and the Watcom compiler... -$(OBJ_S): $(SRC_S) $(SRC_M) - $(CC) $(CCFLAGS) $(SRC_S) /fo=$(OBJ_S) - -$(cmdfile): $($(LIB_FILES)) - @for %i in ($($(LIB_FILES))) do @%append $(cmdfile) +-%i - -clean: .symbolic - @-erase $(OBJ_S) - @-erase $(OBJS_M) - @-erase $(cmdfile) - -distclean: .symbolic clean - @-erase $(libfile) - -new: .symbolic - @-wtouch *.c - -# end of Makefile.wat diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/msdos/depend.dos b/Build/source/libs/freetype/freetype-1.5/lib/arch/msdos/depend.dos deleted file mode 100644 index 50f2c49fb76..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/msdos/depend.dos +++ /dev/null @@ -1,111 +0,0 @@ -# This file is part of the FreeType project. -# Automatically generated, but you can customize to fit your needs. -# However, changes will be erased if not made in `makedep'... -# -# This dependency file to be used with various MS-DOS compilers -# has been generated automatically with the script `makedep' on -# 2002-11-18. - -ttapi.obj: ttapi.c ttconfig.h arch\msdos\ft_conf.h freetype.h fterrid.h \ - ftnameid.h ttengine.h tttypes.h ttmutex.h ttcalc.h ttmemory.h \ - ttcache.h ttfile.h ttdebug.h ttobjs.h tttables.h ttcmap.h ttload.h \ - ttgload.h ttraster.h ttextend.h -ttcache.obj: ttcache.c ttengine.h tttypes.h ttconfig.h \ - arch\msdos\ft_conf.h freetype.h fterrid.h ftnameid.h ttmutex.h \ - ttmemory.h ttcache.h ttobjs.h tttables.h ttcmap.h ttdebug.h -ttcalc.obj: ttcalc.c ttcalc.h ttconfig.h arch\msdos\ft_conf.h freetype.h \ - fterrid.h ftnameid.h ttdebug.h tttypes.h tttables.h -ttcmap.obj: ttcmap.c ttobjs.h ttconfig.h arch\msdos\ft_conf.h ttengine.h \ - tttypes.h freetype.h fterrid.h ftnameid.h ttmutex.h ttcache.h \ - tttables.h ttcmap.h ttdebug.h ttfile.h ttmemory.h ttload.h -ttdebug.obj: ttdebug.c ttdebug.h ttconfig.h arch\msdos\ft_conf.h \ - tttypes.h freetype.h fterrid.h ftnameid.h tttables.h ttobjs.h \ - ttengine.h ttmutex.h ttcache.h ttcmap.h -ttextend.obj: ttextend.c ttextend.h ttconfig.h arch\msdos\ft_conf.h \ - tttypes.h freetype.h fterrid.h ftnameid.h ttobjs.h ttengine.h \ - ttmutex.h ttcache.h tttables.h ttcmap.h ttmemory.h -ttfile.obj: ttfile.c ttconfig.h arch\msdos\ft_conf.h freetype.h \ - fterrid.h ftnameid.h tttypes.h ttdebug.h ttengine.h ttmutex.h \ - ttmemory.h ttfile.h -ttgload.obj: ttgload.c tttypes.h ttconfig.h arch\msdos\ft_conf.h \ - freetype.h fterrid.h ftnameid.h ttdebug.h ttcalc.h ttfile.h \ - ttengine.h ttmutex.h tttables.h ttobjs.h ttcache.h ttcmap.h ttgload.h \ - ttmemory.h tttags.h ttload.h -ttinterp.obj: ttinterp.c freetype.h fterrid.h ftnameid.h tttypes.h \ - ttconfig.h arch\msdos\ft_conf.h ttdebug.h ttcalc.h ttmemory.h \ - ttinterp.h ttobjs.h ttengine.h ttmutex.h ttcache.h tttables.h \ - ttcmap.h -ttload.obj: ttload.c tttypes.h ttconfig.h arch\msdos\ft_conf.h \ - freetype.h fterrid.h ftnameid.h ttdebug.h ttcalc.h ttfile.h \ - ttengine.h ttmutex.h tttables.h ttobjs.h ttcache.h ttcmap.h \ - ttmemory.h tttags.h ttload.h -ttmemory.obj: ttmemory.c ttdebug.h ttconfig.h arch\msdos\ft_conf.h \ - tttypes.h freetype.h fterrid.h ftnameid.h ttmemory.h ttengine.h \ - ttmutex.h -ttmutex.obj: ttmutex.c ttmutex.h ttconfig.h arch\msdos\ft_conf.h -ttobjs.obj: ttobjs.c ttobjs.h ttconfig.h arch\msdos\ft_conf.h ttengine.h \ - tttypes.h freetype.h fterrid.h ftnameid.h ttmutex.h ttcache.h \ - tttables.h ttcmap.h ttfile.h ttdebug.h ttcalc.h ttmemory.h ttload.h \ - ttinterp.h ttextend.h -ttraster.obj: ttraster.c ttraster.h ttconfig.h arch\msdos\ft_conf.h \ - freetype.h fterrid.h ftnameid.h ttengine.h tttypes.h ttmutex.h \ - ttdebug.h ttcalc.h ttmemory.h -extend\ftxcmap.obj: extend\ftxcmap.c extend\ftxcmap.h freetype.h fterrid.h \ - ftnameid.h tttypes.h ttconfig.h arch\msdos\ft_conf.h ttobjs.h \ - ttengine.h ttmutex.h ttcache.h tttables.h ttcmap.h -extend\ftxerr18.obj: extend\ftxerr18.c extend\ftxerr18.h freetype.h fterrid.h \ - ftnameid.h extend\ftxkern.h extend\ftxpost.h extend\ftxopen.h \ - extend\ftxgdef.h extend\ftxgsub.h extend\ftxgpos.h ttconfig.h \ - arch\msdos\ft_conf.h -extend\ftxgasp.obj: extend\ftxgasp.c extend\ftxgasp.h freetype.h fterrid.h \ - ftnameid.h tttypes.h ttconfig.h arch\msdos\ft_conf.h ttobjs.h \ - ttengine.h ttmutex.h ttcache.h tttables.h ttcmap.h -extend\ftxgdef.obj: extend\ftxgdef.c tttypes.h ttconfig.h arch\msdos\ft_conf.h \ - freetype.h fterrid.h ftnameid.h tttags.h ttload.h ttobjs.h ttengine.h \ - ttmutex.h ttcache.h tttables.h ttcmap.h ttextend.h ttmemory.h \ - ttfile.h ttdebug.h extend\ftxopen.h extend\ftxgdef.h extend\ftxgsub.h \ - extend\ftxgpos.h extend\ftxopenf.h -extend\ftxgpos.obj: extend\ftxgpos.c tttypes.h ttconfig.h arch\msdos\ft_conf.h \ - freetype.h fterrid.h ftnameid.h tttags.h ttload.h ttobjs.h ttengine.h \ - ttmutex.h ttcache.h tttables.h ttcmap.h ttextend.h ttmemory.h \ - ttfile.h ttdebug.h extend\ftxopen.h extend\ftxgdef.h extend\ftxgsub.h \ - extend\ftxgpos.h extend\ftxopenf.h -extend\ftxgsub.obj: extend\ftxgsub.c tttypes.h ttconfig.h arch\msdos\ft_conf.h \ - freetype.h fterrid.h ftnameid.h tttags.h ttload.h ttobjs.h ttengine.h \ - ttmutex.h ttcache.h tttables.h ttcmap.h ttextend.h ttmemory.h \ - ttfile.h ttdebug.h extend\ftxopen.h extend\ftxgdef.h extend\ftxgsub.h \ - extend\ftxgpos.h extend\ftxopenf.h -extend\ftxkern.obj: extend\ftxkern.c extend\ftxkern.h freetype.h fterrid.h \ - ftnameid.h ttextend.h ttconfig.h arch\msdos\ft_conf.h tttypes.h \ - ttobjs.h ttengine.h ttmutex.h ttcache.h tttables.h ttcmap.h ttdebug.h \ - ttload.h ttmemory.h ttfile.h tttags.h -extend\ftxopen.obj: extend\ftxopen.c tttypes.h ttconfig.h arch\msdos\ft_conf.h \ - freetype.h fterrid.h ftnameid.h ttload.h ttobjs.h ttengine.h \ - ttmutex.h ttcache.h tttables.h ttcmap.h ttextend.h ttmemory.h \ - ttfile.h ttdebug.h extend\ftxopen.h extend\ftxgdef.h extend\ftxgsub.h \ - extend\ftxgpos.h extend\ftxopenf.h -extend\ftxpost.obj: extend\ftxpost.c extend\ftxpost.h freetype.h fterrid.h \ - ftnameid.h tttypes.h ttconfig.h arch\msdos\ft_conf.h ttobjs.h \ - ttengine.h ttmutex.h ttcache.h tttables.h ttcmap.h ttload.h ttfile.h \ - ttdebug.h tttags.h ttmemory.h ttextend.h -extend\ftxsbit.obj: extend\ftxsbit.c extend\ftxsbit.h freetype.h fterrid.h \ - ftnameid.h ttobjs.h ttconfig.h arch\msdos\ft_conf.h ttengine.h \ - tttypes.h ttmutex.h ttcache.h tttables.h ttcmap.h ttfile.h ttdebug.h \ - ttload.h ttmemory.h tttags.h ttextend.h -extend\ftxwidth.obj: extend\ftxwidth.c extend\ftxwidth.h freetype.h fterrid.h \ - ftnameid.h ttdebug.h ttconfig.h arch\msdos\ft_conf.h tttypes.h \ - ttobjs.h ttengine.h ttmutex.h ttcache.h tttables.h ttcmap.h ttfile.h \ - tttags.h ttload.h -arch\msdos\freetype.obj: arch\msdos\freetype.c ttapi.c ttconfig.h \ - arch\msdos\ft_conf.h freetype.h fterrid.h ftnameid.h ttengine.h \ - tttypes.h ttmutex.h ttcalc.h ttmemory.h ttcache.h ttfile.h ttdebug.h \ - ttobjs.h tttables.h ttcmap.h ttload.h ttgload.h ttraster.h ttextend.h \ - ttcache.c ttcalc.c ttcmap.c ttdebug.c ttgload.c tttags.h ttinterp.c \ - ttinterp.h ttload.c ttobjs.c ttraster.c arch\msdos\hugefile.c \ - ttfile.c arch\msdos\hugemem.c ttmutex.c ttextend.c -arch\msdos\hugefile.obj: arch\msdos\hugefile.c ttconfig.h arch\msdos\ft_conf.h \ - tttypes.h freetype.h fterrid.h ftnameid.h ttfile.c ttdebug.h \ - ttengine.h ttmutex.h ttmemory.h ttfile.h -arch\msdos\hugemem.obj: arch\msdos\hugemem.c ttdebug.h ttconfig.h \ - arch\msdos\ft_conf.h tttypes.h freetype.h fterrid.h ftnameid.h \ - ttmemory.h ttengine.h ttmutex.h diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/msdos/freetype.c b/Build/source/libs/freetype/freetype-1.5/lib/arch/msdos/freetype.c deleted file mode 100644 index 943d5f24776..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/msdos/freetype.c +++ /dev/null @@ -1,39 +0,0 @@ -/* This file is part of the FreeType project */ - -/* Single object library component for MSDOS. */ -/* Note that low-optimizing 16-bit compilers (such as Borland ones) can't */ -/* successfully compile this file, because it exceeds 64K of code size. */ -#define TT_MAKE_OPTION_SINGLE_OBJECT - -/* first include common core components */ - -#include "ttapi.c" -#include "ttcache.c" -#include "ttcalc.c" -#include "ttcmap.c" -#include "ttdebug.c" -#include "ttgload.c" -#include "ttinterp.c" -#include "ttload.c" -#include "ttobjs.c" -#include "ttraster.c" - -/* then system-specific (or ANSI) components */ - -#ifdef TT_HUGE_PTR -#include "arch/msdos/hugefile.c" -#include "arch/msdos/hugemem.c" -#else -#include "ttfile.c" -#include "ttmemory.c" -#endif -#include "ttmutex.c" - -/* finally, add some extensions */ - -#ifdef TT_CONFIG_OPTION_EXTEND_ENGINE -#include "ttextend.c" -#endif - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/msdos/ft_conf.h b/Build/source/libs/freetype/freetype-1.5/lib/arch/msdos/ft_conf.h deleted file mode 100644 index 25f16823c3c..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/msdos/ft_conf.h +++ /dev/null @@ -1,251 +0,0 @@ -/******************************************************************* - * - * ft_conf.h for MSDOS - * - * - * Copyright 1996-2002 by - * David Turner, Robert Wilhelm, and Werner Lemberg - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - ******************************************************************/ - - -/* we need the following because there are some typedefs in this file */ - -#ifndef FT_CONF_H -#define FT_CONF_H - -/* Define to empty if the keyword does not work. */ -/* #undef const */ - -/* Define if you have the <stdlib.h> header file. */ -#define HAVE_STDLIB_H - -/* Define if you have the memcpy function. */ -#define HAVE_MEMCPY - -/* Define if you have the memmove function. */ -#define HAVE_MEMMOVE - -/* Define if you have the <unistd.h> header file. */ -#if defined( __EMX__ ) || defined( __DJGPP__ ) || defined( __GO32__ ) \ - || defined( __DJGPP ) /*v.1*/ -/* some compilers are known to have <unistd.h>; */ -/* add yours if needed, and report to us the update. */ -#define HAVE_UNISTD_H -#else -/* most MS-DOS compilers lack <unistd.h> */ -#undef HAVE_UNISTD_H -#endif - -/* Define if you have the <libintl.h> header file. */ -/* #undef HAVE_LIBINTL_H */ - -/* Define if you have the <locale.h> header file. */ -/* Only meaningful if you have <libintl.h>. */ -/* #undef HAVE_LOCALE_H */ - -/* DJGPP v.2 may feature the GNU gettext package, with some subtleties. */ -/* The macro HAVE_LIBINTL has to be set in the makefile. */ -#ifdef HAVE_GETTEXT /* backward compatibility */ -#define HAVE_LIBINTL -#endif - -#ifdef HAVE_LIBINTL -#define HAVE_LOCALE_H -#define HAVE_LIBINTL_H -#ifndef LOCALEDIR -#define LOCALEDIR "/usr/djgpp/share/locale" -#endif -/* Due to a name conflict, gettext is renamed gettext__ in DJGPP */ -#define gettext( str ) gettext__( str ) -#endif - -/* command.com can't pipe stderr into a file; any message would be */ -/* written into the graphics screen. */ -#define HAVE_PRINT_FUNCTION 1 - -#define Print( format, ap ) vfprintf( stdout, (format), (ap) ) - -/* The number of bytes in a int. We use the ANSI header file limits.h */ -/* for determining it since there is no easy way to guess. */ -#include <limits.h> -#if UINT_MAX == 0xFFFF -#define SIZEOF_INT 2 -#elif UINT_MAX == 0xFFFFFFFF -#define SIZEOF_INT 4 -#else -#error "Unsupported number of bytes in `int' type!" -#endif - -/* The number of bytes in a long. */ -#define SIZEOF_LONG 4 - -/**********************************************************************/ -/* */ -/* The following configuration macros can be tweaked manually by */ -/* a developer to turn on or off certain features or options in the */ -/* TrueType engine. This may be useful to tune it for specific */ -/* purposes.. */ -/* */ -/**********************************************************************/ - - -/*************************************************************************/ -/* Define this if the underlying operating system uses a different */ -/* character width than 8bit for file names. You must then also supply */ -/* a typedef declaration for defining 'TT_Text'. Default is off. */ - -/* #define HAVE_TT_TEXT */ - - -/*************************************************************************/ -/* Define this if you want to generate code to support engine extensions */ -/* Default is on, but if you're satisfied by the basic services provided */ -/* by the engine and need no extensions, undefine this configuration */ -/* macro to save a few more bytes. */ - -#define TT_CONFIG_OPTION_EXTEND_ENGINE - - -/*************************************************************************/ -/* Define this if you want to generate code to support gray-scaling, */ -/* a.k.a. font-smoothing or anti-aliasing. Default is on, but you can */ -/* disable it if you don't need it. */ - -#define TT_CONFIG_OPTION_GRAY_SCALING - - -/*************************************************************************/ -/* Define this if you want to compile a bytecode interpreter in the */ -/* TrueType driver. Note that there are important patent issues related */ -/* to the use of the interpreter. */ -/* */ -/* By undefining this, you will only compile the code necessary to load */ -/* TrueType glyphs without hinting. */ - -#undef TT_CONFIG_OPTION_BYTECODE_INTERPRETER - - -/*************************************************************************/ -/* Define this if you want to use a big 'switch' statement within the */ -/* bytecode interpreter. Because some non-optimizing compilers are not */ -/* able to produce jump tables from such statements, undefining this */ -/* configuration macro will generate the appropriate C jump table in */ -/* ttinterp.c. If you use an optimizing compiler, you should leave it */ -/* defined for better performance and code compactness.. */ - -#define TT_CONFIG_OPTION_INTERPRETER_SWITCH - - -/*************************************************************************/ -/* Define this if you want to build a 'static' version of the TrueType */ -/* bytecode interpreter. This will produce much bigger code, which */ -/* _may_ be faster on some architectures.. */ -/* */ -/* Do NOT DEFINE THIS is you build a thread-safe version of the engine */ - -#undef TT_CONFIG_OPTION_STATIC_INTERPRETER - - -/*************************************************************************/ -/* Define this if you want to build a 'static' version of the scan-line */ -/* converter (the component which in charge of converting outlines into */ -/* bitmaps). This will produce a bigger object file for "ttraster.c", */ -/* which _may_ be faster on some architectures.. */ -/* */ -/* Do NOT DEFINE THIS is you build a thread-safe version of the engine */ - -#undef TT_CONFIG_OPTION_STATIC_RASTER - - - -/*************************************************************************/ -/* Define TT_CONFIG_THREAD_SAFE if you want to build a thread-safe */ -/* version of the library. */ - -#undef TT_CONFIG_OPTION_THREAD_SAFE - - -/**********************************************************************/ -/* */ -/* The following macros are used to define the debug level, as well */ -/* as individual tracing levels for each component. There are */ -/* currently three modes of operation : */ -/* */ -/* - trace mode (define DEBUG_LEVEL_TRACE) */ -/* */ -/* The engine prints all error messages, as well as tracing */ -/* ones, filtered by each component's level */ -/* */ -/* - debug mode (define DEBUG_LEVEL_ERROR) */ -/* */ -/* Disable tracing, but keeps error output and assertion */ -/* checks. */ -/* */ -/* - release mode (don't define anything) */ -/* */ -/* Don't include error-checking or tracing code in the */ -/* engine's code. Ideal for releases. */ -/* */ -/* NOTE : */ -/* */ -/* Each component's tracing level is defined in its own source. */ -/* */ -/**********************************************************************/ - -/* Define if you want to use the tracing debug mode */ -#undef DEBUG_LEVEL_TRACE - -/* Define if you want to use the error debug mode - ignored if */ -/* DEBUG_LEVEL_TRACE is defined */ -#undef DEBUG_LEVEL_ERROR - - -/**************************************************************************/ -/* Definition of various integer sizes. These types are used by ttcalc */ -/* and ttinterp (for the 64-bit integers) only.. */ - -#if SIZEOF_INT == 4 - - typedef signed int TT_Int32; - typedef unsigned int TT_Word32; - -#elif SIZEOF_LONG == 4 - - typedef signed long TT_Int32; - typedef unsigned long TT_Word32; - -#else -#error "no 32bit type found" -#endif - -#if SIZEOF_LONG == 8 - -/* LONG64 must be defined when a 64-bit type is available */ -/* INT64 must then be defined to this type.. */ -#define LONG64 -#define INT64 long - -#else - -/* GCC provides the non-ANSI 'long long' 64-bit type. You can activate */ -/* by defining the TT_USE_LONG_LONG macro in 'ft_conf.h'. Note that this */ -/* will produce many -ansi warnings during library compilation. */ -#ifdef TT_USE_LONG_LONG - -#define LONG64 -#define INT64 long long - -#endif /* TT_USE_LONG_LONG */ -#endif - -#endif /* FT_CONF_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/msdos/hugefile.c b/Build/source/libs/freetype/freetype-1.5/lib/arch/msdos/hugefile.c deleted file mode 100644 index 695daa69def..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/msdos/hugefile.c +++ /dev/null @@ -1,87 +0,0 @@ -/******************************************************************* - * - * hugefile.c - * - * File I/O Component (body) for dealing with "huge" objects under - * MS-DOS. Relies on the "default" version, with a small hook. - * - * Written by Antoine Leca based on ideas from Dave Hoo. - * Copyright 1999-2001 by Dave Hoo, Antoine Leca, - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - * NOTE - * - * This file #includes the normal version, to avoid discrepancies - * between versions. It uses only ANSI-mandated "tricks", so - * any ANSI-compliant compiler should be able to compile this file. - * - ******************************************************************/ - -#include "ttconfig.h" -#include "tttypes.h" - -/* Here we include <stdio.h>, to have the proper definition of fread */ -#include <stdio.h> - -/* Then, we divert the use of fread to our version */ -#undef fread -#define fread(ptr, size, n, stream) huge_fread(ptr, size, n, stream) - - FT_INTERNAL_FUNC( Long ) - huge_fread ( void *ptr, size_t size, Long n, FILE *stream ); - -/* Now, we include the "normal" version of ttfile.c */ -/* The ANSI/ISO standard mandates that the include of <stdio.h> */ -/* there have no bad effects. */ -#include "ttfile.c" - -/* Then, we define our implementation of fread that makes use of */ -/* "huge"-allocated memory. */ - -/******************************************************************* - * - * Function : huge_fread - * - * Description : replacement version of fread that handles - * "huge"-allocated memory. - * - * Input : See the reference for the runtime library function fread - * - * Output : See the reference for the runtime library function fread - * - * Notes : - * - ******************************************************************/ - - FT_INTERNAL_DEF( Long ) - huge_fread ( void * ptr, - size_t size, - Long n, - FILE * stream ) - { - char TT_HUGE_PTR * p = (char TT_HUGE_PTR *) ptr; - ULong left = (ULong)n * size; - size_t toRead; - - while ( left ) - { - toRead = (left > 0x8000) ? 0x8000 : left; - if ( (fread)( p, 1, toRead, stream ) != toRead) - return -1; - else - { - left -= (ULong) toRead; - p += toRead; - } - } - return n * size; - } - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/msdos/hugemem.c b/Build/source/libs/freetype/freetype-1.5/lib/arch/msdos/hugemem.c deleted file mode 100644 index 739160d521c..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/msdos/hugemem.c +++ /dev/null @@ -1,496 +0,0 @@ -/******************************************************************* - * - * hugemem.c - * - * Memory management component (body) - * for dealing with "huge" objects with 16-bit MS-DOS. - * - * Written by Dave Hoo and Antoine Leca. - * Copyright 1999-2001 by Dave Hoo, Antoine Leca, - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - ******************************************************************/ - -#include <limits.h> - -#include "ttdebug.h" -#include "ttmemory.h" -#include "ttengine.h" - -#ifndef TT_HUGE_PTR -#error "This component needs TT_HUGE_PTR to be #defined." -#endif - -/* ---- Microsoft C compilers support ------------------------------------ */ - -#if defined( M_I86 ) || defined( _M_I86 ) - -#include <malloc.h> -#define huge_alloc( size ) _halloc ( size, 1 ) -#define huge_free( block ) _hfree ( block ) - -#endif /* Microsoft compilers */ - -/* ---- Borland C compiler support --------------------------------------- */ - -#ifdef __TURBOC__ - -#include <alloc.h> -#define huge_alloc( size ) farmalloc ( size ) -#define huge_free( block ) farfree ( block ) - -#endif - -#if !defined( huge_alloc ) || !defined( huge_free ) -#error "Your compiler is not (yet) supported. Check the source file!" -#endif - -#ifdef TT_CONFIG_OPTION_THREAD_SAFE -#error "This component needs static allocation and is not re-entrant." -#endif - -/* required by the tracing mode */ -#undef TT_COMPONENT -#define TT_COMPONENT trace_memory - - -#ifdef DEBUG_MEMORY - -#include <stdio.h> - -#define MAX_TRACKED_BLOCKS 1024 - - struct TMemRec_ - { - void* base; - Long size; - }; - - typedef struct TMemRec_ TMemRec; - - static TMemRec pointers[MAX_TRACKED_BLOCKS + 1]; - - static Int num_alloc; - static Int num_free; - static Int num_realloc; /* counts only `real' reallocations - (i.e., an existing buffer will be resized - to a value larger than zero */ - - static Int fail_alloc; - static Int fail_realloc; - static Int fail_free; - -#else - - /* We need a tracing stack of the calls to big chunks of memory, */ - /* in order to call the matching version of free(). */ - -#define MAX_TRACKED_BIGCHUNKS 16 - - struct TMemRec_ - { - void* base; - Long size; - }; - - typedef struct TMemRec_ TMemRec; - - static TMemRec pointers[MAX_TRACKED_BIGCHUNKS + 1]; - -#endif /* DEBUG_MEMORY */ - - -#ifndef TT_CONFIG_OPTION_THREAD_SAFE - Long TTMemory_Allocated; - Long TTMemory_MaxAllocated; -#endif - - -/******************************************************************* - * - * Function : TT_Alloc - * - * Description : Allocates memory from the heap buffer. - * - * Input : Size size of the memory to be allocated - * P pointer to a buffer pointer - * - * Output : Error code. - * - * NOTE : The newly allocated block should _always_ be zeroed - * on return. Many parts of the engine rely on this to - * work properly. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Alloc( ULong Size, void** P ) - { - Int i; - - - if ( !P ) - return TT_Err_Invalid_Argument; - /* Also see below for another case of "invalid argument". */ - - if ( Size > 0 ) - { - if ( Size > ( UINT_MAX & ~0xFu ) ) - *P = (void*)huge_alloc( Size ); - else - *P = (void*)malloc( Size ); - if ( !*P ) - return TT_Err_Out_Of_Memory; - -#ifndef TT_CONFIG_OPTION_THREAD_SAFE - TTMemory_Allocated += Size; - TTMemory_MaxAllocated += Size; -#endif - -#ifdef DEBUG_MEMORY - - num_alloc++; - - i = 0; - while ( i < MAX_TRACKED_BLOCKS && pointers[i].base != NULL ) - i++; - - if ( i >= MAX_TRACKED_BLOCKS ) - fail_alloc++; - else - { - pointers[i].base = *P; - pointers[i].size = Size; - } - -#else - - if ( Size > ( UINT_MAX & ~0xFu ) ) - { - i = 0; - while ( i < MAX_TRACKED_BIGCHUNKS && pointers[i].base != NULL ) - i++; - - if ( i >= MAX_TRACKED_BIGCHUNKS ) - /* We fail badly here. Increase MAX_TRACKED_BIGCHUNKS if needed. */ - return TT_Err_Invalid_Argument; - else - { - pointers[i].base = *P; - pointers[i].size = Size; - } - } - -#endif /* DEBUG_MEMORY */ - - if ( Size > ( UINT_MAX & ~0xFu ) ) - { - char TT_HUGE_PTR * p = (char TT_HUGE_PTR *) *P; - ULong left = (ULong)Size; - size_t toClear; - - while ( left ) - { - toClear = (left > 0xFF00) ? 0xFF00 : left; - MEM_Set( p, 0, toClear ); - left -= (ULong) toClear; - p += toClear; - } - } - else - MEM_Set( *P, 0, Size ); - } - else - *P = NULL; - - return TT_Err_Ok; - } - - -#ifdef TT_CONFIG_OPTION_EXTEND_ENGINE - - -/******************************************************************* - * - * Function : TT_Realloc - * - * Description : Reallocates memory from the heap buffer. - * - * Input : Size new size of the memory to be allocated; - * if zero, TT_Free() will be called - * P pointer to a buffer pointer; if *P == NULL, - * TT_Alloc() will be called - * - * Output : Error code. - * - * NOTES : It's not necessary to zero the memory in case the - * reallocated buffer is larger than before -- the - * application has to take care of this. - * - * If the memory request fails, TT_Free() will be - * called on *P, and TT_Err_Out_Of_Memory returned. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Realloc( ULong Size, void** P ) - { - void* Q; - -#ifdef DEBUG_MEMORY - Int i; -#endif - - - if ( !P ) - return TT_Err_Invalid_Argument; - - if ( !*P ) - return TT_Alloc( Size, P ); - - if ( Size == 0 ) - return TT_Free( P ); - - if ( Size > ( UINT_MAX & ~0xFu ) ) - Q = NULL; /* Do not even try to deal with big chunks of memory. */ - else - Q = (void*)realloc( *P, Size ); - if ( !Q ) - { - TT_Free( *P ); - return TT_Err_Out_Of_Memory; - } - -#ifdef DEBUG_MEMORY - - num_realloc++; - - i = 0; - while ( i < MAX_TRACKED_BLOCKS && pointers[i].base != *P ) - i++; - - if ( i >= MAX_TRACKED_BLOCKS ) - fail_realloc++; - else - { -#ifndef TT_CONFIG_OPTION_THREAD_SAFE - TTMemory_Allocated += Size - pointers[i].size; - if ( Size > pointers[i].size ) - TTMemory_MaxAllocated += Size - pointers[i].size; -#endif - - pointers[i].base = Q; - pointers[i].size = Size; - } -#endif /* DEBUG_MEMORY */ - - *P = Q; - - return TT_Err_Ok; - } - - -#endif /* TT_CONFIG_OPTION_EXTEND_ENGINE */ - - -/******************************************************************* - * - * Function : TT_Free - * - * Description : Releases a previously allocated block of memory. - * - * Input : P pointer to memory block - * - * Output : Always SUCCESS. - * - * Note : The pointer must _always_ be set to NULL by this function. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Free( void** P ) - { - Int i; - Long Size = 0; - - - if ( !P || !*P ) - return TT_Err_Ok; - -#ifdef DEBUG_MEMORY - - num_free++; - - i = 0; - while ( i < MAX_TRACKED_BLOCKS && pointers[i].base != *P ) - i++; - - if ( i >= MAX_TRACKED_BLOCKS ) - fail_free++; - else - { -#ifndef TT_CONFIG_OPTION_THREAD_SAFE - TTMemory_Allocated -= pointers[i].size; -#endif - - Size = pointers[i].size; - pointers[i].base = NULL; - pointers[i].size = 0; - } - -#else - - i = 0; - while ( i < MAX_TRACKED_BIGCHUNKS && pointers[i].base != *P ) - i++; - - /* If we did not found the pointer, then this is a "small" chunk. */ - - if ( i < MAX_TRACKED_BIGCHUNKS ) - { - Size = pointers[i].size; - pointers[i].base = NULL; - pointers[i].base = NULL; - } - -#endif /* DEBUG_MEMORY */ - - if ( Size > ( UINT_MAX & ~0xFu ) ) - huge_free( *P ); - else - free( *P ); - - *P = NULL; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TTMemory_Init - * - * Description : Initializes the memory. - * - * Output : Always SUCCESS. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TTMemory_Init( void ) - { -#ifdef DEBUG_MEMORY - Int i; - - - for ( i = 0; i < MAX_TRACKED_BLOCKS; i++ ) - { - pointers[i].base = NULL; - pointers[i].size = 0; - } - - num_alloc = 0; - num_realloc = 0; - num_free = 0; - - fail_alloc = 0; - fail_realloc = 0; - fail_free = 0; -#else - Int i; - - for ( i = 0; i < MAX_TRACKED_BIGCHUNKS; i++ ) - { - pointers[i].base = NULL; - pointers[i].size = 0; - } -#endif - - -#ifndef TT_CONFIG_OPTION_THREAD_SAFE - TTMemory_Allocated = 0; - TTMemory_MaxAllocated = 0; -#endif - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TTMemory_Done - * - * Description : Finalizes memory usage. - * - * Output : Always SUCCESS. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TTMemory_Done( void ) - { -#ifdef DEBUG_MEMORY - Int i, num_leaked, tot_leaked; - - - num_leaked = 0; - tot_leaked = 0; - - for ( i = 0; i < MAX_TRACKED_BLOCKS; i++ ) - { - if ( pointers[i].base ) - { - num_leaked ++; - tot_leaked += pointers[i].size; - } - } - - fprintf( stderr, - "%d memory allocations, of which %d failed\n", - num_alloc, - fail_alloc ); - - fprintf( stderr, - "%d memory reallocations, of which %d failed\n", - num_realloc, - fail_realloc ); - - fprintf( stderr, - "%d memory frees, of which %d failed\n", - num_free, - fail_free ); - - if ( num_leaked > 0 ) - { - fprintf( stderr, - "There are %d leaked memory blocks, totalizing %d bytes\n", - num_leaked, tot_leaked ); - - for ( i = 0; i < MAX_TRACKED_BLOCKS; i++ ) - { - if ( pointers[i].base ) - { - fprintf( stderr, - "index: %4d (base: $%08lx, size: %08ld)\n", - i, - (long)pointers[i].base, - pointers[i].size ); - } - } - } - else - fprintf( stderr, "No memory leaks !\n" ); - -#endif /* DEBUG_MEMORY */ - - return TT_Err_Ok; - } - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/msdos/makedep b/Build/source/libs/freetype/freetype-1.5/lib/arch/msdos/makedep deleted file mode 100755 index 43207cc46b4..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/msdos/makedep +++ /dev/null @@ -1,39 +0,0 @@ -# makedep -# -# This shell script creates a dependency file necessary for older compilers -# on the MS-DOS platform. -# -# Copyright 1996-2002 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. - -echo "\ -# This file is part of the FreeType project. -# Automatically generated, but you can customize to fit your needs. -# However, changes will be erased if not made in \`makedep'... -# -# This dependency file to be used with various MS-DOS compilers -# has been generated automatically with the script \`makedep' on -# `date +%Y-%m-%d`. -" > depend.dos - -(cd ../.. - gcc -MM -Iarch/msdos -I. *.c | \ - sed -e "s/\.o:/.obj:/" -e "s:/:\\\\:g") >> depend.dos - -(cd ../.. - gcc -MM -Iarch/msdos -I. -Iextend extend/*.c | \ - sed -e "s/^\(.*\)\.o:/extend\\\\\1.obj:/" -e "s:/:\\\\:g") >> depend.dos - -(cd ../.. - gcc -MM -Iarch/msdos -I. -Iextend \ - -DTT_HUGE_PTR -Dhuge_alloc -Dhuge_free arch/msdos/*.c | \ - sed -e "s/^\(.*\)\.o:/arch\\\\msdos\\\\\1.obj:/" \ - -e "s:/:\\\\:g") >> depend.dos - -# eof diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/os2/Makefile.dm b/Build/source/libs/freetype/freetype-1.5/lib/arch/os2/Makefile.dm deleted file mode 100644 index 67a00249af4..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/os2/Makefile.dm +++ /dev/null @@ -1,94 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library and test programs for emx-gcc under OS/2 -# -# You will need dmake. -# -# Use this file while in the lib directory with the following statement: -# -# dmake -r -f arch/os2/Makefile.dm -# -# -# Copyright 1996-2001 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. - -ARCH = arch/os2 -FT_MAKEFILE = $(ARCH)/Makefile.dm -FT_MAKE = dmake -r - -.IMPORT: COMSPEC -SHELL := $(COMSPEC) -SHELLFLAGS := /c -GROUPSHELL := $(SHELL) -GROUPFLAGS := $(SHELLFLAGS) -GROUPSUFFIX := .cmd -SHELLMETAS := *"?<>&| - -CC = gcc - -CFLAGS = -Wall -O2 -g -ansi -pedantic -I$(ARCH) -I. -Iextend -# CFLAGS = -Wall -ansi -O2 -s -I$(ARCH) -I. -Iextend - -TTFILE = $(ARCH)/os2file.c -TTMEMORY = ./ttmemory.c -TTMUTEX = ./ttmutex.c - -PORT = $(TTFILE) $(TTMEMORY) $(TTMUTEX) - -SRC_X = extend/ftxgasp.c extend/ftxkern.c extend/ftxpost.c \ - extend/ftxcmap.c extend/ftxwidth.c extend/ftxsbit.c \ - extend/ftxgsub.c extend/ftxgpos.c extend/ftxopen.c \ - extend/ftxgdef.c -OBJS_X = $(SRC_X:.c=.o) - -SRC_M = ttapi.c ttcache.c ttcalc.c ttcmap.c ttdebug.c \ - ttgload.c ttinterp.c ttload.c ttobjs.c \ - ttraster.c ttextend.c $(PORT) -OBJS_M = $(SRC_M:.c=.o) $(OBJS_X) - -SRC_S = $(ARCH)/freetype.c -OBJ_S = $(SRC_S:.c=.o) -OBJS_S = $(OBJ_S) $(OBJS_X) - - -%.o: %.c - $(CC) $(CFLAGS) -c -o $@ $< - -.PHONY: all debug clean distclean depend - - -all: - $(FT_MAKE) -f $(FT_MAKEFILE) LIB_FILES=OBJS_S libttf.a - -debug: - $(FT_MAKE) -f $(FT_MAKEFILE) LIB_FILES=OBJS_M libttf.a - - -$(OBJ_S): $(SRC_S) $(SRC_M) - $(CC) $(CFLAGS) -c -o $@ $(SRC_S) - - -libttf.a: $($(LIB_FILES)) - +-del $@ - ar src $@ @$(mktmp $(<:t"\n")\n) - -clean: - -+del $(subst,/,\ $($(LIB_FILES))) - -distclean: clean - -+del dep.end libttf.a - -# depend: $(SRC_S) $(SRC_M) $(SRC_X) -# $(CC) -E -M @$(mktmp $(<:t"\n")\n) > dep.end - -# ifeq (dep.end,$(wildcard dep.end)) -# include dep.end -# endif - -# end of Makefile.dm diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/os2/Makefile.emx b/Build/source/libs/freetype/freetype-1.5/lib/arch/os2/Makefile.emx deleted file mode 100644 index be5b8143444..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/os2/Makefile.emx +++ /dev/null @@ -1,102 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library and test programs for emx-gcc under OS/2. -# -# You will need GNU make. -# -# Use this file while in the lib directory with the following statements: -# -# make -f arch/os2/Makefile.emx depend -# make -f arch/os2/Makefile.emx -# -# -# Copyright 1996-2002 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. - -ARCH = arch/os2 -FT_MAKEFILE = $(ARCH)/Makefile.emx - -CC = gcc - -#CFLAGS = -W -Wall -O0 -g -ansi -pedantic -I$(ARCH) -I. -Iextend - -CFLAGS = -Wall -O3 -fno-inline -fomit-frame-pointer \ - -g -ansi -pedantic -I$(ARCH) -I. -Iextend - -#CFLAGS = -Wall -ansi -pedantic -O2 -s -I$(ARCH) -I. -Iextend - -TTFILE = $(ARCH)/os2file.c -TTMEMORY = ./ttmemory.c -TTMUTEX = ./ttmutex.c - -PORT = $(TTFILE) $(TTMEMORY) $(TTMUTEX) - -SRC_X = extend/ftxgasp.c extend/ftxkern.c extend/ftxpost.c \ - extend/ftxcmap.c extend/ftxwidth.c extend/ftxsbit.c \ - extend/ftxgsub.c extend/ftxgpos.c extend/ftxopen.c \ - extend/ftxgdef.c -OBJS_X = $(SRC_X:.c=.o) - -SRC_M = ttapi.c ttcache.c ttcalc.c ttcmap.c ttdebug.c \ - ttgload.c ttinterp.c ttload.c ttobjs.c \ - ttraster.c ttextend.c $(PORT) -OBJS_M = $(SRC_M:.c=.o) $(OBJS_X) - -SRC_S = $(ARCH)/freetype.c -OBJ_S = $(SRC_S:.c=.o) -OBJS_S = $(OBJ_S) $(OBJS_X) - -SRCD_S = $(ARCH)/freetypd.c -OBJD_S = $(SRCD_S:.c=.o) -OBJDS_S = $(OBJD_S) $(OBJS_X) - -%.o: %.c - $(CC) $(CFLAGS) -c -o $@ $< - -.PHONY: all debug clean distclean depend - - -all: - $(MAKE) -f $(FT_MAKEFILE) LIB_FILES=OBJS_S libttf.a - -debug: - $(MAKE) -f $(FT_MAKEFILE) LIB_FILES=OBJS_M libttf.a - -debugger: - $(MAKE) -f $(FT_MAKEFILE) LIB_FILES=OBJDS_S libttfd.a - -$(OBJ_S): $(SRC_S) $(SRC_M) -$(OBJD_S): $(SRCD_S) $(SRC_M) - -libttf.a: $($(LIB_FILES)) - -del $@ - ar src $@ $^ - -libttfd.a: $(OBJDS) - -libttfd.a: $(OBJDS) - -del $@ - ar src $@ $^ - -clean: - -del $(subst /,\,$(OBJS_S)) - -del $(subst /,\,$(OBJS_M)) - -distclean: clean - -del dep.end - -del libttf.a - -depend: $(SRC_S) $(SRC_M) $(SRC_X) - $(CC) -E -MM -I$(ARCH) -I. -Iextend $^ > dep.end - -ifeq (dep.end,$(wildcard dep.end)) - include dep.end -endif - -# end of Makefile.emx diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/os2/Makefile.icc b/Build/source/libs/freetype/freetype-1.5/lib/arch/os2/Makefile.icc deleted file mode 100644 index 2c387af3ef9..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/os2/Makefile.icc +++ /dev/null @@ -1,82 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library and test programs for IBM VisualAge C++ under OS/2. -# -# You will need nmake. -# -# Use this file while in the lib directory with the following statement: -# -# nmake -f arch\os2\Makefile.icc -# -# -# Copyright 1996-2001 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. - -ARCH = arch\os2 -FT_MAKEFILE = $(ARCH)\Makefile.icc -FT_MAKE = $(MAKE) -nologo - -CC = icc -CFLAGS = -O+ -Ti- -Tm- -Sa -W3 -Wpro- -Wcnd- -Q+ -Iarch\os2 -I. -Iextend - -# NOTE: Optimizations are discarded, as it seems that Visual Age -# is buggy when producing ttraster.obj. The resulting code -# crashes under some circumstances (performing vertical dropout -# control when rendering smoothed outlines)! - -TTFILE = $(ARCH)\os2file.c -TTMEMORY = .\ttmemory.c -TTMUTEX = .\ttmutex.c - -PORT = $(TTFILE) $(TTMEMORY) $(TTMUTEX) - -SRC_X = extend\ftxgasp.c extend\ftxkern.c extend\ftxpost.c \ - extend\ftxcmap.c extend\ftxwidth.c extend\ftxsbit.c \ - extend\ftxgsub.c extend\ftxgpos.c extend\ftxopen.c \ - extend\ftxgdef.c -OBJS_X = $(SRC_X:.c=.obj) - -SRC_M = ttapi.c ttcache.c ttcalc.c ttcmap.c ttdebug.c \ - ttgload.c ttinterp.c ttload.c ttobjs.c ttraster.c \ - ttextend.c $(PORT) -OBJS_M = $(SRC_M:.c=.obj) $(OBJS_X) - -SRC_S = $(ARCH)\freetype.c -OBJ_S = $(SRC_S:.c=.obj) -OBJS_S = $(OBJ_S) $(OBJS_X) - - -all: - $(FT_MAKE) -f $(FT_MAKEFILE) LIB_FILES="$(OBJS_S)" libttf.lib - -debug: - $(FT_MAKE) -f $(FT_MAKEFILE) LIB_FILES="$(OBJS_M)" libttf.lib - - -$(OBJ_S): $(SRC_S) $(SRC_M) - $(CC) -C $(CFLAGS) /Fo$@ $*.c - -$(OBJS_X): - $(CC) -C $(CFLAGS) /Fo$@ $*.c - -$(ARCH)\os2file.obj: - $(CC) -C $(CFLAGS) /Fo$@ $*.c - -libttf.lib: $(LIB_FILES) - !ilib /nologo /noignorecase /nobackup $@ +$?,, - -clean: - -del *.obj - -del extend\*.obj - -del arch\os2\*.obj - -distclean: clean - -del libttf.lib - -# end of Makefile.icc diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/os2/Makefile.wat b/Build/source/libs/freetype/freetype-1.5/lib/arch/os2/Makefile.wat deleted file mode 100644 index 6e4e911fe0e..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/os2/Makefile.wat +++ /dev/null @@ -1,98 +0,0 @@ -# This file is part of the FreeType project. -# -# This builds the Watcom library with Watcom's wcc386 under OS/2. -# -# You'll need Watcom's wmake. -# -# -# Invoke by "wmake -f arch\os2\Makefile.wat" when in the "lib" directory -# -# This will build "freetype\lib\libttf.lib" -# -# -# Copyright 1996-2001 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. - -ARCH = arch\os2 -FT_MAKEFILE = $(ARCH)\Makefile.wat -FT_MAKE = wmake -h - - -.EXTENSIONS: -.EXTENSIONS: .lib .obj .c .h -.obj:.;.\extend;.\$(ARCH) -.c:.;.\extend;.\$(ARCH) -.h:.;.\extend;.\$(ARCH) - -CC = wcc386 - -CCFLAGS = /otexanl+ /s /w5 /zq -Iarch\os2 -I. -Iextend - -TTFILE = .\ttfile.c -TTMEMORY = .\ttmemory.c -TTMUTEX = .\ttmutex.c - -TTFILE_OBJ = ttfile.obj -TTMEMORY_OBJ = ttmemory.obj -TTMUTEX_OBJ = ttmutex.obj - -PORT = $(TTFILE) $(TTMEMORY) $(TTMUTEX) -PORT_OBJS = $(TTFILE_OBJ) $(TTMEMORY_OBJ) $(TTMUTEX_OBJ) - -SRC_X = extend\ftxgasp.c extend\ftxkern.c extend\ftxpost.c & - extend\ftxcmap.c extend\ftxwidth.c extend\ftxsbit.c & - extend\ftxgsub.c extend\ftxgpos.c extend\ftxopen.c & - extend\ftxgdef.c - -OBJS_X = extend\ftxgasp.obj extend\ftxkern.obj extend\ftxpost.obj & - extend\ftxcmap.obj extend\ftxwidth.obj extend\ftxsbit.obj & - extend\ftxgsub.obj extend\ftxgpos.obj extend\ftxopen.obj & - extend\ftxgdef.obj - -SRC_M = ttapi.c ttcache.c ttcalc.c ttcmap.c & - ttgload.c ttinterp.c ttload.c ttobjs.c & - ttraster.c ttextend.c $(PORT) - -OBJS_M = ttapi.obj ttcache.obj ttcalc.obj ttcmap.obj & - ttgload.obj ttinterp.obj ttload.obj ttobjs.obj & - ttraster.obj ttextend.obj $(PORT_OBJS) $(OBJS_X) - -SRC_S = freetype.c -OBJ_S = freetype.obj -OBJS_S = $(OBJ_S) $(OBJS_X) - - -.c.obj: - $(CC) $(CCFLAGS) $[* /fo=$[*.obj - -all: .symbolic - $(FT_MAKE) -f $(FT_MAKEFILE) libttf.lib - -debug: .symbolic - $(FT_MAKE) -f $(FT_MAKEFILE) LIB_FILES="$(OBJS_M)" libttf.lib - - -libttf.lib: $(OBJS_M) - wlib -q -n libttf.lib $(OBJS_M) - -# is this correct? Know nothing about wmake and the Watcom compiler... -$(OBJ_S): $(SRC_S) $(SRC_M) - $(CC) $(CCFLAGS) $(SRC_S) /fo=$(OBJ_S) - -clean: .symbolic - @-erase $(OBJS_M) - @-erase *.err - -distclean: .symbolic clean - @-erase libttf.lib - -new: .symbolic - @-wtouch *.c - -# end of Makefile.wat diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/os2/freetype.c b/Build/source/libs/freetype/freetype-1.5/lib/arch/os2/freetype.c deleted file mode 100644 index 7a115cff672..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/os2/freetype.c +++ /dev/null @@ -1,32 +0,0 @@ -/* This file is part of the FreeType project */ - -/* Single file library component for OS/2 */ -#define TT_MAKE_OPTION_SINGLE_OBJECT - -/* first include common core components */ - -#include "ttapi.c" -#include "ttcache.c" -#include "ttcalc.c" -#include "ttcmap.c" -#include "ttdebug.c" -#include "ttgload.c" -#include "ttinterp.c" -#include "ttload.c" -#include "ttobjs.c" -#include "ttraster.c" - -/* then system-specific (or ANSI) components */ - -#include "os2file.c" -#include "ttmemory.c" -#include "ttmutex.c" - -/* the extensions are compiled separately, but we need to */ -/* include the file ttextend.c if we want to support them */ - -#ifdef TT_CONFIG_OPTION_EXTEND_ENGINE -#include "ttextend.c" -#endif - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/os2/ft_conf.h b/Build/source/libs/freetype/freetype-1.5/lib/arch/os2/ft_conf.h deleted file mode 100644 index fe3c04ba7a7..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/os2/ft_conf.h +++ /dev/null @@ -1,229 +0,0 @@ -/******************************************************************* - * - * ft_conf.h (OS/2 version) - * - * High-level interface specification. - * - * Copyright 1996-2002 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - * - * This file is used to contain the definition of several - * configuration-specific macros. - * - ******************************************************************/ - -/* we need the following because there are some typedefs in this file */ - -#ifndef FT_CONF_H -#define FT_CONF_H - - -/**********************************************************************/ -/* */ -/* We begin by a series of macros that are automatically set by the */ -/* 'configure' script on Unix. They must be set manually on OS/2, */ -/* so here they are : */ -/* */ -/**********************************************************************/ - -#define OS2 - -/* Define to empty if the keyword "const" does not work. */ -/* #undef const */ - -/* The number of bytes in a int. */ -/* OS/2 1.x needs editing here, by the way. ;-) */ -#define SIZEOF_INT 4 - -/* The number of bytes in a long. */ -#define SIZEOF_LONG 4 - -/* Define if you have the memcpy function. */ -#define HAVE_MEMCPY - -/* Define if you have the memmove function. */ -#define HAVE_MEMMOVE - -/* Define if you have the <stdlib.h> header file. */ -#define HAVE_STDLIB_H - -/* Define if you have the <unistd.h> header file. */ -#undef HAVE_UNISTD_H - -/* Define if you have the <libintl.h> header file. */ -/* #undef HAVE_LIBINTL_H */ - -/* Define if you have the <locale.h> header file. */ -/* Only meaningful if you have <libintl.h>. */ -/* #undef HAVE_LOCALE_H */ - -/**********************************************************************/ -/* */ -/* The following configuration macros can be tweaked manually by */ -/* a developer to turn on or off certain features or options in the */ -/* TrueType engine. This may be useful to tune it for specific */ -/* purposes.. */ -/* */ -/**********************************************************************/ - - -/*************************************************************************/ -/* Define this if the underlying operating system uses a different */ -/* character width than 8bit for file names. You must then also supply */ -/* a typedef declaration for defining 'TT_Text'. Default is off. */ - -/* #define HAVE_TT_TEXT */ - - -/*************************************************************************/ -/* Define this if you want to generate code to support engine extensions */ -/* Default is on, but if you're satisfied by the basic services provided */ -/* by the engine and need no extensions, undefine this configuration */ -/* macro to save a few more bytes. */ - -#define TT_CONFIG_OPTION_EXTEND_ENGINE - - -/*************************************************************************/ -/* Define this if you want to generate code to support gray-scaling, */ -/* a.k.a. font-smoothing or anti-aliasing. Default is on, but you can */ -/* disable it if you don't need it. */ - -#define TT_CONFIG_OPTION_GRAY_SCALING - - -/*************************************************************************/ -/* Define this if you want to compile a bytecode interpreter in the */ -/* TrueType driver. Note that there are important patent issues related */ -/* to the use of the interpreter. */ -/* */ -/* By undefining this, you will only compile the code necessary to load */ -/* TrueType glyphs without hinting. */ - -#undef TT_CONFIG_OPTION_BYTECODE_INTERPRETER - - -/*************************************************************************/ -/* Define this if you want to use a big 'switch' statement within the */ -/* bytecode interpreter. Because some non-optimizing compilers are not */ -/* able to produce jump tables from such statements, undefining this */ -/* configuration macro will generate the appropriate C jump table in */ -/* ttinterp.c. If you use an optimizing compiler, you should leave it */ -/* defined for better performance and code compactness.. */ - -#define TT_CONFIG_OPTION_INTERPRETER_SWITCH - - -/*************************************************************************/ -/* Define this if you want to build a 'static' version of the TrueType */ -/* bytecode interpreter. This will produce much bigger code, which */ -/* _may_ be faster on some architectures.. */ -/* */ -/* Do NOT DEFINE THIS is you build a thread-safe version of the engine */ - -#undef TT_CONFIG_OPTION_STATIC_INTERPRETER - - -/*************************************************************************/ -/* Define this if you want to build a 'static' version of the scan-line */ -/* converter (the component which in charge of converting outlines into */ -/* bitmaps). This will produce a bigger object file for "ttraster.c", */ -/* which _may_ be faster on some architectures.. */ -/* */ -/* Do NOT DEFINE THIS is you build a thread-safe version of the engine */ - -#undef TT_CONFIG_OPTION_STATIC_RASTER - - - -/*************************************************************************/ -/* Define TT_CONFIG_THREAD_SAFE if you want to build a thread-safe */ -/* version of the library. */ - -#undef TT_CONFIG_OPTION_THREAD_SAFE - - -/**********************************************************************/ -/* */ -/* The following macros are used to define the debug level, as well */ -/* as individual tracing levels for each component. There are */ -/* currently three modes of operation : */ -/* */ -/* - trace mode (define DEBUG_LEVEL_TRACE) */ -/* */ -/* The engine prints all error messages, as well as tracing */ -/* ones, filtered by each component's level */ -/* */ -/* - debug mode (define DEBUG_LEVEL_ERROR) */ -/* */ -/* Disable tracing, but keeps error output and assertion */ -/* checks. */ -/* */ -/* - release mode (don't define anything) */ -/* */ -/* Don't include error-checking or tracing code in the */ -/* engine's code. Ideal for releases. */ -/* */ -/* NOTE : */ -/* */ -/* Each component's tracing level is defined in its own source. */ -/* */ -/**********************************************************************/ - -/* Define if you want to use the tracing debug mode */ -#undef DEBUG_LEVEL_TRACE - -/* Define if you want to use the error debug mode - ignored if */ -/* DEBUG_LEVEL_TRACE is defined */ -#undef DEBUG_LEVEL_ERROR - - -/**************************************************************************/ -/* Definition of various integer sizes. These types are used by ttcalc */ -/* and ttinterp (for the 64-bit integers) only.. */ - -#if SIZEOF_INT == 4 - - typedef signed int TT_Int32; - typedef unsigned int TT_Word32; - -#elif SIZEOF_LONG == 4 - - typedef signed long TT_Int32; - typedef unsigned long TT_Word32; - -#else -#error "no 32bit type found" -#endif - -#if SIZEOF_LONG == 8 - -/* LONG64 must be defined when a 64-bit type is available */ -/* INT64 must then be defined to this type.. */ -#define LONG64 -#define INT64 long - -#else - -/* GCC provides the non-ANSI 'long long' 64-bit type. You can activate */ -/* by defining the TT_USE_LONG_LONG macro in 'ft_conf.h'. Note that this */ -/* will produce many -ansi warnings during library compilation. */ -#ifdef TT_USE_LONG_LONG - -#define LONG64 -#define INT64 long long - -#endif /* TT_USE_LONG_LONG */ -#endif - -#endif /* FT_CONF_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/os2/os2file.c b/Build/source/libs/freetype/freetype-1.5/lib/arch/os2/os2file.c deleted file mode 100644 index aebb7c1deea..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/os2/os2file.c +++ /dev/null @@ -1,1236 +0,0 @@ -/******************************************************************* - * - * os2file.c (OS2 version) 2.1 - * - * File I/O Component (body). - * - * Copyright 1996-2001 by Michal Necasek, - * David Turner, Robert Wilhelm, and Werner Lemberg - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - * NOTES: - * - * This implementation relies on the OS/2 file API. It was provided - * by the PM FreeType DLL author, Michal Necasek. - * - ******************************************************************/ - -#include "ttconfig.h" - -#include <os2.h> /* !Mike! */ - -#include <stdio.h> -#include <string.h> - -#ifdef HAVE_UNISTD_H -#include <unistd.h> -#endif - -#include "freetype.h" -#include "tttypes.h" -#include "ttdebug.h" -#include "ttengine.h" -#include "ttmutex.h" -#include "ttmemory.h" -#include "ttfile.h" /* our prototypes */ - - -/* For now, we don't define additional error messages in the core library */ -/* to report open-on demand errors. Define these errors as standard ones. */ - -#define TT_Err_Could_Not_ReOpen_File TT_Err_Could_Not_Open_File -#define TT_Err_Could_Not_ReSeek_File TT_Err_Could_Not_Open_File - - - /* This definition is mandatory for each file component! */ - FT_EXPORT_FUNC( const TFileFrame ) TT_Null_FileFrame = { NULL, 0, 0 }; - - -/* It has proven useful to do some bounds checks during development phase. */ -/* They should probably be undefined for speed reasons in a later release. */ - -#if 0 -#define CHECK_FRAME( frame, n ) \ - do { \ - if ( frame.cursor + n > frame.address + frame.size ) \ - Panic( "Frame boundary error!\n" ); \ - } while ( 0 ) -#else -#define CHECK_FRAME( frame, n ) \ - do { \ - } while ( 0 ) -#endif - - - /* Because a stream can be flushed, i.e., its file handle can be */ - /* closed to save system resources, we must keep the stream's file */ - /* pathname to be able to re-open it on demand when it is flushed. */ - - struct _TStream_Rec - { - Bool opened; /* is the stream handle opened ? */ - String* name; /* the file's pathname */ - Long position; /* current pos. within the file */ - - HFILE file; /* file handle !Mike! */ - Long base; /* stream base in file */ - Long size; /* stream size in file */ - }; - - typedef struct _TStream_Rec TStream_Rec; - typedef TStream_Rec* PStream_Rec; - - - /* We support embedded TrueType files by allowing them to be */ - /* inside any file, at any location, hence the 'base' argument. */ - /* Note, however, that the current implementation does not allow you */ - /* to specify a 'base' index when opening a file. */ - /* (will come later) */ - /* I still don't know if this will turn out useful... - DavidT */ - -#define STREAM2REC( x ) ( (TStream_Rec*)HANDLE_Val( x ) ) - - static TT_Error Stream_Activate ( PStream_Rec stream ); - static TT_Error Stream_Deactivate( PStream_Rec stream ); - - -#ifndef TT_CONFIG_OPTION_THREAD_SAFE - - /*******************************************************************/ - /*******************************************************************/ - /*******************************************************************/ - /**** ****/ - /**** N O N R E E N T R A N T I M P L E M E N T A T I O N ****/ - /**** ****/ - /*******************************************************************/ - /*******************************************************************/ - /*******************************************************************/ - - /* In non-reentrant builds, we allocate a single block where we'll */ - /* place all the frames smaller than FRAME_CACHE_SIZE, rather than */ - /* allocating a new block on each access. Bigger frames will be */ - /* malloced normally in the heap. */ - /* */ - /* See TT_Access_Frame() and TT_Forget_Frame() for details. */ - -#define FRAME_CACHE_SIZE 2048 - - /* The TFile_Component structure holds all the data that was */ - /* previously declared static or global in this component. */ - /* */ - /* It is accessible through the 'engine.file_component' */ - /* variable in re-entrant builds, or directly through the */ - /* static 'files' variable in other builds. */ - - struct _TFile_Component - { - TMutex lock; /* used by the thread-safe build only */ - Byte* frame_cache; /* frame cache */ - PStream_Rec stream; /* current stream */ - TFileFrame frame; /* current frame */ - }; - - typedef struct _TFile_Component TFile_Component; - - static TFile_Component files; - -#define CUR_Stream files.stream -#define CUR_Frame files.frame - -#define STREAM_VARS /* void */ -#define STREAM_VAR /* void */ - -/* The macro CUR_Stream denotes the current input stream. */ -/* Note that for the re-entrant version, the 'stream' name has been */ -/* chosen according to the macro STREAM_ARGS. */ - -/* The macro CUR_Frame denotes the current file frame. */ -/* Note that for the re-entrant version, the 'frame' name has been */ -/* chosen according to the macro FRAME_ARGS. */ - -/* The macro STREAM_VAR is used when calling public functions */ -/* that need an 'optional' stream argument. */ - - -/******************************************************************* - * - * Function : TTFile_Init - * - * Description : Initializes the File component. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TTFile_Init( PEngine_Instance engine ) - { - TT_Error error; - - MUTEX_Create( files.lock ); - files.stream = NULL; - ZERO_Frame( files.frame ); - - if ( ALLOC( files.frame_cache, FRAME_CACHE_SIZE ) ) - return error; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TTFile_Done - * - * Description : Finalizes the File component. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TTFile_Done( PEngine_Instance engine ) - { - FREE( files.frame_cache ); - MUTEX_Destroy( files.lock ); - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Use_Stream - * - * Description : Copies or duplicates a given stream. - * - * Input : org_stream original stream - * stream target stream (copy or duplicate) - * - * Output : Error code. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Use_Stream( TT_Stream org_stream, - TT_Stream* stream ) - { - MUTEX_Lock( files.lock ); /* lock file mutex */ - - *stream = org_stream; /* copy the stream */ - files.stream = STREAM2REC( org_stream ); /* set current stream */ - - Stream_Activate( files.stream ); - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Done_Stream - * - * Description : Releases a given stream. - * - * Input : stream target stream - * - * Output : Error code. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Done_Stream( TT_Stream* stream ) - { - HANDLE_Set( *stream, NULL ); - MUTEX_Release( files.lock ); - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Access_Frame - * - * Description : Notifies the component that we're going to read - * 'size' bytes from the current file position. - * This function should load/cache/map these bytes - * so that they will be addressed by the GET_xxx() - * functions easily. - * - * Input : size number of bytes to access. - * - * Output : SUCCESS on success. FAILURE on error. - * - * Notes: The function fails if the byte range is not within the - * the file, or if there is not enough memory to cache - * the bytes properly (which usually means that `size' is - * too big in both cases). - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Access_Frame( STREAM_ARGS FRAME_ARGS Long size ) - { - TT_Error error; - - - if ( CUR_Frame.address != NULL ) - return TT_Err_Nested_Frame_Access; - - if ( size <= FRAME_CACHE_SIZE ) - { - /* use the cache */ - CUR_Frame.address = files.frame_cache; - CUR_Frame.size = FRAME_CACHE_SIZE; - } - else - { - if ( ALLOC( CUR_Frame.address, size ) ) - return error; - CUR_Frame.size = size; - } - - error = TT_Read_File( STREAM_VARS (void*)CUR_Frame.address, size ); - if ( error ) - { - if ( size > FRAME_CACHE_SIZE ) - FREE( CUR_Frame.address ); - CUR_Frame.address = NULL; - CUR_Frame.size = 0; - } - - CUR_Frame.cursor = CUR_Frame.address; - return error; - } - - -/******************************************************************* - * - * Function : TT_Check_And_Access_Frame - * - * Description : Notifies the component that we're going to read - * `size' bytes from the current file position. - * This function should load/cache/map these bytes - * so that they will be addressed by the GET_xxx() - * functions easily. - * - * Input : size number of bytes to access. - * - * Output : SUCCESS on success. FAILURE on error. - * - * Notes: The function truncates `size' if the byte range is not - * within the file. - * - * It will fail if there is not enough memory to cache - * the bytes properly (which usually means that `size' is - * too big). - * - * It will fail if you make two consecutive calls - * to TT_Access_Frame(), without a TT_Forget_Frame() between - * them. - * - * The only difference with TT_Access_Frame() is that we - * check that the frame is within the current file. We - * otherwise truncate it. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Check_And_Access_Frame( STREAM_ARGS FRAME_ARGS Long size ) - { - TT_Error error; - Long readBytes, requested; - - - if ( CUR_Frame.address != NULL ) - return TT_Err_Nested_Frame_Access; - - if ( size <= FRAME_CACHE_SIZE ) - { - /* use the cache */ - CUR_Frame.address = files.frame_cache; - CUR_Frame.size = FRAME_CACHE_SIZE; - } - else - { - if ( ALLOC( CUR_Frame.address, size ) ) - return error; - CUR_Frame.size = size; - } - - requested = size; - readBytes = CUR_Stream->size - TT_File_Pos( STREAM_VAR ); - if ( size > readBytes ) - size = readBytes; - - error = TT_Read_File( STREAM_VARS (void*)CUR_Frame.address, size ); - if ( error ) - { - if ( requested > FRAME_CACHE_SIZE ) - FREE( CUR_Frame.address ); - CUR_Frame.address = NULL; - CUR_Frame.size = 0; - } - - CUR_Frame.cursor = CUR_Frame.address; - return error; - } - - -/******************************************************************* - * - * Function : TT_Forget_Frame - * - * Description : Releases a cached frame after reading. - * - * Input : None - * - * Output : SUCCESS on success. FAILURE on error. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Forget_Frame( FRAME_ARG ) - { - if ( CUR_Frame.address == NULL ) - return TT_Err_Nested_Frame_Access; - - if ( CUR_Frame.size > FRAME_CACHE_SIZE ) - FREE( CUR_Frame.address ); - - ZERO_Frame( CUR_Frame ); - - return TT_Err_Ok; - } - - -#else /* TT_CONFIG_OPTION_THREAD_SAFE */ - - /*******************************************************************/ - /*******************************************************************/ - /*******************************************************************/ - /******** ********/ - /******** R E E N T R A N T I M P L E M E N T A T I O N ********/ - /******** ********/ - /*******************************************************************/ - /*******************************************************************/ - /*******************************************************************/ - -/* a simple macro to access the file component's data */ -#define files ( *((TFile_Component*)engine.file_component) ) - -#define CUR_Stream STREAM2REC( stream ) /* re-entrant macros */ -#define CUR_Frame (*frame) - -#define STREAM_VARS stream, -#define STREAM_VAR stream - - -/******************************************************************* - * - * Function : TTFile_Init - * - * Description : Initializes the File component. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TTFile_Init( PEngine_Instance engine ) - { - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TTFile_Done - * - * Description : Finalizes the File component. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TTFile_Done( PEngine_Instance engine ) - { - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Use_Stream - * - * Description : Duplicates a stream for a new usage. - * - * Input : input_stream source stream to duplicate - * copy address of target duplicate stream - * - * Output : error code. - * The target stream is set to NULL in case of failure. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Use_Stream( TT_Stream input_stream, - TT_Stream* copy ) - { - PStream_Rec rec = STREAM2REC( input_stream ); - - return TT_Open_Stream( rec->name, copy ); - } - - -/******************************************************************* - * - * Function : TT_Done_Stream - * - * Description : Releases a given stream. - * - * Input : stream target stream - * - * Output : - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Done_Stream( TT_Stream* stream ) - { - return TT_Close_Stream( stream ); - } - - -/******************************************************************* - * - * Function : TT_Access_Frame - * - * Description : Notifies the component that we're going to read - * 'size' bytes from the current file position. - * This function should load/cache/map these bytes - * so that they will be addressed by the GET_xxx() - * functions easily. - * - * Input : size number of bytes to access. - * - * Output : SUCCESS on success. FAILURE on error. - * - * Notes: The function fails if the byte range is not within the - * the file, or if there is not enough memory to cache - * the bytes properly (which usually means that `size' is - * too big in both cases). - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Access_Frame( STREAM_ARGS FRAME_ARGS int size ) - { - TT_Error error; - - - if ( CUR_Frame.address != NULL ) - return TT_Err_Nested_Frame_Access; - - if ( ALLOC( CUR_Frame.address, size ) ) - return error; - CUR_Frame.size = size; - - error = TT_Read_File( STREAM_VARS (void*)CUR_Frame.address, size ); - if ( error ) - { - FREE( CUR_Frame.address ); - CUR_Frame.size = 0; - } - - CUR_Frame.cursor = CUR_Frame.address; - return error; - } - - -/******************************************************************* - * - * Function : TT_Check_And_Access_Frame - * - * Description : Notifies the component that we're going to read - * `size' bytes from the current file position. - * This function should load/cache/map these bytes - * so that they will be addressed by the GET_xxx() - * functions easily. - * - * Input : size number of bytes to access. - * - * Output : SUCCESS on success. FAILURE on error. - * - * Notes: The function truncates `size' if the byte range is not - * within the file. - * - * It will fail if there is not enough memory to cache - * the bytes properly (which usually means that `size' is - * too big). - * - * It will fail if you make two consecutive calls - * to TT_Access_Frame(), without a TT_Forget_Frame() between - * them. - * - * The only difference with TT_Access_Frame() is that we - * check that the frame is within the current file. We - * otherwise truncate it. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Check_And_Access_Frame( STREAM_ARGS FRAME_ARGS int size ) - { - TT_Error error; - Long readBytes; - - - if ( CUR_Frame.address != NULL ) - return TT_Err_Nested_Frame_Access; - - if ( ALLOC( CUR_Frame.address, size ) ) - return error; - CUR_Frame.size = size; - - readBytes = CUR_Stream->size - TT_File_Pos( STREAM_VAR ); - if ( size > readBytes ) - size = readBytes; - - error = TT_Read_File( STREAM_VARS (void*)CUR_Frame.address, size ); - if ( error ) - { - FREE( CUR_Frame.address ); - CUR_Frame.size = 0; - } - - CUR_Frame.cursor = CUR_Frame.address; - return error; - } - - -/******************************************************************* - * - * Function : TT_Forget_Frame - * - * Description : Releases a cached frame after reading. - * - * Input : None - * - * Output : SUCCESS on success. FAILURE on error. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Forget_Frame( FRAME_ARG ) - { - if ( CUR_Frame.address == NULL ) - return TT_Err_Nested_Frame_Access; - - FREE( CUR_Frame.address ); - ZERO_Frame( CUR_Frame ); - - return TT_Err_Ok; - } - -#endif /* TT_CONFIG_OPTION_THREAD_SAFE */ - - - /*******************************************************************/ - /*******************************************************************/ - /*******************************************************************/ - /*********** ***********/ - /*********** C O M M O N I M P L E M E N T A T I O N ***********/ - /*********** ***********/ - /*******************************************************************/ - /*******************************************************************/ - /*******************************************************************/ - -/******************************************************************* - * - * Function : Stream_Activate - * - * Description : activates a stream, this will either: - * - open a new file handle if the stream is closed - * - move the stream to the head of the linked list - * - * Input : stream the stream to activate - * - * Output : error condition. - * - * Note : this function is also called with fresh new streams - * created by TT_Open_Stream(). They have their 'size' - * field set to -1. - * - ******************************************************************/ - - static TT_Error Stream_Activate( PStream_Rec stream ) - { - ULONG ulAction; /* !Mike! */ - - if ( !stream->opened ) - { -#if 0 - if ( !(stream->file = fopen( stream->name, "rb" )) ) /* !Mike! */ -#endif - -/* XXX : Strange. GCC/EMX wants an (Byte*) for the file name? */ -#ifdef __EMX__ - - if ( DosOpen( (Byte*)stream->name, &(stream->file), - &ulAction, 0, - 0, OPEN_ACTION_OPEN_IF_EXISTS, - OPEN_SHARE_DENYNONE | OPEN_ACCESS_READONLY, NULL ) ) - return TT_Err_Could_Not_ReOpen_File; - -#else - - if ( DosOpen( stream->name, &(stream->file), - &ulAction, 0, - 0, OPEN_ACTION_OPEN_IF_EXISTS, - OPEN_SHARE_DENYNONE | OPEN_ACCESS_READONLY, NULL ) ) - return TT_Err_Could_Not_ReOpen_File; - -#endif /* __EMX__ */ - - stream->opened = TRUE; - - /* A newly created stream has a size field of -1 */ - if ( stream->size < 0 ) - { -#if 0 - fseek( stream->file, 0, SEEK_END ); /* !Mike! */ - stream->size = ftell( stream->file ); -#endif - - DosSetFilePtr( stream->file, 0, FILE_END, (ULONG *)&(stream->size) ); -#if 0 - fseek( stream->file, 0, SEEK_SET ); -#endif - - DosSetFilePtr( stream->file, 0, FILE_BEGIN, &ulAction ); - } - - /* Reset cursor in file */ - if ( stream->position ) - { -#if 0 /* !Mike! */ - if ( fseek( stream->file, stream->position, SEEK_SET ) != 0 ) -#endif - - if ( DosSetFilePtr( stream->file, stream->position, - FILE_BEGIN, &ulAction ) ) - { - /* error during seek */ -#if 0 - fclose( stream->file ); /* !Mike! */ -#endif - - DosClose( stream->file ); - stream->opened = FALSE; - return TT_Err_Could_Not_ReSeek_File; - } - } - } - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Stream_DeActivate - * - * Description : deactivates a stream, this will: - * - close its file handle if it was opened - * - remove it from the opened list if necessary - * - * Input : stream the stream to deactivate - * - * Output : Error condition - * - * Note : the function is called whenever a stream is deleted - * (_not_ when a stream handle's is closed due to an - * activation). However, the stream record isn't - * destroyed by it... - * - ******************************************************************/ - - static TT_Error Stream_Deactivate( PStream_Rec stream ) - { - if ( stream->opened ) - { - /* Save its current position within the file */ -#if 0 - stream->position = ftell( stream->file ); /* !Mike! */ -#endif - - DosSetFilePtr( stream->file, 0, FILE_CURRENT, - (ULONG *)&(stream->position) ); -#if 0 - fclose( stream->file ); /* !Mike! */ -#endif - - DosClose( stream->file ); - stream->file = 0; - stream->opened = FALSE; - } - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Stream_Size - * - * Description : Returns the length of a given stream, even if it - * is flushed. - * - * Input : stream the stream - * - * Output : length of stream in bytes. - * - ******************************************************************/ - - FT_EXPORT_FUNC( Long ) - TT_Stream_Size( TT_Stream stream ) - { - PStream_Rec rec = STREAM2REC( stream ); - - - if ( rec ) - return rec->size; - else - return 0; /* invalid stream - return 0 */ - } - - -/******************************************************************* - * - * Function : TT_Open_Stream - * - * Description : Opens the font file and saves the total file size. - * - * Input : error address of stream's error variable - * (re-entrant build only) - * filepathname pathname of the file to open - * stream address of target TT_Stream structure - * - * Output : SUCCESS on sucess, FAILURE on error. - * The target stream is set to -1 in case of failure. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TT_Open_Stream( const String* filepathname, - TT_Stream* stream ) - { - int len; - TT_Error error; - PStream_Rec stream_rec; - - - if ( ALLOC( *stream, sizeof ( TStream_Rec ) ) ) - return error; - - stream_rec = STREAM2REC( *stream ); - - stream_rec->file = NULLHANDLE; /* !Mike! */ - stream_rec->size = -1; - stream_rec->base = 0; - stream_rec->opened = FALSE; - stream_rec->position = 0; - - len = strlen( filepathname ) + 1; - if ( ALLOC( stream_rec->name, len ) ) - goto Fail; - - strncpy( (String*)stream_rec->name, filepathname, len ); - - error = Stream_Activate( stream_rec ); - if ( error ) - goto Fail_Activate; - -#ifndef TT_CONFIG_OPTION_THREAD_SAFE - CUR_Stream = stream_rec; -#endif - - return TT_Err_Ok; - - Fail_Activate: - FREE( stream_rec->name ); - Fail: - FREE( stream_rec ); - return error; - } - - -/******************************************************************* - * - * Function : TT_Close_Stream - * - * Description : Closes a stream. - * - * Input : stream address of target TT_Stream structure - * - * Output : SUCCESS (always). - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TT_Close_Stream( TT_Stream* stream ) - { - PStream_Rec rec = STREAM2REC( *stream ); - - - Stream_Deactivate( rec ); - FREE( rec->name ); - FREE( rec ); - - HANDLE_Set( *stream, NULL ); - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Flush_Stream - * - * Description : Flushes a stream, i.e., closes its file handle. - * - * Input : stream address of target TT_Stream structure - * - * Output : Error code - * - * NOTE : Never flush the current opened stream. This means that - * you should _never_ call this function between a - * TT_Use_Stream() and a TT_Done_Stream()! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Flush_Stream( TT_Stream* stream ) - { - PStream_Rec rec = STREAM2REC( *stream ); - - - if ( rec ) - { - Stream_Deactivate( rec ); - return TT_Err_Ok; - } - else - return TT_Err_Invalid_Argument; - } - - -/******************************************************************* - * - * Function : TT_Seek_File - * - * Description : Seeks the file cursor to a different position. - * - * Input : position new position in file - * - * Output : SUCCESS on success. FAILURE if out of range. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Seek_File( STREAM_ARGS long position ) - { - ULONG ibActual; /* !Mike! */ - - - position += CUR_Stream->base; - -#if 0 - if ( fseek( CUR_Stream->file, position, SEEK_SET ) ) /* !Mike! */ -#endif - - if ( DosSetFilePtr( CUR_Stream->file, position, FILE_BEGIN , &ibActual ) ) - return TT_Err_Invalid_File_Offset; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Skip_File - * - * Description : Skips forward the file cursor. - * - * Input : distance number of bytes to skip - * - * Output : see TT_Seek_File() - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Skip_File( STREAM_ARGS long distance ) - { - ULONG ibActual; /* !Mike! */ - - -#if 0 - return TT_Seek_File( STREAM_VARS ftell( CUR_Stream->file ) - - CUR_Stream->base + distance ); /* !Mike! */ -#endif - - DosSetFilePtr( CUR_Stream->file, 0, FILE_CURRENT, &ibActual ); - return TT_Seek_File( STREAM_VARS ibActual - CUR_Stream->base + distance ); - } - - -/******************************************************************* - * - * Function : TT_Read_File - * - * Description : Reads a chunk of the file and copies it to memory. - * - * Input : buffer target buffer - * count length in bytes to read - * - * Output : SUCCESS on success. FAILURE if out of range. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Read_File( STREAM_ARGS void* buffer, long count ) - { - ULONG cbActual; /* !Mike! */ - -#if 0 /* !Mike! */ - if ( fread( buffer, 1, count, CUR_Stream->file ) != (unsigned long)count ) -#endif - - DosRead( CUR_Stream->file, buffer, count, &cbActual ); - if ( cbActual != (unsigned long)count ) - return TT_Err_Invalid_File_Read; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Read_At_File - * - * Description : Reads file at a specified position. - * - * Input : position position to seek to before read - * buffer target buffer - * count number of bytes to read - * - * Output : SUCCESS on success. FAILURE if error. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Read_At_File( STREAM_ARGS long position, - void* buffer, - long count ) - { - TT_Error error; - - - if ( ( error = TT_Seek_File( STREAM_VARS position ) ) || - ( error = TT_Read_File( STREAM_VARS buffer, count ) ) ) - return error; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_File_Pos - * - * Description : Returns current file seek pointer. - * - * Input : none - * - * Output : current file position - * - ******************************************************************/ - - FT_EXPORT_FUNC( Long ) - TT_File_Pos( STREAM_ARG ) - { - ULONG ibActual; /* !Mike! */ - - -#if 0 - return ftell( CUR_Stream->file ) - CUR_Stream->base; /* !Mike! */ -#endif - - DosSetFilePtr( CUR_Stream->file, 0, FILE_CURRENT, &ibActual ); - return ibActual - CUR_Stream->base; - } - - -/******************************************************************* - * - * Function : GET_Byte - * - * Description : Extracts a byte from the current file frame. - * - * Input : None or current frame - * - * Output : Extracted Byte. - * - ******************************************************************/ -#if 0 - FT_EXPORT_FUNC( Byte ) - TT_Get_Byte( FRAME_ARG ) - { - CHECK_FRAME( CUR_Frame, 1 ); - - return (Byte)(*CUR_Frame.cursor++); - } -#endif - -/******************************************************************* - * - * Function : GET_Char - * - * Description : Extracts a signed byte from the current file frame. - * - * Input : None or current frame - * - * Output : Extracted char. - * - ******************************************************************/ - - FT_EXPORT_FUNC( Char ) - TT_Get_Char( FRAME_ARG ) - { - CHECK_FRAME( CUR_Frame, 1 ); - - return (Char)(*CUR_Frame.cursor++); - } - - -/******************************************************************* - * - * Function : GET_Short - * - * Description : Extracts a short from the current file frame. - * - * Input : None or current frame - * - * Output : Extracted short. - * - ******************************************************************/ - - FT_EXPORT_FUNC( short ) - TT_Get_Short( FRAME_ARG ) - { - short getshort; - - - CHECK_FRAME( CUR_Frame, 2 ); - - getshort = ((short)CUR_Frame.cursor[0] << 8) | - (short)CUR_Frame.cursor[1]; - - CUR_Frame.cursor += 2; - - return getshort; - } - - -/******************************************************************* - * - * Function : GET_UShort - * - * Description : Extracts an unsigned short from the frame. - * - * Input : None or current frame - * - * Output : Extracted ushort. - * - ******************************************************************/ -#if 0 - FT_EXPORT_FUNC( unsigned ) - short TT_Get_UShort( FRAME_ARG ) - { - unsigned short getshort; - - - CHECK_FRAME( CUR_Frame, 2 ); - - getshort = ((unsigned short)CUR_Frame.cursor[0] << 8) | - (unsigned short)CUR_Frame.cursor[1]; - - CUR_Frame.cursor += 2; - - return getshort; - } -#endif - -/******************************************************************* - * - * Function : GET_Long - * - * Description : Extracts a long from the frame. - * - * Input : None or current frame - * - * Output : Extracted long. - * - ******************************************************************/ - - FT_EXPORT_FUNC( long ) - TT_Get_Long( FRAME_ARG ) - { - long getlong; - - - CHECK_FRAME( CUR_Frame, 4 ); - - getlong = ((long)CUR_Frame.cursor[0] << 24) | - ((long)CUR_Frame.cursor[1] << 16) | - ((long)CUR_Frame.cursor[2] << 8 ) | - (long)CUR_Frame.cursor[3]; - - CUR_Frame.cursor += 4; - - return getlong; - } - - -/******************************************************************* - * - * Function : GET_ULong - * - * Description : Extracts an unsigned long from the frame. - * - * Input : None - * - * Output : Extracted ulong. - * - ******************************************************************/ -#if 0 - FT_EXPORT_FUNC( unsigned ) - long TT_Get_ULong( FRAME_ARG ) - { - unsigned long getlong; - - - CHECK_FRAME( CUR_Frame, 4 ); - - getlong = ( ((unsigned long)CUR_Frame.cursor[0] << 24) | - ((unsigned long)CUR_Frame.cursor[1] << 16) | - ((unsigned long)CUR_Frame.cursor[2] << 8 ) | - (unsigned long)CUR_Frame.cursor[3] ); - - CUR_Frame.cursor += 4; - - return getlong; - } -#endif - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/unix/.cvsignore b/Build/source/libs/freetype/freetype-1.5/lib/arch/unix/.cvsignore deleted file mode 100644 index f3c7a7c5da6..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/unix/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -Makefile diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/unix/.cvsignore.delete b/Build/source/libs/freetype/freetype-1.5/lib/arch/unix/.cvsignore.delete deleted file mode 100644 index e69de29bb2d..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/unix/.cvsignore.delete +++ /dev/null diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/unix/Makefile.in b/Build/source/libs/freetype/freetype-1.5/lib/arch/unix/Makefile.in deleted file mode 100644 index 0875a7a8fda..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/unix/Makefile.in +++ /dev/null @@ -1,256 +0,0 @@ -# This file is part of the FreeType project. -# -# lib/arch/unix/Makefile.in -# -# -# Copyright 1996-2001 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. - -ARCH = arch/unix -FT_MAKEFILE = $(ARCH)/Makefile - -RM = @RM@ -RMF = @RM@ -f -RMDIR = @RMDIR@ -LN_S = @LN_S@ - -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ - -VPATH = @srcdir@/../.. -srcdir = @srcdir@/../.. - -top_builddir=.. - -CC = @CC@ -CPP = @CPP@ - -LIBTOOL = $(top_builddir)/libtool -MKINSTALLDIRS = $(srcdir)/../mkinstalldirs - -version_info = @version_info@ - -include $(top_builddir)/MakeSub - -############### PORTABILITY COMPONENTS ######################## - -# location of memory component -MEMSRC = ttmemory.c - -# location of file component -FILESRC = @TT_FILE_COMPONENT@ - -# location of mutex component -MUTEXSRC = ttmutex.c - -# location of default extensions -FTEXTDIR = $(srcdir)/extend - - -# default extensions sources -EXTSRC = $(FTEXTDIR)/ftxkern.c \ - $(FTEXTDIR)/ftxgasp.c \ - $(FTEXTDIR)/ftxpost.c \ - $(FTEXTDIR)/ftxcmap.c \ - $(FTEXTDIR)/ftxsbit.c \ - $(FTEXTDIR)/ftxwidth.c \ - $(FTEXTDIR)/ftxerr18.c \ - $(FTEXTDIR)/ftxgsub.c \ - $(FTEXTDIR)/ftxgpos.c \ - $(FTEXTDIR)/ftxgdef.c \ - $(FTEXTDIR)/ftxopen.c - -EXTOBJ = ftxkern.lo \ - ftxgasp.lo \ - ftxpost.lo \ - ftxcmap.lo \ - ftxsbit.lo \ - ftxwidth.lo \ - ftxerr18.lo \ - ftxgsub.lo \ - ftxgpos.lo \ - ftxgdef.lo \ - ftxopen.lo - -# all engine sources -SRC_M = $(srcdir)/ttapi.c \ - $(srcdir)/ttcache.c \ - $(srcdir)/ttcalc.c \ - $(srcdir)/ttcmap.c \ - $(srcdir)/ttdebug.c \ - $(srcdir)/ttextend.c \ - $(srcdir)/ttgload.c \ - $(srcdir)/ttinterp.c \ - $(srcdir)/ttload.c \ - $(srcdir)/ttobjs.c \ - $(srcdir)/ttraster.c \ - $(srcdir)/$(FILESRC) \ - $(srcdir)/$(MEMSRC) \ - $(srcdir)/$(MUTEXSRC) -SRC_S = $(srcdir)/$(ARCH)/freetype.c - -# all header files -HEADERS = $(srcdir)/freetype.h \ - $(srcdir)/fterrid.h \ - $(srcdir)/ftnameid.h \ - $(FTEXTDIR)/ftxkern.h \ - $(FTEXTDIR)/ftxgasp.h \ - $(FTEXTDIR)/ftxcmap.h \ - $(FTEXTDIR)/ftxsbit.h \ - $(FTEXTDIR)/ftxpost.h \ - $(FTEXTDIR)/ftxwidth.h \ - $(FTEXTDIR)/ftxerr18.h \ - $(FTEXTDIR)/ftxgsub.h \ - $(FTEXTDIR)/ftxgpos.h \ - $(FTEXTDIR)/ftxgdef.h \ - $(FTEXTDIR)/ftxopen.h - -# all engine objects -OBJ_M = ttapi.lo \ - ttcache.lo \ - ttcalc.lo \ - ttcmap.lo \ - ttdebug.lo \ - ttextend.lo \ - ttgload.lo \ - ttinterp.lo \ - ttload.lo \ - ttobjs.lo \ - ttraster.lo \ - file.lo \ - memory.lo \ - mutex.lo \ - $(EXTOBJ) -OBJ_S = freetype.lo $(EXTOBJ) - - -# include paths -INCLUDES = -I. -I$(top_builddir) -I$(srcdir) -I$(FTEXTDIR) - -# C flags -CFLAGS = @CFLAGS@ @XX_CFLAGS@ -CPPFLAGS = @CPPFLAGS@ -FT_CFLAGS = $(CFLAGS) $(INCLUDES) - -# linker flags -FT_LIBS = @LIBS@ - -# i18n stuff -LOCALEDIR = @LOCALEDIR@ - - -all: do_link - $(MAKE) -f $(FT_MAKEFILE) LIB_FILES="$(OBJ_S)" libttf.la - -debug: do_link - $(MAKE) -f $(FT_MAKEFILE) LIB_FILES="$(OBJ_M)" libttf.la - - -do_link: - -$(RMF) memory.c file.c mutex.c - $(LN_S) $(srcdir)/$(MEMSRC) memory.c - $(LN_S) $(srcdir)/$(FILESRC) file.c - $(LN_S) $(srcdir)/$(MUTEXSRC) mutex.c - - -.SUFFIXES: .lo -.c.lo: - $(LIBTOOL) --mode=compile $(CC) -c $(FT_CFLAGS) $< - -ftxkern.lo: $(FTEXTDIR)/ftxkern.c - $(LIBTOOL) --mode=compile $(CC) -c $(FT_CFLAGS) $(FTEXTDIR)/ftxkern.c - -ftxgasp.lo: $(FTEXTDIR)/ftxgasp.c - $(LIBTOOL) --mode=compile $(CC) -c $(FT_CFLAGS) $(FTEXTDIR)/ftxgasp.c - -ftxpost.lo: $(FTEXTDIR)/ftxpost.c - $(LIBTOOL) --mode=compile $(CC) -c $(FT_CFLAGS) $(FTEXTDIR)/ftxpost.c - -ftxcmap.lo: $(FTEXTDIR)/ftxcmap.c - $(LIBTOOL) --mode=compile $(CC) -c $(FT_CFLAGS) $(FTEXTDIR)/ftxcmap.c - -ftxsbit.lo: $(FTEXTDIR)/ftxsbit.c - $(LIBTOOL) --mode=compile $(CC) -c $(FT_CFLAGS) $(FTEXTDIR)/ftxsbit.c - -ftxwidth.lo: $(FTEXTDIR)/ftxwidth.c - $(LIBTOOL) --mode=compile $(CC) -c $(FT_CFLAGS) $(FTEXTDIR)/ftxwidth.c - -ftxerr18.lo: $(FTEXTDIR)/ftxerr18.c - $(LIBTOOL) --mode=compile $(CC) -c $(FT_CFLAGS) \ - -DLOCALEDIR='"$(LOCALEDIR)"' \ - $(FTEXTDIR)/ftxerr18.c - -ftxgsub.lo: $(FTEXTDIR)/ftxgsub.c - $(LIBTOOL) --mode=compile $(CC) -c $(FT_CFLAGS) $(FTEXTDIR)/ftxgsub.c - -ftxgpos.lo: $(FTEXTDIR)/ftxgpos.c - $(LIBTOOL) --mode=compile $(CC) -c $(FT_CFLAGS) $(FTEXTDIR)/ftxgpos.c - -ftxgdef.lo: $(FTEXTDIR)/ftxgdef.c - $(LIBTOOL) --mode=compile $(CC) -c $(FT_CFLAGS) $(FTEXTDIR)/ftxgdef.c - -ftxopen.lo: $(FTEXTDIR)/ftxopen.c - $(LIBTOOL) --mode=compile $(CC) -c $(FT_CFLAGS) $(FTEXTDIR)/ftxopen.c - -freetype.lo: $(SRC_S) $(SRC_M) - $(LIBTOOL) --mode=compile $(CC) -c $(FT_CFLAGS) \ - -DLOCALEDIR='"$(LOCALEDIR)"' \ - -DTT_MAKE_OPTION_SINGLE_OBJECT \ - $(SRC_S) - -libttf.la: $(LIB_FILES) - $(LIBTOOL) --mode=link $(CC) -o libttf.la $(LIB_FILES) \ - -rpath $(libdir) \ - -version-info $(version_info) $(FT_LIBS) - -install: libttf.la - $(MKINSTALLDIRS) $(libdir) $(includedir)/freetype - $(LIBTOOL) --mode=install $(INSTALL) libttf.la $(libdir) - -for P in $(HEADERS) ; do \ - $(INSTALL_DATA) $$P $(includedir)/freetype ; \ - done - -uninstall: - -$(LIBTOOL) --mode=uninstall $(RM) $(libdir)/libttf.la - -$(RMF) $(includedir)/freetype/* - -$(RMDIR) $(includedir)/freetype - -clean: - -$(RMF) $(OBJ_S) $(OBJ_M) *.o - -distclean: clean - -$(RMF) file.c memory.c mutex.c - -$(RMF) libttf.la - -$(RMF) *.orig *~ core *.core - -$(RMF) $(ARCH)/Makefile - -$(RMF) .libs/* - -$(RMDIR) .libs - -depend: do_link - (echo '/^#.* PUT NO STUFF BELOW/,$$d' ; echo w ; echo q) | \ - ed - $(ARCH)/Makefile - echo '# Dependencies generated by make depend: PUT NO STUFF BELOW' \ - >> $(ARCH)/Makefile - for file in $(SRC_S) $(SRC_M) $(EXTSRC) ; do \ - $(CPP) $(CPPFLAGS) $(INCLUDES) $$file | \ - sed -n -e 's|^# [1-9][0-9]* "\([^/].*\.h\)".*|\1|p' \ - -e 's|^# [1-9][0-9]* "\($(srcdir)/.*\.h\)".*|\1|p' | \ - sed -e 's|/\./|.|g' -e "s/^/`basename $$file .c`.lo: /" ; \ - done | \ - sort -u | \ - awk '{ if (LINE == 1) \ - { line = last = $$1 } \ - else if ($$1 != last) \ - { print line ; line = last = $$1 } \ - line = line " " $$2 } \ - END { print line }' >> $(ARCH)/Makefile - -.PHONY: all debug do_link install uninstall clean distclean depend - -# Dependencies generated by make depend: PUT NO STUFF BELOW diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/unix/freetype.c b/Build/source/libs/freetype/freetype-1.5/lib/arch/unix/freetype.c deleted file mode 100644 index 9a4860dbd2c..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/unix/freetype.c +++ /dev/null @@ -1,27 +0,0 @@ -/* This file is part of the FreeType project */ - -/* Single object library component for Unix */ - -#include "ttapi.c" -#include "ttcache.c" -#include "ttcalc.c" -#include "ttcmap.c" -#include "ttdebug.c" -#include "ttgload.c" -#include "ttinterp.c" -#include "ttload.c" -#include "ttobjs.c" -#include "ttraster.c" - -/* The Makefile creates proper links to following three files */ - -#include "file.c" -#include "memory.c" -#include "mutex.c" - -#ifdef TT_CONFIG_OPTION_EXTEND_ENGINE -#include "ttextend.c" -#endif - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/unix/ttmmap.c b/Build/source/libs/freetype/freetype-1.5/lib/arch/unix/ttmmap.c deleted file mode 100644 index 38896bd310d..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/unix/ttmmap.c +++ /dev/null @@ -1,1028 +0,0 @@ -/******************************************************************* - * - * ttmmap.c 2.0 - * - * Memory-Mapped file component ( replaces ttfile.c ). - * - * Copyright 1996-2001 by - * David Turner, Robert Wilhelm, and Werner Lemberg - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - * Changes between 2.0 and 1.3 : - * - * - adopted new design/separation introduced in ttfile.c 2.0 - * - ******************************************************************/ - -#include "ttconfig.h" - -#include <stdio.h> -#include <string.h> - -#ifdef HAVE_UNISTD_H -#include <unistd.h> -#endif - -#include <sys/mman.h> -#ifndef MAP_FILE -#define MAP_FILE 0x00 -#endif - -/* - * The prototype for munmap() is not provided on SunOS. This needs to - * have a check added later to see if the GNU C library is being used. - * If so, then this prototype is not needed. - */ -#if defined(__sun__) && !defined(SVR4) && !defined(__SVR4) - extern int munmap( caddr_t addr, int len ); -#endif - -#include <sys/stat.h> -#ifdef HAVE_FCNTL_H -#include <fcntl.h> -#endif - - -#include "freetype.h" -#include "tttypes.h" -#include "ttdebug.h" -#include "ttengine.h" -#include "ttmutex.h" -#include "ttmemory.h" -#include "ttfile.h" /* our prototypes */ - - /* This definition is mandatory for each file component! */ - FT_EXPORT_FUNC( const TFileFrame ) - TT_Null_FileFrame = { NULL, 0, 0 }; - - /* It has proven useful to do some bounds checks during */ - /* development phase. Define DEBUG_FILE when compiling */ - /* this component to enable them. */ - -#ifdef DEBUG_FILE -#define CHECK_FRAME( frame, n ) \ - do { \ - if ( frame.cursor + n > frame.address + frame.size ) \ - Panic( "Frame boundary error!\n" ); \ - } while ( 0 ) -#else -#define CHECK_FRAME( frame, n ) \ - do { \ - } while( 0 ) -#endif - - struct _TFileMap - { - String* base; /* base address of mapped file */ - Int refcount; /* reference count for mmaped region */ - Long size; /* stream size in file */ - Long offset; /* offset in file */ - }; - - typedef struct _TFileMap TFileMap; - -#define MAP_Address( map ) (Byte*)( (map)->base + (map)->offset ) - - /* The stream record structure */ - typedef struct _TStream_Rec - { - TFileMap* map; /* mapped file description */ - Long pos ; /* cursor in mapped file */ - } TStream_Rec; - - typedef TStream_Rec* PStream_Rec; - -#define STREAM2REC( x ) ( (TStream_Rec*)HANDLE_Val( x ) ) - - -#ifndef TT_CONFIG_OPTION_THREAD_SAFE - - /*******************************************************************/ - /*******************************************************************/ - /*******************************************************************/ - /**** ****/ - /**** N O N R E E N T R A N T I M P L E M E N T A T I O N ****/ - /**** ****/ - /*******************************************************************/ - /*******************************************************************/ - /*******************************************************************/ - - /* The TFile_Component structure holds all the data that was */ - /* previously declared static or global in this component. */ - /* */ - /* It is accessible through the 'engine.file_component' */ - /* variable in re-entrant builds, or directly through the */ - /* static 'files' variable in other builds. */ - - struct _TFile_Component - { - TMutex lock; /* used by the thread-safe build only */ - PStream_Rec stream; /* current stream */ - TFileFrame frame; /* current frame */ - }; - - typedef struct _TFile_Component TFile_Component; - -/* The macro CUR_Stream denotes the current input stream */ -/* Note that for the re-entrant version, the 'stream' name has been */ -/* chosen according to the macro STREAM_ARGS. */ - -/* The macro CUR_Frame denotes the current file frame */ -/* Note that for the re-entrant version, the 'frame' name has been */ -/* chosen according to the macro FRAME_ARGS. */ - -/* The macro STREAM_VAR is used when calling public functions */ -/* that need an 'optional' stream argument. */ - -#define CUR_Stream files.stream /* thread-safe macros */ -#define CUR_Frame files.frame - -#define STREAM_VARS /* void */ -#define STREAM_VAR /* void */ - - /* the 'files' variable is only defined in non-reentrant builds */ - - static TFile_Component files; - - - -/******************************************************************* - * - * Function : TTFile_Init - * - * Description : Initializes the File component. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TTFile_Init( PEngine_Instance engine ) - { - MUTEX_Create( files.lock ); - files.stream = NULL; - ZERO_Frame( files.frame ); - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TTFile_Done - * - * Description : Finalizes the File component. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TTFile_Done( PEngine_Instance engine ) - { - MUTEX_Destroy( files.lock ); - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Use_Stream - * - * Description : Copies or duplicates a given stream. - * - * Input : org_stream original stream - * stream target stream (copy or duplicate) - * - * Output : Error code - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Use_Stream( TT_Stream org_stream, - TT_Stream* stream ) - { - MUTEX_Lock( files.lock ); - *stream = org_stream; - files.stream = STREAM2REC( org_stream ); /* set current stream */ - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Done_Stream - * - * Description : Releases a given stream. - * - * Input : stream - * - * Output : Error code - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Done_Stream( TT_Stream* stream ) - { - HANDLE_Set( *stream, NULL ); - MUTEX_Release( files.lock ); - - return TT_Err_Ok; - } - -#else /* TT_CONFIG_OPTION_THREAD_SAFE */ - - /*******************************************************************/ - /*******************************************************************/ - /*******************************************************************/ - /******** ********/ - /******** R E E N T R A N T I M P L E M E N T A T I O N ********/ - /******** ********/ - /*******************************************************************/ - /*******************************************************************/ - /*******************************************************************/ - -#define CUR_Stream STREAM2REC( stream ) /* re-entrant macros */ -#define CUR_Frame (*frame) - -#define STREAM_VARS stream, -#define STREAM_VAR stream - - -/******************************************************************* - * - * Function : TTFile_Init - * - * Description : Initializes the File component. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TTFile_Init( PEngine_Instance engine ) - { - engine->file_component = NULL; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TTFile_Done - * - * Description : Finalizes the File component. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TTFile_Done( PEngine_Instance engine ) - { - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Use_Stream - * - * Description : Copies or duplicates a given stream. - * - * Input : org_stream original stream - * stream target stream (copy or duplicate) - * - * Output : Error code. The output stream is set to NULL in - * case of Failure. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Use_Stream( TT_Stream input_stream, - TT_Stream* copy ) - { - TT_Error error; - PStream_Rec stream_rec; - PStream_Rec copy_rec; - - - stream_rec = STREAM2REC( input_stream ); - - if ( ALLOC( copy_rec, sizeof ( TStream_Rec ) ) ) - goto Fail; - - HANDLE_Set( *copy, copy_rec ); - - copy_rec->map = stream_rec->map; - copy_rec->map->refcount++; - copy_rec->pos = 0; - - return TT_Err_Ok; - - Fail: - HANDLE_Set( *copy, NULL ); - return error; - } - - -/******************************************************************* - * - * Function : TT_Done_Stream - * - * Description : Releases a given stream. - * - * Input : stream - * - * Output : error code - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Done_Stream( TT_Stream* stream ) - { - return TT_Close_Stream( stream ); - } - -#endif /* TT_CONFIG_OPTION_THREAD_SAFE */ - - - /*******************************************************************/ - /*******************************************************************/ - /*******************************************************************/ - /*********** ***********/ - /*********** C O M M O N I M P L E M E N T A T I O N ***********/ - /*********** ***********/ - /*******************************************************************/ - /*******************************************************************/ - /*******************************************************************/ - -/******************************************************************* - * - * Function : AllocateMap - * - * Description : Allocates a new map from the table. - * - * Output : Pointer to new stream rec. NULL in case of failure. - * - ******************************************************************/ - - static TFileMap* - Allocate_Map( void ) - { - TFileMap* result; - - - if ( MEM_Alloc( result, sizeof ( TFileMap ) ) ) - return NULL; - - result->refcount = 1; - return result; - } - - -/******************************************************************* - * - * Function : ReleaseMap - * - * Description : Releases a used map to the table if reference i - * counter reaches zero. - * - * Input : map - * - * Output : None. - * - * Note : Called by TT_Close_File() - * - ******************************************************************/ - - static void - Release_Map ( TFileMap* map ) - { - map->refcount--; - if ( map->refcount <= 0 ) - { - munmap ( (void*)map->base, map->size ); - FREE( map ); - } - } - - -/******************************************************************* - * - * Function : TT_Open_Stream - * - * Description : Opens the font file and saves the total file size. - * - * Input : error address of stream's error variable - * (re-entrant build only). - * filepathname pathname of the file to open - * stream address of target TT_Stream structure - * - * Output : SUCCESS on success, FAILURE on error. - * The target stream is set to -1 in case of failure. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TT_Open_Stream( const String* filepathname, - TT_Stream* stream ) - { - TT_Error error; - Int file; - PStream_Rec stream_rec; - TFileMap* map; - struct stat stat_buf; - - - if ( ALLOC( *stream, sizeof ( TStream_Rec ) ) ) - return error; - - map = Allocate_Map(); - if ( !map ) - { - error = TT_Err_Out_Of_Memory; - goto Memory_Fail; - } - - stream_rec = STREAM2REC( *stream ); - - file = open( (String*)filepathname, O_RDONLY ); - if ( file < 0 ) - goto File_Fail; - - if ( fstat( file, &stat_buf ) < 0 ) - goto Map_Fail; - - map->offset = 0; - map->size = stat_buf.st_size + map->offset; - map->base = mmap( NULL, - map->size, - PROT_READ, - MAP_FILE | MAP_PRIVATE, - file, - 0 ); - - if ( (long)map->base == -1 ) - goto Map_Fail; - - close( file ); - - stream_rec->map = map; - stream_rec->pos = 0; - -#ifndef TT_CONFIG_OPTION_THREAD_SAFE - CUR_Stream = stream_rec; -#endif - - return TT_Err_Ok; - - Map_Fail: - close( file ); - - File_Fail: - error = TT_Err_Could_Not_Open_File; - FREE( map ); - - Memory_Fail: - FREE( *stream ); - return error; - } - - -/******************************************************************* - * - * Function : TT_Close_Stream - * - * Description : Closes a stream. - * - * Input : stream - * - * Output : SUCCESS (always) - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TT_Close_Stream( TT_Stream* stream ) - { - PStream_Rec rec = STREAM2REC( *stream ); - - - Release_Map( rec->map ); - FREE( rec ); - - HANDLE_Set( *stream, NULL ); - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Flush_Stream - * - * Description : Flushes a stream, i.e., closes its file handle. - * - * Input : stream address of target TT_Stream structure - * - * Output : Error code - * - * NOTE : Never flush the current opened stream. This means that - * you should _never_ call this function between a - * TT_Use_Stream() and a TT_Done_Stream()! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Flush_Stream( TT_Stream* stream ) - { - /* XXX - DUMMY IMPLEMENTATION */ - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Stream_Size - * - * Description : Returns the length of a given stream, even if it - * is flushed. - * - * Input : stream the stream - * - * Output : Length of stream in bytes. - * - ******************************************************************/ - - FT_EXPORT_FUNC( Long ) - TT_Stream_Size( TT_Stream stream ) - { - PStream_Rec rec = STREAM2REC( stream ); - - - if ( rec ) - return rec->map->size; - else - return 0; /* invalid stream - return 0 */ - } - - -/******************************************************************* - * - * Function : TT_Seek_File - * - * Description : Seeks the file cursor to a different position. - * - * Input : position new position in file - * - * Output : SUCCESS on success. FAILURE if out of range. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Seek_File( STREAM_ARGS Long position ) - { - if ( position > CUR_Stream->map->size ) - return TT_Err_Invalid_File_Offset; - - CUR_Stream->pos = position; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Skip_File - * - * Description : Skips forward the file cursor. - * - * Input : distance number of bytes to skip - * - * Output : see TT_Seek_File - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Skip_File( STREAM_ARGS Long distance ) - { - return TT_Seek_File( STREAM_VARS CUR_Stream->pos + distance ); - } - - -/******************************************************************* - * - * Function : TT_Read_File - * - * Description : Reads a chunk of the file and copies it to memory. - * - * Input : buffer target buffer - * count length in bytes to read - * - * Output : SUCCESS on success. FAILURE if out of range. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Read_File( STREAM_ARGS void* buffer, Long count ) - { - if ( CUR_Stream->pos + count > CUR_Stream->map->size ) - return TT_Err_Invalid_File_Read; - - MEM_Copy( buffer, - MAP_Address( CUR_Stream->map ) + CUR_Stream->pos, count ); - CUR_Stream->pos += count; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Read_At_File - * - * Description : Reads file at a specified position. - * - * Input : position position to seek to before read - * buffer target buffer - * count number of bytes to read - * - * Output : SUCCESS on success. FAILURE if error. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Read_At_File( STREAM_ARGS Long position, - void* buffer, - Long count ) - { - TT_Error error; - - - if ( (error = TT_Seek_File( STREAM_VARS position )) || - (error = TT_Read_File( STREAM_VARS buffer, count )) ) - return error; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_File_Pos - * - * Description : Returns current file seek pointer. - * - * Input : none - * - * Output : current file position - * - ******************************************************************/ - - FT_EXPORT_FUNC( Long ) - TT_File_Pos( STREAM_ARG ) - { - return CUR_Stream->pos; - } - - -/******************************************************************* - * - * Function : TT_Access_Frame - * - * Description : Notifies the component that we're going to read - * 'size' bytes from the current file position. - * This function should load/cache/map these bytes - * so that they will be addressed by the GET_xxx() - * functions easily. - * - * Input : size number of bytes to access. - * - * Output : Error code - * - * Notes: The function fails if the byte range is not within the - * the file, or if there is not enough memory to cache - * the bytes properly (which usually means that aSize is - * too big in both cases). - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Access_Frame( STREAM_ARGS FRAME_ARGS Long size ) - { - if ( CUR_Frame.address != NULL ) - return TT_Err_Nested_Frame_Access; - - if ( CUR_Stream->pos + size > CUR_Stream->map->size ) - return TT_Err_Invalid_Frame_Access; - - CUR_Frame.size = size; - CUR_Frame.address = MAP_Address( CUR_Stream->map ) + CUR_Stream->pos; - CUR_Frame.cursor = CUR_Frame.address; - - CUR_Stream->pos += size; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Check_And_Access_Frame - * - * Description : Notifies the component that we're going to read - * 'size' bytes from the current file position. - * This function should load/cache/map these bytes - * so that they will be addressed by the GET_xxx() - * functions easily. - * - * Input : size number of bytes to access. - * - * Output : Error code - * - * Notes: The function truncates 'size' if the byte range is not - * within the file. - * - * It will fail if there is not enough memory to cache - * the bytes properly (which usually means that aSize is - * too big). - * - * It will fail if you make two consecutive calls - * to TT_Access_Frame(), without a TT_Forget_Frame() between - * them. - * - * The only difference with TT_Access_Frame() is that we - * check that the frame is within the current file. We - * otherwise truncate it. The 'overflow' is set to zero. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Check_And_Access_Frame( STREAM_ARGS FRAME_ARGS Long size ) - { - TT_Error error; - Long readBytes; - - - if ( CUR_Frame.address != NULL ) - return TT_Err_Nested_Frame_Access; - - readBytes = CUR_Stream->map->size - CUR_Stream->pos; - if ( size > readBytes ) - { - /* There is overflow, we allocate a new block then */ - if ( ALLOC( CUR_Frame.address, size ) ) - return error; - - CUR_Frame.size = size; - - /* copy the valid part */ - MEM_Copy( CUR_Frame.address, - MAP_Address( CUR_Stream->map ) + CUR_Stream->pos, - readBytes ); - } - else - { - CUR_Frame.size = size; - CUR_Frame.address = MAP_Address( CUR_Stream->map ) + CUR_Stream->pos; - } - - CUR_Frame.cursor = CUR_Frame.address; - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Forget_Frame - * - * Description : Releases a cached frame after reading. - * - * Input : None - * - * Output : SUCCESS on success. FAILURE on error. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Forget_Frame( STREAM_ARGS FRAME_ARG ) - { - if ( CUR_Frame.address == NULL ) - return TT_Err_Nested_Frame_Access; - - /* If we were using a duplicate in case of overflow, free it now */ - if ( CUR_Frame.address < (Byte*)CUR_Stream->map->base || - CUR_Frame.address >= (Byte*)CUR_Stream->map->base + - CUR_Stream->map->size ) - FREE( CUR_Frame.address ); - - ZERO_Frame( CUR_Frame ); - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : GET_Byte - * - * Description : Extracts a byte from the current file frame. - * - * Input : None or current frame - * - * Output : Extracted Byte - * - * NOTES : We consider that the programmer is intelligent enough - * not to try to get a byte that is out of the frame. Hence, - * we provide no bounds check here. (A misbehaving client - * could easily page fault using this call.) - * - ******************************************************************/ - -#if 0 - - FT_EXPORT_FUNC( Byte ) - TT_Get_Byte( FRAME_ARG ) - { - CHECK_FRAME( CUR_Frame, 1 ); - - return (Byte)(*CUR_Frame.cursor++); - } - -#endif - - -/******************************************************************* - * - * Function : GET_Char - * - * Description : Extracts a signed byte from the current file frame. - * - * Input : None or current frame - * - * Output : Extracted char - * - * NOTES : We consider that the programmer is intelligent enough - * not to try to get a byte that is out of the frame. Hence, - * we provide no bounds check here. (A misbehaving client - * could easily page fault using this call.) - * - ******************************************************************/ - - FT_EXPORT_FUNC( Char ) - TT_Get_Char( FRAME_ARG ) - { - CHECK_FRAME( CUR_Frame, 1 ); - - return (Char)(*CUR_Frame.cursor++); - } - - -/******************************************************************* - * - * Function : GET_Short - * - * Description : Extracts a short from the current file frame. - * - * Input : None or current frame - * - * Output : Extracted short - * - * NOTES : We consider that the programmer is intelligent enough - * not to try to get a byte that is out of the frame. Hence, - * we provide no bounds check here. (A misbehaving client - * could easily page fault using this call.) - * - ******************************************************************/ - - FT_EXPORT_FUNC( Short ) - TT_Get_Short( FRAME_ARG ) - { - Short getshort; - - - CHECK_FRAME( CUR_Frame, 2 ); - - getshort = ((Short)CUR_Frame.cursor[0] << 8) | - (Short)CUR_Frame.cursor[1]; - - CUR_Frame.cursor += 2; - - return getshort; - } - - -/******************************************************************* - * - * Function : GET_UShort - * - * Description : Extracts an unsigned short from the frame. - * - * Input : None or current frame - * - * Output : Extracted ushort - * - * NOTES : We consider that the programmer is intelligent enough - * not to try to get a byte that is out of the frame. Hence, - * we provide no bounds check here. (A misbehaving client - * could easily page fault using this call.) - * - ******************************************************************/ - -#if 0 - - FT_EXPORT_FUNC( UShort ) - TT_Get_UShort( FRAME_ARG ) - { - UShort getshort; - - - CHECK_FRAME( CUR_Frame, 2 ); - - getshort = ((UShort)CUR_Frame.cursor[0] << 8) | - (UShort)CUR_Frame.cursor[1]; - - CUR_Frame.cursor += 2; - - return getshort; - } - -#endif - - -/******************************************************************* - * - * Function : GET_Long - * - * Description : Extracts a long from the frame. - * - * Input : None or current frame - * - * Output : Extracted long - * - * NOTES : We consider that the programmer is intelligent enough - * not to try to get a byte that is out of the frame. Hence, - * we provide no bounds check here. (A misbehaving client - * could easily page fault using this call.) - * - ******************************************************************/ - - FT_EXPORT_FUNC( Long ) - TT_Get_Long( FRAME_ARG ) - { - Long getlong; - - - CHECK_FRAME( CUR_Frame, 4 ); - - getlong = ((Long)CUR_Frame.cursor[0] << 24) | - ((Long)CUR_Frame.cursor[1] << 16) | - ((Long)CUR_Frame.cursor[2] << 8 ) | - (Long)CUR_Frame.cursor[3]; - - CUR_Frame.cursor += 4; - - return getlong; - } - - -/******************************************************************* - * - * Function : GET_ULong - * - * Description : Extracts an unsigned long from the frame. - * - * Input : None - * - * Output : Extracted ulong - * - * NOTES : We consider that the programmer is intelligent enough - * not to try to get a byte that is out of the frame. Hence, - * we provide no bounds check here. (A misbehaving client - * could easily page fault using this call.) - * - ******************************************************************/ - -#if 0 - - FT_EXPORT_FUNC( ULong ) - TT_Get_ULong( FRAME_ARG ) - { - ULong getlong; - - - CHECK_FRAME( CUR_Frame, 4 ); - - getlong = ( ((ULong)CUR_Frame.cursor[0] << 24) | - ((ULong)CUR_Frame.cursor[1] << 16) | - ((ULong)CUR_Frame.cursor[2] << 8 ) | - (ULong)CUR_Frame.cursor[3] ); - - CUR_Frame.cursor += 4; - - return getlong; - } - -#endif - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/vms/README b/Build/source/libs/freetype/freetype-1.5/lib/arch/vms/README deleted file mode 100644 index db7f684f73f..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/vms/README +++ /dev/null @@ -1,20 +0,0 @@ -This directory contains two files for compiling the FreeType library under -VMS: - - ft_conf.h the configuration file for the FreeType library - descrip.mms a makefile to be used with either MMS or MMK - -The files are such designed that after unpacking of freetype-1.5 one can -give the command - - MMS/DESCR=[.LIB.ARCH.VMS] - -to build the libraries. (Of course, for MMK use `MMK' on the command line -instead of `MMS'.) The makefile contains a `clean' target, but no `install' -target since I'm note sure where to install the library and the include -files. - -I did NOT do the test programs but I tested it with my own programs. - - - Jouk Jansen <joukj@hrem.stm.tudelft.nl> diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/vms/descrip.mms b/Build/source/libs/freetype/freetype-1.5/lib/arch/vms/descrip.mms deleted file mode 100644 index 14dac2b8907..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/vms/descrip.mms +++ /dev/null @@ -1,163 +0,0 @@ -# DESCRIP.MMS: Make file for VMS using MMS or MMK -# -# -# Copyright 1996-2001 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. -# Created by Jouk Jansen (joukj@hrem.stm.tudelft.nl) - -ARCH = arch.unix - -CC = cc - -############### PORTABILITY COMPONENTS ######################## - -# location of memory component -MEMSRC = ttmemory.c - -# location of file component -FILESRC = ttfile.c - -# location of mutex component -MUTEXSRC = ttmutex.c - -# location of default extensions -FTEXTDIR = [.lib.extend] - -# default extensions sources -EXTSRC = $(FTEXTDIR)ftxkern.c \ - $(FTEXTDIR)ftxgasp.c \ - $(FTEXTDIR)ftxpost.c \ - $(FTEXTDIR)ftxcmap.c \ - $(FTEXTDIR)ftxsbit.c \ - $(FTEXTDIR)ftxwidth.c \ - $(FTEXTDIR)ftxerr18.c \ - $(FTEXTDIR)ftxgsub.c \ - $(FTEXTDIR)ftxgpos.c \ - $(FTEXTDIR)ftxopen.c \ - $(FTEXTDIR)ftxgdef.c - -EXTOBJ = [.lib]ftxkern.obj, \ - [.lib]ftxgasp.obj, \ - [.lib]ftxpost.obj, \ - [.lib]ftxcmap.obj, \ - [.lib]ftxsbit.obj, \ - [.lib]ftxwidth.obj, \ - [.lib]ftxerr18.obj, \ - [.lib]ftxgsub.obj, \ - [.lib]ftxgpos.obj, \ - [.lib]ftxopen.obj, \ - [.lib]ftxgdef.obj - -# all engine sources -SRC_M = [.lib]ttapi.c \ - [.lib]ttcache.c \ - [.lib]ttcalc.c \ - [.lib]ttcmap.c \ - [.lib]ttdebug.c \ - [.lib]ttextend.c \ - [.lib]ttgload.c \ - [.lib]ttinterp.c \ - [.lib]ttload.c \ - [.lib]ttobjs.c \ - [.lib]ttraster.c \ - [.lib]$(FILESRC) \ - [.lib]$(MEMSRC) \ - [.lib]$(MUTEXSRC) -SRC_S = [.lib.$(ARCH)]freetype.c - -# all header files with path -HEADERS = [.lib]freetype.h \ - [.lib]fterrid.h \ - [.lib]ftnameid.h \ - $(FTEXTDIR)ftxkern.h \ - $(FTEXTDIR)ftxgasp.h \ - $(FTEXTDIR)ftxcmap.h \ - $(FTEXTDIR)ftxsbit.h \ - $(FTEXTDIR)ftxpost.h \ - $(FTEXTDIR)ftxwidth.h \ - $(FTEXTDIR)ftxerr18.h \ - $(FTEXTDIR)ftxgsub.h \ - $(FTEXTDIR)ftxgpos.h \ - $(FTEXTDIR)ftxgdef.h \ - $(FTEXTDIR)ftxopen.h - -# all engine objects -OBJ_M = [.lib]ttapi.obj, \ - [.lib]ttcache.obj, \ - [.lib]ttcalc.obj, \ - [.lib]ttcmap.obj, \ - [.lib]ttdebug.obj, \ - [.lib]ttextend.obj, \ - [.lib]ttgload.obj, \ - [.lib]ttinterp.obj, \ - [.lib]ttload.obj, \ - [.lib]ttobjs.obj, \ - [.lib]ttraster.obj, \ - [.lib]file.obj, \ - [.lib]memory.obj, \ - [.lib]mutex.obj, \ - $(EXTOBJ) -OBJ_S = [.lib]freetype.obj - - -# include paths -INCLUDES = /include=([.lib],[],$(FTEXTDIR)) - -# C flags -CFLAGS = $(INCLUDES)/obj=[.lib] - -all : do_link [.lib]libttf.olb - library/compress [.lib]libttf.olb - -do_link : - if f$search( "[.lib]memory.c" ) .nes. "" then set file/remove [.lib]memory.c; - if f$search( "[.lib]file.c" ) .nes. "" then set file/remove [.lib]file.c; - if f$search( "[.lib]mutex.c" ) .nes. "" then set file/remove [.lib]mutex.c; - if f$search( "[.lib]ft_conf.h" ) .nes. "" then set file/remove [.lib]ft_conf.h; - set file/enter=[.lib]memory.c [.lib]$(MEMSRC) - set file/enter=[.lib]file.c [.lib]$(FILESRC) - set file/enter=[.lib]mutex.c [.lib]$(MUTEXSRC) - set file/enter=[.lib]ft_conf.h [.lib.arch.vms]ft_conf.h - -[.lib]ftxkern.obj : $(FTEXTDIR)ftxkern.c - -[.lib]ftxgasp.obj : $(FTEXTDIR)ftxgasp.c - -[.lib]ftxpost.obj : $(FTEXTDIR)ftxpost.c - -[.lib]ftxcmap.obj : $(FTEXTDIR)ftxcmap.c - -[.lib]ftxsbit.obj : $(FTEXTDIR)ftxsbit.c - -[.lib]ftxwidth.obj : $(FTEXTDIR)ftxwidth.c - -[.lib]ftxerr18.obj : $(FTEXTDIR)ftxerr18.c - -[.lib]ftxgsub.obj : $(FTEXTDIR)ftxgsub.c - -[.lib]ftxgpos.obj : $(FTEXTDIR)ftxgpos.c - -[.lib]ftxgdef.obj : $(FTEXTDIR)ftxgdef.c - -[.lib]ftxopen.obj : $(FTEXTDIR)ftxopen.c - -[.lib]freetype.obj : $(SRC_S) $(SRC_M) - - -[.lib]libttf.olb : $(OBJ_M) - library/create [.lib]libttf.olb $(OBJ_M) - - -clean : - delete [.lib]*.obj;* - delete [.lib]*.olb;* - if f$search( "[.lib]memory.c" ) .nes. "" then set file/remove [.lib]memory.c; - if f$search( "[.lib]file.c" ) .nes. "" then set file/remove [.lib]file.c; - if f$search( "[.lib]mutex.c" ) .nes. "" then set file/remove [.lib]mutex.c; - if f$search( "[.lib]ft_conf.h" ) .nes. "" then set file/remove [.lib]ft_conf.h; diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/vms/ft_conf.h b/Build/source/libs/freetype/freetype-1.5/lib/arch/vms/ft_conf.h deleted file mode 100644 index bd4e1255046..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/vms/ft_conf.h +++ /dev/null @@ -1,212 +0,0 @@ -/******************************************************************* - * - * ft_conf.h for VMS using MMS or MMK - * - * - * Copyright 1996-2002 by - * David Turner, Robert Wilhelm, and Werner Lemberg - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - ******************************************************************/ - - -/* we need the following because there are some typedefs in this file */ - -#ifndef FT_CONF_H -#define FT_CONF_H - -/* Define to empty if the keyword does not work. */ -/* #undef const */ - -/* Define if you have the <stdlib.h> header file. */ -#define HAVE_STDLIB_H 1 - -/* The number of bytes in a int. */ -#define SIZEOF_INT 4 - -/* The number of bytes in a long. */ -#define SIZEOF_LONG 4 - -/* Define if you have the memcpy function. */ -#define HAVE_MEMCPY 1 - -/* Define if you have the memmove function. */ -#define HAVE_MEMMOVE 1 - -/* Define if you have the <unistd.h> header file. */ -#define HAVE_UNISTD_H 1 - -/* Define if you have the <libintl.h> header file. */ -/* #undef HAVE_LIBINTL_H */ - -/* Define if you have the <locale.h> header file. */ -/* Only meaningful if you have <libintl.h>. */ -#define HAVE_LOCALE_H - -/**********************************************************************/ -/* */ -/* The following configuration macros can be tweaked manually by */ -/* a developer to turn on or off certain features or options in the */ -/* TrueType engine. This may be useful to tune it for specific */ -/* purposes.. */ -/* */ -/**********************************************************************/ - -/*************************************************************************/ -/* Define this if the underlying operating system uses a different */ -/* character width than 8bit for file names. You must then also supply */ -/* a typedef declaration for defining 'TT_Text'. Default is off. */ - -/* #define HAVE_TT_TEXT */ - - -/*************************************************************************/ -/* Define this if you want to generate code to support engine extensions */ -/* Default is on, but if you're satisfied by the basic services provided */ -/* by the engine and need no extensions, undefine this configuration */ -/* macro to save a few more bytes. */ - -#define TT_CONFIG_OPTION_EXTEND_ENGINE - - -/*************************************************************************/ -/* Define this if you want to generate code to support gray-scaling, */ -/* a.k.a. font-smoothing or anti-aliasing. Default is on, but you can */ -/* disable it if you don't need it. */ - -#define TT_CONFIG_OPTION_GRAY_SCALING - - -/*************************************************************************/ -/* Define this if you want to compile a bytecode interpreter in the */ -/* TrueType driver. Note that there are important patent issues related */ -/* to the use of the interpreter. */ -/* */ -/* By undefining this, you will only compile the code necessary to load */ -/* TrueType glyphs without hinting. */ - -#undef TT_CONFIG_OPTION_BYTECODE_INTERPRETER - - -/*************************************************************************/ -/* Define this if you want to use a big 'switch' statement within the */ -/* bytecode interpreter. Because some non-optimizing compilers are not */ -/* able to produce jump tables from such statements, undefining this */ -/* configuration macro will generate the appropriate C jump table in */ -/* ttinterp.c. If you use an optimizing compiler, you should leave it */ -/* defined for better performance and code compactness.. */ - -#define TT_CONFIG_OPTION_INTERPRETER_SWITCH - - -/*************************************************************************/ -/* Define this if you want to build a 'static' version of the TrueType */ -/* bytecode interpreter. This will produce much bigger code, which */ -/* _may_ be faster on some architectures.. */ -/* */ -/* Do NOT DEFINE THIS is you build a thread-safe version of the engine */ - -#undef TT_CONFIG_OPTION_STATIC_INTERPRETER - - -/*************************************************************************/ -/* Define this if you want to build a 'static' version of the scan-line */ -/* converter (the component which in charge of converting outlines into */ -/* bitmaps). This will produce a bigger object file for "ttraster.c", */ -/* which _may_ be faster on some architectures.. */ -/* */ -/* Do NOT DEFINE THIS is you build a thread-safe version of the engine */ - -#undef TT_CONFIG_OPTION_STATIC_RASTER - - - -/*************************************************************************/ -/* Define TT_CONFIG_THREAD_SAFE if you want to build a thread-safe */ -/* version of the library. */ - -#undef TT_CONFIG_OPTION_THREAD_SAFE - - -/**********************************************************************/ -/* */ -/* The following macros are used to define the debug level, as well */ -/* as individual tracing levels for each component. There are */ -/* currently three modes of operation : */ -/* */ -/* - trace mode (define DEBUG_LEVEL_TRACE) */ -/* */ -/* The engine prints all error messages, as well as tracing */ -/* ones, filtered by each component's level */ -/* */ -/* - debug mode (define DEBUG_LEVEL_ERROR) */ -/* */ -/* Disable tracing, but keeps error output and assertion */ -/* checks. */ -/* */ -/* - release mode (don't define anything) */ -/* */ -/* Don't include error-checking or tracing code in the */ -/* engine's code. Ideal for releases. */ -/* */ -/* NOTE : */ -/* */ -/* Each component's tracing level is defined in its own source. */ -/* */ -/**********************************************************************/ - -/* Define if you want to use the tracing debug mode */ -#undef DEBUG_LEVEL_TRACE - -/* Define if you want to use the error debug mode - ignored if */ -/* DEBUG_LEVEL_TRACE is defined */ -#undef DEBUG_LEVEL_ERROR - - -/**************************************************************************/ -/* Definition of various integer sizes. These types are used by ttcalc */ -/* and ttinterp (for the 64-bit integers) only.. */ - -#if SIZEOF_INT == 4 - - typedef signed int TT_Int32; - typedef unsigned int TT_Word32; - -#elif SIZEOF_LONG == 4 - - typedef signed long TT_Int32; - typedef unsigned long TT_Word32; - -#else -#error "no 32bit type found" -#endif - -#if SIZEOF_LONG == 8 - -/* LONG64 must be defined when a 64-bit type is available */ -/* INT64 must then be defined to this type.. */ -#define LONG64 -#define INT64 long - -#else - -/* GCC provides the non-ANSI 'long long' 64-bit type. You can activate */ -/* by defining the TT_USE_LONG_LONG macro in 'ft_conf.h'. Note that this */ -/* will produce many -ansi warnings during library compilation. */ -#ifdef TT_USE_LONG_LONG - -#define LONG64 -#define INT64 long long - -#endif /* TT_USE_LONG_LONG */ -#endif - -#endif /* FT_CONF_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/win16/Makefile.BC b/Build/source/libs/freetype/freetype-1.5/lib/arch/win16/Makefile.BC deleted file mode 100644 index 96633031f8b..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/win16/Makefile.BC +++ /dev/null @@ -1,190 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library for Borland C++ for 16-bit Windows, large model. -# Due to size constraints, it does not try to pack all modules into one. -# -# You will need Borland MAKE. -# Tested with Borland C++ v.4.0 and 5.0. -# -# Use this file while in the lib directory with the following statement: -# -# make -farch/win16/Makefile.BC -# -# -# A DLL version of the library can be built with -# -# make -DDLL -farch/win16/Makefile.BC dll -# -# Debug versions can be obtained with -# -# make -DDEBUG -farch\win16\Makefile.BC -# -# Special versions enabled to handle big fonts (with more than 16,384 -# glyphs) can be obtained with -# -# -# -# Copyright 1996-2001 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. -# make -DBIGFONTS -farch/win16/Makefile.BC - -ARCH = arch\win16 -FT_MAKEFILE = $(ARCH)\Makefile.BC -FT_DLL = ft15_16.dll - -CC = bcc -LIB = tlib /c /e -IMPLIB = implib -c -o - -SPURIOUS_WARNINGS = -w-nak -w-par -w-use -w-aus -w-stu -w-stv -w-cln -w-sig - -# Credits go to Dave Hoo <dhoo@flash.net> for pointing out that modern -# Borland compilers (from BC++ 3.1 on) can increase the limit on -# the length of identifiers. -!if ! $d(DEBUG) -CFLAGS = -O2 -3 -ml -A -i40 -I$(ARCH);.;extend $(SPURIOUS_WARNINGS) -DLLFLAGS = -ml -WD -lC -!else -CFLAGS = -v -N -ml -A -i40 -I$(ARCH);.;extend $(SPURIOUS_WARNINGS) -DLLFLAGS = -v -ml -WD -lC -!endif - -CFLAGS = $(CFLAGS) -W - -FT_DEF = $(FT_DLL:.dll=.def) -!if $d(DLL) -CFLAGS = $(CFLAGS) -WD -!endif - - -!if $d(BIGFONTS) -CFLAGS = $(CFLAGS) -DTT_HUGE_PTR=__huge - -TTFILE = $(ARCH)\hugefile.c -TTMEMORY = $(ARCH)\hugemem.c -!else -TTFILE = .\ttfile.c -TTMEMORY = .\ttmemory.c -!endif -TTMUTEX = .\ttmutex.c - -PORT = $(TTFILE) $(TTMEMORY) $(TTMUTEX) - -# Do not insert spaces before the \ at end of line, -# otherwise the substitution for TLIB command line will fail. -SRC_X = extend\ftxgasp.c extend\ftxkern.c extend\ftxpost.c\ - extend\ftxcmap.c extend\ftxwidth.c extend\ftxerr18.c\ - extend\ftxsbit.c extend\ftxgsub.c extend\ftxgpos.c\ - extend\ftxopen.c extend\ftxgdef.c -OBJS_X = $(SRC_X:.c=.obj) - -SRC_M = ttapi.c ttcache.c ttcalc.c ttcmap.c\ - ttgload.c ttinterp.c ttload.c ttobjs.c\ - ttraster.c ttextend.c ttdebug.c $(PORT) -OBJS_M = $(SRC_M:.c=.obj) $(OBJS_X) - -SRC_S = $(ARCH)\freetype.c -OBJ_S = $(SRC_S:.c=.obj) -OBJS_S = $(OBJ_S) $(OBJS_X) - - -# Since Borland make does not handle $($(LIB_FILES)), and using -# -DLIB_FILES="$(OBJS_S)" will excess the capacity of COMMAND.COM, we cheat -# by constructing TLIB's response file directly in the `all' target. -# -# Another solution, useful during debugging of part of the library, -# would be to include each .obj in the library as soon as it is compiled. -# See ../msdos/Makefile.TC for an application. -.c.obj: - @$(CC) -c -o$* @&&| - $(CFLAGS) $< -| - - -!if ! $d(DEBUG) -# Skipped if DEBUG build -# (but it changes nothing, since we always build in multiple parts). -all: $(OBJS_M) - -del libttf.lib - $(LIB) libttf.lib @&&| -+ $(OBJS_M: = + ) -| -!endif - -debug: $(OBJS_M) - -del libttf.lib - $(LIB) libttf.lib @&&| -+ $(OBJS_M: = + ) -| - -$(FT_DEF): $(ARCH)\ttf.def - -copy $(ARCH)\ttf.def $(FT_DEF) - -dll $(FT_DLL): $(OBJS_M) $(FT_DEF) -!if $d(DLL) - $(CC) -e$(FT_DLL) @&&| - $(DLLFLAGS) $(OBJS_M) -| - $(IMPLIB) libttf $(FT_DEF) -!else -# Re-invoke with flag set. Unfortunately, this discards the other flags. - make -DDLL -f$(ARCH)/Makefile.BC dll -!endif - -install: $(FT_DLL) -!if $d(INSTALL_DIR) - copy $(FT_DLL) $(INSTALL_DIR) -!else - copy $(FT_DLL) C:\WINDOWS -!endif - - -$(OBJ_S): $(SRC_S) $(SRC_M) - -# Not used here because it excesses the capacity of COMMAND.COM... -libttf.lib: $(LIB_FILES) - -del libttf.lib - echo -+$(**: =-+)> response - $(LIB) libttf.lib @&&| -+ $(**: = + ) -| - -!if $d(BIGFONTS) -$(TTMEMORY:.c=.obj): $(TTMEMORY) - $(CC) -c -o$* @&&| - $(CFLAGS) -A- $*.c -| - -$(TTFILE:.c=.obj): $(TTFILE) - $(CC) -c -o$* @&&| - $(CFLAGS) -A- $*.c -| -!endif - - -clean: - -del *.obj - -del extend\*.obj - -del $(ARCH)\*.obj - -del libttf.bak - -del response - -del *.def - -distclean: clean - -del libttf.lib - -del *.dll - -del $(FT_DEF) - -del C:\WINDOWS\$(FT_DLL) -!if $d(INSTALL_DIR) - -del $(INSTALL_DIR)\$(FT_DLL) -!endif - -!include "$(ARCH)\depend.win" - -# end of Makefile diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/win16/Makefile.MS b/Build/source/libs/freetype/freetype-1.5/lib/arch/win16/Makefile.MS deleted file mode 100644 index 9f8f03f66f1..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/win16/Makefile.MS +++ /dev/null @@ -1,116 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library for Microsoft C for Windows, large model. -# It also works for Visual C++ 1.x 16-bit compilers, but you should -# instead use the Makefile customized for it, Makefile.VC. -# Due to size constraints, it does not try to pack all modules into one. -# -# You will need NMAKE. -# -# Use this file while in the lib directory with the following statement: -# -# nmake /f arch\win16\Makefile.MS -# -# -# A debug version can be obtained with -# -# -# -# Copyright 1996-2001 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. -# nmake DEBUG=1 /f arch\win16\Makefile.MS - -ARCH = arch\win16 -FT_MAKEFILE = $(ARCH)\Makefile.MS - -CC = cl /nologo -LIB = lib /noignorecase /nologo - -!ifndef DEBUG -CFLAGS = /Ox /AL /Za /W2 /G2 -I$(ARCH) -I. -Iextend -!else -CFLAGS = /Zi /AL /Za /W2 /G2 -I$(ARCH) -I. -Iextend -!endif - -# Use /Gw instead with Microsoft C version 6 -CFLAGS = $(CFLAGS) /GA - - -TTFILE = .\ttfile.c -TTMEMORY = .\ttmemory.c -TTMUTEX = .\ttmutex.c - -PORT = $(TTFILE) $(TTMEMORY) $(TTMUTEX) - -# Do not insert spaces between the file names or at end of line, otherwise -# the substitution for LIB command line will fail. Thank you. -# -SRC_X = extend\ftxgasp.c extend\ftxkern.c extend\ftxpost.c\ -extend\ftxcmap.c extend\ftxwidth.c extend\ftxerr18.c extend\ftxsbit.c\ -extend\ftxopen.c extend\ftxgsub.c extend\ftxgpos.c extend\ftxgdef.c -OBJS_X = $(SRC_X:.c=.obj) - -SRC_M = ttapi.c ttcache.c ttcalc.c ttcmap.c ttdebug.c\ -ttgload.c ttinterp.c ttload.c ttobjs.c ttraster.c ttextend.c $(PORT) -OBJS_M = $(SRC_M:.c=.obj) $(OBJS_X) - -SRC_S = $(ARCH)\freetype.c -OBJ_S = $(SRC_S:.c=.obj) -OBJS_S = $(OBJ_S) $(OBJS_X) - - -# Since Microsoft's NMAKE does not handle $($(LIB_FILES)), and using -# LIB_FILES="$(OBJS_S)" will excess the capacity of COMMAND.COM, we cheat -# by constructing LIB's response file directly in the `all' target. -# -# Another solution, useful during debugging of part of the library, -# would be to include each .obj in the library as soon as it is compiled. -# See ..\msdos\Makefile.TC for an application. -.c.obj: - $(CC) /c /Fo$@ @<< - $(CFLAGS) $*.c -<< - - -!ifndef DEBUG -# Skipped if DEBUG build -# (but it changes nothing, since we always build in multiple parts). -all: $(OBJS_M) - -del libttf.lib - $(LIB) libttf.lib @<<response -+ $(OBJS_M: = ^ ); -<<KEEP -!endif - - -debug: $(OBJS_M) - -del libttf.lib - $(LIB) libttf.lib @<<response -+ $(OBJS_M: = ^ ); -<<KEEP - - -$(OBJ_S): $(SRC_S) $(SRC_M) - -# Not used here because it excesses the capacity of COMMAND.COM... -libttf.lib: $(LIB_FILES) - $(LIB) $@ +-$(?: =-+); - -clean: - -del *.obj - -del extend\*.obj - -del $(ARCH)\*.obj - -del response - -distclean: clean - -del libttf.lib - -!include "$(ARCH)\depend.win" - -# end of Makefile.MS diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/win16/Makefile.VC b/Build/source/libs/freetype/freetype-1.5/lib/arch/win16/Makefile.VC deleted file mode 100644 index c24ba4f863a..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/win16/Makefile.VC +++ /dev/null @@ -1,185 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library for Microsoft Visual C++ 1.x for 16-bit Windows, -# large model. It also works for Microsoft C/C++ v.7.0 16-bit compiler, -# but not for previous versions (see Makefile.MS instead). -# -# You will need NMAKE. -# -# Use this file while in the lib directory with the following statement: -# -# nmake /f arch\win16\Makefile.VC -# -# -# A DLL version of the library can be built with -# -# nmake DLL=1 /f arch\win16\Makefile.VC dll -# -# Debug versions can be obtained with -# -# nmake DEBUG=1 /f arch\win16\Makefile.VC -# -# Special versions enabled to handle big fonts (with more than 16,384 -# glyphs) can be obtained with -# -# -# -# Copyright 1996-2001 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. -# nmake BIGFONTS=1 /f arch\win16\Makefile.VC - -ARCH = arch\win16 -FT_MAKEFILE = $(ARCH)\Makefile.VC -FT_DLL = ft15_16.dll - -CC = cl /nologo -LIB = lib /noignorecase /nologo -IMPLIB = implib /noignorecase /nologo - -# One can also consider using "set MSC_CMD_FLAGS=/Gr /Op- /Gy /YX". -# With Microsoft C/C++ 7.0, use /G2 instead of /G3. -!ifndef DEBUG -CFLAGS = /Ox /AL /Za /W2 /G3 -I$(ARCH) -I. -Iextend -DLLFLAGS = /AL /Ld -!else -CFLAGS = /Zi /Ge /AL /Za /W2 /G3 -I$(ARCH) -I. -Iextend -DLLFLAGS = /AL /Lw /Zi -!endif - -FT_DEF = $(FT_DLL:.dll=.def) -!ifdef DLL -CFLAGS = $(CFLAGS) /GD /GEf -!else -CFLAGS = $(CFLAGS) /GA -!endif - - -!ifdef BIGFONTS -CFLAGS = $(CFLAGS) /DTT_HUGE_PTR=__huge - -TTFILE = $(ARCH)\hugefile.c -TTMEMORY = $(ARCH)\hugemem.c -!else -TTFILE = .\ttfile.c -TTMEMORY = .\ttmemory.c -!endif -TTMUTEX = .\ttmutex.c - -PORT = $(TTFILE) $(TTMEMORY) $(TTMUTEX) - -# Do not insert spaces between the file names or at end of line, otherwise -# the substitution for LIB command line will fail. Thank you. -# -SRC_X = extend\ftxgasp.c extend\ftxkern.c extend\ftxpost.c\ -extend\ftxcmap.c extend\ftxwidth.c extend\ftxerr18.c extend\ftxsbit.c\ -extend\ftxopen.c extend\ftxgsub.c extend\ftxgpos.c extend\ftxgdef.c -OBJS_X = $(SRC_X:.c=.obj) - -SRC_M = ttapi.c ttcache.c ttcalc.c ttcmap.c ttdebug.c\ -ttgload.c ttinterp.c ttload.c ttobjs.c ttraster.c ttextend.c $(PORT) -OBJS_M = $(SRC_M:.c=.obj) $(OBJS_X) - -SRC_S = $(ARCH)\freetype.c -OBJ_S = $(SRC_S:.c=.obj) -OBJS_S = $(OBJ_S) $(OBJS_X) - - -# Since Microsoft's NMAKE does not handle $($(LIB_FILES)), and using -# LIB_FILES="$(OBJS_S)" will excess the capacity of COMMAND.COM, we cheat -# by constructing LIB's response file directly in the `all' target. -# -# Another solution, useful during debugging of part of the library, -# would be to include each .obj in the library as soon as it is compiled. -# See ..\msdos\Makefile.TC for an application. -.c.obj: - @$(CC) /c /Fo$@ @<< - $(CFLAGS) $*.c -<< - - -!ifndef DEBUG -# Skipped if DEBUG build -all: $(OBJS_S) - -del libttf.lib - $(LIB) libttf.lib @<<response -+ $(OBJS_S: = + ); -<<KEEP -!endif - - -debug: $(OBJS_M) - -del libttf.lib - $(LIB) libttf.lib @<<response -+ $(OBJS_M: = + ); -<<KEEP - -$(FT_DEF): $(ARCH)\ttf.def - -copy $(ARCH)\ttf.def $(FT_DEF) - -dll $(FT_DLL): $(OBJS_M) $(FT_DEF) -!ifdef DLL - $(CC) /Fe$(FT_DLL) @<< - $(DLLFLAGS) $** -<< - $(IMPLIB) libttf.lib $(FT_DEF) -!else -# Re-invoke with flag set. Unfortunately, this discards the other flags. - $(MAKE) DLL=1 /f $(ARCH)/Makefile.VC dll -!endif - -install: $(FT_DLL) -!ifdef INSTALL_DIR - copy $(FT_DLL) $(INSTALL_DIR) -!else - copy $(FT_DLL) C:\WINDOWS -!endif - - -$(OBJ_S): $(SRC_S) $(SRC_M) - -# Not used here because it excesses the capacity of COMMAND.COM... -libttf.lib: $(LIB_FILES) - $(LIB) $@ +-$(?: =-+); - -!ifdef BIGFONTS -$(TTFILE:.c=.obj): - $(CC) /c /Fo$@ @<< - $(CFLAGS) /Ze $*.c - -$(TTMEMORY:.c=.obj): - $(CC) /c /Fo$@ @<< - $(CFLAGS) /Ze $*.c -<< - -$(OBJ_S): - $(CC) /c /Fo$@ @<< - $(CFLAGS) /Ze $*.c -<< -!endif - - -clean: - -del *.obj - -del extend\*.obj - -del $(ARCH)\*.obj - -del libttf.bak - -del response - -distclean: clean - -del libttf.lib - -del *.dll - -del $(FT_DLL:.dll=.def) - -del C:\WINDOWS\$(FT_DLL) -!ifdef INSTALL_DIR - -del $(INSTALL_DIR)\$(FT_DLL) -!endif - -!include "$(ARCH)\depend.win" - -# end of Makefile.VC diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/win16/depend.win b/Build/source/libs/freetype/freetype-1.5/lib/arch/win16/depend.win deleted file mode 100644 index 358f642aee0..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/win16/depend.win +++ /dev/null @@ -1,113 +0,0 @@ -# This file is part of the FreeType project. -# Automatically generated, but you can customize to fit your needs. -# However, changes will be erased if not made in `makedep'... -# -# This dependency file to be used with various Windows compilers -# has been generated automatically with the script `makedep' on -# 2002-11-18. - -ttapi.obj: ttapi.c ttconfig.h arch\win16\ft_conf.h freetype.h fterrid.h \ - ftnameid.h ttengine.h tttypes.h ttmutex.h ttcalc.h ttmemory.h \ - ttcache.h ttfile.h ttdebug.h ttobjs.h tttables.h ttcmap.h ttload.h \ - ttgload.h ttraster.h ttextend.h -ttcache.obj: ttcache.c ttengine.h tttypes.h ttconfig.h \ - arch\win16\ft_conf.h freetype.h fterrid.h ftnameid.h ttmutex.h \ - ttmemory.h ttcache.h ttobjs.h tttables.h ttcmap.h ttdebug.h -ttcalc.obj: ttcalc.c ttcalc.h ttconfig.h arch\win16\ft_conf.h freetype.h \ - fterrid.h ftnameid.h ttdebug.h tttypes.h tttables.h -ttcmap.obj: ttcmap.c ttobjs.h ttconfig.h arch\win16\ft_conf.h ttengine.h \ - tttypes.h freetype.h fterrid.h ftnameid.h ttmutex.h ttcache.h \ - tttables.h ttcmap.h ttdebug.h ttfile.h ttmemory.h ttload.h -ttdebug.obj: ttdebug.c ttdebug.h ttconfig.h arch\win16\ft_conf.h \ - tttypes.h freetype.h fterrid.h ftnameid.h tttables.h ttobjs.h \ - ttengine.h ttmutex.h ttcache.h ttcmap.h -ttextend.obj: ttextend.c ttextend.h ttconfig.h arch\win16\ft_conf.h \ - tttypes.h freetype.h fterrid.h ftnameid.h ttobjs.h ttengine.h \ - ttmutex.h ttcache.h tttables.h ttcmap.h ttmemory.h -ttfile.obj: ttfile.c ttconfig.h arch\win16\ft_conf.h freetype.h \ - fterrid.h ftnameid.h tttypes.h ttdebug.h ttengine.h ttmutex.h \ - ttmemory.h ttfile.h -ttgload.obj: ttgload.c tttypes.h ttconfig.h arch\win16\ft_conf.h \ - freetype.h fterrid.h ftnameid.h ttdebug.h ttcalc.h ttfile.h \ - ttengine.h ttmutex.h tttables.h ttobjs.h ttcache.h ttcmap.h ttgload.h \ - ttmemory.h tttags.h ttload.h -ttinterp.obj: ttinterp.c freetype.h fterrid.h ftnameid.h tttypes.h \ - ttconfig.h arch\win16\ft_conf.h ttdebug.h ttcalc.h ttmemory.h \ - ttinterp.h ttobjs.h ttengine.h ttmutex.h ttcache.h tttables.h \ - ttcmap.h -ttload.obj: ttload.c tttypes.h ttconfig.h arch\win16\ft_conf.h \ - freetype.h fterrid.h ftnameid.h ttdebug.h ttcalc.h ttfile.h \ - ttengine.h ttmutex.h tttables.h ttobjs.h ttcache.h ttcmap.h \ - ttmemory.h tttags.h ttload.h -ttmemory.obj: ttmemory.c ttdebug.h ttconfig.h arch\win16\ft_conf.h \ - tttypes.h freetype.h fterrid.h ftnameid.h ttmemory.h ttengine.h \ - ttmutex.h -ttmutex.obj: ttmutex.c ttmutex.h ttconfig.h arch\win16\ft_conf.h -ttobjs.obj: ttobjs.c ttobjs.h ttconfig.h arch\win16\ft_conf.h ttengine.h \ - tttypes.h freetype.h fterrid.h ftnameid.h ttmutex.h ttcache.h \ - tttables.h ttcmap.h ttfile.h ttdebug.h ttcalc.h ttmemory.h ttload.h \ - ttinterp.h ttextend.h -ttraster.obj: ttraster.c ttraster.h ttconfig.h arch\win16\ft_conf.h \ - freetype.h fterrid.h ftnameid.h ttengine.h tttypes.h ttmutex.h \ - ttdebug.h ttcalc.h ttmemory.h -extend\ftxcmap.obj: extend\ftxcmap.c extend\ftxcmap.h freetype.h fterrid.h \ - ftnameid.h tttypes.h ttconfig.h arch\win16\ft_conf.h ttobjs.h \ - ttengine.h ttmutex.h ttcache.h tttables.h ttcmap.h -extend\ftxerr18.obj: extend\ftxerr18.c extend\ftxerr18.h freetype.h fterrid.h \ - ftnameid.h extend\ftxkern.h extend\ftxpost.h extend\ftxopen.h \ - extend\ftxgdef.h extend\ftxgsub.h extend\ftxgpos.h ttconfig.h \ - arch\win16\ft_conf.h -extend\ftxgasp.obj: extend\ftxgasp.c extend\ftxgasp.h freetype.h fterrid.h \ - ftnameid.h tttypes.h ttconfig.h arch\win16\ft_conf.h ttobjs.h \ - ttengine.h ttmutex.h ttcache.h tttables.h ttcmap.h -extend\ftxgdef.obj: extend\ftxgdef.c tttypes.h ttconfig.h arch\win16\ft_conf.h \ - freetype.h fterrid.h ftnameid.h tttags.h ttload.h ttobjs.h ttengine.h \ - ttmutex.h ttcache.h tttables.h ttcmap.h ttextend.h ttmemory.h \ - ttfile.h ttdebug.h extend\ftxopen.h extend\ftxgdef.h extend\ftxgsub.h \ - extend\ftxgpos.h extend\ftxopenf.h -extend\ftxgpos.obj: extend\ftxgpos.c tttypes.h ttconfig.h arch\win16\ft_conf.h \ - freetype.h fterrid.h ftnameid.h tttags.h ttload.h ttobjs.h ttengine.h \ - ttmutex.h ttcache.h tttables.h ttcmap.h ttextend.h ttmemory.h \ - ttfile.h ttdebug.h extend\ftxopen.h extend\ftxgdef.h extend\ftxgsub.h \ - extend\ftxgpos.h extend\ftxopenf.h -extend\ftxgsub.obj: extend\ftxgsub.c tttypes.h ttconfig.h arch\win16\ft_conf.h \ - freetype.h fterrid.h ftnameid.h tttags.h ttload.h ttobjs.h ttengine.h \ - ttmutex.h ttcache.h tttables.h ttcmap.h ttextend.h ttmemory.h \ - ttfile.h ttdebug.h extend\ftxopen.h extend\ftxgdef.h extend\ftxgsub.h \ - extend\ftxgpos.h extend\ftxopenf.h -extend\ftxkern.obj: extend\ftxkern.c extend\ftxkern.h freetype.h fterrid.h \ - ftnameid.h ttextend.h ttconfig.h arch\win16\ft_conf.h tttypes.h \ - ttobjs.h ttengine.h ttmutex.h ttcache.h tttables.h ttcmap.h ttdebug.h \ - ttload.h ttmemory.h ttfile.h tttags.h -extend\ftxopen.obj: extend\ftxopen.c tttypes.h ttconfig.h arch\win16\ft_conf.h \ - freetype.h fterrid.h ftnameid.h ttload.h ttobjs.h ttengine.h \ - ttmutex.h ttcache.h tttables.h ttcmap.h ttextend.h ttmemory.h \ - ttfile.h ttdebug.h extend\ftxopen.h extend\ftxgdef.h extend\ftxgsub.h \ - extend\ftxgpos.h extend\ftxopenf.h -extend\ftxpost.obj: extend\ftxpost.c extend\ftxpost.h freetype.h fterrid.h \ - ftnameid.h tttypes.h ttconfig.h arch\win16\ft_conf.h ttobjs.h \ - ttengine.h ttmutex.h ttcache.h tttables.h ttcmap.h ttload.h ttfile.h \ - ttdebug.h tttags.h ttmemory.h ttextend.h -extend\ftxsbit.obj: extend\ftxsbit.c extend\ftxsbit.h freetype.h fterrid.h \ - ftnameid.h ttobjs.h ttconfig.h arch\win16\ft_conf.h ttengine.h \ - tttypes.h ttmutex.h ttcache.h tttables.h ttcmap.h ttfile.h ttdebug.h \ - ttload.h ttmemory.h tttags.h ttextend.h -extend\ftxwidth.obj: extend\ftxwidth.c extend\ftxwidth.h freetype.h fterrid.h \ - ftnameid.h ttdebug.h ttconfig.h arch\win16\ft_conf.h tttypes.h \ - ttobjs.h ttengine.h ttmutex.h ttcache.h tttables.h ttcmap.h ttfile.h \ - tttags.h ttload.h -!ifndef __MAKE__ -arch\win16\freetype.obj: arch\win16\freetype.c ttapi.c ttconfig.h \ - arch\win16\ft_conf.h freetype.h fterrid.h ftnameid.h ttengine.h \ - tttypes.h ttmutex.h ttcalc.h ttmemory.h ttcache.h ttfile.h ttdebug.h \ - ttobjs.h tttables.h ttcmap.h ttload.h ttgload.h ttraster.h ttextend.h \ - ttcache.c ttcalc.c ttcmap.c ttdebug.c ttgload.c tttags.h ttinterp.c \ - ttinterp.h ttload.c ttobjs.c ttraster.c arch\win16\hugefile.c \ - ttfile.c arch\win16\hugemem.c ttmutex.c ttextend.c -arch\win16\hugefile.obj: arch\win16\hugefile.c ttconfig.h arch\win16\ft_conf.h \ - tttypes.h freetype.h fterrid.h ftnameid.h ttfile.c ttdebug.h \ - ttengine.h ttmutex.h ttmemory.h ttfile.h -arch\win16\hugemem.obj: arch\win16\hugemem.c ttdebug.h ttconfig.h \ - arch\win16\ft_conf.h tttypes.h freetype.h fterrid.h ftnameid.h \ - ttmemory.h ttengine.h ttmutex.h -!endif diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/win16/freetype.c b/Build/source/libs/freetype/freetype-1.5/lib/arch/win16/freetype.c deleted file mode 100644 index 6912a5af04e..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/win16/freetype.c +++ /dev/null @@ -1,51 +0,0 @@ -/* This file is part of the FreeType project */ - -/* Single object library component for 16-bit Windows. */ -/* Note that low-optimizing compilers (such as Borland ones) cannot */ -/* successfully compile this file, because it exceeds 64K of code size. */ -#define TT_MAKE_OPTION_SINGLE_OBJECT - -/* Note, you should define the FT_EXPORT_xxx macros here if you */ -/* want to build a Win16 DLL. If undefined, the macros default to */ -/* "extern"/"" (nothing), which is suitable for static libraries. */ -/* See `ttconfig.h' for details. */ - -/* The macro FT_EXPORT_DEF is placed before each high-level API */ -/* function declaration, and FT_EXPORT_FUNC before each */ -/* definition (body). Similarly, FT_EXPORT_DECL is placed before */ -/* each variable declaration, and FT_EXPORT_VAR before its */ -/* definition. You can then use it to take any compiler-specific */ -/* pragma for DLL-exported symbols */ - -/* first include common core components */ - -#include "ttapi.c" -#include "ttcache.c" -#include "ttcalc.c" -#include "ttcmap.c" -#include "ttdebug.c" -#include "ttgload.c" -#include "ttinterp.c" -#include "ttload.c" -#include "ttobjs.c" -#include "ttraster.c" - -/* then system-specific (or ANSI) components */ - -#ifdef TT_HUGE_PTR -#include "arch/win16/hugefile.c" -#include "arch/win16/hugemem.c" -#else -#include "ttfile.c" -#include "ttmemory.c" -#endif -#include "ttmutex.c" - -/* finally, add some extensions */ - -#ifdef TT_CONFIG_OPTION_EXTEND_ENGINE -#include "ttextend.c" -#endif - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/win16/ft_conf.h b/Build/source/libs/freetype/freetype-1.5/lib/arch/win16/ft_conf.h deleted file mode 100644 index a4f90b97c7d..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/win16/ft_conf.h +++ /dev/null @@ -1,235 +0,0 @@ -/******************************************************************* - * - * ft_conf.h for 16-bit Windows - * - * - * Copyright 1996-2002 by - * David Turner, Robert Wilhelm, and Werner Lemberg - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - ******************************************************************/ - - -/* we need the following because there are some typedefs in this file */ - -#ifndef FT_CONF_H -#define FT_CONF_H - -/* Define to empty if the keyword does not work. */ -/* #undef const */ - -/* Define if you have the <stdlib.h> header file. */ -#define HAVE_STDLIB_H - -/* Define if you have the memcpy function. */ -#define HAVE_MEMCPY - -/* Define if you have the memmove function. */ -#define HAVE_MEMMOVE - -/* Define if you have the <unistd.h> header file. */ -#undef HAVE_UNISTD_H - -/* Define if you have the <libintl.h> header file. */ -/* #undef HAVE_LIBINTL_H */ - -/* Define if you have the <locale.h> header file. */ -/* Only meaningful if you have <libintl.h>. */ -/* #undef HAVE_LOCALE_H */ - -/* command.com can't pipe stderr into a file; any message would be */ -/* written into the graphics screen. */ -#define HAVE_PRINT_FUNCTION 1 - -#define Print( format, ap ) vfprintf( stdout, (format), (ap) ) - -/* The number of bytes in a int. */ -#define SIZEOF_INT 2 - -/* The number of bytes in a long. */ -#define SIZEOF_LONG 4 - -/**********************************************************************/ -/* */ -/* The following configuration macros can be tweaked manually by */ -/* a developer to turn on or off certain features or options in the */ -/* TrueType engine. This may be useful to tune it for specific */ -/* purposes.. */ -/* */ -/**********************************************************************/ - - -/*************************************************************************/ -/* Define this if the underlying operating system uses a different */ -/* character width than 8bit for file names. You must then also supply */ -/* a typedef declaration for defining 'TT_Text'. Default is off. */ - -/* #define HAVE_TT_TEXT */ - - -/*************************************************************************/ -/* Define this if you want to generate code to support engine extensions */ -/* Default is on, but if you're satisfied by the basic services provided */ -/* by the engine and need no extensions, undefine this configuration */ -/* macro to save a few more bytes. */ - -#define TT_CONFIG_OPTION_EXTEND_ENGINE - - -/*************************************************************************/ -/* Define this if you want to generate code to support gray-scaling, */ -/* a.k.a. font-smoothing or anti-aliasing. Default is on, but you can */ -/* disable it if you don't need it. */ - -#define TT_CONFIG_OPTION_GRAY_SCALING - - -/*************************************************************************/ -/* Define this if you want to compile a bytecode interpreter in the */ -/* TrueType driver. Note that there are important patent issues related */ -/* to the use of the interpreter. */ -/* */ -/* By undefining this, you will only compile the code necessary to load */ -/* TrueType glyphs without hinting. */ - -#undef TT_CONFIG_OPTION_BYTECODE_INTERPRETER - - -/*************************************************************************/ -/* Define this if you want to use a big 'switch' statement within the */ -/* bytecode interpreter. Because some non-optimizing compilers are not */ -/* able to produce jump tables from such statements, undefining this */ -/* configuration macro will generate the appropriate C jump table in */ -/* ttinterp.c. If you use an optimizing compiler, you should leave it */ -/* defined for better performance and code compactness.. */ - -#define TT_CONFIG_OPTION_INTERPRETER_SWITCH - - -/*************************************************************************/ -/* Define this if you want to build a 'static' version of the TrueType */ -/* bytecode interpreter. This will produce much bigger code, which */ -/* _may_ be faster on some architectures.. */ -/* */ -/* Do NOT DEFINE THIS is you build a thread-safe version of the engine */ - -#undef TT_CONFIG_OPTION_STATIC_INTERPRETER - - -/*************************************************************************/ -/* Define this if you want to build a 'static' version of the scan-line */ -/* converter (the component which in charge of converting outlines into */ -/* bitmaps). This will produce a bigger object file for "ttraster.c", */ -/* which _may_ be faster on some architectures.. */ -/* */ -/* Do NOT DEFINE THIS is you build a thread-safe version of the engine */ - -#undef TT_CONFIG_OPTION_STATIC_RASTER - - - -/*************************************************************************/ -/* Define TT_CONFIG_THREAD_SAFE if you want to build a thread-safe */ -/* version of the library. */ - -#undef TT_CONFIG_OPTION_THREAD_SAFE - - -/**********************************************************************/ -/* */ -/* The following macros are used to define the debug level, as well */ -/* as individual tracing levels for each component. There are */ -/* currently three modes of operation : */ -/* */ -/* - trace mode (define DEBUG_LEVEL_TRACE) */ -/* */ -/* The engine prints all error messages, as well as tracing */ -/* ones, filtered by each component's level */ -/* */ -/* - debug mode (define DEBUG_LEVEL_ERROR) */ -/* */ -/* Disable tracing, but keeps error output and assertion */ -/* checks. */ -/* */ -/* - release mode (don't define anything) */ -/* */ -/* Don't include error-checking or tracing code in the */ -/* engine's code. Ideal for releases. */ -/* */ -/* NOTE : */ -/* */ -/* Each component's tracing level is defined in its own source. */ -/* */ -/**********************************************************************/ - -/* Define if you want to use the tracing debug mode */ -#undef DEBUG_LEVEL_TRACE - -/* Define if you want to use the error debug mode - ignored if */ -/* DEBUG_LEVEL_TRACE is defined */ -#undef DEBUG_LEVEL_ERROR - - -/**************************************************************************/ -/* Definition of various integer sizes. These types are used by ttcalc */ -/* and ttinterp (for the 64-bit integers) only.. */ - -#if SIZEOF_INT == 4 - - typedef signed int TT_Int32; - typedef unsigned int TT_Word32; - -#elif SIZEOF_LONG == 4 - - typedef signed long TT_Int32; - typedef unsigned long TT_Word32; - -#else -#error "no 32bit type found" -#endif - -/* LONG64 must be defined when a 64-bit type is available */ -/* INT64 must then be defined to this type.. */ -#undef LONG64 -#undef INT64 - -/**********************************************************************/ -/* */ -/* The following macros does the dusty work of selecting the proper */ -/* of qualifiers in order to build a DLL, exporting only the needed */ -/* functions, using the (in)famous FAR PASCAL EXPORT... */ -/* */ -/* Refer to ttconfig.h for explanations of the machinery. */ - -#if defined( _WINDLL ) || defined( __DLL__ ) || defined( FT_DLL ) - -#if defined( _M_I86 ) || ( defined( __TURBOC__ ) && __TURBOC__ > 0x400 ) -#define FAR __far -#define PASCAL __pascal -#define EXPORT __export -#else -#define FAR _far -#define PASCAL _pascal -#define EXPORT _export -#endif - -#define FT_INTERNAL_FUNC( type ) type -#define FT_INTERNAL_DEF( type ) extern type - -#define FT_EXPORT_DEF( type ) extern type FAR PASCAL EXPORT -#define FT_EXPORT_FUNC( type ) type FAR PASCAL EXPORT - -/* This is for variables. */ -#define FT_EXPORT_DECL( type ) extern type PASCAL -#define FT_EXPORT_VAR( type ) type PASCAL - -#endif /* DLL stuff */ - -#endif /* FT_CONF_H */ - -/* End of ft_conf.h */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/win16/hugefile.c b/Build/source/libs/freetype/freetype-1.5/lib/arch/win16/hugefile.c deleted file mode 100644 index 7ffcd28d033..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/win16/hugefile.c +++ /dev/null @@ -1,51 +0,0 @@ -/******************************************************************* - * - * hugefile.c - * - * File I/O Component (body) for dealing with "huge" objects - * under 16-bit Windows. Relies on the "default" version, with - * a small hook. Requires Windows 3.1+. - * - * Written by Antoine Leca based on ideas from Dave Hoo. - * Copyright 1999-2000 Dave Hoo, Antoine Leca, - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - * NOTE - * - * This file #includes the normal version, to avoid discrepancies - * between versions. It uses only ANSI-mandated "tricks", so - * any ANSI-compliant compiler should be able to compile this file. - * - ******************************************************************/ - -#include "ttconfig.h" -#include "tttypes.h" - -#include <windows.h> - - /* Here we include <stdio.h>, to have the proper definition of fread */ -#include <stdio.h> - - /* Some compilers define fileno(), some define _fileno()... */ -#ifndef _fileno -#define _fileno(stream) fileno(stream) -#endif - - /* Then, we divert the use of fread to the Windows version */ -#undef fread -#define fread(ptr, size, n, stream) \ - _hread( _fileno(stream), (char TT_HUGE_PTR *) ptr, (ULong)n * size ) - - - /* Now, we include the "normal" version of `ttfile.c' */ - /* The ANSI/ISO standard mandates that the include of <stdio.h> */ - /* there have no bad effects. */ -#include "ttfile.c" - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/win16/hugemem.c b/Build/source/libs/freetype/freetype-1.5/lib/arch/win16/hugemem.c deleted file mode 100644 index cac6bd7412a..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/win16/hugemem.c +++ /dev/null @@ -1,539 +0,0 @@ -/******************************************************************* - * - * hugemem.c - * - * Memory management component (body) - * for dealing with "huge" objects with 16-bit Windows. - * - * Written by Antoine Leca based on ideas from Dave Hoo. - * Copyright 1999-2000 Dave Hoo, Antoine Leca, - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - ******************************************************************/ - -#include <limits.h> -#include <windows.h> - -#include "ttdebug.h" -#include "ttmemory.h" -#include "ttengine.h" - -#ifndef TT_HUGE_PTR -#error "This component needs TT_HUGE_PTR to be #defined." -#endif - -#ifdef TT_CONFIG_OPTION_THREAD_SAFE -#error "This component needs static allocation and is not re-entrant." -#endif - - /* If the memory reclaimed is abobve this limit, alloc directly from */ - /* global heap. Else, alloc using malloc (using suballocation). */ -#ifndef MEMORY_MIN_GLOBAL -#define MEMORY_MIN_GLOBAL 4096 -#endif - -/* required by the tracing mode */ -#undef TT_COMPONENT -#define TT_COMPONENT trace_memory - - -#ifdef DEBUG_MEMORY - -#include <stdio.h> - -#define MAX_TRACKED_BLOCKS 1024 - - struct TMemRec_ - { - void* base; - Long size; - }; - - typedef struct TMemRec_ TMemRec; - - static TMemRec pointers[MAX_TRACKED_BLOCKS + 1]; - - static Int num_alloc; - static Int num_free; - static Int num_realloc; /* counts only `real' reallocations - (i.e., an existing buffer will be resized - to a value larger than zero */ - - static Int fail_alloc; - static Int fail_realloc; - static Int fail_free; - -#else - - /* We need a tracing stack of the calls to big chunks of memory, */ - /* in order to call the matching version of free(). */ - -#define MAX_TRACKED_BIGCHUNKS 64 - - struct TMemRec_ - { - void* base; - }; - - typedef struct TMemRec_ TMemRec; - - static TMemRec pointers[MAX_TRACKED_BIGCHUNKS + 1]; - -#endif /* DEBUG_MEMORY */ - - -#ifndef TT_CONFIG_REENTRANT - Long TTMemory_Allocated; - Long TTMemory_MaxAllocated; -#endif - - -/******************************************************************* - * - * Function : TT_Alloc - * - * Description : Allocates memory from the heap buffer. - * - * Input : Size size of the memory to be allocated - * P pointer to a buffer pointer - * - * Output : Error code. - * - * NOTE : The newly allocated block should _always_ be zeroed - * on return. Many parts of the engine rely on this to - * work properly. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Alloc( ULong Size, void** P ) - { - Int i; - - - if ( !P ) - return TT_Err_Invalid_Argument; - /* Also see below for another case of "invalid argument". */ - - if ( Size > 0 ) - { - if ( Size >= MEMORY_MIN_GLOBAL ) - { - HANDLE hMem; - - hMem = GlobalAlloc( GMEM_ZEROINIT, Size ); - if ( !hMem ) - return TT_Err_Out_Of_Memory; - - *P = (void*)GlobalLock( hMem ); - } - else - *P = (void*)malloc( Size ); - - if ( !*P ) - return TT_Err_Out_Of_Memory; - -#ifndef TT_CONFIG_REENTRANT - TTMemory_MaxAllocated += Size; - TTMemory_Allocated += Size; -#endif - -#ifdef DEBUG_MEMORY - - num_alloc++; - - i = 0; - while ( i < MAX_TRACKED_BLOCKS && pointers[i].base != NULL ) - i++; - - if ( i >= MAX_TRACKED_BLOCKS ) - fail_alloc++; - else - { - pointers[i].base = *P; - pointers[i].size = Size; - } - -#else - - if ( Size >= MEMORY_MIN_GLOBAL ) - { - i = 0; - while ( i < MAX_TRACKED_BIGCHUNKS && pointers[i].base != NULL ) - i++; - - if ( i >= MAX_TRACKED_BIGCHUNKS ) - /* We fail badly here. Increase MAX_TRACKED_BIGCHUNKS if needed. */ - return TT_Err_Invalid_Argument; - else - pointers[i].base = *P; - } - -#endif /* DEBUG_MEMORY */ - - /* The nice thing about GlobalAlloc is that it zeroes the memory. */ - - if ( Size < MEMORY_MIN_GLOBAL ) - MEM_Set( *P, 0, Size ); - - } - else - *P = NULL; - - return TT_Err_Ok; - } - - -#ifdef TT_CONFIG_OPTION_EXTEND_ENGINE - - -/******************************************************************* - * - * Function : TT_Realloc - * - * Description : Reallocates memory from the heap buffer. - * - * Input : Size new size of the memory to be allocated; - * if zero, TT_Free() will be called - * P pointer to a buffer pointer; if *P == NULL, - * TT_Alloc() will be called - * - * Output : Error code. - * - * NOTES : It's not necessary to zero the memory in case the - * reallocated buffer is larger than before -- the - * application has to take care of this. - * - * If the memory request fails, TT_Free() will be - * called on *P, and TT_Err_Out_Of_Memory returned. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Realloc( ULong Size, void** P ) - { - ULong oldSize; - void* Q; - Int i; - - - if ( !P ) - return TT_Err_Invalid_Argument; - - if ( !*P ) - return TT_Alloc( Size, P ); - - if ( Size == 0 ) - return TT_Free( P ); - -#ifdef DEBUG_MEMORY - - num_realloc++; - - i = 0; - while ( i < MAX_TRACKED_BLOCKS && pointers[i].base != *P ) - i++; - - if ( i >= MAX_TRACKED_BLOCKS ) - fail_realloc++; - else - oldSize = pointers[i].size; - -#else - - i = 0; - while ( i < MAX_TRACKED_BIGCHUNKS && pointers[i].base != *P ) - i++; - - /* If we did not found the pointer, then this is a "small" chunk. */ - - if ( i < MAX_TRACKED_BIGCHUNKS ) - { - /* Signal we found a big one. Real size does not matter. */ - oldSize = MEMORY_MIN_GLOBAL; - } - -#endif /* DEBUG_MEMORY */ - - if ( oldSize >= MEMORY_MIN_GLOBAL ) - { - /* Deal with a big chunk. */ - HANDLE hMem, hNewMem; - - hMem = GlobalHandle ( (ULong)*P >> 16 ) & 0xFFFF; - if ( !hMem ) /* Bad call... */ - return TT_Err_Invalid_Argument; - - GlobalUnlock( hMem ); - hNewMem = GlobalReAlloc( hMem, Size, 0 ); - if ( hNewMem ) - *P = (void*)GlobalLock( hNewMem ); - } - if ( Size >= MEMORY_MIN_GLOBAL ) - { - /* A small chunk crosses the limit... */ - - if( TT_Alloc( Size, &Q ) != TT_Err_Ok ) - Q = NULL; /* Failed to create the new block. */ - else - MEM_Copy( Q, *P, oldSize ); - - /* We need to register the new entry. */ -#ifndef DEBUG_MEMORY - - i = 0; - while ( i < MAX_TRACKED_BIGCHUNKS && pointers[i].base != NULL ) - i++; - - if ( i >= MAX_TRACKED_BIGCHUNKS ) - /* We fail badly here. Increase MAX_TRACKED_BIGCHUNKS if needed. */ - return TT_Err_Invalid_Argument; -#endif /* DEBUG_MEMORY */ - } - else - Q = (void*)realloc( *P, Size ); - - if ( !Q ) - { - TT_Free( *P ); - return TT_Err_Out_Of_Memory; - } - -#ifdef DEBUG_MEMORY - - if ( i < MAX_TRACKED_BLOCKS ) - { -#ifndef TT_CONFIG_REENTRANT - TTMemory_Allocated += Size - pointers[i].size; - if ( Size > pointers[i].size ) - TTMemory_MaxAllocated += Size - pointers[i].size; -#endif - - pointers[i].base = Q; - pointers[i].size = Size; - } -#else - if ( i < MAX_TRACKED_BIGCHUNKS ) - { - pointers[i].base = Q; - } -#endif /* DEBUG_MEMORY */ - - *P = Q; - - return TT_Err_Ok; - } - - -#endif /* TT_CONFIG_OPTION_EXTEND_ENGINE */ - - -/******************************************************************* - * - * Function : TT_Free - * - * Description : Releases a previously allocated block of memory. - * - * Input : P pointer to memory block - * - * Output : Always SUCCESS. - * - * Note : The pointer must _always_ be set to NULL by this function. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Free( void** P ) - { - Int i; - Long Size = 0; - - - if ( !P || !*P ) - return TT_Err_Ok; - -#ifdef DEBUG_MEMORY - - num_free++; - - i = 0; - while ( i < MAX_TRACKED_BLOCKS && pointers[i].base != *P ) - i++; - - if ( i >= MAX_TRACKED_BLOCKS ) - fail_free++; - else - { -#ifndef TT_CONFIG_REENTRANT - TTMemory_Allocated -= pointers[i].size; -#endif - - Size = pointers[i].size; - pointers[i].base = NULL; - pointers[i].size = 0; - } - -#else - - i = 0; - while ( i < MAX_TRACKED_BIGCHUNKS && pointers[i].base != *P ) - i++; - - /* If we did not found the pointer, then this is a "small" chunk. */ - - if ( i < MAX_TRACKED_BIGCHUNKS ) - { - pointers[i].base = NULL; - /* Signal we found a big one. Real size does not matter. */ - Size = MEMORY_MIN_GLOBAL; - } - -#endif /* DEBUG_MEMORY */ - - if ( Size >= MEMORY_MIN_GLOBAL ) - { - HANDLE hMem; - - hMem = GlobalHandle ( (ULong)*P >> 16 ) & 0xFFFF; - if ( !hMem ) /* Bad call... */ - return TT_Err_Invalid_Argument; - - GlobalUnlock( hMem ); - GlobalFree ( hMem ); - } - else - free( *P ); - - *P = NULL; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TTMemory_Init - * - * Description : Initializes the memory. - * - * Output : Always SUCCESS. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TTMemory_Init( void ) - { -#ifdef DEBUG_MEMORY - Int i; - - - for ( i = 0; i < MAX_TRACKED_BLOCKS; i++ ) - { - pointers[i].base = NULL; - pointers[i].size = 0; - } - - num_alloc = 0; - num_realloc = 0; - num_free = 0; - - fail_alloc = 0; - fail_realloc = 0; - fail_free = 0; -#else - Int i; - - for ( i = 0; i < MAX_TRACKED_BIGCHUNKS; i++ ) - { - pointers[i].base = NULL; - } -#endif - - -#ifndef TT_CONFIG_REENTRANT - TTMemory_Allocated = 0; - TTMemory_MaxAllocated = 0; -#endif - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TTMemory_Done - * - * Description : Finalizes memory usage. - * - * Output : Always SUCCESS. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TTMemory_Done( void ) - { -#ifdef DEBUG_MEMORY - Int i, num_leaked, tot_leaked; - - - num_leaked = 0; - tot_leaked = 0; - - for ( i = 0; i < MAX_TRACKED_BLOCKS; i++ ) - { - if ( pointers[i].base ) - { - num_leaked ++; - tot_leaked += pointers[i].size; - } - } - - fprintf( stderr, - "%d memory allocations, of which %d failed\n", - num_alloc, - fail_alloc ); - - fprintf( stderr, - "%d memory reallocations, of which %d failed\n", - num_realloc, - fail_realloc ); - - fprintf( stderr, - "%d memory frees, of which %d failed\n", - num_free, - fail_free ); - - if ( num_leaked > 0 ) - { - fprintf( stderr, - "There are %d leaked memory blocks, totalizing %d bytes\n", - num_leaked, tot_leaked ); - - for ( i = 0; i < MAX_TRACKED_BLOCKS; i++ ) - { - if ( pointers[i].base ) - { - fprintf( stderr, - "index: %4d (base: $%08lx, size: %08ld)\n", - i, - (long)pointers[i].base, - pointers[i].size ); - } - } - } - else - fprintf( stderr, "No memory leaks !\n" ); - -#endif /* DEBUG_MEMORY */ - - return TT_Err_Ok; - } - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/win16/makedef b/Build/source/libs/freetype/freetype-1.5/lib/arch/win16/makedef deleted file mode 100755 index 1c82cfd7400..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/win16/makedef +++ /dev/null @@ -1,28 +0,0 @@ -# makedef -# -# This shell script creates a .DEF file necessary for building as DLL -# on the Windows 16-bit platform. - -echo "\ -; This file is part of the FreeType project. -; Automatically generated, but you can customize to fit your needs. -; However, changes will be erased if not made in \`makedef'... -; -; This definition file to be used to built the library as DLL -; has been generated automatically with the script \`makedef' on -; `date +%Y-%m-%d`. - -LIBRARY ft15_16 -DESCRIPTION 'FreeType 1.5 16-bit DLL © 1996-2002 Turner, Wilhelm, Lemberg' -EXETYPE WINDOWS -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE SINGLE -EXPORTS -" > ttf.def - -(cd ../.. - sed -n -e "/^ *FT_EXPORT_DE/!d ; n ; s/(.*$//" \ - -e "s/;$//" -e "s/ const / /" -e "s/ *TT_[a-zA-Z_\*]* //" \ - -e "s/ *//g" -e "s/^\(.*\)/ _\1/" -e "p" *.h extend/*.h) >> ttf.def - -# eof diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/win16/makedep b/Build/source/libs/freetype/freetype-1.5/lib/arch/win16/makedep deleted file mode 100755 index 7a0476eda9d..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/win16/makedep +++ /dev/null @@ -1,48 +0,0 @@ -# makedep -# -# This shell script creates a dependency file necessary for older compilers -# on the Windows 16-bit platform. -# -# If you run this script under non-Windows operating systems, expect -# warnings that `windows.h' can't be found. -# -# Copyright 1996-2002 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. - -echo "\ -# This file is part of the FreeType project. -# Automatically generated, but you can customize to fit your needs. -# However, changes will be erased if not made in \`makedep'... -# -# This dependency file to be used with various Windows compilers -# has been generated automatically with the script \`makedep' on -# `date +%Y-%m-%d`. -" > depend.win - -(cd ../.. - gcc -MM -Iarch/win16 -I. \ - *.c | \ - sed -e "s/\.o:/.obj:/" -e "s:/:\\\\:g") >> depend.win - -(cd ../.. - gcc -MM -Iarch/win16 -I. -Iextend \ - extend/*.c | \ - sed -e "s/^\(.*\)\.o:/extend\\\\\1.obj:/" -e "s:/:\\\\:g") >> depend.win - -echo "!ifndef __MAKE__" >> depend.win - -(cd ../.. - gcc -MM -Iarch/win16 -I. -Iextend \ - -DTT_HUGE_PTR -Dhuge_alloc -Dhuge_free arch/win16/*.c | \ - sed -e "s/^\(.*\)\.o:/arch\\\\win16\\\\\1.obj:/" \ - -e "s:/:\\\\:g") >> depend.win - -echo "!endif" >> depend.win - -# eof diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/win16/ttf.def b/Build/source/libs/freetype/freetype-1.5/lib/arch/win16/ttf.def deleted file mode 100644 index 3e0fd6617ac..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/win16/ttf.def +++ /dev/null @@ -1,134 +0,0 @@ -; This file is part of the FreeType project. -; Automatically generated, but you can customize to fit your needs. -; However, changes will be erased if not made in `makedef'... -; -; This definition file to be used to built the library as DLL -; has been generated automatically with the script `makedef' on -; 2002-11-18. - -LIBRARY ft15_16 -DESCRIPTION 'FreeType 1.5 16-bit DLL © 1996-2002 Turner, Wilhelm, Lemberg' -EXETYPE WINDOWS -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE SINGLE -EXPORTS - - _TT_FreeType_Version - _TT_Init_FreeType - _TT_Done_FreeType - _TT_Set_Raster_Gray_Palette - _TT_Open_Face - _TT_Open_Collection - _TT_Get_Face_Properties - _TT_Set_Face_Pointer - _TT_Get_Face_Pointer - _TT_Flush_Face - _TT_Get_Face_Metrics - _TT_Close_Face - _TT_Get_Font_Data - _TT_New_Instance - _TT_Set_Instance_Resolutions - _TT_Set_Instance_CharSize - _TT_Set_Instance_CharSizes - _TT_Set_Instance_PixelSizes - _TT_Set_Instance_Transform_Flags - _TT_Get_Instance_Metrics - _TT_Set_Instance_Pointer - _TT_Get_Instance_Pointer - _TT_Done_Instance - _TT_New_Glyph - _TT_Done_Glyph - _TT_Load_Glyph - _TT_Get_Glyph_Outline - _TT_Get_Glyph_Metrics - _TT_Get_Glyph_Big_Metrics - _TT_Get_Glyph_Bitmap - _TT_Get_Glyph_Pixmap - _TT_New_Outline - _TT_Done_Outline - _TT_Copy_Outline - _TT_Get_Outline_Bitmap - _TT_Get_Outline_Pixmap - _TT_Get_Outline_BBox - _TT_Transform_Outline - _TT_Translate_Outline - _TT_Transform_Vector - _TT_MulDiv - _TT_MulFix - _TT_Get_CharMap_Count - _TT_Get_CharMap_ID - _TT_Get_CharMap - _TT_Char_Index - _TT_Get_Name_Count - _TT_Get_Name_ID - _TT_Get_Name_String - _TT_Register_Extension - _TT_Extension_Get - _TT_Use_Stream - _TT_Done_Stream - _TT_Flush_Stream - _TT_Read_File - _TT_Seek_File - _TT_Skip_File - _TT_Read_At_File - _TT_File_Pos - _TT_Stream_Size - _TT_Null_FileFrame - _TT_Access_Frame - _TT_Check_And_Access_Frame - _TT_Forget_Frame - _TT_Get_Char - _TT_Get_Short - _TT_Get_Long - _TT_LookUp_Table - _TT_Alloc - _TT_Realloc - _TT_Free - _TT_CharMap_First - _TT_CharMap_Next - _TT_CharMap_Last - _TT_ErrToString18 - _TT_Get_Face_Gasp_Flags - _TT_Init_GDEF_Extension - _TT_Load_GDEF_Table - _TT_GDEF_Get_Glyph_Property - _TT_GDEF_Build_ClassDefinition - _TT_Init_GPOS_Extension - _TT_Load_GPOS_Table - _TT_GPOS_Select_Script - _TT_GPOS_Select_Language - _TT_GPOS_Select_Feature - _TT_GPOS_Query_Scripts - _TT_GPOS_Query_Languages - _TT_GPOS_Query_Features - _TT_GPOS_Add_Feature - _TT_GPOS_Clear_Features - _TT_GPOS_Register_Glyph_Function - _TT_GPOS_Register_MM_Function - _TT_GPOS_Apply_String - _TT_Init_GSUB_Extension - _TT_Load_GSUB_Table - _TT_GSUB_Select_Script - _TT_GSUB_Select_Language - _TT_GSUB_Select_Feature - _TT_GSUB_Query_Scripts - _TT_GSUB_Query_Languages - _TT_GSUB_Query_Features - _TT_GSUB_Add_Feature - _TT_GSUB_Clear_Features - _TT_GSUB_Register_Alternate_Function - _TT_GSUB_Apply_String - _TT_GSUB_Add_String - _TT_Init_Kerning_Extension - _TT_Get_Kerning_Directory - _TT_Load_Kerning_Table - _TT_Init_Post_Extension - _TT_Load_PS_Names - _TT_Get_PS_Name - _TT_Init_SBit_Extension - _TT_Get_Face_Bitmaps - _TT_New_SBit_Image - _TT_Done_SBit_Image - _TT_Get_SBit_Strike - _TT_Load_Glyph_Bitmap - _TT_Get_Face_Widths diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/.cvsignore.delete b/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/.cvsignore.delete deleted file mode 100644 index e69de29bb2d..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/.cvsignore.delete +++ /dev/null diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/Makefile.BC b/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/Makefile.BC deleted file mode 100644 index a5ee5808a2d..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/Makefile.BC +++ /dev/null @@ -1,171 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library for Borland C++ for Win32. -# -# You will need Borland MAKE. -# Tested with Borland C++ v.5.0 and Borland C++ builder 4.0. -# Does not work with Borland C++ 4.0, since it needs __declspec. -# -# Use this file while in the lib directory with the following statement: -# -# make -farch/win32/Makefile.BC -# -# -# A DLL version of the library can be built with -# -# make -DDLL -farch/win32/Makefile.BC dll -# -# A debug version can be obtained with -# -# make -DDEBUG -farch/win32/Makefile.BC -# -# -# Copyright 1996-2001 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. - -ARCH = arch\win32 -FT_MAKEFILE = $(ARCH)\Makefile.BC -FT_DLL = ft15_32.dll - -CC = bcc32 -LIB = tlib /c /e -IMPLIB = implib -c - -SPURIOUS_WARNINGS = -w-nak -w-par -w-use -w-aus -w-stu -w-stv -w-cln -w-sig - -!if ! $d(DEBUG) -CFLAGS = -O2 -A -i40 -I$(ARCH);.;extend $(SPURIOUS_WARNINGS) -DLLFLAGS = -WD -!else -CFLAGS = -v -A -i40 -I$(ARCH);.;extend $(SPURIOUS_WARNINGS) -DLLFLAGS = -v -WD -!endif - -FT_DEF = $(FT_DLL:.dll=.def) -!if $d(DLL) -CFLAGS = $(CFLAGS) \ - -DEXPORT_DEF=__declspec(dllexport) -DEXPORT_FUNC=__declspec(dllexport) -!endif - - -TTFILE = .\ttfile.c -TTMEMORY = .\ttmemory.c -TTMUTEX = .\ttmutex.c - -PORT = $(TTFILE) $(TTMEMORY) $(TTMUTEX) - -# Do not insert spaces before the \ at end of line, -# otherwise the substitution for TLIB command line will fail. -SRC_X = extend\ftxgasp.c extend\ftxkern.c extend\ftxpost.c\ - extend\ftxcmap.c extend\ftxwidth.c extend\ftxerr18.c\ - extend\ftxsbit.c extend\ftxgsub.c extend\ftxgpos.c\ - extend\ftxopen.c extend\ftxgdef.c -OBJS_X = $(SRC_X:.c=.obj) - -SRC_M = ttapi.c ttcache.c ttcalc.c ttcmap.c\ - ttgload.c ttinterp.c ttload.c ttobjs.c\ - ttraster.c ttextend.c ttdebug.c $(PORT) -OBJS_M = $(SRC_M:.c=.obj) $(OBJS_X) - -SRC_S = $(ARCH)\freetype.c -OBJ_S = $(SRC_S:.c=.obj) -OBJS_S = $(OBJ_S) $(OBJS_X) - - -# Since Borland make does not handle $($(LIB_FILES)), and using -# -DLIB_FILES="$(OBJS_S)" will excess the capacity of COMMAND.COM, we cheat -# by constructing TLIB's response file directly in the `all' target. -# -# Another solution, useful during debugging of part of the library, -# would be to include each .obj in the library as soon as it is compiled. -# See ../msdos/Makefile.TC for an application. -.c.obj: - $(CC) -c -o$* @&&| - $(CFLAGS) $< -| - - -!if ! $d(DEBUG) -# Skipped if DEBUG build -all: $(OBJS_S) - -del libttf.lib - $(LIB) libttf.lib @&&| -+ $(OBJS_S: = + ) -| - -dll $(FT_DLL): $(OBJS_S) $(FT_DEF) -!if $d(DLL) - $(CC) @&&| - $(DLLFLAGS) -e$(FT_DLL) $(OBJS_S) -| - $(IMPLIB) libttf $(FT_DLL) -!else - $(MAKE) -DDLL -f$(FT_MAKEFILE) dll # Re-invoke with flag set. -!endif -!endif - -debug: $(OBJS_M) - -del libttf.lib - $(LIB) libttf.lib @&&| -+ $(OBJS_M: = + ) -| - -!ifdef DEBUG -dll $(FT_DLL): $(OBJS_M) $(FT_DEF) -!if $d(DLL) - $(CC) @&&| - $(DLLFLAGS) -e$(FT_DLL) $(OBJS_M) -| - $(IMPLIB) libttf $(FT_DLL) -!else - $(MAKE) -DDEBUG -DDLL -f$(FT_MAKEFILE) dll -!endif -!endif - -install: $(FT_DLL) -!ifdef INSTALL_DIR - copy $(FT_DLL) $(INSTALL_DIR) -!else - copy $(FT_DLL) C:\WINDOWS -!endif - -$(OBJ_S): $(SRC_S) $(SRC_M) - -# Not used here because it excesses the capacity of COMMAND.COM... -libttf.lib: $(LIB_FILES) - -del libttf.lib - echo -+$(**: =-+)> response - $(LIB) libttf.lib @&&| -+ $(**: = + ) -| - -$(FT_DEF): $(ARCH)\ttf.def - -copy $(ARCH)\ttf.def $(FT_DEF) - -clean: - -del *.obj - -del extend\*.obj - -del $(ARCH)\*.obj - -del libttf.bak - -del response - -del *.def - -del *.tds - -distclean: clean - -del libttf.lib - -del *.dll - -del $(FT_DEF) - -del C:\WINDOWS\$(FT_DLL) -!if $d(INSTALL_DIR) - -del $(INSTALL_DIR)\$(FT_DLL) -!endif - -!include "$(ARCH)\depend.win" - -# end of Makefile diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/Makefile.CL b/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/Makefile.CL deleted file mode 100644 index 2e8308d2349..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/Makefile.CL +++ /dev/null @@ -1,175 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library for Microsoft Visual C++ for 32-bit Windows. -# -# You will need NMAKE. -# -# Use this file while in the lib directory with the following statement: -# -# nmake /f arch\win32\Makefile.CL -# -# -# A DLL version of the library can be built with -# -# nmake DLL=1 /f arch\win32\Makefile.CL dll -# -# Debug versions can be obtained with -# -# nmake DEBUG=1 /f arch\win32\Makefile.CL -# -# -# Copyright 1996-2001 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. - -ARCH = arch\win32 -FT_MAKEFILE = $(ARCH)\Makefile.CL -FT_DLL = ft15_32.dll - -CC = cl /nologo -LIB = lib /nologo -LINK = link /nologo - -CFLAGS = /Za /W2 -I$(ARCH) -I. -Iextend - -!ifndef DEBUG -CFLAGS = $(CFLAGS) /Ox -DLLFLAGS = /RELEASE -!else -CFLAGS = $(CFLAGS) /Zi /Ge -DLLFLAGS = /DEBUG -!endif - -!ifdef DLL -CFLAGS = $(CFLAGS) /GD \ - /DEXPORT_DEF=__declspec(dllexport) /DEXPORT_FUNC=__declspec(dllexport) -!else -CFLAGS = $(CFLAGS) /GA -!endif - - -TTFILE = .\ttfile.c -TTMEMORY = .\ttmemory.c -TTMUTEX = .\ttmutex.c - -PORT = $(TTFILE) $(TTMEMORY) $(TTMUTEX) - -# Do not insert spaces between the file names or at end of line, otherwise -# the substitution for LIB command line will fail. Thank you. -# -SRC_X = extend\ftxgasp.c extend\ftxkern.c extend\ftxpost.c\ -extend\ftxcmap.c extend\ftxwidth.c extend\ftxerr18.c extend\ftxsbit.c\ -extend\ftxopen.c extend\ftxgsub.c extend\ftxgpos.c extend\ftxgdef.c -OBJS_X = $(SRC_X:.c=.obj) - -SRC_M = ttapi.c ttcache.c ttcalc.c ttcmap.c ttdebug.c\ -ttgload.c ttinterp.c ttload.c ttobjs.c ttraster.c ttextend.c $(PORT) -OBJS_M = $(SRC_M:.c=.obj) $(OBJS_X) - -SRC_S = $(ARCH)\freetype.c -OBJ_S = $(SRC_S:.c=.obj) -OBJS_S = $(OBJ_S) $(OBJS_X) - - -# Since Microsoft's NMAKE does not handle $($(LIB_FILES)), and using -# LIB_FILES="$(OBJS_S)" will excess the capacity of COMMAND.COM, we cheat -# by constructing LIB's response file directly in the `all' target. -# -# Another solution, useful during debugging of part of the library, -# would be to include each .obj in the library as soon as it is compiled. -# See ..\msdos\Makefile.TC for an application. -.c.obj: - @$(CC) /c /Fo$@ @<< - $(CFLAGS) $*.c -<< - - -!ifndef DEBUG -# Skipped if DEBUG build -all: $(OBJS_S) - -del libttf.lib - $(LIB) /OUT:libttf.lib @<<response - $(OBJS_S) -<<KEEP - -dll $(FT_DLL): $(OBJS_S) -!ifdef DLL - $(LINK) @<<response - $(DLLFLAGS) - /DLL - /OUT:$(FT_DLL) - /IMPLIB:libttf.lib - /DEF:$(ARCH)\ttf.def - $** -<<KEEP -!else - $(MAKE) DLL=1 /f $(FT_MAKEFILE) dll # Re-invoke with flag set. -!endif - -!endif - - -debug: $(OBJS_M) - -del libttf.lib - $(LIB) /OUT:libttf.lib @<<response - $(OBJS_M) -<<KEEP - -!ifdef DEBUG -dll $(FT_DLL): $(OBJS_M) -!ifdef DLL - $(LINK) @<<response - $(DLLFLAGS) - /DLL - /OUT:$(FT_DLL) - /IMPLIB:libttf.lib - /DEF:$(ARCH)\ttf.def - $** -<<KEEP -!else - $(MAKE) DLL=1 DEBUG=1 /f $(FT_MAKEFILE) dll # Re-invoke with flag set. -!endif -!endif - -install: $(FT_DLL) -!ifdef INSTALL_DIR - copy $(FT_DLL) $(INSTALL_DIR) -!else - copy $(FT_DLL) C:\WINDOWS -!endif - - -$(OBJ_S): $(SRC_S) $(SRC_M) - -# Not used here because it excesses the capacity of COMMAND.COM... -libttf.lib: $(LIB_FILES) - $(LIB) /OUT:$@ $** - - -clean: - -del *.obj - -del extend\*.obj - -del $(ARCH)\*.obj - -del libttf.bak - -del response - -del *.exp - -del *.pch - -del *.ilk - -distclean: clean - -del libttf.lib - -del *.dll - -del *.pdb - -del C:\WINDOWS\$(FT_DLL) -!ifdef INSTALL_DIR - -del $(INSTALL_DIR)\$(FT_DLL) -!endif - -!include "$(ARCH)\depend.win" - -# end of Makefile.CL diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/Makefile.Min b/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/Makefile.Min deleted file mode 100644 index 2741636e768..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/Makefile.Min +++ /dev/null @@ -1,109 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library for MinGW32 gcc under Win9x. -# -# You will need a port of GNU make; the MinGW32 port works. -# -# Use this file while in the lib directory with the following statements: -# -# make -f arch/win32/Makefile.Min depend -# make -f arch/win32/Makefile.Min -# -# -# When compared to the other Makefiles for gcc, there is a difference -# here, because COMMAND.COM on Win 9x is not able to process more than -# 126 characters. So the command line for ar use the * shell character. -# -# This is not as safe as normal, because unnecessary files may be -# included by mistake in the library. -# The normal behaviour can be restored by defining NON_LIMITED_SHELL=1 -# -# -# Copyright 1996-2002 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. - -ARCH = arch/win32 -FT_MAKEFILE = $(ARCH)/Makefile.Min - -CC = gcc - -ifdef DEBUG -CFLAGS = -Wall -O2 -g -ansi -pedantic -I$(ARCH) -I. -Iextend -else -CFLAGS = -Wall -ansi -pedantic -O2 -s -I$(ARCH) -I. -Iextend -endif - - -TTFILE = ./ttfile.c -TTMEMORY = ./ttmemory.c -TTMUTEX = ./ttmutex.c - -PORT = $(TTFILE) $(TTMEMORY) $(TTMUTEX) - -SRC_X = extend/ftxgasp.c extend/ftxkern.c extend/ftxpost.c \ - extend/ftxcmap.c extend/ftxwidth.c extend/ftxsbit.c \ - extend/ftxgsub.c extend/ftxgpos.c extend/ftxgdef.c \ - extend/ftxopen.c extend/ftxerr18.c -OBJS_X = $(SRC_X:.c=.o) - -SRC_M = ttapi.c ttcache.c ttcalc.c ttcmap.c ttdebug.c \ - ttgload.c ttinterp.c ttload.c ttobjs.c \ - ttraster.c ttextend.c $(PORT) -OBJS_M = $(SRC_M:.c=.o) $(OBJS_X) - -SRC_S = $(ARCH)/freetype.c -OBJ_S = $(SRC_S:.c=.o) -OBJS_S = $(OBJ_S) $(OBJS_X) - - -%.o: %.c - $(CC) $(CFLAGS) -c -o $@ $< - -.PHONY: all debug clean distclean depend - - -all: - $(MAKE) -f $(FT_MAKEFILE) LIB_FILES=$(OBJS_S) OBJ_LOC=$(ARCH) libttf.a - -debug: - $(MAKE) -f $(FT_MAKEFILE) LIB_FILES=$(OBJS_M) DEBUG=1 OBJ_LOC=. libttf.a - -$(OBJ_S): $(SRC_S) $(SRC_M) - -ifdef NOT_LIMITED_SHELL -libttf.a: $(LIB_FILES) - -del $@ - ar src $@ $^ -else -# The previous command exceeds the capacity of COMMAND.COM, -# so we cheat by passing * character to ar -libttf.a: $(LIB_FILES) - -del $@ - ar src $@ $(OBJ_LOC)/*.o extend/*.o -endif - - -clean: - -del *.o - -del extend\*.o - -del $(subst /,\,$(ARCH)\*.o) - -del response - -distclean: clean - -del dep.end - -del libttf.a - -depend: $(SRC_S) $(SRC_M) $(SRC_X) - $(CC) -E -MM -I$(ARCH) -I. -Iextend $^ > dep.end - -ifeq (dep.end,$(wildcard dep.end)) - include dep.end -endif - -# end of Makefile.Min diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/Makefile.VC b/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/Makefile.VC deleted file mode 100644 index 5211686ff67..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/Makefile.VC +++ /dev/null @@ -1,205 +0,0 @@ -# Visual C++ 2.x, 4.x, 5.0 and 6.0 makefile for freetype -# adapted from suns example makefile (related to the TCL script language) - -# Does not depend on the presence of any environment variables in -# order to compile freetype; all needed information is derived from -# location of the compiler directories. - -# -# Project directories -# -# ROOT = top of source tree -# -# TMPDIR = location where .obj files should be stored during build -# -# TOOLS32 = location of VC++ 32-bit development tools. Note that the -# VC++ 2.0 header files are broken, so you need to use the -# ones that come with the developer network CD's, or later -# versions of VC++. -# -# -# -# Copyright 1996-2001 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. - -ROOT = ..\.. -TMPDIR = . -#TOOLS32 = c:\msdev # VC++ 2.x,4.x -#TOOLS32 = c:\Program Files\devstudio\vc # VC++ 5.x -TOOLS32 = c:\Program Files\Microsoft Visual Studio\Vc98 # VC++ 6.x -INSTALLDIR = c:\WINNT\SYSTEM32 - -# Set this to the appropriate value of /MACHINE: for your platform -MACHINE = IX86 - -# Comment the following line to compile with symbols -NODEBUG=1 - - -###################################################################### -# Do not modify below this line -###################################################################### - -TTF = ft15_32 -TTFLIB = $(TTF).lib -TTFDLL = $(TTF).dll - -TTFOBJS = \ - $(TMPDIR)\ttapi.obj \ - $(TMPDIR)\ttcache.obj \ - $(TMPDIR)\ttcalc.obj \ - $(TMPDIR)\ttcmap.obj \ - $(TMPDIR)\ttdebug.obj \ - $(TMPDIR)\ttfile.obj \ - $(TMPDIR)\ttgload.obj \ - $(TMPDIR)\ttinterp.obj \ - $(TMPDIR)\ttload.obj \ - $(TMPDIR)\ttmemory.obj \ - $(TMPDIR)\ttmutex.obj \ - $(TMPDIR)\ttobjs.obj \ - $(TMPDIR)\ttraster.obj \ - $(TMPDIR)\ttextend.obj \ - $(TMPDIR)\ftxcmap.obj \ - $(TMPDIR)\ftxgasp.obj \ - $(TMPDIR)\ftxkern.obj \ - $(TMPDIR)\ftxpost.obj \ - $(TMPDIR)\ftxwidth.obj \ - $(TMPDIR)\ftxerr18.obj - - -PATH=$(TOOLS32)\bin;$(PATH) - -cc32 = "$(TOOLS32)\bin\cl.exe" -link32 = "$(TOOLS32)\bin\link.exe" -include32 = "-I$(TOOLS32)\include" -I$(ROOT)\arch\win32 -CP = copy -RM = del - -TTF_INCLUDES = -I$(ROOT) -TTF_DEFINES = -nologo -D__WIN32__ -D__WIN32DLL__ - -TTF_CFLAGS = $(cdebug) $(cflags) $(cvarsdll) $(include32) \ - $(TTF_INCLUDES) $(TTF_DEFINES) -CON_CFLAGS = $(cdebug) $(cflags) $(cvars) $(include32) -DCONSOLE -DOS_CFLAGS = $(cdebug) $(cflags) $(include16) -AL - -###################################################################### -# Link flags -###################################################################### - -!IFDEF NODEBUG -ldebug = /RELEASE -!ELSE -ldebug = -debug:full -debugtype:cv -!ENDIF - -# declarations common to all linker options -lcommon = /NODEFAULTLIB /RELEASE /NOLOGO - -# declarations for use on Intel i386, i486, and Pentium systems -!IF "$(MACHINE)" == "IX86" -DLLENTRY = @12 -lflags = $(lcommon) /MACHINE:$(MACHINE) -!ELSE -lflags = $(lcommon) /MACHINE:$(MACHINE) -!ENDIF - -conlflags = $(lflags) -subsystem:console -entry:mainCRTStartup -guilflags = $(lflags) -subsystem:windows -entry:WinMainCRTStartup -dlllflags = $(lflags) -entry:_DllMainCRTStartup$(DLLENTRY) -dll - -!IF "$(MACHINE)" == "PPC" -libc = libc.lib -libcdll = crtdll.lib -!ELSE -libc = libc.lib oldnames.lib -libcdll = msvcrt.lib oldnames.lib -!ENDIF - -baselibs = kernel32.lib $(optlibs) advapi32.lib -winlibs = $(baselibs) user32.lib gdi32.lib comdlg32.lib winspool.lib - -guilibs = $(libc) $(winlibs) -conlibs = $(libc) $(baselibs) -guilibsdll = $(libcdll) $(winlibs) -conlibsdll = $(libcdll) $(baselibs) - -###################################################################### -# Compile flags -###################################################################### - -!IFDEF NODEBUG -cdebug = -O2 -Gs -GD -!ELSE -cdebug = -Z7 -Od -WX -!ENDIF - -# declarations common to all compiler options -ccommon = -c -W3 -nologo -YX -Dtry=__try -Dexcept=__except - -# NEED BYTEORDER INFORMATION HERE !! -!IF "$(MACHINE)" == "IX86" -cflags = $(ccommon) -D_X86_=1 -!ELSE -!IF "$(MACHINE)" == "MIPS" -cflags = $(ccommon) -D_MIPS_=1 -!ELSE -!IF "$(MACHINE)" == "PPC" -cflags = $(ccommon) -D_PPC_=1 -!ELSE -!IF "$(MACHINE)" == "ALPHA" -cflags = $(ccommon) -D_ALPHA_=1 -!ENDIF -!ENDIF -!ENDIF -!ENDIF - -cvars = -DWIN32 -D_WIN32 -cvarsmt = $(cvars) -D_MT -cvarsdll = $(cvarsmt) -D_DLL - -###################################################################### -# Project specific targets -###################################################################### - -release: $(TTFDLL) -all: $(TTFDLL) - -install: $(TTFDLL) - -@md $(INSTALLDIR) - -@$(CP) $(TTFDLL) $(INSTALLDIR) - - - -$(TTFDLL): $(TTFOBJS) ttf.def - $(link32) $(ldebug) $(dlllflags) \ - $(guilibsdll) -out:$(TTFDLL) -def:ttf.def $(TTFOBJS) - -#ttf.def: $(TTFOBJS) -# ..\..\tcl8.0.4\win\release\dumpexts -o $@ ttf.dll $(TTFOBJS) - - -# -# Implicit rules -# - -{$(ROOT)\extend}.c{$(TMPDIR)}.obj: - $(cc32) $(TTF_CFLAGS) -Fo$(TMPDIR)\ $< - -{$(ROOT)}.c{$(TMPDIR)}.obj: - $(cc32) $(TTF_CFLAGS) -Fo$(TMPDIR)\ $< - - -clean: - -@del *.exp - -@del *.lib - -@del *.dll - -@del $(TMPDIR)\*.obj - -@del *.pch - -@del *.pdb diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/Makefile.gcc b/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/Makefile.gcc deleted file mode 100644 index 8cbf0737f45..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/Makefile.gcc +++ /dev/null @@ -1,107 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library for gcc under Win32. -# This Makefile will fail with MinGW32 ports of gcc and make under -# bare-bones Windows 9X, because of the limitations of command.com. -# Use Makefile.min instead. -# -# You will need GNU make. -# -# Use this file while in the lib directory with the following statements: -# -# make -f arch/win32/Makefile.gcc depend -# make -f arch/win32/Makefile.gcc -# -# -# If you have the GNU gettext package installed, you can also try -# -# make -f arch/win32/Makefile.gcc HAVE_GETTEXT -# -# -# Copyright 1996-2002 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. - -ARCH = arch/win32 -FT_MAKEFILE = $(ARCH)/Makefile.gcc - -CC = gcc - -ifndef GETTEXT -GETTEXT=NO_GETTEXT -endif - -ifndef DEBUG -CFLAGS = -Wall -O0 -g -ansi -pedantic -I$(ARCH) -I. -Iextend -D$(GETTEXT) -else -CFLAGS = -Wall -ansi -pedantic -O2 -s -I$(ARCH) -I. -Iextend -D$(GETTEXT) -endif - - -TTFILE = ./ttfile.c -TTMEMORY = ./ttmemory.c -TTMUTEX = ./ttmutex.c - -PORT = $(TTFILE) $(TTMEMORY) $(TTMUTEX) - -SRC_X = extend/ftxgasp.c extend/ftxkern.c extend/ftxpost.c \ - extend/ftxcmap.c extend/ftxwidth.c extend/ftxsbit.c \ - extend/ftxgsub.c extend/ftxgpos.c extend/ftxgdef.c \ - extend/ftxopen.c extend/ftxerr18.c -OBJS_X = $(SRC_X:.c=.o) - -SRC_M = ttapi.c ttcache.c ttcalc.c ttcmap.c ttdebug.c \ - ttgload.c ttinterp.c ttload.c ttobjs.c \ - ttraster.c ttextend.c $(PORT) -OBJS_M = $(SRC_M:.c=.o) $(OBJS_X) - -SRC_S = $(ARCH)/freetype.c -OBJ_S = $(SRC_S:.c=.o) -OBJS_S = $(OBJ_S) $(OBJS_X) - - -%.o: %.c - $(CC) $(CFLAGS) -c -o $@ $< - -.PHONY: all debug clean distclean depend - - -all: - $(MAKE) -f $(FT_MAKEFILE) LIB_FILES=OBJS_S libttf.a - -debug: - $(MAKE) -f $(FT_MAKEFILE) LIB_FILES=OBJS_M DEBUG=1 libttf.a - -HAVE_GETTEXT: - $(MAKE) -f $(FT_MAKEFILE) LIB_FILES=OBJS_S GETTEXT=HAVE_GETTEXT \ - libttf.a - -$(OBJ_S): $(SRC_S) $(SRC_M) - -libttf.a: $($(LIB_FILES)) - -del $@ - ar src $@ $^ - -clean: - -del *.o - -del extend\*.o - -del $(subst /,\,$(ARCH)/*.o) - -del response - -distclean: clean - -del dep.end - -del libttf.a - -depend: $(SRC_S) $(SRC_M) $(SRC_X) - $(CC) -E -MM -I$(ARCH) -I. -Iextend $^ > dep.end - -ifeq (dep.end,$(wildcard dep.end)) - include dep.end -endif - -# end of Makefile.gcc diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/depend.win b/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/depend.win deleted file mode 100644 index 439b28fb6a9..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/depend.win +++ /dev/null @@ -1,107 +0,0 @@ -# This file is part of the FreeType project. -# Automatically generated, but you can customize to fit your needs. -# However, changes will be erased if not made in `makedep'... -# -# This dependency file to be used with various Win32 compilers -# has been generated automatically with the script `makedep' on -# 2002-11-18. - -ttapi.obj: ttapi.c ttconfig.h arch\win32\ft_conf.h freetype.h fterrid.h \ - ftnameid.h ttengine.h tttypes.h ttmutex.h ttcalc.h ttmemory.h \ - ttcache.h ttfile.h ttdebug.h ttobjs.h tttables.h ttcmap.h ttload.h \ - ttgload.h ttraster.h ttextend.h -ttcache.obj: ttcache.c ttengine.h tttypes.h ttconfig.h \ - arch\win32\ft_conf.h freetype.h fterrid.h ftnameid.h ttmutex.h \ - ttmemory.h ttcache.h ttobjs.h tttables.h ttcmap.h ttdebug.h -ttcalc.obj: ttcalc.c ttcalc.h ttconfig.h arch\win32\ft_conf.h freetype.h \ - fterrid.h ftnameid.h ttdebug.h tttypes.h tttables.h -ttcmap.obj: ttcmap.c ttobjs.h ttconfig.h arch\win32\ft_conf.h ttengine.h \ - tttypes.h freetype.h fterrid.h ftnameid.h ttmutex.h ttcache.h \ - tttables.h ttcmap.h ttdebug.h ttfile.h ttmemory.h ttload.h -ttdebug.obj: ttdebug.c ttdebug.h ttconfig.h arch\win32\ft_conf.h \ - tttypes.h freetype.h fterrid.h ftnameid.h tttables.h ttobjs.h \ - ttengine.h ttmutex.h ttcache.h ttcmap.h -ttextend.obj: ttextend.c ttextend.h ttconfig.h arch\win32\ft_conf.h \ - tttypes.h freetype.h fterrid.h ftnameid.h ttobjs.h ttengine.h \ - ttmutex.h ttcache.h tttables.h ttcmap.h ttmemory.h -ttfile.obj: ttfile.c ttconfig.h arch\win32\ft_conf.h freetype.h \ - fterrid.h ftnameid.h tttypes.h ttdebug.h ttengine.h ttmutex.h \ - ttmemory.h ttfile.h -ttgload.obj: ttgload.c tttypes.h ttconfig.h arch\win32\ft_conf.h \ - freetype.h fterrid.h ftnameid.h ttdebug.h ttcalc.h ttfile.h \ - ttengine.h ttmutex.h tttables.h ttobjs.h ttcache.h ttcmap.h ttgload.h \ - ttmemory.h tttags.h ttload.h -ttinterp.obj: ttinterp.c freetype.h fterrid.h ftnameid.h tttypes.h \ - ttconfig.h arch\win32\ft_conf.h ttdebug.h ttcalc.h ttmemory.h \ - ttinterp.h ttobjs.h ttengine.h ttmutex.h ttcache.h tttables.h \ - ttcmap.h -ttload.obj: ttload.c tttypes.h ttconfig.h arch\win32\ft_conf.h \ - freetype.h fterrid.h ftnameid.h ttdebug.h ttcalc.h ttfile.h \ - ttengine.h ttmutex.h tttables.h ttobjs.h ttcache.h ttcmap.h \ - ttmemory.h tttags.h ttload.h -ttmemory.obj: ttmemory.c ttdebug.h ttconfig.h arch\win32\ft_conf.h \ - tttypes.h freetype.h fterrid.h ftnameid.h ttmemory.h ttengine.h \ - ttmutex.h -ttmutex.obj: ttmutex.c ttmutex.h ttconfig.h arch\win32\ft_conf.h -ttobjs.obj: ttobjs.c ttobjs.h ttconfig.h arch\win32\ft_conf.h ttengine.h \ - tttypes.h freetype.h fterrid.h ftnameid.h ttmutex.h ttcache.h \ - tttables.h ttcmap.h ttfile.h ttdebug.h ttcalc.h ttmemory.h ttload.h \ - ttinterp.h ttextend.h -ttraster.obj: ttraster.c ttraster.h ttconfig.h arch\win32\ft_conf.h \ - freetype.h fterrid.h ftnameid.h ttengine.h tttypes.h ttmutex.h \ - ttdebug.h ttcalc.h ttmemory.h -extend\ftxcmap.obj: extend\ftxcmap.c extend\ftxcmap.h freetype.h fterrid.h \ - ftnameid.h tttypes.h ttconfig.h arch\win32\ft_conf.h ttobjs.h \ - ttengine.h ttmutex.h ttcache.h tttables.h ttcmap.h -extend\ftxerr18.obj: extend\ftxerr18.c extend\ftxerr18.h freetype.h fterrid.h \ - ftnameid.h extend\ftxkern.h extend\ftxpost.h extend\ftxopen.h \ - extend\ftxgdef.h extend\ftxgsub.h extend\ftxgpos.h ttconfig.h \ - arch\win32\ft_conf.h -extend\ftxgasp.obj: extend\ftxgasp.c extend\ftxgasp.h freetype.h fterrid.h \ - ftnameid.h tttypes.h ttconfig.h arch\win32\ft_conf.h ttobjs.h \ - ttengine.h ttmutex.h ttcache.h tttables.h ttcmap.h -extend\ftxgdef.obj: extend\ftxgdef.c tttypes.h ttconfig.h arch\win32\ft_conf.h \ - freetype.h fterrid.h ftnameid.h tttags.h ttload.h ttobjs.h ttengine.h \ - ttmutex.h ttcache.h tttables.h ttcmap.h ttextend.h ttmemory.h \ - ttfile.h ttdebug.h extend\ftxopen.h extend\ftxgdef.h extend\ftxgsub.h \ - extend\ftxgpos.h extend\ftxopenf.h -extend\ftxgpos.obj: extend\ftxgpos.c tttypes.h ttconfig.h arch\win32\ft_conf.h \ - freetype.h fterrid.h ftnameid.h tttags.h ttload.h ttobjs.h ttengine.h \ - ttmutex.h ttcache.h tttables.h ttcmap.h ttextend.h ttmemory.h \ - ttfile.h ttdebug.h extend\ftxopen.h extend\ftxgdef.h extend\ftxgsub.h \ - extend\ftxgpos.h extend\ftxopenf.h -extend\ftxgsub.obj: extend\ftxgsub.c tttypes.h ttconfig.h arch\win32\ft_conf.h \ - freetype.h fterrid.h ftnameid.h tttags.h ttload.h ttobjs.h ttengine.h \ - ttmutex.h ttcache.h tttables.h ttcmap.h ttextend.h ttmemory.h \ - ttfile.h ttdebug.h extend\ftxopen.h extend\ftxgdef.h extend\ftxgsub.h \ - extend\ftxgpos.h extend\ftxopenf.h -extend\ftxkern.obj: extend\ftxkern.c extend\ftxkern.h freetype.h fterrid.h \ - ftnameid.h ttextend.h ttconfig.h arch\win32\ft_conf.h tttypes.h \ - ttobjs.h ttengine.h ttmutex.h ttcache.h tttables.h ttcmap.h ttdebug.h \ - ttload.h ttmemory.h ttfile.h tttags.h -extend\ftxopen.obj: extend\ftxopen.c tttypes.h ttconfig.h arch\win32\ft_conf.h \ - freetype.h fterrid.h ftnameid.h ttload.h ttobjs.h ttengine.h \ - ttmutex.h ttcache.h tttables.h ttcmap.h ttextend.h ttmemory.h \ - ttfile.h ttdebug.h extend\ftxopen.h extend\ftxgdef.h extend\ftxgsub.h \ - extend\ftxgpos.h extend\ftxopenf.h -extend\ftxpost.obj: extend\ftxpost.c extend\ftxpost.h freetype.h fterrid.h \ - ftnameid.h tttypes.h ttconfig.h arch\win32\ft_conf.h ttobjs.h \ - ttengine.h ttmutex.h ttcache.h tttables.h ttcmap.h ttload.h ttfile.h \ - ttdebug.h tttags.h ttmemory.h ttextend.h -extend\ftxsbit.obj: extend\ftxsbit.c extend\ftxsbit.h freetype.h fterrid.h \ - ftnameid.h ttobjs.h ttconfig.h arch\win32\ft_conf.h ttengine.h \ - tttypes.h ttmutex.h ttcache.h tttables.h ttcmap.h ttfile.h ttdebug.h \ - ttload.h ttmemory.h tttags.h ttextend.h -extend\ftxwidth.obj: extend\ftxwidth.c extend\ftxwidth.h freetype.h fterrid.h \ - ftnameid.h ttdebug.h ttconfig.h arch\win32\ft_conf.h tttypes.h \ - ttobjs.h ttengine.h ttmutex.h ttcache.h tttables.h ttcmap.h ttfile.h \ - tttags.h ttload.h -!ifndef __MAKE__ -arch\win32\freetype.obj: arch\win32\freetype.c ttapi.c ttconfig.h \ - arch\win32\ft_conf.h freetype.h fterrid.h ftnameid.h ttengine.h \ - tttypes.h ttmutex.h ttcalc.h ttmemory.h ttcache.h ttfile.h ttdebug.h \ - ttobjs.h tttables.h ttcmap.h ttload.h ttgload.h ttraster.h ttextend.h \ - ttcache.c ttcalc.c ttcmap.c ttdebug.c ttgload.c tttags.h ttinterp.c \ - ttinterp.h ttload.c ttobjs.c ttraster.c ttfile.c ttmemory.c ttmutex.c \ - ttextend.c -!endif diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/freetype.c b/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/freetype.c deleted file mode 100644 index ba976dea220..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/freetype.c +++ /dev/null @@ -1,44 +0,0 @@ -/* This file is part of the FreeType project */ - -/* single object library component for Win32 */ -#define TT_MAKE_OPTION_SINGLE_OBJECT - -/* Note, you should define the FT_EXPORT_xxx macros here if you */ -/* want to build a Win32 DLL. If undefined, the macros default to */ -/* "extern"/"" (nothing), which is suitable for static libraries. */ -/* See `ttconfig.h' for details. */ - -/* The macro FT_EXPORT_DEF is placed before each high-level API */ -/* function declaration, and FT_EXPORT_FUNC before each */ -/* definition (body). Similarly, FT_EXPORT_DECL is placed before */ -/* each variable declaration, and FT_EXPORT_VAR before its */ -/* definition. You can then use it to take any compiler-specific */ -/* pragma for DLL-exported symbols */ - -/* first include common core components */ - -#include "ttapi.c" -#include "ttcache.c" -#include "ttcalc.c" -#include "ttcmap.c" -#include "ttdebug.c" -#include "ttgload.c" -#include "ttinterp.c" -#include "ttload.c" -#include "ttobjs.c" -#include "ttraster.c" - -/* then system-specific (or ANSI) components */ - -#include "ttfile.c" -#include "ttmemory.c" -#include "ttmutex.c" - -/* finally, add some extensions */ - -#ifdef TT_CONFIG_OPTION_EXTEND_ENGINE -#include "ttextend.c" -#endif - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/freetype.dsp b/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/freetype.dsp deleted file mode 100644 index cd1d64a0f36..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/freetype.dsp +++ /dev/null @@ -1,138 +0,0 @@ -# Microsoft Developer Studio Project File - Name="freetype" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** -# -# -# Copyright 1996-2002 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=freetype - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "freetype.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "freetype.mak" CFG="freetype - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "freetype - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "freetype - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe - -!IF "$(CFG)" == "freetype - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "." -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "." -# PROP Intermediate_Dir "Release" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c -# ADD CPP /nologo /MT /Za /W3 /GX /O1 /I "." /I "../.." /I "../../extend" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c -# SUBTRACT CPP /YX -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"./libttf.lib" - -!ELSEIF "$(CFG)" == "freetype - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /Z7 /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c -# ADD CPP /nologo /Za /W3 /GX /Zi /Od /I "." /I "../.." /I "../../extend" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c -# SUBTRACT CPP /YX -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"Debug/libttf.lib" - -!ENDIF - -# Begin Target - -# Name "freetype - Win32 Release" -# Name "freetype - Win32 Debug" -# Begin Source File - -SOURCE=.\freetype.c -# End Source File -# Begin Source File - -SOURCE=..\..\extend\ftxcmap.c -# End Source File -# Begin Source File - -SOURCE=..\..\extend\ftxerr18.c -# End Source File -# Begin Source File - -SOURCE=..\..\extend\ftxgasp.c -# End Source File -# Begin Source File - -SOURCE=..\..\extend\ftxkern.c -# End Source File -# Begin Source File - -SOURCE=..\..\extend\ftxpost.c -# End Source File -# Begin Source File - -SOURCE=..\..\extend\ftxsbit.c -# End Source File -# Begin Source File - -SOURCE=..\..\extend\ftxwidth.c -# End Source File -# Begin Source File - -SOURCE=..\..\extend\ftxopen.c -# End Source File -# Begin Source File - -SOURCE=..\..\extend\ftxgdef.c -# End Source File -# Begin Source File - -SOURCE=..\..\extend\ftxgsub.c -# End Source File -# Begin Source File - -SOURCE=..\..\extend\ftxgpos.c -# End Source File -# End Target -# End Project diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/freetype.dsw b/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/freetype.dsw deleted file mode 100644 index f52de6a19fc..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/freetype.dsw +++ /dev/null @@ -1,54 +0,0 @@ -Microsoft Developer Studio Workspace File, Format Version 5.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! -# -# -# Copyright 1996-2002 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. - -############################################################################### - -Project: "Freetype"=".\freetype.dsp" - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "FT_DLL"=".\ft_dll.dsp" - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ - Begin Project Dependency - Project_Dep_Name Freetype - End Project Dependency -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/freetype.ide b/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/freetype.ide Binary files differdeleted file mode 100644 index f5c4043e572..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/freetype.ide +++ /dev/null diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/freetype.mak b/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/freetype.mak deleted file mode 100644 index e76d1d075da..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/freetype.mak +++ /dev/null @@ -1,363 +0,0 @@ -# Microsoft Developer Studio Generated NMAKE File, Format Version 4.00 -# ** DO NOT EDIT ** -# -# -# Copyright 1996-2001 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -!IF "$(CFG)" == "" -CFG=freetype - Win32 Debug -!MESSAGE No configuration specified. Defaulting to freetype - Win32 Debug. -!ENDIF - -!IF "$(CFG)" != "freetype - Win32 Release" && "$(CFG)" !=\ - "freetype - Win32 Debug" -!MESSAGE Invalid configuration "$(CFG)" specified. -!MESSAGE You can specify a configuration when running NMAKE on this makefile -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "freetype.mak" CFG="freetype - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "freetype - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "freetype - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE -!ERROR An invalid configuration is specified. -!ENDIF - -!IF "$(OS)" == "Windows_NT" -NULL= -!ELSE -NULL=nul -!ENDIF -################################################################################ -# Begin Project -# PROP Target_Last_Scanned "freetype - Win32 Debug" -CPP=cl.exe - -!IF "$(CFG)" == "freetype - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Target_Dir "" -OUTDIR=.\Release -INTDIR=.\Release - -ALL : "$(OUTDIR)\freetype.lib" - -CLEAN : - -@erase ".\Release\freetype.lib" - -@erase ".\Release\Ftxkern.obj" - -@erase ".\Release\ftxpost.obj" - -@erase ".\Release\ftxerr18.obj" - -@erase ".\Release\Ftxcmap.obj" - -@erase ".\Release\Freetype.obj" - -@erase ".\Release\Ftxgasp.obj" - -"$(OUTDIR)" : - if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" - -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c -# ADD CPP /nologo /W3 /GX /O2 /I "." /I "..\.." /I "..\..\extend" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c -CPP_PROJ=/nologo /ML /W3 /GX /O2 /I "." /I "..\.." /I "..\..\extend" /D "WIN32"\ - /D "NDEBUG" /D "_WINDOWS" /Fp"$(INTDIR)/freetype.pch" /YX /Fo"$(INTDIR)/" /c -CPP_OBJS=.\Release/ -CPP_SBRS= -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -BSC32_FLAGS=/nologo /o"$(OUTDIR)/freetype.bsc" -BSC32_SBRS= -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo -LIB32_FLAGS=/nologo /out:"$(OUTDIR)/freetype.lib" -LIB32_OBJS= \ - "$(INTDIR)/Ftxkern.obj" \ - "$(INTDIR)/ftxpost.obj" \ - "$(INTDIR)/ftxerr18.obj" \ - "$(INTDIR)/Ftxcmap.obj" \ - "$(INTDIR)/Freetype.obj" \ - "$(INTDIR)/Ftxgasp.obj" - -"$(OUTDIR)\freetype.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS) - $(LIB32) @<< - $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS) -<< - -!ELSEIF "$(CFG)" == "freetype - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Target_Dir "" -OUTDIR=.\Debug -INTDIR=.\Debug - -ALL : "$(OUTDIR)\freetype.lib" - -CLEAN : - -@erase ".\Debug\freetype.lib" - -@erase ".\Debug\Freetype.obj" - -@erase ".\Debug\Ftxkern.obj" - -@erase ".\Debug\ftxpost.obj" - -@erase ".\Debug\Ftxcmap.obj" - -@erase ".\Debug\Ftxgasp.obj" - -@erase ".\Debug\ftxerr18.obj" - -"$(OUTDIR)" : - if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" - -# ADD BASE CPP /nologo /W3 /GX /Z7 /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c -# ADD CPP /nologo /W3 /GX /Z7 /Od /I "." /I "..\.." /I "..\..\extend" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c -CPP_PROJ=/nologo /MLd /W3 /GX /Z7 /Od /I "." /I "..\.." /I "..\..\extend" /D\ - "WIN32" /D "_DEBUG" /D "_WINDOWS" /Fp"$(INTDIR)/freetype.pch" /YX\ - /Fo"$(INTDIR)/" /c -CPP_OBJS=.\Debug/ -CPP_SBRS= -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -BSC32_FLAGS=/nologo /o"$(OUTDIR)/freetype.bsc" -BSC32_SBRS= -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo -LIB32_FLAGS=/nologo /out:"$(OUTDIR)/freetype.lib" -LIB32_OBJS= \ - "$(INTDIR)/Freetype.obj" \ - "$(INTDIR)/Ftxkern.obj" \ - "$(INTDIR)/ftxpost.obj" \ - "$(INTDIR)/Ftxcmap.obj" \ - "$(INTDIR)/Ftxgasp.obj" \ - "$(INTDIR)/ftxerr18.obj" - -"$(OUTDIR)\freetype.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS) - $(LIB32) @<< - $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS) -<< - -!ENDIF - -.c{$(CPP_OBJS)}.obj: - $(CPP) $(CPP_PROJ) $< - -.cpp{$(CPP_OBJS)}.obj: - $(CPP) $(CPP_PROJ) $< - -.cxx{$(CPP_OBJS)}.obj: - $(CPP) $(CPP_PROJ) $< - -.c{$(CPP_SBRS)}.sbr: - $(CPP) $(CPP_PROJ) $< - -.cpp{$(CPP_SBRS)}.sbr: - $(CPP) $(CPP_PROJ) $< - -.cxx{$(CPP_SBRS)}.sbr: - $(CPP) $(CPP_PROJ) $< - -################################################################################ -# Begin Target - -# Name "freetype - Win32 Release" -# Name "freetype - Win32 Debug" - -!IF "$(CFG)" == "freetype - Win32 Release" - -!ELSEIF "$(CFG)" == "freetype - Win32 Debug" - -!ENDIF - -################################################################################ -# Begin Source File - -SOURCE=\Freetype\Lib\Extend\ftxpost.c -DEP_CPP_FTXPO=\ - ".\..\..\Extend\ftxpost.h"\ - ".\..\..\tttypes.h"\ - ".\..\..\ttobjs.h"\ - ".\..\..\tttables.h"\ - ".\..\..\ttload.h"\ - ".\..\..\ttfile.h"\ - ".\..\..\tttags.h"\ - ".\..\..\ttmemory.h"\ - ".\..\..\ttextend.h"\ - ".\..\..\freetype.h"\ - "..\..\ttconfig.h"\ - ".\ft_conf.h"\ - "..\..\ttengine.h"\ - "..\..\ttmutex.h"\ - "..\..\ttcache.h"\ - "..\..\ttcmap.h"\ - ".\..\..\ttdebug.h"\ - - -"$(INTDIR)\ftxpost.obj" : $(SOURCE) $(DEP_CPP_FTXPO) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=\Freetype\Lib\Extend\ftxerr18.c -DEP_CPP_FTXER=\ - ".\..\..\Extend\ftxerr18.h"\ - ".\..\..\Extend\ftxkern.h"\ - ".\..\..\Extend\ftxpost.h"\ - ".\..\..\freetype.h"\ - "..\..\ttconfig.h"\ - ".\ft_conf.h"\ - - -"$(INTDIR)\ftxerr18.obj" : $(SOURCE) $(DEP_CPP_FTXER) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=\Freetype\Lib\Extend\Ftxgasp.c -DEP_CPP_FTXGA=\ - ".\..\..\Extend\ftxgasp.h"\ - ".\..\..\tttypes.h"\ - ".\..\..\ttobjs.h"\ - ".\..\..\tttables.h"\ - ".\..\..\freetype.h"\ - "..\..\ttconfig.h"\ - ".\ft_conf.h"\ - "..\..\ttengine.h"\ - "..\..\ttmutex.h"\ - "..\..\ttcache.h"\ - "..\..\ttcmap.h"\ - - -"$(INTDIR)\Ftxgasp.obj" : $(SOURCE) $(DEP_CPP_FTXGA) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=\Freetype\Lib\Extend\Ftxkern.c -DEP_CPP_FTXKE=\ - ".\..\..\Extend\ftxkern.h"\ - ".\..\..\ttextend.h"\ - ".\..\..\tttypes.h"\ - ".\..\..\ttdebug.h"\ - ".\..\..\ttmemory.h"\ - ".\..\..\ttfile.h"\ - ".\..\..\ttobjs.h"\ - ".\..\..\ttload.h"\ - ".\..\..\tttags.h"\ - ".\..\..\freetype.h"\ - "..\..\ttconfig.h"\ - ".\ft_conf.h"\ - "..\..\ttengine.h"\ - "..\..\ttmutex.h"\ - "..\..\ttcache.h"\ - ".\..\..\tttables.h"\ - "..\..\ttcmap.h"\ - - -"$(INTDIR)\Ftxkern.obj" : $(SOURCE) $(DEP_CPP_FTXKE) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=\Freetype\Lib\Extend\Ftxcmap.c -DEP_CPP_FTXCM=\ - ".\..\..\Extend\ftxcmap.h"\ - ".\..\..\tttypes.h"\ - ".\..\..\ttobjs.h"\ - ".\..\..\tttables.h"\ - ".\..\..\freetype.h"\ - "..\..\ttconfig.h"\ - ".\ft_conf.h"\ - "..\..\ttengine.h"\ - "..\..\ttmutex.h"\ - "..\..\ttcache.h"\ - "..\..\ttcmap.h"\ - - -"$(INTDIR)\Ftxcmap.obj" : $(SOURCE) $(DEP_CPP_FTXCM) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Freetype.c -DEP_CPP_FREET=\ - ".\..\..\ttapi.c"\ - ".\..\..\ttcache.c"\ - ".\..\..\ttcalc.c"\ - ".\..\..\ttcmap.c"\ - ".\..\..\ttgload.c"\ - ".\..\..\ttinterp.c"\ - ".\..\..\ttload.c"\ - ".\..\..\ttobjs.c"\ - ".\..\..\ttraster.c"\ - ".\..\..\ttfile.c"\ - ".\..\..\ttmemory.c"\ - ".\..\..\ttmutex.c"\ - ".\..\..\ttextend.c"\ - ".\..\..\freetype.h"\ - "..\..\ttengine.h"\ - "..\..\ttcalc.h"\ - ".\..\..\ttmemory.h"\ - "..\..\ttcache.h"\ - ".\..\..\ttfile.h"\ - ".\..\..\ttobjs.h"\ - ".\..\..\ttload.h"\ - "..\..\ttgload.h"\ - "..\..\ttraster.h"\ - ".\..\..\ttextend.h"\ - "..\..\ttconfig.h"\ - ".\ft_conf.h"\ - "..\..\ttmutex.h"\ - ".\..\..\tttypes.h"\ - ".\..\..\ttdebug.h"\ - ".\..\..\tttables.h"\ - "..\..\ttcmap.h"\ - ".\..\..\tttags.h"\ - "..\..\ttinterp.h"\ - {$(INCLUDE)}"\unistd.h"\ - - -"$(INTDIR)\Freetype.obj" : $(SOURCE) $(DEP_CPP_FREET) "$(INTDIR)" - - -# End Source File -# End Target -# End Project -################################################################################ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/freetype.mdp b/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/freetype.mdp Binary files differdeleted file mode 100644 index 9082b5a70a9..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/freetype.mdp +++ /dev/null diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/ft_conf.h b/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/ft_conf.h deleted file mode 100644 index ba066d8a553..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/ft_conf.h +++ /dev/null @@ -1,243 +0,0 @@ -/******************************************************************* - * - * ft_conf.h for Win32 - * - * - * Copyright 1996-2002 by - * David Turner, Robert Wilhelm, and Werner Lemberg - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - ******************************************************************/ - - -/* we need the following because there are some typedefs in this file */ - -#ifndef FT_CONF_H -#define FT_CONF_H - -#ifndef WIN32 -#define WIN32 -#endif - -/* Define to empty if the 'const' keyword does not work. */ -/* #undef const */ - -/* Define if you have the <stdlib.h> header file. */ -#define HAVE_STDLIB_H - -/* Define if you have the memcpy function. */ -#define HAVE_MEMCPY - -/* Define if you have the memmove function. */ -#define HAVE_MEMMOVE - -/* Define if you have the <unistd.h> header file. */ -#undef HAVE_UNISTD_H - -/* The number of bytes in a int. */ -#define SIZEOF_INT 4 - -/* The number of bytes in a long. */ -#define SIZEOF_LONG 4 - -/* Define if you have the <libintl.h> header file. */ -/* #undef HAVE_LIBINTL_H */ - -/* Command-line selection. */ -#ifdef HAVE_LIBINTL -#define HAVE_LIBINTL_H -#ifndef LOCALEDIR -#define LOCALEDIR "C:/Program Files/gettext/share/locale" -#endif -#endif -/* Backward compatibility. */ -#ifdef HAVE_GETTEXT -#define HAVE_LIBINTL_H -#endif - -/* Define if you have the <locale.h> header file. */ -/* Only meaningful if you have <libintl.h>. */ -#define HAVE_LOCALE_H - -/**********************************************************************/ -/* */ -/* The following configuration macros can be tweaked manually by */ -/* a developer to turn on or off certain features or options in the */ -/* TrueType engine. This may be useful to tune it for specific */ -/* purposes.. */ -/* */ -/**********************************************************************/ - - -/*************************************************************************/ -/* Define this if the underlying operating system uses a different */ -/* character width than 8bit for file names. You must then also supply */ -/* a typedef declaration for defining 'TT_Text'. Default is off. */ - -/* #define HAVE_TT_TEXT */ - - -/*************************************************************************/ -/* Define this if you want to generate code to support engine extensions */ -/* Default is on, but if you're satisfied by the basic services provided */ -/* by the engine and need no extensions, undefine this configuration */ -/* macro to save a few more bytes. */ - -#define TT_CONFIG_OPTION_EXTEND_ENGINE - - -/*************************************************************************/ -/* Define this if you want to generate code to support gray-scaling, */ -/* a.k.a. font-smoothing or anti-aliasing. Default is on, but you can */ -/* disable it if you don't need it. */ - -#define TT_CONFIG_OPTION_GRAY_SCALING - - -/*************************************************************************/ -/* Define this if you want to compile a bytecode interpreter in the */ -/* TrueType driver. Note that there are important patent issues related */ -/* to the use of the interpreter. */ -/* */ -/* By undefining this, you will only compile the code necessary to load */ -/* TrueType glyphs without hinting. */ - -#undef TT_CONFIG_OPTION_BYTECODE_INTERPRETER - - -/*************************************************************************/ -/* Define this if you want to use a big 'switch' statement within the */ -/* bytecode interpreter. Because some non-optimizing compilers are not */ -/* able to produce jump tables from such statements, undefining this */ -/* configuration macro will generate the appropriate C jump table in */ -/* ttinterp.c. If you use an optimizing compiler, you should leave it */ -/* defined for better performance and code compactness.. */ - -#define TT_CONFIG_OPTION_INTERPRETER_SWITCH - - -/*************************************************************************/ -/* Define this if you want to build a 'static' version of the TrueType */ -/* bytecode interpreter. This will produce much bigger code, which */ -/* _may_ be faster on some architectures.. */ -/* */ -/* Do NOT DEFINE THIS is you build a thread-safe version of the engine */ - -#undef TT_CONFIG_OPTION_STATIC_INTERPRETER - - -/*************************************************************************/ -/* Define this if you want to build a 'static' version of the scan-line */ -/* converter (the component which in charge of converting outlines into */ -/* bitmaps). This will produce a bigger object file for "ttraster.c", */ -/* which _may_ be faster on some architectures.. */ -/* */ -/* Do NOT DEFINE THIS is you build a thread-safe version of the engine */ - -#undef TT_CONFIG_OPTION_STATIC_RASTER - - -/*************************************************************************/ -/* Define TT_CONFIG_THREAD_SAFE if you want to build a thread-safe */ -/* version of the library. */ - -#undef TT_CONFIG_OPTION_THREAD_SAFE - - -/**********************************************************************/ -/* */ -/* The following macros are used to define the debug level, as well */ -/* as individual tracing levels for each component. There are */ -/* currently three modes of operation : */ -/* */ -/* - trace mode (define DEBUG_LEVEL_TRACE) */ -/* */ -/* The engine prints all error messages, as well as tracing */ -/* ones, filtered by each component's level */ -/* */ -/* - debug mode (define DEBUG_LEVEL_ERROR) */ -/* */ -/* Disable tracing, but keeps error output and assertion */ -/* checks. */ -/* */ -/* - release mode (don't define anything) */ -/* */ -/* Don't include error-checking or tracing code in the */ -/* engine's code. Ideal for releases. */ -/* */ -/* NOTE : */ -/* */ -/* Each component's tracing level is defined in its own source. */ -/* */ -/**********************************************************************/ - -/* Define if you want to use the tracing debug mode */ -#undef DEBUG_LEVEL_TRACE - -/* Define if you want to use the error debug mode - ignored if */ -/* DEBUG_LEVEL_TRACE is defined */ -#undef DEBUG_LEVEL_ERROR - - -/**************************************************************************/ -/* Definition of various integer sizes. These types are used by ttcalc */ -/* and ttinterp (for the 64-bit integers) only.. */ - -#if SIZEOF_INT == 4 - - typedef signed int TT_Int32; - typedef unsigned int TT_Word32; - -#elif SIZEOF_LONG == 4 - - typedef signed long TT_Int32; - typedef unsigned long TT_Word32; - -#else -#error "no 32bit type found" -#endif - -#if SIZEOF_LONG == 8 - -/* LONG64 must be defined when a 64-bit type is available */ -/* INT64 must then be defined to this type.. */ -#define LONG64 -#define INT64 long - -#else - -/* GCC provides the non-ANSI 'long long' 64-bit type. You can activate */ -/* by defining the TT_USE_LONG_LONG macro in 'ft_conf.h'. Note that this */ -/* will produce many -ansi warnings during library compilation. */ -#ifdef TT_USE_LONG_LONG - -#define LONG64 -#define INT64 long long - -#endif /* TT_USE_LONG_LONG */ -#endif - - -#if defined( _MSC_VER ) /* Visual C++ (and Intel C++) */ - - /* We disable some warnings in order to compile cleanly with the maximum */ - /* level of warnings. But do not worry: all these warnings have been */ - /* checked, and resulted harmless. */ -#pragma warning( disable : 4244 ) -#pragma warning( disable : 4761 ) - -#define FT_EXPORT_DEF( type ) extern FREETYPEDLL type -#define FT_EXPORT_FUNC( type ) type -#define FT_EXPORT_DECL( type ) FT_EXPORT_DEF( type ) -#define FT_EXPORT_VAR( type ) FT_EXPORT_DECL( type ) - -#endif /* _MSC_VER */ - -#endif /* FT_CONF_H */ - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/ft_dll.dsp b/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/ft_dll.dsp deleted file mode 100644 index 607f22bed9a..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/ft_dll.dsp +++ /dev/null @@ -1,106 +0,0 @@ -# Microsoft Developer Studio Project File - Name="ft_dll" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** -# -# -# Copyright 1996-2002 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. - -# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 - -CFG=ft_dll - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "ft_dll.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "ft_dll.mak" CFG="ft_dll - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "ft_dll - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE "ft_dll - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE - -# Begin Project -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -MTL=midl.exe -RSC=rc.exe - -!IF "$(CFG)" == "ft_dll - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "." -# PROP Intermediate_Dir "Release" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MT /W3 /GX /O1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c -# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32 -# ADD MTL /nologo /D "NDEBUG" /o NUL /win32 -# SUBTRACT MTL /mktyplib203 -# ADD BASE RSC /l 0x0 /d "NDEBUG" -# ADD RSC /l 0x0 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:windows /dll /machine:I386 -# ADD LINK32 kernel32.lib advapi32.lib /nologo /subsystem:windows /dll /machine:I386 /out:"./ft15_32.dll" - -!ELSEIF "$(CFG)" == "ft_dll - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c -# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32 -# ADD MTL /nologo /D "_DEBUG" /o NUL /win32 -# SUBTRACT MTL /mktyplib203 -# ADD BASE RSC /l 0x0 /d "_DEBUG" -# ADD RSC /l 0x0 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib advapi32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /out:"Debug/ft15_32.dll" /pdbtype:sept - -!ENDIF - -# Begin Target - -# Name "ft_dll - Win32 Release" -# Name "ft_dll - Win32 Debug" -# Begin Source File - -SOURCE=.\ttf.def -# End Source File -# End Target -# End Project diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/makedef b/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/makedef deleted file mode 100755 index 222495d42d6..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/makedef +++ /dev/null @@ -1,28 +0,0 @@ -# makedef -# -# This shell script creates a .DEF file necessary for building as DLL -# on the Windows 32-bit platform. - -echo "\ -; This file is part of the FreeType project. -; Automatically generated, but you can customize to fit your needs. -; However, changes will be erased if not made in \`makedef'... -; -; This definition file to be used to built the library as DLL -; has been generated automatically with the script \`makedef' on -; `date +%Y-%m-%d`. - -LIBRARY ft15_32 -DESCRIPTION 'FreeType 1.5 32-bit DLL © 1996-2002 Turner, Wilhelm, Lemberg' -EXETYPE WINDOWS -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE MULTIPLE -EXPORTS -" > ttf.def - -(cd ../.. - sed -n -e "/^ *FT_EXPORT_DE/!d ; n ; s/(.*$//" \ - -e "s/;$//" -e "s/ const / /" -e "s/ *TT_[a-zA-Z_\*]* //" \ - -e "s/ *//g" -e "s/^/ /" -e "p" *.h extend/*.h) >> ttf.def - -# eof diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/makedep b/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/makedep deleted file mode 100755 index 81f0de2c1b3..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/makedep +++ /dev/null @@ -1,45 +0,0 @@ -# makedep -# -# This shell script creates a dependency file necessary for some compilers -# on the Win32 platform. -# -# If you run this script under non-Windows operating systems, expect -# warnings that `windows.h' can't be found. -# -# Copyright 1996-2002 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. - -echo "\ -# This file is part of the FreeType project. -# Automatically generated, but you can customize to fit your needs. -# However, changes will be erased if not made in \`makedep'... -# -# This dependency file to be used with various Win32 compilers -# has been generated automatically with the script \`makedep' on -# `date +%Y-%m-%d`. -" > depend.win - -(cd ../.. - gcc -MM -Iarch/win32 -I. *.c | \ - sed -e "s/\.o:/.obj:/" -e "s:/:\\\\:g") >> depend.win - -(cd ../.. - gcc -MM -Iarch/win32 -I. -Iextend extend/*.c | \ - sed -e "s/^\(.*\)\.o:/extend\\\\\1.obj:/" -e "s:/:\\\\:g") >> depend.win - -echo "!ifndef __MAKE__" >> depend.win - -(cd ../.. - gcc -MM -Iarch/win32 -I. -Iextend arch/win32/*.c | \ - sed -e "s/^\(.*\)\.o:/arch\\\\win32\\\\\1.obj:/" \ - -e "s:/:\\\\:g") >> depend.win - -echo "!endif" >> depend.win - -# eof diff --git a/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/ttf.def b/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/ttf.def deleted file mode 100644 index d93a2e400e6..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/arch/win32/ttf.def +++ /dev/null @@ -1,134 +0,0 @@ -; This file is part of the FreeType project. -; Automatically generated, but you can customize to fit your needs. -; However, changes will be erased if not made in `makedef'... -; -; This definition file to be used to built the library as DLL -; has been generated automatically with the script `makedef' on -; 2002-11-18. - -LIBRARY ft15_32 -DESCRIPTION 'FreeType 1.5 32-bit DLL © 1996-2002 Turner, Wilhelm, Lemberg' -EXETYPE WINDOWS -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE MULTIPLE -EXPORTS - - TT_FreeType_Version - TT_Init_FreeType - TT_Done_FreeType - TT_Set_Raster_Gray_Palette - TT_Open_Face - TT_Open_Collection - TT_Get_Face_Properties - TT_Set_Face_Pointer - TT_Get_Face_Pointer - TT_Flush_Face - TT_Get_Face_Metrics - TT_Close_Face - TT_Get_Font_Data - TT_New_Instance - TT_Set_Instance_Resolutions - TT_Set_Instance_CharSize - TT_Set_Instance_CharSizes - TT_Set_Instance_PixelSizes - TT_Set_Instance_Transform_Flags - TT_Get_Instance_Metrics - TT_Set_Instance_Pointer - TT_Get_Instance_Pointer - TT_Done_Instance - TT_New_Glyph - TT_Done_Glyph - TT_Load_Glyph - TT_Get_Glyph_Outline - TT_Get_Glyph_Metrics - TT_Get_Glyph_Big_Metrics - TT_Get_Glyph_Bitmap - TT_Get_Glyph_Pixmap - TT_New_Outline - TT_Done_Outline - TT_Copy_Outline - TT_Get_Outline_Bitmap - TT_Get_Outline_Pixmap - TT_Get_Outline_BBox - TT_Transform_Outline - TT_Translate_Outline - TT_Transform_Vector - TT_MulDiv - TT_MulFix - TT_Get_CharMap_Count - TT_Get_CharMap_ID - TT_Get_CharMap - TT_Char_Index - TT_Get_Name_Count - TT_Get_Name_ID - TT_Get_Name_String - TT_Register_Extension - TT_Extension_Get - TT_Use_Stream - TT_Done_Stream - TT_Flush_Stream - TT_Read_File - TT_Seek_File - TT_Skip_File - TT_Read_At_File - TT_File_Pos - TT_Stream_Size - TT_Null_FileFrame - TT_Access_Frame - TT_Check_And_Access_Frame - TT_Forget_Frame - TT_Get_Char - TT_Get_Short - TT_Get_Long - TT_LookUp_Table - TT_Alloc - TT_Realloc - TT_Free - TT_CharMap_First - TT_CharMap_Next - TT_CharMap_Last - TT_ErrToString18 - TT_Get_Face_Gasp_Flags - TT_Init_GDEF_Extension - TT_Load_GDEF_Table - TT_GDEF_Get_Glyph_Property - TT_GDEF_Build_ClassDefinition - TT_Init_GPOS_Extension - TT_Load_GPOS_Table - TT_GPOS_Select_Script - TT_GPOS_Select_Language - TT_GPOS_Select_Feature - TT_GPOS_Query_Scripts - TT_GPOS_Query_Languages - TT_GPOS_Query_Features - TT_GPOS_Add_Feature - TT_GPOS_Clear_Features - TT_GPOS_Register_Glyph_Function - TT_GPOS_Register_MM_Function - TT_GPOS_Apply_String - TT_Init_GSUB_Extension - TT_Load_GSUB_Table - TT_GSUB_Select_Script - TT_GSUB_Select_Language - TT_GSUB_Select_Feature - TT_GSUB_Query_Scripts - TT_GSUB_Query_Languages - TT_GSUB_Query_Features - TT_GSUB_Add_Feature - TT_GSUB_Clear_Features - TT_GSUB_Register_Alternate_Function - TT_GSUB_Apply_String - TT_GSUB_Add_String - TT_Init_Kerning_Extension - TT_Get_Kerning_Directory - TT_Load_Kerning_Table - TT_Init_Post_Extension - TT_Load_PS_Names - TT_Get_PS_Name - TT_Init_SBit_Extension - TT_Get_Face_Bitmaps - TT_New_SBit_Image - TT_Done_SBit_Image - TT_Get_SBit_Strike - TT_Load_Glyph_Bitmap - TT_Get_Face_Widths diff --git a/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxcmap.c b/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxcmap.c deleted file mode 100644 index 5d860456ca0..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxcmap.c +++ /dev/null @@ -1,404 +0,0 @@ -/******************************************************************* - * - * ftxcmap.c - * - * API extension for iterating over Cmaps - * - * Copyright 1996-2002 by Juliusz Chroboczek, - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - * - ******************************************************************/ - -#include "ftxcmap.h" - -#include "tttypes.h" -#include "ttobjs.h" -#include "tttables.h" - -static Long charmap_first4 ( PCMap4, UShort* ); -static Long charmap_next4 ( PCMap4, UShort, UShort* ); -static Long charmap_last4 ( PCMap4, UShort* ); -static UShort charmap_find_id4( PCMap4, UShort, TCMap4Segment*, UShort ); - - -/******************************************************************* - * - * Function : TT_CharMap_First - * - * Description : Returns the first valid character code in a - * given character map. Also returns the corresponding - * glyph index. - * - * Input : charMap handle to the target character map - * id address where the glyph index will be - * be returned in case of success - * - * Output : First valid character code. -1 in case of failure. - * - ******************************************************************/ - -FT_EXPORT_FUNC( TT_Long ) -TT_CharMap_First( TT_CharMap charMap, - TT_UShort* id ) -{ - PCMapTable cmap; - UShort i, c; - - - if ( ( cmap = HANDLE_CharMap( charMap ) ) == 0 ) - return -1; - - switch ( cmap->format ) - { - case 0: - if ( id ) - *id = cmap->c.cmap0.glyphIdArray[0]; - return 0; - - case 4: - return charmap_first4( &cmap->c.cmap4, id ); - - case 6: - if ( cmap->c.cmap6.entryCount < 1 ) - return -1; - - if ( id ) - *id = cmap->c.cmap6.glyphIdArray[0]; - return cmap->c.cmap6.firstCode; - - case 8: - case 12: - if ( id ) - *id = (TT_UShort)cmap->c.cmap8_12.groups[0].startGlyphID; - return (TT_Long)cmap->c.cmap8_12.groups[0].startCharCode; - - default: - /* Now loop from 0 to 65535. We can't use a simple "for' on */ - /* 16-bits systems, hence the "strange" loop here.. */ - i = 0; - do - { - c = TT_Char_Index( charMap, i ); - if ( c > 0 ) - { - if ( id ) - *id = c; - return i; - } - i++; - } while ( i != 0 ); /* because i is UShort! */ - - return -1; - } -} - - -static Long charmap_first4( PCMap4 cmap4, - UShort* id ) -{ - UShort firstCode; - - - if ( cmap4->segCountX2 / 2 < 1 ) - return -1; - - firstCode = cmap4->segments[0].startCount; - - if ( id ) - *id = charmap_find_id4( cmap4, firstCode, &(cmap4->segments[0]), 0 ); - - return firstCode; -} - - -/******************************************************************* - * - * Function : TT_CharMap_Next - * - * Description : Returns the next valid character code in a given - * charMap. - * - * Input : charMap handle to the target char. map - * index starting character code - * id address where the glyph index of the next - * character will be returned - * - * Output : Next valid character code after 'index'. -1 in case - * of failure. - * - ******************************************************************/ - -FT_EXPORT_FUNC( TT_Long ) -TT_CharMap_Next( TT_CharMap charMap, - TT_ULong index, - TT_UShort* id ) -{ - PCMapTable cmap; - UShort i, c; - - - cmap = HANDLE_CharMap( charMap ); - if ( !cmap ) - return -1; - - switch ( cmap->format ) - { - case 0: - if ( index < 255 ) - { - if ( id ) - *id = cmap->c.cmap0.glyphIdArray[index + 1]; - return index + 1; - } - else - return -1; - - case 4: - return charmap_next4( &cmap->c.cmap4, index, id ); - - case 6: - { - UInt firstCode = cmap->c.cmap6.firstCode; - - - if ( index + 1 < firstCode + cmap->c.cmap6.entryCount ) - { - if ( id ) - *id = cmap->c.cmap6.glyphIdArray[index + 1 - firstCode]; - return index + 1; - } - else - return -1; - } - - case 8: - case 12: - { - PCMapGroup group, limit; - - - limit = cmap->c.cmap8_12.groups + cmap->c.cmap8_12.nGroups; - group = cmap->c.cmap8_12.last_group; - - if ( (ULong)( index - group->startCharCode ) < - (ULong)( group->endCharCode - group->startCharCode ) ) - goto Found; - - for ( group = cmap->c.cmap8_12.groups; group < limit; group++ ) - { - if ( index > group->endCharCode ) - continue; - - if ( index >= group->startCharCode ) - goto Found; - } - - return -1; - - Found: - if ( index < group->endCharCode ) - { - cmap->c.cmap8_12.last_group = group; - *id = (UShort)( group->startGlyphID + - ( index - group->startCharCode ) + 1 ); - return index + 1; - } - - group++; - - if ( group == limit ) - return -1; - - cmap->c.cmap8_12.last_group = group; - *id = (UShort)group->startGlyphID; - return group->startCharCode; - } - - default: - /* Now loop from 0 to 65535. We can't use a simple "for" on */ - /* 16-bits systems, hence the "strange" loop here.. */ - i = 0; - do - { - c = TT_Char_Index( charMap, i ); - if ( c > 0 ) - { - if ( id ) - *id = c; - return i; - } - i++; - } while ( i != 0 ); /* because i is UShort! */ - - return -1; - } -} - - -static Long charmap_next4( PCMap4 cmap4, - UShort charCode, - UShort* id) -{ - UShort segCount, nextCode; - UShort i; - TCMap4Segment seg4; - - - if ( charCode == 0xFFFF ) - return -1; /* get it out of the way now */ - - segCount = cmap4->segCountX2 / 2; - - for ( i = 0; i < segCount; i++ ) - if ( charCode < cmap4->segments[i].endCount ) - break; - - /* Safety check - even though the last endCount should be 0xFFFF */ - if ( i >= segCount ) - return -1; - - seg4 = cmap4->segments[i]; - - if ( charCode < seg4.startCount ) - nextCode = seg4.startCount; - else - nextCode = charCode + 1; - - if ( id ) - *id = charmap_find_id4( cmap4, nextCode, &seg4, i ); - - return nextCode; -} - - -static UShort -charmap_find_id4( PCMap4 cmap4, - UShort charCode, - TCMap4Segment* seg4, - UShort i ) -{ - UShort index1; - - - if ( seg4->idRangeOffset == 0 ) - return (charCode + seg4->idDelta) & 0xFFFF; - else - { - index1 = seg4->idRangeOffset / 2 + charCode-seg4->startCount - - ( cmap4->segCountX2 / 2 - i ); - - if ( index1 >= cmap4->numGlyphId || cmap4->glyphIdArray[index1] == 0 ) - return 0; - else - return (cmap4->glyphIdArray[index1] + seg4->idDelta) & 0xFFFF; - } -} - - -/******************************************************************* - * - * Function : TT_CharMap_Last - * - * Description : Returns the last valid character code in a - * given character map. Also returns the corresponding - * glyph index. - * - * Input : charMap handle to the target character map - * id address where the glyph index will be - * be returned in case of success - * - * Output : Last valid character code. -1 in case of failure. - * - ******************************************************************/ - -FT_EXPORT_FUNC( TT_Long ) -TT_CharMap_Last( TT_CharMap charMap, - TT_UShort* id ) -{ - PCMapTable cmap; - UShort i, c; - - - if ( ( cmap = HANDLE_CharMap( charMap ) ) == 0 ) - return -1; - - switch ( cmap->format ) - { - case 0: - if ( id ) - *id = cmap->c.cmap0.glyphIdArray[255]; - return 255; - - case 4: - return charmap_last4( &cmap->c.cmap4, id ); - - case 6: - if ( cmap->c.cmap6.entryCount < 1 ) - return -1; - - if ( id ) - *id = cmap->c.cmap6.glyphIdArray[cmap->c.cmap6.entryCount - 1]; - return cmap->c.cmap6.firstCode + cmap->c.cmap6.entryCount - 1; - - case 8: - case 12: - { - PCMapGroup group; - - - group = cmap->c.cmap8_12.groups + cmap->c.cmap8_12.nGroups - 1; - - if ( id ) - *id = (UShort)( group->startGlyphID + - ( group->endCharCode - group->startCharCode ) ); - return group->endCharCode; - } - - default: - i = 65535; - do - { - c = TT_Char_Index( charMap, i ); - if ( c > 0 ) - { - if ( id ) - *id = c; - return i; - } - i--; - } while ( i != 0 ); - - return -1; - } -} - - -static Long charmap_last4( PCMap4 cmap4, - UShort* id ) -{ - UShort lastCode; - - - if ( cmap4->segCountX2 / 2 < 1 ) - return -1; - - lastCode = cmap4->segments[cmap4->segCountX2 / 2 - 1].endCount; - - if ( id ) - *id = charmap_find_id4( cmap4, - lastCode, - &(cmap4->segments[cmap4->segCountX2 / 2 - 1]), - 0 ); - - return lastCode; -} - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxcmap.h b/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxcmap.h deleted file mode 100644 index d8ce5e0ed95..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxcmap.h +++ /dev/null @@ -1,60 +0,0 @@ -/******************************************************************* - * - * ftxcmap.h 1.0 - * - * API extension for iterating over Cmaps - * - * Copyright 1996-2001 by Juliusz Chroboczek, - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - * - ******************************************************************/ - -#ifndef FTXCMAP_H -#define FTXCMAP_H - -#include "freetype.h" - -#ifdef __cplusplus -extern "C" { -#endif - - /* Find the first entry of a Cmap. Its glyph index is returned */ - /* in the "id" field, while the function returns the first valid */ - /* character code in the Cmap. It returns -1 in case of failure. */ - - FT_EXPORT_DEF( TT_Long ) - TT_CharMap_First( TT_CharMap charMap, - TT_UShort* id ); - - - /* Find the next entry of Cmap. Same return conventions. */ - - FT_EXPORT_DEF( TT_Long ) - TT_CharMap_Next( TT_CharMap charMap, - TT_ULong startId, - TT_UShort* id ); - - /* Find the last entry of a Cmap. Its glyph index is returned */ - /* in the "id" field, while the function returns the last valid */ - /* character code in the Cmap. It returns -1 in case of failure. */ - - FT_EXPORT_DEF( TT_Long ) - TT_CharMap_Last( TT_CharMap charMap, - TT_UShort* id ); - - -#ifdef __cplusplus -} -#endif - -#endif /* FTXCMAP_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxerr18.c b/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxerr18.c deleted file mode 100644 index 8f874857559..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxerr18.c +++ /dev/null @@ -1,281 +0,0 @@ -/****************************************************************************/ -/* */ -/* Erwin Dieterich, 15. 10. 1997 */ -/* - 15. 08. 1999 */ -/* */ -/* TT_ErrToString: translate error codes to character strings */ -/* */ -/* This extension provides internationalized error strings from the */ -/* various error messages. It uses the "gettext" package if available */ -/* or returns English/American message strings if not. */ -/* */ -/* If you do not want to use it, or if you encounter some problems */ -/* compiling this file, try to disable nls support when invoking */ -/* */ -/* ./configure --disable-nls (on Unix). */ -/* */ -/* */ -/****************************************************************************/ - -#include "ftxerr18.h" -#include "ftxkern.h" -#include "ftxpost.h" -#include "ftxopen.h" - -#include "ttconfig.h" /* will pull up "ft_conf.h" */ - -#ifdef HAVE_LIBINTL_H - -#include <libintl.h> - -#ifdef HAVE_LOCALE_H -#include <locale.h> -#endif - -#undef _ -#define _( String ) dgettext( "freetype", String ) - -#if 0 -char documentation[] = _( - "Welcome to the translation of the Freetype v.1 library!\n" - "\n" - "This message is not really part of the library (it is bracketed by\n" - " #if 0 / #endif), but is really intended to be the first one in the .po\n" - "file, and the first one that a new translator should see, to give hints.\n" - "\n" - "First, while this .po might seems big, the real interesting part of it\n" - "is only the messages in this file, lib/extend/ftxerr18.c. The other\n" - "messages are part of the demonstration programs, and are more intended\n" - "to help grasping how to use i18n with the Freetype library. So the real\n" - "work is the about 65 first ones. Unfortunately they are the harder ones!\n" - "\n" - "A difficulty is that there are some specialized vocabulary, about\n" - "``faces'', ``glyph'' and similar things. These are typographical things,\n" - "and this should be researched before attempting to translate the whole\n" - "thing. A quick look across the TrueType documentation might help to\n" - "understand many things, too.\n" - "\n" - "Best wiches for your translation!\n" - "Antoine Leca - 2002-11-08" ); -#endif /* 0 */ - -#else /* ! HAVE_LIBINTL_H */ - -#define _( String ) ( String ) - -#endif /* HAVE_LIBINTL_H */ - - -FT_EXPORT_FUNC( TT_String* ) -TT_ErrToString18( TT_Error error ) -{ - - switch ( error ) - { - /* ----- high-level API error codes ----- */ - case TT_Err_Ok: - return _( "Successful function call, no error." ); - - case TT_Err_Invalid_Face_Handle: - return _( "Invalid face handle." ); - case TT_Err_Invalid_Instance_Handle: - return _( "Invalid instance handle." ); - case TT_Err_Invalid_Glyph_Handle: - return _( "Invalid glyph handle." ); - case TT_Err_Invalid_CharMap_Handle: - return _( "Invalid charmap handle." ); - case TT_Err_Invalid_Result_Address: - return _( "Invalid result address." ); - case TT_Err_Invalid_Glyph_Index: - return _( "Invalid glyph index." ); - case TT_Err_Invalid_Argument: - return _( "Invalid argument." ); - case TT_Err_Could_Not_Open_File: - return _( "Could not open file." ); - case TT_Err_File_Is_Not_Collection: - return _( "File is not a TrueType collection." ); - case TT_Err_Table_Missing: - return _( "Mandatory table missing." ); - case TT_Err_Invalid_Horiz_Metrics: - return _( "Invalid horizontal metrics (hmtx table broken)." ); - case TT_Err_Invalid_CharMap_Format: - return _( "Invalid charmap format." ); - case TT_Err_Invalid_PPem: - return _( "Invalid ppem value." ); - case TT_Err_Invalid_Vert_Metrics: - return _( "Invalid vertical metrics (vmtx table broken)." ); - - case TT_Err_Invalid_File_Format: - return _( "Invalid file format." ); - - case TT_Err_Invalid_Engine: - return _( "Invalid engine." ); - case TT_Err_Too_Many_Extensions: - return _( "Too many extensions." ); - case TT_Err_Extensions_Unsupported: - return _( "Extensions unsupported." ); - case TT_Err_Invalid_Extension_Id: - return _( "Invalid extension id." ); - - case TT_Err_No_Vertical_Data: - return _( "No vertical data in font." ); - - case TT_Err_Max_Profile_Missing: - return _( "Maximum Profile (maxp) table missing." ); - case TT_Err_Header_Table_Missing: - return _( "Font Header (head) table missing." ); - case TT_Err_Horiz_Header_Missing: - return _( "Horizontal Header (hhea) table missing." ); - case TT_Err_Locations_Missing: - return _( "Index to Location (loca) table missing." ); - case TT_Err_Name_Table_Missing: - return _( "Naming (name) table missing." ); - case TT_Err_CMap_Table_Missing: - return _( "Character to Glyph Index Mapping (cmap) tables missing." ); - case TT_Err_Hmtx_Table_Missing: - return _( "Horizontal Metrics (hmtx) table missing." ); - case TT_Err_OS2_Table_Missing: - return _( "OS/2 table missing." ); - case TT_Err_Post_Table_Missing: - return _( "PostScript (post) table missing." ); - case TT_Err_Glyf_Table_Missing: - return _( "Glyph (glyf) table missing." ); - - - /* ----- memory component error codes ----- */ - case TT_Err_Out_Of_Memory: - return _( "Out of memory." ); - - - /* ----- file component error codes ----- */ - case TT_Err_Invalid_File_Offset: - return _( "Invalid file offset." ); - case TT_Err_Invalid_File_Read: - return _( "Invalid file read." ); - case TT_Err_Invalid_Frame_Access: - return _( "Invalid frame access." ); - - - /* ----- glyph loader error codes ----- */ - case TT_Err_Too_Many_Points: - return _( "Too many points." ); - case TT_Err_Too_Many_Contours: - return _( "Too many contours." ); - case TT_Err_Invalid_Composite: - return _( "Invalid composite glyph." ); - case TT_Err_Too_Many_Ins: - return _( "Too many instructions." ); - case TT_Err_Too_Many_FDefs: - return _( "Too many function definitions (FDEF)." ); - - - /* ----- byte-code interpreter error codes ----- */ - case TT_Err_Invalid_Opcode: - return _( "Invalid opcode." ); - case TT_Err_Too_Few_Arguments: - return _( "Too few arguments." ); - case TT_Err_Stack_Overflow: - return _( "Stack overflow." ); - case TT_Err_Code_Overflow: - return _( "Code overflow." ); - case TT_Err_Bad_Argument: - return _( "Bad argument." ); - case TT_Err_Divide_By_Zero: - return _( "Divide by zero." ); - case TT_Err_Storage_Overflow: - return _( "Storage overflow." ); - case TT_Err_Cvt_Overflow: - return _( "Control Value (cvt) table overflow." ); - case TT_Err_Invalid_Reference: - return _( "Invalid reference." ); - case TT_Err_Invalid_Distance: - return _( "Invalid distance." ); - case TT_Err_Interpolate_Twilight: - return _( "Interpolate twilight points." ); - case TT_Err_Debug_OpCode: - return _( "`DEBUG' opcode found." ); - case TT_Err_ENDF_In_Exec_Stream: - return _( "`ENDF' in byte-code stream." ); - case TT_Err_Out_Of_CodeRanges: - return _( "Out of code ranges." ); - case TT_Err_Nested_DEFS: - return _( "Nested function definitions." ); - case TT_Err_Invalid_CodeRange: - return _( "Invalid code range." ); - case TT_Err_Invalid_Displacement: - return _( "Invalid displacement." ); - case TT_Err_Execution_Too_Long: - return _( "Endless loop encountered while executing instructions." ); - - - /* ----- internal failure error codes ----- */ - case TT_Err_Nested_Frame_Access: - return _( "Nested frame access." ); - case TT_Err_Invalid_Cache_List: - return _( "Invalid cache list." ); - case TT_Err_Could_Not_Find_Context: - return _( "Could not find context." ); - case TT_Err_Unlisted_Object: - return _( "Unlisted object." ); - - - /* ----- scan-line converter error codes ----- */ - case TT_Err_Raster_Pool_Overflow: - return _( "Raster pool overflow." ); - case TT_Err_Raster_Negative_Height: - return _( "Raster: negative height encountered." ); - case TT_Err_Raster_Invalid_Value: - return _( "Raster: invalid value." ); - case TT_Err_Raster_Not_Initialized: - return _( "Raster not initialized." ); - - - /* ----- engine extensions error codes ----- */ - case TT_Err_Invalid_Kerning_Table_Format: - return _( "Invalid kerning (kern) table format." ); - case TT_Err_Invalid_Kerning_Table: - return _( "Invalid kerning (kern) table." ); - - case TT_Err_Invalid_Post_Table_Format: - return _( "Invalid PostScript (post) table format." ); - case TT_Err_Invalid_Post_Table: - return _( "Invalid PostScript (post) table." ); - - - /* ----- TrueType Open extension error codes ----- */ - case TTO_Err_Invalid_SubTable_Format: - return _( "Invalid TrueType Open subtable format." ); - case TTO_Err_Invalid_SubTable: - return _( "Invalid TrueType Open subtable." ); - case TTO_Err_Not_Covered: - return _( "Glyph(s) not covered by lookup." ); - case TTO_Err_Too_Many_Nested_Contexts: - return _( "Too many nested context substitutions." ); - case TTO_Err_No_MM_Interpreter: - return _( "No MM (Adobe MultipleMaster) interpreter available." ); - - case TTO_Err_Invalid_GSUB_SubTable_Format: - return _( "Invalid glyph substitution (GSUB) table format." ); - case TTO_Err_Invalid_GSUB_SubTable: - return _( "Invalid glyph substitution (GSUB) table." ); - - case TTO_Err_Invalid_GPOS_SubTable_Format: - return _( "Invalid glyph positioning (GPOS) table format." ); - case TTO_Err_Invalid_GPOS_SubTable: - return _( "Invalid glyph positioning (GPOS) table." ); - - case TTO_Err_Invalid_GDEF_SubTable_Format: - return _( "Invalid glyph definition (GDEF) table format." ); - case TTO_Err_Invalid_GDEF_SubTable: - return _( "Invalid glyph definition (GDEF) table." ); - - - default: - ; - } - - return _( "Invalid Error Number." ); -} - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxerr18.h b/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxerr18.h deleted file mode 100644 index 34e3d5e7636..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxerr18.h +++ /dev/null @@ -1,38 +0,0 @@ -/****************************************************************************/ -/* */ -/* Erwin Dieterich, 15. 10. 1997 */ -/* - 15. 08. 1999 */ -/* */ -/* TT_ErrToString: translate error codes to character strings */ -/* */ -/* This extension provides internationalized error strings from the */ -/* various error messages. It uses the "gettext" package where available */ -/* or returns english/american message strings if not. */ -/* */ -/* If you do not want to use it, or if you encounter some problems */ -/* compiling this file, try to disable nls support by configuring */ -/* FreeType with ./configure --disable-nls */ -/* */ -/* */ -/****************************************************************************/ - -#ifndef FTXERR18_H -#define FTXERR18_H - -#include "freetype.h" - -#ifdef __cplusplus - extern "C" { -#endif - - FT_EXPORT_DEF( TT_String* ) - TT_ErrToString18( TT_Error i ); - -#ifdef __cplusplus - } -#endif - -#endif /* FTXERR18_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxgasp.c b/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxgasp.c deleted file mode 100644 index 5d4b7acd67f..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxgasp.c +++ /dev/null @@ -1,69 +0,0 @@ -/******************************************************************* - * - * ftxgasp.c 1.0 - * - * Gasp table support API extension body - * - * Copyright 1996-2001 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - * - * The gasp table is currently loaded by the core engine, but the - * standard API doesn't give access to it. This file is used to - * demonstrate the use of a simple API extension. - * - ******************************************************************/ - -#include "ftxgasp.h" - -#include "tttypes.h" -#include "ttobjs.h" -#include "tttables.h" - - - FT_EXPORT_FUNC( TT_Error ) - TT_Get_Face_Gasp_Flags( TT_Face face, - TT_UShort point_size, - TT_Bool* grid_fit, - TT_Bool* smooth_font ) - { - PFace faze = HANDLE_Face( face ); - UShort i, flag; - - - if ( !faze ) - return TT_Err_Invalid_Face_Handle; - - if ( faze->gasp.numRanges == 0 || !faze->gasp.gaspRanges ) - return TT_Err_Table_Missing; - - for ( i = 0; i < faze->gasp.numRanges; i++ ) - { - if ( point_size <= faze->gasp.gaspRanges[i].maxPPEM ) - { - flag = faze->gasp.gaspRanges[i].gaspFlag; - - *grid_fit = ( (flag & GASP_GRIDFIT) != 0 ); - *smooth_font = ( (flag & GASP_DOGRAY ) != 0 ); - - return TT_Err_Ok; - } - } - - /* for very large fonts we enable font smoothing and discard */ - /* grid fitting */ - - *grid_fit = 0; - *smooth_font = 1; - - return TT_Err_Ok; - } - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxgasp.h b/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxgasp.h deleted file mode 100644 index 36b92521fbc..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxgasp.h +++ /dev/null @@ -1,53 +0,0 @@ -/******************************************************************* - * - * ftxgasp.h 1.0 - * - * Gasp table support API extension - * - * Copyright 1996-2001 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - * - * The gasp table is currently loaded by the core engine, but the - * standard API doesn't give access to it. This file is used to - * demonstrate the use of a simple API extension. - * - ******************************************************************/ - -#ifndef FTXGASP_H -#define FTXGASP_H - -#include "freetype.h" - -#ifdef __cplusplus -extern "C" { -#endif - - - /* This function returns for a given 'point_size' the values of the */ - /* gasp flags 'grid_fit' and 'smooth_font'. The returned values */ - /* are booleans (where 0 = NO, and 1 = YES). */ - - /* Note that this function will return TT_Err_Table_Missing if */ - /* the font file doesn't contain any gasp table. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Get_Face_Gasp_Flags( TT_Face face, - TT_UShort point_size, - TT_Bool* grid_fit, - TT_Bool* smooth_font ); - -#ifdef __cplusplus -} -#endif - -#endif /* FTXGASP_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxgdef.c b/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxgdef.c deleted file mode 100644 index 1dcff28a5fb..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxgdef.c +++ /dev/null @@ -1,1126 +0,0 @@ -/******************************************************************* - * - * ftxgdef.c - * - * TrueType Open GDEF table support. - * - * Copyright 1996-2001 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - ******************************************************************/ - -#include "tttypes.h" -#include "tttags.h" -#include "ttload.h" -#include "ttextend.h" -#include "ttmemory.h" -#include "ttfile.h" - -#include "ftxopen.h" -#include "ftxopenf.h" - - - static TT_Error Load_AttachList( TTO_AttachList* al, - PFace input ); - static TT_Error Load_LigCaretList( TTO_LigCaretList* lcl, - PFace input ); - - static void Free_AttachList( TTO_AttachList* al ); - static void Free_LigCaretList( TTO_LigCaretList* lcl ); - - static void Free_NewGlyphClasses( TTO_GDEFHeader* gdef ); - - - - /********************** - * Extension Functions - **********************/ - - - static TT_Error GDEF_Create( void* ext, - PFace face ) - { - DEFINE_LOAD_LOCALS( face->stream ); - - TTO_GDEFHeader* gdef = (TTO_GDEFHeader*)ext; - Long table; - - - /* by convention */ - - if ( !gdef ) - return TT_Err_Ok; - - /* a null offset indicates that there is no GDEF table */ - - gdef->offset = 0; - - /* we store the start offset and the size of the subtable */ - - table = TT_LookUp_Table( face, TTAG_GDEF ); - if ( table < 0 ) - return TT_Err_Ok; /* The table is optional */ - - if ( FILE_Seek( face->dirTables[table].Offset ) || - ACCESS_Frame( 4L ) ) - return error; - - gdef->offset = FILE_Pos() - 4L; /* undo ACCESS_Frame() */ - gdef->Version = GET_ULong(); - - FORGET_Frame(); - - gdef->loaded = FALSE; - - return TT_Err_Ok; - } - - - static TT_Error GDEF_Destroy( void* ext, - PFace face ) - { - TTO_GDEFHeader* gdef = (TTO_GDEFHeader*)ext; - - - /* by convention */ - - if ( !gdef ) - return TT_Err_Ok; - - if ( gdef->loaded ) - { - Free_LigCaretList( &gdef->LigCaretList ); - Free_AttachList( &gdef->AttachList ); - Free_ClassDefinition( &gdef->GlyphClassDef ); - Free_ClassDefinition( &gdef->MarkAttachClassDef ); - - Free_NewGlyphClasses( gdef ); - } - - return TT_Err_Ok; - } - - - FT_EXPORT_FUNC( TT_Error ) - TT_Init_GDEF_Extension( TT_Engine engine ) - { - PEngine_Instance _engine = HANDLE_Engine( engine ); - - - if ( !_engine ) - return TT_Err_Invalid_Engine; - - return TT_Register_Extension( _engine, - GDEF_ID, - sizeof ( TTO_GDEFHeader ), - GDEF_Create, - GDEF_Destroy ); - } - - - FT_EXPORT_FUNC( TT_Error ) - TT_Load_GDEF_Table( TT_Face face, - TTO_GDEFHeader* retptr ) - { - ULong cur_offset, new_offset, base_offset; - - TTO_GDEFHeader* gdef; - - PFace faze = HANDLE_Face( face ); - DEFINE_ALL_LOCALS; - - - if ( !retptr ) - return TT_Err_Invalid_Argument; - - if ( !faze ) - return TT_Err_Invalid_Face_Handle; - - error = TT_Extension_Get( faze, GDEF_ID, (void**)&gdef ); - if ( error ) - return error; - - if ( gdef->offset == 0 ) - return TT_Err_Table_Missing; /* no GDEF table; nothing to do */ - - /* now access stream */ - - if ( USE_Stream( faze->stream, stream ) ) - return error; - - base_offset = gdef->offset; - - /* skip version */ - - if ( FILE_Seek( base_offset + 4L ) || - ACCESS_Frame( 2L ) ) - return error; - - new_offset = GET_UShort(); - - FORGET_Frame(); - - /* all GDEF subtables are optional */ - - if ( new_offset ) - { - new_offset += base_offset; - - /* only classes 1-4 are allowed here */ - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_ClassDefinition( &gdef->GlyphClassDef, 5, - faze ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - } - else - gdef->GlyphClassDef.loaded = FALSE; - - if ( ACCESS_Frame( 2L ) ) - return error; - - new_offset = GET_UShort(); - - FORGET_Frame(); - - if ( new_offset ) - { - new_offset += base_offset; - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_AttachList( &gdef->AttachList, - faze ) ) != TT_Err_Ok ) - goto Fail1; - (void)FILE_Seek( cur_offset ); - } - else - gdef->AttachList.loaded = FALSE; - - if ( ACCESS_Frame( 2L ) ) - return error; - - new_offset = GET_UShort(); - - FORGET_Frame(); - - if ( new_offset ) - { - new_offset += base_offset; - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_LigCaretList( &gdef->LigCaretList, - faze ) ) != TT_Err_Ok ) - goto Fail2; - (void)FILE_Seek( cur_offset ); - } - else - gdef->LigCaretList.loaded = FALSE; - - /* OpenType 1.2 has introduced the `MarkAttachClassDef' field. We - first have to scan the LookupFlag values to find out whether we - must load it or not. Here we only store the current file offset. */ - - gdef->MarkAttachClassDef_offset = FILE_Pos(); - gdef->MarkAttachClassDef.loaded = FALSE; - - gdef->LastGlyph = 0; - gdef->NewGlyphClasses = NULL; - gdef->loaded = TRUE; - - *retptr = *gdef; - DONE_Stream( stream ); - - return TT_Err_Ok; - - Fail2: - Free_AttachList( &gdef->AttachList ); - - Fail1: - Free_ClassDefinition( &gdef->GlyphClassDef ); - - /* release stream */ - - DONE_Stream( stream ); - - return error; - } - - - - /******************************* - * AttachList related functions - *******************************/ - - - /* AttachPoint */ - - static TT_Error Load_AttachPoint( TTO_AttachPoint* ap, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - UShort* pi; - - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = ap->PointCount = GET_UShort(); - - FORGET_Frame(); - - ap->PointIndex = NULL; - - if ( count ) - { - if ( ALLOC_ARRAY( ap->PointIndex, count, UShort ) ) - return error; - - pi = ap->PointIndex; - - if ( ACCESS_Frame( count * 2L ) ) - { - FREE( pi ); - return error; - } - - for ( n = 0; n < count; n++ ) - pi[n] = GET_UShort(); - - FORGET_Frame(); - } - - return TT_Err_Ok; - } - - - static void Free_AttachPoint( TTO_AttachPoint* ap ) - { - FREE( ap->PointIndex ); - } - - - /* AttachList */ - - static TT_Error Load_AttachList( TTO_AttachList* al, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_AttachPoint* ap; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 2L ) ) - return error; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &al->Coverage, input ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - count = al->GlyphCount = GET_UShort(); - - FORGET_Frame(); - - al->AttachPoint = NULL; - - if ( ALLOC_ARRAY( al->AttachPoint, count, TTO_AttachPoint ) ) - goto Fail2; - - ap = al->AttachPoint; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail1; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_AttachPoint( &ap[n], input ) ) != TT_Err_Ok ) - goto Fail1; - (void)FILE_Seek( cur_offset ); - } - - al->loaded = TRUE; - - return TT_Err_Ok; - - Fail1: - for ( n = 0; n < count; n++ ) - Free_AttachPoint( &ap[n] ); - - FREE( ap ); - - Fail2: - Free_Coverage( &al->Coverage ); - return error; - } - - - static void Free_AttachList( TTO_AttachList* al ) - { - UShort n, count; - - TTO_AttachPoint* ap; - - - if ( !al->loaded ) - return; - - if ( al->AttachPoint ) - { - count = al->GlyphCount; - ap = al->AttachPoint; - - for ( n = 0; n < count; n++ ) - Free_AttachPoint( &ap[n] ); - - FREE( ap ); - } - - Free_Coverage( &al->Coverage ); - } - - - - /********************************* - * LigCaretList related functions - *********************************/ - - - /* CaretValueFormat1 */ - /* CaretValueFormat2 */ - /* CaretValueFormat3 */ - /* CaretValueFormat4 */ - - static TT_Error Load_CaretValue( TTO_CaretValue* cv, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - ULong cur_offset, new_offset, base_offset; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 2L ) ) - return error; - - cv->CaretValueFormat = GET_UShort(); - - FORGET_Frame(); - - switch ( cv->CaretValueFormat ) - { - case 1: - if ( ACCESS_Frame( 2L ) ) - return error; - - cv->cvf.cvf1.Coordinate = GET_Short(); - - FORGET_Frame(); - - break; - - case 2: - if ( ACCESS_Frame( 2L ) ) - return error; - - cv->cvf.cvf2.CaretValuePoint = GET_UShort(); - - FORGET_Frame(); - - break; - - case 3: - if ( ACCESS_Frame( 4L ) ) - return error; - - cv->cvf.cvf3.Coordinate = GET_Short(); - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Device( &cv->cvf.cvf3.Device, - input ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - - break; - - case 4: - if ( ACCESS_Frame( 2L ) ) - return error; - - cv->cvf.cvf4.IdCaretValue = GET_UShort(); - - FORGET_Frame(); - break; - - default: - return TTO_Err_Invalid_GDEF_SubTable_Format; - } - - return TT_Err_Ok; - } - - - static void Free_CaretValue( TTO_CaretValue* cv ) - { - if ( cv->CaretValueFormat == 3 ) - Free_Device( &cv->cvf.cvf3.Device ); - } - - - /* LigGlyph */ - - static TT_Error Load_LigGlyph( TTO_LigGlyph* lg, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_CaretValue* cv; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = lg->CaretCount = GET_UShort(); - - FORGET_Frame(); - - lg->CaretValue = NULL; - - if ( ALLOC_ARRAY( lg->CaretValue, count, TTO_CaretValue ) ) - return error; - - cv = lg->CaretValue; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_CaretValue( &cv[n], input ) ) != TT_Err_Ok ) - goto Fail; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail: - for ( n = 0; n < count; n++ ) - Free_CaretValue( &cv[n] ); - - FREE( cv ); - return error; - } - - - static void Free_LigGlyph( TTO_LigGlyph* lg ) - { - UShort n, count; - - TTO_CaretValue* cv; - - - if ( lg->CaretValue ) - { - count = lg->CaretCount; - cv = lg->CaretValue; - - for ( n = 0; n < count; n++ ) - Free_CaretValue( &cv[n] ); - - FREE( cv ); - } - } - - - /* LigCaretList */ - - static TT_Error Load_LigCaretList( TTO_LigCaretList* lcl, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_LigGlyph* lg; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 2L ) ) - return error; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &lcl->Coverage, input ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - count = lcl->LigGlyphCount = GET_UShort(); - - FORGET_Frame(); - - lcl->LigGlyph = NULL; - - if ( ALLOC_ARRAY( lcl->LigGlyph, count, TTO_LigGlyph ) ) - goto Fail2; - - lg = lcl->LigGlyph; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail1; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_LigGlyph( &lg[n], input ) ) != TT_Err_Ok ) - goto Fail1; - (void)FILE_Seek( cur_offset ); - } - - lcl->loaded = TRUE; - - return TT_Err_Ok; - - Fail1: - for ( n = 0; n < count; n++ ) - Free_LigGlyph( &lg[n] ); - - FREE( lg ); - - Fail2: - Free_Coverage( &lcl->Coverage ); - return error; - } - - - static void Free_LigCaretList( TTO_LigCaretList* lcl ) - { - UShort n, count; - - TTO_LigGlyph* lg; - - - if ( !lcl->loaded ) - return; - - if ( lcl->LigGlyph ) - { - count = lcl->LigGlyphCount; - lg = lcl->LigGlyph; - - for ( n = 0; n < count; n++ ) - Free_LigGlyph( &lg[n] ); - - FREE( lg ); - } - - Free_Coverage( &lcl->Coverage ); - } - - - - /*********** - * GDEF API - ***********/ - - - static UShort Get_New_Class( TTO_GDEFHeader* gdef, - UShort glyphID, - UShort index ) - { - UShort glyph_index, array_index; - UShort byte, bits; - - TTO_ClassRangeRecord* gcrr; - UShort** ngc; - - - if ( glyphID >= gdef->LastGlyph ) - return 0; - - gcrr = gdef->GlyphClassDef.cd.cd2.ClassRangeRecord; - ngc = gdef->NewGlyphClasses; - - if ( glyphID < gcrr[index].Start ) - { - array_index = 0; - if ( index == 0 ) - glyph_index = glyphID; - else - glyph_index = glyphID - gcrr[index - 1].End - 1; - } - else - { - array_index = index + 1; - glyph_index = glyphID - gcrr[index].End - 1; - } - - byte = ngc[array_index][glyph_index / 4 + 1]; - bits = byte >> ( 16 - ( glyph_index % 4 + 1 ) * 4 ); - - return bits & 0x000F; - } - - - FT_EXPORT_FUNC( TT_Error ) - TT_GDEF_Get_Glyph_Property( TTO_GDEFHeader* gdef, - TT_UShort glyphID, - TT_UShort* property ) - { - UShort class, index; - - TT_Error error; - - - if ( !gdef || !property ) - return TT_Err_Invalid_Argument; - - /* first, we check for mark attach classes */ - - if ( gdef->MarkAttachClassDef.loaded ) - { - error = Get_Class( &gdef->MarkAttachClassDef, glyphID, &class, &index ); - if ( error && error != TTO_Err_Not_Covered ) - return error; - if ( !error ) - { - *property = class << 8; - return TT_Err_Ok; - } - } - - error = Get_Class( &gdef->GlyphClassDef, glyphID, &class, &index ); - if ( error && error != TTO_Err_Not_Covered ) - return error; - - /* if we have a constructed class table, check whether additional - values have been assigned */ - - if ( error == TTO_Err_Not_Covered && gdef->NewGlyphClasses ) - class = Get_New_Class( gdef, glyphID, index ); - - switch ( class ) - { - case UNCLASSIFIED_GLYPH: - *property = 0; - break; - - case SIMPLE_GLYPH: - *property = TTO_BASE_GLYPH; - break; - - case LIGATURE_GLYPH: - *property = TTO_LIGATURE; - break; - - case MARK_GLYPH: - *property = TTO_MARK; - break; - - case COMPONENT_GLYPH: - *property = TTO_COMPONENT; - break; - } - - return TT_Err_Ok; - } - - - static TT_Error Make_ClassRange( TTO_ClassDefinition* cd, - UShort start, - UShort end, - UShort class ) - { - TT_Error error; - UShort index; - - TTO_ClassDefFormat2* cdf2; - TTO_ClassRangeRecord* crr; - - - cdf2 = &cd->cd.cd2; - - cdf2->ClassRangeCount++; - - if ( REALLOC_ARRAY( cdf2->ClassRangeRecord, cdf2->ClassRangeCount, - TTO_ClassRangeRecord ) ) - return error; - - crr = cdf2->ClassRangeRecord; - index = cdf2->ClassRangeCount - 1; - - crr[index].Start = start; - crr[index].End = end; - crr[index].Class = class; - - cd->Defined[class] = TRUE; - - return TT_Err_Ok; - } - - - FT_EXPORT_FUNC( TT_Error ) - TT_GDEF_Build_ClassDefinition( TTO_GDEFHeader* gdef, - TT_UShort num_glyphs, - TT_UShort glyph_count, - TT_UShort* glyph_array, - TT_UShort* class_array ) - { - UShort start, curr_glyph, curr_class; - UShort n, count; - TT_Error error; - - TTO_ClassDefinition* gcd; - TTO_ClassRangeRecord* gcrr; - UShort** ngc; - - - if ( !gdef || !glyph_array || !class_array ) - return TT_Err_Invalid_Argument; - - gcd = &gdef->GlyphClassDef; - - /* We build a format 2 table */ - - gcd->ClassFormat = 2; - - /* A GlyphClassDef table contains at most 5 different class values */ - - if ( ALLOC_ARRAY( gcd->Defined, 5, Bool ) ) - return error; - - gcd->cd.cd2.ClassRangeCount = 0; - gcd->cd.cd2.ClassRangeRecord = NULL; - - start = glyph_array[0]; - curr_class = class_array[0]; - curr_glyph = start; - - if ( curr_class >= 5 ) - { - error = TT_Err_Invalid_Argument; - goto Fail4; - } - - glyph_count--; - - for ( n = 0; n <= glyph_count; n++ ) - { - if ( curr_glyph == glyph_array[n] && curr_class == class_array[n] ) - { - if ( n == glyph_count ) - { - if ( ( error = Make_ClassRange( gcd, start, - curr_glyph, - curr_class ) ) != TT_Err_Ok ) - goto Fail3; - } - else - { - if ( curr_glyph == 0xFFFF ) - { - error = TT_Err_Invalid_Argument; - goto Fail3; - } - else - curr_glyph++; - } - } - else - { - if ( ( error = Make_ClassRange( gcd, start, - curr_glyph - 1, - curr_class ) ) != TT_Err_Ok ) - goto Fail3; - - if ( curr_glyph > glyph_array[n] ) - { - error = TT_Err_Invalid_Argument; - goto Fail3; - } - - start = glyph_array[n]; - curr_class = class_array[n]; - curr_glyph = start; - - if ( curr_class >= 5 ) - { - error = TT_Err_Invalid_Argument; - goto Fail3; - } - - if ( n == glyph_count ) - { - if ( ( error = Make_ClassRange( gcd, start, - curr_glyph, - curr_class ) ) != TT_Err_Ok ) - goto Fail3; - } - else - { - if ( curr_glyph == 0xFFFF ) - { - error = TT_Err_Invalid_Argument; - goto Fail3; - } - else - curr_glyph++; - } - } - } - - /* now prepare the arrays for class values assigned during the lookup - process */ - - if ( ALLOC_ARRAY( gdef->NewGlyphClasses, - gcd->cd.cd2.ClassRangeCount + 1, UShort* ) ) - goto Fail2; - - count = gcd->cd.cd2.ClassRangeCount; - gcrr = gcd->cd.cd2.ClassRangeRecord; - ngc = gdef->NewGlyphClasses; - - /* We allocate arrays for all glyphs not covered by the class range - records. Each element holds four class values. */ - - if ( gcrr[0].Start ) - { - if ( ALLOC_ARRAY( ngc[0], gcrr[0].Start / 4 + 1, UShort ) ) - goto Fail1; - } - - for ( n = 1; n < count; n++ ) - { - if ( gcrr[n].Start - gcrr[n - 1].End > 1 ) - if ( ALLOC_ARRAY( ngc[n], - ( gcrr[n].Start - gcrr[n - 1].End - 1 ) / 4 + 1, - UShort ) ) - goto Fail1; - } - - if ( gcrr[count - 1].End != num_glyphs - 1 ) - { - if ( ALLOC_ARRAY( ngc[count], - ( num_glyphs - gcrr[count - 1].End - 1 ) / 4 + 1, - UShort ) ) - goto Fail1; - } - - gdef->LastGlyph = num_glyphs - 1; - - gdef->MarkAttachClassDef_offset = 0L; - gdef->MarkAttachClassDef.loaded = FALSE; - - return TT_Err_Ok; - - Fail1: - for ( n = 0; n < count; n++ ) - FREE( ngc[n] ); - - Fail2: - FREE( gdef->NewGlyphClasses ); - - Fail3: - FREE( gcd->cd.cd2.ClassRangeRecord ); - - Fail4: - FREE( gcd->Defined ); - return error; - } - - - static void Free_NewGlyphClasses( TTO_GDEFHeader* gdef ) - { - UShort** ngc; - UShort n, count; - - - if ( gdef->NewGlyphClasses ) - { - count = gdef->GlyphClassDef.cd.cd2.ClassRangeCount + 1; - ngc = gdef->NewGlyphClasses; - - for ( n = 0; n < count; n++ ) - FREE( ngc[n] ); - - FREE( ngc ); - } - } - - - TT_Error Add_Glyph_Property( TTO_GDEFHeader* gdef, - UShort glyphID, - UShort property ) - { - TT_Error error; - UShort class, new_class, index; - UShort byte, bits, mask; - UShort array_index, glyph_index; - - TTO_ClassRangeRecord* gcrr; - UShort** ngc; - - - error = Get_Class( &gdef->GlyphClassDef, glyphID, &class, &index ); - if ( error && error != TTO_Err_Not_Covered ) - return error; - - /* we don't accept glyphs covered in `GlyphClassDef' */ - - if ( !error ) - return TTO_Err_Not_Covered; - - switch ( property ) - { - case 0: - new_class = UNCLASSIFIED_GLYPH; - break; - - case TTO_BASE_GLYPH: - new_class = SIMPLE_GLYPH; - break; - - case TTO_LIGATURE: - new_class = LIGATURE_GLYPH; - break; - - case TTO_MARK: - new_class = MARK_GLYPH; - break; - - case TTO_COMPONENT: - new_class = COMPONENT_GLYPH; - break; - - default: - return TT_Err_Invalid_Argument; - } - - gcrr = gdef->GlyphClassDef.cd.cd2.ClassRangeRecord; - ngc = gdef->NewGlyphClasses; - - if ( glyphID < gcrr[index].Start ) - { - array_index = 0; - if ( index == 0 ) - glyph_index = glyphID; - else - glyph_index = glyphID - gcrr[index - 1].End - 1; - } - else - { - array_index = index + 1; - glyph_index = glyphID - gcrr[index].End - 1; - } - - byte = ngc[array_index][glyph_index / 4 + 1]; - bits = byte >> ( 16 - ( glyph_index % 4 + 1 ) * 4 ); - class = bits & 0x000F; - - /* we don't overwrite existing entries */ - - if ( !class ) - { - bits = new_class << ( 16 - ( glyph_index % 4 + 1 ) * 4 ); - mask = ~( 0x000F << ( 16 - ( glyph_index % 4 + 1 ) * 4 ) ); - - ngc[array_index][glyph_index / 4 + 1] &= mask; - ngc[array_index][glyph_index / 4 + 1] |= bits; - } - - return TT_Err_Ok; - } - - - TT_Error Check_Property( TTO_GDEFHeader* gdef, - UShort index, - UShort flags, - UShort* property ) - { - TT_Error error; - - - if ( gdef ) - { - error = TT_GDEF_Get_Glyph_Property( gdef, index, property ); - if ( error ) - return error; - - if ( flags & IGNORE_SPECIAL_MARKS ) - { - /* This is OpenType 1.2 */ - - if ( (flags & 0xFF00) != *property ) - return TTO_Err_Not_Covered; - } - else { - if ( flags & *property ) - return TTO_Err_Not_Covered; - } - } - - return TT_Err_Ok; - } - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxgdef.h b/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxgdef.h deleted file mode 100644 index 927d0a1bdbe..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxgdef.h +++ /dev/null @@ -1,218 +0,0 @@ -/******************************************************************* - * - * ftxgdef.h - * - * TrueType Open GDEF table support - * - * Copyright 1996-2001 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - ******************************************************************/ - -#ifndef FTXOPEN_H -#error "Don't include this file! Use ftxopen.h instead." -#endif - -#ifndef FTXGDEF_H -#define FTXGDEF_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define TTO_Err_Invalid_GDEF_SubTable_Format 0x1030 -#define TTO_Err_Invalid_GDEF_SubTable 0x1031 - -#define GDEF_ID Build_Extension_ID( 'G', 'D', 'E', 'F' ) - - -/* GDEF glyph classes */ - -#define UNCLASSIFIED_GLYPH 0 -#define SIMPLE_GLYPH 1 -#define LIGATURE_GLYPH 2 -#define MARK_GLYPH 3 -#define COMPONENT_GLYPH 4 - -/* GDEF glyph properties, corresponding to class values 1-4. Note that - TTO_COMPONENT has no corresponding flag in the LookupFlag field. */ - -#define TTO_BASE_GLYPH 0x0002 -#define TTO_LIGATURE 0x0004 -#define TTO_MARK 0x0008 -#define TTO_COMPONENT 0x0010 - - - /* Attachment related structures */ - - struct TTO_AttachPoint_ - { - TT_UShort PointCount; /* size of the PointIndex array */ - TT_UShort* PointIndex; /* array of contour points */ - }; - - typedef struct TTO_AttachPoint_ TTO_AttachPoint; - - - struct TTO_AttachList_ - { - TT_Bool loaded; - - TTO_Coverage Coverage; /* Coverage table */ - TT_UShort GlyphCount; /* number of glyphs with - attachments */ - TTO_AttachPoint* AttachPoint; /* array of AttachPoint tables */ - }; - - typedef struct TTO_AttachList_ TTO_AttachList; - - - /* Ligature Caret related structures */ - - struct TTO_CaretValueFormat1_ - { - TT_Short Coordinate; /* x or y value (in design units) */ - }; - - typedef struct TTO_CaretValueFormat1_ TTO_CaretValueFormat1; - - - struct TTO_CaretValueFormat2_ - { - TT_UShort CaretValuePoint; /* contour point index on glyph */ - }; - - typedef struct TTO_CaretValueFormat2_ TTO_CaretValueFormat2; - - - struct TTO_CaretValueFormat3_ - { - TT_Short Coordinate; /* x or y value (in design units) */ - TTO_Device Device; /* Device table for x or y value */ - }; - - typedef struct TTO_CaretValueFormat3_ TTO_CaretValueFormat3; - - - struct TTO_CaretValueFormat4_ - { - TT_UShort IdCaretValue; /* metric ID */ - }; - - typedef struct TTO_CaretValueFormat4_ TTO_CaretValueFormat4; - - - struct TTO_CaretValue_ - { - TT_UShort CaretValueFormat; /* 1, 2, 3, or 4 */ - - union - { - TTO_CaretValueFormat1 cvf1; - TTO_CaretValueFormat2 cvf2; - TTO_CaretValueFormat3 cvf3; - TTO_CaretValueFormat4 cvf4; - } cvf; - }; - - typedef struct TTO_CaretValue_ TTO_CaretValue; - - - struct TTO_LigGlyph_ - { - TT_Bool loaded; - - TT_UShort CaretCount; /* number of caret values */ - TTO_CaretValue* CaretValue; /* array of caret values */ - }; - - typedef struct TTO_LigGlyph_ TTO_LigGlyph; - - - struct TTO_LigCaretList_ - { - TT_Bool loaded; - - TTO_Coverage Coverage; /* Coverage table */ - TT_UShort LigGlyphCount; /* number of ligature glyphs */ - TTO_LigGlyph* LigGlyph; /* array of LigGlyph tables */ - }; - - typedef struct TTO_LigCaretList_ TTO_LigCaretList; - - - /* The `NewGlyphClasses' field is not defined in the TTO specification. - We use it for fonts with a constructed `GlyphClassDef' structure - (i.e., which don't have a GDEF table) to collect glyph classes - assigned during the lookup process. The number of arrays in this - pointer array is GlyphClassDef->cd.cd2.ClassRangeCount+1; the nth - array then contains the glyph class values of the glyphs not covered - by the ClassRangeRecords structures with index n-1 and n. We store - glyph class values for four glyphs in a single array element. - - `LastGlyph' is identical to the number of glyphs minus one in the - font; we need it only if `NewGlyphClasses' is not NULL (to have an - upper bound for the last array). - - Note that we first store the file offset to the `MarkAttachClassDef' - field (which has been introduced in OpenType 1.2) -- since the - `Version' field value hasn't been increased to indicate that we have - one more field for some obscure reason, we must parse the GSUB table - to find out whether class values refer to this table. Only then we - can finally load the MarkAttachClassDef structure if necessary. */ - - struct TTO_GDEFHeader_ - { - TT_Bool loaded; - TT_ULong offset; - - TT_Fixed Version; - - TTO_ClassDefinition GlyphClassDef; - TTO_AttachList AttachList; - TTO_LigCaretList LigCaretList; - TT_ULong MarkAttachClassDef_offset; - TTO_ClassDefinition MarkAttachClassDef; /* new in OT 1.2 */ - - TT_UShort LastGlyph; - TT_UShort** NewGlyphClasses; - }; - - typedef struct TTO_GDEFHeader_ TTO_GDEFHeader; - - - /* finally, the GDEF API */ - - FT_EXPORT_DEF( TT_Error ) - TT_Init_GDEF_Extension( TT_Engine engine ); - - FT_EXPORT_DEF( TT_Error ) - TT_Load_GDEF_Table( TT_Face face, - TTO_GDEFHeader* gdef ); - - FT_EXPORT_DEF( TT_Error ) - TT_GDEF_Get_Glyph_Property( TTO_GDEFHeader* gdef, - TT_UShort glyphID, - TT_UShort* property ); - FT_EXPORT_DEF( TT_Error ) - TT_GDEF_Build_ClassDefinition( TTO_GDEFHeader* gdef, - TT_UShort num_glyphs, - TT_UShort glyph_count, - TT_UShort* glyph_array, - TT_UShort* class_array ); - - -#ifdef __cplusplus -} -#endif - -#endif /* FTXGDEF_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxgpos.c b/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxgpos.c deleted file mode 100644 index 534fda0f4ae..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxgpos.c +++ /dev/null @@ -1,6224 +0,0 @@ -/******************************************************************* - * - * ftxgpos.c - * - * TrueType Open GPOS table support. - * - * Copyright 1996-2001 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - ******************************************************************/ - -/* XXX There is *a lot* of duplicated code (cf. formats 7 and 8), but - I don't care currently. I believe that it would be possible to - save about 50% of TTO code by carefully designing the structures, - sharing as much as possible with extensive use of macros. This - is something for a volunteer :-) */ - -#include "tttypes.h" -#include "tttags.h" -#include "ttload.h" -#include "ttextend.h" -#include "ttmemory.h" -#include "ttfile.h" - -#include "ftxopen.h" -#include "ftxopenf.h" - - - struct GPOS_Instance_ - { - TTO_GPOSHeader* gpos; - TT_Instance instance; - TT_Glyph glyph; - UShort load_flags; /* how the glyph should be loaded */ - TT_Bool r2l; - - UShort first; /* the first glyph in a chain of - cursive connections */ - UShort last; /* the last valid glyph -- used - with cursive positioning */ - TT_Pos anchor_x; /* the coordinates of the anchor point */ - TT_Pos anchor_y; /* of the last valid glyph */ - }; - - typedef struct GPOS_Instance_ GPOS_Instance; - - - static TT_Error Do_Glyph_Lookup( GPOS_Instance* gpi, - UShort lookup_index, - TTO_GSUB_String* in, - TTO_GPOS_Data* out, - UShort context_length, - int nesting_level ); - - - - /********************** - * Extension Functions - **********************/ - - /* the client application must replace this with something more - meaningful if multiple master fonts are to be supported. */ - - static TT_Error default_mmfunc( TT_Instance instance, - TT_UShort metric_id, - TT_Pos* metric_value, - void* data ) - { - return TTO_Err_No_MM_Interpreter; - } - - - static TT_Error GPOS_Create( void* ext, - PFace face ) - { - DEFINE_LOAD_LOCALS( face->stream ); - - TTO_GPOSHeader* gpos = (TTO_GPOSHeader*)ext; - Long table; - - - /* by convention */ - - if ( !gpos ) - return TT_Err_Ok; - - /* a null offset indicates that there is no GPOS table */ - - gpos->offset = 0; - - /* we store the start offset and the size of the subtable */ - - table = TT_LookUp_Table( face, TTAG_GPOS ); - if ( table < 0 ) - return TT_Err_Ok; /* The table is optional */ - - if ( FILE_Seek( face->dirTables[table].Offset ) || - ACCESS_Frame( 4L ) ) - return error; - - gpos->offset = FILE_Pos() - 4L; /* undo ACCESS_Frame() */ - gpos->Version = GET_ULong(); - - FORGET_Frame(); - - /* a default mmfunc() handler which just returns an error */ - - gpos->mmfunc = default_mmfunc; - - /* the default glyph function is TT_Load_Glyph() */ - - gpos->gfunc = TT_Load_Glyph; - - gpos->loaded = FALSE; - - return TT_Err_Ok; - } - - - static TT_Error GPOS_Destroy( void* ext, - PFace face ) - { - TTO_GPOSHeader* gpos = (TTO_GPOSHeader*)ext; - - - /* by convention */ - - if ( !gpos ) - return TT_Err_Ok; - - if ( gpos->loaded ) - { - Free_LookupList( &gpos->LookupList, GPOS ); - Free_FeatureList( &gpos->FeatureList ); - Free_ScriptList( &gpos->ScriptList ); - } - - return TT_Err_Ok; - } - - - FT_EXPORT_FUNC( TT_Error ) - TT_Init_GPOS_Extension( TT_Engine engine ) - { - PEngine_Instance _engine = HANDLE_Engine( engine ); - - - if ( !_engine ) - return TT_Err_Invalid_Engine; - - return TT_Register_Extension( _engine, - GPOS_ID, - sizeof ( TTO_GPOSHeader ), - GPOS_Create, - GPOS_Destroy ); - } - - - FT_EXPORT_FUNC( TT_Error ) - TT_Load_GPOS_Table( TT_Face face, - TTO_GPOSHeader* retptr, - TTO_GDEFHeader* gdef ) - { - ULong cur_offset, new_offset, base_offset; - - UShort i, num_lookups; - TTO_GPOSHeader* gpos; - TTO_GDEFHeader* gdef_reg; - TTO_Lookup* lo; - - PFace faze = HANDLE_Face( face ); - DEFINE_ALL_LOCALS; - - - if ( !retptr ) - return TT_Err_Invalid_Argument; - - if ( !faze ) - return TT_Err_Invalid_Face_Handle; - - error = TT_Extension_Get( faze, GPOS_ID, (void**)&gpos ); - if ( error ) - return error; - - if ( gpos->offset == 0 ) - return TT_Err_Table_Missing; /* no GPOS table; nothing to do */ - - /* now access stream */ - - if ( USE_Stream( faze->stream, stream ) ) - return error; - - base_offset = gpos->offset; - - /* skip version */ - - if ( FILE_Seek( base_offset + 4L ) || - ACCESS_Frame( 2L ) ) - return error; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_ScriptList( &gpos->ScriptList, - faze ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 2L ) ) - goto Fail3; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_FeatureList( &gpos->FeatureList, - faze ) ) != TT_Err_Ok ) - goto Fail3; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_LookupList( &gpos->LookupList, - faze, GPOS ) ) != TT_Err_Ok ) - goto Fail2; - - gpos->gdef = gdef; /* can be NULL */ - - /* We now check the LookupFlags for values larger than 0xFF to find - out whether we need to load the `MarkAttachClassDef' field of the - GDEF table -- this hack is necessary for OpenType 1.2 tables since - the version field of the GDEF table hasn't been incremented. - - For constructed GDEF tables, we only load it if - `MarkAttachClassDef_offset' is not zero (nevertheless, a build of - a constructed mark attach table is not supported currently). */ - - if ( gdef && - gdef->MarkAttachClassDef_offset && !gdef->MarkAttachClassDef.loaded ) - { - lo = gpos->LookupList.Lookup; - num_lookups = gpos->LookupList.LookupCount; - - for ( i = 0; i < num_lookups; i++ ) - { - if ( lo[i].LookupFlag & IGNORE_SPECIAL_MARKS ) - { - if ( FILE_Seek( gdef->MarkAttachClassDef_offset ) || - ACCESS_Frame( 2L ) ) - goto Fail1; - - new_offset = GET_UShort(); - - FORGET_Frame(); - - if ( !new_offset ) - return TTO_Err_Invalid_GDEF_SubTable; - - new_offset += gdef->offset; - - if ( FILE_Seek( new_offset ) || - ( error = Load_ClassDefinition( &gdef->MarkAttachClassDef, - 256, faze ) ) != TT_Err_Ok ) - goto Fail1; - - /* copy the class definition pointer into the extension structure */ - - error = TT_Extension_Get( faze, GDEF_ID, (void**)&gdef_reg ); - if ( error ) - return error; - - *gdef_reg = *gdef; - - break; - } - } - } - - gpos->loaded = TRUE; - *retptr = *gpos; - DONE_Stream( stream ); - - return TT_Err_Ok; - - Fail1: - Free_LookupList( &gpos->LookupList, GPOS ); - - Fail2: - Free_FeatureList( &gpos->FeatureList ); - - Fail3: - Free_ScriptList( &gpos->ScriptList ); - - /* release stream */ - - DONE_Stream( stream ); - - return error; - } - - - - /***************************** - * SubTable related functions - *****************************/ - - /* shared tables */ - - /* ValueRecord */ - - /* There is a subtle difference in the specs between a `table' and a - `record' -- offsets for device tables in ValueRecords are taken from - the parent table and not the parent record. */ - - static TT_Error Load_ValueRecord( TTO_ValueRecord* vr, - UShort format, - ULong base_offset, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - ULong cur_offset, new_offset; - - - if ( format & HAVE_X_PLACEMENT ) - { - if ( ACCESS_Frame( 2L ) ) - return error; - - vr->XPlacement = GET_Short(); - - FORGET_Frame(); - } - else - vr->XPlacement = 0; - - if ( format & HAVE_Y_PLACEMENT ) - { - if ( ACCESS_Frame( 2L ) ) - return error; - - vr->YPlacement = GET_Short(); - - FORGET_Frame(); - } - else - vr->YPlacement = 0; - - if ( format & HAVE_X_ADVANCE ) - { - if ( ACCESS_Frame( 2L ) ) - return error; - - vr->XAdvance = GET_Short(); - - FORGET_Frame(); - } - else - vr->XAdvance = 0; - - if ( format & HAVE_Y_ADVANCE ) - { - if ( ACCESS_Frame( 2L ) ) - return error; - - vr->YAdvance = GET_Short(); - - FORGET_Frame(); - } - else - vr->YAdvance = 0; - - if ( format & HAVE_X_PLACEMENT_DEVICE ) - { - if ( ACCESS_Frame( 2L ) ) - return error; - - new_offset = GET_UShort(); - - FORGET_Frame(); - - if ( new_offset ) - { - new_offset += base_offset; - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Device( &vr->XPlacementDevice, - input ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - } - else - goto empty1; - } - else - { - empty1: - vr->XPlacementDevice.StartSize = 0; - vr->XPlacementDevice.EndSize = 0; - vr->XPlacementDevice.DeltaValue = NULL; - } - - if ( format & HAVE_Y_PLACEMENT_DEVICE ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail3; - - new_offset = GET_UShort(); - - FORGET_Frame(); - - if ( new_offset ) - { - new_offset += base_offset; - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Device( &vr->YPlacementDevice, - input ) ) != TT_Err_Ok ) - goto Fail3; - (void)FILE_Seek( cur_offset ); - } - else - goto empty2; - } - else - { - empty2: - vr->YPlacementDevice.StartSize = 0; - vr->YPlacementDevice.EndSize = 0; - vr->YPlacementDevice.DeltaValue = NULL; - } - - if ( format & HAVE_X_ADVANCE_DEVICE ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - new_offset = GET_UShort(); - - FORGET_Frame(); - - if ( new_offset ) - { - new_offset += base_offset; - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Device( &vr->XAdvanceDevice, - input ) ) != TT_Err_Ok ) - goto Fail2; - (void)FILE_Seek( cur_offset ); - } - else - goto empty3; - } - else - { - empty3: - vr->XAdvanceDevice.StartSize = 0; - vr->XAdvanceDevice.EndSize = 0; - vr->XAdvanceDevice.DeltaValue = NULL; - } - - if ( format & HAVE_Y_ADVANCE_DEVICE ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail1; - - new_offset = GET_UShort(); - - FORGET_Frame(); - - if ( new_offset ) - { - new_offset += base_offset; - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Device( &vr->YAdvanceDevice, - input ) ) != TT_Err_Ok ) - goto Fail1; - (void)FILE_Seek( cur_offset ); - } - else - goto empty4; - } - else - { - empty4: - vr->YAdvanceDevice.StartSize = 0; - vr->YAdvanceDevice.EndSize = 0; - vr->YAdvanceDevice.DeltaValue = NULL; - } - - if ( format & HAVE_X_ID_PLACEMENT ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail1; - - vr->XIdPlacement = GET_UShort(); - - FORGET_Frame(); - } - else - vr->XIdPlacement = 0; - - if ( format & HAVE_Y_ID_PLACEMENT ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail1; - - vr->YIdPlacement = GET_UShort(); - - FORGET_Frame(); - } - else - vr->YIdPlacement = 0; - - if ( format & HAVE_X_ID_ADVANCE ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail1; - - vr->XIdAdvance = GET_UShort(); - - FORGET_Frame(); - } - else - vr->XIdAdvance = 0; - - if ( format & HAVE_Y_ID_ADVANCE ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail1; - - vr->YIdAdvance = GET_UShort(); - - FORGET_Frame(); - } - else - vr->YIdAdvance = 0; - - return TT_Err_Ok; - - Fail1: - Free_Device( &vr->YAdvanceDevice ); - - Fail2: - Free_Device( &vr->XAdvanceDevice ); - - Fail3: - Free_Device( &vr->YPlacementDevice ); - return error; - } - - - static void Free_ValueRecord( TTO_ValueRecord* vr, - UShort format ) - { - if ( format & HAVE_Y_ADVANCE_DEVICE ) - Free_Device( &vr->YAdvanceDevice ); - if ( format & HAVE_X_ADVANCE_DEVICE ) - Free_Device( &vr->XAdvanceDevice ); - if ( format & HAVE_Y_PLACEMENT_DEVICE ) - Free_Device( &vr->YPlacementDevice ); - if ( format & HAVE_X_PLACEMENT_DEVICE ) - Free_Device( &vr->XPlacementDevice ); - } - - - static TT_Error Get_ValueRecord( GPOS_Instance* gpi, - TTO_ValueRecord* vr, - UShort format, - TTO_GPOS_Data* gd ) - { - TT_Pos value; - Short pixel_value; - TT_Error error = TT_Err_Ok; - TTO_GPOSHeader* gpos = gpi->gpos; - PInstance ins; - - UShort x_ppem, y_ppem; - Fixed x_scale, y_scale; - - - if ( !format ) - return TT_Err_Ok; - - ins = HANDLE_Instance( gpi->instance ); - - x_ppem = ins->metrics.x_ppem; - y_ppem = ins->metrics.y_ppem; - x_scale = TT_MulDiv( 0x10000, - ins->metrics.x_scale1, - ins->metrics.x_scale2 ); - y_scale = TT_MulDiv( 0x10000, - ins->metrics.y_scale1, - ins->metrics.y_scale2 ); - - /* design units -> fractional pixel */ - - if ( format & HAVE_X_PLACEMENT ) - gd->x_pos += x_scale * vr->XPlacement / 0x10000; - if ( format & HAVE_Y_PLACEMENT ) - gd->y_pos += y_scale * vr->YPlacement / 0x10000; - if ( format & HAVE_X_ADVANCE ) - gd->x_advance += x_scale * vr->XAdvance / 0x10000; - if ( format & HAVE_Y_ADVANCE ) - gd->y_advance += y_scale * vr->YAdvance / 0x10000; - - /* we use the device tables only if gpi->glyph.z is not NULL */ - - if ( gpi->glyph.z ) - { - /* pixel -> fractional pixel */ - - if ( format & HAVE_X_PLACEMENT_DEVICE ) - { - Get_Device( &vr->XPlacementDevice, x_ppem, &pixel_value ); - gd->x_pos += pixel_value << 6; - } - if ( format & HAVE_Y_PLACEMENT_DEVICE ) - { - Get_Device( &vr->YPlacementDevice, y_ppem, &pixel_value ); - gd->y_pos += pixel_value << 6; - } - if ( format & HAVE_X_ADVANCE_DEVICE ) - { - Get_Device( &vr->XAdvanceDevice, x_ppem, &pixel_value ); - gd->x_advance += pixel_value << 6; - } - if ( format & HAVE_Y_ADVANCE_DEVICE ) - { - Get_Device( &vr->YAdvanceDevice, y_ppem, &pixel_value ); - gd->y_advance += pixel_value << 6; - } - } - - /* values returned from mmfunc() are already in fractional pixels */ - - if ( format & HAVE_X_ID_PLACEMENT ) - { - error = (gpos->mmfunc)( gpi->instance, vr->XIdPlacement, - &value, gpos->data ); - if ( error ) - return error; - gd->x_pos += value; - } - if ( format & HAVE_Y_ID_PLACEMENT ) - { - error = (gpos->mmfunc)( gpi->instance, vr->YIdPlacement, - &value, gpos->data ); - if ( error ) - return error; - gd->y_pos += value; - } - if ( format & HAVE_X_ID_ADVANCE ) - { - error = (gpos->mmfunc)( gpi->instance, vr->XIdAdvance, - &value, gpos->data ); - if ( error ) - return error; - gd->x_advance += value; - } - if ( format & HAVE_Y_ID_ADVANCE ) - { - error = (gpos->mmfunc)( gpi->instance, vr->YIdAdvance, - &value, gpos->data ); - if ( error ) - return error; - gd->y_advance += value; - } - - return error; - } - - - /* AnchorFormat1 */ - /* AnchorFormat2 */ - /* AnchorFormat3 */ - /* AnchorFormat4 */ - - static TT_Error Load_Anchor( TTO_Anchor* an, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - ULong cur_offset, new_offset, base_offset; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 2L ) ) - return error; - - an->PosFormat = GET_UShort(); - - FORGET_Frame(); - - switch ( an->PosFormat ) - { - case 1: - if ( ACCESS_Frame( 4L ) ) - return error; - - an->af.af1.XCoordinate = GET_Short(); - an->af.af1.YCoordinate = GET_Short(); - - FORGET_Frame(); - break; - - case 2: - if ( ACCESS_Frame( 6L ) ) - return error; - - an->af.af2.XCoordinate = GET_Short(); - an->af.af2.YCoordinate = GET_Short(); - an->af.af2.AnchorPoint = GET_UShort(); - - FORGET_Frame(); - break; - - case 3: - if ( ACCESS_Frame( 6L ) ) - return error; - - an->af.af3.XCoordinate = GET_Short(); - an->af.af3.YCoordinate = GET_Short(); - - new_offset = GET_UShort(); - - FORGET_Frame(); - - if ( new_offset ) - { - new_offset += base_offset; - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Device( &an->af.af3.XDeviceTable, - input ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - } - else - { - an->af.af3.XDeviceTable.StartSize = 0; - an->af.af3.XDeviceTable.EndSize = 0; - an->af.af3.XDeviceTable.DeltaValue = 0; - } - - if ( ACCESS_Frame( 2L ) ) - goto Fail; - - new_offset = GET_UShort(); - - FORGET_Frame(); - - if ( new_offset ) - { - new_offset += base_offset; - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Device( &an->af.af3.YDeviceTable, - input ) ) != TT_Err_Ok ) - goto Fail; - (void)FILE_Seek( cur_offset ); - } - else - { - an->af.af3.YDeviceTable.StartSize = 0; - an->af.af3.YDeviceTable.EndSize = 0; - an->af.af3.YDeviceTable.DeltaValue = 0; - } - break; - - case 4: - if ( ACCESS_Frame( 4L ) ) - return error; - - an->af.af4.XIdAnchor = GET_UShort(); - an->af.af4.YIdAnchor = GET_UShort(); - - FORGET_Frame(); - break; - - default: - return TTO_Err_Invalid_GPOS_SubTable_Format; - } - - return TT_Err_Ok; - - Fail: - Free_Device( &an->af.af3.XDeviceTable ); - return error; - } - - - static void Free_Anchor( TTO_Anchor* an ) - { - if ( an->PosFormat == 3 ) - { - Free_Device( &an->af.af3.YDeviceTable ); - Free_Device( &an->af.af3.XDeviceTable ); - } - } - - - static TT_Error Get_Anchor( GPOS_Instance* gpi, - TTO_Anchor* an, - TT_UShort glyph_index, - TT_Pos* x_value, - TT_Pos* y_value ) - { - TT_Error error = TT_Err_Ok; - - PInstance ins; - PGlyph glyph; - TTO_GPOSHeader* gpos = gpi->gpos; - UShort ap; - - Short pixel_value; - UShort load_flags; - - UShort x_ppem, y_ppem; - Fixed x_scale, y_scale; - - - ins = HANDLE_Instance( gpi->instance ); - - x_ppem = ins->metrics.x_ppem; - y_ppem = ins->metrics.y_ppem; - x_scale = TT_MulDiv( 0x10000, - ins->metrics.x_scale1, - ins->metrics.x_scale2 ); - y_scale = TT_MulDiv( 0x10000, - ins->metrics.y_scale1, - ins->metrics.y_scale2 ); - - switch ( an->PosFormat ) - { - case 0: - /* The special case of an empty AnchorTable */ - - return TTO_Err_Not_Covered; - - case 1: - *x_value = x_scale * an->af.af1.XCoordinate / 0x10000; - *y_value = y_scale * an->af.af1.YCoordinate / 0x10000; - break; - - case 2: - /* glyphs must be scaled */ - - load_flags = gpi->load_flags | TTLOAD_SCALE_GLYPH; - - /* we use the glyph contour point only if gpi->glyph.z is not NULL */ - - if ( gpi->glyph.z ) - { - error = (gpos->gfunc)( gpi->instance, gpi->glyph, - glyph_index, load_flags ); - if ( error ) - return error; - - glyph = HANDLE_Glyph( gpi->glyph ); - ap = an->af.af2.AnchorPoint; - - /* if outline.n_points is set to zero by gfunc(), we use the - design coordinate value pair. This can happen e.g. for - sbit glyphs */ - - if ( !glyph->outline.n_points ) - goto no_contour_point; - - if ( ap >= glyph->outline.n_points ) - return TTO_Err_Invalid_GPOS_SubTable; - - *x_value = glyph->outline.points[ap].x; - *y_value = glyph->outline.points[ap].y; - } - else - { - no_contour_point: - *x_value = x_scale * an->af.af3.XCoordinate / 0x10000; - *y_value = y_scale * an->af.af3.YCoordinate / 0x10000; - } - break; - - case 3: - /* we use the device tables only if gpi->glyph.z is not NULL */ - - if ( gpi->glyph.z ) - { - Get_Device( &an->af.af3.XDeviceTable, x_ppem, &pixel_value ); - *x_value = pixel_value << 6; - Get_Device( &an->af.af3.YDeviceTable, y_ppem, &pixel_value ); - *y_value = pixel_value << 6; - } - else - *x_value = *y_value = 0; - - *x_value += x_scale * an->af.af3.XCoordinate / 0x10000; - *y_value += y_scale * an->af.af3.YCoordinate / 0x10000; - break; - - case 4: - error = (gpos->mmfunc)( gpi->instance, an->af.af4.XIdAnchor, - x_value, gpos->data ); - if ( error ) - return error; - - error = (gpos->mmfunc)( gpi->instance, an->af.af4.YIdAnchor, - y_value, gpos->data ); - if ( error ) - return error; - break; - } - - return error; - } - - - /* MarkArray */ - - static TT_Error Load_MarkArray ( TTO_MarkArray* ma, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_MarkRecord* mr; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = ma->MarkCount = GET_UShort(); - - FORGET_Frame(); - - ma->MarkRecord = NULL; - - if ( ALLOC_ARRAY( ma->MarkRecord, count, TTO_MarkRecord ) ) - return error; - - mr = ma->MarkRecord; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 4L ) ) - goto Fail; - - mr[n].Class = GET_UShort(); - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Anchor( &mr[n].MarkAnchor, input ) ) != TT_Err_Ok ) - goto Fail; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail: - for ( n = 0; n < count; n++ ) - Free_Anchor( &mr[n].MarkAnchor ); - - FREE( mr ); - return error; - } - - - static void Free_MarkArray( TTO_MarkArray* ma ) - { - UShort n, count; - - TTO_MarkRecord* mr; - - - if ( ma->MarkRecord ) - { - count = ma->MarkCount; - mr = ma->MarkRecord; - - for ( n = 0; n < count; n++ ) - Free_Anchor( &mr[n].MarkAnchor ); - - FREE( mr ); - } - } - - - /* LookupType 1 */ - - /* SinglePosFormat1 */ - /* SinglePosFormat2 */ - - TT_Error Load_SinglePos( TTO_SinglePos* sp, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count, format; - ULong cur_offset, new_offset, base_offset; - - TTO_ValueRecord* vr; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 6L ) ) - return error; - - sp->PosFormat = GET_UShort(); - new_offset = GET_UShort() + base_offset; - - format = sp->ValueFormat = GET_UShort(); - - FORGET_Frame(); - - if ( !format ) - return TTO_Err_Invalid_GPOS_SubTable; - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &sp->Coverage, input ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - - switch ( sp->PosFormat ) - { - case 1: - error = Load_ValueRecord( &sp->spf.spf1.Value, format, - base_offset, input ); - if ( error ) - goto Fail2; - break; - - case 2: - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - count = sp->spf.spf2.ValueCount = GET_UShort(); - - FORGET_Frame(); - - sp->spf.spf2.Value = NULL; - - if ( ALLOC_ARRAY( sp->spf.spf2.Value, count, TTO_ValueRecord ) ) - goto Fail2; - - vr = sp->spf.spf2.Value; - - for ( n = 0; n < count; n++ ) - { - error = Load_ValueRecord( &vr[n], format, base_offset, input ); - if ( error ) - goto Fail1; - } - break; - - default: - return TTO_Err_Invalid_GPOS_SubTable_Format; - } - - return TT_Err_Ok; - - Fail1: - for ( n = 0; n < count; n++ ) - Free_ValueRecord( &vr[n], format ); - - FREE( vr ); - - Fail2: - Free_Coverage( &sp->Coverage ); - return error; - } - - - void Free_SinglePos( TTO_SinglePos* sp ) - { - UShort n, count, format; - - TTO_ValueRecord* v; - - - format = sp->ValueFormat; - - switch ( sp->PosFormat ) - { - case 1: - Free_ValueRecord( &sp->spf.spf1.Value, format ); - break; - - case 2: - if ( sp->spf.spf2.Value ) - { - count = sp->spf.spf2.ValueCount; - v = sp->spf.spf2.Value; - - for ( n = 0; n < count; n++ ) - Free_ValueRecord( &v[n], format ); - - FREE( v ); - } - break; - } - - Free_Coverage( &sp->Coverage ); - } - - - static TT_Error Lookup_SinglePos( GPOS_Instance* gpi, - TTO_SinglePos* sp, - TTO_GSUB_String* in, - TTO_GPOS_Data* out, - UShort flags, - UShort context_length ) - { - UShort index, property; - TT_Error error; - TTO_GPOSHeader* gpos = gpi->gpos; - - - if ( context_length != 0xFFFF && context_length < 1 ) - return TTO_Err_Not_Covered; - - if ( CHECK_Property( gpos->gdef, in->string[in->pos], flags, &property ) ) - return error; - - error = Coverage_Index( &sp->Coverage, in->string[in->pos], &index ); - if ( error ) - return error; - - switch ( sp->PosFormat ) - { - case 1: - error = Get_ValueRecord( gpi, &sp->spf.spf1.Value, - sp->ValueFormat, &out[in->pos] ); - if ( error ) - return error; - break; - - case 2: - if ( index >= sp->spf.spf2.ValueCount ) - return TTO_Err_Invalid_GPOS_SubTable; - error = Get_ValueRecord( gpi, &sp->spf.spf2.Value[index], - sp->ValueFormat, &out[in->pos] ); - if ( error ) - return error; - break; - - default: - return TTO_Err_Invalid_GPOS_SubTable; - } - - (in->pos)++; - - return TT_Err_Ok; - } - - - /* LookupType 2 */ - - /* PairSet */ - - static TT_Error Load_PairSet ( TTO_PairSet* ps, - UShort format1, - UShort format2, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong base_offset; - - TTO_PairValueRecord* pvr; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = ps->PairValueCount = GET_UShort(); - - FORGET_Frame(); - - ps->PairValueRecord = NULL; - - if ( ALLOC_ARRAY( ps->PairValueRecord, count, TTO_PairValueRecord ) ) - return error; - - pvr = ps->PairValueRecord; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail; - - pvr[n].SecondGlyph = GET_UShort(); - - FORGET_Frame(); - - if ( format1 ) - { - error = Load_ValueRecord( &pvr[n].Value1, format1, - base_offset, input ); - if ( error ) - goto Fail; - } - if ( format2 ) - { - error = Load_ValueRecord( &pvr[n].Value2, format2, - base_offset, input ); - if ( error ) - goto Fail; - } - } - - return TT_Err_Ok; - - Fail: - for ( n = 0; n < count; n++ ) - { - if ( format1 ) - Free_ValueRecord( &pvr[n].Value1, format1 ); - if ( format2 ) - Free_ValueRecord( &pvr[n].Value2, format2 ); - } - - FREE( pvr ); - return error; - } - - - static void Free_PairSet( TTO_PairSet* ps, - UShort format1, - UShort format2 ) - { - UShort n, count; - - TTO_PairValueRecord* pvr; - - - if ( ps->PairValueRecord ) - { - count = ps->PairValueCount; - pvr = ps->PairValueRecord; - - for ( n = 0; n < count; n++ ) - { - if ( format1 ) - Free_ValueRecord( &pvr[n].Value1, format1 ); - if ( format2 ) - Free_ValueRecord( &pvr[n].Value2, format2 ); - } - - FREE( pvr ); - } - } - - - /* PairPosFormat1 */ - - static TT_Error Load_PairPos1( TTO_PairPosFormat1* ppf1, - UShort format1, - UShort format2, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_PairSet* ps; - - - base_offset = FILE_Pos() - 8L; - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = ppf1->PairSetCount = GET_UShort(); - - FORGET_Frame(); - - ppf1->PairSet = NULL; - - if ( ALLOC_ARRAY( ppf1->PairSet, count, TTO_PairSet ) ) - goto Fail; - - ps = ppf1->PairSet; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_PairSet( &ps[n], format1, - format2, input ) ) != TT_Err_Ok ) - goto Fail; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail: - for ( n = 0; n < count; n++ ) - Free_PairSet( &ps[n], format1, format2 ); - - FREE( ps ); - return error; - } - - - static void Free_PairPos1( TTO_PairPosFormat1* ppf1, - UShort format1, - UShort format2 ) - { - UShort n, count; - - TTO_PairSet* ps; - - - if ( ppf1->PairSet ) - { - count = ppf1->PairSetCount; - ps = ppf1->PairSet; - - for ( n = 0; n < count; n++ ) - Free_PairSet( &ps[n], format1, format2 ); - - FREE( ps ); - } - } - - - /* PairPosFormat2 */ - - static TT_Error Load_PairPos2( TTO_PairPosFormat2* ppf2, - UShort format1, - UShort format2, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort m, n, count1, count2; - ULong cur_offset, new_offset1, new_offset2, base_offset; - - TTO_Class1Record* c1r; - TTO_Class2Record* c2r; - - - base_offset = FILE_Pos() - 8L; - - if ( ACCESS_Frame( 8L ) ) - return error; - - new_offset1 = GET_UShort() + base_offset; - new_offset2 = GET_UShort() + base_offset; - - /* `Class1Count' and `Class2Count' are the upper limits for class - values, thus we read it now to make additional safety checks. */ - - count1 = ppf2->Class1Count = GET_UShort(); - count2 = ppf2->Class2Count = GET_UShort(); - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset1 ) || - ( error = Load_ClassDefinition( &ppf2->ClassDef1, count1, - input ) ) != TT_Err_Ok ) - return error; - if ( FILE_Seek( new_offset2 ) || - ( error = Load_ClassDefinition( &ppf2->ClassDef2, count2, - input ) ) != TT_Err_Ok ) - goto Fail2; - (void)FILE_Seek( cur_offset ); - - ppf2->Class1Record = NULL; - - if ( ALLOC_ARRAY( ppf2->Class1Record, count1, TTO_Class1Record ) ) - goto Fail1; - - c1r = ppf2->Class1Record; - - for ( m = 0; m < count1; m++ ) - { - c1r[m].Class2Record = NULL; - - if ( ALLOC_ARRAY( c1r[m].Class2Record, count2, TTO_Class2Record ) ) - goto Fail1; - - c2r = c1r[m].Class2Record; - - for ( n = 0; n < count2; n++ ) - { - if ( format1 ) - { - error = Load_ValueRecord( &c2r[n].Value1, format1, - base_offset, input ); - if ( error ) - goto Fail1; - } - if ( format2 ) - { - error = Load_ValueRecord( &c2r[n].Value2, format2, - base_offset, input ); - if ( error ) - goto Fail1; - } - } - } - - return TT_Err_Ok; - - Fail1: - for ( m = 0; m < count1; m++ ) - { - c2r = c1r[m].Class2Record; - - for ( n = 0; n < count2; n++ ) - { - if ( format1 ) - Free_ValueRecord( &c2r[n].Value1, format1 ); - if ( format2 ) - Free_ValueRecord( &c2r[n].Value2, format2 ); - } - - FREE( c2r ); - } - - FREE( c1r ); - - Free_ClassDefinition( &ppf2->ClassDef2 ); - - Fail2: - Free_ClassDefinition( &ppf2->ClassDef1 ); - return error; - } - - - static void Free_PairPos2( TTO_PairPosFormat2* ppf2, - UShort format1, - UShort format2 ) - { - UShort m, n, count1, count2; - - TTO_Class1Record* c1r; - TTO_Class2Record* c2r; - - - if ( ppf2->Class1Record ) - { - c1r = ppf2->Class1Record; - count1 = ppf2->Class1Count; - count2 = ppf2->Class2Count; - - for ( m = 0; m < count1; m++ ) - { - c2r = c1r[m].Class2Record; - - for ( n = 0; n < count2; n++ ) - { - if ( format1 ) - Free_ValueRecord( &c2r[n].Value1, format1 ); - if ( format2 ) - Free_ValueRecord( &c2r[n].Value2, format2 ); - } - - FREE( c2r ); - } - - FREE( c1r ); - - Free_ClassDefinition( &ppf2->ClassDef2 ); - Free_ClassDefinition( &ppf2->ClassDef1 ); - } - } - - - TT_Error Load_PairPos( TTO_PairPos* pp, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort format1, format2; - ULong cur_offset, new_offset, base_offset; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 8L ) ) - return error; - - pp->PosFormat = GET_UShort(); - new_offset = GET_UShort() + base_offset; - - format1 = pp->ValueFormat1 = GET_UShort(); - format2 = pp->ValueFormat2 = GET_UShort(); - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &pp->Coverage, input ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - - switch ( pp->PosFormat ) - { - case 1: - error = Load_PairPos1( &pp->ppf.ppf1, format1, format2, input ); - if ( error ) - goto Fail; - break; - - case 2: - error = Load_PairPos2( &pp->ppf.ppf2, format1, format2, input ); - if ( error ) - goto Fail; - break; - - default: - return TTO_Err_Invalid_GPOS_SubTable_Format; - } - - return TT_Err_Ok; - - Fail: - Free_Coverage( &pp->Coverage ); - return error; - } - - - void Free_PairPos( TTO_PairPos* pp ) - { - UShort format1, format2; - - - format1 = pp->ValueFormat1; - format2 = pp->ValueFormat2; - - switch ( pp->PosFormat ) - { - case 1: - Free_PairPos1( &pp->ppf.ppf1, format1, format2 ); - break; - - case 2: - Free_PairPos2( &pp->ppf.ppf2, format1, format2 ); - break; - } - - Free_Coverage( &pp->Coverage ); - } - - - static TT_Error Lookup_PairPos1( GPOS_Instance* gpi, - TTO_PairPosFormat1* ppf1, - TTO_GSUB_String* in, - TTO_GPOS_Data* out, - UShort first_pos, - UShort index, - UShort format1, - UShort format2 ) - { - TT_Error error; - UShort numpvr, glyph2; - - TTO_PairValueRecord* pvr; - - - if ( index >= ppf1->PairSetCount ) - return TTO_Err_Invalid_GPOS_SubTable; - - pvr = ppf1->PairSet[index].PairValueRecord; - if ( !pvr ) - return TTO_Err_Invalid_GPOS_SubTable; - - glyph2 = in->string[in->pos]; - - for ( numpvr = ppf1->PairSet[index].PairValueCount; - numpvr; - numpvr--, pvr++ ) - { - if ( glyph2 == pvr->SecondGlyph ) - { - error = Get_ValueRecord( gpi, &pvr->Value1, format1, - &out[first_pos] ); - if ( error ) - return error; - return Get_ValueRecord( gpi, &pvr->Value2, format2, - &out[in->pos] ); - } - } - - return TTO_Err_Not_Covered; - } - - - static TT_Error Lookup_PairPos2( GPOS_Instance* gpi, - TTO_PairPosFormat2* ppf2, - TTO_GSUB_String* in, - TTO_GPOS_Data* out, - UShort first_pos, - UShort format1, - UShort format2 ) - { - TT_Error error; - UShort cl1, cl2; - - TTO_Class1Record* c1r; - TTO_Class2Record* c2r; - - - error = Get_Class( &ppf2->ClassDef1, in->string[first_pos], - &cl1, NULL ); - if ( error ) - return error; - error = Get_Class( &ppf2->ClassDef2, in->string[in->pos], - &cl2, NULL ); - if ( error ) - return error; - - c1r = &ppf2->Class1Record[cl1]; - if ( !c1r ) - return TTO_Err_Invalid_GPOS_SubTable; - c2r = &c1r->Class2Record[cl2]; - - error = Get_ValueRecord( gpi, &c2r->Value1, format1, &out[first_pos] ); - if ( error ) - return error; - return Get_ValueRecord( gpi, &c2r->Value2, format2, &out[in->pos] ); - } - - - static TT_Error Lookup_PairPos( GPOS_Instance* gpi, - TTO_PairPos* pp, - TTO_GSUB_String* in, - TTO_GPOS_Data* out, - UShort flags, - UShort context_length ) - { - TT_Error error; - UShort index, property, first_pos; - TTO_GPOSHeader* gpos = gpi->gpos; - - - if ( in->pos >= in->length - 1 ) - return TTO_Err_Not_Covered; /* Not enough glyphs in input */ - - if ( context_length != 0xFFFF && context_length < 2 ) - return TTO_Err_Not_Covered; - - if ( CHECK_Property( gpos->gdef, in->string[in->pos], flags, &property ) ) - return error; - - error = Coverage_Index( &pp->Coverage, in->string[in->pos], &index ); - if ( error ) - return error; - - /* second glyph */ - - first_pos = in->pos; - (in->pos)++; - - while ( CHECK_Property( gpos->gdef, in->string[in->pos], - flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - return error; - - if ( in->pos < in->length ) - (in->pos)++; - else - break; - } - - switch ( pp->PosFormat ) - { - case 1: - error = Lookup_PairPos1( gpi, &pp->ppf.ppf1, in, out, - first_pos, index, - pp->ValueFormat1, pp->ValueFormat2 ); - break; - - case 2: - error = Lookup_PairPos2( gpi, &pp->ppf.ppf2, in, out, first_pos, - pp->ValueFormat1, pp->ValueFormat2 ); - break; - - default: - return TTO_Err_Invalid_GPOS_SubTable_Format; - } - - /* adjusting the `next' glyph */ - - if ( pp->ValueFormat2 ) - (in->pos)++; - - return error; - } - - - /* LookupType 3 */ - - /* CursivePosFormat1 */ - - TT_Error Load_CursivePos( TTO_CursivePos* cp, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_EntryExitRecord* eer; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 4L ) ) - return error; - - cp->PosFormat = GET_UShort(); - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &cp->Coverage, input ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - count = cp->EntryExitCount = GET_UShort(); - - FORGET_Frame(); - - cp->EntryExitRecord = NULL; - - if ( ALLOC_ARRAY( cp->EntryExitRecord, count, TTO_EntryExitRecord ) ) - goto Fail2; - - eer = cp->EntryExitRecord; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - return error; - - new_offset = GET_UShort(); - - FORGET_Frame(); - - if ( new_offset ) - { - new_offset += base_offset; - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Anchor( &eer[n].EntryAnchor, - input ) ) != TT_Err_Ok ) - goto Fail1; - (void)FILE_Seek( cur_offset ); - } - else - eer[n].EntryAnchor.PosFormat = 0; - - if ( ACCESS_Frame( 2L ) ) - return error; - - new_offset = GET_UShort(); - - FORGET_Frame(); - - if ( new_offset ) - { - new_offset += base_offset; - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Anchor( &eer[n].ExitAnchor, - input ) ) != TT_Err_Ok ) - goto Fail1; - (void)FILE_Seek( cur_offset ); - } - else - eer[n].ExitAnchor.PosFormat = 0; - } - - return TT_Err_Ok; - - Fail1: - for ( n = 0; n < count; n++ ) - { - Free_Anchor( &eer[n].EntryAnchor ); - Free_Anchor( &eer[n].ExitAnchor ); - } - - FREE( eer ); - - Fail2: - Free_Coverage( &cp->Coverage ); - return error; - } - - - void Free_CursivePos( TTO_CursivePos* cp ) - { - UShort n, count; - - TTO_EntryExitRecord* eer; - - - if ( cp->EntryExitRecord ) - { - count = cp->EntryExitCount; - eer = cp->EntryExitRecord; - - for ( n = 0; n < count; n++ ) - { - Free_Anchor( &eer[n].EntryAnchor ); - Free_Anchor( &eer[n].ExitAnchor ); - } - - FREE( eer ); - } - - Free_Coverage( &cp->Coverage ); - } - - - static TT_Error Lookup_CursivePos( GPOS_Instance* gpi, - TTO_CursivePos* cp, - TTO_GSUB_String* in, - TTO_GPOS_Data* out, - UShort flags, - UShort context_length ) - { - UShort index, property; - TT_Error error; - TTO_GPOSHeader* gpos = gpi->gpos; - - TTO_EntryExitRecord* eer; - TT_Pos entry_x, entry_y; - TT_Pos exit_x, exit_y; - - - if ( context_length != 0xFFFF && context_length < 1 ) - { - gpi->last = 0xFFFF; - return TTO_Err_Not_Covered; - } - - /* Glyphs not having the right GDEF properties will be ignored, i.e., - gpi->last won't be reset (contrary to user defined properties). */ - - if ( CHECK_Property( gpos->gdef, in->string[in->pos], flags, &property ) ) - return error; - - /* We don't handle mark glyphs here. According to Andrei, this isn't - possible, but who knows... */ - - if ( property == MARK_GLYPH ) - { - gpi->last = 0xFFFF; - return TTO_Err_Not_Covered; - } - - error = Coverage_Index( &cp->Coverage, in->string[in->pos], &index ); - if ( error ) - { - gpi->last = 0xFFFF; - return error; - } - - if ( index >= cp->EntryExitCount ) - return TTO_Err_Invalid_GPOS_SubTable; - - eer = &cp->EntryExitRecord[index]; - - /* Now comes the messiest part of the whole OpenType - specification. At first glance, cursive connections seem easy - to understand, but there are pitfalls! The reason is that - the specs don't mention how to compute the advance values - resp. glyph offsets. I was told it would be an omission, to - be fixed in the next OpenType version... Again many thanks to - Andrei Burago <andreib@microsoft.com> for clarifications. - - Consider the following example: - - | xadv1 | - +---------+ - | | - +-----+--+ 1 | - | | .| | - | 0+--+------+ - | 2 | - | | - 0+--------+ - | xadv2 | - - glyph1: advance width = 12 - anchor point = (3,1) - - glyph2: advance width = 11 - anchor point = (9,4) - - LSB is 1 for both glyphs (so the boxes drawn above are glyph - bboxes). Writing direction is R2L; `0' denotes the glyph's - coordinate origin. - - Now the surprising part: The advance width of the *left* glyph - (resp. of the *bottom* glyph) will be modified, no matter - whether the writing direction is L2R or R2L (resp. T2B or - B2T)! This assymetry is caused by the fact that the glyph's - coordinate origin is always the lower left corner for all - writing directions. - - Continuing the above example, we can compute the new - (horizontal) advance width of glyph2 as - - 9 - 3 = 6 , - - and the new vertical offset of glyph2 as - - 1 - 4 = -3 . - - - Vertical writing direction is far more complicated: - - a) Assuming that we recompute the advance height of the lower glyph: - - -- - +---------+ - -- | | - +-----+--+ 1 | yadv1 - | | .| | - yadv2 | 0+--+------+ -- BSB1 -- - | 2 | -- -- y_offset - | | - BSB2 -- 0+--------+ -- - -- -- - - glyph1: advance height = 6 - anchor point = (3,1) - - glyph2: advance height = 7 - anchor point = (9,4) - - TSB is 1 for both glyphs; writing direction is T2B. - - - BSB1 = yadv1 - (TSB1 + ymax1) - BSB2 = yadv2 - (TSB2 + ymax2) - y_offset = y2 - y1 - - vertical advance width of glyph2 - = y_offset + BSB2 - BSB1 - = (y2 - y1) + (yadv2 - (TSB2 + ymax2)) - (yadv1 - (TSB1 + ymax1)) - = y2 - y1 + yadv2 - TSB2 - ymax2 - (yadv1 - TSB1 - ymax1) - = y2 - y1 + yadv2 - TSB2 - ymax2 - yadv1 + TSB1 + ymax1 - - - b) Assuming that we recompute the advance height of the upper glyph: - - -- -- - +---------+ -- TSB1 - -- -- | | - TSB2 -- +-----+--+ 1 | yadv1 ymax1 - | | .| | - yadv2 | 0+--+------+ -- -- - ymax2 | 2 | -- y_offset - | | - -- 0+--------+ -- - -- - - glyph1: advance height = 6 - anchor point = (3,1) - - glyph2: advance height = 7 - anchor point = (9,4) - - TSB is 1 for both glyphs; writing direction is T2B. - - y_offset = y2 - y1 - - vertical advance width of glyph2 - = TSB1 + ymax1 + y_offset - (TSB2 + ymax2) - = TSB1 + ymax1 + y2 - y1 - TSB2 - ymax2 - - - Comparing a) with b) shows that b) is easier to compute. I'll wait - for a reply from Andrei to see what should really be implemented... - - Since horizontal advance widths or vertical advance heights - can be used alone but not together, no ambiguity occurs. */ - - if ( gpi->last == 0xFFFF ) - goto end; - - /* Get_Anchor() returns TTO_Err_Not_Covered if there is no anchor - table. */ - - error = Get_Anchor( gpi, &eer->EntryAnchor, in->string[in->pos], - &entry_x, &entry_y ); - if ( error == TTO_Err_Not_Covered ) - goto end; - if ( error ) - return error; - - if ( gpi->r2l ) - { - out[in->pos].x_advance = entry_x - gpi->anchor_x; - out[in->pos].new_advance = TRUE; - } - else - { - out[gpi->last].x_advance = gpi->anchor_x - entry_x; - out[gpi->last].new_advance = TRUE; - } - - out[in->pos].y_pos = gpi->anchor_y - entry_y + out[gpi->last].y_pos; - - end: - error = Get_Anchor( gpi, &eer->ExitAnchor, in->string[in->pos], - &exit_x, &exit_y ); - if ( error == TTO_Err_Not_Covered ) - gpi->last = 0xFFFF; - else - { - if ( gpi->first == 0xFFFF ) - gpi->first = in->pos; - gpi->last = in->pos; - gpi->anchor_x = exit_x; - gpi->anchor_y = exit_y; - } - if ( error ) - return error; - - (in->pos)++; - - return TT_Err_Ok; - } - - - /* LookupType 4 */ - - /* BaseArray */ - - static TT_Error Load_BaseArray( TTO_BaseArray* ba, - UShort num_classes, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort m, n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_BaseRecord* br; - TTO_Anchor* ban; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = ba->BaseCount = GET_UShort(); - - FORGET_Frame(); - - ba->BaseRecord = NULL; - - if ( ALLOC_ARRAY( ba->BaseRecord, count, TTO_BaseRecord ) ) - return error; - - br = ba->BaseRecord; - - for ( m = 0; m < count; m++ ) - { - br[m].BaseAnchor = NULL; - - if ( ALLOC_ARRAY( br[m].BaseAnchor, num_classes, TTO_Anchor ) ) - goto Fail; - - ban = br[m].BaseAnchor; - - for ( n = 0; n < num_classes; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Anchor( &ban[n], input ) ) != TT_Err_Ok ) - goto Fail; - (void)FILE_Seek( cur_offset ); - } - } - - return TT_Err_Ok; - - Fail: - for ( m = 0; m < count; m++ ) - { - ban = br[m].BaseAnchor; - - for ( n = 0; n < num_classes; n++ ) - Free_Anchor( &ban[n] ); - - FREE( ban ); - } - - FREE( br ); - return error; - } - - - static void Free_BaseArray( TTO_BaseArray* ba, - UShort num_classes ) - { - UShort m, n, count; - - TTO_BaseRecord* br; - TTO_Anchor* ban; - - - if ( ba->BaseRecord ) - { - count = ba->BaseCount; - br = ba->BaseRecord; - - for ( m = 0; m < count; m++ ) - { - ban = br[m].BaseAnchor; - - for ( n = 0; n < num_classes; n++ ) - Free_Anchor( &ban[n] ); - - FREE( ban ); - } - - FREE( br ); - } - } - - - /* MarkBasePosFormat1 */ - - TT_Error Load_MarkBasePos( TTO_MarkBasePos* mbp, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - ULong cur_offset, new_offset, base_offset; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 4L ) ) - return error; - - mbp->PosFormat = GET_UShort(); - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &mbp->MarkCoverage, input ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 2L ) ) - goto Fail3; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &mbp->BaseCoverage, input ) ) != TT_Err_Ok ) - goto Fail3; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 4L ) ) - goto Fail2; - - mbp->ClassCount = GET_UShort(); - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_MarkArray( &mbp->MarkArray, input ) ) != TT_Err_Ok ) - goto Fail2; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 2L ) ) - goto Fail1; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_BaseArray( &mbp->BaseArray, mbp->ClassCount, - input ) ) != TT_Err_Ok ) - goto Fail1; - - return TT_Err_Ok; - - Fail1: - Free_MarkArray( &mbp->MarkArray ); - - Fail2: - Free_Coverage( &mbp->BaseCoverage ); - - Fail3: - Free_Coverage( &mbp->MarkCoverage ); - return error; - } - - - void Free_MarkBasePos( TTO_MarkBasePos* mbp ) - { - Free_BaseArray( &mbp->BaseArray, mbp->ClassCount ); - Free_MarkArray( &mbp->MarkArray ); - Free_Coverage( &mbp->BaseCoverage ); - Free_Coverage( &mbp->MarkCoverage ); - } - - - static TT_Error Lookup_MarkBasePos( GPOS_Instance* gpi, - TTO_MarkBasePos* mbp, - TTO_GSUB_String* in, - TTO_GPOS_Data* out, - UShort flags, - UShort context_length ) - { - TT_UInt i, j; - UShort mark_index, base_index, property, class; - TT_Pos x_mark_value, y_mark_value, x_base_value, y_base_value; - TT_Error error; - TTO_GPOSHeader* gpos = gpi->gpos; - - TTO_MarkArray* ma; - TTO_BaseArray* ba; - TTO_BaseRecord* br; - TTO_Anchor* mark_anchor; - TTO_Anchor* base_anchor; - - TTO_GPOS_Data* o; - - - if ( context_length != 0xFFFF && context_length < 1 ) - return TTO_Err_Not_Covered; - - if ( flags & IGNORE_BASE_GLYPHS ) - return TTO_Err_Not_Covered; - - if ( CHECK_Property( gpos->gdef, in->string[in->pos], - flags, &property ) ) - return error; - - error = Coverage_Index( &mbp->MarkCoverage, in->string[in->pos], - &mark_index ); - if ( error ) - return error; - - /* now we search backwards for a non-mark glyph */ - - i = 1; - j = in->pos - 1; - - while ( i <= in->pos ) - { - error = TT_GDEF_Get_Glyph_Property( gpos->gdef, in->string[j], - &property ); - if ( error ) - return error; - - if ( !( property == TTO_MARK || property & IGNORE_SPECIAL_MARKS ) ) - break; - - i++; - j--; - } - - /* The following assertion is too strong -- at least for mangal.ttf. */ -#if 0 - if ( property != TTO_BASE_GLYPH ) - return TTO_Err_Not_Covered; -#endif - - if ( i > in->pos ) - return TTO_Err_Not_Covered; - - error = Coverage_Index( &mbp->BaseCoverage, in->string[j], - &base_index ); - if ( error ) - return error; - - ma = &mbp->MarkArray; - - if ( mark_index >= ma->MarkCount ) - return TTO_Err_Invalid_GPOS_SubTable; - - class = ma->MarkRecord[mark_index].Class; - mark_anchor = &ma->MarkRecord[mark_index].MarkAnchor; - - if ( class >= mbp->ClassCount ) - return TTO_Err_Invalid_GPOS_SubTable; - - ba = &mbp->BaseArray; - - if ( base_index >= ba->BaseCount ) - return TTO_Err_Invalid_GPOS_SubTable; - - br = &ba->BaseRecord[base_index]; - base_anchor = &br->BaseAnchor[class]; - - error = Get_Anchor( gpi, mark_anchor, in->string[in->pos], - &x_mark_value, &y_mark_value ); - if ( error ) - return error; - error = Get_Anchor( gpi, base_anchor, in->string[j], - &x_base_value, &y_base_value ); - if ( error ) - return error; - - /* anchor points are not cumulative */ - - o = &out[in->pos]; - - o->x_pos = x_base_value - x_mark_value; - o->y_pos = y_base_value - y_mark_value; - o->x_advance = 0; - o->y_advance = 0; - o->back = i; - - (in->pos)++; - - return TT_Err_Ok; - } - - - /* LookupType 5 */ - - /* LigatureAttach */ - - static TT_Error Load_LigatureAttach( TTO_LigatureAttach* lat, - UShort num_classes, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort m, n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_ComponentRecord* cr; - TTO_Anchor* lan; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = lat->ComponentCount = GET_UShort(); - - FORGET_Frame(); - - lat->ComponentRecord = NULL; - - if ( ALLOC_ARRAY( lat->ComponentRecord, count, TTO_ComponentRecord ) ) - return error; - - cr = lat->ComponentRecord; - - for ( m = 0; m < count; m++ ) - { - cr[m].LigatureAnchor = NULL; - - if ( ALLOC_ARRAY( cr[m].LigatureAnchor, num_classes, TTO_Anchor ) ) - goto Fail; - - lan = cr[m].LigatureAnchor; - - for ( n = 0; n < num_classes; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail; - - new_offset = GET_UShort(); - - FORGET_Frame(); - - if ( new_offset ) - { - new_offset += base_offset; - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Anchor( &lan[n], input ) ) != TT_Err_Ok ) - goto Fail; - (void)FILE_Seek( cur_offset ); - } - else - lan[n].PosFormat = 0; - } - } - - return TT_Err_Ok; - - Fail: - for ( m = 0; m < count; m++ ) - { - lan = cr[m].LigatureAnchor; - - for ( n = 0; n < num_classes; n++ ) - Free_Anchor( &lan[n] ); - - FREE( lan ); - } - - FREE( cr ); - return error; - } - - - static void Free_LigatureAttach( TTO_LigatureAttach* lat, - UShort num_classes ) - { - UShort m, n, count; - - TTO_ComponentRecord* cr; - TTO_Anchor* lan; - - - if ( lat->ComponentRecord ) - { - count = lat->ComponentCount; - cr = lat->ComponentRecord; - - for ( m = 0; m < count; m++ ) - { - lan = cr[m].LigatureAnchor; - - for ( n = 0; n < num_classes; n++ ) - Free_Anchor( &lan[n] ); - - FREE( lan ); - } - - FREE( cr ); - } - } - - - /* LigatureArray */ - - static TT_Error Load_LigatureArray( TTO_LigatureArray* la, - UShort num_classes, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_LigatureAttach* lat; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = la->LigatureCount = GET_UShort(); - - FORGET_Frame(); - - la->LigatureAttach = NULL; - - if ( ALLOC_ARRAY( la->LigatureAttach, count, TTO_LigatureAttach ) ) - return error; - - lat = la->LigatureAttach; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_LigatureAttach( &lat[n], num_classes, - input ) ) != TT_Err_Ok ) - goto Fail; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail: - for ( n = 0; n < count; n++ ) - Free_LigatureAttach( &lat[n], num_classes ); - - FREE( lat ); - return error; - } - - - static void Free_LigatureArray( TTO_LigatureArray* la, - UShort num_classes ) - { - UShort n, count; - - TTO_LigatureAttach* lat; - - - if ( la->LigatureAttach ) - { - count = la->LigatureCount; - lat = la->LigatureAttach; - - for ( n = 0; n < count; n++ ) - Free_LigatureAttach( &lat[n], num_classes ); - - FREE( lat ); - } - } - - - /* MarkLigPosFormat1 */ - - TT_Error Load_MarkLigPos( TTO_MarkLigPos* mlp, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - ULong cur_offset, new_offset, base_offset; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 4L ) ) - return error; - - mlp->PosFormat = GET_UShort(); - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &mlp->MarkCoverage, input ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 2L ) ) - goto Fail3; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &mlp->LigatureCoverage, - input ) ) != TT_Err_Ok ) - goto Fail3; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 4L ) ) - goto Fail2; - - mlp->ClassCount = GET_UShort(); - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_MarkArray( &mlp->MarkArray, input ) ) != TT_Err_Ok ) - goto Fail2; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 2L ) ) - goto Fail1; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_LigatureArray( &mlp->LigatureArray, mlp->ClassCount, - input ) ) != TT_Err_Ok ) - goto Fail1; - - return TT_Err_Ok; - - Fail1: - Free_MarkArray( &mlp->MarkArray ); - - Fail2: - Free_Coverage( &mlp->LigatureCoverage ); - - Fail3: - Free_Coverage( &mlp->MarkCoverage ); - return error; - } - - - void Free_MarkLigPos( TTO_MarkLigPos* mlp ) - { - Free_LigatureArray( &mlp->LigatureArray, mlp->ClassCount ); - Free_MarkArray( &mlp->MarkArray ); - Free_Coverage( &mlp->LigatureCoverage ); - Free_Coverage( &mlp->MarkCoverage ); - } - - - static TT_Error Lookup_MarkLigPos( GPOS_Instance* gpi, - TTO_MarkLigPos* mlp, - TTO_GSUB_String* in, - TTO_GPOS_Data* out, - UShort flags, - UShort context_length ) - { - TT_UInt i, j; - UShort mark_index, lig_index, property, class; - UShort mark_glyph; - TT_Pos x_mark_value, y_mark_value, x_lig_value, y_lig_value; - TT_Error error; - TTO_GPOSHeader* gpos = gpi->gpos; - - TTO_MarkArray* ma; - TTO_LigatureArray* la; - TTO_LigatureAttach* lat; - TTO_ComponentRecord* cr; - UShort comp_index; - TTO_Anchor* mark_anchor; - TTO_Anchor* lig_anchor; - - TTO_GPOS_Data* o; - - - if ( context_length != 0xFFFF && context_length < 1 ) - return TTO_Err_Not_Covered; - - if ( flags & IGNORE_LIGATURES ) - return TTO_Err_Not_Covered; - - mark_glyph = in->string[in->pos]; - - if ( CHECK_Property( gpos->gdef, mark_glyph, flags, &property ) ) - return error; - - error = Coverage_Index( &mlp->MarkCoverage, mark_glyph, &mark_index ); - if ( error ) - return error; - - /* now we search backwards for a non-mark glyph */ - - i = 1; - j = in->pos - 1; - - while ( i <= in->pos ) - { - error = TT_GDEF_Get_Glyph_Property( gpos->gdef, in->string[j], - &property ); - if ( error ) - return error; - - if ( !( property == TTO_MARK || property & IGNORE_SPECIAL_MARKS ) ) - break; - - i++; - j--; - } - - /* Similar to Lookup_MarkBasePos(), I suspect that this assertion is - too strong, thus it is commented out. */ -#if 0 - if ( property != TTO_LIGATURE ) - return TTO_Err_Not_Covered; -#endif - - if ( i > in->pos ) - return TTO_Err_Not_Covered; - - error = Coverage_Index( &mlp->LigatureCoverage, in->string[j], - &lig_index ); - if ( error ) - return error; - - ma = &mlp->MarkArray; - - if ( mark_index >= ma->MarkCount ) - return TTO_Err_Invalid_GPOS_SubTable; - - class = ma->MarkRecord[mark_index].Class; - mark_anchor = &ma->MarkRecord[mark_index].MarkAnchor; - - if ( class >= mlp->ClassCount ) - return TTO_Err_Invalid_GPOS_SubTable; - - la = &mlp->LigatureArray; - - if ( lig_index >= la->LigatureCount ) - return TTO_Err_Invalid_GPOS_SubTable; - - lat = &la->LigatureAttach[lig_index]; - - /* We must now check whether the ligature ID of the current mark glyph - is identical to the ligature ID of the found ligature. If yes, we - can directly use the component index. If not, we attach the mark - glyph to the last component of the ligature. */ - - if ( in->ligIDs && in->components && - in->ligIDs[j] == in->ligIDs[in->pos] ) - { - comp_index = in->components[in->pos]; - if ( comp_index >= lat->ComponentCount ) - return TTO_Err_Not_Covered; - } - else - comp_index = lat->ComponentCount - 1; - - cr = &lat->ComponentRecord[comp_index]; - lig_anchor = &cr->LigatureAnchor[class]; - - error = Get_Anchor( gpi, mark_anchor, in->string[in->pos], - &x_mark_value, &y_mark_value ); - if ( error ) - return error; - error = Get_Anchor( gpi, lig_anchor, in->string[j], - &x_lig_value, &y_lig_value ); - if ( error ) - return error; - - /* anchor points are not cumulative */ - - o = &out[in->pos]; - - o->x_pos = x_lig_value - x_mark_value; - o->y_pos = y_lig_value - y_mark_value; - o->x_advance = 0; - o->y_advance = 0; - o->back = i; - - (in->pos)++; - - return TT_Err_Ok; - } - - - /* LookupType 6 */ - - /* Mark2Array */ - - static TT_Error Load_Mark2Array( TTO_Mark2Array* m2a, - UShort num_classes, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort m, n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_Mark2Record* m2r; - TTO_Anchor* m2an; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = m2a->Mark2Count = GET_UShort(); - - FORGET_Frame(); - - m2a->Mark2Record = NULL; - - if ( ALLOC_ARRAY( m2a->Mark2Record, count, TTO_Mark2Record ) ) - return error; - - m2r = m2a->Mark2Record; - - for ( m = 0; m < count; m++ ) - { - m2r[m].Mark2Anchor = NULL; - - if ( ALLOC_ARRAY( m2r[m].Mark2Anchor, num_classes, TTO_Anchor ) ) - goto Fail; - - m2an = m2r[m].Mark2Anchor; - - for ( n = 0; n < num_classes; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Anchor( &m2an[n], input ) ) != TT_Err_Ok ) - goto Fail; - (void)FILE_Seek( cur_offset ); - } - } - - return TT_Err_Ok; - - Fail: - for ( m = 0; m < count; m++ ) - { - m2an = m2r[m].Mark2Anchor; - - for ( n = 0; n < num_classes; n++ ) - Free_Anchor( &m2an[n] ); - - FREE( m2an ); - } - - FREE( m2r ); - return error; - } - - - static void Free_Mark2Array( TTO_Mark2Array* m2a, - UShort num_classes ) - { - UShort m, n, count; - - TTO_Mark2Record* m2r; - TTO_Anchor* m2an; - - - if ( m2a->Mark2Record ) - { - count = m2a->Mark2Count; - m2r = m2a->Mark2Record; - - for ( m = 0; m < count; m++ ) - { - m2an = m2r[m].Mark2Anchor; - - for ( n = 0; n < num_classes; n++ ) - Free_Anchor( &m2an[n] ); - - FREE( m2an ); - } - - FREE( m2r ); - } - } - - - /* MarkMarkPosFormat1 */ - - TT_Error Load_MarkMarkPos( TTO_MarkMarkPos* mmp, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - ULong cur_offset, new_offset, base_offset; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 4L ) ) - return error; - - mmp->PosFormat = GET_UShort(); - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &mmp->Mark1Coverage, - input ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 2L ) ) - goto Fail3; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &mmp->Mark2Coverage, - input ) ) != TT_Err_Ok ) - goto Fail3; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 4L ) ) - goto Fail2; - - mmp->ClassCount = GET_UShort(); - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_MarkArray( &mmp->Mark1Array, input ) ) != TT_Err_Ok ) - goto Fail2; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 2L ) ) - goto Fail1; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Mark2Array( &mmp->Mark2Array, mmp->ClassCount, - input ) ) != TT_Err_Ok ) - goto Fail1; - - return TT_Err_Ok; - - Fail1: - Free_MarkArray( &mmp->Mark1Array ); - - Fail2: - Free_Coverage( &mmp->Mark2Coverage ); - - Fail3: - Free_Coverage( &mmp->Mark1Coverage ); - return error; - } - - - void Free_MarkMarkPos( TTO_MarkMarkPos* mmp ) - { - Free_Mark2Array( &mmp->Mark2Array, mmp->ClassCount ); - Free_MarkArray( &mmp->Mark1Array ); - Free_Coverage( &mmp->Mark2Coverage ); - Free_Coverage( &mmp->Mark1Coverage ); - } - - - static TT_Error Lookup_MarkMarkPos( GPOS_Instance* gpi, - TTO_MarkMarkPos* mmp, - TTO_GSUB_String* in, - TTO_GPOS_Data* out, - UShort flags, - UShort context_length ) - { - UShort j, mark1_index, mark2_index, property, class; - TT_Pos x_mark1_value, y_mark1_value, - x_mark2_value, y_mark2_value; - TT_Error error; - TTO_GPOSHeader* gpos = gpi->gpos; - - TTO_MarkArray* ma1; - TTO_Mark2Array* ma2; - TTO_Mark2Record* m2r; - TTO_Anchor* mark1_anchor; - TTO_Anchor* mark2_anchor; - - TTO_GPOS_Data* o; - - - if ( context_length != 0xFFFF && context_length < 1 ) - return TTO_Err_Not_Covered; - - if ( flags & IGNORE_MARKS ) - return TTO_Err_Not_Covered; - - if ( CHECK_Property( gpos->gdef, in->string[in->pos], - flags, &property ) ) - return error; - - error = Coverage_Index( &mmp->Mark1Coverage, in->string[in->pos], - &mark1_index ); - if ( error ) - return error; - - /* now we check the preceding glyph whether it is a suitable - mark glyph */ - - if ( in->pos == 0 ) - return TTO_Err_Not_Covered; - - j = in->pos - 1; - error = TT_GDEF_Get_Glyph_Property( gpos->gdef, in->string[j], - &property ); - if ( error ) - return error; - - if ( flags & IGNORE_SPECIAL_MARKS ) - { - if ( property != (flags & 0xFF00) ) - return TTO_Err_Not_Covered; - } - else - { - if ( property != TTO_MARK ) - return TTO_Err_Not_Covered; - } - - error = Coverage_Index( &mmp->Mark2Coverage, in->string[j], - &mark2_index ); - if ( error ) - return error; - - ma1 = &mmp->Mark1Array; - - if ( mark1_index >= ma1->MarkCount ) - return TTO_Err_Invalid_GPOS_SubTable; - - class = ma1->MarkRecord[mark1_index].Class; - mark1_anchor = &ma1->MarkRecord[mark1_index].MarkAnchor; - - if ( class >= mmp->ClassCount ) - return TTO_Err_Invalid_GPOS_SubTable; - - ma2 = &mmp->Mark2Array; - - if ( mark2_index >= ma2->Mark2Count ) - return TTO_Err_Invalid_GPOS_SubTable; - - m2r = &ma2->Mark2Record[mark2_index]; - mark2_anchor = &m2r->Mark2Anchor[class]; - - error = Get_Anchor( gpi, mark1_anchor, in->string[in->pos], - &x_mark1_value, &y_mark1_value ); - if ( error ) - return error; - error = Get_Anchor( gpi, mark2_anchor, in->string[j], - &x_mark2_value, &y_mark2_value ); - if ( error ) - return error; - - /* anchor points are not cumulative */ - - o = &out[in->pos]; - - o->x_pos = x_mark2_value - x_mark1_value; - o->y_pos = y_mark2_value - y_mark1_value; - o->x_advance = 0; - o->y_advance = 0; - o->back = 1; - - (in->pos)++; - - return TT_Err_Ok; - } - - - /* Do the actual positioning for a context positioning (either format - 7 or 8). This is only called after we've determined that the input - matches the subrule. */ - - static TT_Error Do_ContextPos( GPOS_Instance* gpi, - UShort GlyphCount, - UShort PosCount, - TTO_PosLookupRecord* pos, - TTO_GSUB_String* in, - TTO_GPOS_Data* out, - int nesting_level ) - { - TT_Error error; - UShort i, old_pos; - - - i = 0; - - while ( i < GlyphCount ) - { - if ( PosCount && i == pos->SequenceIndex ) - { - old_pos = in->pos; - - /* Do a positioning */ - - error = Do_Glyph_Lookup( gpi, pos->LookupListIndex, in, out, - GlyphCount, nesting_level ); - - if ( error ) - return error; - - pos++; - PosCount--; - i += in->pos - old_pos; - } - else - { - i++; - (in->pos)++; - } - } - - return TT_Err_Ok; - } - - - /* LookupType 7 */ - - /* PosRule */ - - static TT_Error Load_PosRule( TTO_PosRule* pr, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - UShort* i; - - TTO_PosLookupRecord* plr; - - - if ( ACCESS_Frame( 4L ) ) - return error; - - pr->GlyphCount = GET_UShort(); - pr->PosCount = GET_UShort(); - - FORGET_Frame(); - - pr->Input = NULL; - - count = pr->GlyphCount - 1; /* only GlyphCount - 1 elements */ - - if ( ALLOC_ARRAY( pr->Input, count, UShort ) ) - return error; - - i = pr->Input; - - if ( ACCESS_Frame( count * 2L ) ) - goto Fail2; - - for ( n = 0; n < count; n++ ) - i[n] = GET_UShort(); - - FORGET_Frame(); - - pr->PosLookupRecord = NULL; - - count = pr->PosCount; - - if ( ALLOC_ARRAY( pr->PosLookupRecord, count, TTO_PosLookupRecord ) ) - goto Fail2; - - plr = pr->PosLookupRecord; - - if ( ACCESS_Frame( count * 4L ) ) - goto Fail1; - - for ( n = 0; n < count; n++ ) - { - plr[n].SequenceIndex = GET_UShort(); - plr[n].LookupListIndex = GET_UShort(); - } - - FORGET_Frame(); - - return TT_Err_Ok; - - Fail1: - FREE( plr ); - - Fail2: - FREE( i ); - return error; - } - - - static void Free_PosRule( TTO_PosRule* pr ) - { - FREE( pr->PosLookupRecord ); - FREE( pr->Input ); - } - - - /* PosRuleSet */ - - static TT_Error Load_PosRuleSet( TTO_PosRuleSet* prs, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_PosRule* pr; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = prs->PosRuleCount = GET_UShort(); - - FORGET_Frame(); - - prs->PosRule = NULL; - - if ( ALLOC_ARRAY( prs->PosRule, count, TTO_PosRule ) ) - return error; - - pr = prs->PosRule; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_PosRule( &pr[n], input ) ) != TT_Err_Ok ) - goto Fail; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail: - for ( n = 0; n < count; n++ ) - Free_PosRule( &pr[n] ); - - FREE( pr ); - return error; - } - - - static void Free_PosRuleSet( TTO_PosRuleSet* prs ) - { - UShort n, count; - - TTO_PosRule* pr; - - - if ( prs->PosRule ) - { - count = prs->PosRuleCount; - pr = prs->PosRule; - - for ( n = 0; n < count; n++ ) - Free_PosRule( &pr[n] ); - - FREE( pr ); - } - } - - - /* ContextPosFormat1 */ - - static TT_Error Load_ContextPos1( TTO_ContextPosFormat1* cpf1, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_PosRuleSet* prs; - - - base_offset = FILE_Pos() - 2L; - - if ( ACCESS_Frame( 2L ) ) - return error; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &cpf1->Coverage, input ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - count = cpf1->PosRuleSetCount = GET_UShort(); - - FORGET_Frame(); - - cpf1->PosRuleSet = NULL; - - if ( ALLOC_ARRAY( cpf1->PosRuleSet, count, TTO_PosRuleSet ) ) - goto Fail2; - - prs = cpf1->PosRuleSet; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail1; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_PosRuleSet( &prs[n], input ) ) != TT_Err_Ok ) - goto Fail1; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail1: - for ( n = 0; n < count; n++ ) - Free_PosRuleSet( &prs[n] ); - - FREE( prs ); - - Fail2: - Free_Coverage( &cpf1->Coverage ); - return error; - } - - - static void Free_Context1( TTO_ContextPosFormat1* cpf1 ) - { - UShort n, count; - - TTO_PosRuleSet* prs; - - - if ( cpf1->PosRuleSet ) - { - count = cpf1->PosRuleSetCount; - prs = cpf1->PosRuleSet; - - for ( n = 0; n < count; n++ ) - Free_PosRuleSet( &prs[n] ); - - FREE( prs ); - } - - Free_Coverage( &cpf1->Coverage ); - } - - - /* PosClassRule */ - - static TT_Error Load_PosClassRule( TTO_ContextPosFormat2* cpf2, - TTO_PosClassRule* pcr, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - - UShort* c; - TTO_PosLookupRecord* plr; - Bool* d; - - - if ( ACCESS_Frame( 4L ) ) - return error; - - pcr->GlyphCount = GET_UShort(); - pcr->PosCount = GET_UShort(); - - FORGET_Frame(); - - if ( pcr->GlyphCount > cpf2->MaxContextLength ) - cpf2->MaxContextLength = pcr->GlyphCount; - - pcr->Class = NULL; - - count = pcr->GlyphCount - 1; /* only GlyphCount - 1 elements */ - - if ( ALLOC_ARRAY( pcr->Class, count, UShort ) ) - return error; - - c = pcr->Class; - d = cpf2->ClassDef.Defined; - - if ( ACCESS_Frame( count * 2L ) ) - goto Fail2; - - for ( n = 0; n < count; n++ ) - { - c[n] = GET_UShort(); - - /* We check whether the specific class is used at all. If not, - class 0 is used instead. */ - - if ( !d[c[n]] ) - c[n] = 0; - } - - FORGET_Frame(); - - pcr->PosLookupRecord = NULL; - - count = pcr->PosCount; - - if ( ALLOC_ARRAY( pcr->PosLookupRecord, count, TTO_PosLookupRecord ) ) - goto Fail2; - - plr = pcr->PosLookupRecord; - - if ( ACCESS_Frame( count * 4L ) ) - goto Fail1; - - for ( n = 0; n < count; n++ ) - { - plr[n].SequenceIndex = GET_UShort(); - plr[n].LookupListIndex = GET_UShort(); - } - - FORGET_Frame(); - - return TT_Err_Ok; - - Fail1: - FREE( plr ); - - Fail2: - FREE( c ); - return error; - } - - - static void Free_PosClassRule( TTO_PosClassRule* pcr ) - { - FREE( pcr->PosLookupRecord ); - FREE( pcr->Class ); - } - - - /* PosClassSet */ - - static TT_Error Load_PosClassSet( TTO_ContextPosFormat2* cpf2, - TTO_PosClassSet* pcs, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_PosClassRule* pcr; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = pcs->PosClassRuleCount = GET_UShort(); - - FORGET_Frame(); - - pcs->PosClassRule = NULL; - - if ( ALLOC_ARRAY( pcs->PosClassRule, count, TTO_PosClassRule ) ) - return error; - - pcr = pcs->PosClassRule; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_PosClassRule( cpf2, &pcr[n], - input ) ) != TT_Err_Ok ) - goto Fail; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail: - for ( n = 0; n < count; n++ ) - Free_PosClassRule( &pcr[n] ); - - FREE( pcr ); - return error; - } - - - static void Free_PosClassSet( TTO_PosClassSet* pcs ) - { - UShort n, count; - - TTO_PosClassRule* pcr; - - - if ( pcs->PosClassRule ) - { - count = pcs->PosClassRuleCount; - pcr = pcs->PosClassRule; - - for ( n = 0; n < count; n++ ) - Free_PosClassRule( &pcr[n] ); - - FREE( pcr ); - } - } - - - /* ContextPosFormat2 */ - - static TT_Error Load_ContextPos2( TTO_ContextPosFormat2* cpf2, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_PosClassSet* pcs; - - - base_offset = FILE_Pos() - 2; - - if ( ACCESS_Frame( 2L ) ) - return error; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &cpf2->Coverage, input ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 4L ) ) - goto Fail3; - - new_offset = GET_UShort() + base_offset; - - /* `PosClassSetCount' is the upper limit for class values, thus we - read it now to make an additional safety check. */ - - count = cpf2->PosClassSetCount = GET_UShort(); - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_ClassDefinition( &cpf2->ClassDef, count, - input ) ) != TT_Err_Ok ) - goto Fail3; - (void)FILE_Seek( cur_offset ); - - cpf2->PosClassSet = NULL; - cpf2->MaxContextLength = 0; - - if ( ALLOC_ARRAY( cpf2->PosClassSet, count, TTO_PosClassSet ) ) - goto Fail2; - - pcs = cpf2->PosClassSet; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail1; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - if ( new_offset != base_offset ) /* not a NULL offset */ - { - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_PosClassSet( cpf2, &pcs[n], - input ) ) != TT_Err_Ok ) - goto Fail1; - (void)FILE_Seek( cur_offset ); - } - else - { - /* we create a PosClassSet table with no entries */ - - cpf2->PosClassSet[n].PosClassRuleCount = 0; - cpf2->PosClassSet[n].PosClassRule = NULL; - } - } - - return TT_Err_Ok; - - Fail1: - for ( n = 0; n < count; n++ ) - Free_PosClassSet( &pcs[n] ); - - FREE( pcs ); - - Fail2: - Free_ClassDefinition( &cpf2->ClassDef ); - - Fail3: - Free_Coverage( &cpf2->Coverage ); - return error; - } - - - static void Free_Context2( TTO_ContextPosFormat2* cpf2 ) - { - UShort n, count; - - TTO_PosClassSet* pcs; - - - if ( cpf2->PosClassSet ) - { - count = cpf2->PosClassSetCount; - pcs = cpf2->PosClassSet; - - for ( n = 0; n < count; n++ ) - Free_PosClassSet( &pcs[n] ); - - FREE( pcs ); - } - - Free_ClassDefinition( &cpf2->ClassDef ); - Free_Coverage( &cpf2->Coverage ); - } - - - /* ContextPosFormat3 */ - - static TT_Error Load_ContextPos3( TTO_ContextPosFormat3* cpf3, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_Coverage* c; - TTO_PosLookupRecord* plr; - - - base_offset = FILE_Pos() - 2L; - - if ( ACCESS_Frame( 4L ) ) - return error; - - cpf3->GlyphCount = GET_UShort(); - cpf3->PosCount = GET_UShort(); - - FORGET_Frame(); - - cpf3->Coverage = NULL; - - count = cpf3->GlyphCount; - - if ( ALLOC_ARRAY( cpf3->Coverage, count, TTO_Coverage ) ) - return error; - - c = cpf3->Coverage; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &c[n], input ) ) != TT_Err_Ok ) - goto Fail2; - (void)FILE_Seek( cur_offset ); - } - - cpf3->PosLookupRecord = NULL; - - count = cpf3->PosCount; - - if ( ALLOC_ARRAY( cpf3->PosLookupRecord, count, TTO_PosLookupRecord ) ) - goto Fail2; - - plr = cpf3->PosLookupRecord; - - if ( ACCESS_Frame( count * 4L ) ) - goto Fail1; - - for ( n = 0; n < count; n++ ) - { - plr[n].SequenceIndex = GET_UShort(); - plr[n].LookupListIndex = GET_UShort(); - } - - FORGET_Frame(); - - return TT_Err_Ok; - - Fail1: - FREE( plr ); - - Fail2: - for ( n = 0; n < count; n++ ) - Free_Coverage( &c[n] ); - - FREE( c ); - return error; - } - - - static void Free_Context3( TTO_ContextPosFormat3* cpf3 ) - { - UShort n, count; - - TTO_Coverage* c; - - - FREE( cpf3->PosLookupRecord ); - - if ( cpf3->Coverage ) - { - count = cpf3->GlyphCount; - c = cpf3->Coverage; - - for ( n = 0; n < count; n++ ) - Free_Coverage( &c[n] ); - - FREE( c ); - } - } - - - /* ContextPos */ - - TT_Error Load_ContextPos( TTO_ContextPos* cp, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - - if ( ACCESS_Frame( 2L ) ) - return error; - - cp->PosFormat = GET_UShort(); - - FORGET_Frame(); - - switch ( cp->PosFormat ) - { - case 1: - return Load_ContextPos1( &cp->cpf.cpf1, input ); - - case 2: - return Load_ContextPos2( &cp->cpf.cpf2, input ); - - case 3: - return Load_ContextPos3( &cp->cpf.cpf3, input ); - - default: - return TTO_Err_Invalid_GPOS_SubTable_Format; - } - - return TT_Err_Ok; /* never reached */ - } - - - void Free_ContextPos( TTO_ContextPos* cp ) - { - switch ( cp->PosFormat ) - { - case 1: - Free_Context1( &cp->cpf.cpf1 ); - break; - - case 2: - Free_Context2( &cp->cpf.cpf2 ); - break; - - case 3: - Free_Context3( &cp->cpf.cpf3 ); - break; - } - } - - - static TT_Error Lookup_ContextPos1( GPOS_Instance* gpi, - TTO_ContextPosFormat1* cpf1, - TTO_GSUB_String* in, - TTO_GPOS_Data* out, - UShort flags, - UShort context_length, - int nesting_level ) - { - UShort index, property; - UShort i, j, k, numpr; - TT_Error error; - UShort* s_in; - TTO_GPOSHeader* gpos = gpi->gpos; - - TTO_PosRule* pr; - TTO_GDEFHeader* gdef; - - - gdef = gpos->gdef; - - if ( CHECK_Property( gdef, in->string[in->pos], flags, &property ) ) - return error; - - error = Coverage_Index( &cpf1->Coverage, in->string[in->pos], &index ); - if ( error ) - return error; - - pr = cpf1->PosRuleSet[index].PosRule; - numpr = cpf1->PosRuleSet[index].PosRuleCount; - - for ( k = 0; k < numpr; k++ ) - { - if ( context_length != 0xFFFF && context_length < pr[k].GlyphCount ) - continue; - - if ( in->pos + pr[k].GlyphCount > in->length ) - continue; /* context is too long */ - - s_in = &in->string[in->pos]; - - for ( i = 1, j = 1; i < pr[k].GlyphCount; i++, j++ ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - return error; - - if ( in->pos + j < in->length ) - j++; - else - break; - } - - if ( s_in[j] != pr[k].Input[i - 1] ) - break; - } - - if ( i == pr[k].GlyphCount ) - return Do_ContextPos( gpi, pr[k].GlyphCount, - pr[k].PosCount, pr[k].PosLookupRecord, - in, out, - nesting_level ); - } - - return TTO_Err_Not_Covered; - } - - - static TT_Error Lookup_ContextPos2( GPOS_Instance* gpi, - TTO_ContextPosFormat2* cpf2, - TTO_GSUB_String* in, - TTO_GPOS_Data* out, - UShort flags, - UShort context_length, - int nesting_level ) - { - UShort index, property; - TT_Error error; - UShort i, j, k, known_classes; - - UShort* classes; - UShort* s_in; - UShort* cl; - TTO_GPOSHeader* gpos = gpi->gpos; - - TTO_PosClassSet* pcs; - TTO_PosClassRule* pr; - TTO_GDEFHeader* gdef; - - - gdef = gpos->gdef; - - if ( ALLOC_ARRAY( classes, cpf2->MaxContextLength, UShort ) ) - return error; - - if ( CHECK_Property( gdef, in->string[in->pos], flags, &property ) ) - return error; - - /* Note: The coverage table in format 2 doesn't give an index into - anything. It just lets us know whether or not we need to - do any lookup at all. */ - - error = Coverage_Index( &cpf2->Coverage, in->string[in->pos], &index ); - if ( error ) - goto End; - - error = Get_Class( &cpf2->ClassDef, in->string[in->pos], - &classes[0], NULL ); - if ( error ) - goto End; - known_classes = 0; - - pcs = &cpf2->PosClassSet[classes[0]]; - if ( !pcs ) - { - error = TTO_Err_Invalid_GPOS_SubTable; - goto End; - } - - for ( k = 0; k < pcs->PosClassRuleCount; k++ ) - { - pr = &pcs->PosClassRule[k]; - - if ( context_length != 0xFFFF && context_length < pr->GlyphCount ) - continue; - - if ( in->pos + pr->GlyphCount > in->length ) - continue; /* context is too long */ - - s_in = &in->string[in->pos]; - cl = pr->Class; - - /* Start at 1 because [0] is implied */ - - for ( i = 1, j = 1; i < pr->GlyphCount; i++, j++ ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - return error; - - if ( in->pos + j < in->length ) - j++; - else - break; - } - - if ( i > known_classes ) - { - /* Keeps us from having to do this for each rule */ - - error = Get_Class( &cpf2->ClassDef, s_in[j], &classes[i], NULL ); - if ( error && error != TTO_Err_Not_Covered ) - return error; - known_classes = i; - } - - if ( cl[i - 1] != classes[i] ) - break; - } - - if ( i == pr->GlyphCount ) - { - error = Do_ContextPos( gpi, pr->GlyphCount, - pr->PosCount, pr->PosLookupRecord, - in, out, - nesting_level ); - goto End; - } - } - - error = TTO_Err_Not_Covered; - - End: - FREE( classes ); - return error; - } - - - static TT_Error Lookup_ContextPos3( GPOS_Instance* gpi, - TTO_ContextPosFormat3* cpf3, - TTO_GSUB_String* in, - TTO_GPOS_Data* out, - UShort flags, - UShort context_length, - int nesting_level ) - { - TT_Error error; - UShort index, i, j, property; - UShort* s_in; - TTO_GPOSHeader* gpos = gpi->gpos; - - TTO_Coverage* c; - TTO_GDEFHeader* gdef; - - - gdef = gpos->gdef; - - if ( CHECK_Property( gdef, in->string[in->pos], flags, &property ) ) - return error; - - if ( context_length != 0xFFFF && context_length < cpf3->GlyphCount ) - return TTO_Err_Not_Covered; - - if ( in->pos + cpf3->GlyphCount > in->length ) - return TTO_Err_Not_Covered; /* context is too long */ - - s_in = &in->string[in->pos]; - c = cpf3->Coverage; - - for ( i = 1, j = 1; i < cpf3->GlyphCount; i++, j++ ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - return error; - - if ( in->pos + j < in->length ) - j++; - else - return TTO_Err_Not_Covered; - } - - error = Coverage_Index( &c[i], s_in[j], &index ); - if ( error ) - return error; - } - - return Do_ContextPos( gpi, cpf3->GlyphCount, - cpf3->PosCount, cpf3->PosLookupRecord, - in, out, - nesting_level ); - } - - - static TT_Error Lookup_ContextPos( GPOS_Instance* gpi, - TTO_ContextPos* cp, - TTO_GSUB_String* in, - TTO_GPOS_Data* out, - UShort flags, - UShort context_length, - int nesting_level ) - { - switch ( cp->PosFormat ) - { - case 1: - return Lookup_ContextPos1( gpi, &cp->cpf.cpf1, in, out, - flags, context_length, nesting_level ); - - case 2: - return Lookup_ContextPos2( gpi, &cp->cpf.cpf2, in, out, - flags, context_length, nesting_level ); - - case 3: - return Lookup_ContextPos3( gpi, &cp->cpf.cpf3, in, out, - flags, context_length, nesting_level ); - - default: - return TTO_Err_Invalid_GPOS_SubTable_Format; - } - - return TT_Err_Ok; /* never reached */ - } - - - /* LookupType 8 */ - - /* ChainPosRule */ - - static TT_Error Load_ChainPosRule( TTO_ChainPosRule* cpr, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - UShort* b; - UShort* i; - UShort* l; - - TTO_PosLookupRecord* plr; - - - if ( ACCESS_Frame( 2L ) ) - return error; - - cpr->BacktrackGlyphCount = GET_UShort(); - - FORGET_Frame(); - - cpr->Backtrack = NULL; - - count = cpr->BacktrackGlyphCount; - - if ( ALLOC_ARRAY( cpr->Backtrack, count, UShort ) ) - return error; - - b = cpr->Backtrack; - - if ( ACCESS_Frame( count * 2L ) ) - goto Fail4; - - for ( n = 0; n < count; n++ ) - b[n] = GET_UShort(); - - FORGET_Frame(); - - if ( ACCESS_Frame( 2L ) ) - goto Fail4; - - cpr->InputGlyphCount = GET_UShort(); - - FORGET_Frame(); - - cpr->Input = NULL; - - count = cpr->InputGlyphCount - 1; /* only InputGlyphCount - 1 elements */ - - if ( ALLOC_ARRAY( cpr->Input, count, UShort ) ) - goto Fail4; - - i = cpr->Input; - - if ( ACCESS_Frame( count * 2L ) ) - goto Fail3; - - for ( n = 0; n < count; n++ ) - i[n] = GET_UShort(); - - FORGET_Frame(); - - if ( ACCESS_Frame( 2L ) ) - goto Fail3; - - cpr->LookaheadGlyphCount = GET_UShort(); - - FORGET_Frame(); - - cpr->Lookahead = NULL; - - count = cpr->LookaheadGlyphCount; - - if ( ALLOC_ARRAY( cpr->Lookahead, count, UShort ) ) - goto Fail3; - - l = cpr->Lookahead; - - if ( ACCESS_Frame( count * 2L ) ) - goto Fail2; - - for ( n = 0; n < count; n++ ) - l[n] = GET_UShort(); - - FORGET_Frame(); - - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - cpr->PosCount = GET_UShort(); - - FORGET_Frame(); - - cpr->PosLookupRecord = NULL; - - count = cpr->PosCount; - - if ( ALLOC_ARRAY( cpr->PosLookupRecord, count, TTO_PosLookupRecord ) ) - goto Fail2; - - plr = cpr->PosLookupRecord; - - if ( ACCESS_Frame( count * 4L ) ) - goto Fail1; - - for ( n = 0; n < count; n++ ) - { - plr[n].SequenceIndex = GET_UShort(); - plr[n].LookupListIndex = GET_UShort(); - } - - FORGET_Frame(); - - return TT_Err_Ok; - - Fail1: - FREE( plr ); - - Fail2: - FREE( l ); - - Fail3: - FREE( i ); - - Fail4: - FREE( b ); - return error; - } - - - static void Free_ChainPosRule( TTO_ChainPosRule* cpr ) - { - FREE( cpr->PosLookupRecord ); - FREE( cpr->Lookahead ); - FREE( cpr->Input ); - FREE( cpr->Backtrack ); - } - - - /* ChainPosRuleSet */ - - static TT_Error Load_ChainPosRuleSet( TTO_ChainPosRuleSet* cprs, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_ChainPosRule* cpr; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = cprs->ChainPosRuleCount = GET_UShort(); - - FORGET_Frame(); - - cprs->ChainPosRule = NULL; - - if ( ALLOC_ARRAY( cprs->ChainPosRule, count, TTO_ChainPosRule ) ) - return error; - - cpr = cprs->ChainPosRule; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_ChainPosRule( &cpr[n], input ) ) != TT_Err_Ok ) - goto Fail; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail: - for ( n = 0; n < count; n++ ) - Free_ChainPosRule( &cpr[n] ); - - FREE( cpr ); - return error; - } - - - static void Free_ChainPosRuleSet( TTO_ChainPosRuleSet* cprs ) - { - UShort n, count; - - TTO_ChainPosRule* cpr; - - - if ( cprs->ChainPosRule ) - { - count = cprs->ChainPosRuleCount; - cpr = cprs->ChainPosRule; - - for ( n = 0; n < count; n++ ) - Free_ChainPosRule( &cpr[n] ); - - FREE( cpr ); - } - } - - - /* ChainContextPosFormat1 */ - - static TT_Error Load_ChainContextPos1( TTO_ChainContextPosFormat1* ccpf1, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_ChainPosRuleSet* cprs; - - - base_offset = FILE_Pos() - 2L; - - if ( ACCESS_Frame( 2L ) ) - return error; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &ccpf1->Coverage, input ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - count = ccpf1->ChainPosRuleSetCount = GET_UShort(); - - FORGET_Frame(); - - ccpf1->ChainPosRuleSet = NULL; - - if ( ALLOC_ARRAY( ccpf1->ChainPosRuleSet, count, TTO_ChainPosRuleSet ) ) - goto Fail2; - - cprs = ccpf1->ChainPosRuleSet; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail1; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_ChainPosRuleSet( &cprs[n], input ) ) != TT_Err_Ok ) - goto Fail1; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail1: - for ( n = 0; n < count; n++ ) - Free_ChainPosRuleSet( &cprs[n] ); - - FREE( cprs ); - - Fail2: - Free_Coverage( &ccpf1->Coverage ); - return error; - } - - - static void Free_ChainContext1( TTO_ChainContextPosFormat1* ccpf1 ) - { - UShort n, count; - - TTO_ChainPosRuleSet* cprs; - - - if ( ccpf1->ChainPosRuleSet ) - { - count = ccpf1->ChainPosRuleSetCount; - cprs = ccpf1->ChainPosRuleSet; - - for ( n = 0; n < count; n++ ) - Free_ChainPosRuleSet( &cprs[n] ); - - FREE( cprs ); - } - - Free_Coverage( &ccpf1->Coverage ); - } - - - /* ChainPosClassRule */ - - static TT_Error Load_ChainPosClassRule( - TTO_ChainContextPosFormat2* ccpf2, - TTO_ChainPosClassRule* cpcr, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - - UShort* b; - UShort* i; - UShort* l; - TTO_PosLookupRecord* plr; - Bool* d; - - - if ( ACCESS_Frame( 2L ) ) - return error; - - cpcr->BacktrackGlyphCount = GET_UShort(); - - FORGET_Frame(); - - if ( cpcr->BacktrackGlyphCount > ccpf2->MaxBacktrackLength ) - ccpf2->MaxBacktrackLength = cpcr->BacktrackGlyphCount; - - cpcr->Backtrack = NULL; - - count = cpcr->BacktrackGlyphCount; - - if ( ALLOC_ARRAY( cpcr->Backtrack, count, UShort ) ) - return error; - - b = cpcr->Backtrack; - d = ccpf2->BacktrackClassDef.Defined; - - if ( ACCESS_Frame( count * 2L ) ) - goto Fail4; - - for ( n = 0; n < count; n++ ) - { - b[n] = GET_UShort(); - - /* We check whether the specific class is used at all. If not, - class 0 is used instead. */ - - if ( !d[b[n]] ) - b[n] = 0; - } - - FORGET_Frame(); - - if ( ACCESS_Frame( 2L ) ) - goto Fail4; - - cpcr->InputGlyphCount = GET_UShort(); - - if ( cpcr->InputGlyphCount > ccpf2->MaxInputLength ) - ccpf2->MaxInputLength = cpcr->InputGlyphCount; - - FORGET_Frame(); - - cpcr->Input = NULL; - - count = cpcr->InputGlyphCount - 1; /* only InputGlyphCount - 1 elements */ - - if ( ALLOC_ARRAY( cpcr->Input, count, UShort ) ) - goto Fail4; - - i = cpcr->Input; - d = ccpf2->InputClassDef.Defined; - - if ( ACCESS_Frame( count * 2L ) ) - goto Fail3; - - for ( n = 0; n < count; n++ ) - { - i[n] = GET_UShort(); - - if ( !d[i[n]] ) - i[n] = 0; - } - - FORGET_Frame(); - - if ( ACCESS_Frame( 2L ) ) - goto Fail3; - - cpcr->LookaheadGlyphCount = GET_UShort(); - - FORGET_Frame(); - - if ( cpcr->LookaheadGlyphCount > ccpf2->MaxLookaheadLength ) - ccpf2->MaxLookaheadLength = cpcr->LookaheadGlyphCount; - - cpcr->Lookahead = NULL; - - count = cpcr->LookaheadGlyphCount; - - if ( ALLOC_ARRAY( cpcr->Lookahead, count, UShort ) ) - goto Fail3; - - l = cpcr->Lookahead; - d = ccpf2->LookaheadClassDef.Defined; - - if ( ACCESS_Frame( count * 2L ) ) - goto Fail2; - - for ( n = 0; n < count; n++ ) - { - l[n] = GET_UShort(); - - if ( !d[l[n]] ) - l[n] = 0; - } - - FORGET_Frame(); - - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - cpcr->PosCount = GET_UShort(); - - FORGET_Frame(); - - cpcr->PosLookupRecord = NULL; - - count = cpcr->PosCount; - - if ( ALLOC_ARRAY( cpcr->PosLookupRecord, count, TTO_PosLookupRecord ) ) - goto Fail2; - - plr = cpcr->PosLookupRecord; - - if ( ACCESS_Frame( count * 4L ) ) - goto Fail1; - - for ( n = 0; n < count; n++ ) - { - plr[n].SequenceIndex = GET_UShort(); - plr[n].LookupListIndex = GET_UShort(); - } - - FORGET_Frame(); - - return TT_Err_Ok; - - Fail1: - FREE( plr ); - - Fail2: - FREE( l ); - - Fail3: - FREE( i ); - - Fail4: - FREE( b ); - return error; - } - - - static void Free_ChainPosClassRule( TTO_ChainPosClassRule* cpcr ) - { - FREE( cpcr->PosLookupRecord ); - FREE( cpcr->Lookahead ); - FREE( cpcr->Input ); - FREE( cpcr->Backtrack ); - } - - - /* PosClassSet */ - - static TT_Error Load_ChainPosClassSet( - TTO_ChainContextPosFormat2* ccpf2, - TTO_ChainPosClassSet* cpcs, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_ChainPosClassRule* cpcr; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = cpcs->ChainPosClassRuleCount = GET_UShort(); - - FORGET_Frame(); - - cpcs->ChainPosClassRule = NULL; - - if ( ALLOC_ARRAY( cpcs->ChainPosClassRule, count, - TTO_ChainPosClassRule ) ) - return error; - - cpcr = cpcs->ChainPosClassRule; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_ChainPosClassRule( ccpf2, &cpcr[n], - input ) ) != TT_Err_Ok ) - goto Fail; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail: - for ( n = 0; n < count; n++ ) - Free_ChainPosClassRule( &cpcr[n] ); - - FREE( cpcr ); - return error; - } - - - static void Free_ChainPosClassSet( TTO_ChainPosClassSet* cpcs ) - { - UShort n, count; - - TTO_ChainPosClassRule* cpcr; - - - if ( cpcs->ChainPosClassRule ) - { - count = cpcs->ChainPosClassRuleCount; - cpcr = cpcs->ChainPosClassRule; - - for ( n = 0; n < count; n++ ) - Free_ChainPosClassRule( &cpcr[n] ); - - FREE( cpcr ); - } - } - - - /* ChainContextPosFormat2 */ - - static TT_Error Load_ChainContextPos2( TTO_ChainContextPosFormat2* ccpf2, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - ULong backtrack_offset, input_offset, lookahead_offset; - - TTO_ChainPosClassSet* cpcs; - - - base_offset = FILE_Pos() - 2; - - if ( ACCESS_Frame( 2L ) ) - return error; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &ccpf2->Coverage, input ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 8L ) ) - goto Fail5; - - backtrack_offset = GET_UShort() + base_offset; - input_offset = GET_UShort() + base_offset; - lookahead_offset = GET_UShort() + base_offset; - - /* `ChainPosClassSetCount' is the upper limit for input class values, - thus we read it now to make an additional safety check. */ - - count = ccpf2->ChainPosClassSetCount = GET_UShort(); - - FORGET_Frame(); - - /* backtrack and lookahead data can be optional */ - - cur_offset = FILE_Pos(); - if ( backtrack_offset != base_offset ) - { - if ( FILE_Seek( backtrack_offset ) || - ( error = Load_ClassDefinition( &ccpf2->BacktrackClassDef, count, - input ) ) != TT_Err_Ok ) - goto Fail5; - } - if ( FILE_Seek( input_offset ) || - ( error = Load_ClassDefinition( &ccpf2->InputClassDef, count, - input ) ) != TT_Err_Ok ) - goto Fail4; - if ( lookahead_offset != base_offset ) - { - if ( FILE_Seek( lookahead_offset ) || - ( error = Load_ClassDefinition( &ccpf2->LookaheadClassDef, count, - input ) ) != TT_Err_Ok ) - goto Fail3; - } - (void)FILE_Seek( cur_offset ); - - ccpf2->ChainPosClassSet = NULL; - ccpf2->MaxBacktrackLength = 0; - ccpf2->MaxInputLength = 0; - ccpf2->MaxLookaheadLength = 0; - - if ( ALLOC_ARRAY( ccpf2->ChainPosClassSet, count, TTO_ChainPosClassSet ) ) - goto Fail2; - - cpcs = ccpf2->ChainPosClassSet; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail1; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - if ( new_offset != base_offset ) /* not a NULL offset */ - { - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_ChainPosClassSet( ccpf2, &cpcs[n], - input ) ) != TT_Err_Ok ) - goto Fail1; - (void)FILE_Seek( cur_offset ); - } - else - { - /* we create a ChainPosClassSet table with no entries */ - - ccpf2->ChainPosClassSet[n].ChainPosClassRuleCount = 0; - ccpf2->ChainPosClassSet[n].ChainPosClassRule = NULL; - } - } - - return TT_Err_Ok; - - Fail1: - for ( n = 0; n < count; n++ ) - Free_ChainPosClassSet( &cpcs[n] ); - - FREE( cpcs ); - - Fail2: - Free_ClassDefinition( &ccpf2->LookaheadClassDef ); - - Fail3: - Free_ClassDefinition( &ccpf2->InputClassDef ); - - Fail4: - Free_ClassDefinition( &ccpf2->BacktrackClassDef ); - - Fail5: - Free_Coverage( &ccpf2->Coverage ); - return error; - } - - - static void Free_ChainContext2( TTO_ChainContextPosFormat2* ccpf2 ) - { - UShort n, count; - - TTO_ChainPosClassSet* cpcs; - - - if ( ccpf2->ChainPosClassSet ) - { - count = ccpf2->ChainPosClassSetCount; - cpcs = ccpf2->ChainPosClassSet; - - for ( n = 0; n < count; n++ ) - Free_ChainPosClassSet( &cpcs[n] ); - - FREE( cpcs ); - } - - Free_ClassDefinition( &ccpf2->LookaheadClassDef ); - Free_ClassDefinition( &ccpf2->InputClassDef ); - Free_ClassDefinition( &ccpf2->BacktrackClassDef ); - - Free_Coverage( &ccpf2->Coverage ); - } - - - /* ChainContextPosFormat3 */ - - static TT_Error Load_ChainContextPos3( TTO_ChainContextPosFormat3* ccpf3, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - UShort backtrack_count, input_count, lookahead_count; - ULong cur_offset, new_offset, base_offset; - - TTO_Coverage* b; - TTO_Coverage* i; - TTO_Coverage* l; - TTO_PosLookupRecord* plr; - - - base_offset = FILE_Pos() - 2L; - - if ( ACCESS_Frame( 2L ) ) - return error; - - ccpf3->BacktrackGlyphCount = GET_UShort(); - - FORGET_Frame(); - - ccpf3->BacktrackCoverage = NULL; - - backtrack_count = ccpf3->BacktrackGlyphCount; - - if ( ALLOC_ARRAY( ccpf3->BacktrackCoverage, backtrack_count, - TTO_Coverage ) ) - return error; - - b = ccpf3->BacktrackCoverage; - - for ( n = 0; n < backtrack_count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail4; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &b[n], input ) ) != TT_Err_Ok ) - goto Fail4; - (void)FILE_Seek( cur_offset ); - } - - if ( ACCESS_Frame( 2L ) ) - goto Fail4; - - ccpf3->InputGlyphCount = GET_UShort(); - - FORGET_Frame(); - - ccpf3->InputCoverage = NULL; - - input_count = ccpf3->InputGlyphCount; - - if ( ALLOC_ARRAY( ccpf3->InputCoverage, input_count, TTO_Coverage ) ) - goto Fail4; - - i = ccpf3->InputCoverage; - - for ( n = 0; n < input_count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail3; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &i[n], input ) ) != TT_Err_Ok ) - goto Fail3; - (void)FILE_Seek( cur_offset ); - } - - if ( ACCESS_Frame( 2L ) ) - goto Fail3; - - ccpf3->LookaheadGlyphCount = GET_UShort(); - - FORGET_Frame(); - - ccpf3->LookaheadCoverage = NULL; - - lookahead_count = ccpf3->LookaheadGlyphCount; - - if ( ALLOC_ARRAY( ccpf3->LookaheadCoverage, lookahead_count, - TTO_Coverage ) ) - goto Fail3; - - l = ccpf3->LookaheadCoverage; - - for ( n = 0; n < lookahead_count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &l[n], input ) ) != TT_Err_Ok ) - goto Fail2; - (void)FILE_Seek( cur_offset ); - } - - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - ccpf3->PosCount = GET_UShort(); - - FORGET_Frame(); - - ccpf3->PosLookupRecord = NULL; - - count = ccpf3->PosCount; - - if ( ALLOC_ARRAY( ccpf3->PosLookupRecord, count, TTO_PosLookupRecord ) ) - goto Fail2; - - plr = ccpf3->PosLookupRecord; - - if ( ACCESS_Frame( count * 4L ) ) - goto Fail1; - - for ( n = 0; n < count; n++ ) - { - plr[n].SequenceIndex = GET_UShort(); - plr[n].LookupListIndex = GET_UShort(); - } - - FORGET_Frame(); - - return TT_Err_Ok; - - Fail1: - FREE( plr ); - - Fail2: - for ( n = 0; n < lookahead_count; n++ ) - Free_Coverage( &l[n] ); - - FREE( l ); - - Fail3: - for ( n = 0; n < input_count; n++ ) - Free_Coverage( &i[n] ); - - FREE( i ); - - Fail4: - for ( n = 0; n < backtrack_count; n++ ) - Free_Coverage( &b[n] ); - - FREE( b ); - return error; - } - - - static void Free_ChainContext3( TTO_ChainContextPosFormat3* ccpf3 ) - { - UShort n, count; - - TTO_Coverage* c; - - - FREE( ccpf3->PosLookupRecord ); - - if ( ccpf3->LookaheadCoverage ) - { - count = ccpf3->LookaheadGlyphCount; - c = ccpf3->LookaheadCoverage; - - for ( n = 0; n < count; n++ ) - Free_Coverage( &c[n] ); - - FREE( c ); - } - - if ( ccpf3->InputCoverage ) - { - count = ccpf3->InputGlyphCount; - c = ccpf3->InputCoverage; - - for ( n = 0; n < count; n++ ) - Free_Coverage( &c[n] ); - - FREE( c ); - } - - if ( ccpf3->BacktrackCoverage ) - { - count = ccpf3->BacktrackGlyphCount; - c = ccpf3->BacktrackCoverage; - - for ( n = 0; n < count; n++ ) - Free_Coverage( &c[n] ); - - FREE( c ); - } - } - - - /* ChainContextPos */ - - TT_Error Load_ChainContextPos( TTO_ChainContextPos* ccp, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - - if ( ACCESS_Frame( 2L ) ) - return error; - - ccp->PosFormat = GET_UShort(); - - FORGET_Frame(); - - switch ( ccp->PosFormat ) - { - case 1: - return Load_ChainContextPos1( &ccp->ccpf.ccpf1, input ); - - case 2: - return Load_ChainContextPos2( &ccp->ccpf.ccpf2, input ); - - case 3: - return Load_ChainContextPos3( &ccp->ccpf.ccpf3, input ); - - default: - return TTO_Err_Invalid_GPOS_SubTable_Format; - } - - return TT_Err_Ok; /* never reached */ - } - - - void Free_ChainContextPos( TTO_ChainContextPos* ccp ) - { - switch ( ccp->PosFormat ) - { - case 1: - Free_ChainContext1( &ccp->ccpf.ccpf1 ); - break; - - case 2: - Free_ChainContext2( &ccp->ccpf.ccpf2 ); - break; - - case 3: - Free_ChainContext3( &ccp->ccpf.ccpf3 ); - break; - } - } - - - static TT_Error Lookup_ChainContextPos1( - GPOS_Instance* gpi, - TTO_ChainContextPosFormat1* ccpf1, - TTO_GSUB_String* in, - TTO_GPOS_Data* out, - TT_UInt flags, - TT_UInt context_length, - int nesting_level ) - { - UShort index, property; - TT_UInt i, j, k, num_cpr, curr_pos; - TT_UInt bgc, igc, lgc; - TT_Error error; - UShort* s_in; - TTO_GPOSHeader* gpos = gpi->gpos; - - TTO_ChainPosRule* cpr; - TTO_ChainPosRule curr_cpr; - TTO_GDEFHeader* gdef; - - - gdef = gpos->gdef; - - if ( CHECK_Property( gdef, in->string[in->pos], flags, &property ) ) - return error; - - error = Coverage_Index( &ccpf1->Coverage, in->string[in->pos], &index ); - if ( error ) - return error; - - cpr = ccpf1->ChainPosRuleSet[index].ChainPosRule; - num_cpr = ccpf1->ChainPosRuleSet[index].ChainPosRuleCount; - - for ( k = 0; k < num_cpr; k++ ) - { - curr_cpr = cpr[k]; - bgc = curr_cpr.BacktrackGlyphCount; - igc = curr_cpr.InputGlyphCount; - lgc = curr_cpr.LookaheadGlyphCount; - - if ( context_length != 0xFFFF && context_length < igc ) - continue; - - /* check whether context is too long; it is a first guess only */ - - if ( bgc > in->pos || in->pos + igc + lgc > in->length ) - continue; - - if ( bgc ) - { - /* Since we don't know in advance the number of glyphs to inspect, - we search backwards for matches in the backtrack glyph array */ - - curr_pos = 0; - s_in = &in->string[curr_pos]; - - for ( i = 0, j = in->pos - 1; i < bgc; i++, j-- ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - return error; - - if ( j > curr_pos ) - j--; - else - break; - } - - /* In OpenType 1.3, it is undefined whether the offsets of - backtrack glyphs is in logical order or not. Version 1.4 - will clarify this: - - Logical order - a b c d e f g h i j - i - Input offsets - 0 1 - Backtrack offsets - 3 2 1 0 - Lookahead offsets - 0 1 2 3 */ - - if ( s_in[j] != curr_cpr.Backtrack[i] ) - break; - } - - if ( i != bgc ) - continue; - } - - curr_pos = in->pos; - s_in = &in->string[curr_pos]; - - /* Start at 1 because [0] is implied */ - - for ( i = 1, j = 1; i < igc; i++, j++ ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - return error; - - if ( curr_pos + j < in->length ) - j++; - else - break; - } - - if ( s_in[j] != curr_cpr.Input[i - 1] ) - break; - } - - if ( i != igc ) - continue; - - /* we are starting to check for lookahead glyphs right after the - last context glyph */ - - curr_pos = j; - s_in = &in->string[curr_pos]; - - for ( i = 0, j = 0; i < lgc; i++, j++ ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - return error; - - if ( curr_pos + j < in->length ) - j++; - else - break; - } - - if ( s_in[j] != curr_cpr.Lookahead[i] ) - break; - } - - if ( i == lgc ) - return Do_ContextPos( gpi, igc, - curr_cpr.PosCount, - curr_cpr.PosLookupRecord, - in, out, - nesting_level ); - } - - return TTO_Err_Not_Covered; - } - - - static TT_Error Lookup_ChainContextPos2( - GPOS_Instance* gpi, - TTO_ChainContextPosFormat2* ccpf2, - TTO_GSUB_String* in, - TTO_GPOS_Data* out, - TT_UInt flags, - TT_UInt context_length, - int nesting_level ) - { - UShort index, property; - TT_Error error; - TT_UInt i, j, k, curr_pos; - TT_UInt bgc, igc, lgc; - UShort known_backtrack_classes, - known_input_classes, - known_lookahead_classes; - - UShort* backtrack_classes; - UShort* input_classes; - UShort* lookahead_classes; - - UShort* s_in; - - UShort* bc; - UShort* ic; - UShort* lc; - TTO_GPOSHeader* gpos = gpi->gpos; - - TTO_ChainPosClassSet* cpcs; - TTO_ChainPosClassRule cpcr; - TTO_GDEFHeader* gdef; - - - gdef = gpos->gdef; - - if ( CHECK_Property( gdef, in->string[in->pos], flags, &property ) ) - return error; - - /* Note: The coverage table in format 2 doesn't give an index into - anything. It just lets us know whether or not we need to - do any lookup at all. */ - - error = Coverage_Index( &ccpf2->Coverage, in->string[in->pos], &index ); - if ( error ) - return error; - - if ( ALLOC_ARRAY( backtrack_classes, ccpf2->MaxBacktrackLength, UShort ) ) - return error; - known_backtrack_classes = 0; - - if ( ALLOC_ARRAY( input_classes, ccpf2->MaxInputLength, UShort ) ) - goto End3; - known_input_classes = 1; - - if ( ALLOC_ARRAY( lookahead_classes, ccpf2->MaxLookaheadLength, UShort ) ) - goto End2; - known_lookahead_classes = 0; - - error = Get_Class( &ccpf2->InputClassDef, in->string[in->pos], - &input_classes[0], NULL ); - if ( error ) - goto End1; - - cpcs = &ccpf2->ChainPosClassSet[input_classes[0]]; - if ( !cpcs ) - { - error = TTO_Err_Invalid_GPOS_SubTable; - goto End1; - } - - for ( k = 0; k < (TT_UInt)cpcs->ChainPosClassRuleCount; k++ ) - { - cpcr = cpcs->ChainPosClassRule[k]; - bgc = cpcr.BacktrackGlyphCount; - igc = cpcr.InputGlyphCount; - lgc = cpcr.LookaheadGlyphCount; - - if ( context_length != 0xFFFF && context_length < igc ) - continue; - - /* check whether context is too long; it is a first guess only */ - - if ( bgc > in->pos || in->pos + igc + lgc > in->length ) - continue; - - if ( bgc ) - { - /* Since we don't know in advance the number of glyphs to inspect, - we search backwards for matches in the backtrack glyph array. - Note that `known_backtrack_classes' starts at index 0. */ - - curr_pos = 0; - s_in = &in->string[curr_pos]; - bc = cpcr.Backtrack; - - for ( i = 0, j = in->pos - 1; i < bgc; i++, j-- ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - return error; - - if ( j > curr_pos ) - j--; - else - break; - } - - if ( i >= (TT_UInt)known_backtrack_classes ) - { - /* Keeps us from having to do this for each rule */ - - error = Get_Class( &ccpf2->BacktrackClassDef, s_in[j], - &backtrack_classes[i], NULL ); - if ( error && error != TTO_Err_Not_Covered ) - goto End1; - known_backtrack_classes = i; - } - - if ( bc[i] != backtrack_classes[i] ) - break; - } - - if ( i != bgc ) - continue; - } - - curr_pos = in->pos; - s_in = &in->string[curr_pos]; - ic = cpcr.Input; - - /* Start at 1 because [0] is implied */ - - for ( i = 1, j = 1; i < igc; i++, j++ ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - goto End1; - - if ( curr_pos + j < in->length ) - j++; - else - break; - } - - if ( i >= (TT_UInt)known_input_classes ) - { - error = Get_Class( &ccpf2->InputClassDef, s_in[j], - &input_classes[i], NULL ); - if ( error && error != TTO_Err_Not_Covered ) - goto End1; - known_input_classes = i; - } - - if ( ic[i - 1] != input_classes[i] ) - break; - } - - if ( i != igc ) - continue; - - /* we are starting to check for lookahead glyphs right after the - last context glyph */ - - curr_pos = j; - s_in = &in->string[curr_pos]; - lc = cpcr.Lookahead; - - for ( i = 0, j = 0; i < lgc; i++, j++ ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - return error; - - if ( curr_pos + j < in->length ) - j++; - else - break; - } - - if ( i >= (TT_UInt)known_lookahead_classes ) - { - error = Get_Class( &ccpf2->LookaheadClassDef, s_in[j], - &lookahead_classes[i], NULL ); - if ( error && error != TTO_Err_Not_Covered ) - goto End1; - known_lookahead_classes = i; - } - - if ( lc[i] != lookahead_classes[i] ) - break; - } - - if ( i == lgc ) - { - error = Do_ContextPos( gpi, igc, - cpcr.PosCount, - cpcr.PosLookupRecord, - in, out, - nesting_level ); - goto End1; - } - } - - error = TTO_Err_Not_Covered; - - End1: - FREE( lookahead_classes ); - - End2: - FREE( input_classes ); - - End3: - FREE( backtrack_classes ); - return error; - } - - - static TT_Error Lookup_ChainContextPos3( - GPOS_Instance* gpi, - TTO_ChainContextPosFormat3* ccpf3, - TTO_GSUB_String* in, - TTO_GPOS_Data* out, - TT_UInt flags, - TT_UInt context_length, - int nesting_level ) - { - UShort index, property; - TT_UInt i, j, curr_pos, bgc, igc, lgc; - TT_Error error; - UShort* s_in; - TTO_GPOSHeader* gpos = gpi->gpos; - - TTO_Coverage* bc; - TTO_Coverage* ic; - TTO_Coverage* lc; - TTO_GDEFHeader* gdef; - - - gdef = gpos->gdef; - - if ( CHECK_Property( gdef, in->string[in->pos], flags, &property ) ) - return error; - - bgc = ccpf3->BacktrackGlyphCount; - igc = ccpf3->InputGlyphCount; - lgc = ccpf3->LookaheadGlyphCount; - - if ( context_length != 0xFFFF && context_length < igc ) - return TTO_Err_Not_Covered; - - /* check whether context is too long; it is a first guess only */ - - if ( bgc > in->pos || in->pos + igc + lgc > in->length ) - return TTO_Err_Not_Covered; - - if ( bgc ) - { - /* Since we don't know in advance the number of glyphs to inspect, - we search backwards for matches in the backtrack glyph array */ - - curr_pos = 0; - s_in = &in->string[curr_pos]; - bc = ccpf3->BacktrackCoverage; - - for ( i = 0, j = in->pos - 1; i < bgc; i++, j-- ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - return error; - - if ( j > curr_pos ) - j--; - else - return TTO_Err_Not_Covered; - } - - error = Coverage_Index( &bc[i], s_in[j], &index ); - if ( error ) - return error; - } - } - - curr_pos = in->pos; - s_in = &in->string[curr_pos]; - ic = ccpf3->InputCoverage; - - /* Start at 1 because [0] is implied */ - - for ( i = 1, j = 1; i < igc; i++, j++ ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - return error; - - if ( curr_pos + j < in->length ) - j++; - else - return TTO_Err_Not_Covered; - } - - error = Coverage_Index( &ic[i], s_in[j], &index ); - if ( error ) - return error; - } - - /* we are starting to check for lookahead glyphs right after the - last context glyph */ - - curr_pos = j; - s_in = &in->string[curr_pos]; - lc = ccpf3->LookaheadCoverage; - - for ( i = 0, j = 0; i < lgc; i++, j++ ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - return error; - - if ( curr_pos + j < in->length ) - j++; - else - return TTO_Err_Not_Covered; - } - - error = Coverage_Index( &lc[i], s_in[j], &index ); - if ( error ) - return error; - } - - return Do_ContextPos( gpi, igc, - ccpf3->PosCount, - ccpf3->PosLookupRecord, - in, out, - nesting_level ); - } - - - static TT_Error Lookup_ChainContextPos( - GPOS_Instance* gpi, - TTO_ChainContextPos* ccp, - TTO_GSUB_String* in, - TTO_GPOS_Data* out, - UShort flags, - UShort context_length, - int nesting_level ) - { - switch ( ccp->PosFormat ) - { - case 1: - return Lookup_ChainContextPos1( gpi, &ccp->ccpf.ccpf1, in, out, - flags, context_length, - nesting_level ); - - case 2: - return Lookup_ChainContextPos2( gpi, &ccp->ccpf.ccpf2, in, out, - flags, context_length, - nesting_level ); - - case 3: - return Lookup_ChainContextPos3( gpi, &ccp->ccpf.ccpf3, in, out, - flags, context_length, - nesting_level ); - - default: - return TTO_Err_Invalid_GPOS_SubTable_Format; - } - - return TT_Err_Ok; /* never reached */ - } - - - - /*********** - * GPOS API - ***********/ - - - FT_EXPORT_FUNC( TT_Error ) - TT_GPOS_Select_Script( TTO_GPOSHeader* gpos, - TT_ULong script_tag, - TT_UShort* script_index ) - { - UShort n; - - TTO_ScriptList* sl; - TTO_ScriptRecord* sr; - - - if ( !gpos || !script_index ) - return TT_Err_Invalid_Argument; - - sl = &gpos->ScriptList; - sr = sl->ScriptRecord; - - for ( n = 0; n < sl->ScriptCount; n++ ) - if ( script_tag == sr[n].ScriptTag ) - { - *script_index = n; - - return TT_Err_Ok; - } - - return TTO_Err_Not_Covered; - } - - - FT_EXPORT_FUNC( TT_Error ) - TT_GPOS_Select_Language( TTO_GPOSHeader* gpos, - TT_ULong language_tag, - TT_UShort script_index, - TT_UShort* language_index, - TT_UShort* req_feature_index ) - { - UShort n; - - TTO_ScriptList* sl; - TTO_ScriptRecord* sr; - TTO_Script* s; - TTO_LangSysRecord* lsr; - - - if ( !gpos || !language_index || !req_feature_index ) - return TT_Err_Invalid_Argument; - - sl = &gpos->ScriptList; - sr = sl->ScriptRecord; - - if ( script_index >= sl->ScriptCount ) - return TT_Err_Invalid_Argument; - - s = &sr[script_index].Script; - lsr = s->LangSysRecord; - - for ( n = 0; n < s->LangSysCount; n++ ) - if ( language_tag == lsr[n].LangSysTag ) - { - *language_index = n; - *req_feature_index = lsr[n].LangSys.ReqFeatureIndex; - - return TT_Err_Ok; - } - - return TTO_Err_Not_Covered; - } - - - /* selecting 0xFFFF for language_index asks for the values of the - default language (DefaultLangSys) */ - - FT_EXPORT_FUNC( TT_Error ) - TT_GPOS_Select_Feature( TTO_GPOSHeader* gpos, - TT_ULong feature_tag, - TT_UShort script_index, - TT_UShort language_index, - TT_UShort* feature_index ) - { - UShort n; - - TTO_ScriptList* sl; - TTO_ScriptRecord* sr; - TTO_Script* s; - TTO_LangSysRecord* lsr; - TTO_LangSys* ls; - UShort* fi; - - TTO_FeatureList* fl; - TTO_FeatureRecord* fr; - - - if ( !gpos || !feature_index ) - return TT_Err_Invalid_Argument; - - sl = &gpos->ScriptList; - sr = sl->ScriptRecord; - - fl = &gpos->FeatureList; - fr = fl->FeatureRecord; - - if ( script_index >= sl->ScriptCount ) - return TT_Err_Invalid_Argument; - - s = &sr[script_index].Script; - lsr = s->LangSysRecord; - - if ( language_index == 0xFFFF ) - ls = &s->DefaultLangSys; - else - { - if ( language_index >= s->LangSysCount ) - return TT_Err_Invalid_Argument; - - ls = &lsr[language_index].LangSys; - } - - fi = ls->FeatureIndex; - - for ( n = 0; n < ls->FeatureCount; n++ ) - { - if ( fi[n] >= fl->FeatureCount ) - return TTO_Err_Invalid_GPOS_SubTable_Format; - - if ( feature_tag == fr[fi[n]].FeatureTag ) - { - *feature_index = fi[n]; - - return TT_Err_Ok; - } - } - - return TTO_Err_Not_Covered; - } - - - /* The next three functions return a null-terminated list */ - - FT_EXPORT_FUNC( TT_Error ) - TT_GPOS_Query_Scripts( TTO_GPOSHeader* gpos, - TT_ULong** script_tag_list ) - { - UShort n; - TT_Error error; - ULong* stl; - - TTO_ScriptList* sl; - TTO_ScriptRecord* sr; - - - if ( !gpos || !script_tag_list ) - return TT_Err_Invalid_Argument; - - sl = &gpos->ScriptList; - sr = sl->ScriptRecord; - - if ( ALLOC_ARRAY( stl, sl->ScriptCount + 1, ULong ) ) - return error; - - for ( n = 0; n < sl->ScriptCount; n++ ) - stl[n] = sr[n].ScriptTag; - stl[n] = 0; - - *script_tag_list = stl; - - return TT_Err_Ok; - } - - - FT_EXPORT_FUNC( TT_Error ) - TT_GPOS_Query_Languages( TTO_GPOSHeader* gpos, - TT_UShort script_index, - TT_ULong** language_tag_list ) - { - UShort n; - TT_Error error; - ULong* ltl; - - TTO_ScriptList* sl; - TTO_ScriptRecord* sr; - TTO_Script* s; - TTO_LangSysRecord* lsr; - - - if ( !gpos || !language_tag_list ) - return TT_Err_Invalid_Argument; - - sl = &gpos->ScriptList; - sr = sl->ScriptRecord; - - if ( script_index >= sl->ScriptCount ) - return TT_Err_Invalid_Argument; - - s = &sr[script_index].Script; - lsr = s->LangSysRecord; - - if ( ALLOC_ARRAY( ltl, s->LangSysCount + 1, ULong ) ) - return error; - - for ( n = 0; n < s->LangSysCount; n++ ) - ltl[n] = lsr[n].LangSysTag; - ltl[n] = 0; - - *language_tag_list = ltl; - - return TT_Err_Ok; - } - - - /* selecting 0xFFFF for language_index asks for the values of the - default language (DefaultLangSys) */ - - FT_EXPORT_FUNC( TT_Error ) - TT_GPOS_Query_Features( TTO_GPOSHeader* gpos, - TT_UShort script_index, - TT_UShort language_index, - TT_ULong** feature_tag_list ) - { - UShort n; - TT_Error error; - ULong* ftl; - - TTO_ScriptList* sl; - TTO_ScriptRecord* sr; - TTO_Script* s; - TTO_LangSysRecord* lsr; - TTO_LangSys* ls; - UShort* fi; - - TTO_FeatureList* fl; - TTO_FeatureRecord* fr; - - - if ( !gpos || !feature_tag_list ) - return TT_Err_Invalid_Argument; - - sl = &gpos->ScriptList; - sr = sl->ScriptRecord; - - fl = &gpos->FeatureList; - fr = fl->FeatureRecord; - - if ( script_index >= sl->ScriptCount ) - return TT_Err_Invalid_Argument; - - s = &sr[script_index].Script; - lsr = s->LangSysRecord; - - if ( language_index == 0xFFFF ) - ls = &s->DefaultLangSys; - else - { - if ( language_index >= s->LangSysCount ) - return TT_Err_Invalid_Argument; - - ls = &lsr[language_index].LangSys; - } - - fi = ls->FeatureIndex; - - if ( ALLOC_ARRAY( ftl, ls->FeatureCount + 1, ULong ) ) - return error; - - for ( n = 0; n < ls->FeatureCount; n++ ) - { - if ( fi[n] >= fl->FeatureCount ) - { - FREE( ftl ); - return TTO_Err_Invalid_GPOS_SubTable_Format; - } - ftl[n] = fr[fi[n]].FeatureTag; - } - ftl[n] = 0; - - *feature_tag_list = ftl; - - return TT_Err_Ok; - } - - - /* Do an individual subtable lookup. Returns TT_Err_Ok if positioning - has been done, or TTO_Err_Not_Covered if not. */ - - static TT_Error Do_Glyph_Lookup( GPOS_Instance* gpi, - UShort lookup_index, - TTO_GSUB_String* in, - TTO_GPOS_Data* out, - UShort context_length, - int nesting_level ) - { - TT_Error error = TT_Err_Ok; - UShort i, flags; - TTO_GPOSHeader* gpos = gpi->gpos; - TTO_Lookup* lo; - - - nesting_level++; - - if ( nesting_level > TTO_MAX_NESTING_LEVEL ) - return TTO_Err_Too_Many_Nested_Contexts; - - lo = &gpos->LookupList.Lookup[lookup_index]; - flags = lo->LookupFlag; - - for ( i = 0; i < lo->SubTableCount; i++ ) - { - switch ( lo->LookupType ) - { - case GPOS_LOOKUP_SINGLE: - error = Lookup_SinglePos( gpi, - &lo->SubTable[i].st.gpos.single, - in, out, - flags, context_length ); - break; - - case GPOS_LOOKUP_PAIR: - error = Lookup_PairPos( gpi, - &lo->SubTable[i].st.gpos.pair, - in, out, - flags, context_length ); - break; - - case GPOS_LOOKUP_CURSIVE: - error = Lookup_CursivePos( gpi, - &lo->SubTable[i].st.gpos.cursive, - in, out, - flags, context_length ); - break; - - case GPOS_LOOKUP_MARKBASE: - error = Lookup_MarkBasePos( gpi, - &lo->SubTable[i].st.gpos.markbase, - in, out, - flags, context_length ); - break; - - case GPOS_LOOKUP_MARKLIG: - error = Lookup_MarkLigPos( gpi, - &lo->SubTable[i].st.gpos.marklig, - in, out, - flags, context_length ); - break; - - case GPOS_LOOKUP_MARKMARK: - error = Lookup_MarkMarkPos( gpi, - &lo->SubTable[i].st.gpos.markmark, - in, out, - flags, context_length ); - break; - - case GPOS_LOOKUP_CONTEXT: - error = Lookup_ContextPos( gpi, - &lo->SubTable[i].st.gpos.context, - in, out, - flags, context_length, - nesting_level ); - break; - - case GPOS_LOOKUP_CHAIN: - error = Lookup_ChainContextPos( gpi, - &lo->SubTable[i].st.gpos.chain, - in, out, - flags, context_length, - nesting_level ); - break; - } - - /* Check whether we have a successful positioning or an error other - than TTO_Err_Not_Covered */ - - if ( error != TTO_Err_Not_Covered ) - return error; - } - - return TTO_Err_Not_Covered; - } - - - /* apply one lookup to the input string object */ - - static TT_Error Do_String_Lookup( GPOS_Instance* gpi, - UShort lookup_index, - TTO_GSUB_String* in, - TTO_GPOS_Data* out ) - { - TT_Error error = TTO_Err_Not_Covered; - TTO_GPOSHeader* gpos = gpi->gpos; - - UShort* properties = gpos->LookupList.Properties; - UShort* p_in = in->properties; - - int nesting_level = 0; - TT_UInt i; - TT_Pos offset; - - - gpi->first = 0xFFFF; - gpi->last = 0xFFFF; /* no last valid glyph for cursive pos. */ - - in->pos = 0; - - while ( in->pos < in->length ) - { - if ( ~p_in[in->pos] & properties[lookup_index] ) - { - /* 0xFFFF indicates that we don't have a context length yet. */ - - /* Note that the connection between mark and base glyphs hold - exactly one (string) lookup. For example, it would be possible - that in the first lookup, mark glyph X is attached to base - glyph A, and in the next lookup it is attached to base glyph B. - It is up to the font designer to provide meaningful lookups and - lookup order. */ - - error = Do_Glyph_Lookup( gpi, lookup_index, in, out, - 0xFFFF, nesting_level ); - if ( error && error != TTO_Err_Not_Covered ) - return error; - } - else - { - /* Contrary to properties defined in GDEF, user-defined properties - will always stop a possible cursive positioning. */ - gpi->last = 0xFFFF; - - error = TTO_Err_Not_Covered; - } - - /* test whether we have to adjust the offsets for cursive connections */ - - if ( gpi->first != 0xFFFF && gpi->last == 0xFFFF && - gpos->LookupList.Lookup[lookup_index].LookupFlag & RIGHT_TO_LEFT ) - { - offset = out[in->pos].y_pos; - - /* no horizontal offsets (for vertical writing direction) - supported yet */ - - for ( i = gpi->first; i <= (TT_UInt)in->pos; i++ ) - out[i].y_pos -= offset; - - gpi->first = 0xFFFF; - } - - if ( error == TTO_Err_Not_Covered ) - (in->pos)++; - } - - return error; - } - - - FT_EXPORT_FUNC( TT_Error ) - TT_GPOS_Add_Feature( TTO_GPOSHeader* gpos, - TT_UShort feature_index, - TT_UShort property ) - { - UShort i; - - TTO_Feature feature; - UShort* properties; - UShort* index; - - - if ( !gpos || - feature_index >= gpos->FeatureList.FeatureCount ) - return TT_Err_Invalid_Argument; - - properties = gpos->LookupList.Properties; - - feature = gpos->FeatureList.FeatureRecord[feature_index].Feature; - index = feature.LookupListIndex; - - for ( i = 0; i < feature.LookupListCount; i++ ) - properties[index[i]] |= property; - - return TT_Err_Ok; - } - - - FT_EXPORT_FUNC( TT_Error ) - TT_GPOS_Clear_Features( TTO_GPOSHeader* gpos ) - { - UShort i; - - UShort* properties; - - - if ( !gpos ) - return TT_Err_Invalid_Argument; - - properties = gpos->LookupList.Properties; - - for ( i = 0; i < gpos->LookupList.LookupCount; i++ ) - properties[i] = 0; - - return TT_Err_Ok; - } - - - FT_EXPORT_FUNC( TT_Error ) - TT_GPOS_Register_Glyph_Function( TTO_GPOSHeader* gpos, - TTO_GlyphFunction gfunc ) - { - if ( !gpos ) - return TT_Err_Invalid_Argument; - - gpos->gfunc = gfunc; - - return TT_Err_Ok; - } - - - FT_EXPORT_FUNC( TT_Error ) - TT_GPOS_Register_MM_Function( TTO_GPOSHeader* gpos, - TTO_MMFunction mmfunc, - void* data ) - { - if ( !gpos ) - return TT_Err_Invalid_Argument; - - gpos->mmfunc = mmfunc; - gpos->data = data; - - return TT_Err_Ok; - } - - - /* If `dvi' is TRUE, glyph contour points for anchor points and device - tables are ignored -- you will get device independent values. */ - - FT_EXPORT_FUNC( TT_Error ) - TT_GPOS_Apply_String( TT_Instance instance, - TT_Glyph glyph, - TTO_GPOSHeader* gpos, - TT_UShort load_flags, - TTO_GSUB_String* in, - TTO_GPOS_Data** out, - TT_Bool dvi, - TT_Bool r2l ) - { - TT_Error error = TTO_Err_Not_Covered; - GPOS_Instance gpi; - - UShort j; - - UShort* properties; - - - if ( !instance.z || !gpos || - !in || in->length == 0 || in->pos >= in->length ) - return TT_Err_Invalid_Argument; - - properties = gpos->LookupList.Properties; - - gpi.instance = instance; - if ( dvi ) - gpi.glyph.z = NULL; - else - gpi.glyph = glyph; - gpi.gpos = gpos; - gpi.load_flags = load_flags; - gpi.r2l = r2l; - - if ( *out ) - FREE( *out ); - if ( ALLOC_ARRAY( *out, in->length, TTO_GPOS_Data ) ) - return error; - - for ( j = 0; j < gpos->LookupList.LookupCount; j++ ) - if ( !properties || properties[j] ) - { - error = Do_String_Lookup( &gpi, j, in, *out ); - if ( error && error != TTO_Err_Not_Covered ) - return error; - } - - return error; - } - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxgpos.h b/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxgpos.h deleted file mode 100644 index 1ba80b13b8a..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxgpos.h +++ /dev/null @@ -1,865 +0,0 @@ -/******************************************************************* - * - * ftxgpos.h - * - * TrueType Open GPOS table support - * - * Copyright 1996-2001 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - ******************************************************************/ - -#ifndef FTXOPEN_H -#error "Don't include this file! Use ftxopen.h instead." -#endif - -#ifndef FTXGPOS_H -#define FTXGPOS_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define TTO_Err_Invalid_GPOS_SubTable_Format 0x1020 -#define TTO_Err_Invalid_GPOS_SubTable 0x1021 - -#define GPOS_ID Build_Extension_ID( 'G', 'P', 'O', 'S' ) - - -/* Lookup types for glyph positioning */ - -#define GPOS_LOOKUP_SINGLE 1 -#define GPOS_LOOKUP_PAIR 2 -#define GPOS_LOOKUP_CURSIVE 3 -#define GPOS_LOOKUP_MARKBASE 4 -#define GPOS_LOOKUP_MARKLIG 5 -#define GPOS_LOOKUP_MARKMARK 6 -#define GPOS_LOOKUP_CONTEXT 7 -#define GPOS_LOOKUP_CHAIN 8 -#define GPOS_LOOKUP_EXTENSION 9 - - - /* A pointer to a function which loads a glyph. Its parameters are - the same as in a call to TT_Load_Glyph() -- if no glyph loading - function will be registered with TTO_GPOS_Register_Glyph_Function(), - TT_Load_Glyph() will be called indeed. The purpose of this function - pointer is to provide a hook for caching glyph outlines and sbits - (using the instance's generic pointer to hold the data). - - If for some reason no outline data is available (e.g. for an - embedded bitmap glyph), _glyph->outline.n_points should be set to - zero. _glyph can be computed with - - _glyph = HANDLE_Glyph( glyph ) */ - - typedef TT_Error (*TTO_GlyphFunction)(TT_Instance instance, - TT_Glyph glyph, - TT_UShort glyphIndex, - TT_UShort loadFlags ); - - - /* A pointer to a function which accesses the PostScript interpreter. - Multiple Master fonts need this interface to convert a metric ID - (as stored in an OpenType font version 1.2 or higher) `metric_id' - into a metric value (returned in `metric_value'). - - `data' points to the user-defined structure specified during a - call to TT_GPOS_Register_MM_Function(). - - `metric_value' must be returned as a scaled value (but shouldn't - be rounded). */ - - typedef TT_Error (*TTO_MMFunction)(TT_Instance instance, - TT_UShort metric_id, - TT_Pos* metric_value, - void* data ); - - - struct TTO_GPOSHeader_ - { - TT_Bool loaded; - TT_ULong offset; - - TT_Fixed Version; - - TTO_ScriptList ScriptList; - TTO_FeatureList FeatureList; - TTO_LookupList LookupList; - - TTO_GDEFHeader* gdef; - - /* the next field is used for a callback function to get the - glyph outline. */ - - TTO_GlyphFunction gfunc; - - /* this is OpenType 1.2 -- Multiple Master fonts need this - callback function to get various metric values from the - PostScript interpreter. */ - - TTO_MMFunction mmfunc; - void* data; - }; - - typedef struct TTO_GPOSHeader_ TTO_GPOSHeader; - - - /* shared tables */ - - struct TTO_ValueRecord_ - { - TT_Short XPlacement; /* horizontal adjustment for - placement */ - TT_Short YPlacement; /* vertical adjustment for - placement */ - TT_Short XAdvance; /* horizontal adjustment for - advance */ - TT_Short YAdvance; /* vertical adjustment for - advance */ - TTO_Device XPlacementDevice; /* device table for horizontal - placement */ - TTO_Device YPlacementDevice; /* device table for vertical - placement */ - TTO_Device XAdvanceDevice; /* device table for horizontal - advance */ - TTO_Device YAdvanceDevice; /* device table for vertical - advance */ - TT_UShort XIdPlacement; /* horizontal placement metric ID */ - TT_UShort YIdPlacement; /* vertical placement metric ID */ - TT_UShort XIdAdvance; /* horizontal advance metric ID */ - TT_UShort YIdAdvance; /* vertical advance metric ID */ - }; - - typedef struct TTO_ValueRecord_ TTO_ValueRecord; - - -/* Mask values to scan the value format of the ValueRecord structure. - We always expand compressed ValueRecords of the font. */ - -#define HAVE_X_PLACEMENT 0x0001 -#define HAVE_Y_PLACEMENT 0x0002 -#define HAVE_X_ADVANCE 0x0004 -#define HAVE_Y_ADVANCE 0x0008 -#define HAVE_X_PLACEMENT_DEVICE 0x0010 -#define HAVE_Y_PLACEMENT_DEVICE 0x0020 -#define HAVE_X_ADVANCE_DEVICE 0x0040 -#define HAVE_Y_ADVANCE_DEVICE 0x0080 -#define HAVE_X_ID_PLACEMENT 0x0100 -#define HAVE_Y_ID_PLACEMENT 0x0200 -#define HAVE_X_ID_ADVANCE 0x0400 -#define HAVE_Y_ID_ADVANCE 0x0800 - - - struct TTO_AnchorFormat1_ - { - TT_Short XCoordinate; /* horizontal value */ - TT_Short YCoordinate; /* vertical value */ - }; - - typedef struct TTO_AnchorFormat1_ TTO_AnchorFormat1; - - - struct TTO_AnchorFormat2_ - { - TT_Short XCoordinate; /* horizontal value */ - TT_Short YCoordinate; /* vertical value */ - TT_UShort AnchorPoint; /* index to glyph contour point */ - }; - - typedef struct TTO_AnchorFormat2_ TTO_AnchorFormat2; - - - struct TTO_AnchorFormat3_ - { - TT_Short XCoordinate; /* horizontal value */ - TT_Short YCoordinate; /* vertical value */ - TTO_Device XDeviceTable; /* device table for X coordinate */ - TTO_Device YDeviceTable; /* device table for Y coordinate */ - }; - - typedef struct TTO_AnchorFormat3_ TTO_AnchorFormat3; - - - struct TTO_AnchorFormat4_ - { - TT_UShort XIdAnchor; /* horizontal metric ID */ - TT_UShort YIdAnchor; /* vertical metric ID */ - }; - - typedef struct TTO_AnchorFormat4_ TTO_AnchorFormat4; - - - struct TTO_Anchor_ - { - TT_UShort PosFormat; /* 1, 2, 3, or 4 -- 0 indicates - that there is no Anchor table */ - - union - { - TTO_AnchorFormat1 af1; - TTO_AnchorFormat2 af2; - TTO_AnchorFormat3 af3; - TTO_AnchorFormat4 af4; - } af; - }; - - typedef struct TTO_Anchor_ TTO_Anchor; - - - struct TTO_MarkRecord_ - { - TT_UShort Class; /* mark class */ - TTO_Anchor MarkAnchor; /* anchor table */ - }; - - typedef struct TTO_MarkRecord_ TTO_MarkRecord; - - - struct TTO_MarkArray_ - { - TT_UShort MarkCount; /* number of MarkRecord tables */ - TTO_MarkRecord* MarkRecord; /* array of MarkRecord tables */ - }; - - typedef struct TTO_MarkArray_ TTO_MarkArray; - - - /* LookupType 1 */ - - struct TTO_SinglePosFormat1_ - { - TTO_ValueRecord Value; /* ValueRecord for all covered - glyphs */ - }; - - typedef struct TTO_SinglePosFormat1_ TTO_SinglePosFormat1; - - - struct TTO_SinglePosFormat2_ - { - TT_UShort ValueCount; /* number of ValueRecord tables */ - TTO_ValueRecord* Value; /* array of ValueRecord tables */ - }; - - typedef struct TTO_SinglePosFormat2_ TTO_SinglePosFormat2; - - - struct TTO_SinglePos_ - { - TT_UShort PosFormat; /* 1 or 2 */ - TTO_Coverage Coverage; /* Coverage table */ - - TT_UShort ValueFormat; /* format of ValueRecord table */ - - union - { - TTO_SinglePosFormat1 spf1; - TTO_SinglePosFormat2 spf2; - } spf; - }; - - typedef struct TTO_SinglePos_ TTO_SinglePos; - - - /* LookupType 2 */ - - struct TTO_PairValueRecord_ - { - TT_UShort SecondGlyph; /* glyph ID for second glyph */ - TTO_ValueRecord Value1; /* pos. data for first glyph */ - TTO_ValueRecord Value2; /* pos. data for second glyph */ - }; - - typedef struct TTO_PairValueRecord_ TTO_PairValueRecord; - - - struct TTO_PairSet_ - { - TT_UShort PairValueCount; - /* number of PairValueRecord tables */ - TTO_PairValueRecord* PairValueRecord; - /* array of PairValueRecord tables */ - }; - - typedef struct TTO_PairSet_ TTO_PairSet; - - - struct TTO_PairPosFormat1_ - { - TT_UShort PairSetCount; /* number of PairSet tables */ - TTO_PairSet* PairSet; /* array of PairSet tables */ - }; - - typedef struct TTO_PairPosFormat1_ TTO_PairPosFormat1; - - - struct TTO_Class2Record_ - { - TTO_ValueRecord Value1; /* pos. data for first glyph */ - TTO_ValueRecord Value2; /* pos. data for second glyph */ - }; - - typedef struct TTO_Class2Record_ TTO_Class2Record; - - - struct TTO_Class1Record_ - { - TTO_Class2Record* Class2Record; /* array of Class2Record tables */ - }; - - typedef struct TTO_Class1Record_ TTO_Class1Record; - - - struct TTO_PairPosFormat2_ - { - TTO_ClassDefinition ClassDef1; /* class def. for first glyph */ - TTO_ClassDefinition ClassDef2; /* class def. for second glyph */ - TT_UShort Class1Count; /* number of classes in ClassDef1 - table */ - TT_UShort Class2Count; /* number of classes in ClassDef2 - table */ - TTO_Class1Record* Class1Record; /* array of Class1Record tables */ - }; - - typedef struct TTO_PairPosFormat2_ TTO_PairPosFormat2; - - - struct TTO_PairPos_ - { - TT_UShort PosFormat; /* 1 or 2 */ - TTO_Coverage Coverage; /* Coverage table */ - TT_UShort ValueFormat1; /* format of ValueRecord table - for first glyph */ - TT_UShort ValueFormat2; /* format of ValueRecord table - for second glyph */ - - union - { - TTO_PairPosFormat1 ppf1; - TTO_PairPosFormat2 ppf2; - } ppf; - }; - - typedef struct TTO_PairPos_ TTO_PairPos; - - - /* LookupType 3 */ - - struct TTO_EntryExitRecord_ - { - TTO_Anchor EntryAnchor; /* entry Anchor table */ - TTO_Anchor ExitAnchor; /* exit Anchor table */ - }; - - - typedef struct TTO_EntryExitRecord_ TTO_EntryExitRecord; - - struct TTO_CursivePos_ - { - TT_UShort PosFormat; /* always 1 */ - TTO_Coverage Coverage; /* Coverage table */ - TT_UShort EntryExitCount; - /* number of EntryExitRecord tables */ - TTO_EntryExitRecord* EntryExitRecord; - /* array of EntryExitRecord tables */ - }; - - typedef struct TTO_CursivePos_ TTO_CursivePos; - - - /* LookupType 4 */ - - struct TTO_BaseRecord_ - { - TTO_Anchor* BaseAnchor; /* array of base glyph anchor - tables */ - }; - - typedef struct TTO_BaseRecord_ TTO_BaseRecord; - - - struct TTO_BaseArray_ - { - TT_UShort BaseCount; /* number of BaseRecord tables */ - TTO_BaseRecord* BaseRecord; /* array of BaseRecord tables */ - }; - - typedef struct TTO_BaseArray_ TTO_BaseArray; - - - struct TTO_MarkBasePos_ - { - TT_UShort PosFormat; /* always 1 */ - TTO_Coverage MarkCoverage; /* mark glyph coverage table */ - TTO_Coverage BaseCoverage; /* base glyph coverage table */ - TT_UShort ClassCount; /* number of mark classes */ - TTO_MarkArray MarkArray; /* mark array table */ - TTO_BaseArray BaseArray; /* base array table */ - }; - - typedef struct TTO_MarkBasePos_ TTO_MarkBasePos; - - - /* LookupType 5 */ - - struct TTO_ComponentRecord_ - { - TTO_Anchor* LigatureAnchor; /* array of ligature glyph anchor - tables */ - }; - - typedef struct TTO_ComponentRecord_ TTO_ComponentRecord; - - - struct TTO_LigatureAttach_ - { - TT_UShort ComponentCount; - /* number of ComponentRecord tables */ - TTO_ComponentRecord* ComponentRecord; - /* array of ComponentRecord tables */ - }; - - typedef struct TTO_LigatureAttach_ TTO_LigatureAttach; - - - struct TTO_LigatureArray_ - { - TT_UShort LigatureCount; /* number of LigatureAttach tables */ - TTO_LigatureAttach* LigatureAttach; - /* array of LigatureAttach tables */ - }; - - typedef struct TTO_LigatureArray_ TTO_LigatureArray; - - - struct TTO_MarkLigPos_ - { - TT_UShort PosFormat; /* always 1 */ - TTO_Coverage MarkCoverage; /* mark glyph coverage table */ - TTO_Coverage LigatureCoverage; - /* ligature glyph coverage table */ - TT_UShort ClassCount; /* number of mark classes */ - TTO_MarkArray MarkArray; /* mark array table */ - TTO_LigatureArray LigatureArray; /* ligature array table */ - }; - - typedef struct TTO_MarkLigPos_ TTO_MarkLigPos; - - - /* LookupType 6 */ - - struct TTO_Mark2Record_ - { - TTO_Anchor* Mark2Anchor; /* array of mark glyph anchor - tables */ - }; - - typedef struct TTO_Mark2Record_ TTO_Mark2Record; - - - struct TTO_Mark2Array_ - { - TT_UShort Mark2Count; /* number of Mark2Record tables */ - TTO_Mark2Record* Mark2Record; /* array of Mark2Record tables */ - }; - - typedef struct TTO_Mark2Array_ TTO_Mark2Array; - - - struct TTO_MarkMarkPos_ - { - TT_UShort PosFormat; /* always 1 */ - TTO_Coverage Mark1Coverage; /* first mark glyph coverage table */ - TTO_Coverage Mark2Coverage; /* second mark glyph coverave table */ - TT_UShort ClassCount; /* number of combining mark classes */ - TTO_MarkArray Mark1Array; /* MarkArray table for first mark */ - TTO_Mark2Array Mark2Array; /* MarkArray table for second mark */ - }; - - typedef struct TTO_MarkMarkPos_ TTO_MarkMarkPos; - - - /* needed by both lookup type 7 and 8 */ - - struct TTO_PosLookupRecord_ - { - TT_UShort SequenceIndex; /* index into current - glyph sequence */ - TT_UShort LookupListIndex; /* Lookup to apply to that pos. */ - }; - - typedef struct TTO_PosLookupRecord_ TTO_PosLookupRecord; - - - /* LookupType 7 */ - - struct TTO_PosRule_ - { - TT_UShort GlyphCount; /* total number of input glyphs */ - TT_UShort PosCount; /* number of PosLookupRecord tables */ - TT_UShort* Input; /* array of input glyph IDs */ - TTO_PosLookupRecord* PosLookupRecord; - /* array of PosLookupRecord tables */ - }; - - typedef struct TTO_PosRule_ TTO_PosRule; - - - struct TTO_PosRuleSet_ - { - TT_UShort PosRuleCount; /* number of PosRule tables */ - TTO_PosRule* PosRule; /* array of PosRule tables */ - }; - - typedef struct TTO_PosRuleSet_ TTO_PosRuleSet; - - - struct TTO_ContextPosFormat1_ - { - TTO_Coverage Coverage; /* Coverage table */ - TT_UShort PosRuleSetCount; /* number of PosRuleSet tables */ - TTO_PosRuleSet* PosRuleSet; /* array of PosRuleSet tables */ - }; - - typedef struct TTO_ContextPosFormat1_ TTO_ContextPosFormat1; - - - struct TTO_PosClassRule_ - { - TT_UShort GlyphCount; /* total number of context classes */ - TT_UShort PosCount; /* number of PosLookupRecord tables */ - TT_UShort* Class; /* array of classes */ - TTO_PosLookupRecord* PosLookupRecord; - /* array of PosLookupRecord tables */ - }; - - typedef struct TTO_PosClassRule_ TTO_PosClassRule; - - - struct TTO_PosClassSet_ - { - TT_UShort PosClassRuleCount; - /* number of PosClassRule tables */ - TTO_PosClassRule* PosClassRule; /* array of PosClassRule tables */ - }; - - typedef struct TTO_PosClassSet_ TTO_PosClassSet; - - - /* The `MaxContextLength' field is not defined in the TTO specification - but simplifies the implementation of this format. It holds the - maximal context length used in the context rules. */ - - struct TTO_ContextPosFormat2_ - { - TT_UShort MaxContextLength; - /* maximal context length */ - TTO_Coverage Coverage; /* Coverage table */ - TTO_ClassDefinition ClassDef; /* ClassDef table */ - TT_UShort PosClassSetCount; - /* number of PosClassSet tables */ - TTO_PosClassSet* PosClassSet; /* array of PosClassSet tables */ - }; - - typedef struct TTO_ContextPosFormat2_ TTO_ContextPosFormat2; - - - struct TTO_ContextPosFormat3_ - { - TT_UShort GlyphCount; /* number of input glyphs */ - TT_UShort PosCount; /* number of PosLookupRecord tables */ - TTO_Coverage* Coverage; /* array of Coverage tables */ - TTO_PosLookupRecord* PosLookupRecord; - /* array of PosLookupRecord tables */ - }; - - typedef struct TTO_ContextPosFormat3_ TTO_ContextPosFormat3; - - - struct TTO_ContextPos_ - { - TT_UShort PosFormat; /* 1, 2, or 3 */ - - union - { - TTO_ContextPosFormat1 cpf1; - TTO_ContextPosFormat2 cpf2; - TTO_ContextPosFormat3 cpf3; - } cpf; - }; - - typedef struct TTO_ContextPos_ TTO_ContextPos; - - - /* LookupType 8 */ - - struct TTO_ChainPosRule_ - { - TT_UShort BacktrackGlyphCount; - /* total number of backtrack glyphs */ - TT_UShort* Backtrack; /* array of backtrack glyph IDs */ - TT_UShort InputGlyphCount; - /* total number of input glyphs */ - TT_UShort* Input; /* array of input glyph IDs */ - TT_UShort LookaheadGlyphCount; - /* total number of lookahead glyphs */ - TT_UShort* Lookahead; /* array of lookahead glyph IDs */ - TT_UShort PosCount; /* number of PosLookupRecords */ - TTO_PosLookupRecord* PosLookupRecord; - /* array of PosLookupRecords */ - }; - - typedef struct TTO_ChainPosRule_ TTO_ChainPosRule; - - - struct TTO_ChainPosRuleSet_ - { - TT_UShort ChainPosRuleCount; - /* number of ChainPosRule tables */ - TTO_ChainPosRule* ChainPosRule; /* array of ChainPosRule tables */ - }; - - typedef struct TTO_ChainPosRuleSet_ TTO_ChainPosRuleSet; - - - struct TTO_ChainContextPosFormat1_ - { - TTO_Coverage Coverage; /* Coverage table */ - TT_UShort ChainPosRuleSetCount; - /* number of ChainPosRuleSet tables */ - TTO_ChainPosRuleSet* ChainPosRuleSet; - /* array of ChainPosRuleSet tables */ - }; - - typedef struct TTO_ChainContextPosFormat1_ TTO_ChainContextPosFormat1; - - - struct TTO_ChainPosClassRule_ - { - TT_UShort BacktrackGlyphCount; - /* total number of backtrack - classes */ - TT_UShort* Backtrack; /* array of backtrack classes */ - TT_UShort InputGlyphCount; - /* total number of context classes */ - TT_UShort* Input; /* array of context classes */ - TT_UShort LookaheadGlyphCount; - /* total number of lookahead - classes */ - TT_UShort* Lookahead; /* array of lookahead classes */ - TT_UShort PosCount; /* number of PosLookupRecords */ - TTO_PosLookupRecord* PosLookupRecord; - /* array of substitution lookups */ - }; - - typedef struct TTO_ChainPosClassRule_ TTO_ChainPosClassRule; - - - struct TTO_ChainPosClassSet_ - { - TT_UShort ChainPosClassRuleCount; - /* number of ChainPosClassRule - tables */ - TTO_ChainPosClassRule* ChainPosClassRule; - /* array of ChainPosClassRule - tables */ - }; - - typedef struct TTO_ChainPosClassSet_ TTO_ChainPosClassSet; - - - /* The `MaxXXXLength' fields are not defined in the TTO specification - but simplifies the implementation of this format. It holds the - maximal context length used in the specific context rules. */ - - struct TTO_ChainContextPosFormat2_ - { - TTO_Coverage Coverage; /* Coverage table */ - - TT_UShort MaxBacktrackLength; - /* maximal backtrack length */ - TTO_ClassDefinition BacktrackClassDef; - /* BacktrackClassDef table */ - TT_UShort MaxInputLength; - /* maximal input length */ - TTO_ClassDefinition InputClassDef; - /* InputClassDef table */ - TT_UShort MaxLookaheadLength; - /* maximal lookahead length */ - TTO_ClassDefinition LookaheadClassDef; - /* LookaheadClassDef table */ - - TT_UShort ChainPosClassSetCount; - /* number of ChainPosClassSet - tables */ - TTO_ChainPosClassSet* ChainPosClassSet; - /* array of ChainPosClassSet - tables */ - }; - - typedef struct TTO_ChainContextPosFormat2_ TTO_ChainContextPosFormat2; - - - struct TTO_ChainContextPosFormat3_ - { - TT_UShort BacktrackGlyphCount; - /* number of backtrack glyphs */ - TTO_Coverage* BacktrackCoverage; - /* array of backtrack Coverage - tables */ - TT_UShort InputGlyphCount; - /* number of input glyphs */ - TTO_Coverage* InputCoverage; - /* array of input coverage - tables */ - TT_UShort LookaheadGlyphCount; - /* number of lookahead glyphs */ - TTO_Coverage* LookaheadCoverage; - /* array of lookahead coverage - tables */ - TT_UShort PosCount; /* number of PosLookupRecords */ - TTO_PosLookupRecord* PosLookupRecord; - /* array of substitution lookups */ - }; - - typedef struct TTO_ChainContextPosFormat3_ TTO_ChainContextPosFormat3; - - - struct TTO_ChainContextPos_ - { - TT_UShort PosFormat; /* 1, 2, or 3 */ - - union - { - TTO_ChainContextPosFormat1 ccpf1; - TTO_ChainContextPosFormat2 ccpf2; - TTO_ChainContextPosFormat3 ccpf3; - } ccpf; - }; - - typedef struct TTO_ChainContextPos_ TTO_ChainContextPos; - - - union TTO_GPOS_SubTable_ - { - TTO_SinglePos single; - TTO_PairPos pair; - TTO_CursivePos cursive; - TTO_MarkBasePos markbase; - TTO_MarkLigPos marklig; - TTO_MarkMarkPos markmark; - TTO_ContextPos context; - TTO_ChainContextPos chain; - }; - - typedef union TTO_GPOS_SubTable_ TTO_GPOS_SubTable; - - - /* This `string object' is much simpler compared to TTO_GSUB_String. - A call to TTO_GPOS_Apply_String() will allocate it. */ - - struct TTO_GPOS_Data_ - { - TT_Pos x_pos; - TT_Pos y_pos; - TT_Pos x_advance; - TT_Pos y_advance; - TT_UShort back; /* number of glyphs to go back - for drawing current glyph */ - TT_Bool new_advance; /* if set, the advance width values are - absolute, i.e., they won't be - added to the original glyph's value - but rather replace them. */ - }; - - typedef struct TTO_GPOS_Data_ TTO_GPOS_Data; - - - /* finally, the GPOS API */ - - FT_EXPORT_DEF( TT_Error ) - TT_Init_GPOS_Extension( TT_Engine engine ); - - FT_EXPORT_DEF( TT_Error ) - TT_Load_GPOS_Table( TT_Face face, - TTO_GPOSHeader* gpos, - TTO_GDEFHeader* gdef ); - - FT_EXPORT_DEF( TT_Error ) - TT_GPOS_Select_Script( TTO_GPOSHeader* gpos, - TT_ULong script_tag, - TT_UShort* script_index ); - - FT_EXPORT_DEF( TT_Error ) - TT_GPOS_Select_Language( TTO_GPOSHeader* gpos, - TT_ULong language_tag, - TT_UShort script_index, - TT_UShort* language_index, - TT_UShort* req_feature_index ); - - FT_EXPORT_DEF( TT_Error ) - TT_GPOS_Select_Feature( TTO_GPOSHeader* gpos, - TT_ULong feature_tag, - TT_UShort script_index, - TT_UShort language_index, - TT_UShort* feature_index ); - - FT_EXPORT_DEF( TT_Error ) - TT_GPOS_Query_Scripts( TTO_GPOSHeader* gpos, - TT_ULong** script_tag_list ); - - FT_EXPORT_DEF( TT_Error ) - TT_GPOS_Query_Languages( TTO_GPOSHeader* gpos, - TT_UShort script_index, - TT_ULong** language_tag_list ); - - FT_EXPORT_DEF( TT_Error ) - TT_GPOS_Query_Features( TTO_GPOSHeader* gpos, - TT_UShort script_index, - TT_UShort language_index, - TT_ULong** feature_tag_list ); - - FT_EXPORT_DEF( TT_Error ) - TT_GPOS_Add_Feature( TTO_GPOSHeader* gpos, - TT_UShort feature_index, - TT_UShort property ); - - FT_EXPORT_DEF( TT_Error ) - TT_GPOS_Clear_Features( TTO_GPOSHeader* gpos ); - - FT_EXPORT_DEF( TT_Error ) - TT_GPOS_Register_Glyph_Function( TTO_GPOSHeader* gpos, - TTO_GlyphFunction gfunc ); - - FT_EXPORT_DEF( TT_Error ) - TT_GPOS_Register_MM_Function( TTO_GPOSHeader* gpos, - TTO_MMFunction mmfunc, - void* data ); - - /* If `dvi' is TRUE, glyph contour points for anchor points and device - tables are ignored -- you will get device independent values. */ - - FT_EXPORT_DEF( TT_Error ) - TT_GPOS_Apply_String( TT_Instance instance, - TT_Glyph glyph, - TTO_GPOSHeader* gpos, - TT_UShort load_flags, - TTO_GSUB_String* in, - TTO_GPOS_Data** out, - TT_Bool dvi, - TT_Bool r2l ); - -#ifdef __cplusplus -} -#endif - -#endif /* FTXGPOS_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxgsub.c b/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxgsub.c deleted file mode 100644 index 5fce59e59ca..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxgsub.c +++ /dev/null @@ -1,4425 +0,0 @@ -/******************************************************************* - * - * ftxgsub.c - * - * TrueType Open GSUB table support. - * - * Copyright 1996-2001 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - ******************************************************************/ - -/* XXX There is *a lot* of duplicated code (cf. formats 5 and 6), but - I don't care currently. I believe that it would be possible to - save about 50% of TTO code by carefully designing the structures, - sharing as much as possible with extensive use of macros. This - is something for a volunteer :-) */ - -#include "tttypes.h" -#include "tttags.h" -#include "ttload.h" -#include "ttextend.h" -#include "ttmemory.h" -#include "ttfile.h" - -#include "ftxopen.h" -#include "ftxopenf.h" - - -#define ADD_String( in, num_in, out, num_out, glyph_data, component, ligID ) \ - ( ( error = TT_GSUB_Add_String( (in), (num_in), \ - (out), (num_out), \ - (glyph_data), (component), (ligID) \ - ) ) != TT_Err_Ok ) - - - static TT_Error Do_Glyph_Lookup( TTO_GSUBHeader* gsub, - UShort lookup_index, - TTO_GSUB_String* in, - TTO_GSUB_String* out, - UShort context_length, - int nesting_level ); - - - - /********************** - * Auxiliary functions - **********************/ - - - /* The following function copies `num_out' elements from `glyph_data' - to `out', advancing the array pointer in the `in' structure by - `num_in' elements, and in `out' by `num_out' elements. If the - string (resp. the properties) array in `out' is empty or too - small, it allocates resp. reallocates the string (and properties) - array. Finally, it sets the `length' field of `out' equal to - `pos' of the `out' structure. - - If `component' is 0xFFFF, the value `in->component[in->pos]' - will be copied `num_out' times, otherwise `component' itself will - be used to fill `out->component'. - - If `ligID' is 0xFFFF, the value `in->lig_IDs[in->pos]' will be - copied `num_out' times, otherwise `ligID' itself will be used to - fill `out->ligIDs'. - - The properties (if defined) for all replaced glyphs are taken - from the glyph at position `in->pos'. */ - - FT_EXPORT_FUNC( TT_Error ) - TT_GSUB_Add_String( TTO_GSUB_String* in, - UShort num_in, - TTO_GSUB_String* out, - UShort num_out, - UShort* glyph_data, - UShort component, - UShort ligID ) - { - TT_Error error; - TT_UInt i; - UShort p_in; - UShort* p_out; - - - /* sanity check */ - - if ( !in || !out || - in->length == 0 || in->pos >= in->length || - in->length < in->pos + num_in ) - return TT_Err_Invalid_Argument; - - if ( out->pos + num_out >= out->allocated ) - { - ULong size = out->pos + num_out + 256L; - - - /* The following works because all fields in `out' must be - initialized to zero (including the `string' field) for the - first use. */ - - if ( REALLOC_ARRAY( out->string, size, UShort ) ) - return error; - if ( REALLOC_ARRAY( out->components, size, UShort ) ) - return error; - if ( REALLOC_ARRAY( out->ligIDs, size, UShort ) ) - return error; - if ( in->properties ) - if ( REALLOC_ARRAY( out->properties, size, UShort ) ) - return error; - - out->allocated = size; - } - - if ( num_out ) - { - MEM_Copy( &out->string[out->pos], glyph_data, - num_out * sizeof ( UShort ) ); - - if ( component == 0xFFFF ) - component = in->components[in->pos]; - - p_out = out->components; - - for ( i = out->pos; i < out->pos + num_out; i++ ) - p_out[i] = component; - - p_out = out->ligIDs; - - if ( ligID == 0xFFFF ) - ligID = in->ligIDs[in->pos]; - - for ( i = out->pos; i < out->pos + num_out; i++ ) - p_out[i] = ligID; - - if ( in->properties ) - { - p_in = in->properties[in->pos]; - p_out = out->properties; - - for ( i = out->pos; i < out->pos + num_out; i++ ) - p_out[i] = p_in; - } - } - - in->pos += num_in; - out->pos += num_out; - - out->length = out->pos; - - return TT_Err_Ok; - } - - - - /********************** - * Extension Functions - **********************/ - - - static TT_Error - GSUB_Create( void* ext, - PFace face ) - { - DEFINE_LOAD_LOCALS( face->stream ); - - TTO_GSUBHeader* gsub = (TTO_GSUBHeader*)ext; - Long table; - - - /* by convention */ - - if ( !gsub ) - return TT_Err_Ok; - - /* a null offset indicates that there is no GSUB table */ - - gsub->offset = 0; - - /* we store the start offset and the size of the subtable */ - - table = TT_LookUp_Table( face, TTAG_GSUB ); - if ( table < 0 ) - return TT_Err_Ok; /* The table is optional */ - - if ( FILE_Seek( face->dirTables[table].Offset ) || - ACCESS_Frame( 4L ) ) - return error; - - gsub->offset = FILE_Pos() - 4L; /* undo ACCESS_Frame() */ - gsub->Version = GET_ULong(); - - FORGET_Frame(); - - gsub->loaded = FALSE; - - return TT_Err_Ok; - } - - - static TT_Error - GSUB_Destroy( void* ext, - PFace face ) - { - TTO_GSUBHeader* gsub = (TTO_GSUBHeader*)ext; - - - /* by convention */ - - if ( !gsub ) - return TT_Err_Ok; - - if ( gsub->loaded ) - { - Free_LookupList( &gsub->LookupList, GSUB ); - Free_FeatureList( &gsub->FeatureList ); - Free_ScriptList( &gsub->ScriptList ); - } - - return TT_Err_Ok; - } - - - FT_EXPORT_FUNC( TT_Error ) - TT_Init_GSUB_Extension( TT_Engine engine ) - { - PEngine_Instance _engine = HANDLE_Engine( engine ); - - - if ( !_engine ) - return TT_Err_Invalid_Engine; - - return TT_Register_Extension( _engine, - GSUB_ID, - sizeof ( TTO_GSUBHeader ), - GSUB_Create, - GSUB_Destroy ); - } - - - FT_EXPORT_FUNC( TT_Error ) - TT_Load_GSUB_Table( TT_Face face, - TTO_GSUBHeader* retptr, - TTO_GDEFHeader* gdef ) - { - ULong cur_offset, new_offset, base_offset; - - UShort i, num_lookups; - TTO_GSUBHeader* gsub; - TTO_GDEFHeader* gdef_reg; - TTO_Lookup* lo; - - PFace faze = HANDLE_Face( face ); - DEFINE_ALL_LOCALS; - - - if ( !retptr ) - return TT_Err_Invalid_Argument; - - if ( !faze ) - return TT_Err_Invalid_Face_Handle; - - error = TT_Extension_Get( faze, GSUB_ID, (void**)&gsub ); - if ( error ) - return error; - - if ( gsub->offset == 0 ) - return TT_Err_Table_Missing; /* no GSUB table; nothing to do */ - - /* now access stream */ - - if ( USE_Stream( faze->stream, stream ) ) - return error; - - base_offset = gsub->offset; - - /* skip version */ - - if ( FILE_Seek( base_offset + 4L ) || - ACCESS_Frame( 2L ) ) - return error; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_ScriptList( &gsub->ScriptList, - faze ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 2L ) ) - goto Fail3; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_FeatureList( &gsub->FeatureList, - faze ) ) != TT_Err_Ok ) - goto Fail3; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_LookupList( &gsub->LookupList, - faze, GSUB ) ) != TT_Err_Ok ) - goto Fail2; - - gsub->gdef = gdef; /* can be NULL */ - - /* We now check the LookupFlags for values larger than 0xFF to find - out whether we need to load the `MarkAttachClassDef' field of the - GDEF table -- this hack is necessary for OpenType 1.2 tables since - the version field of the GDEF table hasn't been incremented. - - For constructed GDEF tables, we only load it if - `MarkAttachClassDef_offset' is not zero (nevertheless, a build of - a constructed mark attach table is not supported currently). */ - - if ( gdef && - gdef->MarkAttachClassDef_offset && !gdef->MarkAttachClassDef.loaded ) - { - lo = gsub->LookupList.Lookup; - num_lookups = gsub->LookupList.LookupCount; - - for ( i = 0; i < num_lookups; i++ ) - { - if ( lo[i].LookupFlag & IGNORE_SPECIAL_MARKS ) - { - if ( FILE_Seek( gdef->MarkAttachClassDef_offset ) || - ACCESS_Frame( 2L ) ) - goto Fail1; - - new_offset = GET_UShort(); - - FORGET_Frame(); - - if ( !new_offset ) - return TTO_Err_Invalid_GDEF_SubTable; - - new_offset += gdef->offset; - - if ( FILE_Seek( new_offset ) || - ( error = Load_ClassDefinition( &gdef->MarkAttachClassDef, - 256, faze ) ) != TT_Err_Ok ) - goto Fail1; - - /* copy the class definition pointer into the extension structure */ - - error = TT_Extension_Get( faze, GDEF_ID, (void**)&gdef_reg ); - if ( error ) - return error; - - *gdef_reg = *gdef; - - break; - } - } - } - - gsub->loaded = TRUE; - *retptr = *gsub; - DONE_Stream( stream ); - - return TT_Err_Ok; - - Fail1: - Free_LookupList( &gsub->LookupList, GSUB ); - - Fail2: - Free_FeatureList( &gsub->FeatureList ); - - Fail3: - Free_ScriptList( &gsub->ScriptList ); - - /* release stream */ - - DONE_Stream( stream ); - - return error; - } - - - - /***************************** - * SubTable related functions - *****************************/ - - - /* LookupType 1 */ - - /* SingleSubstFormat1 */ - /* SingleSubstFormat2 */ - - TT_Error Load_SingleSubst( TTO_SingleSubst* ss, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - UShort* s; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 4L ) ) - return error; - - ss->SubstFormat = GET_UShort(); - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &ss->Coverage, input ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - - switch ( ss->SubstFormat ) - { - case 1: - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - ss->ssf.ssf1.DeltaGlyphID = GET_UShort(); - - FORGET_Frame(); - - break; - - case 2: - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - count = ss->ssf.ssf2.GlyphCount = GET_UShort(); - - FORGET_Frame(); - - ss->ssf.ssf2.Substitute = NULL; - - if ( ALLOC_ARRAY( ss->ssf.ssf2.Substitute, count, UShort ) ) - goto Fail2; - - s = ss->ssf.ssf2.Substitute; - - if ( ACCESS_Frame( count * 2L ) ) - goto Fail1; - - for ( n = 0; n < count; n++ ) - s[n] = GET_UShort(); - - FORGET_Frame(); - - break; - - default: - return TTO_Err_Invalid_GSUB_SubTable_Format; - } - - return TT_Err_Ok; - - Fail1: - FREE( s ); - - Fail2: - Free_Coverage( &ss->Coverage ); - return error; - } - - - void Free_SingleSubst( TTO_SingleSubst* ss ) - { - switch ( ss->SubstFormat ) - { - case 1: - break; - - case 2: - FREE( ss->ssf.ssf2.Substitute ); - break; - } - - Free_Coverage( &ss->Coverage ); - } - - - static TT_Error Lookup_SingleSubst( TTO_SingleSubst* ss, - TTO_GSUB_String* in, - TTO_GSUB_String* out, - UShort flags, - UShort context_length, - TTO_GDEFHeader* gdef ) - { - UShort index, value[1], property; - TT_Error error; - - - if ( context_length != 0xFFFF && context_length < 1 ) - return TTO_Err_Not_Covered; - - if ( CHECK_Property( gdef, in->string[in->pos], flags, &property ) ) - return error; - - error = Coverage_Index( &ss->Coverage, in->string[in->pos], &index ); - if ( error ) - return error; - - switch ( ss->SubstFormat ) - { - case 1: - value[0] = ( in->string[in->pos] + ss->ssf.ssf1.DeltaGlyphID ) & 0xFFFF; - if ( ADD_String( in, 1, out, 1, value, 0xFFFF, 0xFFFF ) ) - return error; - break; - - case 2: - if ( index >= ss->ssf.ssf2.GlyphCount ) - return TTO_Err_Invalid_GSUB_SubTable; - value[0] = ss->ssf.ssf2.Substitute[index]; - if ( ADD_String( in, 1, out, 1, value, 0xFFFF, 0xFFFF ) ) - return error; - break; - - default: - return TTO_Err_Invalid_GSUB_SubTable; - } - - if ( gdef && gdef->NewGlyphClasses ) - { - /* we inherit the old glyph class to the substituted glyph */ - - error = Add_Glyph_Property( gdef, value[0], property ); - if ( error && error != TTO_Err_Not_Covered ) - return error; - } - - return TT_Err_Ok; - } - - - /* LookupType 2 */ - - /* Sequence */ - - static TT_Error Load_Sequence( TTO_Sequence* s, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - UShort* sub; - - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = s->GlyphCount = GET_UShort(); - - FORGET_Frame(); - - s->Substitute = NULL; - - if ( count ) - { - if ( ALLOC_ARRAY( s->Substitute, count, UShort ) ) - return error; - - sub = s->Substitute; - - if ( ACCESS_Frame( count * 2L ) ) - { - FREE( sub ); - return error; - } - - for ( n = 0; n < count; n++ ) - sub[n] = GET_UShort(); - - FORGET_Frame(); - } - - return TT_Err_Ok; - } - - - static void Free_Sequence( TTO_Sequence* s ) - { - FREE( s->Substitute ); - } - - - /* MultipleSubstFormat1 */ - - TT_Error Load_MultipleSubst( TTO_MultipleSubst* ms, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_Sequence* s; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 4L ) ) - return error; - - ms->SubstFormat = GET_UShort(); /* should be 1 */ - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &ms->Coverage, input ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - count = ms->SequenceCount = GET_UShort(); - - FORGET_Frame(); - - ms->Sequence = NULL; - - if ( ALLOC_ARRAY( ms->Sequence, count, TTO_Sequence ) ) - goto Fail2; - - s = ms->Sequence; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail1; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Sequence( &s[n], input ) ) != TT_Err_Ok ) - goto Fail1; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail1: - for ( n = 0; n < count; n++ ) - Free_Sequence( &s[n] ); - - FREE( s ); - - Fail2: - Free_Coverage( &ms->Coverage ); - return error; - } - - - void Free_MultipleSubst( TTO_MultipleSubst* ms ) - { - UShort n, count; - - TTO_Sequence* s; - - - if ( ms->Sequence ) - { - count = ms->SequenceCount; - s = ms->Sequence; - - for ( n = 0; n < count; n++ ) - Free_Sequence( &s[n] ); - - FREE( s ); - } - - Free_Coverage( &ms->Coverage ); - } - - - static TT_Error Lookup_MultipleSubst( TTO_MultipleSubst* ms, - TTO_GSUB_String* in, - TTO_GSUB_String* out, - UShort flags, - UShort context_length, - TTO_GDEFHeader* gdef ) - { - TT_Error error; - UShort index, property, n, count; - UShort* s; - - - if ( context_length != 0xFFFF && context_length < 1 ) - return TTO_Err_Not_Covered; - - if ( CHECK_Property( gdef, in->string[in->pos], flags, &property ) ) - return error; - - error = Coverage_Index( &ms->Coverage, in->string[in->pos], &index ); - if ( error ) - return error; - - if ( index >= ms->SequenceCount ) - return TTO_Err_Invalid_GSUB_SubTable; - - count = ms->Sequence[index].GlyphCount; - s = ms->Sequence[index].Substitute; - - if ( ADD_String( in, 1, out, count, s, 0xFFFF, 0xFFFF ) ) - return error; - - if ( gdef && gdef->NewGlyphClasses ) - { - /* this is a guess only ... */ - - if ( property == TTO_LIGATURE ) - property = TTO_BASE_GLYPH; - - for ( n = 0; n < count; n++ ) - { - error = Add_Glyph_Property( gdef, s[n], property ); - if ( error && error != TTO_Err_Not_Covered ) - return error; - } - } - - return TT_Err_Ok; - } - - - /* LookupType 3 */ - - /* AlternateSet */ - - static TT_Error Load_AlternateSet( TTO_AlternateSet* as, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - UShort* a; - - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = as->GlyphCount = GET_UShort(); - - FORGET_Frame(); - - as->Alternate = NULL; - - if ( ALLOC_ARRAY( as->Alternate, count, UShort ) ) - return error; - - a = as->Alternate; - - if ( ACCESS_Frame( count * 2L ) ) - { - FREE( a ); - return error; - } - - for ( n = 0; n < count; n++ ) - a[n] = GET_UShort(); - - FORGET_Frame(); - - return TT_Err_Ok; - } - - - static void Free_AlternateSet( TTO_AlternateSet* as ) - { - FREE( as->Alternate ); - } - - - /* AlternateSubstFormat1 */ - - TT_Error Load_AlternateSubst( TTO_AlternateSubst* as, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_AlternateSet* aset; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 4L ) ) - return error; - - as->SubstFormat = GET_UShort(); /* should be 1 */ - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &as->Coverage, input ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - count = as->AlternateSetCount = GET_UShort(); - - FORGET_Frame(); - - as->AlternateSet = NULL; - - if ( ALLOC_ARRAY( as->AlternateSet, count, TTO_AlternateSet ) ) - goto Fail2; - - aset = as->AlternateSet; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail1; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_AlternateSet( &aset[n], input ) ) != TT_Err_Ok ) - goto Fail1; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail1: - for ( n = 0; n < count; n++ ) - Free_AlternateSet( &aset[n] ); - - FREE( aset ); - - Fail2: - Free_Coverage( &as->Coverage ); - return error; - } - - - void Free_AlternateSubst( TTO_AlternateSubst* as ) - { - UShort n, count; - - TTO_AlternateSet* aset; - - - if ( as->AlternateSet ) - { - count = as->AlternateSetCount; - aset = as->AlternateSet; - - for ( n = 0; n < count; n++ ) - Free_AlternateSet( &aset[n] ); - - FREE( aset ); - } - - Free_Coverage( &as->Coverage ); - } - - - static TT_Error Lookup_AlternateSubst( TTO_GSUBHeader* gsub, - TTO_AlternateSubst* as, - TTO_GSUB_String* in, - TTO_GSUB_String* out, - UShort flags, - UShort context_length, - TTO_GDEFHeader* gdef ) - { - TT_Error error; - UShort index, alt_index, property; - - TTO_AlternateSet aset; - - - if ( context_length != 0xFFFF && context_length < 1 ) - return TTO_Err_Not_Covered; - - if ( CHECK_Property( gdef, in->string[in->pos], flags, &property ) ) - return error; - - error = Coverage_Index( &as->Coverage, in->string[in->pos], &index ); - if ( error ) - return error; - - aset = as->AlternateSet[index]; - - /* we use a user-defined callback function to get the alternate index */ - - if ( gsub->altfunc ) - alt_index = (gsub->altfunc)( out->pos, in->string[in->pos], - aset.GlyphCount, aset.Alternate, - gsub->data ); - else - alt_index = 0; - - if ( ADD_String( in, 1, out, 1, &aset.Alternate[alt_index], - 0xFFFF, 0xFFFF ) ) - return error; - - if ( gdef && gdef->NewGlyphClasses ) - { - /* we inherit the old glyph class to the substituted glyph */ - - error = Add_Glyph_Property( gdef, aset.Alternate[alt_index], - property ); - if ( error && error != TTO_Err_Not_Covered ) - return error; - } - - return TT_Err_Ok; - } - - - /* LookupType 4 */ - - /* Ligature */ - - static TT_Error Load_Ligature( TTO_Ligature* l, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - UShort* c; - - - if ( ACCESS_Frame( 4L ) ) - return error; - - l->LigGlyph = GET_UShort(); - l->ComponentCount = GET_UShort(); - - FORGET_Frame(); - - l->Component = NULL; - - count = l->ComponentCount - 1; /* only ComponentCount - 1 elements */ - - if ( ALLOC_ARRAY( l->Component, count, UShort ) ) - return error; - - c = l->Component; - - if ( ACCESS_Frame( count * 2L ) ) - { - FREE( c ); - return error; - } - - for ( n = 0; n < count; n++ ) - c[n] = GET_UShort(); - - FORGET_Frame(); - - return TT_Err_Ok; - } - - - static void Free_Ligature( TTO_Ligature* l ) - { - FREE( l->Component ); - } - - - /* LigatureSet */ - - static TT_Error Load_LigatureSet( TTO_LigatureSet* ls, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_Ligature* l; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = ls->LigatureCount = GET_UShort(); - - FORGET_Frame(); - - ls->Ligature = NULL; - - if ( ALLOC_ARRAY( ls->Ligature, count, TTO_Ligature ) ) - return error; - - l = ls->Ligature; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Ligature( &l[n], input ) ) != TT_Err_Ok ) - goto Fail; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail: - for ( n = 0; n < count; n++ ) - Free_Ligature( &l[n] ); - - FREE( l ); - return error; - } - - - static void Free_LigatureSet( TTO_LigatureSet* ls ) - { - UShort n, count; - - TTO_Ligature* l; - - - if ( ls->Ligature ) - { - count = ls->LigatureCount; - l = ls->Ligature; - - for ( n = 0; n < count; n++ ) - Free_Ligature( &l[n] ); - - FREE( l ); - } - } - - - /* LigatureSubstFormat1 */ - - TT_Error Load_LigatureSubst( TTO_LigatureSubst* ls, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_LigatureSet* lset; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 4L ) ) - return error; - - ls->SubstFormat = GET_UShort(); /* should be 1 */ - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &ls->Coverage, input ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - count = ls->LigatureSetCount = GET_UShort(); - - FORGET_Frame(); - - ls->LigatureSet = NULL; - - if ( ALLOC_ARRAY( ls->LigatureSet, count, TTO_LigatureSet ) ) - goto Fail2; - - lset = ls->LigatureSet; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail1; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_LigatureSet( &lset[n], input ) ) != TT_Err_Ok ) - goto Fail1; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail1: - for ( n = 0; n < count; n++ ) - Free_LigatureSet( &lset[n] ); - - FREE( lset ); - - Fail2: - Free_Coverage( &ls->Coverage ); - return error; - } - - - void Free_LigatureSubst( TTO_LigatureSubst* ls ) - { - UShort n, count; - - TTO_LigatureSet* lset; - - - if ( ls->LigatureSet ) - { - count = ls->LigatureSetCount; - lset = ls->LigatureSet; - - for ( n = 0; n < count; n++ ) - Free_LigatureSet( &lset[n] ); - - FREE( lset ); - } - - Free_Coverage( &ls->Coverage ); - } - - - static TT_Error Lookup_LigatureSubst( TTO_LigatureSubst* ls, - TTO_GSUB_String* in, - TTO_GSUB_String* out, - UShort flags, - UShort context_length, - TTO_GDEFHeader* gdef ) - { - UShort index, property; - TT_Error error; - UShort numlig, i, j, is_mark, first_is_mark = FALSE; - UShort first_ligID, first_comp; - UShort *s_in, *lig_in, *comp_in; - UShort* c; - - TTO_Ligature* lig; - - - if ( CHECK_Property( gdef, in->string[in->pos], flags, &property ) ) - return error; - - if ( property == TTO_MARK || property & IGNORE_SPECIAL_MARKS ) - first_is_mark = TRUE; - - error = Coverage_Index( &ls->Coverage, in->string[in->pos], &index ); - if ( error ) - return error; - - if ( index >= ls->LigatureSetCount ) - return TTO_Err_Invalid_GSUB_SubTable; - - lig = ls->LigatureSet[index].Ligature; - - for ( numlig = ls->LigatureSet[index].LigatureCount; - numlig; - numlig--, lig++ ) - { - if ( in->pos + lig->ComponentCount > in->length ) - continue; /* Not enough glyphs in input */ - - s_in = &in->string[in->pos]; - lig_in = &in->ligIDs[in->pos]; - comp_in = &in->components[in->pos]; - first_ligID = *lig_in; - first_comp = *comp_in; - c = lig->Component; - - is_mark = first_is_mark; - - if ( context_length != 0xFFFF && context_length < lig->ComponentCount ) - break; - - for ( i = 1, j = 1; i < lig->ComponentCount; i++, j++ ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - return error; - - if ( in->pos + j < in->length ) - j++; - else - break; - } - - /* don't apply a ligature lookup to glyphs with different - ligature IDs. Example: - - ' - ^' ' ^ - f ^ l ' -> fl ^ ' -> fl but not fl ^ -> fl */ - - if ( first_ligID != lig_in[j] ) - break; - - /* don't apply a ligature lookup to glyphs with different - component values. Example: - - ' - ^' ' ^ - f ^ f ' l -> ffl ^ ' -> ffl but not ffl ^ -> ffl */ - - if ( first_comp != comp_in[j] ) - break; - - if ( !( property == TTO_MARK || property & IGNORE_SPECIAL_MARKS ) ) - is_mark = FALSE; - - if ( s_in[j] != c[i - 1] ) - break; - } - - if ( i == lig->ComponentCount ) - { - if ( gdef && gdef->NewGlyphClasses ) - { - /* this is just a guess ... */ - - error = Add_Glyph_Property( gdef, lig->LigGlyph, - is_mark ? TTO_MARK : TTO_LIGATURE ); - if ( error && error != TTO_Err_Not_Covered ) - return error; - } - - if ( i == j ) - { - /* We don't use a new ligature ID if there are no skipped - glyphs and the ligature already has an ID. */ - - if ( in->ligIDs[in->pos] ) - { - if ( ADD_String( in, i, out, 1, &lig->LigGlyph, - 0xFFFF, 0xFFFF ) ) - return error; - } - else - { - if ( ADD_String( in, i, out, 1, &lig->LigGlyph, - 0xFFFF, in->max_ligID ) ) - return error; - - (in->max_ligID)++; - } - } - else - { - if ( ADD_String( in, 1, out, 1, &lig->LigGlyph, - 0xFFFF, in->max_ligID ) ) - return error; - - /* Now we must do a second loop to copy the skipped glyphs to - `out' and assign component values to it. We start with the - glyph after the first component. Glyphs between component - i and i+1 belong to component i. Together with the ligID - value it is later possible to check whether a specific - component value really belongs to a given ligature. */ - - for ( i = 0; i < lig->ComponentCount - 1; i++ ) - { - while ( CHECK_Property( gdef, in->string[in->pos], - flags, &property ) ) - if ( ADD_String( in, 1, out, 1, &in->string[in->pos], - i, in->max_ligID ) ) - return error; - - (in->pos)++; - } - - (in->max_ligID)++; - } - - return TT_Err_Ok; - } - } - - return TTO_Err_Not_Covered; - } - - - /* Do the actual substitution for a context substitution (either format - 5 or 6). This is only called after we've determined that the input - matches the subrule. */ - - static TT_Error Do_ContextSubst( TTO_GSUBHeader* gsub, - UShort GlyphCount, - UShort SubstCount, - TTO_SubstLookupRecord* subst, - TTO_GSUB_String* in, - TTO_GSUB_String* out, - int nesting_level ) - { - TT_Error error; - UShort i, old_pos; - - - i = 0; - - while ( i < GlyphCount ) - { - if ( SubstCount && i == subst->SequenceIndex ) - { - old_pos = in->pos; - - /* Do a substitution */ - - error = Do_Glyph_Lookup( gsub, subst->LookupListIndex, in, out, - GlyphCount, nesting_level ); - - subst++; - SubstCount--; - i += in->pos - old_pos; - - if ( error == TTO_Err_Not_Covered ) - { - /* XXX "can't happen" -- but don't count on it */ - - if ( ADD_String( in, 1, out, 1, &in->string[in->pos], - 0xFFFF, 0xFFFF ) ) - return error; - i++; - } - else if ( error ) - return error; - } - else - { - /* No substitution for this index */ - - if ( ADD_String( in, 1, out, 1, &in->string[in->pos], - 0xFFFF, 0xFFFF ) ) - return error; - i++; - } - } - - return TT_Err_Ok; - } - - - /* LookupType 5 */ - - /* SubRule */ - - static TT_Error Load_SubRule( TTO_SubRule* sr, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - UShort* i; - - TTO_SubstLookupRecord* slr; - - - if ( ACCESS_Frame( 4L ) ) - return error; - - sr->GlyphCount = GET_UShort(); - sr->SubstCount = GET_UShort(); - - FORGET_Frame(); - - sr->Input = NULL; - - count = sr->GlyphCount - 1; /* only GlyphCount - 1 elements */ - - if ( ALLOC_ARRAY( sr->Input, count, UShort ) ) - return error; - - i = sr->Input; - - if ( ACCESS_Frame( count * 2L ) ) - goto Fail2; - - for ( n = 0; n < count; n++ ) - i[n] = GET_UShort(); - - FORGET_Frame(); - - sr->SubstLookupRecord = NULL; - - count = sr->SubstCount; - - if ( ALLOC_ARRAY( sr->SubstLookupRecord, count, TTO_SubstLookupRecord ) ) - goto Fail2; - - slr = sr->SubstLookupRecord; - - if ( ACCESS_Frame( count * 4L ) ) - goto Fail1; - - for ( n = 0; n < count; n++ ) - { - slr[n].SequenceIndex = GET_UShort(); - slr[n].LookupListIndex = GET_UShort(); - } - - FORGET_Frame(); - - return TT_Err_Ok; - - Fail1: - FREE( slr ); - - Fail2: - FREE( i ); - return error; - } - - - static void Free_SubRule( TTO_SubRule* sr ) - { - FREE( sr->SubstLookupRecord ); - FREE( sr->Input ); - } - - - /* SubRuleSet */ - - static TT_Error Load_SubRuleSet( TTO_SubRuleSet* srs, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_SubRule* sr; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = srs->SubRuleCount = GET_UShort(); - - FORGET_Frame(); - - srs->SubRule = NULL; - - if ( ALLOC_ARRAY( srs->SubRule, count, TTO_SubRule ) ) - return error; - - sr = srs->SubRule; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_SubRule( &sr[n], input ) ) != TT_Err_Ok ) - goto Fail; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail: - for ( n = 0; n < count; n++ ) - Free_SubRule( &sr[n] ); - - FREE( sr ); - return error; - } - - - static void Free_SubRuleSet( TTO_SubRuleSet* srs ) - { - UShort n, count; - - TTO_SubRule* sr; - - - if ( srs->SubRule ) - { - count = srs->SubRuleCount; - sr = srs->SubRule; - - for ( n = 0; n < count; n++ ) - Free_SubRule( &sr[n] ); - - FREE( sr ); - } - } - - - /* ContextSubstFormat1 */ - - static TT_Error Load_ContextSubst1( TTO_ContextSubstFormat1* csf1, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_SubRuleSet* srs; - - - base_offset = FILE_Pos() - 2L; - - if ( ACCESS_Frame( 2L ) ) - return error; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &csf1->Coverage, input ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - count = csf1->SubRuleSetCount = GET_UShort(); - - FORGET_Frame(); - - csf1->SubRuleSet = NULL; - - if ( ALLOC_ARRAY( csf1->SubRuleSet, count, TTO_SubRuleSet ) ) - goto Fail2; - - srs = csf1->SubRuleSet; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail1; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_SubRuleSet( &srs[n], input ) ) != TT_Err_Ok ) - goto Fail1; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail1: - for ( n = 0; n < count; n++ ) - Free_SubRuleSet( &srs[n] ); - - FREE( srs ); - - Fail2: - Free_Coverage( &csf1->Coverage ); - return error; - } - - - static void Free_Context1( TTO_ContextSubstFormat1* csf1 ) - { - UShort n, count; - - TTO_SubRuleSet* srs; - - - if ( csf1->SubRuleSet ) - { - count = csf1->SubRuleSetCount; - srs = csf1->SubRuleSet; - - for ( n = 0; n < count; n++ ) - Free_SubRuleSet( &srs[n] ); - - FREE( srs ); - } - - Free_Coverage( &csf1->Coverage ); - } - - - /* SubClassRule */ - - static TT_Error Load_SubClassRule( TTO_ContextSubstFormat2* csf2, - TTO_SubClassRule* scr, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - - UShort* c; - TTO_SubstLookupRecord* slr; - Bool* d; - - - if ( ACCESS_Frame( 4L ) ) - return error; - - scr->GlyphCount = GET_UShort(); - scr->SubstCount = GET_UShort(); - - if ( scr->GlyphCount > csf2->MaxContextLength ) - csf2->MaxContextLength = scr->GlyphCount; - - FORGET_Frame(); - - scr->Class = NULL; - - count = scr->GlyphCount - 1; /* only GlyphCount - 1 elements */ - - if ( ALLOC_ARRAY( scr->Class, count, UShort ) ) - return error; - - c = scr->Class; - d = csf2->ClassDef.Defined; - - if ( ACCESS_Frame( count * 2L ) ) - goto Fail2; - - for ( n = 0; n < count; n++ ) - { - c[n] = GET_UShort(); - - /* We check whether the specific class is used at all. If not, - class 0 is used instead. */ - - if ( !d[c[n]] ) - c[n] = 0; - } - - FORGET_Frame(); - - scr->SubstLookupRecord = NULL; - - count = scr->SubstCount; - - if ( ALLOC_ARRAY( scr->SubstLookupRecord, count, TTO_SubstLookupRecord ) ) - goto Fail2; - - slr = scr->SubstLookupRecord; - - if ( ACCESS_Frame( count * 4L ) ) - goto Fail1; - - for ( n = 0; n < count; n++ ) - { - slr[n].SequenceIndex = GET_UShort(); - slr[n].LookupListIndex = GET_UShort(); - } - - FORGET_Frame(); - - return TT_Err_Ok; - - Fail1: - FREE( slr ); - - Fail2: - FREE( c ); - return error; - } - - - static void Free_SubClassRule( TTO_SubClassRule* scr ) - { - FREE( scr->SubstLookupRecord ); - FREE( scr->Class ); - } - - - /* SubClassSet */ - - static TT_Error Load_SubClassSet( TTO_ContextSubstFormat2* csf2, - TTO_SubClassSet* scs, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_SubClassRule* scr; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = scs->SubClassRuleCount = GET_UShort(); - - FORGET_Frame(); - - scs->SubClassRule = NULL; - - if ( ALLOC_ARRAY( scs->SubClassRule, count, TTO_SubClassRule ) ) - return error; - - scr = scs->SubClassRule; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_SubClassRule( csf2, &scr[n], - input ) ) != TT_Err_Ok ) - goto Fail; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail: - for ( n = 0; n < count; n++ ) - Free_SubClassRule( &scr[n] ); - - FREE( scr ); - return error; - } - - - static void Free_SubClassSet( TTO_SubClassSet* scs ) - { - UShort n, count; - - TTO_SubClassRule* scr; - - - if ( scs->SubClassRule ) - { - count = scs->SubClassRuleCount; - scr = scs->SubClassRule; - - for ( n = 0; n < count; n++ ) - Free_SubClassRule( &scr[n] ); - - FREE( scr ); - } - } - - - /* ContextSubstFormat2 */ - - static TT_Error Load_ContextSubst2( TTO_ContextSubstFormat2* csf2, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_SubClassSet* scs; - - - base_offset = FILE_Pos() - 2; - - if ( ACCESS_Frame( 2L ) ) - return error; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &csf2->Coverage, input ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 4L ) ) - goto Fail3; - - new_offset = GET_UShort() + base_offset; - - /* `SubClassSetCount' is the upper limit for class values, thus we - read it now to make an additional safety check. */ - - count = csf2->SubClassSetCount = GET_UShort(); - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_ClassDefinition( &csf2->ClassDef, count, - input ) ) != TT_Err_Ok ) - goto Fail3; - (void)FILE_Seek( cur_offset ); - - csf2->SubClassSet = NULL; - csf2->MaxContextLength = 0; - - if ( ALLOC_ARRAY( csf2->SubClassSet, count, TTO_SubClassSet ) ) - goto Fail2; - - scs = csf2->SubClassSet; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail1; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - if ( new_offset != base_offset ) /* not a NULL offset */ - { - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_SubClassSet( csf2, &scs[n], - input ) ) != TT_Err_Ok ) - goto Fail1; - (void)FILE_Seek( cur_offset ); - } - else - { - /* we create a SubClassSet table with no entries */ - - csf2->SubClassSet[n].SubClassRuleCount = 0; - csf2->SubClassSet[n].SubClassRule = NULL; - } - } - - return TT_Err_Ok; - - Fail1: - for ( n = 0; n < count; n++ ) - Free_SubClassSet( &scs[n] ); - - FREE( scs ); - - Fail2: - Free_ClassDefinition( &csf2->ClassDef ); - - Fail3: - Free_Coverage( &csf2->Coverage ); - return error; - } - - - static void Free_Context2( TTO_ContextSubstFormat2* csf2 ) - { - UShort n, count; - - TTO_SubClassSet* scs; - - - if ( csf2->SubClassSet ) - { - count = csf2->SubClassSetCount; - scs = csf2->SubClassSet; - - for ( n = 0; n < count; n++ ) - Free_SubClassSet( &scs[n] ); - - FREE( scs ); - } - - Free_ClassDefinition( &csf2->ClassDef ); - Free_Coverage( &csf2->Coverage ); - } - - - /* ContextSubstFormat3 */ - - static TT_Error Load_ContextSubst3( TTO_ContextSubstFormat3* csf3, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_Coverage* c; - TTO_SubstLookupRecord* slr; - - - base_offset = FILE_Pos() - 2L; - - if ( ACCESS_Frame( 4L ) ) - return error; - - csf3->GlyphCount = GET_UShort(); - csf3->SubstCount = GET_UShort(); - - FORGET_Frame(); - - csf3->Coverage = NULL; - - count = csf3->GlyphCount; - - if ( ALLOC_ARRAY( csf3->Coverage, count, TTO_Coverage ) ) - return error; - - c = csf3->Coverage; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &c[n], input ) ) != TT_Err_Ok ) - goto Fail2; - (void)FILE_Seek( cur_offset ); - } - - csf3->SubstLookupRecord = NULL; - - count = csf3->SubstCount; - - if ( ALLOC_ARRAY( csf3->SubstLookupRecord, count, - TTO_SubstLookupRecord ) ) - goto Fail2; - - slr = csf3->SubstLookupRecord; - - if ( ACCESS_Frame( count * 4L ) ) - goto Fail1; - - for ( n = 0; n < count; n++ ) - { - slr[n].SequenceIndex = GET_UShort(); - slr[n].LookupListIndex = GET_UShort(); - } - - FORGET_Frame(); - - return TT_Err_Ok; - - Fail1: - FREE( slr ); - - Fail2: - for ( n = 0; n < count; n++ ) - Free_Coverage( &c[n] ); - - FREE( c ); - return error; - } - - - static void Free_Context3( TTO_ContextSubstFormat3* csf3 ) - { - UShort n, count; - - TTO_Coverage* c; - - - FREE( csf3->SubstLookupRecord ); - - if ( csf3->Coverage ) - { - count = csf3->GlyphCount; - c = csf3->Coverage; - - for ( n = 0; n < count; n++ ) - Free_Coverage( &c[n] ); - - FREE( c ); - } - } - - - /* ContextSubst */ - - TT_Error Load_ContextSubst( TTO_ContextSubst* cs, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - - if ( ACCESS_Frame( 2L ) ) - return error; - - cs->SubstFormat = GET_UShort(); - - FORGET_Frame(); - - switch ( cs->SubstFormat ) - { - case 1: - return Load_ContextSubst1( &cs->csf.csf1, input ); - - case 2: - return Load_ContextSubst2( &cs->csf.csf2, input ); - - case 3: - return Load_ContextSubst3( &cs->csf.csf3, input ); - - default: - return TTO_Err_Invalid_GSUB_SubTable_Format; - } - - return TT_Err_Ok; /* never reached */ - } - - - void Free_ContextSubst( TTO_ContextSubst* cs ) - { - switch ( cs->SubstFormat ) - { - case 1: - Free_Context1( &cs->csf.csf1 ); - break; - - case 2: - Free_Context2( &cs->csf.csf2 ); - break; - - case 3: - Free_Context3( &cs->csf.csf3 ); - break; - } - } - - - static TT_Error Lookup_ContextSubst1( - TTO_GSUBHeader* gsub, - TTO_ContextSubstFormat1* csf1, - TTO_GSUB_String* in, - TTO_GSUB_String* out, - UShort flags, - UShort context_length, - int nesting_level ) - { - UShort index, property; - UShort i, j, k, numsr; - TT_Error error; - UShort* s_in; - - TTO_SubRule* sr; - TTO_GDEFHeader* gdef; - - - gdef = gsub->gdef; - - if ( CHECK_Property( gdef, in->string[in->pos], flags, &property ) ) - return error; - - error = Coverage_Index( &csf1->Coverage, in->string[in->pos], &index ); - if ( error ) - return error; - - sr = csf1->SubRuleSet[index].SubRule; - numsr = csf1->SubRuleSet[index].SubRuleCount; - - for ( k = 0; k < numsr; k++ ) - { - if ( context_length != 0xFFFF && context_length < sr[k].GlyphCount ) - continue; - - if ( in->pos + sr[k].GlyphCount > in->length ) - continue; /* context is too long */ - - s_in = &in->string[in->pos]; - - for ( i = 1, j = 1; i < sr[k].GlyphCount; i++, j++ ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - return error; - - if ( in->pos + j < in->length ) - j++; - else - break; - } - - if ( s_in[j] != sr[k].Input[i - 1] ) - break; - } - - if ( i == sr[k].GlyphCount ) - return Do_ContextSubst( gsub, sr[k].GlyphCount, - sr[k].SubstCount, sr[k].SubstLookupRecord, - in, out, - nesting_level ); - } - - return TTO_Err_Not_Covered; - } - - - static TT_Error Lookup_ContextSubst2( - TTO_GSUBHeader* gsub, - TTO_ContextSubstFormat2* csf2, - TTO_GSUB_String* in, - TTO_GSUB_String* out, - UShort flags, - UShort context_length, - int nesting_level ) - { - UShort index, property; - TT_Error error; - UShort i, j, k, known_classes; - - UShort* classes; - UShort* s_in; - UShort* cl; - - TTO_SubClassSet* scs; - TTO_SubClassRule* sr; - TTO_GDEFHeader* gdef; - - - gdef = gsub->gdef; - - if ( ALLOC_ARRAY( classes, csf2->MaxContextLength, UShort ) ) - return error; - - if ( CHECK_Property( gdef, in->string[in->pos], flags, &property ) ) - return error; - - /* Note: The coverage table in format 2 doesn't give an index into - anything. It just lets us know whether or not we need to - do any lookup at all. */ - - error = Coverage_Index( &csf2->Coverage, in->string[in->pos], &index ); - if ( error ) - goto End; - - error = Get_Class( &csf2->ClassDef, in->string[in->pos], - &classes[0], NULL ); - if ( error && error != TTO_Err_Not_Covered ) - goto End; - known_classes = 0; - - scs = &csf2->SubClassSet[classes[0]]; - if ( !scs ) - { - error = TTO_Err_Invalid_GSUB_SubTable; - goto End; - } - - for ( k = 0; k < scs->SubClassRuleCount; k++ ) - { - sr = &scs->SubClassRule[k]; - - if ( context_length != 0xFFFF && context_length < sr->GlyphCount ) - continue; - - if ( in->pos + sr->GlyphCount > in->length ) - continue; /* context is too long */ - - s_in = &in->string[in->pos]; - cl = sr->Class; - - /* Start at 1 because [0] is implied */ - - for ( i = 1, j = 1; i < sr->GlyphCount; i++, j++ ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - return error; - - if ( in->pos + j < in->length ) - j++; - else - break; - } - - if ( i > known_classes ) - { - /* Keeps us from having to do this for each rule */ - - error = Get_Class( &csf2->ClassDef, s_in[j], &classes[i], NULL ); - if ( error && error != TTO_Err_Not_Covered ) - return error; - known_classes = i; - } - - if ( cl[i - 1] != classes[i] ) - break; - } - - if ( i == sr->GlyphCount ) - { - error = Do_ContextSubst( gsub, sr->GlyphCount, - sr->SubstCount, sr->SubstLookupRecord, - in, out, - nesting_level ); - goto End; - } - } - - error = TTO_Err_Not_Covered; - - End: - FREE( classes ); - return error; - } - - - static TT_Error Lookup_ContextSubst3( - TTO_GSUBHeader* gsub, - TTO_ContextSubstFormat3* csf3, - TTO_GSUB_String* in, - TTO_GSUB_String* out, - UShort flags, - UShort context_length, - int nesting_level ) - { - TT_Error error; - UShort index, i, j, property; - UShort* s_in; - - TTO_Coverage* c; - TTO_GDEFHeader* gdef; - - - gdef = gsub->gdef; - - if ( CHECK_Property( gdef, in->string[in->pos], flags, &property ) ) - return error; - - if ( context_length != 0xFFFF && context_length < csf3->GlyphCount ) - return TTO_Err_Not_Covered; - - if ( in->pos + csf3->GlyphCount > in->length ) - return TTO_Err_Not_Covered; /* context is too long */ - - s_in = &in->string[in->pos]; - c = csf3->Coverage; - - for ( i = 1, j = 1; i < csf3->GlyphCount; i++, j++ ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - return error; - - if ( in->pos + j < in->length ) - j++; - else - return TTO_Err_Not_Covered; - } - - error = Coverage_Index( &c[i], s_in[j], &index ); - if ( error ) - return error; - } - - return Do_ContextSubst( gsub, csf3->GlyphCount, - csf3->SubstCount, csf3->SubstLookupRecord, - in, out, - nesting_level ); - } - - - static TT_Error Lookup_ContextSubst( TTO_GSUBHeader* gsub, - TTO_ContextSubst* cs, - TTO_GSUB_String* in, - TTO_GSUB_String* out, - UShort flags, - UShort context_length, - int nesting_level ) - { - switch ( cs->SubstFormat ) - { - case 1: - return Lookup_ContextSubst1( gsub, &cs->csf.csf1, in, out, - flags, context_length, nesting_level ); - - case 2: - return Lookup_ContextSubst2( gsub, &cs->csf.csf2, in, out, - flags, context_length, nesting_level ); - - case 3: - return Lookup_ContextSubst3( gsub, &cs->csf.csf3, in, out, - flags, context_length, nesting_level ); - - default: - return TTO_Err_Invalid_GSUB_SubTable_Format; - } - - return TT_Err_Ok; /* never reached */ - } - - - /* LookupType 6 */ - - /* ChainSubRule */ - - static TT_Error Load_ChainSubRule( TTO_ChainSubRule* csr, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - UShort* b; - UShort* i; - UShort* l; - - TTO_SubstLookupRecord* slr; - - - if ( ACCESS_Frame( 2L ) ) - return error; - - csr->BacktrackGlyphCount = GET_UShort(); - - FORGET_Frame(); - - csr->Backtrack = NULL; - - count = csr->BacktrackGlyphCount; - - if ( ALLOC_ARRAY( csr->Backtrack, count, UShort ) ) - return error; - - b = csr->Backtrack; - - if ( ACCESS_Frame( count * 2L ) ) - goto Fail4; - - for ( n = 0; n < count; n++ ) - b[n] = GET_UShort(); - - FORGET_Frame(); - - if ( ACCESS_Frame( 2L ) ) - goto Fail4; - - csr->InputGlyphCount = GET_UShort(); - - FORGET_Frame(); - - csr->Input = NULL; - - count = csr->InputGlyphCount - 1; /* only InputGlyphCount - 1 elements */ - - if ( ALLOC_ARRAY( csr->Input, count, UShort ) ) - goto Fail4; - - i = csr->Input; - - if ( ACCESS_Frame( count * 2L ) ) - goto Fail3; - - for ( n = 0; n < count; n++ ) - i[n] = GET_UShort(); - - FORGET_Frame(); - - if ( ACCESS_Frame( 2L ) ) - goto Fail3; - - csr->LookaheadGlyphCount = GET_UShort(); - - FORGET_Frame(); - - csr->Lookahead = NULL; - - count = csr->LookaheadGlyphCount; - - if ( ALLOC_ARRAY( csr->Lookahead, count, UShort ) ) - goto Fail3; - - l = csr->Lookahead; - - if ( ACCESS_Frame( count * 2L ) ) - goto Fail2; - - for ( n = 0; n < count; n++ ) - l[n] = GET_UShort(); - - FORGET_Frame(); - - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - csr->SubstCount = GET_UShort(); - - FORGET_Frame(); - - csr->SubstLookupRecord = NULL; - - count = csr->SubstCount; - - if ( ALLOC_ARRAY( csr->SubstLookupRecord, count, TTO_SubstLookupRecord ) ) - goto Fail2; - - slr = csr->SubstLookupRecord; - - if ( ACCESS_Frame( count * 4L ) ) - goto Fail1; - - for ( n = 0; n < count; n++ ) - { - slr[n].SequenceIndex = GET_UShort(); - slr[n].LookupListIndex = GET_UShort(); - } - - FORGET_Frame(); - - return TT_Err_Ok; - - Fail1: - FREE( slr ); - - Fail2: - FREE( l ); - - Fail3: - FREE( i ); - - Fail4: - FREE( b ); - return error; - } - - - static void Free_ChainSubRule( TTO_ChainSubRule* csr ) - { - FREE( csr->SubstLookupRecord ); - FREE( csr->Lookahead ); - FREE( csr->Input ); - FREE( csr->Backtrack ); - } - - - /* ChainSubRuleSet */ - - static TT_Error Load_ChainSubRuleSet( TTO_ChainSubRuleSet* csrs, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_ChainSubRule* csr; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = csrs->ChainSubRuleCount = GET_UShort(); - - FORGET_Frame(); - - csrs->ChainSubRule = NULL; - - if ( ALLOC_ARRAY( csrs->ChainSubRule, count, TTO_ChainSubRule ) ) - return error; - - csr = csrs->ChainSubRule; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_ChainSubRule( &csr[n], input ) ) != TT_Err_Ok ) - goto Fail; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail: - for ( n = 0; n < count; n++ ) - Free_ChainSubRule( &csr[n] ); - - FREE( csr ); - return error; - } - - - static void Free_ChainSubRuleSet( TTO_ChainSubRuleSet* csrs ) - { - UShort n, count; - - TTO_ChainSubRule* csr; - - - if ( csrs->ChainSubRule ) - { - count = csrs->ChainSubRuleCount; - csr = csrs->ChainSubRule; - - for ( n = 0; n < count; n++ ) - Free_ChainSubRule( &csr[n] ); - - FREE( csr ); - } - } - - - /* ChainContextSubstFormat1 */ - - static TT_Error Load_ChainContextSubst1( - TTO_ChainContextSubstFormat1* ccsf1, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_ChainSubRuleSet* csrs; - - - base_offset = FILE_Pos() - 2L; - - if ( ACCESS_Frame( 2L ) ) - return error; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &ccsf1->Coverage, input ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - count = ccsf1->ChainSubRuleSetCount = GET_UShort(); - - FORGET_Frame(); - - ccsf1->ChainSubRuleSet = NULL; - - if ( ALLOC_ARRAY( ccsf1->ChainSubRuleSet, count, TTO_ChainSubRuleSet ) ) - goto Fail2; - - csrs = ccsf1->ChainSubRuleSet; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail1; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_ChainSubRuleSet( &csrs[n], input ) ) != TT_Err_Ok ) - goto Fail1; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail1: - for ( n = 0; n < count; n++ ) - Free_ChainSubRuleSet( &csrs[n] ); - - FREE( csrs ); - - Fail2: - Free_Coverage( &ccsf1->Coverage ); - return error; - } - - - static void Free_ChainContext1( TTO_ChainContextSubstFormat1* ccsf1 ) - { - UShort n, count; - - TTO_ChainSubRuleSet* csrs; - - - if ( ccsf1->ChainSubRuleSet ) - { - count = ccsf1->ChainSubRuleSetCount; - csrs = ccsf1->ChainSubRuleSet; - - for ( n = 0; n < count; n++ ) - Free_ChainSubRuleSet( &csrs[n] ); - - FREE( csrs ); - } - - Free_Coverage( &ccsf1->Coverage ); - } - - - /* ChainSubClassRule */ - - static TT_Error Load_ChainSubClassRule( - TTO_ChainContextSubstFormat2* ccsf2, - TTO_ChainSubClassRule* cscr, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - - UShort* b; - UShort* i; - UShort* l; - TTO_SubstLookupRecord* slr; - Bool* d; - - - if ( ACCESS_Frame( 2L ) ) - return error; - - cscr->BacktrackGlyphCount = GET_UShort(); - - FORGET_Frame(); - - if ( cscr->BacktrackGlyphCount > ccsf2->MaxBacktrackLength ) - ccsf2->MaxBacktrackLength = cscr->BacktrackGlyphCount; - - cscr->Backtrack = NULL; - - count = cscr->BacktrackGlyphCount; - - if ( ALLOC_ARRAY( cscr->Backtrack, count, UShort ) ) - return error; - - b = cscr->Backtrack; - d = ccsf2->BacktrackClassDef.Defined; - - if ( ACCESS_Frame( count * 2L ) ) - goto Fail4; - - for ( n = 0; n < count; n++ ) - { - b[n] = GET_UShort(); - - /* We check whether the specific class is used at all. If not, - class 0 is used instead. */ - - if ( !d[b[n]] ) - b[n] = 0; - } - - FORGET_Frame(); - - if ( ACCESS_Frame( 2L ) ) - goto Fail4; - - cscr->InputGlyphCount = GET_UShort(); - - FORGET_Frame(); - - if ( cscr->InputGlyphCount > ccsf2->MaxInputLength ) - ccsf2->MaxInputLength = cscr->InputGlyphCount; - - cscr->Input = NULL; - - count = cscr->InputGlyphCount - 1; /* only InputGlyphCount - 1 elements */ - - if ( ALLOC_ARRAY( cscr->Input, count, UShort ) ) - goto Fail4; - - i = cscr->Input; - d = ccsf2->InputClassDef.Defined; - - if ( ACCESS_Frame( count * 2L ) ) - goto Fail3; - - for ( n = 0; n < count; n++ ) - { - i[n] = GET_UShort(); - - if ( !d[i[n]] ) - i[n] = 0; - } - - FORGET_Frame(); - - if ( ACCESS_Frame( 2L ) ) - goto Fail3; - - cscr->LookaheadGlyphCount = GET_UShort(); - - FORGET_Frame(); - - if ( cscr->LookaheadGlyphCount > ccsf2->MaxLookaheadLength ) - ccsf2->MaxLookaheadLength = cscr->LookaheadGlyphCount; - - cscr->Lookahead = NULL; - - count = cscr->LookaheadGlyphCount; - - if ( ALLOC_ARRAY( cscr->Lookahead, count, UShort ) ) - goto Fail3; - - l = cscr->Lookahead; - d = ccsf2->LookaheadClassDef.Defined; - - if ( ACCESS_Frame( count * 2L ) ) - goto Fail2; - - for ( n = 0; n < count; n++ ) - { - l[n] = GET_UShort(); - - if ( !d[l[n]] ) - l[n] = 0; - } - - FORGET_Frame(); - - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - cscr->SubstCount = GET_UShort(); - - FORGET_Frame(); - - cscr->SubstLookupRecord = NULL; - - count = cscr->SubstCount; - - if ( ALLOC_ARRAY( cscr->SubstLookupRecord, count, - TTO_SubstLookupRecord ) ) - goto Fail2; - - slr = cscr->SubstLookupRecord; - - if ( ACCESS_Frame( count * 4L ) ) - goto Fail1; - - for ( n = 0; n < count; n++ ) - { - slr[n].SequenceIndex = GET_UShort(); - slr[n].LookupListIndex = GET_UShort(); - } - - FORGET_Frame(); - - return TT_Err_Ok; - - Fail1: - FREE( slr ); - - Fail2: - FREE( l ); - - Fail3: - FREE( i ); - - Fail4: - FREE( b ); - return error; - } - - - static void Free_ChainSubClassRule( TTO_ChainSubClassRule* cscr ) - { - FREE( cscr->SubstLookupRecord ); - FREE( cscr->Lookahead ); - FREE( cscr->Input ); - FREE( cscr->Backtrack ); - } - - - /* SubClassSet */ - - static TT_Error Load_ChainSubClassSet( - TTO_ChainContextSubstFormat2* ccsf2, - TTO_ChainSubClassSet* cscs, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_ChainSubClassRule* cscr; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = cscs->ChainSubClassRuleCount = GET_UShort(); - - FORGET_Frame(); - - cscs->ChainSubClassRule = NULL; - - if ( ALLOC_ARRAY( cscs->ChainSubClassRule, count, - TTO_ChainSubClassRule ) ) - return error; - - cscr = cscs->ChainSubClassRule; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_ChainSubClassRule( ccsf2, &cscr[n], - input ) ) != TT_Err_Ok ) - goto Fail; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail: - for ( n = 0; n < count; n++ ) - Free_ChainSubClassRule( &cscr[n] ); - - FREE( cscr ); - return error; - } - - - static void Free_ChainSubClassSet( TTO_ChainSubClassSet* cscs ) - { - UShort n, count; - - TTO_ChainSubClassRule* cscr; - - - if ( cscs->ChainSubClassRule ) - { - count = cscs->ChainSubClassRuleCount; - cscr = cscs->ChainSubClassRule; - - for ( n = 0; n < count; n++ ) - Free_ChainSubClassRule( &cscr[n] ); - - FREE( cscr ); - } - } - - - /* ChainContextSubstFormat2 */ - - static TT_Error Load_ChainContextSubst2( - TTO_ChainContextSubstFormat2* ccsf2, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - ULong backtrack_offset, input_offset, lookahead_offset; - - TTO_ChainSubClassSet* cscs; - - - base_offset = FILE_Pos() - 2; - - if ( ACCESS_Frame( 2L ) ) - return error; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &ccsf2->Coverage, input ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 8L ) ) - goto Fail5; - - backtrack_offset = GET_UShort() + base_offset; - input_offset = GET_UShort() + base_offset; - lookahead_offset = GET_UShort() + base_offset; - - /* `ChainSubClassSetCount' is the upper limit for input class values, - thus we read it now to make an additional safety check. */ - - count = ccsf2->ChainSubClassSetCount = GET_UShort(); - - FORGET_Frame(); - - /* backtrack and lookahead data can be optional */ - - cur_offset = FILE_Pos(); - if ( backtrack_offset != base_offset ) { - if ( FILE_Seek( backtrack_offset ) || - ( error = Load_ClassDefinition( &ccsf2->BacktrackClassDef, count, - input ) ) != TT_Err_Ok ) - goto Fail5; - } - if ( FILE_Seek( input_offset ) || - ( error = Load_ClassDefinition( &ccsf2->InputClassDef, count, - input ) ) != TT_Err_Ok ) - goto Fail4; - if ( lookahead_offset != base_offset ) { - if ( FILE_Seek( lookahead_offset ) || - ( error = Load_ClassDefinition( &ccsf2->LookaheadClassDef, count, - input ) ) != TT_Err_Ok ) - goto Fail3; - } - (void)FILE_Seek( cur_offset ); - - ccsf2->ChainSubClassSet = NULL; - ccsf2->MaxBacktrackLength = 0; - ccsf2->MaxInputLength = 0; - ccsf2->MaxLookaheadLength = 0; - - if ( ALLOC_ARRAY( ccsf2->ChainSubClassSet, count, TTO_ChainSubClassSet ) ) - goto Fail2; - - cscs = ccsf2->ChainSubClassSet; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail1; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - if ( new_offset != base_offset ) /* not a NULL offset */ - { - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_ChainSubClassSet( ccsf2, &cscs[n], - input ) ) != TT_Err_Ok ) - goto Fail1; - (void)FILE_Seek( cur_offset ); - } - else - { - /* we create a ChainSubClassSet table with no entries */ - - ccsf2->ChainSubClassSet[n].ChainSubClassRuleCount = 0; - ccsf2->ChainSubClassSet[n].ChainSubClassRule = NULL; - } - } - - return TT_Err_Ok; - - Fail1: - for ( n = 0; n < count; n++ ) - Free_ChainSubClassSet( &cscs[n] ); - - FREE( cscs ); - - Fail2: - Free_ClassDefinition( &ccsf2->LookaheadClassDef ); - - Fail3: - Free_ClassDefinition( &ccsf2->InputClassDef ); - - Fail4: - Free_ClassDefinition( &ccsf2->BacktrackClassDef ); - - Fail5: - Free_Coverage( &ccsf2->Coverage ); - return error; - } - - - static void Free_ChainContext2( TTO_ChainContextSubstFormat2* ccsf2 ) - { - UShort n, count; - - TTO_ChainSubClassSet* cscs; - - - if ( ccsf2->ChainSubClassSet ) - { - count = ccsf2->ChainSubClassSetCount; - cscs = ccsf2->ChainSubClassSet; - - for ( n = 0; n < count; n++ ) - Free_ChainSubClassSet( &cscs[n] ); - - FREE( cscs ); - } - - Free_ClassDefinition( &ccsf2->LookaheadClassDef ); - Free_ClassDefinition( &ccsf2->InputClassDef ); - Free_ClassDefinition( &ccsf2->BacktrackClassDef ); - - Free_Coverage( &ccsf2->Coverage ); - } - - - /* ChainContextSubstFormat3 */ - - static TT_Error Load_ChainContextSubst3( - TTO_ChainContextSubstFormat3* ccsf3, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - UShort backtrack_count, input_count, lookahead_count; - ULong cur_offset, new_offset, base_offset; - - TTO_Coverage* b; - TTO_Coverage* i; - TTO_Coverage* l; - TTO_SubstLookupRecord* slr; - - - base_offset = FILE_Pos() - 2L; - - if ( ACCESS_Frame( 2L ) ) - return error; - - ccsf3->BacktrackGlyphCount = GET_UShort(); - - FORGET_Frame(); - - ccsf3->BacktrackCoverage = NULL; - - backtrack_count = ccsf3->BacktrackGlyphCount; - - if ( ALLOC_ARRAY( ccsf3->BacktrackCoverage, backtrack_count, - TTO_Coverage ) ) - return error; - - b = ccsf3->BacktrackCoverage; - - for ( n = 0; n < backtrack_count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail4; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &b[n], input ) ) != TT_Err_Ok ) - goto Fail4; - (void)FILE_Seek( cur_offset ); - } - - if ( ACCESS_Frame( 2L ) ) - goto Fail4; - - ccsf3->InputGlyphCount = GET_UShort(); - - FORGET_Frame(); - - ccsf3->InputCoverage = NULL; - - input_count = ccsf3->InputGlyphCount; - - if ( ALLOC_ARRAY( ccsf3->InputCoverage, input_count, TTO_Coverage ) ) - goto Fail4; - - i = ccsf3->InputCoverage; - - for ( n = 0; n < input_count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail3; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &i[n], input ) ) != TT_Err_Ok ) - goto Fail3; - (void)FILE_Seek( cur_offset ); - } - - if ( ACCESS_Frame( 2L ) ) - goto Fail3; - - ccsf3->LookaheadGlyphCount = GET_UShort(); - - FORGET_Frame(); - - ccsf3->LookaheadCoverage = NULL; - - lookahead_count = ccsf3->LookaheadGlyphCount; - - if ( ALLOC_ARRAY( ccsf3->LookaheadCoverage, lookahead_count, - TTO_Coverage ) ) - goto Fail3; - - l = ccsf3->LookaheadCoverage; - - for ( n = 0; n < lookahead_count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &l[n], input ) ) != TT_Err_Ok ) - goto Fail2; - (void)FILE_Seek( cur_offset ); - } - - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - ccsf3->SubstCount = GET_UShort(); - - FORGET_Frame(); - - ccsf3->SubstLookupRecord = NULL; - - count = ccsf3->SubstCount; - - if ( ALLOC_ARRAY( ccsf3->SubstLookupRecord, count, - TTO_SubstLookupRecord ) ) - goto Fail2; - - slr = ccsf3->SubstLookupRecord; - - if ( ACCESS_Frame( count * 4L ) ) - goto Fail1; - - for ( n = 0; n < count; n++ ) - { - slr[n].SequenceIndex = GET_UShort(); - slr[n].LookupListIndex = GET_UShort(); - } - - FORGET_Frame(); - - return TT_Err_Ok; - - Fail1: - FREE( slr ); - - Fail2: - for ( n = 0; n < lookahead_count; n++ ) - Free_Coverage( &l[n] ); - - FREE( l ); - - Fail3: - for ( n = 0; n < input_count; n++ ) - Free_Coverage( &i[n] ); - - FREE( i ); - - Fail4: - for ( n = 0; n < backtrack_count; n++ ) - Free_Coverage( &b[n] ); - - FREE( b ); - return error; - } - - - static void Free_ChainContext3( TTO_ChainContextSubstFormat3* ccsf3 ) - { - UShort n, count; - - TTO_Coverage* c; - - - FREE( ccsf3->SubstLookupRecord ); - - if ( ccsf3->LookaheadCoverage ) - { - count = ccsf3->LookaheadGlyphCount; - c = ccsf3->LookaheadCoverage; - - for ( n = 0; n < count; n++ ) - Free_Coverage( &c[n] ); - - FREE( c ); - } - - if ( ccsf3->InputCoverage ) - { - count = ccsf3->InputGlyphCount; - c = ccsf3->InputCoverage; - - for ( n = 0; n < count; n++ ) - Free_Coverage( &c[n] ); - - FREE( c ); - } - - if ( ccsf3->BacktrackCoverage ) - { - count = ccsf3->BacktrackGlyphCount; - c = ccsf3->BacktrackCoverage; - - for ( n = 0; n < count; n++ ) - Free_Coverage( &c[n] ); - - FREE( c ); - } - } - - - /* ChainContextSubst */ - - TT_Error Load_ChainContextSubst( TTO_ChainContextSubst* ccs, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - - if ( ACCESS_Frame( 2L ) ) - return error; - - ccs->SubstFormat = GET_UShort(); - - FORGET_Frame(); - - switch ( ccs->SubstFormat ) - { - case 1: - return Load_ChainContextSubst1( &ccs->ccsf.ccsf1, input ); - - case 2: - return Load_ChainContextSubst2( &ccs->ccsf.ccsf2, input ); - - case 3: - return Load_ChainContextSubst3( &ccs->ccsf.ccsf3, input ); - - default: - return TTO_Err_Invalid_GSUB_SubTable_Format; - } - - return TT_Err_Ok; /* never reached */ - } - - - void Free_ChainContextSubst( TTO_ChainContextSubst* ccs ) - { - switch ( ccs->SubstFormat ) - { - case 1: - Free_ChainContext1( &ccs->ccsf.ccsf1 ); - break; - - case 2: - Free_ChainContext2( &ccs->ccsf.ccsf2 ); - break; - - case 3: - Free_ChainContext3( &ccs->ccsf.ccsf3 ); - break; - } - } - - - static TT_Error Lookup_ChainContextSubst1( - TTO_GSUBHeader* gsub, - TTO_ChainContextSubstFormat1* ccsf1, - TTO_GSUB_String* in, - TTO_GSUB_String* out, - TT_UInt flags, - TT_UInt context_length, - int nesting_level ) - { - UShort index, property; - TT_UInt i, j, k, num_csr, curr_pos; - TT_UInt bgc, igc, lgc; - TT_Error error; - UShort* s_in; - - TTO_ChainSubRule* csr; - TTO_ChainSubRule curr_csr; - TTO_GDEFHeader* gdef; - - - gdef = gsub->gdef; - - if ( CHECK_Property( gdef, in->string[in->pos], flags, &property ) ) - return error; - - error = Coverage_Index( &ccsf1->Coverage, in->string[in->pos], &index ); - if ( error ) - return error; - - csr = ccsf1->ChainSubRuleSet[index].ChainSubRule; - num_csr = ccsf1->ChainSubRuleSet[index].ChainSubRuleCount; - - for ( k = 0; k < num_csr; k++ ) - { - curr_csr = csr[k]; - bgc = curr_csr.BacktrackGlyphCount; - igc = curr_csr.InputGlyphCount; - lgc = curr_csr.LookaheadGlyphCount; - - if ( context_length != 0xFFFF && context_length < igc ) - continue; - - /* check whether context is too long; it is a first guess only */ - - if ( bgc > in->pos || in->pos + igc + lgc > in->length ) - continue; - - if ( bgc ) - { - /* since we don't know in advance the number of glyphs to inspect, - we search backwards for matches in the backtrack glyph array */ - - curr_pos = 0; - s_in = &in->string[curr_pos]; - - for ( i = 0, j = in->pos - 1; i < bgc; i++, j-- ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - return error; - - if ( j > curr_pos ) - j--; - else - break; - } - - /* In OpenType 1.3, it is undefined whether the offsets of - backtrack glyphs is in logical order or not. Version 1.4 - will clarify this: - - Logical order - a b c d e f g h i j - i - Input offsets - 0 1 - Backtrack offsets - 3 2 1 0 - Lookahead offsets - 0 1 2 3 */ - - if ( s_in[j] != curr_csr.Backtrack[i] ) - break; - } - - if ( i != bgc ) - continue; - } - - curr_pos = in->pos; - s_in = &in->string[curr_pos]; - - /* Start at 1 because [0] is implied */ - - for ( i = 1, j = 1; i < igc; i++, j++ ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - return error; - - if ( curr_pos + j < in->length ) - j++; - else - break; - } - - if ( s_in[j] != curr_csr.Input[i - 1] ) - break; - } - - if ( i != igc ) - continue; - - /* we are starting to check for lookahead glyphs right after the - last context glyph */ - - curr_pos = j; - s_in = &in->string[curr_pos]; - - for ( i = 0, j = 0; i < lgc; i++, j++ ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - return error; - - if ( curr_pos + j < in->length ) - j++; - else - break; - } - - if ( s_in[j] != curr_csr.Lookahead[i] ) - break; - } - - if ( i == lgc ) - return Do_ContextSubst( gsub, igc, - curr_csr.SubstCount, - curr_csr.SubstLookupRecord, - in, out, - nesting_level ); - } - - return TTO_Err_Not_Covered; - } - - - static TT_Error Lookup_ChainContextSubst2( - TTO_GSUBHeader* gsub, - TTO_ChainContextSubstFormat2* ccsf2, - TTO_GSUB_String* in, - TTO_GSUB_String* out, - UInt flags, - UInt context_length, - int nesting_level ) - { - UShort index, property; - TT_Error error; - UInt i, j, k, curr_pos; - UInt bgc, igc, lgc; - UShort known_backtrack_classes, - known_input_classes, - known_lookahead_classes; - - UShort* backtrack_classes; - UShort* input_classes; - UShort* lookahead_classes; - - UShort* s_in; - - UShort* bc; - UShort* ic; - UShort* lc; - - TTO_ChainSubClassSet* cscs; - TTO_ChainSubClassRule ccsr; - TTO_GDEFHeader* gdef; - - - gdef = gsub->gdef; - - if ( CHECK_Property( gdef, in->string[in->pos], flags, &property ) ) - return error; - - /* Note: The coverage table in format 2 doesn't give an index into - anything. It just lets us know whether or not we need to - do any lookup at all. */ - - error = Coverage_Index( &ccsf2->Coverage, in->string[in->pos], &index ); - if ( error ) - return error; - - if ( ALLOC_ARRAY( backtrack_classes, ccsf2->MaxBacktrackLength, UShort ) ) - return error; - known_backtrack_classes = 0; - - if ( ALLOC_ARRAY( input_classes, ccsf2->MaxInputLength, UShort ) ) - goto End3; - known_input_classes = 1; - - if ( ALLOC_ARRAY( lookahead_classes, ccsf2->MaxLookaheadLength, UShort ) ) - goto End2; - known_lookahead_classes = 0; - - error = Get_Class( &ccsf2->InputClassDef, in->string[in->pos], - &input_classes[0], NULL ); - if ( error && error != TTO_Err_Not_Covered ) - goto End1; - - cscs = &ccsf2->ChainSubClassSet[input_classes[0]]; - if ( !cscs ) - { - error = TTO_Err_Invalid_GSUB_SubTable; - goto End1; - } - - for ( k = 0; k < (UInt)cscs->ChainSubClassRuleCount; k++ ) - { - ccsr = cscs->ChainSubClassRule[k]; - bgc = ccsr.BacktrackGlyphCount; - igc = ccsr.InputGlyphCount; - lgc = ccsr.LookaheadGlyphCount; - - if ( context_length != 0xFFFF && context_length < igc ) - continue; - - /* check whether context is too long; it is a first guess only */ - - if ( bgc > in->pos || in->pos + igc + lgc > in->length ) - continue; - - if ( bgc ) - { - /* Since we don't know in advance the number of glyphs to inspect, - we search backwards for matches in the backtrack glyph array. - Note that `known_backtrack_classes' starts at index 0. */ - - curr_pos = 0; - s_in = &in->string[curr_pos]; - bc = ccsr.Backtrack; - - for ( i = 0, j = in->pos - 1; i < bgc; i++, j-- ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - return error; - - if ( j > curr_pos ) - j--; - else - break; - } - - if ( i >= (UInt)known_backtrack_classes ) - { - /* Keeps us from having to do this for each rule */ - - error = Get_Class( &ccsf2->BacktrackClassDef, s_in[j], - &backtrack_classes[i], NULL ); - if ( error && error != TTO_Err_Not_Covered ) - goto End1; - known_backtrack_classes = i; - } - - if ( bc[i] != backtrack_classes[i] ) - break; - } - - if ( i != bgc ) - continue; - } - - curr_pos = in->pos; - s_in = &in->string[curr_pos]; - ic = ccsr.Input; - - /* Start at 1 because [0] is implied */ - - for ( i = 1, j = 1; i < igc; i++, j++ ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - goto End1; - - if ( curr_pos + j < in->length ) - j++; - else - break; - } - - if ( i >= (UInt)known_input_classes ) - { - error = Get_Class( &ccsf2->InputClassDef, s_in[j], - &input_classes[i], NULL ); - if ( error && error != TTO_Err_Not_Covered ) - goto End1; - known_input_classes = i; - } - - if ( ic[i - 1] != input_classes[i] ) - break; - } - - if ( i != igc ) - continue; - - /* we are starting to check for lookahead glyphs right after the - last context glyph */ - - curr_pos = j; - s_in = &in->string[curr_pos]; - lc = ccsr.Lookahead; - - for ( i = 0, j = 0; i < lgc; i++, j++ ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - return error; - - if ( curr_pos + j < in->length ) - j++; - else - break; - } - - if ( i >= (UInt)known_lookahead_classes ) - { - error = Get_Class( &ccsf2->LookaheadClassDef, s_in[j], - &lookahead_classes[i], NULL ); - if ( error && error != TTO_Err_Not_Covered ) - goto End1; - known_lookahead_classes = i; - } - - if ( lc[i] != lookahead_classes[i] ) - break; - } - - if ( i == lgc ) - { - error = Do_ContextSubst( gsub, igc, - ccsr.SubstCount, - ccsr.SubstLookupRecord, - in, out, - nesting_level ); - goto End1; - } - } - - error = TTO_Err_Not_Covered; - - End1: - FREE( lookahead_classes ); - - End2: - FREE( input_classes ); - - End3: - FREE( backtrack_classes ); - return error; - } - - - static TT_Error Lookup_ChainContextSubst3( - TTO_GSUBHeader* gsub, - TTO_ChainContextSubstFormat3* ccsf3, - TTO_GSUB_String* in, - TTO_GSUB_String* out, - UInt flags, - UInt context_length, - int nesting_level ) - { - UShort index, property; - UInt i, j, curr_pos, bgc, igc, lgc; - TT_Error error; - UShort* s_in; - - TTO_Coverage* bc; - TTO_Coverage* ic; - TTO_Coverage* lc; - TTO_GDEFHeader* gdef; - - - gdef = gsub->gdef; - - if ( CHECK_Property( gdef, in->string[in->pos], flags, &property ) ) - return error; - - bgc = ccsf3->BacktrackGlyphCount; - igc = ccsf3->InputGlyphCount; - lgc = ccsf3->LookaheadGlyphCount; - - if ( context_length != 0xFFFF && context_length < igc ) - return TTO_Err_Not_Covered; - - /* check whether context is too long; it is a first guess only */ - - if ( bgc > in->pos || in->pos + igc + lgc > in->length ) - return TTO_Err_Not_Covered; - - if ( bgc ) - { - /* Since we don't know in advance the number of glyphs to inspect, - we search backwards for matches in the backtrack glyph array */ - - curr_pos = 0; - s_in = &in->string[curr_pos]; - bc = ccsf3->BacktrackCoverage; - - for ( i = 0, j = in->pos - 1; i < bgc; i++, j-- ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - return error; - - if ( j > curr_pos ) - j--; - else - return TTO_Err_Not_Covered; - } - - error = Coverage_Index( &bc[i], s_in[j], &index ); - if ( error ) - return error; - } - } - - curr_pos = in->pos; - s_in = &in->string[curr_pos]; - ic = ccsf3->InputCoverage; - - /* Start at 1 because [0] is implied */ - - for ( i = 1, j = 1; i < igc; i++, j++ ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - return error; - - if ( curr_pos + j < in->length ) - j++; - else - return TTO_Err_Not_Covered; - } - - error = Coverage_Index( &ic[i], s_in[j], &index ); - if ( error ) - return error; - } - - /* we are starting for lookahead glyphs right after the last context - glyph */ - - curr_pos = j; - s_in = &in->string[curr_pos]; - lc = ccsf3->LookaheadCoverage; - - for ( i = 0, j = 0; i < lgc; i++, j++ ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - return error; - - if ( curr_pos + j < in->length ) - j++; - else - return TTO_Err_Not_Covered; - } - - error = Coverage_Index( &lc[i], s_in[j], &index ); - if ( error ) - return error; - } - - return Do_ContextSubst( gsub, igc, - ccsf3->SubstCount, - ccsf3->SubstLookupRecord, - in, out, - nesting_level ); - } - - - static TT_Error Lookup_ChainContextSubst( - TTO_GSUBHeader* gsub, - TTO_ChainContextSubst* ccs, - TTO_GSUB_String* in, - TTO_GSUB_String* out, - UShort flags, - UShort context_length, - int nesting_level ) - { - switch ( ccs->SubstFormat ) - { - case 1: - return Lookup_ChainContextSubst1( gsub, &ccs->ccsf.ccsf1, in, out, - flags, context_length, - nesting_level ); - - case 2: - return Lookup_ChainContextSubst2( gsub, &ccs->ccsf.ccsf2, in, out, - flags, context_length, - nesting_level ); - - case 3: - return Lookup_ChainContextSubst3( gsub, &ccs->ccsf.ccsf3, in, out, - flags, context_length, - nesting_level ); - - default: - return TTO_Err_Invalid_GSUB_SubTable_Format; - } - - return TT_Err_Ok; /* never reached */ - } - - - - /*********** - * GSUB API - ***********/ - - - FT_EXPORT_FUNC( TT_Error ) - TT_GSUB_Select_Script( TTO_GSUBHeader* gsub, - TT_ULong script_tag, - TT_UShort* script_index ) - { - UShort n; - - TTO_ScriptList* sl; - TTO_ScriptRecord* sr; - - - if ( !gsub || !script_index ) - return TT_Err_Invalid_Argument; - - sl = &gsub->ScriptList; - sr = sl->ScriptRecord; - - for ( n = 0; n < sl->ScriptCount; n++ ) - if ( script_tag == sr[n].ScriptTag ) - { - *script_index = n; - - return TT_Err_Ok; - } - - return TTO_Err_Not_Covered; - } - - - FT_EXPORT_FUNC( TT_Error ) - TT_GSUB_Select_Language( TTO_GSUBHeader* gsub, - TT_ULong language_tag, - TT_UShort script_index, - TT_UShort* language_index, - TT_UShort* req_feature_index ) - { - UShort n; - - TTO_ScriptList* sl; - TTO_ScriptRecord* sr; - TTO_Script* s; - TTO_LangSysRecord* lsr; - - - if ( !gsub || !language_index || !req_feature_index ) - return TT_Err_Invalid_Argument; - - sl = &gsub->ScriptList; - sr = sl->ScriptRecord; - - if ( script_index >= sl->ScriptCount ) - return TT_Err_Invalid_Argument; - - s = &sr[script_index].Script; - lsr = s->LangSysRecord; - - for ( n = 0; n < s->LangSysCount; n++ ) - if ( language_tag == lsr[n].LangSysTag ) - { - *language_index = n; - *req_feature_index = lsr[n].LangSys.ReqFeatureIndex; - - return TT_Err_Ok; - } - - return TTO_Err_Not_Covered; - } - - - /* selecting 0xFFFF for language_index asks for the values of the - default language (DefaultLangSys) */ - - FT_EXPORT_FUNC( TT_Error ) - TT_GSUB_Select_Feature( TTO_GSUBHeader* gsub, - TT_ULong feature_tag, - TT_UShort script_index, - TT_UShort language_index, - TT_UShort* feature_index ) - { - UShort n; - - TTO_ScriptList* sl; - TTO_ScriptRecord* sr; - TTO_Script* s; - TTO_LangSysRecord* lsr; - TTO_LangSys* ls; - UShort* fi; - - TTO_FeatureList* fl; - TTO_FeatureRecord* fr; - - - if ( !gsub || !feature_index ) - return TT_Err_Invalid_Argument; - - sl = &gsub->ScriptList; - sr = sl->ScriptRecord; - - fl = &gsub->FeatureList; - fr = fl->FeatureRecord; - - if ( script_index >= sl->ScriptCount ) - return TT_Err_Invalid_Argument; - - s = &sr[script_index].Script; - lsr = s->LangSysRecord; - - if ( language_index == 0xFFFF ) - ls = &s->DefaultLangSys; - else - { - if ( language_index >= s->LangSysCount ) - return TT_Err_Invalid_Argument; - - ls = &lsr[language_index].LangSys; - } - - fi = ls->FeatureIndex; - - for ( n = 0; n < ls->FeatureCount; n++ ) - { - if ( fi[n] >= fl->FeatureCount ) - return TTO_Err_Invalid_GSUB_SubTable_Format; - - if ( feature_tag == fr[fi[n]].FeatureTag ) - { - *feature_index = fi[n]; - - return TT_Err_Ok; - } - } - - return TTO_Err_Not_Covered; - } - - - /* The next three functions return a null-terminated list */ - - FT_EXPORT_FUNC( TT_Error ) - TT_GSUB_Query_Scripts( TTO_GSUBHeader* gsub, - TT_ULong** script_tag_list ) - { - UShort n; - TT_Error error; - ULong* stl; - - TTO_ScriptList* sl; - TTO_ScriptRecord* sr; - - - if ( !gsub || !script_tag_list ) - return TT_Err_Invalid_Argument; - - sl = &gsub->ScriptList; - sr = sl->ScriptRecord; - - if ( ALLOC_ARRAY( stl, sl->ScriptCount + 1, ULong ) ) - return error; - - for ( n = 0; n < sl->ScriptCount; n++ ) - stl[n] = sr[n].ScriptTag; - stl[n] = 0; - - *script_tag_list = stl; - - return TT_Err_Ok; - } - - - FT_EXPORT_FUNC( TT_Error ) - TT_GSUB_Query_Languages( TTO_GSUBHeader* gsub, - TT_UShort script_index, - TT_ULong** language_tag_list ) - { - UShort n; - TT_Error error; - ULong* ltl; - - TTO_ScriptList* sl; - TTO_ScriptRecord* sr; - TTO_Script* s; - TTO_LangSysRecord* lsr; - - - if ( !gsub || !language_tag_list ) - return TT_Err_Invalid_Argument; - - sl = &gsub->ScriptList; - sr = sl->ScriptRecord; - - if ( script_index >= sl->ScriptCount ) - return TT_Err_Invalid_Argument; - - s = &sr[script_index].Script; - lsr = s->LangSysRecord; - - if ( ALLOC_ARRAY( ltl, s->LangSysCount + 1, ULong ) ) - return error; - - for ( n = 0; n < s->LangSysCount; n++ ) - ltl[n] = lsr[n].LangSysTag; - ltl[n] = 0; - - *language_tag_list = ltl; - - return TT_Err_Ok; - } - - - /* selecting 0xFFFF for language_index asks for the values of the - default language (DefaultLangSys) */ - - FT_EXPORT_FUNC( TT_Error ) - TT_GSUB_Query_Features( TTO_GSUBHeader* gsub, - TT_UShort script_index, - TT_UShort language_index, - TT_ULong** feature_tag_list ) - { - UShort n; - TT_Error error; - ULong* ftl; - - TTO_ScriptList* sl; - TTO_ScriptRecord* sr; - TTO_Script* s; - TTO_LangSysRecord* lsr; - TTO_LangSys* ls; - UShort* fi; - - TTO_FeatureList* fl; - TTO_FeatureRecord* fr; - - - if ( !gsub || !feature_tag_list ) - return TT_Err_Invalid_Argument; - - sl = &gsub->ScriptList; - sr = sl->ScriptRecord; - - fl = &gsub->FeatureList; - fr = fl->FeatureRecord; - - if ( script_index >= sl->ScriptCount ) - return TT_Err_Invalid_Argument; - - s = &sr[script_index].Script; - lsr = s->LangSysRecord; - - if ( language_index == 0xFFFF ) - ls = &s->DefaultLangSys; - else - { - if ( language_index >= s->LangSysCount ) - return TT_Err_Invalid_Argument; - - ls = &lsr[language_index].LangSys; - } - - fi = ls->FeatureIndex; - - if ( ALLOC_ARRAY( ftl, ls->FeatureCount + 1, ULong ) ) - return error; - - for ( n = 0; n < ls->FeatureCount; n++ ) - { - if ( fi[n] >= fl->FeatureCount ) - { - FREE( ftl ); - return TTO_Err_Invalid_GSUB_SubTable_Format; - } - ftl[n] = fr[fi[n]].FeatureTag; - } - ftl[n] = 0; - - *feature_tag_list = ftl; - - return TT_Err_Ok; - } - - - /* Do an individual subtable lookup. Returns TT_Err_Ok if substitution - has been done, or TTO_Err_Not_Covered if not. */ - - static TT_Error Do_Glyph_Lookup( TTO_GSUBHeader* gsub, - UShort lookup_index, - TTO_GSUB_String* in, - TTO_GSUB_String* out, - UShort context_length, - int nesting_level ) - { - TT_Error error = TT_Err_Ok; - UShort i, flags; - TTO_Lookup* lo; - - - nesting_level++; - - if ( nesting_level > TTO_MAX_NESTING_LEVEL ) - return TTO_Err_Too_Many_Nested_Contexts; - - lo = &gsub->LookupList.Lookup[lookup_index]; - flags = lo->LookupFlag; - - for ( i = 0; i < lo->SubTableCount; i++ ) - { - switch ( lo->LookupType ) - { - case GSUB_LOOKUP_SINGLE: - error = Lookup_SingleSubst( &lo->SubTable[i].st.gsub.single, - in, out, - flags, context_length, gsub->gdef ); - break; - - case GSUB_LOOKUP_MULTIPLE: - error = Lookup_MultipleSubst( &lo->SubTable[i].st.gsub.multiple, - in, out, - flags, context_length, gsub->gdef ); - break; - - case GSUB_LOOKUP_ALTERNATE: - error = Lookup_AlternateSubst( gsub, - &lo->SubTable[i].st.gsub.alternate, - in, out, - flags, context_length, gsub->gdef ); - break; - - case GSUB_LOOKUP_LIGATURE: - error = Lookup_LigatureSubst( &lo->SubTable[i].st.gsub.ligature, - in, out, - flags, context_length, gsub->gdef ); - break; - - case GSUB_LOOKUP_CONTEXT: - error = Lookup_ContextSubst( gsub, &lo->SubTable[i].st.gsub.context, - in, out, - flags, context_length, nesting_level ); - break; - - case GSUB_LOOKUP_CHAIN: - error = Lookup_ChainContextSubst( gsub, - &lo->SubTable[i].st.gsub.chain, - in, out, - flags, context_length, - nesting_level ); - break; - } - - /* Check whether we have a successful substitution or an error other - than TTO_Err_Not_Covered */ - - if ( error != TTO_Err_Not_Covered ) - return error; - } - - return TTO_Err_Not_Covered; - } - - - /* apply one lookup to the input string object */ - - static TT_Error Do_String_Lookup( TTO_GSUBHeader* gsub, - UShort lookup_index, - TTO_GSUB_String* in, - TTO_GSUB_String* out ) - { - TT_Error error = TTO_Err_Not_Covered; - - UShort* properties = gsub->LookupList.Properties; - UShort* p_in = in->properties; - UShort* s_in = in->string; - - int nesting_level = 0; - - - while ( in->pos < in->length ) - { - if ( ~p_in[in->pos] & properties[lookup_index] ) - { - /* 0xFFFF indicates that we don't have a context length yet */ - error = Do_Glyph_Lookup( gsub, lookup_index, in, out, - 0xFFFF, nesting_level ); - if ( error && error != TTO_Err_Not_Covered ) - return error; - } - else - error = TTO_Err_Not_Covered; - - if ( error == TTO_Err_Not_Covered ) - if ( ADD_String( in, 1, out, 1, &s_in[in->pos], 0xFFFF, 0xFFFF ) ) - return error; - } - - return error; - } - - - FT_EXPORT_FUNC( TT_Error ) - TT_GSUB_Add_Feature( TTO_GSUBHeader* gsub, - TT_UShort feature_index, - TT_UShort property ) - { - UShort i; - - TTO_Feature feature; - UShort* properties; - UShort* index; - - - if ( !gsub || - feature_index >= gsub->FeatureList.FeatureCount ) - return TT_Err_Invalid_Argument; - - properties = gsub->LookupList.Properties; - - feature = gsub->FeatureList.FeatureRecord[feature_index].Feature; - index = feature.LookupListIndex; - - for ( i = 0; i < feature.LookupListCount; i++ ) - properties[index[i]] |= property; - - return TT_Err_Ok; - } - - - FT_EXPORT_FUNC( TT_Error ) - TT_GSUB_Clear_Features( TTO_GSUBHeader* gsub ) - { - UShort i; - - UShort* properties; - - - if ( !gsub ) - return TT_Err_Invalid_Argument; - - properties = gsub->LookupList.Properties; - - for ( i = 0; i < gsub->LookupList.LookupCount; i++ ) - properties[i] = 0; - - return TT_Err_Ok; - } - - - FT_EXPORT_FUNC( TT_Error ) - TT_GSUB_Register_Alternate_Function( TTO_GSUBHeader* gsub, - TTO_AltFunction altfunc, - void* data ) - { - if ( !gsub ) - return TT_Err_Invalid_Argument; - - gsub->altfunc = altfunc; - gsub->data = data; - - return TT_Err_Ok; - } - - - FT_EXPORT_FUNC( TT_Error ) - TT_GSUB_Apply_String( TTO_GSUBHeader* gsub, - TTO_GSUB_String* in, - TTO_GSUB_String* out ) - { - TT_Error error = TTO_Err_Not_Covered; - UShort j; - - TTO_GSUB_String tmp1; - TTO_GSUB_String* ptmp1; - TTO_GSUB_String tmp2; - TTO_GSUB_String* ptmp2; - TTO_GSUB_String* t; - - UShort* properties; - - - if ( !gsub || - !in || !out || in->length == 0 || in->pos >= in->length ) - return TT_Err_Invalid_Argument; - - properties = gsub->LookupList.Properties; - - tmp1.length = in->length; - tmp1.allocated = in->length; - tmp1.pos = in->pos; - tmp1.max_ligID = 1; - - if ( ALLOC_ARRAY( tmp1.string, tmp1.length, UShort ) ) - return error; - MEM_Copy( tmp1.string, in->string, in->length * sizeof ( UShort ) ); - - /* make sure that we always have a `properties', `components', and - `ligIDs' array in the string object */ - - if ( ALLOC_ARRAY( tmp1.components, tmp1.length, UShort ) ) - return error; - if ( ALLOC_ARRAY( tmp1.ligIDs, tmp1.length, UShort ) ) - return error; - if ( ALLOC_ARRAY( tmp1.properties, tmp1.length, UShort ) ) - return error; - if ( in->properties ) - MEM_Copy( tmp1.properties, in->properties, - in->length * sizeof( UShort ) ); - - tmp2.allocated = 0; - tmp2.pos = 0; - tmp2.string = NULL; - tmp2.properties = NULL; - tmp2.components = NULL; - tmp2.ligIDs = NULL; - - ptmp1 = &tmp1; - ptmp2 = &tmp2; - - for ( j = 0; j < gsub->LookupList.LookupCount; j++ ) - if ( properties[j] ) - { - error = Do_String_Lookup( gsub, j, ptmp1, ptmp2 ); - if ( error && error != TTO_Err_Not_Covered ) - return error; - - /* flipping `in' and `out', preparing the next loop */ - - ptmp1->pos = in->pos; - ptmp2->length = ptmp2->pos; - ptmp2->pos = in->pos; - ptmp2->max_ligID = ptmp1->max_ligID; - - t = ptmp2; - ptmp2 = ptmp1; - ptmp1 = t; - } - - out->length = ptmp1->length; - out->pos = 0; - out->allocated = ptmp1->allocated; - out->string = ptmp1->string; - out->components = ptmp1->components; - out->ligIDs = ptmp1->ligIDs; - - if ( in->properties ) - out->properties = ptmp1->properties; - else - { - FREE( ptmp1->properties ); - out->properties = NULL; - } - - FREE( ptmp2->string ); - FREE( ptmp2->properties ); - FREE( ptmp2->components ); - FREE( ptmp2->ligIDs ); - - return error; - } - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxgsub.h b/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxgsub.h deleted file mode 100644 index 91614ae527b..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxgsub.h +++ /dev/null @@ -1,600 +0,0 @@ -/******************************************************************* - * - * ftxgsub.h - * - * TrueType Open GSUB table support - * - * Copyright 1996-2001 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - ******************************************************************/ - -#ifndef FTXOPEN_H -#error "Don't include this file! Use ftxopen.h instead." -#endif - -#ifndef FTXGSUB_H -#define FTXGSUB_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define TTO_Err_Invalid_GSUB_SubTable_Format 0x1010 -#define TTO_Err_Invalid_GSUB_SubTable 0x1011 - -#define GSUB_ID Build_Extension_ID( 'G', 'S', 'U', 'B' ) - - -/* Lookup types for glyph substitution */ - -#define GSUB_LOOKUP_SINGLE 1 -#define GSUB_LOOKUP_MULTIPLE 2 -#define GSUB_LOOKUP_ALTERNATE 3 -#define GSUB_LOOKUP_LIGATURE 4 -#define GSUB_LOOKUP_CONTEXT 5 -#define GSUB_LOOKUP_CHAIN 6 -#define GSUB_LOOKUP_EXTENSION 7 - - -/* Use this if a feature applies to all glyphs */ - -#define ALL_GLYPHS 0xFFFF - - - /* A pointer to a function which selects the alternate glyph. `pos' is - the position of the glyph with index `glyphID', `num_alternates' - gives the number of alternates in the `alternates' array. `data' - points to the user-defined structure specified during a call to - TT_GSUB_Register_Alternate_Function(). The function must return an - index into the `alternates' array. */ - - typedef TT_UShort (*TTO_AltFunction)(TT_ULong pos, - TT_UShort glyphID, - TT_UShort num_alternates, - TT_UShort* alternates, - void* data ); - - - struct TTO_GSUBHeader_ - { - TT_Bool loaded; - TT_ULong offset; - - TT_Fixed Version; - - TTO_ScriptList ScriptList; - TTO_FeatureList FeatureList; - TTO_LookupList LookupList; - - TTO_GDEFHeader* gdef; - - /* the next two fields are used for an alternate substitution callback - function to select the proper alternate glyph. */ - - TTO_AltFunction altfunc; - void* data; - }; - - typedef struct TTO_GSUBHeader_ TTO_GSUBHeader; - - - /* LookupType 1 */ - - struct TTO_SingleSubstFormat1_ - { - TT_Short DeltaGlyphID; /* constant added to get - substitution glyph index */ - }; - - typedef struct TTO_SingleSubstFormat1_ TTO_SingleSubstFormat1; - - - struct TTO_SingleSubstFormat2_ - { - TT_UShort GlyphCount; /* number of glyph IDs in - Substitute array */ - TT_UShort* Substitute; /* array of substitute glyph IDs */ - }; - - typedef struct TTO_SingleSubstFormat2_ TTO_SingleSubstFormat2; - - - struct TTO_SingleSubst_ - { - TT_UShort SubstFormat; /* 1 or 2 */ - TTO_Coverage Coverage; /* Coverage table */ - - union - { - TTO_SingleSubstFormat1 ssf1; - TTO_SingleSubstFormat2 ssf2; - } ssf; - }; - - typedef struct TTO_SingleSubst_ TTO_SingleSubst; - - - /* LookupType 2 */ - - struct TTO_Sequence_ - { - TT_UShort GlyphCount; /* number of glyph IDs in the - Substitute array */ - TT_UShort* Substitute; /* string of glyph IDs to - substitute */ - }; - - typedef struct TTO_Sequence_ TTO_Sequence; - - - struct TTO_MultipleSubst_ - { - TT_UShort SubstFormat; /* always 1 */ - TTO_Coverage Coverage; /* Coverage table */ - TT_UShort SequenceCount; /* number of Sequence tables */ - TTO_Sequence* Sequence; /* array of Sequence tables */ - }; - - typedef struct TTO_MultipleSubst_ TTO_MultipleSubst; - - - /* LookupType 3 */ - - struct TTO_AlternateSet_ - { - TT_UShort GlyphCount; /* number of glyph IDs in the - Alternate array */ - TT_UShort* Alternate; /* array of alternate glyph IDs */ - }; - - typedef struct TTO_AlternateSet_ TTO_AlternateSet; - - - struct TTO_AlternateSubst_ - { - TT_UShort SubstFormat; /* always 1 */ - TTO_Coverage Coverage; /* Coverage table */ - TT_UShort AlternateSetCount; - /* number of AlternateSet tables */ - TTO_AlternateSet* AlternateSet; /* array of AlternateSet tables */ - }; - - typedef struct TTO_AlternateSubst_ TTO_AlternateSubst; - - - /* LookupType 4 */ - - struct TTO_Ligature_ - { - TT_UShort LigGlyph; /* glyphID of ligature - to substitute */ - TT_UShort ComponentCount; /* number of components in ligature */ - TT_UShort* Component; /* array of component glyph IDs */ - }; - - typedef struct TTO_Ligature_ TTO_Ligature; - - - struct TTO_LigatureSet_ - { - TT_UShort LigatureCount; /* number of Ligature tables */ - TTO_Ligature* Ligature; /* array of Ligature tables */ - }; - - typedef struct TTO_LigatureSet_ TTO_LigatureSet; - - - struct TTO_LigatureSubst_ - { - TT_UShort SubstFormat; /* always 1 */ - TTO_Coverage Coverage; /* Coverage table */ - TT_UShort LigatureSetCount; /* number of LigatureSet tables */ - TTO_LigatureSet* LigatureSet; /* array of LigatureSet tables */ - }; - - typedef struct TTO_LigatureSubst_ TTO_LigatureSubst; - - - /* needed by both lookup type 5 and 6 */ - - struct TTO_SubstLookupRecord_ - { - TT_UShort SequenceIndex; /* index into current - glyph sequence */ - TT_UShort LookupListIndex; /* Lookup to apply to that pos. */ - }; - - typedef struct TTO_SubstLookupRecord_ TTO_SubstLookupRecord; - - - /* LookupType 5 */ - - struct TTO_SubRule_ - { - TT_UShort GlyphCount; /* total number of input glyphs */ - TT_UShort SubstCount; /* number of SubstLookupRecord - tables */ - TT_UShort* Input; /* array of input glyph IDs */ - TTO_SubstLookupRecord* SubstLookupRecord; - /* array of SubstLookupRecord - tables */ - }; - - typedef struct TTO_SubRule_ TTO_SubRule; - - - struct TTO_SubRuleSet_ - { - TT_UShort SubRuleCount; /* number of SubRule tables */ - TTO_SubRule* SubRule; /* array of SubRule tables */ - }; - - typedef struct TTO_SubRuleSet_ TTO_SubRuleSet; - - - struct TTO_ContextSubstFormat1_ - { - TTO_Coverage Coverage; /* Coverage table */ - TT_UShort SubRuleSetCount; /* number of SubRuleSet tables */ - TTO_SubRuleSet* SubRuleSet; /* array of SubRuleSet tables */ - }; - - typedef struct TTO_ContextSubstFormat1_ TTO_ContextSubstFormat1; - - - struct TTO_SubClassRule_ - { - TT_UShort GlyphCount; /* total number of context classes */ - TT_UShort SubstCount; /* number of SubstLookupRecord - tables */ - TT_UShort* Class; /* array of classes */ - TTO_SubstLookupRecord* SubstLookupRecord; - /* array of SubstLookupRecord - tables */ - }; - - typedef struct TTO_SubClassRule_ TTO_SubClassRule; - - - struct TTO_SubClassSet_ - { - TT_UShort SubClassRuleCount; - /* number of SubClassRule tables */ - TTO_SubClassRule* SubClassRule; /* array of SubClassRule tables */ - }; - - typedef struct TTO_SubClassSet_ TTO_SubClassSet; - - - /* The `MaxContextLength' field is not defined in the TTO specification - but simplifies the implementation of this format. It holds the - maximal context length used in the context rules. */ - - struct TTO_ContextSubstFormat2_ - { - TT_UShort MaxContextLength; - /* maximal context length */ - TTO_Coverage Coverage; /* Coverage table */ - TTO_ClassDefinition ClassDef; /* ClassDef table */ - TT_UShort SubClassSetCount; - /* number of SubClassSet tables */ - TTO_SubClassSet* SubClassSet; /* array of SubClassSet tables */ - }; - - typedef struct TTO_ContextSubstFormat2_ TTO_ContextSubstFormat2; - - - struct TTO_ContextSubstFormat3_ - { - TT_UShort GlyphCount; /* number of input glyphs */ - TT_UShort SubstCount; /* number of SubstLookupRecords */ - TTO_Coverage* Coverage; /* array of Coverage tables */ - TTO_SubstLookupRecord* SubstLookupRecord; - /* array of substitution lookups */ - }; - - typedef struct TTO_ContextSubstFormat3_ TTO_ContextSubstFormat3; - - - struct TTO_ContextSubst_ - { - TT_UShort SubstFormat; /* 1, 2, or 3 */ - - union - { - TTO_ContextSubstFormat1 csf1; - TTO_ContextSubstFormat2 csf2; - TTO_ContextSubstFormat3 csf3; - } csf; - }; - - typedef struct TTO_ContextSubst_ TTO_ContextSubst; - - - /* LookupType 6 */ - - struct TTO_ChainSubRule_ - { - TT_UShort BacktrackGlyphCount; - /* total number of backtrack glyphs */ - TT_UShort* Backtrack; /* array of backtrack glyph IDs */ - TT_UShort InputGlyphCount; - /* total number of input glyphs */ - TT_UShort* Input; /* array of input glyph IDs */ - TT_UShort LookaheadGlyphCount; - /* total number of lookahead glyphs */ - TT_UShort* Lookahead; /* array of lookahead glyph IDs */ - TT_UShort SubstCount; /* number of SubstLookupRecords */ - TTO_SubstLookupRecord* SubstLookupRecord; - /* array of SubstLookupRecords */ - }; - - typedef struct TTO_ChainSubRule_ TTO_ChainSubRule; - - - struct TTO_ChainSubRuleSet_ - { - TT_UShort ChainSubRuleCount; - /* number of ChainSubRule tables */ - TTO_ChainSubRule* ChainSubRule; /* array of ChainSubRule tables */ - }; - - typedef struct TTO_ChainSubRuleSet_ TTO_ChainSubRuleSet; - - - struct TTO_ChainContextSubstFormat1_ - { - TTO_Coverage Coverage; /* Coverage table */ - TT_UShort ChainSubRuleSetCount; - /* number of ChainSubRuleSet tables */ - TTO_ChainSubRuleSet* ChainSubRuleSet; - /* array of ChainSubRuleSet tables */ - }; - - typedef struct TTO_ChainContextSubstFormat1_ TTO_ChainContextSubstFormat1; - - - struct TTO_ChainSubClassRule_ - { - TT_UShort BacktrackGlyphCount; - /* total number of backtrack - classes */ - TT_UShort* Backtrack; /* array of backtrack classes */ - TT_UShort InputGlyphCount; - /* total number of context classes */ - TT_UShort* Input; /* array of context classes */ - TT_UShort LookaheadGlyphCount; - /* total number of lookahead - classes */ - TT_UShort* Lookahead; /* array of lookahead classes */ - TT_UShort SubstCount; /* number of SubstLookupRecords */ - TTO_SubstLookupRecord* SubstLookupRecord; - /* array of substitution lookups */ - }; - - typedef struct TTO_ChainSubClassRule_ TTO_ChainSubClassRule; - - - struct TTO_ChainSubClassSet_ - { - TT_UShort ChainSubClassRuleCount; - /* number of ChainSubClassRule - tables */ - TTO_ChainSubClassRule* ChainSubClassRule; - /* array of ChainSubClassRule - tables */ - }; - - typedef struct TTO_ChainSubClassSet_ TTO_ChainSubClassSet; - - - /* The `MaxXXXLength' fields are not defined in the TTO specification - but simplifies the implementation of this format. It holds the - maximal context length used in the specific context rules. */ - - struct TTO_ChainContextSubstFormat2_ - { - TTO_Coverage Coverage; /* Coverage table */ - - TT_UShort MaxBacktrackLength; - /* maximal backtrack length */ - TTO_ClassDefinition BacktrackClassDef; - /* BacktrackClassDef table */ - TT_UShort MaxInputLength; - /* maximal input length */ - TTO_ClassDefinition InputClassDef; - /* InputClassDef table */ - TT_UShort MaxLookaheadLength; - /* maximal lookahead length */ - TTO_ClassDefinition LookaheadClassDef; - /* LookaheadClassDef table */ - - TT_UShort ChainSubClassSetCount; - /* number of ChainSubClassSet - tables */ - TTO_ChainSubClassSet* ChainSubClassSet; - /* array of ChainSubClassSet - tables */ - }; - - typedef struct TTO_ChainContextSubstFormat2_ TTO_ChainContextSubstFormat2; - - - struct TTO_ChainContextSubstFormat3_ - { - TT_UShort BacktrackGlyphCount; - /* number of backtrack glyphs */ - TTO_Coverage* BacktrackCoverage; - /* array of backtrack Coverage - tables */ - TT_UShort InputGlyphCount; - /* number of input glyphs */ - TTO_Coverage* InputCoverage; - /* array of input coverage - tables */ - TT_UShort LookaheadGlyphCount; - /* number of lookahead glyphs */ - TTO_Coverage* LookaheadCoverage; - /* array of lookahead coverage - tables */ - TT_UShort SubstCount; /* number of SubstLookupRecords */ - TTO_SubstLookupRecord* SubstLookupRecord; - /* array of substitution lookups */ - }; - - typedef struct TTO_ChainContextSubstFormat3_ TTO_ChainContextSubstFormat3; - - - struct TTO_ChainContextSubst_ - { - TT_UShort SubstFormat; /* 1, 2, or 3 */ - - union - { - TTO_ChainContextSubstFormat1 ccsf1; - TTO_ChainContextSubstFormat2 ccsf2; - TTO_ChainContextSubstFormat3 ccsf3; - } ccsf; - }; - - typedef struct TTO_ChainContextSubst_ TTO_ChainContextSubst; - - - union TTO_GSUB_SubTable_ - { - TTO_SingleSubst single; - TTO_MultipleSubst multiple; - TTO_AlternateSubst alternate; - TTO_LigatureSubst ligature; - TTO_ContextSubst context; - TTO_ChainContextSubst chain; - }; - - typedef union TTO_GSUB_SubTable_ TTO_GSUB_SubTable; - - - /* A simple string object. It can both `send' and `receive' data. - In case of sending, `length' and `pos' will be used. In case of - receiving, `pos' points to the first free slot, and `allocated' - specifies the amount of allocated memory (and the `length' field - will be ignored). The routine TT_Add_String() will increase the - amount of memory if necessary. After end of receive, `length' - should be set to the value of `pos', and `pos' will be set to zero. - - `properties' (which is treated as a bit field) gives the glyph's - properties: If a certain bit is set for a glyph, the feature which - has the same bit set in its property value is applied. - - `components' is an internal array which tracks components of - ligatures. We need this for MarkToLigature Attachment Positioning - Subtables (in GPOS) together with `ligIDs' (which is used to mark - ligatures and the skipped glyphs during a ligature lookup). - `max_ligID' is increased after a successful ligature lookup. - - NEVER modify any elements of the structure! You should rather copy - its contents if necessary. - - TT_Add_String() will also handle allocation; you should use - free() in case you want to destroy the arrays in the object. */ - - struct TTO_GSUB_String_ - { - TT_ULong length; - TT_ULong pos; - TT_ULong allocated; - TT_UShort* string; - TT_UShort* properties; - TT_UShort* components; - TT_UShort max_ligID; - TT_UShort* ligIDs; - }; - - typedef struct TTO_GSUB_String_ TTO_GSUB_String; - - - /* finally, the GSUB API */ - - FT_EXPORT_DEF( TT_Error ) - TT_Init_GSUB_Extension( TT_Engine engine ); - - FT_EXPORT_DEF( TT_Error ) - TT_Load_GSUB_Table( TT_Face face, - TTO_GSUBHeader* gsub, - TTO_GDEFHeader* gdef ); - - FT_EXPORT_DEF( TT_Error ) - TT_GSUB_Select_Script( TTO_GSUBHeader* gsub, - TT_ULong script_tag, - TT_UShort* script_index ); - - FT_EXPORT_DEF( TT_Error ) - TT_GSUB_Select_Language( TTO_GSUBHeader* gsub, - TT_ULong language_tag, - TT_UShort script_index, - TT_UShort* language_index, - TT_UShort* req_feature_index ); - - FT_EXPORT_DEF( TT_Error ) - TT_GSUB_Select_Feature( TTO_GSUBHeader* gsub, - TT_ULong feature_tag, - TT_UShort script_index, - TT_UShort language_index, - TT_UShort* feature_index ); - - FT_EXPORT_DEF( TT_Error ) - TT_GSUB_Query_Scripts( TTO_GSUBHeader* gsub, - TT_ULong** script_tag_list ); - - FT_EXPORT_DEF( TT_Error ) - TT_GSUB_Query_Languages( TTO_GSUBHeader* gsub, - TT_UShort script_index, - TT_ULong** language_tag_list ); - - FT_EXPORT_DEF( TT_Error ) - TT_GSUB_Query_Features( TTO_GSUBHeader* gsub, - TT_UShort script_index, - TT_UShort language_index, - TT_ULong** feature_tag_list ); - - FT_EXPORT_DEF( TT_Error ) - TT_GSUB_Add_Feature( TTO_GSUBHeader* gsub, - TT_UShort feature_index, - TT_UShort property ); - - FT_EXPORT_DEF( TT_Error ) - TT_GSUB_Clear_Features( TTO_GSUBHeader* gsub ); - - FT_EXPORT_DEF( TT_Error ) - TT_GSUB_Register_Alternate_Function( TTO_GSUBHeader* gsub, - TTO_AltFunction altfunc, - void* data ); - - FT_EXPORT_DEF( TT_Error ) - TT_GSUB_Apply_String( TTO_GSUBHeader* gsub, - TTO_GSUB_String* in, - TTO_GSUB_String* out ); - - FT_EXPORT_DEF( TT_Error ) - TT_GSUB_Add_String( TTO_GSUB_String* in, - TT_UShort num_in, - TTO_GSUB_String* out, - TT_UShort num_out, - TT_UShort* glyph_data, - TT_UShort component, - TT_UShort ligID ); - -#ifdef __cplusplus -} -#endif - -#endif /* FTXGSUB_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxkern.c b/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxkern.c deleted file mode 100644 index 40649d93e81..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxkern.c +++ /dev/null @@ -1,645 +0,0 @@ -/******************************************************************* - * - * ftxkern.c 1.0 - * - * Kerning support extension. - * - * Copyright 1996-2002 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - * - * The kerning support is currently part of the engine extensions. - * - ******************************************************************/ - -#include "ftxkern.h" - -#include "ttextend.h" -#include "tttypes.h" -#include "ttdebug.h" -#include "ttload.h" -#include "ttmemory.h" -#include "ttfile.h" -#include "ttobjs.h" -#include "tttags.h" - - -/* Required by the tracing mode */ -#undef TT_COMPONENT -#define TT_COMPONENT trace_any - -#define KERNING_ID Build_Extension_ID( 'k', 'e', 'r', 'n' ) - -#undef KERN_INDEX -#define KERN_INDEX(g1,g2) (((TT_ULong)g1 << 16) | g2) - - /* compare two kerning pairs, for sorting */ - static int compare_kern_pairs( const void* a, const void* b ) - { - TT_Kern_0_Pair* pair1 = (TT_Kern_0_Pair*)a; - TT_Kern_0_Pair* pair2 = (TT_Kern_0_Pair*)b; - - TT_ULong index1 = KERN_INDEX( pair1->left, pair1->right ); - TT_ULong index2 = KERN_INDEX( pair2->left, pair2->right ); - - return ( index1 < index2 ? -1 : - ( index1 > index2 ? 1 : 0 )); - } - - - /* a simple shell sort algorithm to avoid calling qsort */ - /* (since this creates problems on 16-bit machines) */ - static void - sort_kern_pairs( TT_Kern_0_Pair* pairs, - int count ) - { - TT_Kern_0_Pair *i, *j, *limit = pairs + count; - TT_Kern_0_Pair temp; - int gap; - - - /* compute initial gap */ - for ( gap = 0; ++gap < count; gap *= 3 ) - ; - - while ( gap /= 3 ) - { - for ( i = pairs + gap; i < limit; i++ ) - { - for ( j = i - gap; ; j -= gap ) - { - TT_Kern_0_Pair* k = j + gap; - - - if ( compare_kern_pairs( j, k ) < 0 ) - break; - - temp = *j; - *j = *k; - *k = temp; - - if ( j < pairs + gap ) - break; - } - } - } - } - - - - /* check whether the kern table is sorted */ - static int - is_sorted( TT_Kern_0_Pair* table, TT_ULong num_pairs ) - { - TT_ULong i; - - for ( i=1; i<num_pairs; i++ ) - { - if ( compare_kern_pairs(&table[i-1], &table[i]) != -1 ) - return 0; - } - return 1; - } - - -/******************************************************************* - * - * Function : SubTable_Load_0 - * - * Description : Loads a format 0 kerning subtable data. - * - * Input : kern0 pointer to the kerning subtable - * - * Output : error code - * - * Notes : - Assumes that the stream is already `used' - * - * - the file cursor must be set by the caller - * - * - in case of error, the function _must_ destroy - * the data it allocates! - * - ******************************************************************/ - - static TT_Error - Subtable_Load_0( TT_Kern_0* kern0, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort num_pairs, n; - - - if ( ACCESS_Frame( 8L ) ) - return error; - - num_pairs = GET_UShort(); - kern0->nPairs = 0; - kern0->searchRange = GET_UShort(); - kern0->entrySelector = GET_UShort(); - kern0->rangeShift = GET_UShort(); - - /* we only set kern0->nPairs if the subtable has been loaded */ - - FORGET_Frame(); - - if ( ALLOC_ARRAY( kern0->pairs, num_pairs, TT_Kern_0_Pair ) ) - return error; - - if ( ACCESS_Frame( num_pairs * 6L ) ) - goto Fail; - - for ( n = 0; n < num_pairs; n++ ) - { - kern0->pairs[n].left = GET_UShort(); - kern0->pairs[n].right = GET_UShort(); - kern0->pairs[n].value = GET_UShort(); - - if ( kern0->pairs[n].left >= input->numGlyphs || - kern0->pairs[n].right >= input->numGlyphs ) - { - FORGET_Frame(); - error = TT_Err_Invalid_Kerning_Table; - goto Fail; - } - } - - FORGET_Frame(); - - /* we're ok, set the pairs count */ - kern0->nPairs = num_pairs; - - /* the spec says that the kerning pairs must be sorted, - but some brain damaged font producers don't do that correctly.. (JvR 3/4/2000) */ - if ( !is_sorted( kern0->pairs, num_pairs ) ) - sort_kern_pairs( kern0->pairs, num_pairs ); - - return TT_Err_Ok; - - Fail: - FREE( kern0->pairs ); - return error; - } - - -/******************************************************************* - * - * Function : SubTable_Load_2 - * - * Description : Loads a format 2 kerning subtable data. - * - * Input : kern2 pointer to the kerning subtable - * length subtable length. This is required as - * the subheader doesn't give any indication - * of the size of the `array' table. - * - * Output : error code - * - * Notes : - Assumes that the stream is already `used' - * - * - the file cursor must be set by the caller - * - * - in case of error, the function _must_ destroy - * the data it allocates! - * - ******************************************************************/ - - static TT_Error - Subtable_Load_2( TT_Kern_2* kern2, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - Long table_base; - - UShort left_offset, right_offset, array_offset; - ULong array_size; - UShort left_max, right_max, n; - - - /* record the table offset */ - table_base = FILE_Pos(); - - if ( ACCESS_Frame( 8L ) ) - return error; - - kern2->rowWidth = GET_UShort(); - left_offset = GET_UShort(); - right_offset = GET_UShort(); - array_offset = GET_UShort(); - - FORGET_Frame(); - - /* first load left and right glyph classes */ - - if ( FILE_Seek( table_base + left_offset ) || - ACCESS_Frame( 4L ) ) - return error; - - kern2->leftClass.firstGlyph = GET_UShort(); - kern2->leftClass.nGlyphs = GET_UShort(); - - FORGET_Frame(); - - if ( ALLOC_ARRAY( kern2->leftClass.classes, - kern2->leftClass.nGlyphs, - UShort ) ) - return error; - - /* load left offsets */ - - if ( ACCESS_Frame( kern2->leftClass.nGlyphs * 2L ) ) - goto Fail_Left; - - for ( n = 0; n < kern2->leftClass.nGlyphs; n++ ) - kern2->leftClass.classes[n] = GET_UShort(); - - FORGET_Frame(); - - /* right class */ - - if ( FILE_Seek( table_base + right_offset ) || - ACCESS_Frame( 4L ) ) - goto Fail_Left; - - kern2->rightClass.firstGlyph = GET_UShort(); - kern2->rightClass.nGlyphs = GET_UShort(); - - FORGET_Frame(); - - if ( ALLOC_ARRAY( kern2->rightClass.classes, - kern2->rightClass.nGlyphs, - UShort ) ) - goto Fail_Left; - - /* load right offsets */ - - if ( ACCESS_Frame( kern2->rightClass.nGlyphs * 2L ) ) - goto Fail_Right; - - for ( n = 0; n < kern2->rightClass.nGlyphs; n++ ) - kern2->rightClass.classes[n] = GET_UShort(); - - FORGET_Frame(); - - /* Now load the kerning array. We don't have its size, we */ - /* must compute it from what we know. */ - - /* We thus compute the maximum left and right offsets and */ - /* add them to get the array size. */ - - left_max = right_max = 0; - - for ( n = 0; n < kern2->leftClass.nGlyphs; n++ ) - left_max = MAX( left_max, kern2->leftClass.classes[n] ); - - for ( n = 0; n < kern2->rightClass.nGlyphs; n++ ) - right_max = MAX( right_max, kern2->leftClass.classes[n] ); - - array_size = left_max + right_max + 2; - - if ( ALLOC( kern2->array, array_size ) ) - goto Fail_Right; - - if ( ACCESS_Frame( array_size ) ) - goto Fail_Array; - - for ( n = 0; (UInt)n < array_size/2; n++ ) - kern2->array[n] = GET_Short(); - - FORGET_Frame(); - - /* we're good now */ - - return TT_Err_Ok; - - Fail_Array: - FREE( kern2->array ); - - Fail_Right: - FREE( kern2->rightClass.classes ); - kern2->rightClass.nGlyphs = 0; - - Fail_Left: - FREE( kern2->leftClass.classes ); - kern2->leftClass.nGlyphs = 0; - - return error; - } - - -/******************************************************************* - * - * Function : Kerning_Create - * - * Description : Creates the kerning directory if a face is - * loaded. The tables however are loaded on - * demand to save space. - * - * Input : face pointer to the parent face object - * kern pointer to the extension's kerning field - * - * Output : error code - * - * Notes : as in all constructors, the memory allocated isn't - * released in case of failure. Rather, the task is left - * to the destructor (which is called if an error - * occurs during the loading of a face). - * - ******************************************************************/ - - static TT_Error - Kerning_Create( void* ext, - PFace face ) - { - DEFINE_LOAD_LOCALS( face->stream ); - - TT_Kerning* kern = (TT_Kerning*)ext; - UShort num_tables; - Long table; - - TT_Kern_Subtable* sub; - - - /* by convention */ - if ( !kern ) - return TT_Err_Ok; - - /* Now load the kerning directory. We're called from the face */ - /* constructor. We thus need not use the stream. */ - - kern->version = 0; - kern->nTables = 0; - kern->tables = NULL; - - table = TT_LookUp_Table( face, TTAG_kern ); - if ( table < 0 ) - return TT_Err_Ok; /* The table is optional */ - - if ( FILE_Seek( face->dirTables[table].Offset ) || - ACCESS_Frame( 4L ) ) - return error; - - kern->version = GET_UShort(); - num_tables = GET_UShort(); - - FORGET_Frame(); - - /* we don't set kern->nTables until we have allocated the array */ - - if ( ALLOC_ARRAY( kern->tables, num_tables, TT_Kern_Subtable ) ) - return error; - - kern->nTables = num_tables; - - /* now load the directory entries, but do _not_ load the tables ! */ - - sub = kern->tables; - - for ( table = 0; table < num_tables; table++ ) - { - if ( ACCESS_Frame( 6L ) ) - return error; - - sub->loaded = FALSE; /* redundant, but good to see */ - sub->version = GET_UShort(); - sub->length = GET_UShort() - 6; /* substract header length */ - sub->format = GET_Byte(); - sub->coverage = GET_Byte(); - - FORGET_Frame(); - - sub->offset = FILE_Pos(); - - /* now skip to the next table */ - - if ( FILE_Skip( sub->length ) ) - return error; - - sub++; - } - - /* that's fine, leave now */ - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Kerning_Destroy - * - * Description : Destroys all kerning information. - * - * Input : kern pointer to the extension's kerning field - * - * Output : error code - * - * Notes : This function is a destructor; it must be able - * to destroy partially built tables. - * - ******************************************************************/ - - static TT_Error - Kerning_Destroy( void* ext, - PFace face ) - { - TT_Kerning* kern = (TT_Kerning*)ext; - TT_Kern_Subtable* sub; - UShort n; - - - /* by convention */ - if ( !kern ) - return TT_Err_Ok; - - if ( kern->nTables == 0 ) - return TT_Err_Ok; /* no tables to release */ - - /* scan the table directory and release loaded entries */ - - sub = kern->tables; - for ( n = 0; n < kern->nTables; n++ ) - { - if ( sub->loaded ) - { - switch ( sub->format ) - { - case 0: - FREE( sub->t.kern0.pairs ); - sub->t.kern0.nPairs = 0; - sub->t.kern0.searchRange = 0; - sub->t.kern0.entrySelector = 0; - sub->t.kern0.rangeShift = 0; - break; - - case 2: - FREE( sub->t.kern2.leftClass.classes ); - sub->t.kern2.leftClass.firstGlyph = 0; - sub->t.kern2.leftClass.nGlyphs = 0; - - FREE( sub->t.kern2.rightClass.classes ); - sub->t.kern2.rightClass.firstGlyph = 0; - sub->t.kern2.rightClass.nGlyphs = 0; - - FREE( sub->t.kern2.array ); - sub->t.kern2.rowWidth = 0; - break; - - default: - ; /* invalid subtable format - do nothing */ - } - - sub->loaded = FALSE; - sub->version = 0; - sub->offset = 0; - sub->length = 0; - sub->coverage = 0; - sub->format = 0; - } - sub++; - } - - FREE( kern->tables ); - kern->nTables = 0; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Get_Kerning_Directory - * - * Description : Returns a given face's kerning directory. - * - * Input : face handle to the face object - * directory pointer to client's target directory - * - * Output : error code - * - * Notes : The kerning table directory is loaded with the face - * through the extension constructor. However, the kerning - * tables themselves are only loaded on demand, as they - * may represent a lot of data, unneeded by most uses of - * the engine. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Get_Kerning_Directory( TT_Face face, - TT_Kerning* directory ) - { - PFace faze = HANDLE_Face( face ); - TT_Error error; - TT_Kerning* kerning; - - - if ( !faze ) - return TT_Err_Invalid_Face_Handle; - - /* copy directory header */ - error = TT_Extension_Get( faze, KERNING_ID, (void**)&kerning ); - if ( !error ) - *directory = *kerning; - - return error; - } - - -/******************************************************************* - * - * Function : TT_Load_Kerning_Table - * - * Description : Loads a kerning table intro memory. - * - * Input : face face handle - * kern_index index in the face's kerning directory - * - * Output : error code - * - * Notes : - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Load_Kerning_Table( TT_Face face, - TT_UShort kern_index ) - { - TT_Error error; - TT_Stream stream; - - TT_Kerning* kern; - TT_Kern_Subtable* sub; - - - PFace faze = HANDLE_Face( face ); - - if ( !faze ) - return TT_Err_Invalid_Face_Handle; - - error = TT_Extension_Get( faze, KERNING_ID, (void**)&kern ); - if ( error ) - return error; - - if ( kern->nTables == 0 ) - return TT_Err_Table_Missing; - - if ( kern_index >= kern->nTables ) - return TT_Err_Invalid_Argument; - - sub = kern->tables + kern_index; - - if ( sub->format != 0 && sub->format != 2 ) - return TT_Err_Invalid_Kerning_Table_Format; - - /* now access stream */ - if ( USE_Stream( faze->stream, stream ) ) - return error; - - if ( FILE_Seek( sub->offset ) ) - goto Fail; - - if ( sub->format == 0 ) - error = Subtable_Load_0( &sub->t.kern0, faze ); - else if ( sub->format == 2 ) - error = Subtable_Load_2( &sub->t.kern2, faze ); - - if ( !error ) - sub->loaded = TRUE; - - Fail: - /* release stream */ - DONE_Stream( stream ); - - return error; - } - - - FT_EXPORT_FUNC( TT_Error ) - TT_Init_Kerning_Extension( TT_Engine engine ) - { - PEngine_Instance _engine = HANDLE_Engine( engine ); - - TT_Error error; - - - if ( !_engine ) - return TT_Err_Invalid_Engine; - - error = TT_Register_Extension( _engine, - KERNING_ID, - sizeof ( TT_Kerning ), - Kerning_Create, - Kerning_Destroy ); - return error; - } - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxkern.h b/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxkern.h deleted file mode 100644 index 4f981ec8737..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxkern.h +++ /dev/null @@ -1,181 +0,0 @@ -/******************************************************************* - * - * ftxkern.h 1.0 - * - * High-Level API Kerning extension - * - * Copyright 1996-2001 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - * - * The kerning support is currently part of the engine extensions. - * - * This file should _not_ depend on engine internal types. - * - ******************************************************************/ - -#ifndef FTXKERN_H -#define FTXKERN_H - -#include "freetype.h" - -#ifdef __cplusplus -extern "C" { -#endif - - /* The kerning support in FreeType is minimal. This means that */ - /* we do not try to interpret the kerning data in any way to */ - /* `cook' it for a user application. This API lets you access */ - /* directly the kerning tables found in the TrueType file; it's */ - /* up to the client application to apply its own processing on */ - /* these. */ - - /* The reason for this is that we generally do not encourage */ - /* feature-bloat of the core engine. Moreover, not all */ - /* libraries or font servers really need kerning data, or all */ - /* formats of this data. */ - - /************** kerning error codes *****************************/ - - /* we choose the class 0x0A for our errors, this should not */ - /* match with any error code class used in any other extension */ - -#define TT_Err_Invalid_Kerning_Table_Format 0x0A00 -#define TT_Err_Invalid_Kerning_Table 0x0A01 - - - /********** structures definitions ******************************/ - - /* Remember that all types and function are accessible by client */ - /* applications in this section, and thus should have the `TT_' */ - /* prefix. */ - - /* format 0 kerning pair */ - - struct TT_Kern_0_Pair_ - { - TT_UShort left; /* index of left glyph in pair */ - TT_UShort right; /* index of right glyph in pair */ - TT_FWord value; /* kerning value */ - }; - - typedef struct TT_Kern_0_Pair_ TT_Kern_0_Pair; - - - /* format 0 kerning subtable */ - - struct TT_Kern_0_ - { - TT_UShort nPairs; /* number of kerning pairs */ - - TT_UShort searchRange; /* these values are defined by the TT spec */ - TT_UShort entrySelector; /* for table searchs. */ - TT_UShort rangeShift; - - TT_Kern_0_Pair* pairs; /* a table of nPairs `pairs' */ - }; - - typedef struct TT_Kern_0_ TT_Kern_0; - - - /* format 2 kerning glyph class */ - - struct TT_Kern_2_Class_ - { - TT_UShort firstGlyph; /* first glyph in range */ - TT_UShort nGlyphs; /* number of glyphs in range */ - TT_UShort* classes; /* a table giving for each ranged glyph */ - /* its class offset in the subtable pairs */ - /* two-dimensional array */ - }; - - typedef struct TT_Kern_2_Class_ TT_Kern_2_Class; - - - /* format 2 kerning subtable */ - - struct TT_Kern_2_ - { - TT_UShort rowWidth; /* length of one row in bytes */ - TT_Kern_2_Class leftClass; /* left class table */ - TT_Kern_2_Class rightClass; /* right class table */ - TT_FWord* array; /* 2-dimensional kerning values array */ - }; - - typedef struct TT_Kern_2_ TT_Kern_2; - - - /* kerning subtable */ - - struct TT_Kern_Subtable_ - { - TT_Bool loaded; /* boolean; indicates whether the table is */ - /* loaded */ - TT_UShort version; /* table version number */ - TT_Long offset; /* file offset of table */ - TT_UShort length; /* length of table, _excluding_ header */ - TT_Byte coverage; /* lower 8 bit of the coverage table entry */ - TT_Byte format; /* the subtable format, as found in the */ - /* higher 8 bits of the coverage table entry */ - union - { - TT_Kern_0 kern0; - TT_Kern_2 kern2; - } t; - }; - - typedef struct TT_Kern_Subtable_ TT_Kern_Subtable; - - - struct TT_Kerning_ - { - TT_UShort version; /* kern table version number. starts at 0 */ - TT_UShort nTables; /* number of tables */ - - TT_Kern_Subtable* tables; /* the kerning sub-tables */ - }; - - typedef struct TT_Kerning_ TT_Kerning; - - - - /***************** high-level API extension **************************/ - - /* Initialize Kerning extension, must be called after */ - /* TT_Init_FreeType(). There is no need for a finalizer */ - FT_EXPORT_DEF( TT_Error ) - TT_Init_Kerning_Extension( TT_Engine engine ); - - /* Note on the implemented mechanism: */ - - /* The kerning table directory is loaded with the face through the */ - /* extension constructor. However, the tables will only be loaded */ - /* on demand, as they may represent a lot of data, unnecessary to */ - /* most applications. */ - - /* Queries a pointer to the kerning directory for the face object */ - FT_EXPORT_DEF( TT_Error ) - TT_Get_Kerning_Directory( TT_Face face, - TT_Kerning* directory ); - - /* Load the kerning table number `kern_index' in the kerning */ - /* directory. The table will stay in memory until the `face' */ - /* face is destroyed. */ - FT_EXPORT_DEF( TT_Error ) - TT_Load_Kerning_Table( TT_Face face, - TT_UShort kern_index ); - -#ifdef __cplusplus -} -#endif - -#endif /* FTXKERN_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxopen.c b/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxopen.c deleted file mode 100644 index 26b9501ff43..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxopen.c +++ /dev/null @@ -1,1458 +0,0 @@ -/******************************************************************* - * - * ftxopen.c - * - * TrueType Open common table support. - * - * Copyright 1996-2001 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - ******************************************************************/ - -#include "tttypes.h" -#include "ttload.h" -#include "ttextend.h" -#include "ttmemory.h" -#include "ttfile.h" - -#include "ftxopen.h" -#include "ftxopenf.h" - - - /*************************** - * Script related functions - ***************************/ - - - /* LangSys */ - - static TT_Error Load_LangSys( TTO_LangSys* ls, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - - UShort* fi; - - - if ( ACCESS_Frame( 6L ) ) - return error; - - ls->LookupOrderOffset = GET_UShort(); /* should be 0 */ - ls->ReqFeatureIndex = GET_UShort(); - count = ls->FeatureCount = GET_UShort(); - - FORGET_Frame(); - - ls->FeatureIndex = NULL; - - if ( ALLOC_ARRAY( ls->FeatureIndex, count, UShort ) ) - return error; - - if ( ACCESS_Frame( count * 2L ) ) - { - FREE( ls->FeatureIndex ); - return error; - } - - fi = ls->FeatureIndex; - - for ( n = 0; n < count; n++ ) - fi[n] = GET_UShort(); - - FORGET_Frame(); - - return TT_Err_Ok; - } - - - static void Free_LangSys( TTO_LangSys* ls ) - { - FREE( ls->FeatureIndex ); - } - - - /* Script */ - - static TT_Error Load_Script( TTO_Script* s, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_LangSysRecord* lsr; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 2L ) ) - return error; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - if ( new_offset != base_offset ) /* not a NULL offset */ - { - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_LangSys( &s->DefaultLangSys, - input ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - } - else - { - /* we create a DefaultLangSys table with no entries */ - - s->DefaultLangSys.LookupOrderOffset = 0; - s->DefaultLangSys.ReqFeatureIndex = 0xFFFF; - s->DefaultLangSys.FeatureCount = 0; - s->DefaultLangSys.FeatureIndex = NULL; - } - - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - count = s->LangSysCount = GET_UShort(); - - /* safety check; otherwise the official handling of TrueType Open - fonts won't work */ - - if ( s->LangSysCount == 0 && s->DefaultLangSys.FeatureCount == 0 ) - { - error = TTO_Err_Invalid_SubTable; - goto Fail2; - } - - FORGET_Frame(); - - s->LangSysRecord = NULL; - - if ( ALLOC_ARRAY( s->LangSysRecord, count, TTO_LangSysRecord ) ) - goto Fail2; - - lsr = s->LangSysRecord; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 6L ) ) - goto Fail1; - - lsr[n].LangSysTag = GET_ULong(); - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_LangSys( &lsr[n].LangSys, input ) ) != TT_Err_Ok ) - goto Fail1; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail1: - for ( n = 0; n < count; n++ ) - Free_LangSys( &lsr[n].LangSys ); - - FREE( s->LangSysRecord ); - - Fail2: - Free_LangSys( &s->DefaultLangSys ); - return error; - } - - - static void Free_Script( TTO_Script* s ) - { - UShort n, count; - - TTO_LangSysRecord* lsr; - - - Free_LangSys( &s->DefaultLangSys ); - - if ( s->LangSysRecord ) - { - count = s->LangSysCount; - lsr = s->LangSysRecord; - - for ( n = 0; n < count; n++ ) - Free_LangSys( &lsr[n].LangSys ); - - FREE( lsr ); - } - } - - - /* ScriptList */ - - TT_Error Load_ScriptList( TTO_ScriptList* sl, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_ScriptRecord* sr; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = sl->ScriptCount = GET_UShort(); - - FORGET_Frame(); - - sl->ScriptRecord = NULL; - - if ( ALLOC_ARRAY( sl->ScriptRecord, count, TTO_ScriptRecord ) ) - return error; - - sr = sl->ScriptRecord; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 6L ) ) - goto Fail; - - sr[n].ScriptTag = GET_ULong(); - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Script( &sr[n].Script, input ) ) != TT_Err_Ok ) - goto Fail; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail: - for ( n = 0; n < count; n++ ) - Free_Script( &sr[n].Script ); - - FREE( sl->ScriptRecord ); - return error; - } - - - void Free_ScriptList( TTO_ScriptList* sl ) - { - UShort n, count; - - TTO_ScriptRecord* sr; - - - if ( sl->ScriptRecord ) - { - count = sl->ScriptCount; - sr = sl->ScriptRecord; - - for ( n = 0; n < count; n++ ) - Free_Script( &sr[n].Script ); - - FREE( sr ); - } - } - - - - /********************************* - * Feature List related functions - *********************************/ - - - /* Feature */ - - static TT_Error Load_Feature( TTO_Feature* f, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - - UShort* lli; - - - if ( ACCESS_Frame( 4L ) ) - return error; - - f->FeatureParams = GET_UShort(); /* should be 0 */ - count = f->LookupListCount = GET_UShort(); - - FORGET_Frame(); - - f->LookupListIndex = NULL; - - if ( ALLOC_ARRAY( f->LookupListIndex, count, UShort ) ) - return error; - - lli = f->LookupListIndex; - - if ( ACCESS_Frame( count * 2L ) ) - { - FREE( f->LookupListIndex ); - return error; - } - - for ( n = 0; n < count; n++ ) - lli[n] = GET_UShort(); - - FORGET_Frame(); - - return TT_Err_Ok; - } - - - static void Free_Feature( TTO_Feature* f ) - { - FREE( f->LookupListIndex ); - } - - - /* FeatureList */ - - TT_Error Load_FeatureList( TTO_FeatureList* fl, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_FeatureRecord* fr; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = fl->FeatureCount = GET_UShort(); - - FORGET_Frame(); - - fl->FeatureRecord = NULL; - - if ( ALLOC_ARRAY( fl->FeatureRecord, count, TTO_FeatureRecord ) ) - return error; - - fr = fl->FeatureRecord; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 6L ) ) - goto Fail; - - fr[n].FeatureTag = GET_ULong(); - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Feature( &fr[n].Feature, input ) ) != TT_Err_Ok ) - goto Fail; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail: - for ( n = 0; n < count; n++ ) - Free_Feature( &fr[n].Feature ); - - FREE( fl->FeatureRecord ); - return error; - } - - - void Free_FeatureList( TTO_FeatureList* fl ) - { - UShort n, count; - - TTO_FeatureRecord* fr; - - - if ( fl->FeatureRecord ) - { - count = fl->FeatureCount; - fr = fl->FeatureRecord; - - for ( n = 0; n < count; n++ ) - Free_Feature( &fr[n].Feature ); - - FREE( fr ); - } - } - - - - /******************************** - * Lookup List related functions - ********************************/ - - /* the subroutines of the following two functions are defined in - ftxgsub.c and ftxgpos.c respectively */ - - - /* SubTable */ - - static TT_Error Load_SubTable( TTO_SubTable* st, - PFace input, - TTO_Type table_type, - UShort lookup_type ) - { - if ( table_type == GSUB ) - switch ( lookup_type ) - { - case GSUB_LOOKUP_SINGLE: - return Load_SingleSubst( &st->st.gsub.single, input ); - - case GSUB_LOOKUP_MULTIPLE: - return Load_MultipleSubst( &st->st.gsub.multiple, input ); - - case GSUB_LOOKUP_ALTERNATE: - return Load_AlternateSubst( &st->st.gsub.alternate, input ); - - case GSUB_LOOKUP_LIGATURE: - return Load_LigatureSubst( &st->st.gsub.ligature, input ); - - case GSUB_LOOKUP_CONTEXT: - return Load_ContextSubst( &st->st.gsub.context, input ); - - case GSUB_LOOKUP_CHAIN: - return Load_ChainContextSubst( &st->st.gsub.chain, input ); - - default: - return TTO_Err_Invalid_GSUB_SubTable_Format; - } - else - switch ( lookup_type ) - { - case GPOS_LOOKUP_SINGLE: - return Load_SinglePos( &st->st.gpos.single, input ); - - case GPOS_LOOKUP_PAIR: - return Load_PairPos( &st->st.gpos.pair, input ); - - case GPOS_LOOKUP_CURSIVE: - return Load_CursivePos( &st->st.gpos.cursive, input ); - - case GPOS_LOOKUP_MARKBASE: - return Load_MarkBasePos( &st->st.gpos.markbase, input ); - - case GPOS_LOOKUP_MARKLIG: - return Load_MarkLigPos( &st->st.gpos.marklig, input ); - - case GPOS_LOOKUP_MARKMARK: - return Load_MarkMarkPos( &st->st.gpos.markmark, input ); - - case GPOS_LOOKUP_CONTEXT: - return Load_ContextPos( &st->st.gpos.context, input ); - - case GPOS_LOOKUP_CHAIN: - return Load_ChainContextPos( &st->st.gpos.chain, input ); - - default: - return TTO_Err_Invalid_GPOS_SubTable_Format; - } - - return TT_Err_Ok; /* never reached */ - } - - - static void Free_SubTable( TTO_SubTable* st, - TTO_Type table_type, - UShort lookup_type ) - { - if ( table_type == GSUB ) - switch ( lookup_type ) - { - case GSUB_LOOKUP_SINGLE: - Free_SingleSubst( &st->st.gsub.single ); - break; - - case GSUB_LOOKUP_MULTIPLE: - Free_MultipleSubst( &st->st.gsub.multiple ); - break; - - case GSUB_LOOKUP_ALTERNATE: - Free_AlternateSubst( &st->st.gsub.alternate ); - break; - - case GSUB_LOOKUP_LIGATURE: - Free_LigatureSubst( &st->st.gsub.ligature ); - break; - - case GSUB_LOOKUP_CONTEXT: - Free_ContextSubst( &st->st.gsub.context ); - break; - - case GSUB_LOOKUP_CHAIN: - Free_ChainContextSubst( &st->st.gsub.chain ); - break; - } - else - switch ( lookup_type ) - { - case GPOS_LOOKUP_SINGLE: - Free_SinglePos( &st->st.gpos.single ); - break; - - case GPOS_LOOKUP_PAIR: - Free_PairPos( &st->st.gpos.pair ); - break; - - case GPOS_LOOKUP_CURSIVE: - Free_CursivePos( &st->st.gpos.cursive ); - break; - - case GPOS_LOOKUP_MARKBASE: - Free_MarkBasePos( &st->st.gpos.markbase ); - break; - - case GPOS_LOOKUP_MARKLIG: - Free_MarkLigPos( &st->st.gpos.marklig ); - break; - - case GPOS_LOOKUP_MARKMARK: - Free_MarkMarkPos( &st->st.gpos.markmark ); - break; - - case GPOS_LOOKUP_CONTEXT: - Free_ContextPos( &st->st.gpos.context ); - break; - - case GPOS_LOOKUP_CHAIN: - Free_ChainContextPos ( &st->st.gpos.chain ); - break; - } - } - - - /* Lookup */ - - static TT_Error Load_Lookup( TTO_Lookup* l, - PFace input, - TTO_Type type ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_SubTable* st; - - Bool is_extension = FALSE; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 6L ) ) - return error; - - l->LookupType = GET_UShort(); - l->LookupFlag = GET_UShort(); - count = l->SubTableCount = GET_UShort(); - - FORGET_Frame(); - - l->SubTable = NULL; - - if ( ALLOC_ARRAY( l->SubTable, count, TTO_SubTable ) ) - return error; - - st = l->SubTable; - - if ( ( type == GSUB && l->LookupType == GSUB_LOOKUP_EXTENSION ) || - ( type == GPOS && l->LookupType == GPOS_LOOKUP_EXTENSION ) ) - is_extension = TRUE; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - - if ( is_extension ) - { - if ( FILE_Seek( new_offset ) || ACCESS_Frame( 8L ) ) - goto Fail; - - (void)GET_UShort(); /* format should be 1 */ - l->LookupType = GET_UShort(); - new_offset = GET_ULong() + base_offset; - - FORGET_Frame(); - } - - if ( FILE_Seek( new_offset ) || - ( error = Load_SubTable( &st[n], input, - type, l->LookupType ) ) != TT_Err_Ok ) - goto Fail; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail: - for ( n = 0; n < count; n++ ) - Free_SubTable( &st[n], type, l->LookupType ); - - FREE( l->SubTable ); - return error; - } - - - static void Free_Lookup( TTO_Lookup* l, - TTO_Type type ) - { - UShort n, count; - - TTO_SubTable* st; - - - if ( l->SubTable ) - { - count = l->SubTableCount; - st = l->SubTable; - - for ( n = 0; n < count; n++ ) - Free_SubTable( &st[n], type, l->LookupType ); - - FREE( st ); - } - } - - - /* LookupList */ - - TT_Error Load_LookupList( TTO_LookupList* ll, - PFace input, - TTO_Type type ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_Lookup* l; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = ll->LookupCount = GET_UShort(); - - FORGET_Frame(); - - ll->Lookup = NULL; - - if ( ALLOC_ARRAY( ll->Lookup, count, TTO_Lookup ) ) - return error; - if ( ALLOC_ARRAY( ll->Properties, count, UShort ) ) - goto Fail2; - - l = ll->Lookup; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail1; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Lookup( &l[n], input, type ) ) != TT_Err_Ok ) - goto Fail1; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail1: - FREE( ll->Properties ); - - for ( n = 0; n < count; n++ ) - Free_Lookup( &l[n], type ); - - Fail2: - FREE( ll->Lookup ); - return error; - } - - - void Free_LookupList( TTO_LookupList* ll, - TTO_Type type ) - { - UShort n, count; - - TTO_Lookup* l; - - - FREE( ll->Properties ); - - if ( ll->Lookup ) - { - count = ll->LookupCount; - l = ll->Lookup; - - for ( n = 0; n < count; n++ ) - Free_Lookup( &l[n], type ); - - FREE( l ); - } - } - - - - /***************************** - * Coverage related functions - *****************************/ - - - /* CoverageFormat1 */ - - static TT_Error Load_Coverage1( TTO_CoverageFormat1* cf1, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - - UShort* ga; - - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = cf1->GlyphCount = GET_UShort(); - - FORGET_Frame(); - - cf1->GlyphArray = NULL; - - if ( ALLOC_ARRAY( cf1->GlyphArray, count, UShort ) ) - return error; - - ga = cf1->GlyphArray; - - if ( ACCESS_Frame( count * 2L ) ) - { - FREE( cf1->GlyphArray ); - return error; - } - - for ( n = 0; n < count; n++ ) - ga[n] = GET_UShort(); - - FORGET_Frame(); - - return TT_Err_Ok; - } - - - static void Free_Coverage1( TTO_CoverageFormat1* cf1 ) - { - FREE( cf1->GlyphArray ); - } - - - /* CoverageFormat2 */ - - static TT_Error Load_Coverage2( TTO_CoverageFormat2* cf2, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - - TTO_RangeRecord* rr; - - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = cf2->RangeCount = GET_UShort(); - - FORGET_Frame(); - - cf2->RangeRecord = NULL; - - if ( ALLOC_ARRAY( cf2->RangeRecord, count, TTO_RangeRecord ) ) - return error; - - rr = cf2->RangeRecord; - - if ( ACCESS_Frame( count * 6L ) ) - goto Fail; - - for ( n = 0; n < count; n++ ) - { - rr[n].Start = GET_UShort(); - rr[n].End = GET_UShort(); - rr[n].StartCoverageIndex = GET_UShort(); - - /* sanity check; we are limited to 16bit integers */ - if ( rr[n].Start > rr[n].End || - ( rr[n].End - rr[n].Start + (long)rr[n].StartCoverageIndex ) >= - 0x10000L ) - { - error = TTO_Err_Invalid_SubTable; - goto Fail; - } - } - - FORGET_Frame(); - - return TT_Err_Ok; - - Fail: - FREE( cf2->RangeRecord ); - return error; - } - - - static void Free_Coverage2( TTO_CoverageFormat2* cf2 ) - { - FREE( cf2->RangeRecord ); - } - - - TT_Error Load_Coverage( TTO_Coverage* c, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - - if ( ACCESS_Frame( 2L ) ) - return error; - - c->CoverageFormat = GET_UShort(); - - FORGET_Frame(); - - switch ( c->CoverageFormat ) - { - case 1: - return Load_Coverage1( &c->cf.cf1, input ); - - case 2: - return Load_Coverage2( &c->cf.cf2, input ); - - default: - return TTO_Err_Invalid_SubTable_Format; - } - - return TT_Err_Ok; /* never reached */ - } - - - void Free_Coverage( TTO_Coverage* c ) - { - switch ( c->CoverageFormat ) - { - case 1: - Free_Coverage1( &c->cf.cf1 ); - break; - - case 2: - Free_Coverage2( &c->cf.cf2 ); - break; - } - } - - - static TT_Error Coverage_Index1( TTO_CoverageFormat1* cf1, - UShort glyphID, - UShort* index ) - { - UShort min, max, new_min, new_max, middle; - - UShort* array = cf1->GlyphArray; - - - /* binary search */ - - new_min = 0; - new_max = cf1->GlyphCount - 1; - - do - { - min = new_min; - max = new_max; - - /* we use (min + max) / 2 = max - (max - min) / 2 to avoid - overflow and rounding errors */ - - middle = max - ( ( max - min ) >> 1 ); - - if ( glyphID == array[middle] ) - { - *index = middle; - return TT_Err_Ok; - } - else if ( glyphID < array[middle] ) - { - if ( middle == min ) - break; - new_max = middle - 1; - } - else - { - if ( middle == max ) - break; - new_min = middle + 1; - } - } while ( min < max ); - - return TTO_Err_Not_Covered; - } - - - static TT_Error Coverage_Index2( TTO_CoverageFormat2* cf2, - UShort glyphID, - UShort* index ) - { - UShort min, max, new_min, new_max, middle; - - TTO_RangeRecord* rr = cf2->RangeRecord; - - - /* binary search */ - - new_min = 0; - new_max = cf2->RangeCount - 1; - - do - { - min = new_min; - max = new_max; - - /* we use (min + max) / 2 = max - (max - min) / 2 to avoid - overflow and rounding errors */ - - middle = max - ( ( max - min ) >> 1 ); - - if ( glyphID >= rr[middle].Start && glyphID <= rr[middle].End ) - { - *index = rr[middle].StartCoverageIndex + glyphID - rr[middle].Start; - return TT_Err_Ok; - } - else if ( glyphID < rr[middle].Start ) - { - if ( middle == min ) - break; - new_max = middle - 1; - } - else - { - if ( middle == max ) - break; - new_min = middle + 1; - } - } while ( min < max ); - - return TTO_Err_Not_Covered; - } - - - TT_Error Coverage_Index( TTO_Coverage* c, - UShort glyphID, - UShort* index ) - { - switch ( c->CoverageFormat ) - { - case 1: - return Coverage_Index1( &c->cf.cf1, glyphID, index ); - - case 2: - return Coverage_Index2( &c->cf.cf2, glyphID, index ); - - default: - return TTO_Err_Invalid_SubTable_Format; - } - - return TT_Err_Ok; /* never reached */ - } - - - - /************************************* - * Class Definition related functions - *************************************/ - - - /* ClassDefFormat1 */ - - static TT_Error Load_ClassDef1( TTO_ClassDefinition* cd, - UShort limit, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - - UShort* cva; - Bool* d; - - TTO_ClassDefFormat1* cdf1; - - - cdf1 = &cd->cd.cd1; - - if ( ACCESS_Frame( 4L ) ) - return error; - - cdf1->StartGlyph = GET_UShort(); - count = cdf1->GlyphCount = GET_UShort(); - - FORGET_Frame(); - - /* sanity check; we are limited to 16bit integers */ - - if ( cdf1->StartGlyph + (long)count >= 0x10000L ) - return TTO_Err_Invalid_SubTable; - - cdf1->ClassValueArray = NULL; - - if ( ALLOC_ARRAY( cdf1->ClassValueArray, count, UShort ) ) - return error; - - d = cd->Defined; - cva = cdf1->ClassValueArray; - - if ( ACCESS_Frame( count * 2L ) ) - goto Fail; - - for ( n = 0; n < count; n++ ) - { - cva[n] = GET_UShort(); - if ( cva[n] >= limit ) - { - error = TTO_Err_Invalid_SubTable; - goto Fail; - } - d[cva[n]] = TRUE; - } - - FORGET_Frame(); - - return TT_Err_Ok; - - Fail: - FREE( cva ); - - return error; - } - - - static void Free_ClassDef1( TTO_ClassDefFormat1* cdf1 ) - { - FREE( cdf1->ClassValueArray ); - } - - - /* ClassDefFormat2 */ - - static TT_Error Load_ClassDef2( TTO_ClassDefinition* cd, - UShort limit, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - - TTO_ClassRangeRecord* crr; - Bool* d; - - TTO_ClassDefFormat2* cdf2; - - - cdf2 = &cd->cd.cd2; - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = cdf2->ClassRangeCount = GET_UShort(); - - FORGET_Frame(); - - cdf2->ClassRangeRecord = NULL; - - if ( ALLOC_ARRAY( cdf2->ClassRangeRecord, count, TTO_ClassRangeRecord ) ) - return error; - - d = cd->Defined; - crr = cdf2->ClassRangeRecord; - - if ( ACCESS_Frame( count * 6L ) ) - goto Fail; - - for ( n = 0; n < count; n++ ) - { - crr[n].Start = GET_UShort(); - crr[n].End = GET_UShort(); - crr[n].Class = GET_UShort(); - - /* sanity check */ - - if ( crr[n].Start > crr[n].End || - crr[n].Class >= limit ) - { - error = TTO_Err_Invalid_SubTable; - goto Fail; - } - d[crr[n].Class] = TRUE; - } - - FORGET_Frame(); - - return TT_Err_Ok; - - Fail: - FREE( crr ); - - return error; - } - - - static void Free_ClassDef2( TTO_ClassDefFormat2* cdf2 ) - { - FREE( cdf2->ClassRangeRecord ); - } - - - /* ClassDefinition */ - - TT_Error Load_ClassDefinition( TTO_ClassDefinition* cd, - UShort limit, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - - if ( ALLOC_ARRAY( cd->Defined, limit, Bool ) ) - return error; - - if ( ACCESS_Frame( 2L ) ) - goto Fail; - - cd->ClassFormat = GET_UShort(); - - FORGET_Frame(); - - switch ( cd->ClassFormat ) - { - case 1: - error = Load_ClassDef1( cd, limit, input ); - break; - - case 2: - error = Load_ClassDef2( cd, limit, input ); - break; - - default: - error = TTO_Err_Invalid_SubTable_Format; - break; - } - - if ( error ) - goto Fail; - - cd->loaded = TRUE; - - return TT_Err_Ok; - - Fail: - FREE( cd->Defined ); - return error; - } - - - void Free_ClassDefinition( TTO_ClassDefinition* cd ) - { - if ( !cd->loaded ) - return; - - FREE( cd->Defined ); - - switch ( cd->ClassFormat ) - { - case 1: - Free_ClassDef1( &cd->cd.cd1 ); - break; - - case 2: - Free_ClassDef2( &cd->cd.cd2 ); - break; - } - } - - - static TT_Error Get_Class1( TTO_ClassDefFormat1* cdf1, - UShort glyphID, - UShort* class, - UShort* index ) - { - UShort* cva = cdf1->ClassValueArray; - - - *index = 0; - - if ( glyphID >= cdf1->StartGlyph && - glyphID <= cdf1->StartGlyph + cdf1->GlyphCount ) - { - *class = cva[glyphID - cdf1->StartGlyph]; - return TT_Err_Ok; - } - else - { - *class = 0; - return TTO_Err_Not_Covered; - } - } - - - /* we need the index value of the last searched class range record - in case of failure for constructed GDEF tables */ - - static TT_Error Get_Class2( TTO_ClassDefFormat2* cdf2, - UShort glyphID, - UShort* class, - UShort* index ) - { - TT_Error error = TT_Err_Ok; - UShort min, max, new_min, new_max, middle; - - TTO_ClassRangeRecord* crr = cdf2->ClassRangeRecord; - - - /* binary search */ - - new_min = 0; - new_max = cdf2->ClassRangeCount - 1; - - do - { - min = new_min; - max = new_max; - - /* we use (min + max) / 2 = max - (max - min) / 2 to avoid - overflow and rounding errors */ - - middle = max - ( ( max - min ) >> 1 ); - - if ( glyphID >= crr[middle].Start && glyphID <= crr[middle].End ) - { - *class = crr[middle].Class; - error = TT_Err_Ok; - break; - } - else if ( glyphID < crr[middle].Start ) - { - if ( middle == min ) - { - *class = 0; - error = TTO_Err_Not_Covered; - break; - } - new_max = middle - 1; - } - else - { - if ( middle == max ) - { - *class = 0; - error = TTO_Err_Not_Covered; - break; - } - new_min = middle + 1; - } - } while ( min < max ); - - if ( index ) - *index = middle; - - return error; - } - - - TT_Error Get_Class( TTO_ClassDefinition* cd, - UShort glyphID, - UShort* class, - UShort* index ) - { - switch ( cd->ClassFormat ) - { - case 1: - return Get_Class1( &cd->cd.cd1, glyphID, class, index ); - - case 2: - return Get_Class2( &cd->cd.cd2, glyphID, class, index ); - - default: - return TTO_Err_Invalid_SubTable_Format; - } - - return TT_Err_Ok; /* never reached */ - } - - - - /*************************** - * Device related functions - ***************************/ - - - TT_Error Load_Device( TTO_Device* d, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - - UShort* dv; - - - if ( ACCESS_Frame( 6L ) ) - return error; - - d->StartSize = GET_UShort(); - d->EndSize = GET_UShort(); - d->DeltaFormat = GET_UShort(); - - FORGET_Frame(); - - if ( d->StartSize > d->EndSize || - d->DeltaFormat == 0 || d->DeltaFormat > 3 ) - return TTO_Err_Invalid_SubTable; - - d->DeltaValue = NULL; - - count = ( ( d->EndSize - d->StartSize + 1 ) >> - ( 4 - d->DeltaFormat ) ) + 1; - - if ( ALLOC_ARRAY( d->DeltaValue, count, UShort ) ) - return error; - - if ( ACCESS_Frame( count * 2L ) ) - { - FREE( d->DeltaValue ); - return error; - } - - dv = d->DeltaValue; - - for ( n = 0; n < count; n++ ) - dv[n] = GET_UShort(); - - FORGET_Frame(); - - return TT_Err_Ok; - } - - - void Free_Device( TTO_Device* d ) - { - FREE( d->DeltaValue ); - } - - - /* Since we have the delta values stored in compressed form, we must - uncompress it now. To simplify the interface, the function always - returns a meaningful value in `value'; the error is just for - information. - | | - format = 1: 0011223344556677|8899101112131415|... - | | - byte 1 byte 2 - - 00: (byte >> 14) & mask - 11: (byte >> 12) & mask - ... - - mask = 0x0003 - | | - format = 2: 0000111122223333|4444555566667777|... - | | - byte 1 byte 2 - - 0000: (byte >> 12) & mask - 1111: (byte >> 8) & mask - ... - - mask = 0x000F - | | - format = 3: 0000000011111111|2222222233333333|... - | | - byte 1 byte 2 - - 00000000: (byte >> 8) & mask - 11111111: (byte >> 0) & mask - .... - - mask = 0x00FF */ - - TT_Error Get_Device( TTO_Device* d, - UShort size, - Short* value ) - { - UShort byte, bits, mask, f, s; - - - f = d->DeltaFormat; - - if ( size >= d->StartSize && size <= d->EndSize ) - { - s = size - d->StartSize; - byte = d->DeltaValue[s >> ( 4 - f )]; - bits = byte >> ( 16 - ( ( s % ( 1 << ( 4 - f ) ) + 1 ) << f ) ); - mask = 0xFFFF >> ( 16 - ( 1 << f ) ); - - *value = (Short)( bits & mask ); - - /* conversion to a signed value */ - - if ( *value >= ( ( mask + 1 ) >> 1 ) ) - *value -= mask + 1; - - return TT_Err_Ok; - } - else - { - *value = 0; - return TTO_Err_Not_Covered; - } - } - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxopen.h b/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxopen.h deleted file mode 100644 index 9725231dcfb..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxopen.h +++ /dev/null @@ -1,290 +0,0 @@ -/******************************************************************* - * - * ftxopen.h - * - * TrueType Open support. - * - * Copyright 1996-2001 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - * This file should be included by the application. Nevertheless, - * the table specific APIs (and structures) are located in files like - * ftxgsub.h or ftxgpos.h; these header files are read by ftxopen.h . - * - ******************************************************************/ - -#ifndef FTXOPEN_H -#define FTXOPEN_H - -#include "freetype.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define TTO_MAX_NESTING_LEVEL 100 - -#define TTO_Err_Invalid_SubTable_Format 0x1000 -#define TTO_Err_Invalid_SubTable 0x1001 -#define TTO_Err_Not_Covered 0x1002 -#define TTO_Err_Too_Many_Nested_Contexts 0x1003 -#define TTO_Err_No_MM_Interpreter 0x1004 - - - /* Script list related structures */ - - typedef struct TTO_LangSys_ - { - TT_UShort LookupOrderOffset; /* always 0 for TT Open 1.0 */ - TT_UShort ReqFeatureIndex; /* required FeatureIndex */ - TT_UShort FeatureCount; /* number of Feature indices */ - TT_UShort* FeatureIndex; /* array of Feature indices */ - - } TTO_LangSys; - - - - typedef struct TTO_LangSysRecord_ - { - TT_ULong LangSysTag; /* LangSysTag identifier */ - TTO_LangSys LangSys; /* LangSys table */ - - } TTO_LangSysRecord; - - - - typedef struct TTO_Script_ - { - TTO_LangSys DefaultLangSys; /* DefaultLangSys table */ - TT_UShort LangSysCount; /* number of LangSysRecords */ - TTO_LangSysRecord* LangSysRecord; /* array of LangSysRecords */ - - } TTO_Script; - - - typedef struct TTO_ScriptRecord_ - { - TT_ULong ScriptTag; /* ScriptTag identifier */ - TTO_Script Script; /* Script table */ - - } TTO_ScriptRecord; - - - typedef struct TTO_ScriptList_ - { - TT_UShort ScriptCount; /* number of ScriptRecords */ - TTO_ScriptRecord* ScriptRecord; /* array of ScriptRecords */ - - } TTO_ScriptList; - - - - /* Feature list related structures */ - - typedef struct TTO_Feature_ - { - TT_UShort FeatureParams; /* always 0 for TT Open 1.0 */ - TT_UShort LookupListCount; /* number of LookupList indices */ - TT_UShort* LookupListIndex; /* array of LookupList indices */ - - } TTO_Feature; - - - typedef struct TTO_FeatureRecord_ - { - TT_ULong FeatureTag; /* FeatureTag identifier */ - TTO_Feature Feature; /* Feature table */ - - } TTO_FeatureRecord; - - - typedef struct TTO_FeatureList_ - { - TT_UShort FeatureCount; /* number of FeatureRecords */ - TTO_FeatureRecord* FeatureRecord; /* array of FeatureRecords */ - - } TTO_FeatureList; - - - /* Lookup list related structures */ - - struct TTO_SubTable_; - typedef struct TTO_SubTable_ TTO_SubTable; - - - typedef struct TTO_Lookup_ - { - TT_UShort LookupType; /* Lookup type */ - TT_UShort LookupFlag; /* Lookup qualifiers */ - TT_UShort SubTableCount; /* number of SubTables */ - TTO_SubTable* SubTable; /* array of SubTables */ - - } TTO_Lookup; - - - /* The `Properties' field is not defined in the TTO specification but - is needed for processing lookups. If properties[n] is > 0, the - functions TT_GSUB_Apply_String() resp. TT_GPOS_Apply_String() will - process Lookup[n] for glyphs which have the specific bit not set in - the `properties' field of the input string object. */ - - typedef struct TTO_LookupList_ - { - TT_UShort LookupCount; /* number of Lookups */ - TTO_Lookup* Lookup; /* array of Lookup records */ - TT_UShort* Properties; /* array of flags */ - - } TTO_LookupList; - - - /* Possible LookupFlag bit masks. `IGNORE_SPECIAL_MARKS' comes from the - OpenType 1.2 specification; RIGHT_TO_LEFT has been (re)introduced in - OpenType 1.3 -- if set, the last glyph in a cursive attachment - sequence has to be positioned on the baseline -- regardless of the - writing direction. */ - -#define RIGHT_TO_LEFT 0x0001 -#define IGNORE_BASE_GLYPHS 0x0002 -#define IGNORE_LIGATURES 0x0004 -#define IGNORE_MARKS 0x0008 -#define IGNORE_SPECIAL_MARKS 0xFF00 - - - typedef struct TTO_CoverageFormat1_ - { - TT_UShort GlyphCount; /* number of glyphs in GlyphArray */ - TT_UShort* GlyphArray; /* array of glyph IDs */ - - } TTO_CoverageFormat1; - - - typedef struct TTO_RangeRecord_ - { - TT_UShort Start; /* first glyph ID in the range */ - TT_UShort End; /* last glyph ID in the range */ - TT_UShort StartCoverageIndex; /* coverage index of first - glyph ID in the range */ - } TTO_RangeRecord; - - - typedef struct TTO_CoverageFormat2_ - { - TT_UShort RangeCount; /* number of RangeRecords */ - TTO_RangeRecord* RangeRecord; /* array of RangeRecords */ - - } TTO_CoverageFormat2; - - - typedef struct TTO_Coverage_ - { - TT_UShort CoverageFormat; /* 1 or 2 */ - - union - { - TTO_CoverageFormat1 cf1; - TTO_CoverageFormat2 cf2; - } cf; - - } TTO_Coverage; - - - typedef struct TTO_ClassDefFormat1_ - { - TT_UShort StartGlyph; /* first glyph ID of the - ClassValueArray */ - TT_UShort GlyphCount; /* size of the ClassValueArray */ - TT_UShort* ClassValueArray; /* array of class values */ - - } TTO_ClassDefFormat1; - - - typedef struct TTO_ClassRangeRecord_ - { - TT_UShort Start; /* first glyph ID in the range */ - TT_UShort End; /* last glyph ID in the range */ - TT_UShort Class; /* applied to all glyphs in range */ - - } TTO_ClassRangeRecord; - - - typedef struct TTO_ClassDefFormat2_ - { - TT_UShort ClassRangeCount; - /* number of ClassRangeRecords */ - TTO_ClassRangeRecord* ClassRangeRecord; - /* array of ClassRangeRecords */ - } TTO_ClassDefFormat2; - - - /* The `Defined' field is not defined in the TTO specification but - apparently needed for processing fonts like trado.ttf: This font - refers to a class which contains not a single element. We map such - classes to class 0. */ - - typedef struct TTO_ClassDefinition_ - { - TT_Bool loaded; - - TT_Bool* Defined; /* array of Booleans. - If Defined[n] is FALSE, - class n contains no glyphs. */ - TT_UShort ClassFormat; /* 1 or 2 */ - - union - { - TTO_ClassDefFormat1 cd1; - TTO_ClassDefFormat2 cd2; - } cd; - - } TTO_ClassDefinition; - - - typedef struct TTO_Device_ - { - TT_UShort StartSize; /* smallest size to correct */ - TT_UShort EndSize; /* largest size to correct */ - TT_UShort DeltaFormat; /* DeltaValue array data format: - 1, 2, or 3 */ - TT_UShort* DeltaValue; /* array of compressed data */ - - } TTO_Device; - - -#include "ftxgdef.h" -#include "ftxgsub.h" -#include "ftxgpos.h" - - - struct TTO_SubTable_ - { - union - { - TTO_GSUB_SubTable gsub; - TTO_GPOS_SubTable gpos; - } st; - }; - - - enum TTO_Type_ - { - GSUB, - GPOS - }; - - typedef enum TTO_Type_ TTO_Type; - - -#ifdef __cplusplus -} -#endif - -#endif /* FTXOPEN_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxopenf.h b/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxopenf.h deleted file mode 100644 index 81c671a1d2e..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxopenf.h +++ /dev/null @@ -1,143 +0,0 @@ -/******************************************************************* - * - * ftxopenf.h - * - * internal TrueType Open functions - * - * Copyright 1996-2001 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - ******************************************************************/ - -#ifndef FTXOPENF_H -#define FTXOPENF_H - -#include "ftxopen.h" - -#ifdef __cplusplus -extern "C" { -#endif - - /* functions from ftxopen.c */ - - TT_Error Load_ScriptList( TTO_ScriptList* sl, - PFace input ); - TT_Error Load_FeatureList( TTO_FeatureList* fl, - PFace input ); - TT_Error Load_LookupList( TTO_LookupList* ll, - PFace input, - TTO_Type type ); - - TT_Error Load_Coverage( TTO_Coverage* c, - PFace input ); - TT_Error Load_ClassDefinition( TTO_ClassDefinition* cd, - UShort limit, - PFace input ); - TT_Error Load_Device( TTO_Device* d, - PFace input ); - - void Free_ScriptList( TTO_ScriptList* sl ); - void Free_FeatureList( TTO_FeatureList* fl ); - void Free_LookupList( TTO_LookupList* ll, - TTO_Type type ); - - void Free_Coverage( TTO_Coverage* c ); - void Free_ClassDefinition( TTO_ClassDefinition* cd ); - void Free_Device( TTO_Device* d ); - - - /* functions from ftxgsub.c */ - - TT_Error Load_SingleSubst( TTO_SingleSubst* ss, - PFace input ); - TT_Error Load_MultipleSubst( TTO_MultipleSubst* ms, - PFace input ); - TT_Error Load_AlternateSubst( TTO_AlternateSubst* as, - PFace input ); - TT_Error Load_LigatureSubst( TTO_LigatureSubst* ls, - PFace input ); - TT_Error Load_ContextSubst( TTO_ContextSubst* cs, - PFace input ); - TT_Error Load_ChainContextSubst( TTO_ChainContextSubst* ccs, - PFace input ); - - void Free_SingleSubst( TTO_SingleSubst* ss ); - void Free_MultipleSubst( TTO_MultipleSubst* ms ); - void Free_AlternateSubst( TTO_AlternateSubst* as ); - void Free_LigatureSubst( TTO_LigatureSubst* ls ); - void Free_ContextSubst( TTO_ContextSubst* cs ); - void Free_ChainContextSubst( TTO_ChainContextSubst* ccs ); - - - /* functions from ftxgpos.c */ - - TT_Error Load_SinglePos( TTO_SinglePos* sp, - PFace input ); - TT_Error Load_PairPos( TTO_PairPos* pp, - PFace input ); - TT_Error Load_CursivePos( TTO_CursivePos* cp, - PFace input ); - TT_Error Load_MarkBasePos( TTO_MarkBasePos* mbp, - PFace input ); - TT_Error Load_MarkLigPos( TTO_MarkLigPos* mlp, - PFace input ); - TT_Error Load_MarkMarkPos( TTO_MarkMarkPos* mmp, - PFace input ); - TT_Error Load_ContextPos( TTO_ContextPos* cp, - PFace input ); - TT_Error Load_ChainContextPos( TTO_ChainContextPos* ccp, - PFace input ); - - void Free_SinglePos( TTO_SinglePos* sp ); - void Free_PairPos( TTO_PairPos* pp ); - void Free_CursivePos( TTO_CursivePos* cp ); - void Free_MarkBasePos( TTO_MarkBasePos* mbp ); - void Free_MarkLigPos( TTO_MarkLigPos* mlp ); - void Free_MarkMarkPos( TTO_MarkMarkPos* mmp ); - void Free_ContextPos( TTO_ContextPos* cp ); - void Free_ChainContextPos( TTO_ChainContextPos* ccp ); - - - /* query functions */ - - TT_Error Coverage_Index( TTO_Coverage* c, - UShort glyphID, - UShort* index ); - TT_Error Get_Class( TTO_ClassDefinition* cd, - UShort glyphID, - UShort* class, - UShort* index ); - TT_Error Get_Device( TTO_Device* d, - UShort size, - Short* value ); - - - /* functions from ftxgdef.c */ - - TT_Error Add_Glyph_Property( TTO_GDEFHeader* gdef, - UShort glyphID, - UShort property ); - - TT_Error Check_Property( TTO_GDEFHeader* gdef, - UShort index, - UShort flags, - UShort* property ); - -#define CHECK_Property( gdef, index, flags, property ) \ - ( ( error = Check_Property( (gdef), (index), (flags), \ - (property) ) ) != TT_Err_Ok ) - -#ifdef __cplusplus -} -#endif - -#endif /* FTXOPENF_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxpost.c b/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxpost.c deleted file mode 100644 index e871277854f..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxpost.c +++ /dev/null @@ -1,544 +0,0 @@ -/******************************************************************* - * - * ftxpost.c - * - * post table support API extension body - * - * Copyright 1996-2002 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - * - * The post table is not completely loaded by the core engine. This - * file loads the missing PS glyph names and implements an API to - * access them. - * - ******************************************************************/ - -#include "ftxpost.h" - -#include "tttypes.h" -#include "ttobjs.h" -#include "tttables.h" -#include "ttload.h" /* for the macros */ -#include "ttfile.h" -#include "tttags.h" -#include "ttmemory.h" -#include "ttextend.h" - - -#define POST_ID Build_Extension_ID( 'p', 'o', 's', 't' ) - - - /* the 258 default Mac PS glyph names */ - - String* TT_Post_Default_Names[258] = - { - /* 0 */ - ".notdef", ".null", "CR", "space", "exclam", - "quotedbl", "numbersign", "dollar", "percent", "ampersand", - /* 10 */ - "quotesingle", "parenleft", "parenright", "asterisk", "plus", - "comma", "hyphen", "period", "slash", "zero", - /* 20 */ - "one", "two", "three", "four", "five", - "six", "seven", "eight", "nine", "colon", - /* 30 */ - "semicolon", "less", "equal", "greater", "question", - "at", "A", "B", "C", "D", - /* 40 */ - "E", "F", "G", "H", "I", - "J", "K", "L", "M", "N", - /* 50 */ - "O", "P", "Q", "R", "S", - "T", "U", "V", "W", "X", - /* 60 */ - "Y", "Z", "bracketleft", "backslash", "bracketright", - "asciicircum", "underscore", "grave", "a", "b", - /* 70 */ - "c", "d", "e", "f", "g", - "h", "i", "j", "k", "l", - /* 80 */ - "m", "n", "o", "p", "q", - "r", "s", "t", "u", "v", - /* 90 */ - "w", "x", "y", "z", "braceleft", - "bar", "braceright", "asciitilde", "Adieresis", "Aring", - /* 100 */ - "Ccedilla", "Eacute", "Ntilde", "Odieresis", "Udieresis", - "aacute", "agrave", "acircumflex", "adieresis", "atilde", - /* 110 */ - "aring", "ccedilla", "eacute", "egrave", "ecircumflex", - "edieresis", "iacute", "igrave", "icircumflex", "idieresis", - /* 120 */ - "ntilde", "oacute", "ograve", "ocircumflex", "odieresis", - "otilde", "uacute", "ugrave", "ucircumflex", "udieresis", - /* 130 */ - "dagger", "degree", "cent", "sterling", "section", - "bullet", "paragraph", "germandbls", "registered", "copyright", - /* 140 */ - "trademark", "acute", "dieresis", "notequal", "AE", - "Oslash", "infinity", "plusminus", "lessequal", "greaterequal", - /* 150 */ - "yen", "mu", "partialdiff", "summation", "product", - "pi", "integral", "ordfeminine", "ordmasculine", "Omega", - /* 160 */ - "ae", "oslash", "questiondown", "exclamdown", "logicalnot", - "radical", "florin", "approxequal", "Delta", "guillemotleft", - /* 170 */ - "guillemotright", "ellipsis", "nbspace", "Agrave", "Atilde", - "Otilde", "OE", "oe", "endash", "emdash", - /* 180 */ - "quotedblleft", "quotedblright", "quoteleft", "quoteright", "divide", - "lozenge", "ydieresis", "Ydieresis", "fraction", "currency", - /* 190 */ - "guilsinglleft", "guilsinglright", "fi", "fl", "daggerdbl", - "periodcentered", "quotesinglbase", "quotedblbase", "perthousand", "Acircumflex", - /* 200 */ - "Ecircumflex", "Aacute", "Edieresis", "Egrave", "Iacute", - "Icircumflex", "Idieresis", "Igrave", "Oacute", "Ocircumflex", - /* 210 */ - "apple", "Ograve", "Uacute", "Ucircumflex", "Ugrave", - "dotlessi", "circumflex", "tilde", "macron", "breve", - /* 220 */ - "dotaccent", "ring", "cedilla", "hungarumlaut", "ogonek", - "caron", "Lslash", "lslash", "Scaron", "scaron", - /* 230 */ - "Zcaron", "zcaron", "brokenbar", "Eth", "eth", - "Yacute", "yacute", "Thorn", "thorn", "minus", - /* 240 */ - "multiply", "onesuperior", "twosuperior", "threesuperior", "onehalf", - "onequarter", "threequarters", "franc", "Gbreve", "gbreve", - /* 250 */ - "Idot", "Scedilla", "scedilla", "Cacute", "cacute", - "Ccaron", "ccaron", "dmacron", - }; - - - - static TT_Error Load_Format_20( TT_Post_20* post20, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, num_glyphs, num_names; - Byte len; - - - if ( ACCESS_Frame( 2L ) ) - return error; - - num_glyphs = GET_UShort(); - - FORGET_Frame(); - - /* UNDOCUMENTED! The number of glyphs in this table can be smaller */ - /* than the value in the maxp table (cf. cyberbit.ttf). */ - - /* There already exist fonts which have more than 32768 glyph names */ - /* in this table, so the test for this threshold has been dropped. */ - - if ( num_glyphs > input->numGlyphs ) - return TT_Err_Invalid_Post_Table; - - post20->numGlyphs = num_glyphs; - - /* load the indices */ - - if ( ALLOC_ARRAY( post20->glyphNameIndex, num_glyphs, TT_UShort ) ) - return error; - - if ( ACCESS_Frame( num_glyphs * 2L ) ) - goto Fail; - - for ( n = 0; n < num_glyphs; n++ ) - { - post20->glyphNameIndex[n] = GET_UShort(); - } - - FORGET_Frame(); - - /* compute number of names stored in table */ - num_names = 0; - - for ( n = 0; n < num_glyphs; n++ ) - { - UShort idx; - - - idx = post20->glyphNameIndex[n]; - if ( idx >= 258 ) - { - idx -= 257; -#if 0 /* FIXME This test has been dropped in Freetype 2. Why? */ - if ( idx > num_glyphs ) - { - error = TT_Err_Invalid_Post_Table; - goto Fail; - } -#endif - if ( idx > num_names ) - num_names = idx; - } - } - - post20->numNames = num_names; - - if ( num_names == 0 ) /* nothing more to do */ - return TT_Err_Ok; - - /* now load the name strings */ - if ( ALLOC_ARRAY( post20->glyphNames, num_names, Char* ) ) - goto Fail; - - /* We must initialize the glyphNames array for proper */ - /* deallocation. */ - /* FIXME is it still really needed? */ - for ( n = 0; n < num_names; n++ ) - post20->glyphNames[n] = NULL; - - /* Now we can read the glyph names which are stored in */ - /* Pascal string format. */ - for ( n = 0; n < num_names; n++ ) - { - if ( ACCESS_Frame( 1L ) ) - goto Fail1; - - len = GET_Byte(); - - FORGET_Frame(); - - if ( ALLOC_ARRAY( post20->glyphNames[n], len + 1, Char ) || - FILE_Read( post20->glyphNames[n], len ) ) - goto Fail1; - - /* we make a C string */ - post20->glyphNames[n][len] = '\0'; - } - - return TT_Err_Ok; - - - Fail1: - for ( n = 0; n < num_names; n++ ) - if ( post20->glyphNames[n] ) - FREE( post20->glyphNames[n] ); - - FREE( post20->glyphNames ); - - Fail: - FREE( post20->glyphNameIndex ); - return error; - } - - - static TT_Error Load_Format_25( TT_Post_25* post25, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, num; - - - if ( ACCESS_Frame( 2L ) ) - return error; - - /* UNDOCUMENTED! This value appears only in the Apple TT specs. */ - num = GET_UShort(); - - FORGET_Frame(); - - if ( num > input->numGlyphs || num > 258 ) - return TT_Err_Invalid_Post_Table; - - post25->numGlyphs = num; - - if ( ALLOC_ARRAY( post25->offset, num, Char ) ) - return error; - - if ( ACCESS_Frame( num ) ) - goto Fail; - - for ( n = 0; n < num; n++ ) - { - post25->offset[n] = GET_Char(); - - /* We add 128 to the tests to avoid problems with negative */ - /* values for comparison. */ - if ( n + ( post25->offset[n] + 128 ) > num + 128 || - n + ( post25->offset[n] + 128 ) < 128 ) - { - FORGET_Frame(); - error = TT_Err_Invalid_Post_Table; - goto Fail; - } - } - - FORGET_Frame(); - - return TT_Err_Ok; - - - Fail: - FREE( post25->offset ); - return error; - } - - - static TT_Error Post_Create( void* ext, - PFace face ) - { - TT_Post* post = (TT_Post*)ext; - Long table; - - - /* by convention */ - if ( !post ) - return TT_Err_Ok; - - /* we store the start offset and the size of the subtable */ - table = TT_LookUp_Table( face, TTAG_post ); - post->offset = face->dirTables[table].Offset + 32L; - post->length = face->dirTables[table].Length - 32L; - post->loaded = FALSE; - - return TT_Err_Ok; - } - - - static TT_Error Post_Destroy( void* ext, - PFace face ) - { - TT_Post* post = (TT_Post*)ext; - UShort n; - - - /* by convention */ - if ( !post ) - return TT_Err_Ok; - - if ( post->loaded ) - { - switch ( face->postscript.FormatType ) - { - case 0x00010000: /* nothing to do */ - break; - - case 0x00020000: - if ( post->p.post20.numNames ) - { - for ( n = 0; n < post->p.post20.numNames; n++ ) - if ( post->p.post20.glyphNames[n] ) - FREE( post->p.post20.glyphNames[n] ); - FREE( post->p.post20.glyphNames ); - } - FREE( post->p.post20.glyphNameIndex ); - break; - - case 0x00028000: - FREE( post->p.post25.offset ); - break; - - case 0x00030000: /* nothing to do */ - break; - -#if 0 - case 0x00040000: - break; -#endif - - default: - ; /* invalid format, do nothing */ - } - } - - return TT_Err_Ok; - } - - - FT_EXPORT_FUNC( TT_Error ) - TT_Init_Post_Extension( TT_Engine engine ) - { - PEngine_Instance _engine = HANDLE_Engine( engine ); - - TT_Error error; - - - if ( !_engine ) - return TT_Err_Invalid_Engine; - - error = TT_Register_Extension( _engine, - POST_ID, - sizeof ( TT_Post ), - Post_Create, - Post_Destroy ); - return error; - } - - -/******************************************************************* - * - * Function : TT_Load_PS_Names - * - * Description : Loads the PostScript Glyph Name subtable (if any). - * - * Output : error code - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Load_PS_Names( TT_Face face, - TT_Post* ppost ) - { - PFace faze = HANDLE_Face( face ); - TT_Error error; - TT_Stream stream; - TT_Post* post; - - - if ( !faze ) - return TT_Err_Invalid_Face_Handle; - - error = TT_Extension_Get( faze, POST_ID, (void**)&post ); - if ( error ) - return error; - - if ( USE_Stream( faze->stream, stream ) ) - return error; - - - switch ( faze->postscript.FormatType ) - { - case 0x00010000: - error = TT_Err_Ok; /* nothing to do */ - break; - - case 0x00020000: - if ( FILE_Seek( post->offset ) ) - goto Fail; - - error = Load_Format_20( &post->p.post20, faze ); - break; - - case 0x00028000: /* 2.5 in 16.16 format */ - if ( FILE_Seek( post->offset ) ) - goto Fail; - - error = Load_Format_25( &post->p.post25, faze ); - break; - - case 0x00030000: - error = TT_Err_Ok; /* nothing to do */ - break; - -#if 0 - case 0x00040000: - break; -#endif - - default: - error = TT_Err_Invalid_Post_Table_Format; - break; - } - - if ( !error ) - { - post->loaded = TRUE; - *ppost = *post; - } - - - Fail: - DONE_Stream( stream ); - - return error; - } - - -/******************************************************************* - * - * Function : TT_Get_PS_Name - * - * Description : Gets the PostScript Glyph Name of a glyph. - * - * Input : index glyph index - * PSname address of a string pointer. - * Will be NULL in case of error; otherwise it - * contains a pointer to the glyph name. - * - * You must not modify the returned string! - * - * Output : error code - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Get_PS_Name( TT_Face face, - TT_UShort index, - TT_String** PSname ) - { - PFace faze = HANDLE_Face( face ); - TT_Error error; - TT_Post* post; - UShort nameindex; - - - if ( !faze ) - return TT_Err_Invalid_Face_Handle; - - if ( index >= faze->numGlyphs ) - return TT_Err_Invalid_Glyph_Index; - - error = TT_Extension_Get( faze, POST_ID, (void**)&post ); - if ( error ) - return error; - - - *PSname = TT_Post_Default_Names[0]; /* default value */ - - switch ( faze->postscript.FormatType ) - { - case 0x00010000: - if ( index < 258 ) /* paranoid checking */ - *PSname = TT_Post_Default_Names[index]; - break; - - case 0x00020000: - if ( index < post->p.post20.numGlyphs ) - nameindex = post->p.post20.glyphNameIndex[index]; - else - break; - - if ( nameindex < 258 ) - *PSname = TT_Post_Default_Names[nameindex]; - else - *PSname = (String*)post->p.post20.glyphNames[nameindex - 258]; - break; - - case 0x00028000: - if ( index < post->p.post25.numGlyphs ) /* paranoid checking */ - *PSname = TT_Post_Default_Names[index + post->p.post25.offset[index]]; - break; - - case 0x00030000: - break; /* nothing to do */ - -#if 0 - case 0x00040000: - break; -#endif - - default: - ; /* should never happen */ - } - - return TT_Err_Ok; - } - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxpost.h b/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxpost.h deleted file mode 100644 index 942d967ed6b..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxpost.h +++ /dev/null @@ -1,109 +0,0 @@ -/******************************************************************* - * - * ftxpost.h - * - * post table support API extension - * - * Copyright 1996-2001 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - * - * The post table is not completely loaded by the core engine. This - * file loads the missing PS glyph names and implements an API to - * access them. - * - ******************************************************************/ - -#ifndef FTXPOST_H -#define FTXPOST_H - -#include "freetype.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define TT_Err_Invalid_Post_Table_Format 0x0B00 -#define TT_Err_Invalid_Post_Table 0x0B01 - - /* the 258 standard Mac glyph names, used for format 1.0 and 2.5 */ - - extern TT_String* TT_Post_Default_Names[]; - - - /* format 2.0 table */ - - struct TT_Post_20_ - { - TT_UShort numGlyphs; - TT_UShort numNames; - TT_UShort* glyphNameIndex; - TT_Char** glyphNames; - }; - - typedef struct TT_Post_20_ TT_Post_20; - - struct TT_Post_25_ - { - TT_UShort numGlyphs; - TT_Char* offset; - }; - - typedef struct TT_Post_25_ TT_Post_25; - -#if 0 - /* format 4.0 table -- not implemented yet */ - - struct TT_Post_40_ - { - }; - - typedef struct TT_Post_40_ TT_Post_40; -#endif - - - struct TT_Post_ - { - TT_Long offset; - TT_Long length; - TT_Bool loaded; - - union - { - TT_Post_20 post20; - TT_Post_25 post25; -#if 0 - TT_Post_40 post40; -#endif - } p; - }; - - typedef struct TT_Post_ TT_Post; - - - FT_EXPORT_DEF( TT_Error ) - TT_Init_Post_Extension( TT_Engine engine ); - - FT_EXPORT_DEF( TT_Error ) - TT_Load_PS_Names( TT_Face face, - TT_Post* post ); - - FT_EXPORT_DEF( TT_Error ) - TT_Get_PS_Name( TT_Face face, - TT_UShort index, - TT_String** PSname ); - -#ifdef __cplusplus -} -#endif - -#endif /* FTXPOST_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxsbit.c b/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxsbit.c deleted file mode 100644 index d692f7fd51c..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxsbit.c +++ /dev/null @@ -1,1393 +0,0 @@ -/******************************************************************* - * - * ftxsbit.c - * - * Embedded bitmap API extension - * - * Copyright 1996-2001 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - * - * This extension is used to load the embedded bitmaps present - * in certain TrueType files. - * - ******************************************************************/ - -#include "ftxsbit.h" -#include "ttobjs.h" -#include "ttfile.h" -#include "ttload.h" -#include "ttmemory.h" -#include "tttags.h" -#include "ttextend.h" -#include "ttdebug.h" - - -#define SBIT_ID Build_Extension_ID( 's', 'b', 'i', 't' ) - - -/* Required by the tracing mode */ -#undef TT_COMPONENT -#define TT_COMPONENT trace_bitmap - -/* In all functions, the stream is taken from the 'face' object */ -#define DEFINE_LOCALS DEFINE_LOAD_LOCALS( face->stream ) -#define DEFINE_LOCALS_WO_FRAME DEFINE_LOAD_LOCALS_WO_FRAME( face->stream ) - - -/*************************** - * - * miscellaneous functions - * - ***************************/ - -/******************************************************************* - * - * Function: Load_BitmapData - * - * Bit-aligned bitmap data -> Byte-aligned bitmap data when pad is 0 - * - ******************************************************************/ - - static TT_Error - Load_BitmapData( TT_SBit_Image* image, - Int image_size, - Byte x_offset, - Byte y_offset, - UShort source_width, - UShort source_height, - Bool byte_padded, - PFace face ) - { - DEFINE_LOCALS; - - Int count; /* number of bits left in rows */ - Int loaded; /* number of bits loaded in the accumulator */ - UShort buff; /* accumulator */ - - PByte line; /* target write cursor */ - PByte limit; - - - if ( ( y_offset + source_height > image->map.rows ) || - ( x_offset + source_width > image->map.width ) ) - return TT_Err_Invalid_Argument; - - if ( ACCESS_Frame( image_size ) ) - return error; - - buff = 0; - loaded = 0; - line = (PByte)image->map.bitmap + - y_offset * image->map.cols; - limit = (PByte)image->map.bitmap + - ( y_offset + source_height ) * image->map.cols; - - for ( ; line < limit; line += image->map.cols ) - { - PByte ptr; - - - ptr = line + x_offset / 8; - count = source_width; - - /* We may assume that `loaded' is less than 8 */ - buff >>= x_offset % 8; - loaded += x_offset % 8; - - /* first of all, read all consecutive bytes */ - while ( count >= 8 ) - { - if ( loaded < 8 ) - { - buff |= ((UShort)GET_Byte()) << (8 - loaded); - loaded += 8; - } - - *ptr++ |= (Byte)(buff >> 8); - buff <<= 8; - loaded -= 8; - count -= 8; - } - - /* now write remaining bits (i.e. end of line with count < 8) */ - if ( count > 0 ) - { - if ( loaded < count ) - { - buff |= ((UShort)GET_Byte()) << (8 - loaded); - loaded += 8; - } - - *ptr |= ((Byte)(buff >> 8)) & ~(0xFF >> count); - buff <<= count; - loaded -= count; - } - - if ( byte_padded ) - { - buff = 0; - loaded = 0; - } - } - - FORGET_Frame(); - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function: Crop_Bitmap - * - ******************************************************************/ - - static void Crop_Bitmap( TT_SBit_Image* image ) - { - /*******************************************************/ - /* In the following situation, some bounding boxes of */ - /* embedded bitmaps are too large. We need to crop it */ - /* to a reasonable size. */ - /* */ - /* --------- */ - /* | | ----- */ - /* | *** | |***| */ - /* | * | -----> | * | */ - /* | * | | * | */ - /* | * | | * | */ - /* | * | | * | */ - /* | *** | |***| */ - /* --------- ----- */ - /* */ - /*******************************************************/ - - Int rows, count; - Long line_len; - PByte line; - - - /********************************************************************/ - /* */ - /* first of all, check the top-most lines of the bitmap and remove */ - /* them if they're empty. */ - /* */ - { - line = (PByte)image->map.bitmap; - rows = image->map.rows; - line_len = image->map.cols; - - for ( count = 0; count < rows; count++ ) - { - PByte cur = line; - PByte limit = line + line_len; - - - for ( ; cur < limit; cur++ ) - if ( cur[0] ) - goto Found_Top; - - /* the current line was empty -- skip to next one */ - line = limit; - } - - Found_Top: - /* check that we have at least one filled line */ - if ( count >= rows ) - goto Empty_Bitmap; - - /* now, crop the empty upper lines */ - if ( count > 0 ) - { - line = (PByte)image->map.bitmap; - - MEM_Move( line, line + count*line_len, (rows-count) * line_len ); - - image->metrics.bbox.yMax -= count; - image->metrics.vertBearingY -= count; - image->metrics.horiBearingY -= count; - image->map.rows -= count; - rows -= count; - } - } - - /*******************************************************************/ - /* */ - /* second, crop the lower lines */ - /* */ - { - line = (PByte)image->map.bitmap + (rows-1) * line_len; - - for ( count = 0; count < rows; count++ ) - { - PByte cur = line; - PByte limit = line + line_len; - - - for ( ; cur < limit; cur++ ) - if ( cur[0] ) - goto Found_Bottom; - - /* the current line was empty -- skip to previous one */ - line -= line_len; - } - - Found_Bottom: - if ( count > 0 ) - { - image->metrics.bbox.yMin += count; - image->map.rows -= count; - rows -= count; - } - } - - /*******************************************************************/ - /* */ - /* third, get rid of the space on the left side of the glyph */ - /* */ - do - { - PByte limit; - - - line = (PByte)image->map.bitmap; - limit = line + rows * line_len; - - for ( ; line < limit; line += line_len ) - if ( line[0] & 0x80 ) - goto Found_Left; - - /* shift the whole glyph one pixel to the left */ - line = (PByte)image->map.bitmap; - limit = line + rows * line_len; - - for ( ; line < limit; line += line_len ) - { - Int n, width = image->map.width; - Byte old; - PByte cur = line; - - - old = cur[0] << 1; - - for ( n = 8; n < width; n += 8 ) - { - Byte val; - - - val = cur[1]; - cur[0] = old | (val >> 7); - old = val << 1; - cur++; - } - cur[0] = old; - } - - image->map.width--; - image->metrics.horiBearingX++; - image->metrics.vertBearingX++; - image->metrics.bbox.xMin++; - - } while ( image->map.width > 0 ); - - Found_Left: - - /*********************************************************************/ - /* */ - /* finally, crop the bitmap width to get rid of the space on the */ - /* right side of the glyph. */ - /* */ - do - { - Int right = image->map.width-1; - PByte limit; - Byte mask; - - - line = (PByte)image->map.bitmap + (right >> 3); - limit = line + rows*line_len; - mask = 0x80 >> (right & 7); - - for ( ; line < limit; line += line_len ) - if ( line[0] & mask ) - goto Found_Right; - - /* crop the whole glyph on the right */ - image->map.width--; - image->metrics.bbox.xMax--; - - } while ( image->map.width > 0 ); - - Found_Right: - /* all right, the bitmap was cropped */ - return; - - Empty_Bitmap: - image->map.width = 0; - image->map.rows = 0; - image->map.cols = 0; - image->map.size = 0; - } - -/************* - * - * Main body - * - *************/ - - - static TT_Error - Load_Range_Codes( TT_SBit_Range* range, - PFace face, - Bool load_offsets ) - { - DEFINE_LOCALS; - - ULong count, n, size; - - - (void)face; - - /* read glyph count */ - if ( ACCESS_Frame( 4L ) ) - goto Exit; - count = GET_ULong(); - FORGET_Frame(); - - range->num_glyphs = count; - - /* Allocate glyph offsets table if needed */ - if ( load_offsets ) - { - if ( ALLOC_ARRAY( range->glyph_offsets, count, ULong ) ) - goto Exit; - - size = count * 4L; - } - else - size = count * 2L; - - /* Allocate glyph codes table and access frame */ - if ( ALLOC_ARRAY ( range->glyph_codes, count, UShort ) || - ACCESS_Frame( size ) ) - goto Exit; - - for ( n = 0; n < count; n++ ) - { - range->glyph_codes[n] = GET_UShort(); - - if ( load_offsets ) - range->glyph_offsets[n] = (ULong)range->image_offset + GET_UShort(); - } - - FORGET_Frame(); - - Exit: - return error; - } - - - static TT_Error - Load_SBit_Range( TT_SBit_Strike* strike, - TT_SBit_Range* range, - PFace face ) - { - DEFINE_LOCALS; - - UShort format; - - - (void)face; - (void)strike; - - format = range->index_format; - PTRACE6(( "Index Format: %d\n", format )); - - switch( format ) - { - case 1: /* variable metrics with 4-byte offsets */ - case 3: /* variable metrics with 2-byte offsets */ - { - UShort num_glyphs, size_elem; - Bool large = (format == 1); - ULong* cur; - - num_glyphs = range->last_glyph - range->first_glyph + 1; - PTRACE5(( " num glyphs: %hu\n", num_glyphs )); - - range->num_glyphs = num_glyphs; - - num_glyphs++; /* BEWARE */ - - size_elem = large ? 4 : 2; - - if ( ALLOC_ARRAY( range->glyph_offsets, num_glyphs, ULong ) || - ACCESS_Frame( num_glyphs * size_elem ) ) - return error; - - cur = range->glyph_offsets; - - while ( num_glyphs > 0 ) - { - cur[0] = (TT_ULong)( range->image_offset + - (large ? GET_ULong() : GET_UShort()) ); - PTRACE7(( " offset: %d\n", cur[0] )); - cur++; - num_glyphs--; - } - - FORGET_Frame(); - } - break; - - case 2: /* all glyphs have identical metrics */ - case 4: - case 5: - { - error = 0; - - if ( format != 4 ) /* read constant metrics, formats 2 and 5 */ - { - TT_SBit_Metrics* metrics; - - - if ( ACCESS_Frame( 12L ) ) - return error; - - range->image_size = GET_ULong(); - metrics = &range->metrics; - - metrics->height = GET_Byte(); - metrics->width = GET_Byte(); - - metrics->horiBearingX = GET_Char(); - metrics->horiBearingY = GET_Char(); - metrics->horiAdvance = GET_Byte(); - - metrics->vertBearingX = GET_Char(); - metrics->vertBearingY = GET_Char(); - metrics->vertAdvance = GET_Byte(); - - FORGET_Frame(); - } - - if ( format != 2 ) /* load range codes, formats 4 and 5 */ - error = Load_Range_Codes( range, face, (format == 4) ); - } - break; - - default: - error = TT_Err_Invalid_File_Format; - } - - PTRACE3(( "Embedded Bitmap Location Tables loaded.\n" )); - - return error; - } - - -/******************************************************************* - * - * Function : Load_TrueType_Eblc - * - * Description : Loads the Eblc table directory into face table. - * - * Input : face face record to look for - * - * Output : Error code. - * - ******************************************************************/ - - static TT_Error - Load_TrueType_Eblc( PFace face, - TT_EBLC* eblc ) - { - DEFINE_LOCALS; - - ULong eblc_offset; - UInt i; - Long table; - - TT_SBit_Strike* strike; - - - PTRACE2(( "Load_EBLC_Table( %08lx )\n", (long)face )); - - eblc->version = 0; - - /* Try to find the `EBLC' or `bloc' table in the font files. */ - /* Both tags describe the same table; `EBLC' is for OpenType */ - /* fonts while `bloc' is for TrueType GX fonts. Many fonts */ - /* contain both tags pointing to the same table. */ - - table = TT_LookUp_Table( face, TTAG_EBLC ); - if ( table < 0 ) - table = TT_LookUp_Table( face, TTAG_bloc ); - - if ( table < 0 ) - /* This table is optional */ - return TT_Err_Ok; - - eblc_offset = face->dirTables[table].Offset; - - if ( FILE_Seek( eblc_offset ) || - ACCESS_Frame( 8L ) ) - return error; - - eblc->version = GET_ULong(); - eblc->num_strikes = GET_ULong(); - - FORGET_Frame(); - - PTRACE2(( "-- Tables count: %12u\n", eblc->num_strikes )); - PTRACE2(( "-- Format version: %08lx\n", eblc->version )); - - if ( eblc->version != 0x00020000 ) - { - PERROR(( "Invalid file format!\n" )); - return TT_Err_Invalid_File_Format; - } - - if ( ALLOC_ARRAY( eblc->strikes, eblc->num_strikes, TT_SBit_Strike ) || - ACCESS_Frame( 48L * eblc->num_strikes ) ) - return error; - - strike = eblc->strikes; - - for ( i = 0; i < (UInt)eblc->num_strikes; i++, strike++ ) - { /* loop through the tables and get all entries */ - ULong indexTablesSize; - TT_SBit_Line_Metrics* metrics; - Int count; - - - strike->ranges_offset = GET_ULong(); - indexTablesSize = GET_ULong(); /* dont' save */ - - strike->num_ranges = GET_ULong(); - strike->color_ref = GET_ULong(); - - /* load horizontal and vertical metrics */ - metrics = &strike->hori; - for ( count = 2; count > 0; count-- ) - { - metrics->ascender = GET_Char(); - metrics->descender = GET_Char(); - metrics->max_width = GET_Byte(); - - metrics->caret_slope_numerator = GET_Char(); - metrics->caret_slope_denominator = GET_Char(); - metrics->caret_offset = GET_Char(); - - metrics->min_origin_SB = GET_Char(); - metrics->min_advance_SB = GET_Char(); - metrics->max_before_BL = GET_Char(); - metrics->min_after_BL = GET_Char(); - metrics->pads[0] = GET_Char(); - metrics->pads[1] = GET_Char(); - - metrics = &strike->vert; - } - - strike->start_glyph = GET_UShort(); - strike->end_glyph = GET_UShort(); - strike->x_ppem = GET_Byte(); - strike->y_ppem = GET_Byte(); - strike->bit_depth = GET_Byte(); - strike->flags = GET_Char(); - - PTRACE4(( " start - end - ppemX - ppemY\n" )); - PTRACE4(( " %04d - %04d - %3u - %3u\n", - strike->start_glyph, - strike->end_glyph, - strike->x_ppem, - strike->y_ppem )); - } - - FORGET_Frame(); - - /* Load EBLC index ranges */ - strike = eblc->strikes; - - for ( i = 0; i < eblc->num_strikes; i++, strike++ ) - { - TT_SBit_Range* range; - UShort count = strike->num_ranges; - - - /* loop through the tables and get all entries */ - if ( ALLOC_ARRAY( strike->sbit_ranges, - strike->num_ranges, - TT_SBit_Range ) || - FILE_Seek( eblc_offset + strike->ranges_offset ) || - ACCESS_Frame( strike->num_ranges * 8L ) ) - return error; - - for ( range = strike->sbit_ranges; count > 0; count--, range++ ) - { - range->first_glyph = GET_UShort(); - range->last_glyph = GET_UShort(); - range->table_offset = eblc_offset + strike->ranges_offset + - GET_ULong(); - } - FORGET_Frame(); - - /* Now, read each index table */ - range = strike->sbit_ranges; - for ( count = strike->num_ranges; count > 0; count--, range++ ) - { - /* Read the header */ - if ( FILE_Seek( range->table_offset ) || - ACCESS_Frame( 8L ) ) - return error;; - - range->index_format = GET_UShort(); - range->image_format = GET_UShort(); - range->image_offset = GET_ULong(); - - FORGET_Frame(); - - error = Load_SBit_Range( strike, range, face ); - if (error) return error; - } - } - - return TT_Err_Ok; - } - - - static void Free_TrueType_Eblc( TT_EBLC* eblc ) - { - if ( eblc ) - { - ULong i; - TT_SBit_Strike* strike = eblc->strikes; - - - strike = eblc->strikes; - - for ( i = eblc->num_strikes; i > 0; i--, strike++ ) - { - /* for each strike, release all glyph ranges */ - TT_SBit_Range* range = strike->sbit_ranges; - Int n; - - - for ( n = strike->num_ranges; n > 0; n--, range++ ) - { - /* release a range */ - FREE( range->glyph_offsets ); - FREE( range->glyph_codes ); - } - FREE( strike->sbit_ranges ); - strike->num_ranges = 0; - } - FREE( eblc->strikes ); - eblc->num_strikes = 0; - eblc->version = 0; - } - } - - - static TT_Error - Load_SBit_Metrics( TT_Big_Glyph_Metrics* metrics, - TT_SBit_Range* range, - ULong ebdt_offset, - PFace face ) - { - DEFINE_LOCALS; - - Byte height, width; - - - /* copy bitmap metrics for formats 2 and 5 */ - if ( ( ( range->index_format == 2 ) || ( range->index_format == 5 ) ) && - ( range->image_format == 5 ) ) - /* metrics are taken from current image bitmap */ - /* i.e. from `image.metrics' */ - { - TT_SBit_Metrics* rmetrics = &range->metrics; - - - metrics->bbox.xMin = rmetrics->horiBearingX; - metrics->bbox.xMax = metrics->bbox.xMin + rmetrics->width; - - metrics->bbox.yMax = rmetrics->horiBearingY; - metrics->bbox.yMin = metrics->bbox.yMax - rmetrics->height; - - metrics->horiBearingX = rmetrics->horiBearingX; - metrics->horiBearingY = metrics->bbox.yMax; - metrics->horiAdvance = rmetrics->horiAdvance; - - metrics->vertBearingX = rmetrics->vertBearingX; - metrics->vertBearingY = rmetrics->vertBearingY; - metrics->vertAdvance = rmetrics->vertAdvance; - - return TT_Err_Ok; - } - - switch ( range->image_format ) - { - case 1: - case 2: - case 6: - case 7: - case 8: - case 9: - { - Long length = 5L; - - - if ( range->image_format == 8 ) - length++; - - /* read the small metrics */ - if ( ACCESS_Frame( length ) ) - return error; - - height = GET_Byte(); - width = GET_Byte(); - - metrics->horiBearingX = GET_Char(); - metrics->horiBearingY = GET_Char(); - metrics->horiAdvance = GET_Byte(); - - FORGET_Frame(); - - metrics->bbox.xMin = metrics->horiBearingX; - metrics->bbox.yMax = metrics->horiBearingY; - metrics->bbox.xMax = metrics->bbox.xMin + width; - metrics->bbox.yMin = metrics->bbox.yMax - height; - - /* read the rest of the big metrics for the formats */ - /* that support it. */ - if ( ( range->image_format >= 6 ) && ( range->image_format != 8 ) ) - { - if ( ACCESS_Frame( 3L ) ) - return error; - - metrics->vertBearingX = (Int)GET_Char(); - metrics->vertBearingY = (Int)GET_Char(); - metrics->vertAdvance = (Int)GET_Char(); - - FORGET_Frame(); - } - else - { - /* XXX: How can we fill these when the information isn't */ - /* available? */ - metrics->vertBearingX = 0; - metrics->vertBearingY = 0; - metrics->vertAdvance = 0; - } - } - break; - - case 5: /* metrics are taken from current image bitmap */ - /* i.e. from 'image.metrics' */ - break; - - default: - PERROR(( "Unsupported embedded bitmap format!\n" )); - return TT_Err_Invalid_File_Format; - } - - return TT_Err_Ok; - } - - - static TT_Error - Load_SBit_Image( TT_SBit_Strike strike, - UShort glyph_index, - Byte x_offset, - Byte y_offset, - ULong ebdt_offset, - TT_SBit_Image* image, - UShort component_depth, - PFace face ) - { - DEFINE_LOCALS; - Byte height, width; - - ULong bitmap_offset; - - TT_SBit_Range* range = 0; - - TT_Big_Glyph_Metrics metrics; - - /********************************************************************/ - /* */ - /* Scan the strike's range for the position/metrics of the source */ - /* glyph. */ - { - UShort count = strike.num_ranges; - TT_SBit_Range* cur = strike.sbit_ranges; - - for ( ; count > 0; count--, cur++ ) - { - /* look for the glyph in the current range */ - switch ( cur->index_format ) - { - case 1: - case 2: - case 3: - if ( glyph_index >= cur->first_glyph && - glyph_index <= cur->last_glyph ) - { - UShort delta = glyph_index - cur->first_glyph; - - - range = cur; - bitmap_offset = cur->index_format == 2 - ? cur->image_offset + cur->image_size * delta - : cur->glyph_offsets[delta]; - goto Found; - } - break; - - case 4: - case 5: - { - UShort n; - - - for ( n = 0; (UInt)n < cur->num_glyphs; n++ ) - if ( cur->glyph_codes[n] == glyph_index ) - { - range = cur; - bitmap_offset = cur->index_format == 4 - ? cur->glyph_offsets[n] - : cur->image_offset + cur->image_size * n; - goto Found; - } - } - break; - - default: - return TT_Err_Invalid_Glyph_Index; - } - } - /* Not found */ - return TT_Err_Invalid_Glyph_Index; - } - - Found: - if ( FILE_Seek( ebdt_offset + bitmap_offset ) ) - return error; - - /* First of all, load the metrics if needed */ - error = Load_SBit_Metrics( &metrics, range, ebdt_offset, face ); - if ( error ) - return error; - - width = metrics.bbox.xMax - metrics.bbox.xMin; - height = metrics.bbox.yMax - metrics.bbox.yMin; - - if ( !component_depth ) - { - image->metrics = metrics; - - image->map.width = width; - image->map.rows = height; - - image->map.cols = (width + 7) >> 3; - image->map.size = height * image->map.cols; - - if ( REALLOC( image->map.bitmap, image->map.size ) ) - return error; - - MEM_Set( image->map.bitmap, 0, image->map.size ); - } - - /* Now, load the data as needed */ - switch ( range->image_format ) - { - case 1: - case 6: /* byte-aligned data */ - error = Load_BitmapData( image, - height * (( width + 7 ) >> 3), - x_offset, y_offset, - width, height, - 1, face ); - if ( error ) - return error; - break; - - case 2: - case 5: - case 7: - error = Load_BitmapData( image, - (width * height + 7) >> 3, - x_offset, y_offset, - width, height, 0, face ); - if ( error ) - return error; - break; - - case 8: - case 9: - { - /* Now, load composite sbit glyphs */ - /* This code is not sophisticated */ - - TT_SBit_Component* component_array; - UShort num_components; - - Int i = 0; - - - if ( ACCESS_Frame( 2L ) ) - return error; - num_components = GET_UShort(); - FORGET_Frame(); - - MEM_Alloc( component_array, - sizeof ( TT_SBit_Component ) * num_components ); - - if ( ACCESS_Frame( 4L * num_components ) ) - return error; - - for ( i = 0; i < num_components; i++ ) - { - component_array[i].glyph_code = GET_UShort(); - component_array[i].x_offset = GET_Char(); - component_array[i].y_offset = GET_Char(); - } - - FORGET_Frame(); - - component_depth++; - - for ( i = 0; i < num_components; i++ ) - { - error = Load_SBit_Image( strike, component_array[i].glyph_code, - component_array[i].x_offset, - component_array[i].y_offset, - ebdt_offset, - image, - component_depth, face ); - if ( error ) - return error; - } - FREE( component_array ); - break; - - default: - return TT_Err_Invalid_File_Format; - } - } - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function: Load_TrueType_Ebdt - * - ******************************************************************/ - - static TT_Error - Load_TrueType_Ebdt( PFace face, - TT_SBit_Strike strike, - ULong glyph_index, - TT_SBit_Image* image ) - { - DEFINE_LOCALS; - - ULong ebdt_offset; - ULong version; - Long i; - - - /* Try to find the `EBDT' or `bdat' table in the font files. */ - /* Both tags describe the same table, `EBDT' is for OpenType */ - /* fonts, while `bdat' is for TrueType GX fonts. Many fonts */ - /* contain both tags pointing to the same table */ - - i = TT_LookUp_Table( face, TTAG_EBDT ); - if ( i < 0 ) - i = TT_LookUp_Table( face, TTAG_bdat ); - - if ( i < 0 ) - return TT_Err_Table_Missing; - - ebdt_offset = face->dirTables[i].Offset; - - if ( FILE_Seek( ebdt_offset ) || - ACCESS_Frame( 4L ) ) /* read into frame */ - return error; - - version = GET_ULong(); - FORGET_Frame(); - - PTRACE2(( "-- Format version : %08lx\n", version )); - if ( version != 0x00020000 ) - { - PERROR(( "Invalid file format!\n" )); - return TT_Err_Invalid_File_Format; - } - - /* This doesn't compile, I simply commented it out ?? - David */ - /* PTRACE4(( "-- Format: %d\n", range->image_format )); */ - - error = Load_SBit_Image( strike, - glyph_index, - 0, 0, - ebdt_offset, - image, - 0, face ); - if ( error ) - return error; - - return TT_Err_Ok; - } - - - static TT_Error EBLC_Create( void* ext, - PFace face ) - { - TT_EBLC* eblc = (TT_EBLC*)ext; - - - /* by convention */ - if ( !eblc ) - return TT_Err_Ok; - - return Load_TrueType_Eblc( face, eblc ); - } - - - static TT_Error EBLC_Destroy( void* ext, - PFace face ) - { - TT_EBLC* eblc = (TT_EBLC*)ext; - - - (void)face; - - if ( eblc ) - Free_TrueType_Eblc( eblc ); - - return TT_Err_Ok; - } - - - /*************************************************************/ - /* */ - /* <Function> */ - /* TT_Init_SBit_Extension */ - /* */ - /* <Description> */ - /* Initialize the embedded bitmaps extension for the */ - /* FreeType engine. */ - /* */ - /* <Input> */ - /* engine :: handle to current FreeType library instance */ - /* */ - /* <Return> */ - /* Error code. 0 means success. */ - /* */ - FT_EXPORT_FUNC( TT_Error ) - TT_Init_SBit_Extension( TT_Engine engine ) - { - PEngine_Instance _engine = HANDLE_Engine( engine ); - - TT_Error error; - - - if ( !_engine ) - return TT_Err_Invalid_Engine; - - error = TT_Register_Extension( _engine, - SBIT_ID, - sizeof ( TT_EBLC ), - EBLC_Create, - EBLC_Destroy ); - - return error; - } - - - /*************************************************************/ - /* */ - /* <Function> */ - /* TT_Get_Face_Bitmaps */ - /* */ - /* <Description> */ - /* Loads the `EBLC' table from a font file, if any. */ - /* */ - /* <Input> */ - /* face :: handle to the source TrueType font/face */ - /* */ - /* <Output> */ - /* eblc_table :: a descriptor for the EBLC table */ - /* */ - /* <Return> */ - /* Error code. 0 means success. */ - /* */ - /* <Note> */ - /* This function returns TT_Err_Table_Missing if the */ - /* font contains no embedded bitmaps. All fields in */ - /* `eblc_table' will then be set to 0. */ - /* */ - FT_EXPORT_FUNC( TT_Error ) - TT_Get_Face_Bitmaps( TT_Face face, - TT_EBLC* eblc_table ) - { - PFace faze = HANDLE_Face( face ); - TT_EBLC* eblc; - TT_Error error; - - - error = TT_Extension_Get( faze, SBIT_ID, (void**)&eblc ); - if ( !error ) - { - if ( eblc->version ) - { - *eblc_table = *eblc; - return TT_Err_Ok; - } - error = TT_Err_Table_Missing; - } - - eblc_table->version = 0; - eblc_table->num_strikes = 0; - eblc_table->strikes = 0; - - return error; - } - - -/******************************************************************* - * - * <Function> TT_Get_SBit_Strike - * - * <Description> - * Loads suitable strike (bitmap sizetable) for given instance. - * This strike includes sbitLineMetrics. - * - * <Input> - * face :: the source face - * instance :: the current size instance - * - * <Output> - * strike :: the bitmap strike descriptor - * - * <Return> - * TrueType error code. 0 means success. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Get_SBit_Strike( TT_Face face, - TT_Instance instance, - TT_SBit_Strike* strike ) - { - TT_Error error; - PFace faze = HANDLE_Face( face ); - PInstance ins = HANDLE_Instance( instance ); - - TT_EBLC* eblc; - TT_Int x_ppem, y_ppem; - - - if ( !strike || !ins || ins->owner != faze ) - return TT_Err_Invalid_Argument; - - error = TT_Extension_Get( faze, SBIT_ID, (void**)&eblc ); - if ( error ) - goto Exit; - - /********************************************************************/ - /* */ - /* Look for an sbit strike that matches the current x and y ppms */ - /* */ - { - UShort count = eblc->num_strikes; - TT_SBit_Strike* cur = eblc->strikes; - - - x_ppem = ins->metrics.x_ppem; - y_ppem = ins->metrics.y_ppem; - - MEM_Set( strike, 0, sizeof ( TT_SBit_Strike ) ); - - for ( ; count > 0; count--, cur++ ) - if ( cur->x_ppem == x_ppem && - cur->y_ppem == y_ppem ) - { - *strike = *cur; - break; - } - - /* return immediately if we didn't find an appropriate strike */ - if ( !strike->num_ranges ) - error = TT_Err_Invalid_PPem; - } - - Exit: - return error; - } - - - /*************************************************************/ - /* */ - /* <Function> */ - /* TT_Load_Glyph_Bitmap */ - /* */ - /* <Description> */ - /* Loads a given glyph embedded bitmap. */ - /* */ - /* <Input> */ - /* face :: handle to the source TrueType font/face */ - /* instance :: current size/transform instance */ - /* glyph_index :: index of source glyph */ - /* bitmap :: target embedded bitmap descriptor */ - /* */ - /* <Return> */ - /* Error code. 0 means success. */ - /* */ - /* <Note> */ - /* This function returns an error if there is no */ - /* embedded bitmap for the glyph at the given */ - /* instance. */ - /* */ - FT_EXPORT_FUNC( TT_Error ) - TT_Load_Glyph_Bitmap( TT_Face face, - TT_Instance instance, - TT_UShort glyph_index, - TT_SBit_Image* image ) - { - TT_Stream stream; - TT_Error error; - - PFace faze = HANDLE_Face( face ); - PInstance ins = HANDLE_Instance( instance ); - - TT_SBit_Strike strike; - - - if ( ins->owner != faze ) - { - error = TT_Err_Invalid_Argument; - goto Fail; - } - - /********************************************************************/ - /* */ - /* Look for an sbit strike that matches the current x and y ppms */ - /* */ - error = TT_Get_SBit_Strike( face, instance, &strike ); - if ( error ) - goto Fail; - - /* return immediately if the glyph index isn't in the strike extent */ - if ( glyph_index < strike.start_glyph || - glyph_index > strike.end_glyph ) - { - error = TT_Err_Invalid_Glyph_Index; - goto Fail; - } - - { - image->bit_depth = 1; - - if ( !USE_Stream( faze->stream, stream ) ) - { - error = Load_TrueType_Ebdt( faze, strike, glyph_index, image ); - - DONE_Stream( stream ); - - /* exit successfully if we can */ - if ( !error ) - { - image->map.flow = TT_Flow_Down; - - Crop_Bitmap( image ); - - /* correct sbit metrics */ - { - TT_Big_Glyph_Metrics* metrics = &image->metrics; - - - metrics->bbox.xMin *= 64; - metrics->bbox.xMax *= 64; - - metrics->bbox.yMax *= 64; - metrics->bbox.yMin *= 64; - - metrics->horiBearingX *= 64; - metrics->horiBearingY *= 64; - metrics->horiAdvance *= 64; - - metrics->vertBearingX *= 64; - metrics->vertBearingY *= 64; - metrics->vertAdvance *= 64; - } - - goto Exit; - } - } - } - - Fail: - image->map.width = 0; - image->map.rows = 0; - image->map.cols = 0; - image->map.size = 0; - image->map.bitmap = 0; - image->map.flow = 0; - image->bit_depth = 0; - - Exit: - return error; - } - - - /*************************************************************/ - /* */ - /* <Function> */ - /* TT_New_SBit_Image */ - /* */ - /* <Description> */ - /* Allocates a new embedded bitmap container. */ - /* */ - /* <Output> */ - /* image :: sbit image */ - /* */ - /* <Return> */ - /* Error code. 0 means success. */ - /* */ - FT_EXPORT_FUNC( TT_Error ) - TT_New_SBit_Image( TT_SBit_Image** image ) - { - return MEM_Alloc( *image, sizeof ( **image ) ); - } - - - /*************************************************************/ - /* */ - /* <Function> */ - /* TT_Done_SBit_Image */ - /* */ - /* <Description> */ - /* Releases an embedded bitmap container. */ - /* */ - /* <Input> */ - /* image :: sbit image */ - /* */ - FT_EXPORT_FUNC( void ) - TT_Done_SBit_Image( TT_SBit_Image* image ) - { - FREE( image->map.bitmap ); - FREE( image ); - } - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxsbit.h b/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxsbit.h deleted file mode 100644 index 1df6280b54a..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxsbit.h +++ /dev/null @@ -1,490 +0,0 @@ -/******************************************************************* - * - * ftxsbit.h - * - * embedded bitmap support API extension - * - * Copyright 1996-2001 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - * - * This extension is used to load the embedded bitmaps present - * in certain TrueType files. - * - ******************************************************************/ - -#ifndef FTXSBIT_H -#define FTXSBIT_H - -#include "freetype.h" - -#ifdef __cplusplus -extern "C" { -#endif - - /*************************************************************/ - /* */ - /* <Struct> TT_SBit_Metrics */ - /* */ - /* <Description> */ - /* A structure used to hold the big metrics of a given */ - /* glyph bitmap in a TrueType or OpenType font. These */ - /* are usually found in the `EBDT' table. */ - /* */ - /* <Fields> */ - /* height :: glyph height in pixels */ - /* width :: glyph width in pixels */ - /* */ - /* horiBearingX :: horizontal left bearing */ - /* horiBearingY :: horizontal top bearing */ - /* horiAdvance :: horizontal advance */ - /* */ - /* vertBearingX :: vertical left bearing */ - /* vertBearingY :: vertical top bearing */ - /* vertAdvance :: vertical advance */ - /* */ - typedef struct TT_SBit_Metrics_ - { - TT_Byte height; - TT_Byte width; - - TT_Char horiBearingX; - TT_Char horiBearingY; - TT_Byte horiAdvance; - - TT_Char vertBearingX; - TT_Char vertBearingY; - TT_Byte vertAdvance; - - } TT_SBit_Metrics; - - - /*************************************************************/ - /* */ - /* <Struct> TT_SBit_Small_Metrics */ - /* */ - /* <Description> */ - /* A structure used to hold the small metrics of a given */ - /* glyph bitmap in a TrueType or OpenType font. These */ - /* are usually found in the `EBDT' table. */ - /* */ - /* <Fields> */ - /* height :: glyph height in pixels */ - /* width :: glyph width in pixels */ - /* */ - /* bearingX :: left-side bearing */ - /* bearingY :: top-side bearing */ - /* advance :: advance width or height */ - /* */ - typedef struct TT_SBit_Small_Metrics_ - { - TT_Byte height; - TT_Byte width; - - TT_Char bearingX; - TT_Char bearingY; - TT_Byte advance; - - } TT_SBit_Small_Metrics; - - - /*************************************************************/ - /* */ - /* <Struct> TT_SBit_Line_Metrics */ - /* */ - /* <Description> */ - /* A structure used to describe the text line metrics of */ - /* a given bitmap strike, for either horizontal or */ - /* vertical layout. */ - /* */ - /* <Fields> */ - /* ascender :: ascender in pixels */ - /* descender :: descender in pixels */ - /* max_width :: maximum glyph width in pixels */ - /* */ - /* caret_slope_enumerator :: Rise of the caret slope, */ - /* typically set to 1 for non-italic fonts. */ - /* caret_slope_denominator :: Rise of the caret slope, */ - /* typically set to 0 for non-italic fonts. */ - /* caret_offset :: Offset in pixels */ - /* to move the caret for proper positioning. */ - /* */ - /* min_origin_SB :: Minimum of horiBearingX */ - /* (resp. vertBearingY) */ - /* min_advance_SB :: Minimum of */ - /* (hori. advance - ( horiBearingX + width )) */ - /* (resp. vert. advance - ( vertBearingY + height )) */ - /* max_before_BL :: Maximum of horiBearingY */ - /* (resp. Maximum of vertBearingY) */ - /* min_after_BL :: Minimum of ( horiBearingY - height ) */ - /* (resp. vertBearingX - width ) */ - /* */ - typedef struct TT_SBit_Line_Metrics_ - { - TT_Char ascender; - TT_Char descender; - TT_Byte max_width; - TT_Char caret_slope_numerator; - TT_Char caret_slope_denominator; - TT_Char caret_offset; - TT_Char min_origin_SB; - TT_Char min_advance_SB; - TT_Char max_before_BL; - TT_Char min_after_BL; - TT_Char pads[2]; - - } TT_SBit_Line_Metrics; - - - /*************************************************************/ - /* */ - /* <Struct> TT_SBit_Range */ - /* */ - /* <Description> */ - /* A TrueType/OpenType subIndexTable as defined in the */ - /* `EBLC' or `bloc' tables. */ - /* */ - /* <Fields> */ - /* */ - /* first_glyph :: first glyph index in range */ - /* last_glyph :: last glyph index in range */ - /* */ - /* index_format :: format of index table. valid */ - /* values are 1 to 5. */ - /* */ - /* image_format :: format of `EBDT' image data */ - /* image_offset :: offset to image data in `EBDT' */ - /* */ - /* image_size :: for index formats 2 and 5. This is */ - /* the size in bytes of each glyph bitmap */ - /* glyph bitmap */ - /* */ - /* big_metrics :: for index formats 2 and 5. This is */ - /* the big metrics for each glyph bitmap */ - /* */ - /* num_glyphs :: for index formats 4 and 5. This is */ - /* the number of glyphs in the code */ - /* array. */ - /* */ - /* glyph_offsets :: for index formats 1 and 3. */ - /* glyph_codes :: for index formats 4 and 5. */ - /* */ - /* table_offset :: offset of index table in `EBLC' table */ - /* -- only used during strike loading. */ - /* */ - typedef struct TT_SBit_Range - { - TT_UShort first_glyph; - TT_UShort last_glyph; - - TT_UShort index_format; - TT_UShort image_format; - TT_ULong image_offset; - - TT_ULong image_size; - TT_SBit_Metrics metrics; - TT_ULong num_glyphs; - - TT_ULong* glyph_offsets; - TT_UShort* glyph_codes; - - TT_ULong table_offset; - - } TT_SBit_Range; - - - /*************************************************************/ - /* */ - /* <Struct> TT_SBit_Strike */ - /* */ - /* <Description> */ - /* A structure used describe a given bitmap strike in the */ - /* `EBLC' or `bloc' tables. */ - /* */ - /* <Fields> */ - /* */ - /* num_index_ranges :: number of index ranges */ - /* index_ranges :: array of glyph index ranges */ - /* */ - /* color_ref :: unused. color reference? */ - /* hori :: line metrics for horizontal layouts. */ - /* vert :: line metrics for vertical layouts. */ - /* */ - /* start_glyph :: lowest glyph index for this strike. */ - /* end_glyph :: higher glyph index for this strike. */ - /* */ - /* x_ppem :: horizontal pixels per EM */ - /* y_ppem :: vertical pixels per EM */ - /* bit_depth :: bit depth. valid values are 1, 2, 4 & 8 */ - /* flags :: vertical or horizontal? */ - /* */ - typedef struct TT_SBit_Strike_ - { - TT_Int num_ranges; - TT_SBit_Range* sbit_ranges; - TT_ULong ranges_offset; - - TT_ULong color_ref; - - TT_SBit_Line_Metrics hori; - TT_SBit_Line_Metrics vert; - - TT_UShort start_glyph; - TT_UShort end_glyph; - - TT_Byte x_ppem; - TT_Byte y_ppem; - TT_Byte bit_depth; - TT_Char flags; - - } TT_SBit_Strike; - - - /*************************************************************/ - /* */ - /* <Struct> TT_SBit_Component */ - /* */ - /* <Description> */ - /* A simple structure to describe a compound sbit element */ - /* */ - /* <Fields> */ - /* glyph_code :: element's glyph index */ - /* x_offset :: element's left bearing */ - /* y_offset :: element's top bearing */ - /* */ - typedef struct TT_SBit_Component_ - { - TT_UShort glyph_code; - TT_Char x_offset; - TT_Char y_offset; - - } TT_SBit_Component; - - - /*************************************************************/ - /* */ - /* <Struct> TT_SBit_Scale */ - /* */ - /* <Description> */ - /* A structure used describe a given bitmap scaling */ - /* table, as defined for the `EBSC' table. */ - /* */ - /* <Fields> */ - /* hori :: horizontal line metrics */ - /* vert :: vertical line metrics */ - /* */ - /* x_ppem :: horizontal pixels per EM */ - /* y_ppem :: vertical pixels per EM */ - /* */ - /* x_ppem_substitute :: substitution x_ppem */ - /* y_ppem_substitute :: substitution y_ppem */ - /* */ - typedef struct TT_SBit_Scale_ - { - TT_SBit_Line_Metrics hori; - TT_SBit_Line_Metrics vert; - - TT_Byte x_ppem; - TT_Byte y_ppem; - - TT_Byte x_ppem_substitute; - TT_Byte y_ppem_substitute; - - } TT_SBit_Scale; - - - /*************************************************************/ - /* */ - /* <Struct> TT_SBit_Image */ - /* */ - /* <Description> */ - /* A structure used to describe a given embedded bitmap */ - /* image. */ - /* */ - /* <Fields> */ - /* map :: bitmap descriptor */ - /* bit_depth :: pixel bit depth */ - /* metrics :: glyph metrics for the bitmap */ - /* */ - typedef struct TT_SBit_Image_ - { - TT_Raster_Map map; - int bit_depth; - TT_Big_Glyph_Metrics metrics; - - } TT_SBit_Image; - - - /*************************************************************/ - /* */ - /* <Struct> TT_EBLC */ - /* */ - /* <Description> */ - /* A structure used to describe the `EBLC' table from */ - /* a TrueType font. */ - /* */ - /* <Fields> */ - /* version :: version number of the EBLC table */ - /* */ - /* num_strikes :: the number of strikes, i.e. bitmap */ - /* sizes, present in this font */ - /* */ - /* strikes :: array of strikes */ - /* */ - typedef struct TT_EBLC_ - { - TT_ULong version; - TT_ULong num_strikes; - TT_SBit_Strike* strikes; - - } TT_EBLC; - - - - - /*************************************************************/ - /* */ - /* <Function> */ - /* TT_Init_SBit_Extension */ - /* */ - /* <Description> */ - /* Initializes the embedded bitmap extension for the */ - /* FreeType engine. */ - /* */ - /* <Input> */ - /* engine :: handle to current FreeType library instance */ - /* */ - /* <Return> */ - /* Error code. 0 means success. */ - /* */ - FT_EXPORT_DEF( TT_Error ) - TT_Init_SBit_Extension( TT_Engine engine ); - - - /*************************************************************/ - /* */ - /* <Function> */ - /* TT_Get_Face_Bitmaps */ - /* */ - /* <Description> */ - /* Loads the `EBLC' table from a font file, if any. */ - /* */ - /* <Input> */ - /* face :: handle to the source TrueType font/face */ - /* */ - /* <Output> */ - /* eblc_table :: a descriptor for the EBLC table */ - /* */ - /* <Return> */ - /* Error code. 0 means success. */ - /* */ - /* <Note> */ - /* This function returns TT_Err_Table_Missing if the */ - /* font contains no embedded bitmaps. All fields in */ - /* `eblc_table' will then be set to 0. */ - /* */ - FT_EXPORT_DEF( TT_Error ) - TT_Get_Face_Bitmaps( TT_Face face, - TT_EBLC* eblc_table ); - - - /*************************************************************/ - /* */ - /* <Function> */ - /* TT_New_SBit_Image */ - /* */ - /* <Description> */ - /* Allocates a new embedded bitmap container. */ - /* */ - /* <Output> */ - /* image :: sbit image */ - /* */ - /* <Return> */ - /* Error code. 0 means success. */ - /* */ - FT_EXPORT_DEF( TT_Error ) - TT_New_SBit_Image( TT_SBit_Image** image ); - - - /*************************************************************/ - /* */ - /* <Function> */ - /* TT_Done_SBit_Image */ - /* */ - /* <Description> */ - /* Releases an embedded bitmap container. */ - /* */ - /* <Input> */ - /* image :: sbit image */ - /* */ - FT_EXPORT_DEF( void ) - TT_Done_SBit_Image( TT_SBit_Image* image ); - - - /*************************************************************/ - /* */ - /* <Function> TT_Get_SBit_Strike */ - /* */ - /* <Description> */ - /* Loads a suitable strike (bitmap sizetable) for the */ - /* given instance. This strike includes */ - /* sbitLineMetrics. */ - /* */ - /* <Input> */ - /* face :: the source face */ - /* instance :: the current size instance */ - /* */ - /* <Output> */ - /* strike :: the bitmap strike descriptor */ - /* */ - /* <Return> */ - /* Error code. 0 means success. */ - /* */ - FT_EXPORT_DEF( TT_Error ) - TT_Get_SBit_Strike( TT_Face face, - TT_Instance instance, - TT_SBit_Strike* strike ); - - - /*************************************************************/ - /* */ - /* <Function> */ - /* TT_Load_Glyph_Bitmap */ - /* */ - /* <Description> */ - /* Loads a given glyph embedded bitmap. */ - /* */ - /* <Input> */ - /* face :: handle to the source TrueType font/face */ - /* instance :: current size/transform instance */ - /* glyph_index :: index of source glyph */ - /* bitmap :: target embedded bitmap descriptor */ - /* */ - /* <Return> */ - /* Error code. 0 means success. */ - /* */ - /* <Note> */ - /* This function returns an error if there is no */ - /* embedded bitmap for the glyph at the given */ - /* instance. */ - /* */ - FT_EXPORT_DEF( TT_Error ) - TT_Load_Glyph_Bitmap( TT_Face face, - TT_Instance instance, - TT_UShort glyph_index, - TT_SBit_Image* bitmap ); - -#ifdef __cplusplus -} -#endif - -#endif /* FTXSBIT_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxwidth.c b/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxwidth.c deleted file mode 100644 index f7879ed36a1..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxwidth.c +++ /dev/null @@ -1,185 +0,0 @@ -/******************************************************************* - * - * ftxwidth.c 1.0 - * - * Glyph Widths (and Heights) fast retrieval extension - * - * Copyright 1996-2001 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - * - * This extension is used to parse the "glyf" table of a TrueType - * file in order to extract the bbox of a given range of glyphs. - * - * The bbox is then used to build font unit widths and height - * that are returned in two parallel arrays. - * - * This extension is needed by the FreeType/2 OS/2 Font Driver. - * - ******************************************************************/ - - -#include "ftxwidth.h" -#include "ttdebug.h" -#include "ttobjs.h" -#include "ttfile.h" -#include "tttags.h" -#include "ttload.h" - -/* Required by the tracing mode */ - -#undef TT_COMPONENT -#define TT_COMPONENT trace_any - - - /******************************************************************/ - /* */ - /* Function: TT_Get_Face_Widths */ - /* */ - /* Description: Returns the widths and/or heights of a given */ - /* range of glyphs for a face. */ - /* */ - /* Input: */ - /* face :: face handle */ - /* */ - /* first_glyph :: first glyph in range */ - /* */ - /* last_glyph :: last glyph in range */ - /* */ - /* widths :: address of table receiving the widths */ - /* expressed in font units (ushorts). Set */ - /* this parameter to NULL if you're not */ - /* interested by these values. */ - /* */ - /* heights :: address of table receiving the heights */ - /* expressed in font units (ushorts). Set */ - /* this parameter to NULL if you're not */ - /* interested by these values. */ - /* */ - /* Returns: */ - /* Error code */ - /* */ - /* */ - /******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Get_Face_Widths( TT_Face face, - TT_UShort first_glyph, - TT_UShort last_glyph, - TT_UShort* widths, - TT_UShort* heights ) - { - DEFINE_ALL_LOCALS; - - PFace faze = HANDLE_Face(face); - UShort n; - Long table; - - ULong glyf_offset; /* offset of glyph table in file */ - UShort zero_width = 0; /* width of glyph 0 */ - UShort zero_height = 0; /* height of glyph 0 */ - - Bool zero_loaded = 0; - -#ifndef TT_HUGE_PTR - PStorage locations; -#else - Storage TT_HUGE_PTR * locations; -#endif - TT_BBox bbox; - - - if ( !faze ) - return TT_Err_Invalid_Face_Handle; - - if ( last_glyph >= faze->numGlyphs || - first_glyph > last_glyph ) - return TT_Err_Invalid_Argument; - - /* find "glyf" table */ - table = TT_LookUp_Table( faze, TTAG_glyf ); - if ( table < 0 ) - { - PERROR(( "ERROR: there is no glyph table in this font file!\n" )); - return TT_Err_Glyf_Table_Missing; - } - glyf_offset = faze->dirTables[table].Offset; - - /* now access stream */ - if ( USE_Stream( faze->stream, stream ) ) - return error; - - locations = faze->glyphLocations + first_glyph; - - /* loop to load each glyph in the range */ - for ( n = first_glyph; n <= last_glyph; n++ ) - { - if ( n + 1 < faze->numGlyphs && - locations[0] == locations[1] ) - { - /* Note : Glyph 0 is always used to indicate a missing glyph */ - /* in a range. We must thus return its width and height */ - /* where appropriate when we find an undefined glyph. */ - if ( zero_loaded == 0 ) - { - if ( FILE_Seek( glyf_offset + faze->glyphLocations[0] ) || - ACCESS_Frame( 10L ) ) - goto Fail; - - (void)GET_Short(); /* skip number of contours */ - - bbox.xMin = GET_Short(); - bbox.yMin = GET_Short(); - bbox.xMax = GET_Short(); - bbox.yMax = GET_Short(); - - FORGET_Frame(); - - zero_width = (UShort)(bbox.xMax - bbox.xMin); - zero_height = (UShort)(bbox.yMax - bbox.yMin); - zero_loaded = 1; - } - - if ( widths ) - *widths++ = zero_width; - - if ( heights ) - *heights++ = zero_height; - } - else - { - /* normal glyph, read header */ - if ( FILE_Seek( glyf_offset + locations[0] ) || - ACCESS_Frame( 10L ) ) - goto Fail; - - (void)GET_Short(); /* skip number of contours */ - - bbox.xMin = GET_Short(); - bbox.yMin = GET_Short(); - bbox.xMax = GET_Short(); - bbox.yMax = GET_Short(); - - FORGET_Frame(); - - if ( widths ) - *widths++ = (UShort)(bbox.xMax - bbox.xMin); - - if ( heights ) - *heights++ = (UShort)(bbox.yMax - bbox.yMin); - } - } - - Fail: - DONE_Stream( stream ); - return error; - } - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxwidth.h b/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxwidth.h deleted file mode 100644 index c7ebc3acb81..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/extend/ftxwidth.h +++ /dev/null @@ -1,80 +0,0 @@ -/******************************************************************* - * - * ftxwidth.h - * - * Glyph Widths (and Heights) fast retrieval extension. - * - * Copyright 1996-2001 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - * - * This extension is used to parse the `glyf' table of a TrueType - * file in order to extract the bounding box of a given range of glyphs. - * - * The bounding box is then used to build font unit widths and heights - * that are returned in two parallel arrays. - * - * This extension is needed by the FreeType/2 OS/2 Font Driver. - * - ******************************************************************/ - -#ifndef FTXWIDTH_H -#define FTXWIDTH_H - -#include "freetype.h" - -#ifdef __cplusplus -extern "C" { -#endif - - /******************************************************************/ - /* */ - /* Function: TT_Get_Face_Widths */ - /* */ - /* Description: Returns the widths and/or heights of a given */ - /* range of glyphs for a face. */ - /* */ - /* Input: */ - /* face :: face handle */ - /* */ - /* first_glyph :: first glyph in range */ - /* */ - /* last_glyph :: last glyph in range */ - /* */ - /* widths :: address of table receiving the widths */ - /* expressed in font units (ushorts). Set */ - /* this parameter to NULL if you're not */ - /* interested by these values. */ - /* */ - /* heights :: address of table receiving the heights */ - /* expressed in font units (ushorts). Set */ - /* this parameter to NULL if you're not */ - /* interested by these values */ - /* */ - /* Returns: */ - /* Error code */ - /* */ - /* */ - /******************************************************************/ - - FT_EXPORT_DEF( TT_Error ) - TT_Get_Face_Widths( TT_Face face, - TT_UShort first_glyph, - TT_UShort last_glyph, - TT_UShort* widths, - TT_UShort* heights ); - -#ifdef __cplusplus -} -#endif - -#endif /* FTXWIDTH_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/extend/readme.1st b/Build/source/libs/freetype/freetype-1.5/lib/extend/readme.1st deleted file mode 100644 index cce94cdfad1..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/extend/readme.1st +++ /dev/null @@ -1,61 +0,0 @@ -This directory contains several extensions to the core engine. - -An extension is a separately compilable unit which can be linked by -a client application to add new functionalities to the engine. - -There are two kinds of extensions: an `API extension' provides -clients with new APIs to access internal engine structures or data, -while an `engine extension' implements new TrueType data or table -management. - -This directory contains the following: - - ftxcmap: An API extension to iterate over cmaps. - - ftxgasp: A simple API extension which returns the TrueType `gasp' - table to client applications, when found in a font file. - Though this table is always loaded by the engine, there - is no function in the core API to access it. The reason - is simple: to demonstrate a simple API extension with - `ftxgasp'! - - ftxkern: This engine extension is used to access kerning data, - when available in a font file. Note that it implements - on-the-fly loading and retrieving of kerning tables. - However, it doesn't interpret or process the data, and - client applications should use it according to the - TrueType specification. - - ftxpost: An engine extension to load the PostScript glyph names - of the `post' table. See the `ftzoom' program for an - example how to use it. - - ftxwidth: A simple extension used to load the widths and heights - of a given range of glyphs in a face. Results are - expressed in unscaled font units. This is required by - the latest version of the FreeType/2 DLL to speed up - font loading in the GRE (the OS/2 GRaphics Engine). It - can be used by other applications though... - - ftxerr18: This extension simply converts a TrueType engine error - code into a corresponding string describing the error. - It is useful if you intend to write a package for end - users and want to give them not `Error code 135' but - `OS/2 table missing'. See docs/errstr.txt for a - description how to use it (really simple!). ftxerr18 - supports localization of error strings (that is: error - strings are automatically translated into supported - languages) using gettext(). See docs/i18n.txt about - using gettext. - - ftxsbit: Embedded bitmap support. This is an engine extension. - See e.g. the `ftstrtto' program for its usage. - - ftxopen, - ftxgsub, - ftxgpos, - ftxgdef: This is experimental stuff for TrueType Open support! - Please ignore it or help debugging :-) - - ---- END --- diff --git a/Build/source/libs/freetype/freetype-1.5/lib/freetype.h b/Build/source/libs/freetype/freetype-1.5/lib/freetype.h deleted file mode 100644 index ad6e434893c..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/freetype.h +++ /dev/null @@ -1,1184 +0,0 @@ -/******************************************************************* - * - * freetype.h - * - * High-level interface specification. - * - * Copyright 1996-2001, 2002 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - * Note: - * - * This is the only file that should be included by client - * application sources. All other types and functions defined - * in the `tt*.h' files are library internals and should not be - * included. - * - ******************************************************************/ - -#ifndef FREETYPE_H -#define FREETYPE_H - - -#define TT_FREETYPE_MAJOR 1 -#define TT_FREETYPE_MINOR 5 - - -#include "fterrid.h" -#include "ftnameid.h" - -#if defined(WIN32) -#ifdef FREETYPE_DLL -#ifdef MAKE_FREETYPE_DLL -#define FREETYPEDLL __declspec( dllexport) -#else -#define FREETYPEDLL __declspec( dllimport) -#endif -#else -#define FREETYPEDLL -#endif -#else /* ! WIN32 */ -#define FREETYPEDLL -#endif - -/*************************************************************************/ -/* Define FT_EXPORT_DEF as needed to use e.g. a DLL. */ -/* All variables and functions visible from outside have these prefixes. */ -/* */ -/* To make freetype.h independent from configuration files we check */ -/* whether FT_EXPORT_DEF has been defined already. */ - -/* Backward compatibility only. Don't use for new code. */ -#ifdef EXPORT_DEF -#define FT_EXPORT_DEF( type ) EXPORT_DEF type -#endif -/* End of backward compatibility section. */ - -#ifndef FT_EXPORT_DEF -#define FT_EXPORT_DEF( type ) extern type -#endif - -/* This is for variables; default is using the same as functions. */ -#ifndef FT_EXPORT_DECL -#define FT_EXPORT_DECL( type ) FT_EXPORT_DEF( type ) -#endif - -/* The same for TT_Text. If you define the HAVE_TT_TEXT macro, you have */ -/* to provide a typedef declaration for TT_Text before including this */ -/* file. */ - -#ifndef HAVE_TT_TEXT -#define HAVE_TT_TEXT - typedef char TT_Text; /* The data type to represent */ - /* file name string elements. */ -#endif - -#ifdef __cplusplus - extern "C" { -#endif - - - /*******************************************************************/ - /* */ - /* FreeType types definitions. */ - /* */ - /* All these begin with a 'TT_' prefix. */ - /* */ - /*******************************************************************/ - - typedef int TT_Bool; - - typedef signed long TT_Fixed; /* signed fixed 16.16 float */ - - typedef signed short TT_FWord; /* distance in FUnits */ - typedef unsigned short TT_UFWord; /* unsigned distance */ - - typedef char TT_String; - typedef signed char TT_Char; - typedef unsigned char TT_Byte; - typedef signed short TT_Short; - typedef unsigned short TT_UShort; - typedef int TT_Int; - typedef unsigned int TT_UInt; - typedef signed long TT_Long; - typedef unsigned long TT_ULong; - - typedef signed short TT_F2Dot14; /* Signed fixed float 2.14 used for */ - /* unit vectors, with layout */ - /* */ - /* s : 1 -- sign bit */ - /* m : 1 -- integer bit */ - /* f : 14 -- unsigned fractional */ - /* */ - /* `s:m' is the 2-bit signed int */ - /* value to which the positive */ - /* fractional part should be added. */ - - typedef signed long TT_F26Dot6; /* 26.6 fixed float, used for */ - /* glyph points pixel coordinates. */ - - typedef signed long TT_Pos; /* Point position, expressed either */ - /* in fractional pixels or notional */ - /* units, depending on context. */ - /* For example, glyph coordinates */ - /* returned by TT_Load_Glyph() are */ - /* expressed in font units if */ - /* scaling wasn't requested, and */ - /* in 26.6 fractional pixels if it */ - /* was. */ - - - struct TT_UnitVector_ /* guess what... */ - { - TT_F2Dot14 x; - TT_F2Dot14 y; - }; - - typedef struct TT_UnitVector_ TT_UnitVector; - - - struct TT_Vector_ /* simple vector type */ - { - TT_F26Dot6 x; - TT_F26Dot6 y; - }; - - typedef struct TT_Vector_ TT_Vector; - - - /* A simple 2x2 matrix used for transformations. */ - /* You should use 16.16 fixed floats. */ - /* */ - /* x' = xx*x + xy*y */ - /* y' = yx*x + yy*y */ - /* */ - - struct TT_Matrix_ - { - TT_Fixed xx, xy; - TT_Fixed yx, yy; - }; - - typedef struct TT_Matrix_ TT_Matrix; - - - /* A structure used to describe the source glyph to the renderer. */ - - struct TT_Outline_ - { - TT_Short n_contours; /* number of contours in glyph */ - TT_UShort n_points; /* number of points in the glyph */ - - TT_Vector* points; /* the outline's points */ - TT_Byte* flags; /* the points flags */ - TT_UShort* contours; /* the contour end points */ - - /* The following flag indicates that the outline owns the arrays it */ - /* refers to. Typically, this is true of outlines created from the */ - /* TT_New_Outline() API, while it isn't for those returned by */ - /* TT_Get_Glyph_Outline(). */ - - TT_Bool owner; /* The outline owns the coordinates, */ - /* flags and contours array it uses. */ - - /* The following flags are set automatically by */ - /* TT_Get_Glyph_Outline(). Their meaning is the following: */ - /* */ - /* high_precision If true, the scan-line converter will use a */ - /* higher precision to render bitmaps (i.e., a */ - /* 1/1024 pixel precision). This is important for */ - /* small ppem sizes. */ - /* */ - /* second_pass If true, the scan-line converter performs a */ - /* second sweep phase dedicated to find vertical */ - /* drop-outs. If false, only horizontal drop-outs */ - /* will be checked during the first vertical */ - /* sweep (yes, this is a bit confusing but it is */ - /* really the way it should work). This is */ - /* important for small ppems too. */ - /* */ - /* dropout_mode Specifies the TrueType drop-out mode to use for */ - /* continuity checking. Valid values are 0 (no */ - /* check), 1, 2, 4, and 5. */ - /* */ - /* Most of the engine's users will safely ignore these fields... */ - - TT_Bool high_precision; /* high precision rendering */ - TT_Bool second_pass; /* two sweeps rendering */ - TT_Char dropout_mode; /* dropout mode */ - }; - - typedef struct TT_Outline_ TT_Outline; - - - /* A structure used to describe a simple bounding box. */ - - struct TT_BBox_ - { - TT_Pos xMin; - TT_Pos yMin; - TT_Pos xMax; - TT_Pos yMax; - }; - - typedef struct TT_BBox_ TT_BBox; - - - /* A structure used to return glyph metrics. */ - /* */ - /* The `bearingX' isn't called `left-side bearing' anymore because */ - /* it has different meanings depending on the glyph's orientation. */ - /* */ - /* The same is true for `bearingY', which is the top-side bearing */ - /* defined by the TT_Spec, i.e., the distance from the baseline to */ - /* the top of the glyph's bbox. According to our current convention, */ - /* this is always the same as `bbox.yMax' but we make it appear for */ - /* consistency in its proper field. */ - /* */ - /* The `advance' field is the advance width for horizontal layout, */ - /* and advance height for vertical layouts. */ - - struct TT_Glyph_Metrics_ - { - TT_BBox bbox; /* glyph bounding box */ - - TT_Pos bearingX; /* left-side bearing */ - TT_Pos bearingY; /* top-side bearing, per se the TT spec */ - - TT_Pos advance; /* advance width (or height) */ - }; - - typedef struct TT_Glyph_Metrics_ TT_Glyph_Metrics; - - - /* A structure used to return horizontal _and_ vertical glyph */ - /* metrics. */ - /* */ - /* A glyph can be used either in a horizontal or vertical layout. */ - /* Its glyph metrics vary with orientation. The TT_Big_Glyph_Metrics */ - /* structure is used to return _all_ metrics in one call. */ - - struct TT_Big_Glyph_Metrics_ - { - TT_BBox bbox; /* glyph bounding box */ - - TT_Pos horiBearingX; /* left side bearing in horizontal layouts */ - TT_Pos horiBearingY; /* top side bearing in horizontal layouts */ - - TT_Pos vertBearingX; /* left side bearing in vertical layouts */ - TT_Pos vertBearingY; /* top side bearing in vertical layouts */ - - TT_Pos horiAdvance; /* advance width for horizontal layout */ - TT_Pos vertAdvance; /* advance height for vertical layout */ - - /* The following fields represent unhinted scaled metrics values. */ - /* They can be useful for applications needing to do some device */ - /* independent placement of glyphs. */ - /* */ - /* Applying these metrics to hinted glyphs will most surely ruin */ - /* the grid fitting performed by the bytecode interpreter. These */ - /* values are better used to compute accumulated positioning */ - /* distances. */ - - TT_Pos linearHoriBearingX; /* linearly scaled horizontal lsb */ - TT_Pos linearHoriAdvance; /* linearly scaled horizontal advance */ - - TT_Pos linearVertBearingY; /* linearly scaled vertical tsb */ - TT_Pos linearVertAdvance; /* linearly scaled vertical advance */ - }; - - typedef struct TT_Big_Glyph_Metrics_ TT_Big_Glyph_Metrics; - - - /* A structure used to return instance metrics. */ - - struct TT_Instance_Metrics_ - { - TT_F26Dot6 pointSize; /* char. size in points (1pt = 1/72 inch) */ - - TT_UShort x_ppem; /* horizontal pixels per EM square */ - TT_UShort y_ppem; /* vertical pixels per EM square */ - - TT_Fixed x_scale; /* 16.16 to convert from EM units to 26.6 pix */ - TT_Fixed y_scale; /* 16.16 to convert from EM units to 26.6 pix */ - - TT_UShort x_resolution; /* device horizontal resolution in dpi */ - TT_UShort y_resolution; /* device vertical resolution in dpi */ - }; - - typedef struct TT_Instance_Metrics_ TT_Instance_Metrics; - - - /* Flow constants: */ - /* */ - /* The flow of a bitmap refers to the way lines are oriented */ - /* within the bitmap data, i.e., the orientation of the Y */ - /* coordinate axis. */ - /* */ - /* For example, if the first bytes of the bitmap pertain to */ - /* its top-most line, then the flow is `down'. If these bytes */ - /* pertain to its lowest line, the the flow is `up'. */ - -#define TT_Flow_Down -1 /* bitmap is oriented from top to bottom */ -#define TT_Flow_Up 1 /* bitmap is oriented from bottom to top */ -#define TT_Flow_Error 0 /* an error occurred during rendering */ - - - /* A structure used to describe the target bitmap or pixmap to the */ - /* renderer. Note that there is nothing in this structure that */ - /* gives the nature of the buffer. */ - /* */ - /* IMPORTANT NOTE: */ - /* */ - /* In the case of a pixmap, the `width' and `cols' fields must */ - /* have the _same_ values, and _must_ be padded to 32-bits, i.e., */ - /* be a multiple of 4. Clipping problems will arise otherwise, */ - /* if not even page faults! */ - /* */ - /* The typical settings are: */ - /* */ - /* - for a WxH bitmap: */ - /* */ - /* rows = H */ - /* cols = (W+7) / 8 */ - /* width = W */ - /* flow = your_choice */ - /* */ - /* - for a WxH pixmap: */ - /* */ - /* rows = H */ - /* cols = (W+3) & ~3 */ - /* width = cols */ - /* flow = your_choice */ - - struct TT_Raster_Map_ - { - int rows; /* number of rows */ - int cols; /* number of columns (bytes) per row */ - int width; /* number of pixels per line */ - int flow; /* bitmap orientation */ - - void* bitmap; /* bit/pixmap buffer */ - long size; /* bit/pixmap size in bytes */ - }; - - typedef struct TT_Raster_Map_ TT_Raster_Map; - - - /* ------ The font header TrueType table structure ------ */ - - struct TT_Header_ - { - TT_Fixed Table_Version; - TT_Fixed Font_Revision; - - TT_Long CheckSum_Adjust; - TT_Long Magic_Number; - - TT_UShort Flags; - TT_UShort Units_Per_EM; - - TT_Long Created [2]; - TT_Long Modified[2]; - - TT_FWord xMin; - TT_FWord yMin; - TT_FWord xMax; - TT_FWord yMax; - - TT_UShort Mac_Style; - TT_UShort Lowest_Rec_PPEM; - - TT_Short Font_Direction; - TT_Short Index_To_Loc_Format; - TT_Short Glyph_Data_Format; - }; - - typedef struct TT_Header_ TT_Header; - - - /* ------ The horizontal header TrueType table structure ------ */ - - /*******************************************************/ - /* This structure is the one defined by the TrueType */ - /* specification, plus two fields used to link the */ - /* font-units metrics to the header. */ - - struct TT_Horizontal_Header_ - { - TT_Fixed Version; - TT_FWord Ascender; - TT_FWord Descender; - TT_FWord Line_Gap; - - TT_UFWord advance_Width_Max; /* advance width maximum */ - - TT_FWord min_Left_Side_Bearing; /* minimum left-sb */ - TT_FWord min_Right_Side_Bearing; /* minimum right-sb */ - TT_FWord xMax_Extent; /* xmax extents */ - TT_FWord caret_Slope_Rise; - TT_FWord caret_Slope_Run; - - TT_Short Reserved0, - Reserved1, - Reserved2, - Reserved3, - Reserved4; - - TT_Short metric_Data_Format; - TT_UShort number_Of_HMetrics; - - /* The following fields are not defined by the TrueType specification */ - /* but they're used to connect the metrics header to the relevant */ - /* `HMTX' or `VMTX' table. */ - - void* long_metrics; - void* short_metrics; - }; - - typedef struct TT_Horizontal_Header_ TT_Horizontal_Header; - - - /*******************************************************/ - /* This structure is the one defined by the TrueType */ - /* specification. Note that it has exactly the same */ - /* layout as the horizontal header (both are loaded */ - /* by the same function). */ - - struct TT_Vertical_Header_ - { - TT_Fixed Version; - TT_FWord Ascender; - TT_FWord Descender; - TT_FWord Line_Gap; - - TT_UFWord advance_Height_Max; /* advance height maximum */ - - TT_FWord min_Top_Side_Bearing; /* minimum left-sb or top-sb */ - TT_FWord min_Bottom_Side_Bearing; /* minimum right-sb or bottom-sb */ - TT_FWord yMax_Extent; /* xmax or ymax extents */ - TT_FWord caret_Slope_Rise; - TT_FWord caret_Slope_Run; - TT_FWord caret_Offset; - - TT_Short Reserved1, - Reserved2, - Reserved3, - Reserved4; - - TT_Short metric_Data_Format; - TT_UShort number_Of_VMetrics; - - /* The following fields are not defined by the TrueType specification */ - /* but they're used to connect the metrics header to the relevant */ - /* `HMTX' or `VMTX' table. */ - - void* long_metrics; - void* short_metrics; - }; - - typedef struct TT_Vertical_Header_ TT_Vertical_Header; - - - /* ------ The OS/2 table ------ */ - - /************************************************************************/ - /* Note that since FreeType 1.3, we support Mac fonts which do not have */ - /* an OS/2 table. In this case the `version' field will be set to */ - /* 0xFFFF by the table loader; all other fields should be 0. */ - - struct TT_OS2_ - { - TT_UShort version; /* 0x0001 */ - TT_FWord xAvgCharWidth; - TT_UShort usWeightClass; - TT_UShort usWidthClass; - TT_Short fsType; - TT_FWord ySubscriptXSize; - TT_FWord ySubscriptYSize; - TT_FWord ySubscriptXOffset; - TT_FWord ySubscriptYOffset; - TT_FWord ySuperscriptXSize; - TT_FWord ySuperscriptYSize; - TT_FWord ySuperscriptXOffset; - TT_FWord ySuperscriptYOffset; - TT_FWord yStrikeoutSize; - TT_FWord yStrikeoutPosition; - TT_Short sFamilyClass; - - TT_Byte panose[10]; - - TT_ULong ulUnicodeRange1; /* Bits 0-31 */ - TT_ULong ulUnicodeRange2; /* Bits 32-63 */ - TT_ULong ulUnicodeRange3; /* Bits 64-95 */ - TT_ULong ulUnicodeRange4; /* Bits 96-127 */ - - TT_Char achVendID[4]; - - TT_UShort fsSelection; - TT_UShort usFirstCharIndex; - TT_UShort usLastCharIndex; - TT_Short sTypoAscender; - TT_Short sTypoDescender; - TT_Short sTypoLineGap; - TT_UShort usWinAscent; - TT_UShort usWinDescent; - - /* only version 1 tables: */ - - TT_ULong ulCodePageRange1; /* Bits 0-31 */ - TT_ULong ulCodePageRange2; /* Bits 32-63 */ - - /* only version 2 tables: */ - - TT_Short sxHeight; - TT_Short sCapHeight; - TT_UShort usDefaultChar; - TT_UShort usBreakChar; - TT_UShort usMaxContext; - }; - - typedef struct TT_OS2_ TT_OS2; - - - /* ------ The PostScript table ------ */ - - struct TT_Postscript_ - { - TT_Fixed FormatType; - TT_Fixed italicAngle; - TT_FWord underlinePosition; - TT_FWord underlineThickness; - TT_ULong isFixedPitch; - TT_ULong minMemType42; - TT_ULong maxMemType42; - TT_ULong minMemType1; - TT_ULong maxMemType1; - - /* Glyph names follow in the file, but we don't */ - /* load them by default. See the ftxpost.c extension. */ - }; - - typedef struct TT_Postscript_ TT_Postscript; - - - /* ------ The horizontal device metrics table (`hdmx') ------ */ - - struct TT_Hdmx_Record_ - { - TT_Byte ppem; - TT_Byte max_width; - TT_Byte* widths; - }; - - typedef struct TT_Hdmx_Record_ TT_Hdmx_Record; - - - struct TT_Hdmx_ - { - TT_UShort version; - TT_Short num_records; - TT_Hdmx_Record* records; - }; - - typedef struct TT_Hdmx_ TT_Hdmx; - - - /* A structure used to describe face properties. */ - - struct TT_Face_Properties_ - { - TT_UShort num_Glyphs; /* number of glyphs in face */ - TT_UShort max_Points; /* maximum number of points in a glyph */ - TT_UShort max_Contours; /* maximum number of contours in a glyph */ - - TT_UShort num_CharMaps; /* number of charmaps in the face */ - TT_UShort num_Names; /* number of name records in the face */ - - TT_ULong num_Faces; /* 1 for normal TrueType files, and the */ - /* number of embedded faces for TrueType */ - /* collections */ - - TT_Header* header; /* TrueType header table */ - TT_Horizontal_Header* horizontal; /* TrueType horizontal header */ - TT_OS2* os2; /* TrueType OS/2 table */ - TT_Postscript* postscript; /* TrueType Postscript table */ - TT_Hdmx* hdmx; /* TrueType hor. dev. metr. table */ - TT_Vertical_Header* vertical; /* TT Vertical header, if present */ - }; - - typedef struct TT_Face_Properties_ TT_Face_Properties; - - - /* Here are the definitions of the handle types used for FreeType's */ - /* most common objects accessed by the client application. We use */ - /* a simple trick: */ - /* */ - /* Each handle type is a structure that only contains one */ - /* pointer. The advantage of structures is that they are */ - /* mutually exclusive types. We could have defined the */ - /* following types: */ - /* */ - /* typedef void* TT_Stream; */ - /* typedef void* TT_Face; */ - /* typedef void* TT_Instance; */ - /* typedef void* TT_Glyph; */ - /* typedef void* TT_CharMap; */ - /* */ - /* but these would have allowed lines like: */ - /* */ - /* stream = instance; */ - /* */ - /* in the client code this would be a severe bug, unnoticed */ - /* by the compiler! */ - /* */ - /* Thus, we enforce type checking with a simple language */ - /* trick... */ - /* */ - /* NOTE: Some macros are defined in tttypes.h to perform */ - /* automatic type conversions for library hackers... */ - - struct TT_Engine_ { void* z; }; - struct TT_Stream_ { void* z; }; - struct TT_Face_ { void* z; }; - struct TT_Instance_ { void* z; }; - struct TT_Glyph_ { void* z; }; - struct TT_CharMap_ { void* z; }; - - typedef struct TT_Engine_ TT_Engine; /* engine instance */ - typedef struct TT_Stream_ TT_Stream; /* stream handle type */ - typedef struct TT_Face_ TT_Face; /* face handle type */ - typedef struct TT_Instance_ TT_Instance; /* instance handle type */ - typedef struct TT_Glyph_ TT_Glyph; /* glyph handle type */ - typedef struct TT_CharMap_ TT_CharMap; /* character map handle type */ - - - /* Almost all functions return an error code of this type. */ - - typedef long TT_Error; - - - /*******************************************************************/ - /* */ - /* FreeType API */ - /* */ - /* All these begin with a `TT_' prefix. */ - /* */ - /* Most of them are implemented in the `ttapi.c' source file. */ - /* */ - /*******************************************************************/ - - /* Get version information. */ - - FT_EXPORT_DEF( TT_Error ) - TT_FreeType_Version( int *major, - int *minor ); - - - /* Initialize the engine. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Init_FreeType( TT_Engine* engine ); - - - /* Finalize the engine, and release all allocated objects. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Done_FreeType( TT_Engine engine ); - - - /* Set the gray level palette. This is an array of 5 bytes used */ - /* to produce the font smoothed pixmaps. By convention: */ - /* */ - /* palette[0] = background (white) */ - /* palette[1] = light */ - /* palette[2] = medium */ - /* palette[3] = dark */ - /* palette[4] = foreground (black) */ - /* */ - - FT_EXPORT_DEF( TT_Error ) - TT_Set_Raster_Gray_Palette( TT_Engine engine, - TT_Byte* palette ); - - - /* ----------------------- face management ----------------------- */ - - /* Open a new TrueType font file, and returns a handle for */ - /* it in variable '*face'. */ - /* */ - /* Note: The file can be either a TrueType file (*.ttf) or */ - /* a TrueType collection (*.ttc, in this case, only */ - /* the first face is opened). The number of faces in */ - /* the same collection can be obtained in the face's */ - /* properties, using TT_Get_Face_Properties() and the */ - /* `max_Faces' field. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Open_Face( TT_Engine engine, - const TT_Text* fontPathName, - TT_Face* face ); - - - /* Open a TrueType font file located inside a collection. */ - /* The font is assigned by its index in `fontIndex'. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Open_Collection( TT_Engine engine, - const TT_Text* collectionPathName, - TT_ULong fontIndex, - TT_Face* face ); - - - /* Return face properties in the `properties' structure. */ - /* */ - /* Note that since version 1.3, we support font files with no */ - /* OS/2 table (mainly old Mac fonts). In this case, the OS/2 */ - /* `version' field will be set to 0xFFFF, and all other fields */ - /* will be zeroed. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Get_Face_Properties( TT_Face face, - TT_Face_Properties* properties ); - - - /* Set a face object's generic pointer */ - - FT_EXPORT_DEF( TT_Error ) - TT_Set_Face_Pointer( TT_Face face, - void* data ); - - - /* Get a face object's generic pointer */ - - FT_EXPORT_DEF( void* ) - TT_Get_Face_Pointer( TT_Face face ); - - - /* Close a face's file handle to save system resources. The file */ - /* will be re-opened automatically on the next disk access. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Flush_Face( TT_Face face ); - - /* Get a face's glyph metrics expressed in font units. Returns any */ - /* number of arrays. Set the fields to NULL if you are not interested */ - /* by a given array. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Get_Face_Metrics( TT_Face face, - TT_UShort firstGlyph, - TT_UShort lastGlyph, - TT_Short* leftBearings, - TT_UShort* widths, - TT_Short* topBearings, - TT_UShort* heights ); - - - /* Close a given font object, destroying all associated */ - /* instances. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Close_Face( TT_Face face ); - - - /* Get font or table data. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Get_Font_Data( TT_Face face, - TT_ULong tag, - TT_Long offset, - void* buffer, - TT_Long* length ); - - -/* A simple macro to build table tags from ASCII chars */ - -#define MAKE_TT_TAG( _x1, _x2, _x3, _x4 ) \ - (((TT_ULong)_x1 << 24) | \ - ((TT_ULong)_x2 << 16) | \ - ((TT_ULong)_x3 << 8) | \ - (TT_ULong)_x4) - - - - /* ----------------------- instance management -------------------- */ - - /* Open a new font instance and returns an instance handle */ - /* for it in `*instance'. */ - - FT_EXPORT_DEF( TT_Error ) - TT_New_Instance( TT_Face face, - TT_Instance* instance ); - - - /* Set device resolution for a given instance. The values are */ - /* given in dpi (Dots Per Inch). Default is 96 in both directions. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Set_Instance_Resolutions( TT_Instance instance, - TT_UShort xResolution, - TT_UShort yResolution ); - - - /* Set the pointsize for a given instance. Default is 10pt. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Set_Instance_CharSize( TT_Instance instance, - TT_F26Dot6 charSize ); - - FT_EXPORT_DEF( TT_Error ) - TT_Set_Instance_CharSizes( TT_Instance instance, - TT_F26Dot6 charWidth, - TT_F26Dot6 charHeight ); - -#define TT_Set_Instance_PointSize( ins, ptsize ) \ - TT_Set_Instance_CharSize( ins, ptsize*64L ) - - FT_EXPORT_DEF( TT_Error ) - TT_Set_Instance_PixelSizes( TT_Instance instance, - TT_UShort pixelWidth, - TT_UShort pixelHeight, - TT_F26Dot6 pointSize ); - - - /* This function has been deprecated! Do not use it, as it */ - /* doesn't work reliably. You can perfectly control hinting */ - /* yourself when loading glyphs, then apply transforms as usual. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Set_Instance_Transform_Flags( TT_Instance instance, - TT_Bool rotated, - TT_Bool stretched ); - - - /* Return instance metrics in `metrics'. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Get_Instance_Metrics( TT_Instance instance, - TT_Instance_Metrics* metrics ); - - - /* Set an instance's generic pointer. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Set_Instance_Pointer( TT_Instance instance, - void* data ); - - - /* Get an instance's generic pointer. */ - - FT_EXPORT_DEF( void* ) - TT_Get_Instance_Pointer( TT_Instance instance ); - - - /* Close a given instance object, destroying all associated data. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Done_Instance( TT_Instance instance ); - - - - /* ----------------------- glyph management ----------------------- */ - - /* Create a new glyph object related to the given `face'. */ - - FT_EXPORT_DEF( TT_Error ) - TT_New_Glyph( TT_Face face, - TT_Glyph* glyph ); - - - /* Discard (and destroy) a given glyph object. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Done_Glyph( TT_Glyph glyph ); - - -#define TTLOAD_SCALE_GLYPH 1 -#define TTLOAD_HINT_GLYPH 2 -#define TTLOAD_PEDANTIC 128 -#define TTLOAD_IGNORE_GLOBAL_ADVANCE_WIDTH 256 - -#define TTLOAD_DEFAULT (TTLOAD_SCALE_GLYPH | TTLOAD_HINT_GLYPH) - - - /* Load and process (scale/transform and hint) a glyph from the */ - /* given `instance'. The glyph and instance handles must be */ - /* related to the same face object. The glyph index can be */ - /* computed with a call to TT_Char_Index(). */ - /* */ - /* The 'load_flags' argument is a combination of the macros */ - /* TTLOAD_SCALE_GLYPH and TTLOAD_HINT_GLYPH. Hinting will be */ - /* applied only if the scaling is selected. */ - /* */ - /* If scaling is off (i.e., load_flags = 0), the returned */ - /* outlines are in EM square coordinates (also called FUnits), */ - /* extracted directly from the font with no hinting. Other */ - /* glyph metrics are also in FUnits. */ - /* */ - /* If scaling is on, the returned outlines are in fractional */ - /* pixel units (i.e. TT_F26Dot6 = 26.6 fixed floats). */ - /* */ - /* NOTE: The glyph index must be in the range 0..num_glyphs-1, */ - /* where `num_glyphs' is the total number of glyphs in */ - /* the font file (given in the face properties). */ - - FT_EXPORT_DEF( TT_Error ) - TT_Load_Glyph( TT_Instance instance, - TT_Glyph glyph, - TT_UShort glyphIndex, - TT_UShort loadFlags ); - - - /* Return glyph outline pointers in `outline'. Note that the returned */ - /* pointers are owned by the glyph object, and will be destroyed with */ - /* it. The client application should _not_ change the pointers. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Get_Glyph_Outline( TT_Glyph glyph, - TT_Outline* outline ); - - - /* Copy the glyph metrics into `metrics'. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Get_Glyph_Metrics( TT_Glyph glyph, - TT_Glyph_Metrics* metrics ); - - - /* Copy the glyph's big metrics into `metrics'. */ - /* Necessary to obtain vertical metrics. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Get_Glyph_Big_Metrics( TT_Glyph glyph, - TT_Big_Glyph_Metrics* metrics ); - - - /* Render the glyph into a bitmap, with given position offsets. */ - /* */ - /* Note: Only use integer pixel offsets to preserve the fine */ - /* hinting of the glyph and the `correct' anti-aliasing */ - /* (where vertical and horizontal stems aren't grayed). This */ - /* means that `xOffset' and `yOffset' must be multiples */ - /* of 64! */ - - FT_EXPORT_DEF( TT_Error ) - TT_Get_Glyph_Bitmap( TT_Glyph glyph, - TT_Raster_Map* bitmap, - TT_F26Dot6 xOffset, - TT_F26Dot6 yOffset ); - - - /* Render the glyph into a pixmap, with given position offsets. */ - /* */ - /* Note: Only use integer pixel offsets to preserve the fine */ - /* hinting of the glyph and the `correct' anti-aliasing */ - /* (where vertical and horizontal stems aren't grayed). This */ - /* means that `xOffset' and `yOffset' must be multiples */ - /* of 64! */ - - FT_EXPORT_DEF( TT_Error ) - TT_Get_Glyph_Pixmap( TT_Glyph glyph, - TT_Raster_Map* pixmap, - TT_F26Dot6 xOffset, - TT_F26Dot6 yOffset ); - - - - /* ----------------------- outline support ------------------------ */ - - /* Allocate a new outline. Reserve space for `numPoints' and */ - /* `numContours'. */ - - FT_EXPORT_DEF( TT_Error ) - TT_New_Outline( TT_UShort numPoints, - TT_Short numContours, - TT_Outline* outline ); - - - /* Release an outline. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Done_Outline( TT_Outline* outline ); - - - /* Copy an outline into another one. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Copy_Outline( TT_Outline* source, - TT_Outline* target ); - - - /* Render an outline into a bitmap. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Get_Outline_Bitmap( TT_Engine engine, - TT_Outline* outline, - TT_Raster_Map* bitmap ); - - - /* Render an outline into a pixmap. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Get_Outline_Pixmap( TT_Engine engine, - TT_Outline* outline, - TT_Raster_Map* pixmap ); - - - /* Return an outline's bounding box -- this function is slow as it */ - /* performs a complete scan-line process, without drawing, to get */ - /* the most accurate values. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Get_Outline_BBox( TT_Outline* outline, - TT_BBox* bbox ); - - - /* Apply a transformation to a glyph outline. */ - - FT_EXPORT_DEF( void ) - TT_Transform_Outline( TT_Outline* outline, - TT_Matrix* matrix ); - - - /* Apply a translation to a glyph outline. */ - - FT_EXPORT_DEF( void ) - TT_Translate_Outline( TT_Outline* outline, - TT_F26Dot6 xOffset, - TT_F26Dot6 yOffset ); - - - /* Apply a transformation to a vector. */ - - FT_EXPORT_DEF( void ) - TT_Transform_Vector( TT_F26Dot6* x, - TT_F26Dot6* y, - TT_Matrix* matrix ); - - - /* Compute A*B/C with 64 bits intermediate precision. */ - - FT_EXPORT_DEF( TT_Long ) - TT_MulDiv( TT_Long A, - TT_Long B, - TT_Long C ); - - - /* Compute A*B/0x10000 with 64 bits intermediate precision. */ - /* Useful to multiply by a 16.16 fixed float value. */ - - FT_EXPORT_DEF( TT_Long ) - TT_MulFix( TT_Long A, - TT_Long B ); - - - /* ----------------- character mapping support --------------- */ - - /* Return the number of character mappings found in this file. */ - /* Returns -1 in case of failure (invalid face handle). */ - /* */ - /* DON'T USE THIS FUNCTION! IT HAS BEEN DEPRECATED! */ - /* */ - /* It is retained for backwards compatibility only and will */ - /* fail on 16bit systems. */ - /* */ - /* You can now get the charmap count in the `num_CharMaps' */ - /* field of a face's properties. */ - /* */ - - FT_EXPORT_DEF( int ) - TT_Get_CharMap_Count( TT_Face face ); - - - /* Return the ID of charmap number `charmapIndex' of a given face */ - /* used to enumerate the charmaps present in a TrueType file. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Get_CharMap_ID( TT_Face face, - TT_UShort charmapIndex, - TT_UShort* platformID, - TT_UShort* encodingID ); - - - /* Look up the character maps found in `face' and return a handle */ - /* for the one matching `platformID' and `platformEncodingID' */ - /* (see the TrueType specs relating to the `cmap' table for */ - /* information on these ID numbers). Returns an error code. */ - /* In case of failure, the handle is set to NULL and is invalid. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Get_CharMap( TT_Face face, - TT_UShort charmapIndex, - TT_CharMap* charMap ); - - - /* Translate a character code through a given character map */ - /* and return the corresponding glyph index to be used in */ - /* a TT_Load_Glyph() call. This function returns 0 in case */ - /* of failure. */ - - FT_EXPORT_DEF( TT_UShort ) - TT_Char_Index( TT_CharMap charMap, - TT_ULong charCode ); - - - - /* --------------------- names table support ------------------- */ - - /* Return the number of name strings found in the name table. */ - /* Returns -1 in case of failure (invalid face handle). */ - /* */ - /* DON'T USE THIS FUNCTION! IT HAS BEEN DEPRECATED! */ - /* */ - /* It is retained for backwards compatibility only and will */ - /* fail on 16bit systems. */ - /* */ - /* You can now get the number of name strings in a face with */ - /* the `num_Names' field of its properties. */ - - FT_EXPORT_DEF( int ) - TT_Get_Name_Count( TT_Face face ); - - - /* Return the ID of the name number `nameIndex' of a given face */ - /* used to enumerate the charmaps present in a TrueType file. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Get_Name_ID( TT_Face face, - TT_UShort nameIndex, - TT_UShort* platformID, - TT_UShort* encodingID, - TT_UShort* languageID, - TT_UShort* nameID ); - - - /* Return the address and length of the name number `nameIndex' */ - /* of a given face in the variables `stringPtr' resp. `length'. */ - /* The string is part of the face object and shouldn't be */ - /* written to or released. */ - /* */ - /* Note that for an invalid platform ID a null pointer will be */ - /* returned. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Get_Name_String( TT_Face face, - TT_UShort nameIndex, - TT_String** stringPtr, - TT_UShort* length ); - - -#ifdef __cplusplus - } -#endif - -#endif /* FREETYPE_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/fterrid.h b/Build/source/libs/freetype/freetype-1.5/lib/fterrid.h deleted file mode 100644 index 54cd150d8cf..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/fterrid.h +++ /dev/null @@ -1,162 +0,0 @@ -/******************************************************************* - * - * fterrid.h - * - * TrueType Error ID definitions - * - * Copyright 1996-2001 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - ******************************************************************/ - -#ifndef FREETYPE_H -#error "Don't include this file! Use freetype.h instead." -#endif - -#ifndef FTERRID_H -#define FTERRID_H - - /************************ error codes declaration **************/ - - /* The error codes are grouped in 'classes' used to indicate the */ - /* 'level' at which the error happened. */ - /* The class is given by an error code's high byte. */ - - - /* ------------- Success is always 0 -------- */ - -#define TT_Err_Ok 0 - - - /* -------- High-level API error codes ------ */ - -#define TT_Err_Invalid_Face_Handle 0x001 -#define TT_Err_Invalid_Instance_Handle 0x002 -#define TT_Err_Invalid_Glyph_Handle 0x003 -#define TT_Err_Invalid_CharMap_Handle 0x004 -#define TT_Err_Invalid_Result_Address 0x005 -#define TT_Err_Invalid_Glyph_Index 0x006 -#define TT_Err_Invalid_Argument 0x007 -#define TT_Err_Could_Not_Open_File 0x008 -#define TT_Err_File_Is_Not_Collection 0x009 - -#define TT_Err_Table_Missing 0x00A -#define TT_Err_Invalid_Horiz_Metrics 0x00B -#define TT_Err_Invalid_CharMap_Format 0x00C -#define TT_Err_Invalid_PPem 0x00D -#define TT_Err_Invalid_Vert_Metrics 0x00E - -#define TT_Err_Invalid_File_Format 0x010 - -#define TT_Err_Invalid_Engine 0x020 -#define TT_Err_Too_Many_Extensions 0x021 -#define TT_Err_Extensions_Unsupported 0x022 -#define TT_Err_Invalid_Extension_Id 0x023 - -#define TT_Err_No_Vertical_Data 0x030 - -#define TT_Err_Max_Profile_Missing 0x080 -#define TT_Err_Header_Table_Missing 0x081 -#define TT_Err_Horiz_Header_Missing 0x082 -#define TT_Err_Locations_Missing 0x083 -#define TT_Err_Name_Table_Missing 0x084 -#define TT_Err_CMap_Table_Missing 0x085 -#define TT_Err_Hmtx_Table_Missing 0x086 -#define TT_Err_OS2_Table_Missing 0x087 -#define TT_Err_Post_Table_Missing 0x088 -#define TT_Err_Glyf_Table_Missing 0x089 - - - /* -------- Memory component error codes ---- */ - - /* this error indicates that an operation cannot */ - /* be performed due to memory exhaustion. */ - -#define TT_Err_Out_Of_Memory 0x100 - - - /* -------- File component error codes ------ */ - - /* these error codes indicate that the file could */ - /* not be accessed properly. Usually, this means */ - /* a broken font file! */ - -#define TT_Err_Invalid_File_Offset 0x200 -#define TT_Err_Invalid_File_Read 0x201 -#define TT_Err_Invalid_Frame_Access 0x202 - - - /* -------- Glyph loader error codes -------- */ - - /* Produced only by the glyph loader, these error */ - /* codes indicate a broken glyph in a font file. */ - -#define TT_Err_Too_Many_Points 0x300 -#define TT_Err_Too_Many_Contours 0x301 -#define TT_Err_Invalid_Composite 0x302 -#define TT_Err_Too_Many_Ins 0x303 -#define TT_Err_Too_Many_FDefs 0x304 - - - /* --- bytecode interpreter error codes ----- */ - - /* These error codes are produced by the TrueType */ - /* bytecode interpreter. They usually indicate a */ - /* broken font file, a broken glyph within a font */ - /* file, or a bug in the interpreter! */ - -#define TT_Err_Invalid_Opcode 0x400 -#define TT_Err_Too_Few_Arguments 0x401 -#define TT_Err_Stack_Overflow 0x402 -#define TT_Err_Code_Overflow 0x403 -#define TT_Err_Bad_Argument 0x404 -#define TT_Err_Divide_By_Zero 0x405 -#define TT_Err_Storage_Overflow 0x406 -#define TT_Err_Cvt_Overflow 0x407 -#define TT_Err_Invalid_Reference 0x408 -#define TT_Err_Invalid_Distance 0x409 -#define TT_Err_Interpolate_Twilight 0x40A -#define TT_Err_Debug_OpCode 0x40B -#define TT_Err_ENDF_In_Exec_Stream 0x40C -#define TT_Err_Out_Of_CodeRanges 0x40D -#define TT_Err_Nested_DEFS 0x40E -#define TT_Err_Invalid_CodeRange 0x40F -#define TT_Err_Invalid_Displacement 0x410 -#define TT_Err_Execution_Too_Long 0x411 - - - /* ------ internal failure error codes ----- */ - - /* These error codes are produced when an incoherent */ - /* library state has been detected. These reflect a */ - /* severe bug in the engine! (Or a major overwrite */ - /* of your application into the library's data.) */ - -#define TT_Err_Nested_Frame_Access 0x500 -#define TT_Err_Invalid_Cache_List 0x501 -#define TT_Err_Could_Not_Find_Context 0x502 -#define TT_Err_Unlisted_Object 0x503 - - - /* ---- scan-line converter error codes ----- */ - - /* These error codes are produced by the raster component. */ - /* They indicate that an outline structure was incoherently */ - /* setup, or that you're trying to render an horribly */ - /* complex glyph! */ - -#define TT_Err_Raster_Pool_Overflow 0x600 -#define TT_Err_Raster_Negative_Height 0x601 -#define TT_Err_Raster_Invalid_Value 0x602 -#define TT_Err_Raster_Not_Initialized 0x603 - -#endif /* FTERRID_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/ftnameid.h b/Build/source/libs/freetype/freetype-1.5/lib/ftnameid.h deleted file mode 100644 index eb804211b9d..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/ftnameid.h +++ /dev/null @@ -1,877 +0,0 @@ -/******************************************************************* - * - * ftnameid.h - * - * TrueType Name ID definitions - * - * Copyright 1996-2001 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - ******************************************************************/ - -#ifndef FREETYPE_H -#error "Don't include this file! Use freetype.h instead." -#endif - -#ifndef FTNAMEID_H -#define FTNAMEID_H - -/* - * possible values for the 'Platform' identifier code in the name - * records of the TTF "name" table - */ - -#define TT_PLATFORM_APPLE_UNICODE 0 -#define TT_PLATFORM_MACINTOSH 1 -#define TT_PLATFORM_ISO 2 /* deprecated */ -#define TT_PLATFORM_MICROSOFT 3 -#define TT_PLATFORM_CUSTOM 4 - - -/* - * possible values of the platform specific encoding identifier field in - * the name records of the TTF "name" table when the 'Platform' identifier - * code is TT_PLATFORM_APPLE_UNICODE - */ - -#define TT_APPLE_ID_DEFAULT 0 -#define TT_APPLE_ID_UNICODE_1_1 1 /* specify Hangul at U+34xx */ -#define TT_APPLE_ID_ISO_10646 2 /* deprecated */ -#define TT_APPLE_ID_UNICODE_2_0 3 /* or later, BMP characters */ -#define TT_APPLE_ID_UNICODE_32 4 /* 3.1 or later, full repertoire */ - - -/* - * possible values of the platform specific encoding identifier field in - * the name records of the TTF "name" table when the 'Platform' identifier - * code is TT_PLATFORM_MACINTOSH - */ - -#define TT_MAC_ID_ROMAN 0 -#define TT_MAC_ID_JAPANESE 1 -#define TT_MAC_ID_TRADITIONAL_CHINESE 2 -#define TT_MAC_ID_KOREAN 3 -#define TT_MAC_ID_ARABIC 4 -#define TT_MAC_ID_HEBREW 5 -#define TT_MAC_ID_GREEK 6 -#define TT_MAC_ID_RUSSIAN 7 -#define TT_MAC_ID_RSYMBOL 8 -#define TT_MAC_ID_DEVANAGARI 9 -#define TT_MAC_ID_GURMUKHI 10 -#define TT_MAC_ID_GUJARATI 11 -#define TT_MAC_ID_ORIYA 12 -#define TT_MAC_ID_BENGALI 13 -#define TT_MAC_ID_TAMIL 14 -#define TT_MAC_ID_TELUGU 15 -#define TT_MAC_ID_KANNADA 16 -#define TT_MAC_ID_MALAYALAM 17 -#define TT_MAC_ID_SINHALESE 18 -#define TT_MAC_ID_BURMESE 19 -#define TT_MAC_ID_KHMER 20 -#define TT_MAC_ID_THAI 21 -#define TT_MAC_ID_LAOTIAN 22 -#define TT_MAC_ID_GEORGIAN 23 -#define TT_MAC_ID_ARMENIAN 24 -#define TT_MAC_ID_MALDIVIAN 25 -#define TT_MAC_ID_SIMPLIFIED_CHINESE 25 -#define TT_MAC_ID_TIBETAN 26 -#define TT_MAC_ID_MONGOLIAN 27 -#define TT_MAC_ID_GEEZ 28 -#define TT_MAC_ID_SLAVIC 29 -#define TT_MAC_ID_VIETNAMESE 30 -#define TT_MAC_ID_SINDHI 31 -#define TT_MAC_ID_UNINTERP 32 - - -/* - * possible values of the platform specific encoding identifier field in - * the name records of the TTF "name" table when the 'Platform' identifier - * code is TT_PLATFORM_ISO - * - * This use is now deprecated - */ - -#define TT_ISO_ID_7BIT_ASCII 0 -#define TT_ISO_ID_10646 1 -#define TT_ISO_ID_8859_1 2 - - -/* - * possible values of the platform specific encoding identifier field in - * the name records of the TTF "name" table when the 'Platform' identifier - * code is TT_PLATFORM_MICROSOFT - */ - -#define TT_MS_ID_SYMBOL_CS 0 -#define TT_MS_ID_UNICODE_CS 1 -#define TT_MS_ID_SJIS 2 -#define TT_MS_ID_GB2312 3 -#define TT_MS_ID_BIG_5 4 -#define TT_MS_ID_WANSUNG 5 -#define TT_MS_ID_JOHAB 6 -#define TT_MS_ID_UCS_4 10 /* full repertoire, UTF-32 */ - - - -/* - * possible values of the language identifier field in the name records of - * the TTF "name" table when the 'Platform' identifier code is - * TT_PLATFORM_MACINTOSH - * - * the canonical source for the Apple assigned Language ID's is at - * http://fonts.apple.com/TTRefMan/RM06/Chap6name.html - */ - -#define TT_MAC_LANGID_ENGLISH 0 -#define TT_MAC_LANGID_FRENCH 1 -#define TT_MAC_LANGID_GERMAN 2 -#define TT_MAC_LANGID_ITALIAN 3 -#define TT_MAC_LANGID_DUTCH 4 -#define TT_MAC_LANGID_SWEDISH 5 -#define TT_MAC_LANGID_SPANISH 6 -#define TT_MAC_LANGID_DANISH 7 -#define TT_MAC_LANGID_PORTUGUESE 8 -#define TT_MAC_LANGID_NORWEGIAN 9 -#define TT_MAC_LANGID_HEBREW 10 -#define TT_MAC_LANGID_JAPANESE 11 -#define TT_MAC_LANGID_ARABIC 12 -#define TT_MAC_LANGID_FINNISH 13 -#define TT_MAC_LANGID_GREEK 14 -#define TT_MAC_LANGID_ICELANDIC 15 -#define TT_MAC_LANGID_MALTESE 16 -#define TT_MAC_LANGID_TURKISH 17 -#define TT_MAC_LANGID_CROATIAN 18 -#define TT_MAC_LANGID_CHINESE_TRADITIONAL 19 -#define TT_MAC_LANGID_URDU 20 -#define TT_MAC_LANGID_HINDI 21 -#define TT_MAC_LANGID_THAI 22 -#define TT_MAC_LANGID_KOREAN 23 -#define TT_MAC_LANGID_LITHUANIAN 24 -#define TT_MAC_LANGID_POLISH 25 -#define TT_MAC_LANGID_HUNGARIAN 26 -#define TT_MAC_LANGID_ESTONIAN 27 -#define TT_MAC_LANGID_LETTISH 28 -#define TT_MAC_LANGID_SAAMISK 29 -#define TT_MAC_LANGID_FAEROESE 30 -#define TT_MAC_LANGID_FARSI 31 -#define TT_MAC_LANGID_RUSSIAN 32 -#define TT_MAC_LANGID_CHINESE_SIMPLIFIED 33 -#define TT_MAC_LANGID_FLEMISH 34 -#define TT_MAC_LANGID_IRISH 35 -#define TT_MAC_LANGID_ALBANIAN 36 -#define TT_MAC_LANGID_ROMANIAN 37 -#define TT_MAC_LANGID_CZECH 38 -#define TT_MAC_LANGID_SLOVAK 39 -#define TT_MAC_LANGID_SLOVENIAN 40 -#define TT_MAC_LANGID_YIDDISH 41 -#define TT_MAC_LANGID_SERBIAN 42 -#define TT_MAC_LANGID_MACEDONIAN 43 -#define TT_MAC_LANGID_BULGARIAN 44 -#define TT_MAC_LANGID_UKRAINIAN 45 -#define TT_MAC_LANGID_BYELORUSSIAN 46 -#define TT_MAC_LANGID_UZBEK 47 -#define TT_MAC_LANGID_KAZAKH 48 -#define TT_MAC_LANGID_AZERBAIJANI 49 -#define TT_MAC_LANGID_AZERBAIJANI_CYRILLIC_SCRIPT 49 -#define TT_MAC_LANGID_AZERBAIJANI_ARABIC_SCRIPT 50 -#define TT_MAC_LANGID_ARMENIAN 51 -#define TT_MAC_LANGID_GEORGIAN 52 -#define TT_MAC_LANGID_MOLDAVIAN 53 -#define TT_MAC_LANGID_KIRGHIZ 54 -#define TT_MAC_LANGID_TAJIKI 55 -#define TT_MAC_LANGID_TURKMEN 56 -#define TT_MAC_LANGID_MONGOLIAN 57 -#define TT_MAC_LANGID_MONGOLIAN_MONGOLIAN_SCRIPT 57 -#define TT_MAC_LANGID_MONGOLIAN_CYRILLIC_SCRIPT 58 -#define TT_MAC_LANGID_PASHTO 59 -#define TT_MAC_LANGID_KURDISH 60 -#define TT_MAC_LANGID_KASHMIRI 61 -#define TT_MAC_LANGID_SINDHI 62 -#define TT_MAC_LANGID_TIBETAN 63 -#define TT_MAC_LANGID_NEPALI 64 -#define TT_MAC_LANGID_SANSKRIT 65 -#define TT_MAC_LANGID_MARATHI 66 -#define TT_MAC_LANGID_BENGALI 67 -#define TT_MAC_LANGID_ASSAMESE 68 -#define TT_MAC_LANGID_GUJARATI 69 -#define TT_MAC_LANGID_PUNJABI 70 -#define TT_MAC_LANGID_ORIYA 71 -#define TT_MAC_LANGID_MALAYALAM 72 -#define TT_MAC_LANGID_KANNADA 73 -#define TT_MAC_LANGID_TAMIL 74 -#define TT_MAC_LANGID_TELUGU 75 -#define TT_MAC_LANGID_SINHALESE 76 -#define TT_MAC_LANGID_BURMESE 77 -#define TT_MAC_LANGID_KHMER 78 -#define TT_MAC_LANGID_LAO 79 -#define TT_MAC_LANGID_VIETNAMESE 80 -#define TT_MAC_LANGID_INDONESIAN 81 -#define TT_MAC_LANGID_TAGALOG 82 -#define TT_MAC_LANGID_MALAY_ROMAN_SCRIPT 83 -#define TT_MAC_LANGID_MALAY_ARABIC_SCRIPT 84 -#define TT_MAC_LANGID_AMHARIC 85 -#define TT_MAC_LANGID_TIGRINYA 86 -#define TT_MAC_LANGID_GALLA 87 -#define TT_MAC_LANGID_SOMALI 88 -#define TT_MAC_LANGID_SWAHILI 89 -#define TT_MAC_LANGID_RUANDA 90 -#define TT_MAC_LANGID_RUNDI 91 -#define TT_MAC_LANGID_CHEWA 92 -#define TT_MAC_LANGID_MALAGASY 93 -#define TT_MAC_LANGID_ESPERANTO 94 -#define TT_MAC_LANGID_WELSH 128 -#define TT_MAC_LANGID_BASQUE 129 -#define TT_MAC_LANGID_CATALAN 130 -#define TT_MAC_LANGID_LATIN 131 -#define TT_MAC_LANGID_QUECHUA 132 -#define TT_MAC_LANGID_GUARANI 133 -#define TT_MAC_LANGID_AYMARA 134 -#define TT_MAC_LANGID_TATAR 135 -#define TT_MAC_LANGID_UIGHUR 136 -#define TT_MAC_LANGID_DZONGKHA 137 -#define TT_MAC_LANGID_JAVANESE 138 -#define TT_MAC_LANGID_SUNDANESE 139 - -#if 0 /* these seem to be errors that have been dropped */ -#define TT_MAC_LANGID_SCOTTISH_GAELIC 140 -#define TT_MAC_LANGID_IRISH_GAELIC 141 -#endif - -/* The following codes are new as of 2000-03-10 */ -#define TT_MAC_LANGID_GALICIAN 140 -#define TT_MAC_LANGID_AFRIKAANS 141 -#define TT_MAC_LANGID_BRETON 142 -#define TT_MAC_LANGID_INUKTITUT 143 -#define TT_MAC_LANGID_SCOTTISH_GAELIC 144 -#define TT_MAC_LANGID_MANX_GAELIC 145 -#define TT_MAC_LANGID_IRISH_GAELIC 146 -#define TT_MAC_LANGID_TONGAN 147 -#define TT_MAC_LANGID_GREEK_POLYTONIC 148 -#define TT_MAC_LANGID_GREELANDIC 149 -#define TT_MAC_LANGID_AZERBAIJANI_ROMAN_SCRIPT 150 - - -/* - * possible values of the language identifier field in the name records of - * the TTF "name" table when the 'Platform' identifier code is - * TT_PLATFORM_MICROSOFT - * - * the canonical source for the MS assigned LCID's used to be at - * http://www.microsoft.com/typography/OTSPEC/lcid-cp.txt - * now (2002-11-15), the Microsoft site directs to - * http://www.microsoft.com/globaldev/reference/loclanghome.asp - * http://support.microsoft.com/support/kb/articles/Q224/8/04.ASP - */ - -#define TT_MS_LANGID_ARABIC_SAUDI_ARABIA 0x0401 -#define TT_MS_LANGID_ARABIC_IRAQ 0x0801 -#define TT_MS_LANGID_ARABIC_EGYPT 0x0c01 -#define TT_MS_LANGID_ARABIC_LIBYA 0x1001 -#define TT_MS_LANGID_ARABIC_ALGERIA 0x1401 -#define TT_MS_LANGID_ARABIC_MOROCCO 0x1801 -#define TT_MS_LANGID_ARABIC_TUNISIA 0x1c01 -#define TT_MS_LANGID_ARABIC_OMAN 0x2001 -#define TT_MS_LANGID_ARABIC_YEMEN 0x2401 -#define TT_MS_LANGID_ARABIC_SYRIA 0x2801 -#define TT_MS_LANGID_ARABIC_JORDAN 0x2c01 -#define TT_MS_LANGID_ARABIC_LEBANON 0x3001 -#define TT_MS_LANGID_ARABIC_KUWAIT 0x3401 -#define TT_MS_LANGID_ARABIC_UAE 0x3801 -#define TT_MS_LANGID_ARABIC_BAHRAIN 0x3c01 -#define TT_MS_LANGID_ARABIC_QATAR 0x4001 -#define TT_MS_LANGID_BULGARIAN_BULGARIA 0x0402 -#define TT_MS_LANGID_CATALAN_SPAIN 0x0403 -#define TT_MS_LANGID_CHINESE_TAIWAN 0x0404 -#define TT_MS_LANGID_CHINESE_PRC 0x0804 -#define TT_MS_LANGID_CHINESE_HONG_KONG 0x0c04 -#define TT_MS_LANGID_CHINESE_SINGAPORE 0x1004 - -#if 1 /* this used to be this value (and it still is in many places) */ -#define TT_MS_LANGID_CHINESE_MACAU 0x1404 -#else /* but beware, Microsoft may change its mind... - the most recent Word reference has the following: :-( */ -#define TT_MS_LANGID_CHINESE_MACAU TT_MS_LANGID_CHINESE_HONG_KONG -#endif - -#define TT_MS_LANGID_CZECH_CZECH_REPUBLIC 0x0405 -#define TT_MS_LANGID_DANISH_DENMARK 0x0406 -#define TT_MS_LANGID_GERMAN_GERMANY 0x0407 -#define TT_MS_LANGID_GERMAN_SWITZERLAND 0x0807 -#define TT_MS_LANGID_GERMAN_AUSTRIA 0x0c07 -#define TT_MS_LANGID_GERMAN_LUXEMBOURG 0x1007 -#define TT_MS_LANGID_GERMAN_LIECHTENSTEI 0x1407 -#define TT_MS_LANGID_GREEK_GREECE 0x0408 -#define TT_MS_LANGID_ENGLISH_UNITED_STATES 0x0409 -#define TT_MS_LANGID_ENGLISH_UNITED_KINGDOM 0x0809 -#define TT_MS_LANGID_ENGLISH_AUSTRALIA 0x0c09 -#define TT_MS_LANGID_ENGLISH_CANADA 0x1009 -#define TT_MS_LANGID_ENGLISH_NEW_ZEALAND 0x1409 -#define TT_MS_LANGID_ENGLISH_IRELAND 0x1809 -#define TT_MS_LANGID_ENGLISH_SOUTH_AFRICA 0x1c09 -#define TT_MS_LANGID_ENGLISH_JAMAICA 0x2009 -#define TT_MS_LANGID_ENGLISH_CARIBBEAN 0x2409 -#define TT_MS_LANGID_ENGLISH_BELIZE 0x2809 -#define TT_MS_LANGID_ENGLISH_TRINIDAD 0x2c09 -#define TT_MS_LANGID_ENGLISH_ZIMBABWE 0x3009 -#define TT_MS_LANGID_ENGLISH_PHILIPPINES 0x3409 -#define TT_MS_LANGID_SPANISH_SPAIN_TRADITIONAL_SORT 0x040a -#define TT_MS_LANGID_SPANISH_MEXICO 0x080a -#define TT_MS_LANGID_SPANISH_SPAIN_INTERNATIONAL_SORT 0x0c0a -#define TT_MS_LANGID_SPANISH_GUATEMALA 0x100a -#define TT_MS_LANGID_SPANISH_COSTA_RICA 0x140a -#define TT_MS_LANGID_SPANISH_PANAMA 0x180a -#define TT_MS_LANGID_SPANISH_DOMINICAN_REPUBLIC 0x1c0a -#define TT_MS_LANGID_SPANISH_VENEZUELA 0x200a -#define TT_MS_LANGID_SPANISH_COLOMBIA 0x240a -#define TT_MS_LANGID_SPANISH_PERU 0x280a -#define TT_MS_LANGID_SPANISH_ARGENTINA 0x2c0a -#define TT_MS_LANGID_SPANISH_ECUADOR 0x300a -#define TT_MS_LANGID_SPANISH_CHILE 0x340a -#define TT_MS_LANGID_SPANISH_URUGUAY 0x380a -#define TT_MS_LANGID_SPANISH_PARAGUAY 0x3c0a -#define TT_MS_LANGID_SPANISH_BOLIVIA 0x400a -#define TT_MS_LANGID_SPANISH_EL_SALVADOR 0x440a -#define TT_MS_LANGID_SPANISH_HONDURAS 0x480a -#define TT_MS_LANGID_SPANISH_NICARAGUA 0x4c0a -#define TT_MS_LANGID_SPANISH_PUERTO_RICO 0x500a -#define TT_MS_LANGID_FINNISH_FINLAND 0x040b -#define TT_MS_LANGID_FRENCH_FRANCE 0x040c -#define TT_MS_LANGID_FRENCH_BELGIUM 0x080c -#define TT_MS_LANGID_FRENCH_CANADA 0x0c0c -#define TT_MS_LANGID_FRENCH_SWITZERLAND 0x100c -#define TT_MS_LANGID_FRENCH_LUXEMBOURG 0x140c -#define TT_MS_LANGID_FRENCH_MONACO 0x180c -#define TT_MS_LANGID_HEBREW_ISRAEL 0x040d -#define TT_MS_LANGID_HUNGARIAN_HUNGARY 0x040e -#define TT_MS_LANGID_ICELANDIC_ICELAND 0x040f -#define TT_MS_LANGID_ITALIAN_ITALY 0x0410 -#define TT_MS_LANGID_ITALIAN_SWITZERLAND 0x0810 -#define TT_MS_LANGID_JAPANESE_JAPAN 0x0411 -#define TT_MS_LANGID_KOREAN_EXTENDED_WANSUNG_KOREA 0x0412 -#define TT_MS_LANGID_KOREAN_JOHAB_KOREA 0x0812 -#define TT_MS_LANGID_DUTCH_NETHERLANDS 0x0413 -#define TT_MS_LANGID_DUTCH_BELGIUM 0x0813 -#define TT_MS_LANGID_NORWEGIAN_NORWAY_BOKMAL 0x0414 -#define TT_MS_LANGID_NORWEGIAN_NORWAY_NYNORSK 0x0814 -#define TT_MS_LANGID_POLISH_POLAND 0x0415 -#define TT_MS_LANGID_PORTUGUESE_BRAZIL 0x0416 -#define TT_MS_LANGID_PORTUGUESE_PORTUGAL 0x0816 -#define TT_MS_LANGID_RHAETO_ROMANIC_SWITZERLAND 0x0417 -#define TT_MS_LANGID_ROMANIAN_ROMANIA 0x0418 -#define TT_MS_LANGID_MOLDAVIAN_MOLDAVIA 0x0818 -#define TT_MS_LANGID_RUSSIAN_RUSSIA 0x0419 -#define TT_MS_LANGID_RUSSIAN_MOLDAVIA 0x0819 -#define TT_MS_LANGID_CROATIAN_CROATIA 0x041a -#define TT_MS_LANGID_SERBIAN_SERBIA_LATIN 0x081a -#define TT_MS_LANGID_SERBIAN_SERBIA_CYRILLIC 0x0c1a -#define TT_MS_LANGID_SLOVAK_SLOVAKIA 0x041b -#define TT_MS_LANGID_ALBANIAN_ALBANIA 0x041c -#define TT_MS_LANGID_SWEDISH_SWEDEN 0x041d -#define TT_MS_LANGID_SWEDISH_FINLAND 0x081d -#define TT_MS_LANGID_THAI_THAILAND 0x041e -#define TT_MS_LANGID_TURKISH_TURKEY 0x041f -#define TT_MS_LANGID_URDU_PAKISTAN 0x0420 -#define TT_MS_LANGID_INDONESIAN_INDONESIA 0x0421 -#define TT_MS_LANGID_UKRAINIAN_UKRAINE 0x0422 -#define TT_MS_LANGID_BELARUSIAN_BELARUS 0x0423 -#define TT_MS_LANGID_SLOVENE_SLOVENIA 0x0424 -#define TT_MS_LANGID_ESTONIAN_ESTONIA 0x0425 -#define TT_MS_LANGID_LATVIAN_LATVIA 0x0426 -#define TT_MS_LANGID_LITHUANIAN_LITHUANIA 0x0427 -#define TT_MS_LANGID_CLASSIC_LITHUANIAN_LITHUANIA 0x0827 - -#if 0 /* this seems to be an error that have been dropped */ -#define TT_MS_LANGID_MAORI_NEW_ZEALAND 0x0428 -#endif - -#define TT_MS_LANGID_FARSI_IRAN 0x0429 -#define TT_MS_LANGID_VIETNAMESE_VIET_NAM 0x042a -#define TT_MS_LANGID_ARMENIAN_ARMENIA 0x042b -#define TT_MS_LANGID_AZERI_AZERBAIJAN_LATIN 0x042c -#define TT_MS_LANGID_AZERI_AZERBAIJAN_CYRILLIC 0x082c -#define TT_MS_LANGID_BASQUE_SPAIN 0x042d -#define TT_MS_LANGID_SORBIAN_GERMANY 0x042e -#define TT_MS_LANGID_MACEDONIAN_MACEDONIA 0x042f -#define TT_MS_LANGID_SUTU_SOUTH_AFRICA 0x0430 -#define TT_MS_LANGID_TSONGA_SOUTH_AFRICA 0x0431 -#define TT_MS_LANGID_TSWANA_SOUTH_AFRICA 0x0432 -#define TT_MS_LANGID_VENDA_SOUTH_AFRICA 0x0433 -#define TT_MS_LANGID_XHOSA_SOUTH_AFRICA 0x0434 -#define TT_MS_LANGID_ZULU_SOUTH_AFRICA 0x0435 -#define TT_MS_LANGID_AFRIKAANS_SOUTH_AFRICA 0x0436 -#define TT_MS_LANGID_GEORGIAN_GEORGIA 0x0437 -#define TT_MS_LANGID_FAEROESE_FAEROE_ISLANDS 0x0438 -#define TT_MS_LANGID_HINDI_INDIA 0x0439 -#define TT_MS_LANGID_MALTESE_MALTA 0x043a -#define TT_MS_LANGID_SAAMI_LAPONIA 0x043b - -#if 0 /* this seems to be a previous invertion */ -#define TT_MS_LANGID_IRISH_GAELIC_IRELAND 0x043c -#define TT_MS_LANGID_SCOTTISH_GAELIC_UNITED_KINGDOM 0x083c -#else -#define TT_MS_LANGID_SCOTTISH_GAELIC_UNITED_KINGDOM 0x083c -#define TT_MS_LANGID_IRISH_GAELIC_IRELAND 0x043c -#endif - -#define TT_MS_LANGID_MALAY_MALAYSIA 0x043e -#define TT_MS_LANGID_MALAY_BRUNEI_DARUSSALAM 0x083e -#define TT_MS_LANGID_KAZAK_KAZAKSTAN 0x043f -#define TT_MS_LANGID_SWAHILI_KENYA 0x0441 -#define TT_MS_LANGID_UZBEK_UZBEKISTAN_LATIN 0x0443 -#define TT_MS_LANGID_UZBEK_UZBEKISTAN_CYRILLIC 0x0843 -#define TT_MS_LANGID_TATAR_TATARSTAN 0x0444 -#define TT_MS_LANGID_BENGALI_INDIA 0x0445 -#define TT_MS_LANGID_PUNJABI_INDIA 0x0446 -#define TT_MS_LANGID_GUJARATI_INDIA 0x0447 -#define TT_MS_LANGID_ORIYA_INDIA 0x0448 -#define TT_MS_LANGID_TAMIL_INDIA 0x0449 -#define TT_MS_LANGID_TELUGU_INDIA 0x044a -#define TT_MS_LANGID_KANNADA_INDIA 0x044b -#define TT_MS_LANGID_MALAYALAM_INDIA 0x044c -#define TT_MS_LANGID_ASSAMESE_INDIA 0x044d -#define TT_MS_LANGID_MARATHI_INDIA 0x044e -#define TT_MS_LANGID_SANSKRIT_INDIA 0x044f -#define TT_MS_LANGID_KONKANI_INDIA 0x0457 - -/* new as of 2001-01-01 */ -#define TT_MS_LANGID_ARABIC_GENERAL 0x0001 -#define TT_MS_LANGID_CHINESE_GENERAL 0x0004 -#define TT_MS_LANGID_ENGLISH_GENERAL 0x0009 -#define TT_MS_LANGID_FRENCH_WEST_INDIES 0x1c0c -#define TT_MS_LANGID_FRENCH_REUNION 0x200c -#define TT_MS_LANGID_FRENCH_CONGO 0x240c - /* which was formerly: */ -#define TT_MS_LANGID_FRENCH_ZAIRE TT_MS_LANGID_FRENCH_CONGO - -#define TT_MS_LANGID_FRENCH_SENEGAL 0x280c -#define TT_MS_LANGID_FRENCH_CAMEROON 0x2c0c -#define TT_MS_LANGID_FRENCH_COTE_D_IVOIRE 0x300c -#define TT_MS_LANGID_FRENCH_MALI 0x340c -#define TT_MS_LANGID_BOSNIAN_BOSNIA_HERZEGOVINA 0x101a -#define TT_MS_LANGID_URDU_INDIA 0x0820 -#define TT_MS_LANGID_TAJIK_TAJIKISTAN 0x0428 -#define TT_MS_LANGID_YIDDISH_GERMANY 0x043d -#define TT_MS_LANGID_KIRGHIZ_KIRGHIZSTAN 0x0440 - /* alias declared in Windows 2000 */ -#define TT_MS_LANGID_KIRGHIZ_KIRGHIZ_REPUBLIC \ - TT_MS_LANGID_KIRGHIZ_KIRGHIZSTAN - -#define TT_MS_LANGID_TURKMEN_TURKMENISTAN 0x0442 -#define TT_MS_LANGID_MONGOLIAN_MONGOLIA /* Cyrillic */ 0x0450 - - /* this seems to be inconsistant... :-( - * here is the current "official" way: */ -#define TT_MS_LANGID_TIBETAN_BHUTAN 0x0451 - /* and now here is what is used by Passport SDK */ -#define TT_MS_LANGID_TIBETAN_CHINA 0x0451 -#define TT_MS_LANGID_DZONGHKA_BHUTAN 0x0851 - /* end of inconsistency */ - -#define TT_MS_LANGID_WELSH_WALES 0x0452 -#define TT_MS_LANGID_KHMER_CAMBODIA 0x0453 -#define TT_MS_LANGID_LAO_LAOS 0x0454 -#define TT_MS_LANGID_BURMESE_MYANMAR 0x0455 -#define TT_MS_LANGID_GALICIAN_SPAIN 0x0456 -#define TT_MS_LANGID_MANIPURI_INDIA 0x0458 -#define TT_MS_LANGID_SINDHI_INDIA 0x0459 - /* the following one is only encountered in Microsoft RTF specification */ -#define TT_MS_LANGID_KASHMIRI_PAKISTAN 0x0460 - /* the following one is not in the Passport list, looks like an omission */ -#define TT_MS_LANGID_KASHMIRI_INDIA 0x0860 -#define TT_MS_LANGID_NEPALI_NEPAL 0x0461 -#define TT_MS_LANGID_NEPALI_INDIA 0x0861 -#define TT_MS_LANGID_FRISIAN_NETHERLANDS 0x0462 - - - /* new as of 2001-03-01 (from Office Xp) */ -#define TT_MS_LANGID_ENGLISH_HONG_KONG 0x3c09 -#define TT_MS_LANGID_ENGLISH_INDIA 0x4009 -#define TT_MS_LANGID_ENGLISH_MALAYSIA 0x4409 -#define TT_MS_LANGID_ENGLISH_SINGAPORE 0x4809 -#define TT_MS_LANGID_SYRIAC_SYRIA 0x045a -#define TT_MS_LANGID_SINHALESE_SRI_LANKA 0x045b -#define TT_MS_LANGID_CHEROKEE_UNITED_STATES 0x045c -#define TT_MS_LANGID_INUKTITUT_CANADA 0x045d -#define TT_MS_LANGID_AMHARIC_ETHIOPIA 0x045e -#define TT_MS_LANGID_TAMAZIGHT_MOROCCO 0x045f -#define TT_MS_LANGID_TAMAZIGHT_MOROCCO_LATIN 0x085f -#define TT_MS_LANGID_PASHTO_AFGHANISTAN 0x0463 -#define TT_MS_LANGID_FILIPINO_PHILIPPINES 0x0464 -#define TT_MS_LANGID_DHIVEHI_MALDIVES 0x0465 - /* alias declared in Windows 2000 */ -#define TT_MS_LANGID_DIVEHI_MALDIVES TT_MS_LANGID_DHIVEHI_MALDIVES - /* for language codes from 0x0466 to 0x0471, see below */ -#define TT_MS_LANGID_OROMO_ETHIOPIA 0x0472 -#define TT_MS_LANGID_TIGRIGNA_ETHIOPIA 0x0473 -#define TT_MS_LANGID_TIGRIGNA_ERYTHREA 0x0873 - /* also spelled in the `Passport SDK' list as: */ -#define TT_MS_LANGID_TIGRIGNA_ERYTREA TT_MS_LANGID_TIGRIGNA_ERYTHREA - - /* New additions from Windows Xp/Passport SDK. AL 2001-11-10. */ - - /* don't ask me what this one means... :-( - * note it is currently commented out -#define TT_MS_LANGID_GREEK_GREECE2 0x2008 - * end of comment to avoid strange code */ - -#define TT_MS_LANGID_SPANISH_UNITED_STATES 0x540a - /* these following two blatently violate MS specs, by using a sublang>0x1F */ -#define TT_MS_LANGID_SPANISH_LATIN_AMERICA 0xE40a -#define TT_MS_LANGID_FRENCH_NORTH_AFRICA 0xE40c - -#define TT_MS_LANGID_FRENCH_MOROCCO 0x380c -#define TT_MS_LANGID_FRENCH_HAITI 0x3c0c -#define TT_MS_LANGID_BENGALI_BANGLADESH 0x0845 -#define TT_MS_LANGID_PUNJABI_ARABIC_PAKISTAN 0x0846 -#define TT_MS_LANGID_MONGOLIAN_MONGOLIA_MONGOLIAN 0x0850 -#define TT_MS_LANGID_EDO_NIGERIA 0x0466 -#define TT_MS_LANGID_FULFULDE_NIGERIA 0x0467 -#define TT_MS_LANGID_HAUSA_NIGERIA 0x0468 -#define TT_MS_LANGID_IBIBIO_NIGERIA 0x0469 -#define TT_MS_LANGID_YORUBA_NIGERIA 0x046a - /* language codes from 0x046b to 0x046f are (still) unknown. */ -#define TT_MS_LANGID_IGBO_NIGERIA 0x0470 -#define TT_MS_LANGID_KANURI_NIGERIA 0x0471 -#define TT_MS_LANGID_GUARANI_PARAGUAY 0x0474 -#define TT_MS_LANGID_HAWAIIAN_UNITED_STATES 0x0475 -#define TT_MS_LANGID_LATIN 0x0476 -#define TT_MS_LANGID_SOMALI_SOMALIA 0x0477 - /* Note Yi does not have a (proper) ISO639-2 code, since it is mostly not - * written (but OTOH the peculiar writing system is worth studying). */ -#define TT_MS_LANGID_YI_CHINA 0x0478 -#define TT_MS_LANGID_PAPIAMENTU_NETHERLANDS_ANTILLES 0x0479 - -/* - * possible values of the 'Name' identifier field in the name records of - * the TTF "name" table. These values are platform independent. - */ - -#define TT_NAME_ID_COPYRIGHT 0 -#define TT_NAME_ID_FONT_FAMILY 1 -#define TT_NAME_ID_FONT_SUBFAMILY 2 -#define TT_NAME_ID_UNIQUE_ID 3 -#define TT_NAME_ID_FULL_NAME 4 -#define TT_NAME_ID_VERSION_STRING 5 -#define TT_NAME_ID_PS_NAME 6 -#define TT_NAME_ID_TRADEMARK 7 -/* the following values are from the OpenType spec */ -#define TT_NAME_ID_MANUFACTURER 8 -#define TT_NAME_ID_DESIGNER 9 -#define TT_NAME_ID_DESCRIPTION 10 -#define TT_NAME_ID_VENDOR_URL 11 -#define TT_NAME_ID_DESIGNER_URL 12 -#define TT_NAME_ID_LICENSE 13 -#define TT_NAME_ID_LICENSE_URL 14 -/* number 15 is reserved */ -#define TT_NAME_ID_PREFERRED_FAMILY 16 -#define TT_NAME_ID_PREFERRED_SUBFAMILY 17 -#define TT_NAME_ID_MAC_FULL_NAME 18 -/* The following code is new as of 2000-01-21 */ -#define TT_NAME_ID_SAMPLE_TEXT 19 -/* This is new in OpenType 1.3 */ -#define TT_NAME_ID_CID_FINDFONT_NAME 20 - - -/* - * Bit Mask values for the Unicode Ranges from the TTF "OS2 " table. - */ - -/* General Scripts Area */ - -/* Bit 0 Basic Latin */ -#define TT_UCR_BASIC_LATIN (1L << 0) /* U+0020-U+007E */ -/* Bit 1 C1 Controls and Latin-1 Supplement */ -#define TT_UCR_LATIN1_SUPPLEMENT (1L << 1) /* U+0080-U+00FF */ -/* Bit 2 Latin Extended-A */ -#define TT_UCR_LATIN_EXTENDED_A (1L << 2) /* U+0100-U+017F */ -/* Bit 3 Latin Extended-B */ -#define TT_UCR_LATIN_EXTENDED_B (1L << 3) /* U+0180-U+024F */ -/* Bit 4 IPA Extensions */ -#define TT_UCR_IPA_EXTENSIONS (1L << 4) /* U+0250-U+02AF */ -/* Bit 5 Spacing Modifier Letters */ -#define TT_UCR_SPACING_MODIFIER (1L << 5) /* U+02B0-U+02FF */ -/* Bit 6 Combining Diacritical Marks */ -#define TT_UCR_COMBINING_DIACRITICS (1L << 6) /* U+0300-U+036F */ -/* Bit 7 Greek and Coptic */ -#define TT_UCR_GREEK (1L << 7) /* U+0370-U+03FF */ -/* Bit 8 is reserved (was: Greek Symbols and Coptic) */ -/* Bit 9 Cyrillic + */ -/* Cyrillic Supplementary */ -#define TT_UCR_CYRILLIC (1L << 9) /* U+0400-U+04FF */ - /* U+0500-U+052F */ -/* Bit 10 Armenian */ -#define TT_UCR_ARMENIAN (1L << 10) /* U+0530-U+058F */ -/* Bit 11 Hebrew */ -#define TT_UCR_HEBREW (1L << 11) /* U+0590-U+05FF */ -/* Bit 12 is reserved (was: Hebrew Extended) */ -/* Bit 13 Arabic */ -#define TT_UCR_ARABIC (1L << 13) /* U+0600-U+06FF */ -/* Bit 14 is reserved (was: Arabic Extended) */ -/* Bit 15 Devanagari */ -#define TT_UCR_DEVANAGARI (1L << 15) /* U+0900-U+097F */ -/* Bit 16 Bengali */ -#define TT_UCR_BENGALI (1L << 16) /* U+0980-U+09FF */ -/* Bit 17 Gurmukhi */ -#define TT_UCR_GURMUKHI (1L << 17) /* U+0A00-U+0A7F */ -/* Bit 18 Gujarati */ -#define TT_UCR_GUJARATI (1L << 18) /* U+0A80-U+0AFF */ -/* Bit 19 Oriya */ -#define TT_UCR_ORIYA (1L << 19) /* U+0B00-U+0B7F */ -/* Bit 20 Tamil */ -#define TT_UCR_TAMIL (1L << 20) /* U+0B80-U+0BFF */ -/* Bit 21 Telugu */ -#define TT_UCR_TELUGU (1L << 21) /* U+0C00-U+0C7F */ -/* Bit 22 Kannada */ -#define TT_UCR_KANNADA (1L << 22) /* U+0C80-U+0CFF */ -/* Bit 23 Malayalam */ -#define TT_UCR_MALAYALAM (1L << 23) /* U+0D00-U+0D7F */ -/* Bit 24 Thai */ -#define TT_UCR_THAI (1L << 24) /* U+0E00-U+0E7F */ -/* Bit 25 Lao */ -#define TT_UCR_LAO (1L << 25) /* U+0E80-U+0EFF */ -/* Bit 26 Georgian */ -#define TT_UCR_GEORGIAN (1L << 26) /* U+10A0-U+10FF */ -/* Bit 27 is reserved (was Georgian Extended) */ -/* Bit 28 Hangul Jamo */ -#define TT_UCR_HANGUL_JAMO (1L << 28) /* U+1100-U+11FF */ -/* Bit 29 Latin Extended Additional */ -#define TT_UCR_LATIN_EXTENDED_ADDITIONAL (1L << 29) /* U+1E00-U+1EFF */ -/* Bit 30 Greek Extended */ -#define TT_UCR_GREEK_EXTENDED (1L << 30) /* U+1F00-U+1FFF */ - -/* Symbols Area */ - -/* Bit 31 General Punctuation */ -#define TT_UCR_GENERAL_PUNCTUATION (1L << 31) /* U+2000-U+206F */ -/* Bit 32 Superscripts And Subscripts */ -#define TT_UCR_SUPERSCRIPTS_SUBSCRIPTS (1L << 0) /* U+2070-U+209F */ -/* Bit 33 Currency Symbols */ -#define TT_UCR_CURRENCY_SYMBOLS (1L << 1) /* U+20A0-U+20CF */ -/* Bit 34 Combining Diacritical Marks For Symbols */ -#define TT_UCR_COMBINING_DIACRITICS_SYMB (1L << 2) /* U+20D0-U+20FF */ -/* Bit 35 Letterlike Symbols */ -#define TT_UCR_LETTERLIKE_SYMBOLS (1L << 3) /* U+2100-U+214F */ -/* Bit 36 Number Forms */ -#define TT_UCR_NUMBER_FORMS (1L << 4) /* U+2150-U+218F */ -/* Bit 37 Arrows + */ -/* Supplemental Arrows-A + */ -/* Supplemental Arrows-B */ -#define TT_UCR_ARROWS (1L << 5) /* U+2190-U+21FF */ - /* U+27F0-U+27FF */ - /* U+2900-U+297F */ -/* Bit 38 Mathematical Operators + */ -/* Supplemental Mathematical Operators + */ -/* Miscellaneous Mathematical Symbols-A + */ -/* Miscellaneous Mathematical Symbols-B */ -#define TT_UCR_MATHEMATICAL_OPERATORS (1L << 6) /* U+2200-U+22FF */ - /* U+2A00-U+2AFF */ - /* U+27C0-U+27EF */ - /* U+2980-U+29FF */ -/* Bit 39 Miscellaneous Technical */ -#define TT_UCR_MISCELLANEOUS_TECHNICAL (1L << 7) /* U+2300-U+23FF */ -/* Bit 40 Control Pictures */ -#define TT_UCR_CONTROL_PICTURES (1L << 8) /* U+2400-U+243F */ -/* Bit 41 Optical Character Recognition */ -#define TT_UCR_OCR (1L << 9) /* U+2440-U+245F */ -/* Bit 42 Enclosed Alphanumerics */ -#define TT_UCR_ENCLOSED_ALPHANUMERICS (1L << 10) /* U+2460-U+24FF */ -/* Bit 43 Box Drawing */ -#define TT_UCR_BOX_DRAWING (1L << 11) /* U+2500-U+257F */ -/* Bit 44 Block Elements */ -#define TT_UCR_BLOCK_ELEMENTS (1L << 12) /* U+2580-U+259F */ -/* Bit 45 Geometric Shapes */ -#define TT_UCR_GEOMETRIC_SHAPES (1L << 13) /* U+25A0-U+25FF */ -/* Bit 46 Miscellaneous Symbols */ -#define TT_UCR_MISCELLANEOUS_SYMBOLS (1L << 14) /* U+2600-U+26FF */ -/* Bit 47 Dingbats */ -#define TT_UCR_DINGBATS (1L << 15) /* U+2700-U+27BF */ - -/* CJK Phonetics and Symbols Area */ - -/* Bit 48 CJK Symbols And Punctuation */ -#define TT_UCR_CJK_SYMBOLS (1L << 16) /* U+3000-U+303F */ -/* Bit 49 Hiragana */ -#define TT_UCR_HIRAGANA (1L << 17) /* U+3040-U+309F */ -/* Bit 50 Katakana + */ -/* Katakana Phonetic Extensions */ -#define TT_UCR_KATAKANA (1L << 18) /* U+30A0-U+30FF */ - /* U+31F0-U+31FF */ -/* Bit 51 Bopomofo + */ -/* Bopomofo Extended */ -#define TT_UCR_BOPOMOFO (1L << 19) /* U+3100-U+312F */ - /* U+31A0-U+31BF */ -/* Bit 52 Hangul Compatibility Jamo */ -#define TT_UCR_HANGUL_COMPATIBILITY_JAMO (1L << 20) /* U+3130-U+318F */ -/* Bit 53 Kanbun (also named `CJK Miscellaneous') */ -#define TT_UCR_CJK_MISC (1L << 21) /* U+3190-U+319F */ -#define TT_UCR_KANBUN TT_UCR_CJK_MISC -/* Bit 54 Enclosed CJK Letters And Months */ -#define TT_UCR_ENCLOSED_CJK_LETTERS_MONTHS (1L << 22) /* U+3200-U+32FF */ -/* Bit 55 CJK Compatibility */ -#define TT_UCR_CJK_COMPATIBILITY (1L << 23) /* U+3300-U+33FF */ - -/* Hangul Syllables Area */ - -/* Bit 56 Hangul */ -#define TT_UCR_HANGUL (1L << 24) /* U+AC00-U+D7A3 */ - -/* Surrogates Area */ - -/* Bit 57 High Surrogates + */ -/* High Private Use Surrogates + */ -/* Low Surrogates */ -#define TT_UCR_SURROGATES (1L << 25) /* U+D800-U+DB7F */ - /* U+DB80-U+DBFF */ - /* U+DC00-U+DFFF */ - /* According to OpenType specs v.1.3+, setting bit 57 implies that there */ - /* is at least one codepoint beyond the Basic Multilingual Plane that is */ - /* supported by this font. So really means: U+10000-U+10FFFD */ - -/* Bit 58 is reserved for Unicode SubRanges */ - -/* CJK Ideographs Area */ - -/* Bit 59 CJK Unified Ideographs + */ -/* CJK Radicals Supplement + */ -/* Kangxi Radicals + */ -/* Ideographic Description Characters + */ -/* CJK Unified Ideographs Extension A + */ -/* CJK Unified Ideographs Extension B + */ -/* Kanbun */ -#define TT_UCR_CJK_UNIFIED_IDEOGRAPHS (1L << 27) /* U+4E00-U+9FFF */ - /* U+2E80-U+2EFF */ - /* U+2F00-U+2FDF */ - /* U+2FF0-U+2FFF */ - /* U+3400-U+4DB5 */ - /*U+20000-U+2A6DF*/ - /* U+3190-U+319F */ - -/* Private Use Area */ - -/* Bit 60 Private Use */ -#define TT_UCR_PRIVATE_USE (1L << 28) /* U+E000-U+F8FF */ - -/* Compatibility Area and Specials */ - -/* Bit 61 CJK Compatibility Ideographs + */ -/* CJK Compatibility Ideographs Supplement */ -#define TT_UCR_CJK_COMPATIBILITY_IDEOGRAPHS (1L << 29) /* U+F900-U+FAFF */ - /*U+2F800-U+2FA1F*/ -/* Bit 62 Alphabetic Presentation Forms */ -#define TT_UCR_ALPHABETIC_PRESENTATION_FORMS (1L << 30) /* U+FB00-U+FB4F */ -/* Bit 63 Arabic Presentation Forms-A */ -#define TT_UCR_ARABIC_PRESENTATIONS_A (1L << 31) /* U+FB50-U+FDFF */ -/* Bit 64 Combining Half Marks */ -#define TT_UCR_COMBINING_HALF_MARKS (1L << 0) /* U+FE20-U+FE2F */ -/* Bit 65 CJK Compatibility Forms */ -#define TT_UCR_CJK_COMPATIBILITY_FORMS (1L << 1) /* U+FE30-U+FE4F */ -/* Bit 66 Small Form Variants */ -#define TT_UCR_SMALL_FORM_VARIANTS (1L << 2) /* U+FE50-U+FE6F */ -/* Bit 67 Arabic Presentation Forms-B */ -#define TT_UCR_ARABIC_PRESENTATIONS_B (1L << 3) /* U+FE70-U+FEFE */ -/* Bit 68 Halfwidth And Fullwidth Forms */ -#define TT_UCR_HALFWIDTH_FULLWIDTH_FORMS (1L << 4) /* U+FF00-U+FFEF */ -/* Bit 69 Specials */ -#define TT_UCR_SPECIALS (1L << 5) /* U+FEFF, - U+FFF0-U+FFFF */ -/* Bit 70 Tibetan */ -#define TT_UCR_TIBETAN (1L << 6) /* U+0F00-U+0FFF */ -/* Bit 71 Syriac */ -#define TT_UCR_SYRIAC (1L << 7) /* U+0700-U+074F */ -/* Bit 72 Thaana */ -#define TT_UCR_THAANA (1L << 8) /* U+0780-U+07BF */ -/* Bit 73 Sinhala */ -#define TT_UCR_SINHALA (1L << 9) /* U+0D80-U+0DFF */ -/* Bit 74 Myanmar */ -#define TT_UCR_MYANMAR (1L << 10) /* U+1000-U+109F */ -/* Bit 75 Ethiopic */ -#define TT_UCR_ETHIOPIC (1L << 11) /* U+1200-U+137F */ -/* Bit 76 Cherokee */ -#define TT_UCR_CHEROKEE (1L << 12) /* U+13A0-U+13FF */ -/* Bit 77 Unified Canadian Aboriginal Syllabics */ -#define TT_UCR_CANADIAN_ABORIGINAL_SYLLABICS (1L << 13) /* U+1400-U+167F */ -/* Bit 78 Ogham */ -#define TT_UCR_OGHAM (1L << 14) /* U+1680-U+169F */ -/* Bit 79 Runic */ -#define TT_UCR_RUNIC (1L << 15) /* U+16A0-U+16FF */ -/* Bit 80 Khmer */ -#define TT_UCR_KHMER (1L << 16) /* U+1780-U+17FF */ -/* Bit 81 Mongolian */ -#define TT_UCR_MONGOLIAN (1L << 17) /* U+1800-U+18AF */ -/* Bit 82 Braille Patterns */ -#define TT_UCR_BRAILLE (1L << 18) /* U+2800-U+28FF */ -/* Bit 83 Yi Syllables + */ -/* Yi Radicals */ -#define TT_UCR_YI (1L << 19) /* U+A000-U+A48F */ - /* U+A490-U+A4CF */ -/* Bit 84 Tagalog + */ -/* Hanunoo + */ -/* Buhid + */ -/* Tagbanwa */ -#define TT_UCR_PHILIPPINE (1L << 20) /* U+1700-U+171F */ - /* U+1720-U+173F */ - /* U+1740-U+175F */ - /* U+1760-U+177F */ -/* Bit 85 Old Italic */ -#define TT_UCR_OLD_ITALIC (1L << 21) /*U+10300-U+1032F*/ -/* Bit 86 Gothic */ -#define TT_UCR_GOTHIC (1L << 22) /*U+10330-U+1034F*/ -/* Bit 87 Deseret */ -#define TT_UCR_DESERET (1L << 23) /*U+10400-U+1044F*/ -/* Bit 88 Byzantine Musical Symbols + */ -/* Musical Symbols */ -#define TT_UCR_MUSICAL_SYMBOLS (1L << 24) /*U+1D000-U+1D0FF*/ - /*U+1D100-U+1D1FF*/ -/* Bit 89 Mathematical Alphanumeric Symbols */ -#define TT_UCR_MATH_ALPHANUMERIC_SYMBOLS (1L << 25) /*U+1D400-U+1D7FF*/ -/* Bit 90 Private Use (plane 15) + */ -/* Private Use (plane 16) */ -#define TT_UCR_PRIVATE_USE_SUPPLEMENTARY (1L << 26) /*U+F0000-U+FFFFD*/ - /*U+100000-U+10FFFD*/ -/* Bit 91 Variation Selectors */ -#define TT_UCR_VARIATION_SELECTORS (1L << 27) /* U+FE00-U+FE0F */ -/* Bit 92 Tags */ -#define TT_UCR_TAGS (1L << 28) /*U+E0000-U+E007F*/ - - -/* Some compilers have a very limited length of identifiers. */ -#if defined( __TURBOC__ ) && __TURBOC__ < 0x0410 || defined( __PACIFIC__ ) \ - || defined( M_I86 ) && !defined( _M_I86 ) -#define HAVE_LIMIT_ON_IDENTS -#endif - -#ifndef HAVE_LIMIT_ON_IDENTS - -/* - * Here some alias #defines in order to be clearer. - * - * These are not always #defined to stay within the 31 character limit - * which some compilers have. - * - * Credits go to Dave Hoo <dhoo@flash.net> for pointing out that modern - * Borland compilers (read: from BC++ 3.1 on) can increase this limit. - * If you get a warning with such a compiler, use the -i40 switch. - */ - -#define TT_UCR_ARABIC_PRESENTATION_FORMS_A \ - TT_UCR_ARABIC_PRESENTATIONS_A -#define TT_UCR_ARABIC_PRESENTATION_FORMS_B \ - TT_UCR_ARABIC_PRESENTATIONS_B - -#define TT_UCR_COMBINING_DIACRITICAL_MARKS \ - TT_UCR_COMBINING_DIACRITICS -#define TT_UCR_COMBINING_DIACRITICAL_MARKS_SYMB \ - TT_UCR_COMBINING_DIACRITICS_SYMB - -#endif /* ndef HAVE_LIMIT_ON_IDENTS */ - -#endif /* FTNAMEID_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/ttapi.c b/Build/source/libs/freetype/freetype-1.5/lib/ttapi.c deleted file mode 100644 index a2d86c99434..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/ttapi.c +++ /dev/null @@ -1,2220 +0,0 @@ -/******************************************************************* - * - * ttapi.c - * - * High-level interface implementation - * - * Copyright 1996-2000 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - * Notes: - * - * This file is used to implement most of the functions that are - * defined in the file "freetype.h". However, two functions are - * implemented elsewhere : - * - * TT_MulDiv and TT_MulFix are in ttcalc.h/ttcalc.c - * - ******************************************************************/ - -#include "ttconfig.h" - -#include "freetype.h" -#include "ttengine.h" -#include "ttcalc.h" -#include "ttmemory.h" -#include "ttcache.h" -#include "ttfile.h" -#include "ttobjs.h" -#include "ttload.h" -#include "ttgload.h" -#include "ttraster.h" -#include "ttextend.h" - - -/* required by the tracing mode */ -#undef TT_COMPONENT -#define TT_COMPONENT trace_api - - -#ifdef TT_STATIC_RASTER -#define RAS_OPS /* void */ -#define RAS_OP /* void */ -#else -#define RAS_OPS ((TRaster_Instance*)_engine->raster_component), -#define RAS_OP ((TRaster_Instance*)_engine->raster_component) -#endif /* TT_STATIC_RASTER */ - - -#define RENDER_Glyph( glyph, target ) \ - Render_Glyph( RAS_OPS glyph, target ) - -#define RENDER_Gray_Glyph( glyph, target, palette ) \ - Render_Gray_Glyph( RAS_OPS glyph, target, palette ) - - - -/******************************************************************* - * - * Function : TT_FreeType_Version - * - * Description : Returns the major and minor version of the library. - * - * Input : major, minor addresses - * - * Output : Error code. - * - * MT-Note : YES! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_FreeType_Version( int *major, - int *minor ) - { - if ( !major || !minor ) - return TT_Err_Invalid_Argument; - - *major = TT_FREETYPE_MAJOR; - *minor = TT_FREETYPE_MINOR; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Init_FreeType - * - * Description : The library's engine initializer. This function - * must be called prior to any call. - * - * Input : engine pointer to a FreeType engine instance - * - * Output : Error code. - * - * MT-Note : This function should be called each time you want - * to create a TT_Engine. It is not necessarily thread - * safe depending on the implementations of ttmemory, - * ttfile and ttmutex, so take care. Their default - * implementations are safe, however. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Init_FreeType( TT_Engine* engine ) - { - PEngine_Instance _engine; - - TT_Error error; - int n; - - - /* first of all, initialize memory sub-system */ - error = TTMemory_Init(); - if ( error ) - return error; - - /* Allocate engine instance */ - if ( ALLOC( _engine, sizeof ( TEngine_Instance ) ) ) - return error; - -#undef TT_FAIL -#define TT_FAIL( x ) ( error = x (_engine) ) != TT_Err_Ok - - /* Initalize components */ - if ( TT_FAIL( TTFile_Init ) || - TT_FAIL( TTCache_Init ) || -#ifdef TT_CONFIG_OPTION_EXTEND_ENGINE - TT_FAIL( TTExtend_Init ) || -#endif - TT_FAIL( TTObjs_Init ) || - TT_FAIL( TTRaster_Init ) ) - goto Fail; - -#undef TT_FAIL - - /* set the gray palette defaults: 0 to 4 */ - for ( n = 0; n < 5; n++ ) - _engine->raster_palette[n] = (Byte)n; /* Conversion ok, some warn */ - - /* create the engine lock */ - MUTEX_Create( _engine->lock ); - - HANDLE_Set( *engine, _engine ); - return TT_Err_Ok; - - Fail: - TT_Done_FreeType( *engine ); - HANDLE_Set( *engine, NULL ); - return error; - } - - -/******************************************************************* - * - * Function : TT_Done_FreeType - * - * Description : The library's engine finalizer. This function - * will discard all active face and glyph objects - * from the heap. - * - * Input : engine FreeType engine instance - * - * Output : Error code. - * - * MT-Note : Destroys an engine. Not necessarily thread-safe - * depending on the implementations of ttmemory, - * ttfile and ttmutex. The default implementations - * are safe, however. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Done_FreeType( TT_Engine engine ) - { - PEngine_Instance _engine = HANDLE_Engine( engine ); - - - if ( !_engine ) - return TT_Err_Ok; - - MUTEX_Destroy( _engine->lock ); - - TTRaster_Done( _engine ); - TTObjs_Done ( _engine ); -#ifdef TT_CONFIG_OPTION_EXTEND_ENGINE - TTExtend_Done( _engine ); -#endif - TTCache_Done ( _engine ); - TTFile_Done ( _engine ); - FREE( _engine ); - - TTMemory_Done(); - - return TT_Err_Ok; - } - - -#ifdef TT_CONFIG_OPTION_GRAY_SCALING - -/******************************************************************* - * - * Function : TT_Set_Raster_Gray_Palette - * - * Description : Sets the gray-levels palette used for font - * smoothing. - * - * Input : engine FreeType engine instance - * palette address of palette (a 5 byte array) - * - * Output : Invalid argument if 'palette' is NULL. - * - * MT-Note: NO! Unprotected modification of an engine's palette. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Set_Raster_Gray_Palette( TT_Engine engine, - Byte* palette ) - { - int i; - - - if ( !palette ) - return TT_Err_Invalid_Argument; - - for ( i = 0; i < 5; i++ ) - HANDLE_Engine( engine )->raster_palette[i] = (Byte)palette[i]; - - return TT_Err_Ok; - } - -#endif /* TT_CONFIG_OPTION_GRAY_SCALING */ - - -/******************************************************************* - * - * Function : TT_Open_Face - * - * Description : Creates a new face object from a given font file. - * - * Input : engine FreeType engine instance - * fontPathName the font file's pathname - * face adress of returned face handle - * - * Output : Error code. - * - * Note : The face handle is set to NULL in case of failure. - * - * MT-Note : YES! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Open_Face( TT_Engine engine, - const TT_Text* fontPathName, - TT_Face* face ) - { - PEngine_Instance _engine = HANDLE_Engine( engine ); - - TFont_Input input; - TT_Error error; - TT_Stream stream; - PFace _face; - - - if ( !_engine ) - return TT_Err_Invalid_Engine; - - /* open the file */ - error = TT_Open_Stream( fontPathName, &stream ); - if ( error ) - return error; - - input.stream = stream; - input.fontIndex = 0; - input.engine = _engine; - - /* Create and load the new face object - this is thread-safe */ - error = CACHE_New( _engine->objs_face_cache, - _face, - &input ); - - /* Set the handle */ - HANDLE_Set( *face, _face ); - - if ( error ) - goto Fail; - - return TT_Err_Ok; - - Fail: - TT_Close_Stream( &stream ); - return error; - } - - -/******************************************************************* - * - * Function : TT_Open_Collection - * - * Description : Creates a new face object from a given font file. - * - * Input : engine FreeType engine instance - * collectionPathName the font file's pathname - * fontIndex index of font in TrueType collection - * face adress of returned face handle - * - * Output : Error code. - * - * Note : The face handle is set to NULL in case of failure. - * - * MT-Note : YES! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Open_Collection( TT_Engine engine, - const TT_Text* collectionPathName, - TT_ULong fontIndex, - TT_Face* face ) - { - PEngine_Instance _engine = HANDLE_Engine( engine ); - - TFont_Input input; - TT_Error error; - TT_Stream stream; - PFace _face; - - - if ( !_engine ) - return TT_Err_Invalid_Engine; - - /* open the file */ - error = TT_Open_Stream( collectionPathName, &stream ); - if ( error ) - return error; - - input.stream = stream; - input.fontIndex = fontIndex; - input.engine = _engine; - - /* Create and load the new face object - this is thread-safe */ - error = CACHE_New( _engine->objs_face_cache, - _face, - &input ); - - /* Set the handle */ - HANDLE_Set( *face, _face ); - - if ( error ) - goto Fail; - - return TT_Err_Ok; - - Fail: - TT_Close_Stream( &stream ); - - return error; - } - - -/******************************************************************* - * - * Function : TT_Get_Face_Properties - * - * Description : Returns face properties. - * - * Input : face the face handle - * properties address of target properties record - * - * Output : Error code. - * - * Note : Currently, max_Faces is always set to 0. - * - * MT-Note : YES! Reads only permanent data. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Get_Face_Properties( TT_Face face, - TT_Face_Properties* properties ) - { - PFace _face = HANDLE_Face( face ); - - - if ( !_face ) - return TT_Err_Invalid_Face_Handle; - - properties->num_Glyphs = _face->numGlyphs; - properties->max_Points = _face->maxPoints; - properties->max_Contours = _face->maxContours; - properties->num_CharMaps = _face->numCMaps; - properties->num_Names = _face->nameTable.numNameRecords; - - if ( _face->ttcHeader.DirCount == 0 ) - properties->num_Faces = 1; - else - properties->num_Faces = _face->ttcHeader.DirCount; - - properties->header = &_face->fontHeader; - properties->horizontal = &_face->horizontalHeader; - - if ( _face->verticalInfo ) - properties->vertical = &_face->verticalHeader; - else - properties->vertical = NULL; - - properties->os2 = &_face->os2; - properties->postscript = &_face->postscript; - properties->hdmx = &_face->hdmx; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Set_Face_Pointer - * - * Description : Each face object has one pointer, which use is - * reserved to client applications. The TrueType - * engine never accesses or uses this field. - * - * This function is used to set the pointer. - * - * Input : face the given face handle - * data the generic pointer value - * - * Output : Error code. - * - * MT-Note : NO! But this function is reserved to "enlightened" - * developers, so it shouldn't be a problem. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Set_Face_Pointer( TT_Face face, - void* data ) - { - PFace faze = HANDLE_Face( face ); - - - if ( !faze ) - return TT_Err_Invalid_Face_Handle; - else - faze->generic = data; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Get_Face_Pointer - * - * Description : Each face object has one pointer, which use is - * reserved to client applications. The TrueType - * engine never access or use this field. - * - * This function is used to read the pointer. - * - * Input : face the given face handle - * data the generic pointer value - * - * Output : Error code. - * - * MT-Note : NO! But this function is reserved to "enlightened" - * developers, so it shouldn't be a problem. - * - ******************************************************************/ - - FT_EXPORT_FUNC( void* ) - TT_Get_Face_Pointer( TT_Face face ) - { - PFace faze = HANDLE_Face( face ); - - - if ( !faze ) - return NULL; - else - return faze->generic; - } - - -/******************************************************************* - * - * Function : TT_Get_Face_Metrics - * - * Description : This function returns the original horizontal AND - * vertical metrics as found in the "hmtx" and "vmtx" - * tables. These are the glyphs' left-side-bearings - * and advance widths (horizontal), as well as top - * side bearings and advance heights (vertical). - * - * All are expressed in FONT UNITS, a.k.a. EM - * units. - * - * Input : face The given face handle. - * first Index of first glyph in table. - * last Index of last glyph in table. - * - * leftBearings A pointer to an array of TT_Shorts where the - * left side bearings for the glyphs 'first' - * to 'last' will be returned. If these metrics - * don't interest you, simply set it to NULL. - * - * widths A pointer to an array of TT_UShorts - * where the advance widths for the glyphs - * 'first' to 'last' will be returned. If these - * metrics don't interest you, simply set it - * to NULL. - * - * topBearings A pointer to an array of TT_Shorts where the - * top side bearings for the glyphs 'first' - * to 'last' will be returned. If these metrics - * don't interest you, simply set it to NULL. - * - * heights A pointer to an array of TT_UShorts - * where the advance heights for the glyphs - * 'first' to 'last' will be returned. If these - * metrics don't interest you, simply set it - * to NULL. - * - * Output : Error code. - * - * IMPORTANT NOTE : - * - * As vertical metrics are optional in a TrueType font, this - * function will return an error ( TT_Err_No_Vertical_Data ) - * whenever this function is called on such a face with non-NULL - * 'topBearings' or 'heights' arguments. - * - * When a font has no vertical data, the 'vertical' field in its - * properties structure is set to NULL. - * - * MT-Note : YES! Reads only permanent data. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Get_Face_Metrics( TT_Face face, - TT_UShort firstGlyph, - TT_UShort lastGlyph, - TT_Short* leftBearings, - TT_UShort* widths, - TT_Short* topBearings, - TT_UShort* heights ) - { - PFace _face = HANDLE_Face( face ); - UInt num; - - - if ( !_face ) - return TT_Err_Invalid_Face_Handle; - - /* Check the glyph range */ - if ( lastGlyph >= _face->numGlyphs || firstGlyph > lastGlyph ) - return TT_Err_Invalid_Argument; - - num = lastGlyph - firstGlyph; /* number of elements-1 in each array */ - - /* store the left side bearings and advance widths first */ - { - UShort n; - Short left_bearing; - UShort advance_width; - - - for ( n = 0; n <= num; n++ ) - { - TT_Get_Metrics( &_face->horizontalHeader, - firstGlyph + n, &left_bearing, &advance_width ); - - if ( leftBearings ) leftBearings[n] = left_bearing; - if ( widths ) widths[n] = advance_width; - } - } - - /* check for vertical data if topBearings or heights is non-NULL */ - if ( !topBearings && !heights ) - return TT_Err_Ok; - - if ( !_face->verticalInfo ) - return TT_Err_No_Vertical_Data; - - /* store the top side bearings */ - { - UShort n; - Short top_bearing; - UShort advance_height; - - for ( n = 0; n <= num; n++ ) - { - TT_Get_Metrics( (TT_Horizontal_Header*)&_face->verticalHeader, - firstGlyph + n, &top_bearing, &advance_height ); - - if ( topBearings ) topBearings[n] = top_bearing; - if ( heights ) heights[n] = advance_height; - } - } - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Flush_Face - * - * Description : This function is used to close an active face's - * file handle or descriptor. This is useful to save - * system resources, if your application uses tons - * of fonts. - * - * Input : face the given face handle - * - * Output : Error code. - * - * MT-Note : YES! (If ttfile is.) - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Flush_Face( TT_Face face ) - { - PFace faze = HANDLE_Face( face ); - - - if ( !faze ) - return TT_Err_Invalid_Face_Handle; - else - return TT_Flush_Stream( &faze->stream ); - } - - -/******************************************************************* - * - * Function : TT_Close_Face - * - * Description : Closes an opened face object. This function - * will destroy all objects associated to the - * face, except the glyphs. - * - * Input : face the given face handle - * - * Output : Error code. - * - * NOTE : The handle is set to NULL on exit. - * - * MT-Note : YES! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Close_Face( TT_Face face ) - { - PFace _face = HANDLE_Face( face ); - - - if ( !_face ) - return TT_Err_Invalid_Face_Handle; - - TT_Close_Stream( &_face->stream ); - - /* delete the face object -- this is thread-safe */ - return CACHE_Done( _face->engine->objs_face_cache, _face ); - } - - -/******************************************************************* - * - * Function : TT_New_Instance - * - * Description : Creates a new instance from a given face. - * - * Input : face parent face handle - * instance address of instance handle - * - * Output : Error code. - * - * Note : The handle is set to NULL in case of failure. - * - * MT-Note : YES! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_New_Instance( TT_Face face, - TT_Instance* instance ) - { - TT_Error error; - PFace _face = HANDLE_Face( face ); - PInstance _ins; - - - if ( !_face ) - return TT_Err_Invalid_Face_Handle; - - /* get a new instance from the face's cache -- this is thread-safe */ - error = CACHE_New( &_face->instances, _ins, _face ); - - HANDLE_Set( *instance, _ins ); - - if ( !error ) - { - error = Instance_Init( _ins ); - if ( error ) - { - HANDLE_Set( *instance, NULL ); - CACHE_Done( &_face->instances, _ins ); - } - } - - return error; - } - - -/******************************************************************* - * - * Function : TT_Set_Instance_Resolutions - * - * Description : Resets an instance to a new device resolution. - * - * Input : instance the instance handle - * xResolution new horizontal device resolution in dpi - * yResolution new vertical device resolution in dpi - * - * Output : Error code. - * - * Note : There is no check for overflow; with other words, - * the product of glyph dimensions times the device - * resolutions must have reasonable values. - * - * MT-Note : You should set the charsize or pixel size immediately - * after this call in multi-threaded programs. This will - * force the instance data to be resetted. Otherwise, you - * may encounter corruption when loading two glyphs from - * the same instance concurrently! - * - * Happily, 99.99% will do just that :-) - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Set_Instance_Resolutions( TT_Instance instance, - TT_UShort xResolution, - TT_UShort yResolution ) - { - PInstance ins = HANDLE_Instance( instance ); - - - if ( !ins ) - return TT_Err_Invalid_Instance_Handle; - - ins->metrics.x_resolution = xResolution; - ins->metrics.y_resolution = yResolution; - ins->valid = FALSE; - - /* In the case of a thread-safe implementation, we immediately */ - /* call Instance_Reset in order to change the instance's variable */ - - /* In the case of a non-threaded build, we simply set the 'valid' */ - /* flag to FALSE, which will force the instance's resetting at */ - /* the next glyph loading */ - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Set_Instance_CharSizes - * - * Description : Resets an instance to new point size. - * - * Input : instance the instance handle - * charWidth the new width in 26.6 char points - * charHeight the new height in 26.6 char points - * - * Output : Error code. - * - * Note : There is no check for overflow; with other words, - * the product of glyph dimensions times the device - * resolution must have reasonable values. - * - * MT-Note : NO! This should be called only when setting/resetting - * instances, so there is no need to protect. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Set_Instance_CharSizes( TT_Instance instance, - TT_F26Dot6 charWidth, - TT_F26Dot6 charHeight ) - { - PInstance ins = HANDLE_Instance( instance ); - - - if ( !ins ) - return TT_Err_Invalid_Instance_Handle; - - if ( charWidth < 1 * 64 ) - charWidth = 1 * 64; - - if ( charHeight < 1 * 64 ) - charHeight = 1 * 64; - - ins->metrics.x_scale1 = ( charWidth * ins->metrics.x_resolution ) / 72; - ins->metrics.x_scale2 = ins->owner->fontHeader.Units_Per_EM; - - ins->metrics.y_scale1 = ( charHeight * ins->metrics.y_resolution ) / 72; - ins->metrics.y_scale2 = ins->owner->fontHeader.Units_Per_EM; - - if ( ins->owner->fontHeader.Flags & 8 ) - { - ins->metrics.x_scale1 = (ins->metrics.x_scale1+32) & -64; - ins->metrics.y_scale1 = (ins->metrics.y_scale1+32) & -64; - } - - ins->metrics.x_ppem = ins->metrics.x_scale1 / 64; - ins->metrics.y_ppem = ins->metrics.y_scale1 / 64; - - if ( charWidth > charHeight ) - ins->metrics.pointSize = charWidth; - else - ins->metrics.pointSize = charHeight; - - ins->valid = FALSE; - - return Instance_Reset( ins ); - } - - -/******************************************************************* - * - * Function : TT_Set_Instance_CharSize - * - * Description : Resets an instance to new point size. - * - * Input : instance the instance handle - * charSize the new character size in 26.6 char points - * - * Output : Error code. - * - * Note : There is no check for overflow; with other words, - * the product of glyph dimensions times the device - * resolution must have reasonable values. - * - * MT-Note : NO! This should be called only when setting/resetting - * instances, so there is no need to protect. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Set_Instance_CharSize( TT_Instance instance, - TT_F26Dot6 charSize ) - { - return TT_Set_Instance_CharSizes( instance, charSize, charSize ); - } - - -/******************************************************************* - * - * Function : TT_Set_Instance_PixelSizes - * - * Description : Resets an instance to new pixel sizes - * - * Input : instance the instance handle - * pixelWidth the new width in pixels - * pixelHeight the new height in pixels - * - * Output : Error code. - * - * Note : There is no check for overflow; with other words, - * the product of glyph dimensions times the device - * resolution must have reasonable values. - * - * MT-Note : NO! This should be called only when setting/resetting - * instances, so there is no need to protect. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Set_Instance_PixelSizes( TT_Instance instance, - TT_UShort pixelWidth, - TT_UShort pixelHeight, - TT_F26Dot6 pointSize ) - { - PInstance ins = HANDLE_Instance( instance ); - - if ( !ins ) - return TT_Err_Invalid_Instance_Handle; - - if ( pixelWidth < 1 ) pixelWidth = 1; - if ( pixelHeight < 1 ) pixelHeight = 1; - - ins->metrics.x_ppem = pixelWidth; - ins->metrics.y_ppem = pixelHeight; - ins->metrics.pointSize = pointSize; - - ins->metrics.x_scale1 = ins->metrics.x_ppem * 64L; - ins->metrics.x_scale2 = ins->owner->fontHeader.Units_Per_EM; - ins->metrics.y_scale1 = ins->metrics.y_ppem * 64L; - ins->metrics.y_scale2 = ins->owner->fontHeader.Units_Per_EM; - - ins->valid = FALSE; - - return Instance_Reset( ins ); - } - - -/******************************************************************* - * - * Function : TT_Set_Instance_Transform_Flags - * - * Description : Informs the interpreter about the transformations - * that will be applied to the rendered glyphs. - * - * Input : instance the instance handle - * rotated set to TRUE if the glyph are rotated - * stretched set to TRUE if the glyph are stretched - * - * Output : Error code. - * - * Note : This function is deprecated! It's much better to - * control hinting manually when calling TT_Load_Glyph - * than relying on the font programs... - * - * Never use it, unless calling for trouble ;-) - * - * MT-Note : NO! This should be called only when setting/resetting - * instances, so there is no need to protect. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Set_Instance_Transform_Flags( TT_Instance instance, - TT_Bool rotated, - TT_Bool stretched ) - { - PInstance ins = HANDLE_Instance( instance ); - - - if ( !ins ) - return TT_Err_Invalid_Instance_Handle; - - ins->metrics.rotated = rotated; - ins->metrics.stretched = stretched; - ins->valid = FALSE; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Get_Instance_Metrics - * - * Description : Returns instance metrics. - * - * Input : instance the instance handle - * metrics address of target instance metrics record - * - * Output : Error code. - * - * MT-Note : YES! Reads only semi-permanent data. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Get_Instance_Metrics( TT_Instance instance, - TT_Instance_Metrics* metrics ) - { - PInstance ins = HANDLE_Instance( instance ); - - - if ( !ins ) - return TT_Err_Invalid_Instance_Handle; - - if ( !ins->valid ) - Instance_Reset( ins ); - - metrics->pointSize = ins->metrics.pointSize; - - metrics->x_scale = TT_MulDiv( 0x10000, - ins->metrics.x_scale1, - ins->metrics.x_scale2 ); - - metrics->y_scale = TT_MulDiv( 0x10000, - ins->metrics.y_scale1, - ins->metrics.y_scale2 ); - - metrics->x_resolution = ins->metrics.x_resolution; - metrics->y_resolution = ins->metrics.y_resolution; - metrics->x_ppem = ins->metrics.x_ppem; - metrics->y_ppem = ins->metrics.y_ppem; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Set_Instance_Pointer - * - * Description : Each instance has one pointer, which use is - * reserved to client applications. The TrueType - * engine never accesses or uses this field. - * - * This function is used to set the pointer. - * - * Input : face the given face handle - * data the generic pointer value - * - * Output : Error code. - * - * MT-Note : NO! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Set_Instance_Pointer( TT_Instance instance, - void* data ) - { - PInstance ins = HANDLE_Instance( instance ); - - - if ( !ins ) - return TT_Err_Invalid_Instance_Handle; - else - ins->generic = data; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Get_Instance_Pointer - * - * Description : Each instance has one pointer, which use is - * reserved to client applications. The TrueType - * engine never accesses or uses this field. - * - * This function is used to read the pointer. - * - * Input : face the given face handle - * data the generic pointer value - * - * Output : Error code. - * - * MT-Safe : NO! - * - ******************************************************************/ - - FT_EXPORT_FUNC( void* ) - TT_Get_Instance_Pointer( TT_Instance instance ) - { - PInstance ins = HANDLE_Instance( instance ); - - - if ( !ins ) - return NULL; - else - return ins->generic; - } - - -/******************************************************************* - * - * Function : TT_Done_Instance - * - * Description : Closes a given instance. - * - * Input : instance address of instance handle - * - * Output : Error code. - * - * MT-Safe : YES! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Done_Instance( TT_Instance instance ) - { - PInstance ins = HANDLE_Instance( instance ); - - - if ( !ins ) - return TT_Err_Invalid_Instance_Handle; - - /* delete the instance -- this is thread-safe */ - return CACHE_Done( &ins->owner->instances, ins ); - } - - -/******************************************************************* - * - * Function : TT_New_Glyph - * - * Description : Creates a new glyph object related to a given - * face. - * - * Input : face the face handle - * glyph address of target glyph handle - * - * Output : Error code. - * - * MT-Safe : YES! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_New_Glyph( TT_Face face, - TT_Glyph* glyph ) - { - TT_Error error; - PFace _face = HANDLE_Face( face ); - PGlyph _glyph; - - - if ( !_face ) - return TT_Err_Invalid_Face_Handle; - - /* get a new glyph from the face's cache -- this is thread-safe */ - error = CACHE_New( &_face->glyphs, _glyph, _face ); - - HANDLE_Set( *glyph, _glyph ); - - return error; - } - - -/******************************************************************* - * - * Function : TT_Done_Glyph - * - * Description : Destroys a given glyph object. - * - * Input : glyph the glyph handle - * - * Output : Error code. - * - * MT-Safe : YES! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Done_Glyph( TT_Glyph glyph ) - { - PGlyph _glyph = HANDLE_Glyph( glyph ); - - - if ( !_glyph ) - return TT_Err_Invalid_Glyph_Handle; - - /* delete the engine -- this is thread-safe */ - return CACHE_Done( &_glyph->face->glyphs, _glyph ); - } - - -/******************************************************************* - * - * Function : TT_Load_Glyph - * - * Description : Loads a glyph. - * - * Input : instance the instance handle - * glyph the glyph handle - * glyphIndex the glyph index - * loadFlags flags controlling how to load the glyph - * (none, scaled, hinted, both) - * - * Output : Error code. - * - * MT-Safe : YES! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Load_Glyph( TT_Instance instance, - TT_Glyph glyph, - TT_UShort glyphIndex, - TT_UShort loadFlags ) - { - PInstance _ins; - PGlyph _glyph; - TT_Error error; - - - _ins = HANDLE_Instance( instance ); - - if ( !_ins ) - loadFlags &= ~(TTLOAD_SCALE_GLYPH | TTLOAD_HINT_GLYPH); - - if ( (loadFlags & TTLOAD_SCALE_GLYPH) == 0 ) - _ins = 0; - - _glyph = HANDLE_Glyph( glyph ); - if ( !_glyph ) - return TT_Err_Invalid_Glyph_Handle; - - if ( _ins ) - { - if ( _ins->owner != _glyph->face ) - return TT_Err_Invalid_Face_Handle; - - if ( !_ins->valid ) - { - /* This code can only be called in non thread-safe builds */ - error = Instance_Reset( _ins ); - if ( error ) - return error; - } - } - - return Load_TrueType_Glyph( _ins, _glyph, glyphIndex, loadFlags ); - } - - -/******************************************************************* - * - * Function : TT_Get_Glyph_Outline - * - * Description : Returns the glyph's outline data. - * - * Input : glyph the glyph handle - * outline address where the glyph outline will be returned - * - * Output : Error code. - * - * MT-Safe : YES! Reads only semi-permanent data. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Get_Glyph_Outline( TT_Glyph glyph, - TT_Outline* outline ) - { - PGlyph _glyph = HANDLE_Glyph( glyph ); - - - if ( !_glyph ) - return TT_Err_Invalid_Glyph_Handle; - - *outline = _glyph->outline; - outline->owner = FALSE; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Get_Glyph_Metrics - * - * Description : Extracts the glyph's horizontal metrics information. - * - * Input : glyph glyph object handle - * metrics address where metrics will be returned - * - * Output : Error code. - * - * MT-Safe : NO! Glyph containers can't be shared. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Get_Glyph_Metrics( TT_Glyph glyph, - TT_Glyph_Metrics* metrics ) - { - PGlyph _glyph = HANDLE_Glyph( glyph ); - - - if ( !_glyph ) - return TT_Err_Invalid_Glyph_Handle; - - metrics->bbox = _glyph->metrics.bbox; - metrics->bearingX = _glyph->metrics.horiBearingX; - metrics->bearingY = _glyph->metrics.horiBearingY; - metrics->advance = _glyph->metrics.horiAdvance; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Get_Glyph_Big_Metrics - * - * Description : Extracts the glyph's big metrics information. - * - * Input : glyph glyph object handle - * metrics address where big metrics will be returned - * - * Output : Error code. - * - * MT-Safe : NO! Glyph containers can't be shared. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Get_Glyph_Big_Metrics( TT_Glyph glyph, - TT_Big_Glyph_Metrics* metrics ) - { - PGlyph _glyph = HANDLE_Glyph( glyph ); - - - if ( !_glyph ) - return TT_Err_Invalid_Glyph_Handle; - - *metrics = _glyph->metrics; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Get_Glyph_Bitmap - * - * Description : Produces a bitmap from a glyph outline. - * - * Input : glyph the glyph container's handle - * bitmap target bitmap description block - * xOffset x offset in fractional pixels (26.6 format) - * yOffset y offset in fractional pixels (26.6 format) - * - * Output : Error code. - * - * Note : Only use integer pixel offsets if you want to preserve - * the fine hints applied to the outline. This means that - * xOffset and yOffset must be multiples of 64! - * - * MT-Safe : NO! Glyph containers can't be shared. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Get_Glyph_Bitmap( TT_Glyph glyph, - TT_Raster_Map* bitmap, - TT_F26Dot6 xOffset, - TT_F26Dot6 yOffset ) - { - PEngine_Instance _engine; - TT_Engine engine; - TT_Error error; - PGlyph _glyph = HANDLE_Glyph( glyph ); - - TT_Outline outline; - - - if ( !_glyph ) - return TT_Err_Invalid_Glyph_Handle; - - _engine = _glyph->face->engine; - HANDLE_Set( engine, _engine ); - - outline = _glyph->outline; - /* XXX : For now, use only dropout mode 2 */ - /* outline.dropout_mode = _glyph->scan_type; */ - outline.dropout_mode = 2; - - TT_Translate_Outline( &outline, xOffset, yOffset ); - error = TT_Get_Outline_Bitmap( engine, &outline, bitmap ); - TT_Translate_Outline( &outline, -xOffset, -yOffset ); - - return error; - } - - -#ifdef TT_CONFIG_OPTION_GRAY_SCALING - -/******************************************************************* - * - * Function : TT_Get_Glyph_Pixmap - * - * Description : Produces a grayscaled pixmap from a glyph - * outline. - * - * Input : glyph the glyph container's handle - * pixmap target pixmap description block - * xOffset x offset in fractional pixels (26.6 format) - * yOffset y offset in fractional pixels (26.6 format) - * - * Output : Error code. - * - * Note : Only use integer pixel offsets to preserve the fine - * hinting of the glyph and the 'correct' anti-aliasing - * (where vertical and horizontal stems aren't grayed). - * This means that xOffset and yOffset must be multiples - * of 64! - * - * You can experiment with offsets of +32 to get 'blurred' - * versions of the glyphs (a nice effect at large sizes that - * some graphic designers may appreciate :) - * - * MT-Safe : NO! Glyph containers can't be shared. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Get_Glyph_Pixmap( TT_Glyph glyph, - TT_Raster_Map* pixmap, - TT_F26Dot6 xOffset, - TT_F26Dot6 yOffset ) - { - PEngine_Instance _engine; - TT_Engine engine; - TT_Error error; - PGlyph _glyph = HANDLE_Glyph( glyph ); - - TT_Outline outline; - - - if ( !_glyph ) - return TT_Err_Invalid_Glyph_Handle; - - _engine = _glyph->face->engine; - HANDLE_Set(engine,_engine); - - outline = _glyph->outline; - /* XXX : For now, use only dropout mode 2 */ - /* outline.dropout_mode = _glyph->scan_type; */ - outline.dropout_mode = 2; - - TT_Translate_Outline( &outline, xOffset, yOffset ); - error = TT_Get_Outline_Pixmap( engine, &outline, pixmap ); - TT_Translate_Outline( &outline, -xOffset, -yOffset ); - - return error; - } - -#endif /* TT_CONFIG_OPTION_GRAY_SCALING */ - - - static const TT_Outline null_outline - = { 0, 0, NULL, NULL, NULL, 0, 0, 0, 0 }; - - -/******************************************************************* - * - * Function : TT_New_Outline - * - * Description : Creates a new TrueType outline, reserving - * array space for a given number of points and - * contours. - * - * Input : numPoints number of points - * numContours number of contours - * outline address of target outline structure - * - * Output : Error code - * - * MT-Safe : YES! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_New_Outline( TT_UShort numPoints, - TT_Short numContours, - TT_Outline* outline ) - { - TT_Error error; - - - if ( !outline ) - return TT_Err_Invalid_Argument; - - *outline = null_outline; - - if ( ALLOC( outline->points, numPoints*2*sizeof ( TT_F26Dot6 ) ) || - ALLOC( outline->flags, numPoints *sizeof ( Byte ) ) || - ALLOC( outline->contours, numContours*sizeof ( UShort ) ) ) - goto Fail; - - outline->n_points = numPoints; - outline->n_contours = numContours; - outline->owner = TRUE; - return TT_Err_Ok; - - Fail: - outline->owner = TRUE; - TT_Done_Outline( outline ); - return error; - } - - -/******************************************************************* - * - * Function : TT_Done_Outline - * - * Description : Deletes an outline created through TT_New_Outline(). - * Calling this function for outlines returned - * by TT_Get_Glyph_Outline() yields an error. - * - * Input : outline address of outline - * - * Output : Error code. - * - * MT-Safe : YES! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Done_Outline( TT_Outline* outline ) - { - if ( outline ) - { - if ( outline->owner ) - { - FREE( outline->points ); - FREE( outline->flags ); - FREE( outline->contours ); - } - *outline = null_outline; - return TT_Err_Ok; - } - else - return TT_Err_Invalid_Argument; - } - - -/******************************************************************* - * - * Function : TT_Get_Outline_Bitmap - * - * Description : Render a TrueType outline into a bitmap. - * Note that the bitmap must be created by the caller. - * - * Input : outline the outline to render - * bitmap the target bitmap - * - * Output : Error code. - * - * MT-Safe : YES! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Get_Outline_Bitmap( TT_Engine engine, - TT_Outline* outline, - TT_Raster_Map* bitmap ) - { - PEngine_Instance _engine = HANDLE_Engine( engine ); - TT_Error error; - - - if ( !_engine ) - return TT_Err_Invalid_Engine; - - if ( !outline || !bitmap ) - return TT_Err_Invalid_Argument; - - MUTEX_Lock( _engine->raster_lock ); - error = RENDER_Glyph( outline, bitmap ); - MUTEX_Release( _engine->raster_lock ); - - return error; - } - - -#ifdef TT_CONFIG_OPTION_GRAY_SCALING - -/******************************************************************* - * - * Function : TT_Get_Outline_Pixmap - * - * Description : Render a TrueType outline into a pixmap. - * Note that the pixmap must be created by the caller. - * - * Input : outline the outline to render - * pixmap the target pixmap - * - * Output : Error code - * - * MT-Safe : YES! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Get_Outline_Pixmap( TT_Engine engine, - TT_Outline* outline, - TT_Raster_Map* pixmap ) - { - PEngine_Instance _engine = HANDLE_Engine( engine ); - TT_Error error; - - - if ( !_engine ) - return TT_Err_Invalid_Engine; - - if ( !outline || !pixmap ) - return TT_Err_Invalid_Argument; - - MUTEX_Lock( _engine->raster_lock ); - error = RENDER_Gray_Glyph( outline, pixmap, _engine->raster_palette ); - MUTEX_Release( _engine->raster_lock ); - return error; - } - -#endif /* TT_CONFIG_OPTION_GRAY_SCALING */ - - -/******************************************************************* - * - * Function : TT_Copy_Outline - * - * Description : Copy an outline into another. The source and - * target outlines must have the same points and - * contours numbers. - * - * Input : source address of source outline - * target address of target outline - * - * Output : Error code - * - * Note : This function doesn't touch the target outline's 'owner' - * field. - * - * MT-Safe : YES! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Copy_Outline( TT_Outline* source, - TT_Outline* target ) - { - if ( !source || !target || - source->n_points != target->n_points || - source->n_contours != target->n_contours ) - return TT_Err_Invalid_Argument; - - MEM_Copy( target->points, source->points, - source->n_points * 2 * sizeof ( TT_F26Dot6 ) ); - - MEM_Copy( target->flags, source->flags, - source->n_points * sizeof ( Byte ) ); - - MEM_Copy( target->contours, source->contours, - source->n_contours * sizeof ( Short ) ); - - target->high_precision = source->high_precision; - target->second_pass = target->second_pass; - target->dropout_mode = source->dropout_mode; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Transform_Outline - * - * Description : Applies a simple transformation to an outline. - * - * Input : outline the glyph's outline. Can be extracted - * from a glyph container through - * TT_Get_Glyph_Outline(). - * - * matrix simple matrix with 16.16 fixed floats - * - * Output : Error code (always TT_Err_Ok). - * - * MT-Safe : YES! - * - ******************************************************************/ - - FT_EXPORT_FUNC( void ) - TT_Transform_Outline( TT_Outline* outline, - TT_Matrix* matrix ) - { - UShort n; - TT_F26Dot6 x, y; - TT_Vector* vec; - - - vec = outline->points; - for ( n = 0; n < outline->n_points; n++ ) - { - x = TT_MulFix( vec->x, matrix->xx ) + - TT_MulFix( vec->y, matrix->xy ); - - y = TT_MulFix( vec->x, matrix->yx ) + - TT_MulFix( vec->y, matrix->yy ); - - vec->x = x; - vec->y = y; - vec++; - } - } - - -/******************************************************************* - * - * Function : TT_Transform_Vector - * - * Description : Apply a simple transform to a vector - * - * Input : x, y the vector. - * - * matrix simple matrix with 16.16 fixed floats - * - * Output : None. - * - * MT-Safe : YES! - * - ******************************************************************/ - - FT_EXPORT_FUNC( void ) - TT_Transform_Vector( TT_F26Dot6* x, - TT_F26Dot6* y, - TT_Matrix* matrix ) - { - TT_F26Dot6 xz, yz; - - - xz = TT_MulFix( *x, matrix->xx ) + - TT_MulFix( *y, matrix->xy ); - - yz = TT_MulFix( *x, matrix->yx ) + - TT_MulFix( *y, matrix->yy ); - - *x = xz; - *y = yz; - } - - -/******************************************************************* - * - * Function : TT_Translate_Outline - * - * Description : Applies a simple translation. - * - * Input : outline no comment :) - * xOffset - * yOffset - * - * Output : Error code. - * - * MT-Safe : YES! - * - ******************************************************************/ - - FT_EXPORT_FUNC( void ) - TT_Translate_Outline( TT_Outline* outline, - TT_F26Dot6 xOffset, - TT_F26Dot6 yOffset ) - { - UShort n; - TT_Vector* vec = outline->points; - - - for ( n = 0; n < outline->n_points; n++ ) - { - vec->x += xOffset; - vec->y += yOffset; - vec++; - } - } - - -/******************************************************************* - * - * Function : TT_Get_Outline_BBox - * - * Description : Returns an outline's bounding box. - * - * Input : outline no comment :) - * bbox address where the bounding box is returned - * - * Output : Error code. - * - * MT-Safe : YES! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Get_Outline_BBox( TT_Outline* outline, - TT_BBox* bbox ) - { - TT_F26Dot6 x, y; - UShort k; - - - if ( outline && bbox ) - { - if ( outline->n_points == 0 ) - { - bbox->xMin = 0; - bbox->yMin = 0; - bbox->xMax = 0; - bbox->yMax = 0; - } - else - { - TT_Vector* vec = outline->points; - - bbox->xMin = bbox->xMax = vec->x; - bbox->yMin = bbox->yMax = vec->y; - vec++; - - for ( k = 1; k < outline->n_points; k++ ) - { - x = vec->x; - if ( x < bbox->xMin ) bbox->xMin = x; - if ( x > bbox->xMax ) bbox->xMax = x; - y = vec->y; - if ( y < bbox->yMin ) bbox->yMin = y; - if ( y > bbox->yMax ) bbox->yMax = y; - vec++; - } - } - return TT_Err_Ok; - } - else - return TT_Err_Invalid_Argument; - } - - - - /* ----------------- character mappings support ------------- */ - -/******************************************************************* - * - * Function : TT_Get_CharMap_Count - * - * Description : Returns the number of charmaps in a given face. - * - * Input : face face object handle - * - * Output : Number of tables. -1 in case of error (bad handle). - * - * Note : DON'T USE THIS FUNCTION! IT HAS BEEN DEPRECATED! - * - * It is retained for backwards compatibility only and will - * fail on 16bit systems. - * - * MT-Safe : YES ! - * - ******************************************************************/ - - FT_EXPORT_FUNC( int ) - TT_Get_CharMap_Count( TT_Face face ) - { - PFace faze = HANDLE_Face( face ); - - return ( faze ? faze->numCMaps : -1 ); - } - - -/******************************************************************* - * - * Function : TT_Get_CharMap_ID - * - * Description : Returns the ID of a given charmap. - * - * Input : face face object handle - * charmapIndex index of charmap in directory - * platformID address of returned platform ID - * encodingID address of returned encoding ID - * - * Output : error code - * - * MT-Safe : YES ! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Get_CharMap_ID( TT_Face face, - TT_UShort charmapIndex, - TT_UShort* platformID, - TT_UShort* encodingID ) - { - PCMapTable cmap; - PFace faze = HANDLE_Face( face ); - - - if ( !faze ) - return TT_Err_Invalid_Face_Handle; - - if ( charmapIndex >= faze->numCMaps ) - return TT_Err_Invalid_Argument; - - cmap = faze->cMaps + charmapIndex; - - *platformID = cmap->platformID; - *encodingID = cmap->platformEncodingID; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Get_CharMap - * - * Description : Looks up a charmap. - * - * Input : face face object handle - * charmapIndex index of charmap in directory - * charMap address of returned charmap handle - * - * Output : Error code. - * - * MT-Safe : YES! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Get_CharMap( TT_Face face, - TT_UShort charmapIndex, - TT_CharMap* charMap ) - { - TT_Error error; - TT_Stream stream; - PCMapTable cmap; - PFace faze = HANDLE_Face( face ); - - - if ( !faze ) - return TT_Err_Invalid_Face_Handle; - - if ( charmapIndex >= faze->numCMaps ) - return TT_Err_Invalid_Argument; - - cmap = faze->cMaps + charmapIndex; - - /* Load table if needed */ - error = TT_Err_Ok; - - /* MT-NOTE: We're modifying the face object, so protect it. */ - MUTEX_Lock( faze->lock ); - - if ( !cmap->loaded ) - { - (void)USE_Stream( faze->stream, stream ); - if ( !error ) - { - error = CharMap_Load( cmap, stream ); - DONE_Stream( stream ); - } - - if ( error ) - cmap = NULL; - else - cmap->loaded = TRUE; - } - MUTEX_Release( faze->lock ); - - HANDLE_Set( *charMap, cmap ); - - return error; - } - - -/******************************************************************* - * - * Function : TT_Char_Index - * - * Description : Returns the glyph index corresponding to - * a given character code defined for the 'charmap'. - * - * Input : charMap charmap handle - * charcode character code - * - * Output : glyph index. - * - * Notes : Character code 0 is the unknown glyph, which should never - * be displayed. - * - * MT-Safe : YES! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_UShort ) - TT_Char_Index( TT_CharMap charMap, - TT_ULong charCode ) - { - PCMapTable cmap = HANDLE_CharMap( charMap ); - - - if ( !cmap ) - return 0; /* we return 0 in case of invalid char map */ - - return CharMap_Index( cmap, charCode ); - } - - -/******************************************************************* - * - * Function : TT_Get_Name_Count - * - * Description : Returns the number of strings found in the - * name table. - * - * Input : face face handle - * - * Output : number of strings. - * - * Notes : Returns -1 on error (invalid handle). - * - * DON'T USE THIS FUNCTION! IT HAS BEEN DEPRECATED! - * - * It is retained for backwards compatibility only and will - * fail on 16bit systems. - * - * MT-Safe : YES! - * - ******************************************************************/ - - FT_EXPORT_FUNC( int ) - TT_Get_Name_Count( TT_Face face ) - { - PFace faze = HANDLE_Face( face ); - - - if ( !faze ) - return -1; - - return faze->nameTable.numNameRecords; - } - - -/******************************************************************* - * - * Function : TT_Get_Name_ID - * - * Description : Returns the IDs of the string number 'nameIndex' - * in the name table of a given face. - * - * Input : face face handle - * nameIndex index of string. First is 0 - * platformID addresses of returned IDs - * encodingID - * languageID - * nameID - * - * Output : Error code. - * - * Notes : Some files have a corrupt or unusual name table, with some - * entries having a platformID > 3. These can usually - * be ignored by a client application. - * - * MT-Safe : YES! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Get_Name_ID( TT_Face face, - TT_UShort nameIndex, - TT_UShort* platformID, - TT_UShort* encodingID, - TT_UShort* languageID, - TT_UShort* nameID ) - { - TNameRec* namerec; - PFace faze = HANDLE_Face( face ); - - - if ( !faze ) - return TT_Err_Invalid_Face_Handle; - - if ( nameIndex >= faze->nameTable.numNameRecords ) - return TT_Err_Invalid_Argument; - - namerec = faze->nameTable.names + nameIndex; - - *platformID = namerec->platformID; - *encodingID = namerec->encodingID; - *languageID = namerec->languageID; - *nameID = namerec->nameID; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Get_Name_String - * - * Description : Returns the address and length of a given - * string found in the name table. - * - * Input : face face handle - * nameIndex string index - * stringPtr address of returned pointer to string - * length address of returned string length - * - * Output : Error code. - * - * Notes : If the string's platformID is invalid, - * stringPtr is NULL, and length is 0. - * - * MT-Safe : YES! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Get_Name_String( TT_Face face, - TT_UShort nameIndex, - TT_String** stringPtr, - TT_UShort* length ) - { - TNameRec* namerec; - PFace faze = HANDLE_Face( face ); - - - if ( !faze ) - return TT_Err_Invalid_Face_Handle; - - if ( nameIndex >= faze->nameTable.numNameRecords ) - return TT_Err_Invalid_Argument; - - namerec = faze->nameTable.names + nameIndex; - - *stringPtr = (String*)namerec->string; - *length = namerec->stringLength; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Get_Font_Data - * - * Description : Loads any font table into client memory. - * - * Input : face Face object to look for. - * - * tag Tag of table to load. Use the value 0 if you - * want to access the whole font file, else set - * this parameter to a valid TrueType table tag - * that you can forge with the MAKE_TT_TAG - * macro. - * - * offset Starting offset in the table (or the file - * if tag == 0). - * - * buffer Address of target buffer - * - * length Address of decision variable: - * - * if length == NULL: - * Load the whole table. Returns an - * error if 'offset' != 0. - * - * if *length == 0 : - * Exit immediately, returning the - * length of the given table, or of - * the font file, depending on the - * value of 'tag'. - * - * if *length != 0 : - * Load the next 'length' bytes of - * table or font, starting at offset - * 'offset' (in table or font too). - * - * Output : Error code. - * - * MT-Safe : YES! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Get_Font_Data( TT_Face face, - TT_ULong tag, - TT_Long offset, - void* buffer, - TT_Long* length ) - { - PFace faze = HANDLE_Face( face ); - - - if ( !faze ) - return TT_Err_Invalid_Face_Handle; - - return Load_TrueType_Any( faze, tag, offset, buffer, length ); - } - - - /************************ callback definition ******************/ - - /* Register a new callback to the TrueType engine -- this should */ - /* only be used by higher-level libraries, not typical clients */ - /* */ - /* This is not part of the current FreeType release, thus */ - /* undefined... */ - -#if 0 - FT_EXPORT_FUNC( TT_Error ) - TT_Register_Callback( TT_Engine engine, - int callback_id, - void* callback_ptr ) - { - PEngine_Instance eng = HANDLE_Engine( engine ); - - - if ( !eng ) - return TT_Err_Invalid_Argument; - - /* currently, we only support one callback */ - if (callback_id != TT_Callback_Glyph_Outline_Load) - return TT_Err_Invalid_Argument; - - eng->glCallback = (TT_Glyph_Loader_Callback)callback_ptr; - return TT_Err_Ok; - } -#endif /* 0 */ - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/ttcache.c b/Build/source/libs/freetype/freetype-1.5/lib/ttcache.c deleted file mode 100644 index 21e6bf54c0f..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/ttcache.c +++ /dev/null @@ -1,464 +0,0 @@ -/******************************************************************* - * - * ttcache.c 1.1 - * - * Generic object cache - * - * Copyright 1996-2000 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - * Changes between 1.1 and 1.0: - * - * - introduced the refresher and finalizer in the cache class - * definition/implementation. - * - ******************************************************************/ - -#include "ttengine.h" -#include "ttmemory.h" -#include "ttcache.h" -#include "ttobjs.h" -#include "ttdebug.h" - -/* required by the tracing mode */ -#undef TT_COMPONENT -#define TT_COMPONENT trace_cache - -#define ZERO_List( list ) list = NULL - -/* The macro FREE_Elements aliases the current engine instance's */ -/* free list_elements recycle list. */ -#define FREE_Elements ( engine->list_free_elements ) - -/* Redefinition of LOCK and UNLOCK macros for New_Element and Done_Element */ -/* Note: The macros are redefined below for the cache functions */ - -#undef LOCK -#define LOCK() MUTEX_Lock ( engine->lock ) - -#undef UNLOCK -#define UNLOCK() MUTEX_Release( engine->lock ) - -/******************************************************************* - * - * Function : Element_New - * - * Description : Gets a new (either fresh or recycled) list - * element. The element is unlisted. - * - * Input : None - * - * Output : List element address. NULL if out of memory. - * - ******************************************************************/ - - static - PList_Element Element_New( PEngine_Instance engine ) - { - PList_Element element; - - - LOCK(); - if ( FREE_Elements ) - { - element = (PList_Element)FREE_Elements; - FREE_Elements = element->next; - } - else - { - if ( !MEM_Alloc( element, sizeof ( TList_Element ) ) ) - { - element->next = NULL; - element->data = NULL; - } - } - - /* Note: in case of failure, Alloc sets the pointer to NULL */ - UNLOCK(); - - return element; - } - - -/******************************************************************* - * - * Function : Element_Done - * - * Description : Recycles an unlinked list element. - * - * Input : The list element to recycle. It _must_ be unlisted. - * - * Output : none. - * - * Note : This function doesn't check the element. - * - ******************************************************************/ - - static - void Element_Done( PEngine_Instance engine, - PList_Element element ) - { - LOCK(); - /* Simply add the list element to the recycle list */ - element->next = (PList_Element)FREE_Elements; - FREE_Elements = element; - UNLOCK(); - } - - -/* Redefinition of LOCK and UNLOCK macros for the cache functions */ -/* Note: The macros are defined above for the list element functions */ - -#undef LOCK -#define LOCK() MUTEX_Lock( *cache->lock ) - -#undef UNLOCK -#define UNLOCK() MUTEX_Release( *cache->lock ) - - -/******************************************************************* - * - * Function : Cache_Create - * - * Description : Creates a new cache that will be used to list - * and recycle several objects of the same class. - * - * Input : clazz a pointer to the cache's class. This is - * a simple structure that describes the - * the cache's object types and recycling - * limits. - * - * cache address of cache to create - * - * lock address of the mutex to use for this - * cache. The mutex will be used to protect - * the cache's lists. Use NULL for unprotected - * cache. - * - * Output : Error code. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Cache_Create( PEngine_Instance engine, - PCache_Class clazz, - TCache* cache, - TMutex* lock ) - { - cache->engine = engine; - cache->clazz = clazz; - cache->lock = lock; - cache->idle_count = 0; - - ZERO_List( cache->active ); - ZERO_List( cache->idle ); - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Cache_Destroy - * - * Description : Destroys a cache and all its idle and active - * objects. This will call each object's destructor - * before freeing it. - * - * Input : cache address of cache to destroy - * - * Output : error code. - * - * Note: This function is not MT-Safe, as we assume that a client - * isn't stupid enough to use an object while destroying it. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Cache_Destroy( TCache* cache ) - { - PDestructor destroy; - PList_Element current; - PList_Element next; - - - /* now destroy all active and idle listed objects */ - - /* get the destructor function */ - destroy = cache->clazz->done; - - /* destroy all elements in active list */ - current = cache->active; - while ( current ) - { - next = current->next; - destroy( current->data ); - FREE( current->data ); - - Element_Done( cache->engine, current ); - current = next; - } - ZERO_List(cache->active); - - /* destroy all elements in idle list */ - current = cache->idle; - while ( current ) - { - next = current->next; - destroy( current->data ); - FREE( current->data ); - - Element_Done( cache->engine, current ); - current = next; - } - ZERO_List(cache->idle); - - cache->clazz = NULL; - cache->idle_count = 0; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Cache_New - * - * Description : Extracts a new object from a cache. This will - * try to recycle an idle object, if any is found. - * Otherwise, a new object will be allocated and - * built (by calling its constructor). - * - * Input : cache address of cache to use - * new_object address of target pointer to the 'new' - * object - * parent_object this pointer is passed to a new object - * constructor (unused if object is - * recycled) - * - * Output : Error code. - * - * Notes: This function is thread-safe, each cache list is protected - * through the cache's mutex, if there is one... - * - * *new_object will be set to NULL in case of failure. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Cache_New( TCache* cache, - void** new_object, - void* parent_object ) - { - TT_Error error; - PList_Element current; - PConstructor build; - PRefresher reset; - void* object; - - - LOCK(); - current = cache->idle; - if ( current ) - { - cache->idle = current->next; - cache->idle_count--; - } - UNLOCK(); - - if ( current ) - { - object = current->data; - reset = cache->clazz->reset; - if ( reset ) - { - error = reset( object, parent_object ); - if ( error ) - { - LOCK(); - current->next = cache->idle; - cache->idle = current; - cache->idle_count++; - UNLOCK(); - goto Exit; - } - } - } - else - { - /* if no object was found in the cache, create a new one */ - build = cache->clazz->init; - - if ( MEM_Alloc( object, cache->clazz->object_size ) ) - goto Memory_Fail; - - current = Element_New( cache->engine ); - if ( !current ) - goto Memory_Fail; - - current->data = object; - - error = build( object, parent_object ); - if ( error ) - { - Element_Done( cache->engine, current ); - goto Fail; - } - } - - LOCK(); - current->next = cache->active; - cache->active = current; - UNLOCK(); - - *new_object = current->data; - return TT_Err_Ok; - - Exit: - *new_object = NULL; - return error; - - Memory_Fail: - error = TT_Err_Out_Of_Memory; - - Fail: - FREE( object ); - goto Exit; - } - - -/******************************************************************* - * - * Function : Cache_Done - * - * Description : Releases an object to the cache. This will either - * recycle or destroy the object, based on the cache's - * class and state. - * - * Input : cache the cache to use - * data the object to recycle/discard - * - * Output : error code. - * - * Notes : The object's destructor is called only when - * the objectwill be effectively destroyed by this - * function. This will not happen during recycling. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Cache_Done( TCache* cache, - void* data ) - { - TT_Error error; - PList_Element element; - PList_Element prev; - PFinalizer finalize; - Long limit; - Bool destroy; - - - /* Look for object in active list */ - LOCK(); - - element = cache->active; - prev = NULL; - while ( element ) - { - if ( element->data == data ) - { - if ( prev ) - prev->next = element->next; - else - cache->active = element->next; - goto Suite; - } - prev = element; - element = element->next; - } - - UNLOCK(); - return TT_Err_Unlisted_Object; - - Suite: - - limit = cache->clazz->idle_limit; - destroy = (cache->idle_count >= limit); - UNLOCK(); - - if ( destroy ) - { - /* destroy the object when the cache is full */ - cache->clazz->done( element->data ); - FREE( element->data ); - Element_Done( cache->engine, element ); - } - else - { - /* Finalize the object before adding it to the */ - /* idle list. Return the error if any is found. */ - - finalize = cache->clazz->finalize; - if ( finalize ) - { - error = finalize( element->data ); - if ( error ) - goto Exit; - - /* Note: a failure at finalize time is a severe bug in */ - /* the engine, which is why we allow ourselves to */ - /* lose the object in this case. A finalizer should */ - /* have its own error codes to spot this kind of */ - /* problems easily. */ - } - - LOCK(); - element->next = cache->idle; - cache->idle = element; - cache->idle_count++; - UNLOCK(); - } - - error = TT_Err_Ok; - - Exit: - return error; - } - - - FT_INTERNAL_FUNC( TT_Error ) - TTCache_Init( PEngine_Instance engine ) - { - /* Create list elements mutex */ - FREE_Elements = NULL; - return TT_Err_Ok; - } - - - FT_INTERNAL_FUNC( TT_Error ) - TTCache_Done( PEngine_Instance engine ) - { - /* We don't protect this function, as this is the end of the engine's */ - /* execution.. */ - PList_Element element, next; - - - /* frees the recycled list elements */ - element = FREE_Elements; - while ( element ) - { - next = element->next; - FREE( element ); - element = next; - } - return TT_Err_Ok; - } - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/ttcache.h b/Build/source/libs/freetype/freetype-1.5/lib/ttcache.h deleted file mode 100644 index 0c33f4a1861..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/ttcache.h +++ /dev/null @@ -1,216 +0,0 @@ -/******************************************************************* - * - * ttcache.h 1.1 - * - * Generic object cache - * - * Copyright 1996-2000 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - * - * This component defines and implements object caches. - * - * An object class is a structure layout that encapsulate one - * given type of data used by the FreeType engine. Each object - * class is completely described by: - * - * - a 'root' or 'leading' structure containing the first - * important fields of the class. The root structure is - * always of fixed size. - * - * It is implemented as a simple C structure, and may - * contain several pointers to sub-tables that can be - * sized and allocated dynamically. - * - * Examples: TFace, TInstance, TGlyph & TExecution_Context - * (defined in 'ttobjs.h') - * - * - we make a difference between 'child' pointers and 'peer' - * pointers. A 'child' pointer points to a sub-table that is - * owned by the object, while a 'peer' pointer points to any - * other kind of data the object isn't responsible for. - * - * An object class is thus usually a 'tree' of 'child' tables. - * - * - each object class needs a constructor and a destructor. - * - * A constructor is a function which receives the address of - * freshly allocated and zeroed object root structure and - * 'builds' all the valid child data that must be associated - * to the object before it becomes 'valid'. - * - * A destructor does the inverse job: given the address of - * a valid object, it must discard all its child data and - * zero its main fields (essentially the pointers and array - * sizes found in the root fields). - * - * - * Important notes: - * - * When the constructor fails to allocate an object, it must - * return immediately with an error code, and not try to release - * what it has previously allocated before the error. The cache - * manager detects the error and calls the destructor on the - * partial object, before returning the error to the caller (along - * with a NULL pointer for the "new" object). - * - * The destructor must thus be able to deal with "partial objects", - * i.e., objects where only part of the child tables are allocated, - * and only release these ones. As the TT_Free() function accepts - * a NULL parameter (and returns successfuly in this case), no check - * is really necessary when using the macro 'FREE()'. - * - * Currently, there is no check in the cache manager to see if a - * destructor fails (double error state!). - * - * This scheme is more compact and more maintanable than the one - * where de-allocation code is duplicated in the constructor - * _and_ the destructor. - * - * - * - * Changes between 1.1 and 1.0: - * - * - introduced the refreshed and finalizer class definition/implementation - * - inserted an engine instance pointer in the cache structure - * - ******************************************************************/ - -#ifndef TTCACHE_H -#define TTCACHE_H - -#include "tttypes.h" -#include "ttconfig.h" -#include "ttmutex.h" - -#ifdef __cplusplus - extern "C" { -#endif - - typedef TT_Error TConstructor( void* object, - void* parent ); - - typedef TT_Error TDestructor ( void* object ); - - typedef TConstructor TRefresher; - typedef TDestructor TFinalizer; - - typedef TConstructor* PConstructor; - typedef TDestructor* PDestructor; - typedef TRefresher* PRefresher; - typedef TFinalizer* PFinalizer; - - - /* A Cache class record holds the data necessary to define */ - /* a cache kind. */ - struct TCache_Class_ - { - ULong object_size; - Long idle_limit; - PConstructor init; - PDestructor done; - PRefresher reset; - PFinalizer finalize; - }; - - typedef struct TCache_Class_ TCache_Class; - typedef TCache_Class* PCache_Class; - - - - /* Simple list node record. A list element is said to be 'unlinked' */ - /* when it doesn't belong to any list. */ - struct TList_Element_; - - typedef struct TList_Element_ TList_Element; - typedef TList_Element* PList_Element; - - struct TList_Element_ - { - PList_Element next; - void* data; - }; - - - /* Simple singly-linked list record - LIFO style, no tail field */ - typedef PList_Element TSingle_List; - - struct TCache_ - { - PEngine_Instance engine; - PCache_Class clazz; /* 'class' is a reserved word in C++ */ - TMutex* lock; - TSingle_List active; - TSingle_List idle; - Long idle_count; - }; - - typedef struct TCache_ TCache; - typedef TCache* PCache; - - /* Returns a new list element, either fresh or recycled. */ - /* Note: the returned element is unlinked. */ - - /* An object cache holds two lists tracking the active and */ - /* idle objects that are currently created and used by the */ - /* engine. It can also be 'protected' by a mutex. */ - - /* Initializes a new cache, of class 'clazz', pointed by 'cache', */ - /* protected by the 'lock' mutex. Set 'lock' to NULL if the cache */ - /* doesn't need protection */ - - FT_INTERNAL_DEF( TT_Error ) - Cache_Create( PEngine_Instance engine, - PCache_Class clazz, - TCache* cache, - TMutex* lock ); - - /* Destroys a cache and all its listed objects */ - - FT_INTERNAL_DEF( TT_Error ) - Cache_Destroy( TCache* cache ); - - - /* Extracts a new object from the cache */ - - FT_INTERNAL_DEF( TT_Error ) - Cache_New( TCache* cache, - void** new_object, - void* parent_object ); - - - /* Returns an object to the cache, or discards it depending */ - /* on the cache class' 'idle_limit' field */ - - FT_INTERNAL_DEF( TT_Error ) - Cache_Done( TCache* cache, void* data ); - -#define CACHE_New( _cache, _newobj, _parent ) \ - Cache_New( (TCache*)_cache, (void**)&_newobj, (void*)_parent ) - -#define CACHE_Done( _cache, _obj ) \ - Cache_Done( (TCache*)_cache, (void*)_obj ) - - - - FT_INTERNAL_DEF( TT_Error ) - TTCache_Init( PEngine_Instance engine ); - - FT_INTERNAL_DEF( TT_Error ) - TTCache_Done( PEngine_Instance engine ); - - -#ifdef __cplusplus - } -#endif - -#endif /* TTCACHE_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/ttcalc.c b/Build/source/libs/freetype/freetype-1.5/lib/ttcalc.c deleted file mode 100644 index 44d2f8c6f7f..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/ttcalc.c +++ /dev/null @@ -1,426 +0,0 @@ -/******************************************************************* - * - * ttcalc.c - * - * Arithmetic Computations (body). - * - * Copyright 1996-2000 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - ******************************************************************/ - -#include "ttcalc.h" -#include "ttdebug.h" -#include "tttables.h" - -/* required by the tracing mode */ -#undef TT_COMPONENT -#define TT_COMPONENT trace_calc - - -/* Support for 1-complement arithmetic has been totally dropped in this */ -/* release. You can still write your own code if you need it... */ - - static const Long Roots[63] = - { - 1, 1, 2, 3, 4, 5, 8, 11, - 16, 22, 32, 45, 64, 90, 128, 181, - 256, 362, 512, 724, 1024, 1448, 2048, 2896, - 4096, 5892, 8192, 11585, 16384, 23170, 32768, 46340, - - 65536, 92681, 131072, 185363, 262144, 370727, - 524288, 741455, 1048576, 1482910, 2097152, 2965820, - 4194304, 5931641, 8388608, 11863283, 16777216, 23726566, - - 33554432, 47453132, 67108864, 94906265, - 134217728, 189812531, 268435456, 379625062, - 536870912, 759250125, 1073741824, 1518500250, - 2147483647 - }; - - -#ifdef LONG64 - - FT_EXPORT_FUNC( TT_Long ) - TT_MulDiv( TT_Long a, - TT_Long b, - TT_Long c ) - { - Long s; - - - s = a; a = ABS( a ); - s ^= b; b = ABS( b ); - s ^= c; c = ABS( c ); - - if ( c > 0 ) - a = ( (TT_Int64)a * b + ( c >> 1 ) ) / c; - else - a = 0x7FFFFFFFL; - - return ( s < 0 ) ? -a : a; - } - - - FT_EXPORT_FUNC( TT_Long ) - TT_MulFix( TT_Long a, - TT_Long b ) - { - Long s; - - - s = a; a = ABS( a ); - s ^= b; b = ABS( b ); - - a = ((TT_Int64)a * b + 0x8000) / 0x10000; - return ( s < 0 ) ? -a : a; - } - - - FT_INTERNAL_FUNC( Int ) - Order64( TT_Int64 z ) - { - Int j = 0; - - - while ( z ) - { - z = (unsigned INT64)z >> 1; - j++; - } - return j - 1; - } - - - FT_INTERNAL_FUNC( TT_Int32 ) - Sqrt64( TT_Int64 l ) - { - TT_Int64 r, s; - - - if ( l <= 0 ) return 0; - if ( l == 1 ) return 1; - - r = Roots[Order64( l )]; - - do - { - s = r; - r = ( r + l/r ) >> 1; - } - while ( r > s || r*r > l ); - - return r; - } - -#else /* LONG64 */ - - - /* The TT_MulDiv function has been optimized thanks to ideas from */ - /* Graham Asher. The trick is to optimize computation when everything */ - /* fits within 32-bits (a rather common case). */ - /* */ - /* we compute 'a*b+c/2', then divide it by 'c'. (positive values) */ - /* */ - /* 46340 is FLOOR(SQRT(2^31-1)). */ - /* */ - /* if ( a <= 46340 && b <= 46340 ) then ( a*b <= 0x7FFEA810 ) */ - /* */ - /* 0x7FFFFFFF - 0x7FFEA810 = 0x157F0 */ - /* */ - /* if ( c < 0x157F0*2 ) then ( a*b+c/2 <= 0x7FFFFFFF ) */ - /* */ - /* and 2*0x157F0 = 176096 */ - /* */ - - FT_EXPORT_FUNC( TT_Long ) - TT_MulDiv( TT_Long a, - TT_Long b, - TT_Long c ) - { - long s; - - - if ( a == 0 || b == c ) - return a; - - s = a; a = ABS( a ); - s ^= b; b = ABS( b ); - s ^= c; c = ABS( c ); - - if ( a <= 46340 && b <= 46340 && c <= 176095L && c > 0 ) - { - a = ( a * b + ( c >> 1 ) ) / c; - } - else if ( c > 0 ) - { - TT_Int64 temp, temp2; - - MulTo64( a, b, &temp ); - temp2.hi = (TT_Int32)( c >> 31 ); - temp2.lo = (TT_Word32)( c / 2 ); - Add64( &temp, &temp2, &temp ); - a = Div64by32( &temp, c ); - } - else - a = 0x7FFFFFFFL; - - return ( s < 0 ) ? -a : a; - } - - /* The optimization for TT_MulFix is different. We could simply be */ - /* happy by applying the same principles than with TT_MulDiv, because */ - /* */ - /* c = 0x10000 < 176096 */ - /* */ - /* however, in most cases, we have a 'b' with a value around 0x10000 */ - /* which is greater than 46340. */ - /* */ - /* According to Graham's testing, most cases have 'a' < 100, so a good */ - /* idea is to use bounds like 1024 and 2097151 (= floor(2^31-1)/1024 ) */ - /* for 'a' and 'b' respectively.. */ - /* */ - - FT_EXPORT_FUNC( TT_Long ) - TT_MulFix( TT_Long a, - TT_Long b ) - { - long s; - - if ( a == 0 || b == 0x10000 ) - return a; - - s = a; a = ABS( a ); - s ^= b; b = ABS( b ); - - if ( a <= 1024 && b <= 2097151 ) - { - a = ( a*b + 0x8000 ) >> 16; - } - else - { - TT_Int64 temp, temp2; - - MulTo64( a, b, &temp ); - temp2.hi = 0; - temp2.lo = 0x8000; - Add64( &temp, &temp2, &temp ); - a = Div64by32( &temp, 0x10000 ); - } - - return ( s < 0 ) ? -a : a; - } - - - FT_INTERNAL_FUNC( void ) - Neg64( TT_Int64* x ) - { - /* Remember that -(0x80000000) == 0x80000000 with 2-complement! */ - /* We take care of that here. */ - - x->hi ^= 0xFFFFFFFFUL; - x->lo ^= 0xFFFFFFFFUL; - x->lo++; - - if ( !x->lo ) - { - x->hi++; - if ( x->hi == 0x80000000UL ) /* Check -MaxInt32 - 1 */ - { - x->lo--; - x->hi--; /* We return 0x7FFFFFFF! */ - } - } - } - - - FT_INTERNAL_FUNC( void ) - Add64( TT_Int64* x, - TT_Int64* y, - TT_Int64* z ) - { - register TT_Word32 lo, hi; - - - lo = x->lo + y->lo; - hi = x->hi + y->hi + ( lo < x->lo ); - - z->lo = lo; - z->hi = hi; - } - - - FT_INTERNAL_FUNC( void ) - Sub64( TT_Int64* x, - TT_Int64* y, - TT_Int64* z ) - { - register TT_Word32 lo, hi; - - - lo = x->lo - y->lo; - hi = x->hi - y->hi - ( (TT_Int32)lo < 0 ); - - z->lo = lo; - z->hi = hi; - } - - - FT_INTERNAL_FUNC( void ) - MulTo64( TT_Int32 x, - TT_Int32 y, - TT_Int64* z ) - { - TT_Int32 s; - TT_Word32 lo1, hi1, lo2, hi2, lo, hi, i1, i2; - - - s = x; x = ABS( x ); - s ^= y; y = ABS( y ); - - lo1 = x & 0x0000FFFF; hi1 = x >> 16; - lo2 = y & 0x0000FFFF; hi2 = y >> 16; - - lo = lo1*lo2; - i1 = lo1*hi2; - i2 = lo2*hi1; - hi = hi1*hi2; - - /* Check carry overflow of i1 + i2 */ - - if ( i2 ) - { - if ( i1 >= (TT_Word32)-(TT_Int32)i2 ) hi += 1L << 16; - i1 += i2; - } - - i2 = i1 >> 16; - i1 = i1 << 16; - - /* Check carry overflow of i1 + lo */ - if ( i1 ) - { - if ( lo >= (TT_Word32)-(TT_Int32)i1 ) hi++; - lo += i1; - } - - hi += i2; - - z->lo = lo; - z->hi = hi; - - if ( s < 0 ) Neg64( z ); - } - - - FT_INTERNAL_FUNC( TT_Int32 ) - Div64by32( TT_Int64* x, - TT_Int32 y ) - { - TT_Int32 s; - TT_Word32 q, r, i, lo; - - - s = x->hi; if ( s < 0 ) Neg64( x ); - s ^= y; y = ABS( y ); - - /* Shortcut */ - if ( x->hi == 0 ) - { - if ( y > 0 ) - q = x->lo / y; - else - q = 0x7FFFFFFFL; - - return ( s < 0 ) ? -(TT_Int32)q : (TT_Int32)q; - } - - r = x->hi; - lo = x->lo; - - if ( r >= (TT_Word32)y ) /* we know y is to be treated as unsigned here */ - return ( s < 0 ) ? 0x80000001UL : 0x7FFFFFFFUL; - /* Return Max/Min Int32 if division overflow */ - /* This includes division by zero! */ - q = 0; - for ( i = 0; i < 32; i++ ) - { - r <<= 1; - q <<= 1; - r |= lo >> 31; - - if ( r >= (TT_Word32)y ) - { - r -= y; - q |= 1; - } - lo <<= 1; - } - - return ( s < 0 ) ? -(TT_Int32)q : (TT_Int32)q; - } - - - FT_INTERNAL_FUNC( Int ) - Order64( TT_Int64* z ) - { - TT_Word32 i; - Int j; - - - if ( z->hi ) - { - i = z->hi; - j = 32; - } - else - { - i = z->lo; - j = 0; - } - - while ( i > 0 ) - { - i >>= 1; - j++; - } - return j-1; - } - - - FT_INTERNAL_FUNC( TT_Int32 ) - Sqrt64( TT_Int64* l ) - { - TT_Int64 l2; - TT_Int32 r, s; - - - if ( (TT_Int32)l->hi < 0 || - (l->hi == 0 && l->lo == 0) ) return 0; - - s = Order64( l ); - if ( s == 0 ) return 1; - - r = Roots[s]; - do - { - s = r; - r = ( r + Div64by32(l,r) ) >> 1; - MulTo64( r, r, &l2 ); - Sub64 ( l, &l2, &l2 ); - } - while ( r > s || (TT_Int32)l2.hi < 0 ); - - return r; - } - -#endif /* LONG64 */ - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/ttcalc.h b/Build/source/libs/freetype/freetype-1.5/lib/ttcalc.h deleted file mode 100644 index 98da62a1c21..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/ttcalc.h +++ /dev/null @@ -1,119 +0,0 @@ -/******************************************************************* - * - * ttcalc.h - * - * Arithmetic Computations (specification). - * - * Copyright 1996-2002 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - ******************************************************************/ - -#ifndef TTCALC_H -#define TTCALC_H - -#include "ttconfig.h" -#include "freetype.h" - - -#ifdef __cplusplus - extern "C" { -#endif - -#ifdef LONG64 - - typedef INT64 TT_Int64; - -#define ADD_64( x, y, z ) z = x + y -#define SUB_64( x, y, z ) z = x - y -#define MUL_64( x, y, z ) z = (TT_Int64)(x) * (y) - -#define DIV_64( x, y ) ( (x) / (y) ) - -#define SQRT_64( x ) Sqrt64( x ) -#define SQRT_32( x ) Sqrt32( x ) - - FT_INTERNAL_DEF( TT_Int32 ) - Sqrt64( TT_Int64 l ) -#if defined __GCC__ && defined TT_MAKE_OPTION_SINGLE_OBJECT - __attribute__ (( unused )) /* keep the compiler mute */ -#endif - ; - -#else /* LONG64 */ - - struct TT_Int64_ - { - TT_Word32 lo; - TT_Word32 hi; - }; - - typedef struct TT_Int64_ TT_Int64; - -#define ADD_64( x, y, z ) Add64( &x, &y, &z ) -#define SUB_64( x, y, z ) Sub64( &x, &y, &z ) -#define MUL_64( x, y, z ) MulTo64( x, y, &z ) - -#define DIV_64( x, y ) Div64by32( &x, y ) - -#define SQRT_64( x ) Sqrt64( &x ) -#define SQRT_32( x ) Sqrt32( x ) - - FT_INTERNAL_DEF( void ) - Add64( TT_Int64* x, - TT_Int64* y, - TT_Int64* z ); - FT_INTERNAL_DEF( void ) - Sub64( TT_Int64* x, - TT_Int64* y, - TT_Int64* z ); - - FT_INTERNAL_DEF( void ) - MulTo64( TT_Int32 x, - TT_Int32 y, - TT_Int64* z ); - - FT_INTERNAL_DEF( TT_Int32 ) - Div64by32( TT_Int64* x, - TT_Int32 y ); - - FT_INTERNAL_DEF( int ) - Order64( TT_Int64* z ); - - FT_INTERNAL_DEF( TT_Int32 ) - Sqrt64( TT_Int64* l ) -#if defined __GCC__ && defined TT_MAKE_OPTION_SINGLE_OBJECT - __attribute__ (( unused )) /* keep the compiler mute */ -#endif - ; - -#endif /* LONG64 */ - - /* The two following functions are now part of the API! */ - - /* TT_Long TT_MulDiv( TT_Long a, TT_Long b, TT_Long c ); */ - /* TT_Long TT_MulFix( TT_Long a, TT_Long b ); */ - - -#define INT_TO_F26DOT6( x ) ( (Long)(x) << 6 ) -#define INT_TO_F2DOT14( x ) ( (Long)(x) << 14 ) -#define INT_TO_FIXED( x ) ( (Long)(x) << 16 ) -#define F2DOT14_TO_FIXED( x ) ( (Long)(x) << 2 ) -#define FLOAT_TO_FIXED( x ) ( (Long)(x * 65536.0) ) - -#define ROUND_F26DOT6( x ) ( x >= 0 ? ( ((x) + 32) & -64) \ - : ( -((32 - (x)) & -64) ) ) - -#ifdef __cplusplus - } -#endif - -#endif /* TTCALC_H */ - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/ttcmap.c b/Build/source/libs/freetype/freetype-1.5/lib/ttcmap.c deleted file mode 100644 index a8ce85708d7..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/ttcmap.c +++ /dev/null @@ -1,635 +0,0 @@ -/******************************************************************* - * - * ttcmap.c - * - * TrueType Character Mappings - * - * Copyright 1996-2002 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - ******************************************************************/ - -#include "ttobjs.h" -#include "ttdebug.h" -#include "ttfile.h" -#include "ttmemory.h" -#include "ttload.h" -#include "ttcmap.h" - -/* required by the tracing mode */ -#undef TT_COMPONENT -#define TT_COMPONENT trace_cmap - - -/******************************************************************* - * - * Function : CharMap_Load - * - * Description : Loads a given charmap into memory. - * - * Input : cmap pointer to cmap table - * - * Output : Error code. - * - * Notes : - Assumes the the stream is already used (opened). - * - * - In case of error, releases all partially allocated - * tables. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - CharMap_Load( PCMapTable cmap, - TT_Stream input ) - { - DEFINE_LOAD_LOCALS( input ); - - UShort num_SH, num_Seg, i; - - UShort u, l, num_Groups, j; - ULong length; - - PCMap0 cmap0; - PCMap2 cmap2; - PCMap4 cmap4; - PCMap6 cmap6; - PCMap8_12 cmap8_12; - - PCMap2SubHeader cmap2sub; - PCMap4Segment segments; - PCMapGroup groups; - - - if ( cmap->loaded ) - return TT_Err_Ok; - - if ( FILE_Seek( cmap->offset ) ) - return error; - - switch ( cmap->format ) - { - case 0: - cmap0 = &cmap->c.cmap0; - - if ( ALLOC( cmap0->glyphIdArray, 256L ) || - FILE_Read( (void*)cmap0->glyphIdArray, 256L ) ) - goto Fail; - - break; - - case 2: - num_SH = 0; - cmap2 = &cmap->c.cmap2; - - /* allocate subheader keys */ - - if ( ALLOC_ARRAY( cmap2->subHeaderKeys, 256, UShort ) || - ACCESS_Frame( 512L ) ) - goto Fail; - - for ( i = 0; i < 256; i++ ) - { - u = GET_UShort() / 8; - cmap2->subHeaderKeys[i] = u; - - if ( num_SH < u ) - num_SH = u; - } - - FORGET_Frame(); - - /* load subheaders */ - - cmap2->numGlyphId = l = - ( ( cmap->length - 2L * (256 + 3) - num_SH * 8L ) & 0xffff) / 2; - - if ( ALLOC_ARRAY( cmap2->subHeaders, - num_SH + 1, - TCMap2SubHeader ) || - ACCESS_Frame( ( num_SH + 1 ) * 8L ) ) - goto Fail; - - cmap2sub = cmap2->subHeaders; - - for ( i = 0; i <= num_SH; i++ ) - { - cmap2sub->firstCode = GET_UShort(); - cmap2sub->entryCount = GET_UShort(); - cmap2sub->idDelta = GET_Short(); - /* we apply the location offset immediately */ - cmap2sub->idRangeOffset = GET_UShort() - ( num_SH - i ) * 8 - 2; - - cmap2sub++; - } - - FORGET_Frame(); - - /* load glyph ids */ - - if ( ALLOC_ARRAY( cmap2->glyphIdArray, l, UShort ) || - ACCESS_Frame( l * 2L ) ) - goto Fail; - - for ( i = 0; i < l; i++ ) - cmap2->glyphIdArray[i] = GET_UShort(); - - FORGET_Frame(); - break; - - case 4: - cmap4 = &cmap->c.cmap4; - - /* load header */ - - if ( ACCESS_Frame( 8L ) ) - goto Fail; - - cmap4->segCountX2 = GET_UShort(); - cmap4->searchRange = GET_UShort(); - cmap4->entrySelector = GET_UShort(); - cmap4->rangeShift = GET_UShort(); - - num_Seg = cmap4->segCountX2 / 2; - - FORGET_Frame(); - - /* load segments */ - - if ( ALLOC_ARRAY( cmap4->segments, - num_Seg, - TCMap4Segment ) || - ACCESS_Frame( (num_Seg * 4 + 1) * 2L ) ) - goto Fail; - - segments = cmap4->segments; - - for ( i = 0; i < num_Seg; i++ ) - segments[i].endCount = GET_UShort(); - - (void)GET_UShort(); - - for ( i = 0; i < num_Seg; i++ ) - segments[i].startCount = GET_UShort(); - - for ( i = 0; i < num_Seg; i++ ) - segments[i].idDelta = GET_Short(); - - for ( i = 0; i < num_Seg; i++ ) - segments[i].idRangeOffset = GET_UShort(); - - FORGET_Frame(); - - cmap4->numGlyphId = l = - ( ( cmap->length - ( 16L + 8L * num_Seg ) ) & 0xffff ) / 2; - - /* load ids */ - - if ( ALLOC_ARRAY( cmap4->glyphIdArray, l , UShort ) || - ACCESS_Frame( l * 2L ) ) - goto Fail; - - for ( i = 0; i < l; i++ ) - cmap4->glyphIdArray[i] = GET_UShort(); - - FORGET_Frame(); - break; - - case 6: - cmap6 = &cmap->c.cmap6; - - if ( ACCESS_Frame( 4L ) ) - goto Fail; - - cmap6->firstCode = GET_UShort(); - cmap6->entryCount = GET_UShort(); - - FORGET_Frame(); - - l = cmap6->entryCount; - - if ( ALLOC_ARRAY( cmap6->glyphIdArray, - cmap6->entryCount, - Short ) || - ACCESS_Frame( l * 2L ) ) - goto Fail; - - for ( i = 0; i < l; i++ ) - cmap6->glyphIdArray[i] = GET_UShort(); - - FORGET_Frame(); - break; - - case 8: - case 12: - if ( FILE_Seek( cmap->offset - 2 ) ) - return error; - - cmap8_12 = &cmap->c.cmap8_12; - - if ( ACCESS_Frame( 8L ) ) - goto Fail; - - length = GET_ULong(); - cmap->length = (UShort)(length & 0xFFFFU); - - if ( length!=cmap->length ) - goto Fail; - - GET_ULong(); /* language */ - - FORGET_Frame(); - - if ( cmap->format == 8 ) - if ( FILE_Skip( 8192L ) ) - goto Fail; - - if ( ACCESS_Frame( 4L ) ) - goto Fail; - cmap8_12->nGroups = GET_ULong(); - FORGET_Frame(); - - if ( cmap8_12->nGroups > 0xFFFF ) - goto Fail; - num_Groups = cmap8_12->nGroups; - - if ( ALLOC_ARRAY( cmap8_12->groups, num_Groups, TCMapGroup ) ) - goto Fail; - if ( ACCESS_Frame( num_Groups * 3 * 4L ) ) - goto Fail; - - groups = cmap8_12->groups; - - for ( j = 0; j < num_Groups; j++ ) - { - groups[j].startCharCode = GET_ULong(); - groups[j].endCharCode = GET_ULong(); - groups[j].startGlyphID = GET_ULong(); - } - - FORGET_Frame(); - - cmap8_12->last_group = cmap8_12->groups; - break; - - default: /* corrupt character mapping table */ - return TT_Err_Invalid_CharMap_Format; - - } - return TT_Err_Ok; - - Fail: - CharMap_Free( cmap ); - return error; - } - - -/******************************************************************* - * - * Function : CharMap_Free - * - * Description : Releases a given charmap table. - * - * Input : cmap pointer to cmap table - * - * Output : Error code. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - CharMap_Free( PCMapTable cmap ) - { - if ( !cmap ) - return TT_Err_Ok; - - switch ( cmap->format ) - { - case 0: - FREE( cmap->c.cmap0.glyphIdArray ); - break; - - case 2: - FREE( cmap->c.cmap2.subHeaderKeys ); - FREE( cmap->c.cmap2.subHeaders ); - FREE( cmap->c.cmap2.glyphIdArray ); - break; - - case 4: - FREE( cmap->c.cmap4.segments ); - FREE( cmap->c.cmap4.glyphIdArray ); - cmap->c.cmap4.segCountX2 = 0; - break; - - case 6: - FREE( cmap->c.cmap6.glyphIdArray ); - cmap->c.cmap6.entryCount = 0; - break; - - case 8: - case 12: - FREE( cmap->c.cmap8_12.groups ); - cmap->c.cmap8_12.nGroups = 0; - break; - - default: - /* invalid table format, do nothing */ - ; - } - - cmap->loaded = FALSE; - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : CharMap_Index - * - * Description : Performs charcode->glyph index translation. - * - * Input : cmap pointer to cmap table - * - * Output : Glyph index, 0 in case of failure. - * - ******************************************************************/ - - static UShort code_to_index0 ( ULong charCode, PCMap0 cmap0 ); - static UShort code_to_index2 ( ULong charCode, PCMap2 cmap2 ); - static UShort code_to_index4 ( ULong charCode, PCMap4 cmap4 ); - static UShort code_to_index6 ( ULong charCode, PCMap6 cmap6 ); - static UShort code_to_index8_12( ULong charCode, PCMap8_12 cmap8_12 ); - - - FT_INTERNAL_FUNC( UShort ) - CharMap_Index( PCMapTable cmap, - ULong charcode ) - { - switch ( cmap->format ) - { - case 0: - return code_to_index0( charcode, &cmap->c.cmap0 ); - case 2: - return code_to_index2( charcode, &cmap->c.cmap2 ); - case 4: - return code_to_index4( charcode, &cmap->c.cmap4 ); - case 6: - return code_to_index6( charcode, &cmap->c.cmap6 ); - case 8: - case 12: - return code_to_index8_12( charcode, &cmap->c.cmap8_12 ); - default: - return 0; - } - } - - -/******************************************************************* - * - * Function : code_to_index0 - * - * Description : Converts the character code into a glyph index. - * Uses format 0. - * charCode will be masked to get a value in the range - * 0x00-0xFF. - * - * Input : charCode the wanted character code - * cmap0 a pointer to a cmap table in format 0 - * - * Output : Glyph index into the glyphs array. - * 0 if the glyph does not exist. - * - ******************************************************************/ - - static UShort code_to_index0( ULong charCode, - PCMap0 cmap0 ) - { - if ( charCode <= 0xFF ) - return cmap0->glyphIdArray[charCode]; - else - return 0; - } - - -/******************************************************************* - * - * Function : code_to_index2 - * - * Description : Converts the character code into a glyph index. - * Uses format 2. - * - * Input : charCode the wanted character code - * cmap2 a pointer to a cmap table in format 2 - * - * Output : Glyph index into the glyphs array. - * 0 if the glyph does not exist. - * - ******************************************************************/ - - static UShort code_to_index2( ULong charCode, - PCMap2 cmap2 ) - { - UShort index1, idx; - UInt offset; - TCMap2SubHeader sh2; - - - index1 = cmap2->subHeaderKeys[charCode <= 0xFF ? - charCode : (charCode >> 8)]; - - if ( index1 == 0 ) - { - if ( charCode <= 0xFF ) - return cmap2->glyphIdArray[charCode]; /* 8bit character code */ - else - return 0; - } - else /* 16bit character code */ - { - if ( charCode <= 0xFF ) - return 0; - - sh2 = cmap2->subHeaders[index1]; - - if ( (charCode & 0xFF) < (TT_UInt)sh2.firstCode ) - return 0; - - if ( (charCode & 0xFF) >= (TT_UInt)( sh2.firstCode + sh2.entryCount ) ) - return 0; - - offset = sh2.idRangeOffset / 2 + (charCode & 0xFF) - sh2.firstCode; - if ( offset < cmap2->numGlyphId ) - idx = cmap2->glyphIdArray[offset]; - else - return 0; - - if ( idx ) - return ( idx + sh2.idDelta ) & 0xFFFF; - else - return 0; - } - } - - -/******************************************************************* - * - * Function : code_to_index4 - * - * Description : Converts the character code into a glyph index. - * Uses format 4. - * - * Input : charCode the wanted character code - * cmap4 a pointer to a cmap table in format 4 - * - * Output : Glyph index into the glyphs array. - * 0 if the glyph does not exist. - * - ******************************************************************/ - - static UShort code_to_index4( ULong charCode, - PCMap4 cmap4 ) - { - UInt index1; - UShort segCount, i; - TCMap4Segment seg4; - - - segCount = cmap4->segCountX2 / 2; - - for ( i = 0; i < segCount; i++ ) - if ( charCode <= (TT_UInt)cmap4->segments[i].endCount ) - break; - - /* Safety check - even though the last endCount should be 0xFFFF */ - if ( i >= segCount ) - return 0; - - seg4 = cmap4->segments[i]; - - if ( charCode < (TT_UInt)seg4.startCount ) - return 0; - - if ( seg4.idRangeOffset == 0 ) - return ( charCode + seg4.idDelta ) & 0xFFFF; - else - { - index1 = seg4.idRangeOffset / 2 + (charCode - seg4.startCount) - - (segCount - i); - - if ( index1 < cmap4->numGlyphId ) - { - if ( cmap4->glyphIdArray[index1] == 0 ) - return 0; - else - return ( cmap4->glyphIdArray[index1] + seg4.idDelta ) & 0xFFFF; - } - else - return 0; - } - } - - -/******************************************************************* - * - * Function : code_to_index6 - * - * Description : Converts the character code into a glyph index. - * Uses format 6. - * - * Input : charCode the wanted character code - * cmap6 a pointer to a cmap table in format 6 - * - * Output : Glyph index into the glyphs array. - * 0 if the glyph does not exist (`missing character glyph'). - * - ******************************************************************/ - - static UShort code_to_index6( ULong charCode, - PCMap6 cmap6 ) - { - TT_UInt firstCode; - - - firstCode = cmap6->firstCode; - - if ( charCode < firstCode ) - return 0; - - if ( charCode >= (firstCode + cmap6->entryCount) ) - return 0; - - return cmap6->glyphIdArray[charCode - firstCode]; - } - - - /*************************************************************************/ - /* */ - /* <Function> */ - /* code_to_index8_12 */ - /* */ - /* <Description> */ - /* Converts the (possibly 32bit) character code into a glyph index. */ - /* Uses format 8 or 12. */ - /* */ - /* <Input> */ - /* charCode :: The wanted character code. */ - /* cmap8_12 :: A pointer to a cmap table in format 8 or 12. */ - /* */ - /* <Return> */ - /* Glyph index into the glyphs array. 0 if the glyph does not exist. */ - /* */ - static UShort code_to_index8_12( ULong charCode, - PCMap8_12 cmap8_12 ) - { - PCMapGroup group, limit; - - - limit = cmap8_12->groups + cmap8_12->nGroups; - - /* first, check against the last used group */ - - group = cmap8_12->last_group; - - /* the following is equivalent to performing two tests, as in */ - /* */ - /* if ( charCode >= group->startCharCode && */ - /* charCode <= group->endCharCode ) */ - /* */ - /* This is a bit strange, but it is faster, and the idea behind the */ - /* cache is to significantly speed up charcode to glyph index */ - /* conversion. */ - - if ( (ULong)( charCode - group->startCharCode ) < - (ULong)( group->endCharCode - group->startCharCode ) ) - goto Found1; - - for ( group = cmap8_12->groups; group < limit; group++ ) - { - /* the ranges are sorted in increasing order. If we are out of */ - /* the range here, the char code isn't in the charmap, so exit. */ - - if ( charCode > group->endCharCode ) - continue; - - if ( charCode >= group->startCharCode ) - goto Found; - } - return 0; - - Found: - cmap8_12->last_group = group; - - Found1: - /* Theoretically, glyph indices > 0xFFFF are possible with this format, - but since all other TrueType tables expect 16bit glyph indices only - it doesn't make sense to support this. */ - return (UShort)( group->startGlyphID + - ( charCode - group->startCharCode ) ); - } - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/ttcmap.h b/Build/source/libs/freetype/freetype-1.5/lib/ttcmap.h deleted file mode 100644 index ea16554c9d2..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/ttcmap.h +++ /dev/null @@ -1,202 +0,0 @@ -/******************************************************************* - * - * ttcmap.h - * - * TrueType Character Mappings - * - * Copyright 1996-2002 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - * - ******************************************************************/ - -#ifndef TTCMAP_H -#define TTCMAP_H - -#include "ttconfig.h" -#include "tttypes.h" - - -#ifdef __cplusplus - extern "C" { -#endif - - /* format 0 */ - - struct TCMap0_ - { - PByte glyphIdArray; - }; - - typedef struct TCMap0_ TCMap0; - typedef TCMap0* PCMap0; - - - /* format 2 */ - - struct TCMap2SubHeader_ - { - UShort firstCode; /* first valid low byte */ - UShort entryCount; /* number of valid low bytes */ - Short idDelta; /* delta value to glyphIndex */ - UShort idRangeOffset; /* offset from here to 1st code */ - }; - - typedef struct TCMap2SubHeader_ TCMap2SubHeader; - typedef TCMap2SubHeader* PCMap2SubHeader; - - struct TCMap2_ - { - PUShort subHeaderKeys; - /* high byte mapping table */ - /* value = subHeader index * 8 */ - - PCMap2SubHeader subHeaders; - PUShort glyphIdArray; - UShort numGlyphId; /* control value */ - }; - - typedef struct TCMap2_ TCMap2; - typedef TCMap2* PCMap2; - - - /* format 4 */ - - struct TCMap4Segment_ - { - UShort endCount; - UShort startCount; - Short idDelta; /* in the specs defined as UShort but the - example there gives negative values... */ - UShort idRangeOffset; - }; - - typedef struct TCMap4Segment_ TCMap4Segment; - typedef TCMap4Segment* PCMap4Segment; - - struct TCMap4_ - { - UShort segCountX2; /* number of segments * 2 */ - UShort searchRange; /* these parameters can be used */ - UShort entrySelector; /* for a binary search */ - UShort rangeShift; - - PCMap4Segment segments; - PUShort glyphIdArray; - UShort numGlyphId; /* control value */ - }; - - typedef struct TCMap4_ TCMap4; - typedef TCMap4* PCMap4; - - - /* format 6 */ - - struct TCMap6_ - { - UShort firstCode; /* first character code of subrange */ - UShort entryCount; /* number of character codes in subrange */ - - PUShort glyphIdArray; - }; - - typedef struct TCMap6_ TCMap6; - typedef TCMap6* PCMap6; - - - /* formats 8 & 12 */ - - /* auxiliary table for format 8 and 12 */ - - struct TCMapGroup_ - { - ULong startCharCode; - ULong endCharCode; - ULong startGlyphID; - }; - - typedef struct TCMapGroup_ TCMapGroup; - typedef TCMapGroup* PCMapGroup; - - /* FreeType handles format 8 and 12 identically. It is not necessary to - cover mixed 16bit and 32bit codes since FreeType always uses ULong - for input character codes -- converting Unicode surrogates to 32bit - character codes must be done by the application. */ - - struct TCMap8_12_ - { - ULong nGroups; - PCMapGroup groups; - - PCMapGroup last_group; /* last used group; this is a small */ - /* cache to potentially increase speed */ - }; - - typedef struct TCMap8_12_ TCMap8_12; - typedef TCMap8_12* PCMap8_12; - - - /* charmap table */ - - struct TCMapTable_ - { - UShort platformID; - UShort platformEncodingID; - UShort format; - UShort length; - UShort version; - - Bool loaded; - ULong offset; - - union - { - TCMap0 cmap0; - TCMap2 cmap2; - TCMap4 cmap4; - TCMap6 cmap6; - TCMap8_12 cmap8_12; - } c; - }; - - typedef struct TCMapTable_ TCMapTable; - typedef TCMapTable* PCMapTable; - - - - /* Load character mappings directory when face is loaded. */ - /* The mappings themselves are only loaded on demand. */ - - FT_INTERNAL_DEF( TT_Error ) - CharMap_Load( PCMapTable table, - TT_Stream input ); - - - /* Destroy one character mapping table */ - - FT_INTERNAL_DEF( TT_Error ) - CharMap_Free( PCMapTable table ); - - - /* Use character mapping table to perform mapping */ - - FT_INTERNAL_DEF( UShort ) - CharMap_Index( PCMapTable cmap, - ULong charCode ); - - /* NOTE: The PFace type isn't defined at this point */ - -#ifdef __cplusplus - } -#endif - -#endif /* TTCMAP_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/ttconfig.h b/Build/source/libs/freetype/freetype-1.5/lib/ttconfig.h deleted file mode 100644 index 7a30ebeb18d..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/ttconfig.h +++ /dev/null @@ -1,273 +0,0 @@ -/************************************************************************** - * - * ttconfig.h 1.2 - * - * Configuration settings header file. - * - * Copyright 1996-2002 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - * Notes: - * - * All the configuration #define statements have been gathered in - * this file to allow easy check and modification. - * - * The platform specificities are gathered in arch/<sys>/ft_conf.h - * which is included by this file. - * - * Changes between 1.2 and 1.1 : - * - * - the EXPORT_DEF/EXPORT_FUNC/LOCAL_DEF/LOCAL_FUNC mechanism have - * replaced with a more elaborate one (with FT_ before) that allows - * addition of qualifiers _after_ the type, which is needed for DLLs. - * - *************************************************************************/ - -#ifndef TTCONFIG_H -#define TTCONFIG_H - - - -/* --------------- auto configuration ---------------------------------- */ - -/*************************************************************************/ -/* Here we include the file ft_conf.h for system dependent stuff. */ -/* The specific makefile is responsible for providing the right path to */ -/* this file. */ - -#include "ft_conf.h" - - -/*************************************************************************/ -/* */ -/* Some more settings used to be here, but they are now chosen */ -/* in the system-dependent file arch/<system>/ft_conf.h */ - - - -/* --------------- special debugging ----------------------------------- */ - -/*************************************************************************/ -/* Define this if you want to generate a special debug version of the */ -/* rasterizer. This will progressively draw the glyphs while the */ -/* computations are done directly on the graphics screen... (with */ -/* inverted glyphs). */ -/* */ -/* Use it at your own risk! It is not maintained currently. */ -/* */ -/* IMPORTANT: This is reserved to developers willing to debug the */ -/* rasterizer, which seems working very well in its */ -/* current state... */ - -/* #define DEBUG_RASTER */ - - -/*************************************************************************/ -/* Define this to have a simple debugger version of RunIns(). */ -/* */ -/* Use it at your own risk! It is not maintained currently. */ - -/* #define DEBUG_INTERPRETER */ - - -/*************************************************************************/ -/* Define this to have some housekeeping of allocation and deallocation. */ -/* */ -/* Please note that probably not all OS-specific versions of ttmemory.c */ -/* provide this functionality. */ - -/* #define DEBUG_MEMORY */ - - -/*************************************************************************/ -/* Define this to have bounds checking for file buffer frames. */ -/* */ -/* Please note that probably not all OS-specific versions of ttfile.c */ -/* provide this functionality. */ - -/* #define DEBUG_FILE */ - - - -/* --------------- arithmetic and processor support -------------------- */ - -/*************************************************************************/ -/* define ALIGNMENT to your processor/environment preferred alignment */ -/* size. A value of 8 should work on all current processors, even */ -/* 64-bits ones. */ - -#ifndef ALIGNMENT -#define ALIGNMENT 8 -#endif - - - -/* --------------- compilation model and naughty processors support ---- */ - -/*************************************************************************/ -/* Under normal operation, the library is compiled into a single object */ -/* file. This gets rids of all the external symbols defined in each */ -/* component interface, and de-pollutes the name-space. */ -/* */ -/* However, you can still compile components into separate object files, */ -/* and gather all of them into the library. But you should then declare */ -/* some functions as externally visible. */ -/* */ -/* We use two macros, namely FT_INTERNAL_FUNC and FT_INTERNAL_DEF, which */ -/* apply to functions that are internal to the engine, and should never */ -/* be seen or linked by a client application. */ -/* */ -/* FT_INTERNAL_DEF used in header (.h) files, to define a function */ -/* that will be seen by other components. This */ -/* translates to "extern" in normal mode, and to */ -/* "static" in single-object mode. */ -/* */ -/* FT_INTERNAL_FUNC used in implementation (.c) files, just before */ -/* the function body. This translates to nothing */ -/* in normal mode, and to "static" in single-object */ -/* mode. */ -/* */ -/* It is called a "MAKE_OPTION" because the macro must be defined in the */ -/* Makefile, rather than this one. It allows any developer to quickly */ -/* switch from one mode to the other without messing with "ttconfig.h" */ -/* each time. */ -/* */ -/* The following macros are needed to compile the library with some */ -/* 16-bit (the infamous `_cdecl', `__loadds', `_export', `FAR', etc. */ -/* stuff) or perhaps C++ compilers (extern "C"). The typename is passed */ -/* as an argument, which allows the macro to add stuff _after_ the */ -/* typename, which is required by 16-bit msdos compiler syntax. */ - -#ifndef TT_MAKE_OPTION_SINGLE_OBJECT - -#ifndef FT_INTERNAL_FUNC -#define FT_INTERNAL_FUNC( type ) type -#endif -#ifndef FT_INTERNAL_DEF -#define FT_INTERNAL_DEF( type ) extern type -#endif - -#else /* ! TT_MAKE_OPTION_SINGLE_OBJECT */ - -#ifndef FT_INTERNAL_FUNC -#define FT_INTERNAL_FUNC( type ) static type -#endif -#ifndef FT_INTERNAL_DEF -#define FT_INTERNAL_DEF( type ) static type -#endif - -#endif /* TT_MAKE_OPTION_SINGLE_OBJECT */ - -/* This is for variables; default is using the same as functions. */ -#ifndef FT_INTERNAL_DECL -#define FT_INTERNAL_DECL( type ) FT_INTERNAL_DEF( type ) -#endif -#ifndef FT_INTERNAL_VAR -#define FT_INTERNAL_VAR( type ) FT_INTERNAL_DECL( type ) -#endif - - -/*************************************************************************/ -/* Define FT_EXPORT_DEF and FT_EXPORT_FUNC as needed to build e.g. a DLL.*/ -/* All variables and functions visible from outside have these prefixes. */ - -/* Backward compatibility only. Don't use for new code. */ -#ifdef EXPORT_DEF -#define FT_EXPORT_DEF( type ) EXPORT_DEF type -#endif -#ifdef EXPORT_FUNC -#define FT_EXPORT_FUNC( type ) EXPORT_FUNC type -#endif -/* End of backward compatibility section. */ - -#ifndef FT_EXPORT_DEF -#define FT_EXPORT_DEF( type ) extern type -#endif - -#ifndef FT_EXPORT_FUNC -#define FT_EXPORT_FUNC( type ) type -#endif - -/* This is for variables; default is using the same as functions. */ -#ifndef FT_EXPORT_DECL -#define FT_EXPORT_DECL( type ) FT_EXPORT_DEF( type ) -#endif -#ifndef FT_EXPORT_VAR -#define FT_EXPORT_VAR( type ) FT_EXPORT_DECL( type ) -#endif - - - -/* --------------- miscellaneous --------------------------------------- */ - -/*************************************************************************/ -/* The number of extensions available. Don't change this value */ -/* except if you add new extensions to the engine. */ - -#define TT_MAX_EXTENSIONS 8 - - - -/* --------------- automatic setup -- don't touch ---------------------- */ - -/*************************************************************************/ -/* If HAVE_TT_TEXT is defined we don't provide a default typedef for */ -/* defining TT_Text. */ - -#ifndef HAVE_TT_TEXT -#define HAVE_TT_TEXT - typedef char TT_Text; -#endif - - -/*************************************************************************/ -/* We define NULL in case it's not defined yet. The default */ -/* location is stdlib.h. */ - -#ifdef HAVE_STDLIB_H -#include <stdlib.h> -#endif - - -/*************************************************************************/ -/* Some systems can't use vfprintf for error messages on stderr; if */ -/* HAVE_PRINT_FUNCTION is defined, the Print macro must be supplied */ -/* externally (having the same parameters). */ -/* */ -/* This is only used by the "ttdebug" component, which should be linked */ -/* to the engine only in debug mode. */ - -#if defined( DEBUG_LEVEL_TRACE ) || defined( DEBUG_LEVEL_ERROR ) -#ifndef HAVE_PRINT_FUNCTION -#define Print( format, ap ) vfprintf( stderr, (format), (ap) ) -#endif -#endif - - -/* --------------- internal (developer) configuration toggles ---------- */ - -/*************************************************************************/ -/* Do not undefine this configuration macro. It is now a default that */ -/* must be kept in all release builds. */ -#undef TT_STATIC_INTERPRETER - - -/*************************************************************************/ -/* Define this if you want to generate a static raster. This makes a */ -/* non re-entrant version of the scan-line converter, which is about */ -/* 10% faster and 50% bigger than an indirect one! */ -/* */ -/* NOTE : this is different from TT_CONFIG_OPTION_STATIC_RASTER. */ -/* This one only affects the calling convention. */ -#undef TT_STATIC_RASTER - - -#endif /* TTCONFIG_H */ - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/ttdebug.c b/Build/source/libs/freetype/freetype-1.5/lib/ttdebug.c deleted file mode 100644 index 4afe2dcc5ba..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/ttdebug.c +++ /dev/null @@ -1,404 +0,0 @@ -/* Simple debugging component. Temporary */ - -#include "ttdebug.h" -#include "tttables.h" -#include "ttobjs.h" - - -#ifdef DEBUG_LEVEL_TRACE - char tt_trace_levels[trace_max]; -#endif - -#if defined( DEBUG_LEVEL_ERROR ) || defined( DEBUG_LEVEL_TRACE ) - -#include <stdio.h> -#include <stdarg.h> -#include <string.h> - - - static String tempStr[128]; - - static const String* OpStr[256] = - { - "SVTCA y", /* Set vectors to coordinate axis y */ - "SVTCA x", /* Set vectors to coordinate axis x */ - "SPvTCA y", /* Set Proj. vec. to coord. axis y */ - "SPvTCA x", /* Set Proj. vec. to coord. axis x */ - "SFvTCA y", /* Set Free. vec. to coord. axis y */ - "SFvTCA x", /* Set Free. vec. to coord. axis x */ - "SPvTL //", /* Set Proj. vec. parallel to segment */ - "SPvTL +", /* Set Proj. vec. normal to segment */ - "SFvTL //", /* Set Free. vec. parallel to segment */ - "SFvTL +", /* Set Free. vec. normal to segment */ - "SPvFS", /* Set Proj. vec. from stack */ - "SFvFS", /* Set Free. vec. from stack */ - "GPV", /* Get projection vector */ - "GFV", /* Get freedom vector */ - "SFvTPv", /* Set free. vec. to proj. vec. */ - "ISECT", /* compute intersection */ - - "SRP0", /* Set reference point 0 */ - "SRP1", /* Set reference point 1 */ - "SRP2", /* Set reference point 2 */ - "SZP0", /* Set Zone Pointer 0 */ - "SZP1", /* Set Zone Pointer 1 */ - "SZP2", /* Set Zone Pointer 2 */ - "SZPS", /* Set all zone pointers */ - "SLOOP", /* Set loop counter */ - "RTG", /* Round to Grid */ - "RTHG", /* Round to Half-Grid */ - "SMD", /* Set Minimum Distance */ - "ELSE", /* Else */ - "JMPR", /* Jump Relative */ - "SCvTCi", /* Set CVT */ - "SSwCi", /* */ - "SSW", /* */ - - "DUP", - "POP", - "CLEAR", - "SWAP", - "DEPTH", - "CINDEX", - "MINDEX", - "AlignPTS", - "INS_$28", - "UTP", - "LOOPCALL", - "CALL", - "FDEF", - "ENDF", - "MDAP[-]", - "MDAP[r]", - - "IUP[y]", - "IUP[x]", - "SHP[0]", - "SHP[1]", - "SHC[0]", - "SHC[1]", - "SHZ[0]", - "SHZ[1]", - "SHPIX", - "IP", - "MSIRP[0]", - "MSIRP[1]", - "AlignRP", - "RTDG", - "MIAP[-]", - "MIAP[r]", - - "NPushB", - "NPushW", - "WS", - "RS", - "WCvtP", - "RCvt", - "GC[0]", - "GC[1]", - "SCFS", - "MD[0]", - "MD[1]", - "MPPEM", - "MPS", - "FlipON", - "FlipOFF", - "DEBUG", - - "LT", - "LTEQ", - "GT", - "GTEQ", - "EQ", - "NEQ", - "ODD", - "EVEN", - "IF", - "EIF", - "AND", - "OR", - "NOT", - "DeltaP1", - "SDB", - "SDS", - - "ADD", - "SUB", - "DIV", - "MUL", - "ABS", - "NEG", - "FLOOR", - "CEILING", - "ROUND[G]", - "ROUND[B]", - "ROUND[W]", - "ROUND[?]", - "NROUND[G]", - "NROUND[B]", - "NROUND[W]", - "NROUND[?]", - - "WCvtF", - "DeltaP2", - "DeltaP3", - "DeltaC1", - "DeltaC2", - "DeltaC3", - "SROUND", - "S45Round", - "JROT", - "JROF", - "ROFF", - "INS_$7B", - "RUTG", - "RDTG", - "SANGW", - "AA", - - "FlipPT", - "FlipRgON", - "FlipRgOFF", - "INS_$83", - "INS_$84", - "ScanCTRL", - "SDPVTL[0]", - "SDPVTL[1]", - "GetINFO", - "IDEF", - "ROLL", - "MAX", - "MIN", - "ScanTYPE", - "IntCTRL", - "INS_$8F", - - "INS_$90", - "INS_$91", - "INS_$92", - "INS_$93", - "INS_$94", - "INS_$95", - "INS_$96", - "INS_$97", - "INS_$98", - "INS_$99", - "INS_$9A", - "INS_$9B", - "INS_$9C", - "INS_$9D", - "INS_$9E", - "INS_$9F", - - "INS_$A0", - "INS_$A1", - "INS_$A2", - "INS_$A3", - "INS_$A4", - "INS_$A5", - "INS_$A6", - "INS_$A7", - "INS_$A8", - "INS_$A9", - "INS_$AA", - "INS_$AB", - "INS_$AC", - "INS_$AD", - "INS_$AE", - "INS_$AF", - - "PushB[0]", - "PushB[1]", - "PushB[2]", - "PushB[3]", - "PushB[4]", - "PushB[5]", - "PushB[6]", - "PushB[7]", - "PushW[0]", - "PushW[1]", - "PushW[2]", - "PushW[3]", - "PushW[4]", - "PushW[5]", - "PushW[6]", - "PushW[7]", - - "MDRP[G]", - "MDRP[B]", - "MDRP[W]", - "MDRP[?]", - "MDRP[rG]", - "MDRP[rB]", - "MDRP[rW]", - "MDRP[r?]", - "MDRP[mG]", - "MDRP[mB]", - "MDRP[mW]", - "MDRP[m?]", - "MDRP[mrG]", - "MDRP[mrB]", - "MDRP[mrW]", - "MDRP[mr?]", - "MDRP[pG]", - "MDRP[pB]", - - "MDRP[pW]", - "MDRP[p?]", - "MDRP[prG]", - "MDRP[prB]", - "MDRP[prW]", - "MDRP[pr?]", - "MDRP[pmG]", - "MDRP[pmB]", - "MDRP[pmW]", - "MDRP[pm?]", - "MDRP[pmrG]", - "MDRP[pmrB]", - "MDRP[pmrW]", - "MDRP[pmr?]", - - "MIRP[G]", - "MIRP[B]", - "MIRP[W]", - "MIRP[?]", - "MIRP[rG]", - "MIRP[rB]", - "MIRP[rW]", - "MIRP[r?]", - "MIRP[mG]", - "MIRP[mB]", - "MIRP[mW]", - "MIRP[m?]", - "MIRP[mrG]", - "MIRP[mrB]", - "MIRP[mrW]", - "MIRP[mr?]", - "MIRP[pG]", - "MIRP[pB]", - - "MIRP[pW]", - "MIRP[p?]", - "MIRP[prG]", - "MIRP[prB]", - "MIRP[prW]", - "MIRP[pr?]", - "MIRP[pmG]", - "MIRP[pmB]", - "MIRP[pmW]", - "MIRP[pm?]", - "MIRP[pmrG]", - "MIRP[pmrB]", - "MIRP[pmrW]", - "MIRP[pmr?]" - }; - - - const String* Cur_U_Line( void* _exec ) - { - String s[32]; - - Int op, i, n; - - PExecution_Context exec; - - - exec = _exec; - - op = exec->code[exec->IP]; - - sprintf( tempStr, "%s", OpStr[op] ); - - if ( op == 0x40 ) - { - n = exec->code[exec->IP + 1]; - sprintf( s, "(%d)", n ); - strncat( tempStr, s, 8 ); - - if ( n > 20 ) n = 20; /* limit output */ - - for ( i = 0; i < n; i++ ) - { - sprintf( s, " $%02hx", exec->code[exec->IP + i + 2] ); - strncat( tempStr, s, 8 ); - } - } - else if ( op == 0x41 ) - { - n = exec->code[exec->IP + 1]; - sprintf( s, "(%d)", n ); - strncat( tempStr, s, 8 ); - - if ( n > 20 ) n = 20; /* limit output */ - - for ( i = 0; i < n; i++ ) - { - sprintf( s, " $%02hx%02hx", exec->code[exec->IP + i*2 + 2], - exec->code[exec->IP + i*2 + 3] ); - strncat( tempStr, s, 8 ); - } - } - else if ( (op & 0xF8) == 0xB0 ) - { - n = op - 0xB0; - - for ( i = 0; i <= n; i++ ) - { - sprintf( s, " $%02hx", exec->code[exec->IP + i + 1] ); - strncat( tempStr, s, 8 ); - } - } - else if ( (op & 0xF8) == 0xB8 ) - { - n = op-0xB8; - - for ( i = 0; i <= n; i++ ) - { - sprintf( s, " $%02hx%02hx", exec->code[exec->IP + i*2 + 1], - exec->code[exec->IP + i*2 + 2] ); - strncat( tempStr, s, 8 ); - } - } - - return (String*)tempStr; - } - - - /* the Print() function is defined in ttconfig.h; */ - /* it defaults to vprintf on systems which have it */ - - void TT_Message( const String* fmt, ... ) - { - va_list ap; - - va_start( ap, fmt ); - Print( fmt, ap ); - va_end( ap ); - } - - - void TT_Panic( const String* fmt, ... ) - { - va_list ap; - - va_start( ap, fmt ); - Print( fmt, ap ); - va_end( ap ); - - exit( EXIT_FAILURE ); - } - -#endif /* defined( DEBUG_LEVEL_ERROR ) || defined( DEBUG_LEVEL_TRACE ) */ - -#if defined( DEBUG_LEVEL_TRACE ) - - /* use this function to set the values of tt_trace_levels */ - - void set_tt_trace_levels( int index, char value ) - { - tt_trace_levels[index] = value; - } - -#endif - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/ttdebug.h b/Build/source/libs/freetype/freetype-1.5/lib/ttdebug.h deleted file mode 100644 index 0fd1389febb..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/ttdebug.h +++ /dev/null @@ -1,170 +0,0 @@ -/******************************************************************* - * - * ttdebug.h - * - * Debugging and Logging component (specification) - * - * Copyright 1996-2001 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - * - * This component contains various macros and functions used to - * ease the debugging of the FreeType engine. Its main purpose - * is in assertion checking, tracing, and error detection. - * - * There are now three debugging modes: - * - * - trace mode: - * - * Error and trace messages are sent to the log file - * (which can be the standard error output). Define - * DEBUG_LEVEL_TRACE to enable this mode. - * - * - error mode: - * - * Only error messages are generated. Define - * DEBUG_LEVEL_ERROR to enable this mode. - * - * - release mode: - * - * Error messages are neither sent nor generated. The code is - * free from any debugging parts. - * - ******************************************************************/ - -#ifndef TTDEBUG_H -#define TTDEBUG_H - -#include "ttconfig.h" -#include "tttypes.h" - - -#ifdef __cplusplus - extern "C" { -#endif - - -#if defined( DEBUG_LEVEL_TRACE ) - - typedef enum Trace_Component_ - { - trace_any = 0, - trace_api, - trace_interp, - trace_load, - trace_gload, - trace_memory, - trace_file, - trace_mutex, - trace_cache, - trace_calc, - trace_cmap, - trace_extend, - trace_objs, - trace_raster, - - trace_bitmap, - trace_max - - } Trace_Component; - - - /* Here we define an array to hold the trace levels per component. */ - /* Since it is globally defined, all array members are set to 0. */ - /* You should set the values in this array either in your program */ - /* or with your debugger. */ - /* */ - /* Currently, up to eight levels (PTRACE0-PTRACE7, see below) are */ - /* used in some parts of the engine. */ - /* */ - /* For example, to have all tracing messages in the raster */ - /* component, say */ - /* */ - /* #define DEBUG_LEVEL_TRACE */ - /* #include "ttdebug.h" */ - /* */ - /* ... */ - /* set_tt_trace_levels( trace_raster, 7 ) */ - /* */ - /* in your code before initializing the FreeType engine. */ - /* */ - /* Maybe it is better to define DEBUG_LEVEL_TRACE in ttconfig.h... */ - - extern char tt_trace_levels[trace_max]; - - /* IMPORTANT: */ - /* */ - /* Each component must define the macro TT_COMPONENT */ - /* to a valid Trace_Component value before using any */ - /* PTRACEx macro. */ - /* */ - -#define PTRACE( level, varformat ) \ - if ( tt_trace_levels[TT_COMPONENT] >= level ) TT_Message##varformat - -#elif defined( DEBUG_LEVEL_ERROR ) - -#define PTRACE( level, varformat ) /* nothing */ - -#else /* RELEASE MODE */ - -#define TT_Assert( condition, action ) /* nothing */ - -#define PTRACE( level, varformat ) /* nothing */ -#define PERROR( varformat ) /* nothing */ -#define PANIC( varformat ) /* nothing */ - -#endif - - -/************************************************************************/ -/* */ -/* Define macros and fuctions that are common to the debug and trace */ -/* modes. */ -/* */ - -#if defined( DEBUG_LEVEL_TRACE ) || defined( DEBUG_LEVEL_ERROR ) - - -#define TT_Assert( condition, action ) if ( !(condition) ) ( action ) - - void TT_Message( const String* fmt, ... ); - void TT_Panic ( const String* fmt, ... ); - /* print a message and exit */ - - const String* Cur_U_Line( void* exec ); - -#define PERROR( varformat ) TT_Message##varformat -#define PANIC( varformat ) TT_Panic##varformat - -#endif - -#if defined( DEBUG_LEVEL_TRACE ) - - void set_tt_trace_levels( int index, char value ); - -#endif - - -#define PTRACE0( varformat ) PTRACE( 0, varformat ) -#define PTRACE1( varformat ) PTRACE( 1, varformat ) -#define PTRACE2( varformat ) PTRACE( 2, varformat ) -#define PTRACE3( varformat ) PTRACE( 3, varformat ) -#define PTRACE4( varformat ) PTRACE( 4, varformat ) -#define PTRACE5( varformat ) PTRACE( 5, varformat ) -#define PTRACE6( varformat ) PTRACE( 6, varformat ) -#define PTRACE7( varformat ) PTRACE( 7, varformat ) - - -#ifdef __cplusplus - } -#endif - - -#endif /* TTDEBUG_H */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/ttengine.h b/Build/source/libs/freetype/freetype-1.5/lib/ttengine.h deleted file mode 100644 index e11df7e2884..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/ttengine.h +++ /dev/null @@ -1,116 +0,0 @@ -/************************************************************************* - * - * ttengine.h 1.1 - * - * Engine instance structure definition - * (this spec has no associated body). - * - * Copyright 1996-2001 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - * New in 1.1 : - * - * - added the 'raster_lock' mutex field to synchronize - * scan-line conversion in thread-safe and re-entrant builds. - * - *************************************************************************/ - -#ifndef TTENGINE_H -#define TTENGINE_H - -#include "tttypes.h" -#include "ttconfig.h" -#include "freetype.h" -#include "ttmutex.h" - -#ifdef __cplusplus - extern "C" { -#endif - - /***********************************************************************/ - /* */ - /* The freetype engine instance structure. */ - /* */ - /* This structure holds all the data that is necessary to run one */ - /* instance of the freetype engine. It is needed to get a completely */ - /* completely re-entrant version of the library. */ - /* */ - /* The goal is to move _all_ component-specific variables, either */ - /* static or global in the structure; the component initializers and */ - /* finalizers will all be called with the address of a valid */ - /* TEngine_Instance. */ - /* */ - /***********************************************************************/ - - struct TEngine_Instance_ - { - TMutex lock; /* engine lock */ - - void* list_free_elements; - - void* objs_face_class; /* the face cache class */ - void* objs_instance_class; /* the instance cache class */ - void* objs_execution_class; /* the context cache class */ - void* objs_glyph_class; /* the glyph cache class */ - - void* objs_face_cache; /* these caches are used to track */ - void* objs_exec_cache; /* the current face and execution */ - /* context objects */ - - void* file_component; /* ttfile implementation dependent */ - - TMutex raster_lock; /* mutex for this engine render pool */ - void* raster_component; /* ttraster implementation depedent */ - Byte raster_palette[5]; /* gray-levels palette for anti-aliasing */ - - void* extension_component; /* extensions dependent */ - -#if 0 - TT_Glyph_Loader_Callback glCallback; /* glyph loader callback, if any */ -#endif - }; - - /* NOTE : The raster's lock is only acquired by the Render_Glyph and */ - /* Render_Gray_Glyph functions, which always release it on exit */ - /* They do not lock the engine mutex. This means you shouldn't */ - /* be concerned about deadlocks between the two mutexes, as */ - /* these should never appear.. */ - - typedef struct TEngine_Instance_ TEngine_Instance; - typedef TEngine_Instance* PEngine_Instance; - - -#ifdef TT_CONFIG_OPTION_THREAD_SAFE /* for re-entrant builds */ - -#define ENGINE_ARG TEngine_Instance* _engine -#define ENGINE_ARGS TEngine_Instance* _engine, - -#define ENGINE_VAR _engine -#define ENGINE_VARS _engine, - -#define ENGINE _engine - -#else /* for thread-unsafe builds */ - -#define ENGINE_ARG /* none */ -#define ENGINE_ARGS /* none */ - -#define ENGINE_VAR /* nothing */ -#define ENGINE_VARS /* nothing */ - -#endif /* TT_CONFIG_OPTION_THREAD_SAFE */ - -#ifdef __cplusplus - } -#endif - -#endif /* TTENGINE_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/ttextend.c b/Build/source/libs/freetype/freetype-1.5/lib/ttextend.c deleted file mode 100644 index 6a2813a80d7..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/ttextend.c +++ /dev/null @@ -1,212 +0,0 @@ -/******************************************************************* - * - * ttextend.c 2.0 - * - * Extensions Interface - * - * Copyright 1996-2000 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - * This is an updated version of the extension component, now - * located in the main library's source directory. It allows - * the dynamic registration/use of various face object extensions - * through a simple API. - * - ******************************************************************/ - -#include "ttextend.h" -#include "ttengine.h" -#include "ttmemory.h" - -/* required by the tracing mode */ -#undef TT_COMPONENT -#define TT_COMPONENT trace_extend - - - struct TExtension_Registry_ - { - Int num_extensions; - Long cur_offset; - TExtension_Class classes[TT_MAX_EXTENSIONS]; - }; - - typedef struct TExtension_Registry_ TExtension_Registry; - typedef TExtension_Registry* PExtension_Registry; - - - - /* Initialize the extension component */ - - FT_INTERNAL_FUNC( TT_Error ) - TTExtend_Init( PEngine_Instance engine ) - { - TT_Error error; - PExtension_Registry exts; - - - if ( ALLOC( exts, sizeof ( TExtension_Registry ) ) ) - return error; - - exts->num_extensions = 0; - exts->cur_offset = 0; - engine->extension_component = (void*)exts; - - return TT_Err_Ok; - } - - - /* Finalize the extension component */ - - FT_INTERNAL_FUNC( TT_Error ) - TTExtend_Done( PEngine_Instance engine ) - { - FREE( engine->extension_component ); - return TT_Err_Ok; - } - - - /* Register a new extension */ - - FT_EXPORT_FUNC( TT_Error ) - TT_Register_Extension( PEngine_Instance engine, - Long id, - Long size, - PExt_Constructor create, - PExt_Destructor destroy ) - { - PExtension_Registry exts; - PExtension_Class clazz; - Int p; - - - exts = (PExtension_Registry)engine->extension_component; - if ( !exts ) - return TT_Err_Ok; - - p = exts->num_extensions; - - if ( p >= TT_MAX_EXTENSIONS ) - return TT_Err_Too_Many_Extensions; - - clazz = exts->classes + p; - clazz->id = id; - clazz->size = size; - clazz->build = create; - clazz->destroy = destroy; - - clazz->offset = exts->cur_offset; - - exts->num_extensions++; - exts->cur_offset += ( size + ALIGNMENT-1 ) & -ALIGNMENT; - - return TT_Err_Ok; - } - - - /* Query an extension block by extension_ID */ - - FT_EXPORT_FUNC( TT_Error ) - TT_Extension_Get( PFace face, - Long extension_id, - void** extension_block ) - { - PExtension_Registry registry; - PExtension_Class clazz; - Int n; - - - if ( !face->extension ) - return TT_Err_Extensions_Unsupported; - - registry = (PExtension_Registry)face->engine->extension_component; - - for ( n = 0; n < face->n_extensions; n++ ) - { - clazz = registry->classes + n; - if ( clazz->id == extension_id ) - { - *extension_block = (PByte)face->extension + clazz->offset; - return TT_Err_Ok; - } - } - - return TT_Err_Invalid_Extension_Id; - } - - - /* Destroy all extensions within a face object. Called by the */ - /* face object destructor. */ - - FT_INTERNAL_FUNC( TT_Error ) - Extension_Destroy( PFace face ) - { - PEngine_Instance engine = face->engine; - PExtension_Registry registry; - PExtension_Class clazz; - Int n; - PByte ext; - - - registry = (PExtension_Registry)engine->extension_component; - - for ( n = 0; n < face->n_extensions; n++ ) - { - clazz = registry->classes + n; - ext = (PByte)face->extension + clazz->offset; - - /* the destructor is optional */ - if ( clazz->destroy ) - clazz->destroy( (void*)ext, face ); - } - - /* destroy the face's extension block too */ - FREE( face->extension ); - face->n_extensions = 0; - - return TT_Err_Ok; - } - - - /* Create an extension within a face object. Called by the */ - /* face object constructor. */ - - FT_INTERNAL_FUNC( TT_Error ) - Extension_Create( PFace face ) - { - PEngine_Instance engine = face->engine; - PExtension_Registry registry; - PExtension_Class clazz; - TT_Error error; - Int n; - PByte ext; - - - registry = (PExtension_Registry)engine->extension_component; - - face->n_extensions = registry->num_extensions; - if ( ALLOC( face->extension, registry->cur_offset ) ) - return error; - - for ( n = 0; n < face->n_extensions; n++ ) - { - clazz = registry->classes + n; - ext = (PByte)face->extension + clazz->offset; - error = clazz->build( (void*)ext, face ); - if ( error ) - goto Fail; - } - return TT_Err_Ok; - - Fail: - Extension_Destroy( face ); - return error; - } - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/ttextend.h b/Build/source/libs/freetype/freetype-1.5/lib/ttextend.h deleted file mode 100644 index 5cc05373f75..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/ttextend.h +++ /dev/null @@ -1,167 +0,0 @@ -/******************************************************************* - * - * ttextend.h 2.0 - * - * Extensions Interface. - * - * Copyright 1996-2001 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - * This is an updated version of the extension component, now - * located in the main library's source directory. It allows - * the dynamic registration/use of various face object extensions - * through a simple API. - * - ******************************************************************/ - -#ifndef TTEXTEND_H -#define TTEXTEND_H - -#include "ttconfig.h" -#include "tttypes.h" -#include "ttobjs.h" - - -#ifdef __cplusplus - extern "C" { -#endif - - /* The extensions don't need to be integrated at compile time into */ - /* the engine, only at link time. */ - - - /* When a new face object is created, the face constructor calls */ - /* the extension constructor with the following arguments: */ - /* */ - /* ext : typeless pointer to the face's extension block. */ - /* Its size is the one given at registration time */ - /* in the extension class's 'size' field. */ - /* */ - /* face : the parent face object. Note that the extension */ - /* constructor is called when the face object is */ - /* built. */ - - typedef TT_Error TExt_Constructor( void* ext, PFace face ); - - - /* When a face object is destroyed, the face destructor calls */ - /* the extension destructor with the following arguments. */ - /* */ - /* ext : typeless pointer to the face's extension block. */ - /* Its size is the one given at registration time */ - /* in the extension class's 'size' field. */ - /* */ - /* face : the parent face object. Note that the extension */ - /* destructor is called before the actual face object */ - /* is destroyed. */ - - typedef TT_Error TExt_Destructor ( void* ext, PFace face ); - - typedef TExt_Constructor* PExt_Constructor; - typedef TExt_Destructor* PExt_Destructor; - - - struct TExtension_Class_ - { - Long id; /* extension id */ - Long size; /* size in bytes of extension record */ - PExt_Constructor build; /* the extension's class constructor */ - PExt_Destructor destroy; /* the extension's class destructor */ - - Long offset; /* offset of ext. record in face obj */ - /* (set by the engine) */ - }; - - typedef struct TExtension_Class_ TExtension_Class; - typedef TExtension_Class* PExtension_Class; - - -#define Build_Extension_ID( a, b, c, d ) \ - ( ((ULong)(a) << 24) | \ - ((ULong)(b) << 16) | \ - ((ULong)(c) << 8 ) | \ - (ULong)(d) ) - - /* A note regarding extensions and the single-object compilation */ - /* mode : */ - /* */ - /* When the engine is compiled as a single object file, extensions */ - /* must remain linkable *after* compile time. In order to do this, */ - /* we need to export the functions that an extension may need. */ - /* Fortunately, we can limit ourselves to : */ - /* */ - /* o TT_Register_Extension (previously called Extension_Register) */ - /* which is to be called by each extension on within */ - /* it TT_Init_XXXX_Extension initializer. */ - /* */ - /* o File and frame access functions. Fortunately, these already */ - /* have their names prefixed by "TT_", so no change was needed */ - /* except replacing the FT_INTERNAL_DEF macro with FT_EXPORT_DEF. */ - /* */ - /* o Memory access functions, i.e. TT_Alloc and TT_Free. Again, */ - /* the change is minimal */ - /* */ - /* o the table-lookup function : TT_LookUp_Table, formerly known */ - /* as Load_TrueType_Table in ttload.c. */ - /* */ - /* */ - /* Other than that, an extension should be able to #include all */ - /* relevant header files to get access to internal types, but */ - /* should not call engine internal functions.. */ - /* */ - /* If there is a need for a specific internal function call, let */ - /* me known to see if we need to export it by default.. */ - /* - DavidT */ - /* */ - - /* Register a new extension. Called by extension */ - /* service initializers. */ - FT_EXPORT_DEF( TT_Error ) - TT_Register_Extension( PEngine_Instance engine, - Long id, - Long size, - PExt_Constructor create, - PExt_Destructor destroy ); - - -#ifdef TT_CONFIG_OPTION_EXTEND_ENGINE - /* Initialize the extension component */ - FT_INTERNAL_DEF( TT_Error ) - TTExtend_Init( PEngine_Instance engine ); - - /* Finalize the extension component */ - FT_INTERNAL_DEF( TT_Error ) - TTExtend_Done( PEngine_Instance engine ); - - /* Create an extension within a face object. Called by the */ - /* face object constructor. */ - FT_INTERNAL_DEF( TT_Error ) - Extension_Create( PFace face ); - - /* Destroy all extensions within a face object. Called by the */ - /* face object destructor. */ - FT_INTERNAL_DEF( TT_Error ) - Extension_Destroy( PFace face ); -#endif - - /* Query an extension block by extension_ID. Called by extension */ - /* service routines. */ - FT_EXPORT_DEF( TT_Error ) - TT_Extension_Get( PFace face, - Long extension_id, - void** extension_block ); - -#ifdef __cplusplus - } -#endif - - -#endif /* TTEXTEND_H */ - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/ttfile.c b/Build/source/libs/freetype/freetype-1.5/lib/ttfile.c deleted file mode 100644 index 256082dad55..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/ttfile.c +++ /dev/null @@ -1,1176 +0,0 @@ -/******************************************************************* - * - * ttfile.c (extended version) 2.1 - * - * File I/O Component (body). - * - * Copyright 1996-2000 by - * David Turner, Robert Wilhelm, and Werner Lemberg - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - * NOTES: - * - * This implementation relies on the ANSI libc. You may wish to - * modify it to get rid of libc and go straight to the your - * platform's stream routines. - * - * The same source code can be used for thread-safe and re-entrant - * builds of the library. - * - * Changes between 2.0 and 2.1 : - * - * - it is now possible to close a stream's file handle explicitely - * through the new API "TT_Flush_Stream". This will simply close - * a stream's file handle (useful to save system resources when - * dealing with lots of opened fonts). Of course, the function - * "TT_Use_Stream" will automatically re-open a stream's handle if - * necessary. - * - * - added "TT_Stream_Size" to replace "TT_File_Size" which wasn't - * used anyway. This one returns the size of any stream, even - * flushed one (when the previous TT_File_Size could only return - * the size of the current working stream). This is used by the - * new "Load_TrueType_Any" function in the tables loader. - * - ******************************************************************/ - -#include "ttconfig.h" - -#include <stdio.h> -#include <string.h> - -#ifdef HAVE_UNISTD_H -#include <unistd.h> -#endif - -#include "freetype.h" -#include "tttypes.h" -#include "ttdebug.h" -#include "ttengine.h" -#include "ttmutex.h" -#include "ttmemory.h" -#include "ttfile.h" /* our prototypes */ - -/* required by the tracing mode */ -#undef TT_COMPONENT -#define TT_COMPONENT trace_file - - -/* For now, we don't define additional error messages in the core library */ -/* to report open-on demand errors. Define these error as standard ones */ - -#define TT_Err_Could_Not_ReOpen_File TT_Err_Could_Not_Open_File -#define TT_Err_Could_Not_ReSeek_File TT_Err_Could_Not_Open_File - - /* This definition is mandatory for each file component! */ - FT_EXPORT_FUNC( const ) - TFileFrame TT_Null_FileFrame = { NULL, 0, 0 }; - -/* It has proven useful to do some bounds checks during development phase. */ -/* They should probably be undefined for speed reasons in a later release. */ - -#if DEBUG_FILE -#define CHECK_FRAME( frame, n ) \ - do { \ - if ( frame.cursor + n > frame.address + frame.size ) \ - Panic( "Frame boundary error!\n" ); \ - } while ( 0 ) -#else -#define CHECK_FRAME( frame, n ) /* nothing */ -#endif - - /* Because a stream can be flushed, i.e. its file handle can be */ - /* closed to save system resources, we must keep the stream's file */ - /* pathname to be able to re-open it on demand when it is flushed */ - - struct TStream_Rec_; - typedef struct TStream_Rec_ TStream_Rec; - typedef TStream_Rec* PStream_Rec; - - struct TStream_Rec_ - { - Bool opened; /* is the stream handle opened ? */ - TT_Text* name; /* the file's pathname */ - Long position; /* current position within the file */ - - FILE* file; /* file handle */ - Long base; /* stream base in file */ - Long size; /* stream size in file */ - }; - - /* We support embedded TrueType files by allowing them to be */ - /* inside any file, at any location, hence the 'base' argument. */ - /* Note however that the current implementation does not allow you */ - /* to specify a 'base' index when opening a file. */ - /* (will come later) */ - /* I still don't know if this will turn out useful ?? - DavidT */ - -#define STREAM2REC( x ) ( (TStream_Rec*)HANDLE_Val( x ) ) - - static TT_Error Stream_Activate ( PStream_Rec stream ); - static TT_Error Stream_Deactivate( PStream_Rec stream ); - - -#ifndef TT_CONFIG_OPTION_THREAD_SAFE - - /*******************************************************************/ - /*******************************************************************/ - /*******************************************************************/ - /**** ****/ - /**** N O N R E E N T R A N T I M P L E M E N T A T I O N ****/ - /**** ****/ - /*******************************************************************/ - /*******************************************************************/ - /*******************************************************************/ - - /* in non-rentrant builds, we allocate a single block where we'll */ - /* place all the frames smaller than FRAME_CACHE_SIZE, rather than */ - /* allocating a new block on each access. Bigger frames will be */ - /* malloced normally in the heap. */ - /* */ - /* See TT_Access_Frame() and TT_Forget_Frame() for details. */ - -#define FRAME_CACHE_SIZE 2048 - - /* The TFile_Component structure holds all the data that was */ - /* previously declared static or global in this component. */ - /* */ - /* It is accessible through the 'engine.file_component' */ - /* variable in re-entrant builds, or directly through the */ - /* static 'files' variable in other builds. */ - - struct TFile_Component_ - { - TMutex lock; /* used by the thread-safe build only */ - Byte* frame_cache; /* frame cache */ - PStream_Rec stream; /* current stream */ - TFileFrame frame; /* current frame */ - }; - - typedef struct TFile_Component_ TFile_Component; - - static TFile_Component files; - -#define CUR_Stream files.stream -#define CUR_Frame files.frame - -#define STREAM_VARS /* void */ -#define STREAM_VAR /* void */ - -/* The macro CUR_Stream denotes the current input stream. */ -/* Note that for the re-entrant version, the 'stream' name has been */ -/* chosen according to the macro STREAM_ARGS. */ - -/* The macro CUR_Frame denotes the current file frame. */ -/* Note that for the re-entrant version, the 'frame' name has been */ -/* chosen according to the macro FRAME_ARGS. */ - -/* The macro STREAM_VAR is used when calling public functions */ -/* that need an 'optional' stream argument. */ - - -/******************************************************************* - * - * Function : TTFile_Init - * - * Description : Initializes the File component. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TTFile_Init( PEngine_Instance engine ) - { - TT_Error error; - - - MUTEX_Create( files.lock ); - files.stream = NULL; - ZERO_Frame( files.frame ); - - if ( ALLOC( files.frame_cache, FRAME_CACHE_SIZE ) ) - return error; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TTFile_Done - * - * Description : Finalizes the File component. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TTFile_Done( PEngine_Instance engine ) - { - FREE( files.frame_cache ); - MUTEX_Destroy( files.lock ); - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Use_Stream - * - * Description : Copies or duplicates a given stream. - * - * Input : org_stream original stream - * stream target stream (copy or duplicate) - * - * Output : Error code. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Use_Stream( TT_Stream org_stream, - TT_Stream* stream ) - { - MUTEX_Lock( files.lock ); /* lock file mutex */ - - *stream = org_stream; /* copy the stream */ - files.stream = STREAM2REC(org_stream); /* set current stream */ - - Stream_Activate( files.stream ); - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Done_Stream - * - * Description : Releases a given stream. - * - * Input : stream target stream - * - * Output : Error code. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Done_Stream( TT_Stream* stream ) - { - HANDLE_Set( *stream, NULL ); - MUTEX_Release( files.lock ); - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Access_Frame - * - * Description : Notifies the component that we're going to read - * 'size' bytes from the current file position. - * This function should load/cache/map these bytes - * so that they will be addressed by the GET_xxx - * functions easily. - * - * Input : size number of bytes to access. - * - * Output : SUCCESS on success. FAILURE on error. - * - * Notes: The function fails if the byte range is not within the - * the file, or if there is not enough memory to cache - * the bytes properly (which usually means that `size' is - * too big in both cases). - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Access_Frame( STREAM_ARGS FRAME_ARGS Long size ) - { - TT_Error error; - - - if ( CUR_Frame.address != NULL ) - return TT_Err_Nested_Frame_Access; - - if ( size <= FRAME_CACHE_SIZE ) - { - /* use the cache */ - CUR_Frame.address = files.frame_cache; - CUR_Frame.size = FRAME_CACHE_SIZE; - } - else - { - if ( ALLOC( CUR_Frame.address, size ) ) - return error; - CUR_Frame.size = size; - } - - error = TT_Read_File( STREAM_VARS (void*)CUR_Frame.address, size ); - if (error) - { - if ( size > FRAME_CACHE_SIZE ) - FREE( CUR_Frame.address ); - CUR_Frame.address = NULL; - CUR_Frame.size = 0; - } - - CUR_Frame.cursor = CUR_Frame.address; - return error; - } - - -/******************************************************************* - * - * Function : TT_Check_And_Access_Frame - * - * Description : Notifies the component that we're going to read - * `size' bytes from the current file position. - * This function should load/cache/map these bytes - * so that they will be addressed by the GET_xxx - * functions easily. - * - * Input : size number of bytes to access. - * - * Output : SUCCESS on success. FAILURE on error. - * - * Notes: The function truncates `size' if the byte range is not - * within the file. - * - * It will fail if there is not enough memory to cache - * the bytes properly (which usually means that `size' is - * too big). - * - * It will fail if you make two consecutive calls - * to TT_Access_Frame(), without a TT_Forget_Frame() between - * them. - * - * The only difference with TT_Access_Frame() is that we - * check that the frame is within the current file. We - * otherwise truncate it. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Check_And_Access_Frame( STREAM_ARGS FRAME_ARGS Long size ) - { - TT_Error error; - Long readBytes, requested; - - - if ( CUR_Frame.address != NULL ) - return TT_Err_Nested_Frame_Access; - - if ( size <= FRAME_CACHE_SIZE ) - { - /* use the cache */ - CUR_Frame.address = files.frame_cache; - CUR_Frame.size = FRAME_CACHE_SIZE; - } - else - { - if ( ALLOC( CUR_Frame.address, size ) ) - return error; - CUR_Frame.size = size; - } - - requested = size; - readBytes = CUR_Stream->size - TT_File_Pos( STREAM_VAR ); - if ( size > readBytes ) - size = readBytes; - - error = TT_Read_File( STREAM_VARS (void*)CUR_Frame.address, size ); - if (error) - { - if ( requested > FRAME_CACHE_SIZE ) - FREE( CUR_Frame.address ); - CUR_Frame.address = NULL; - CUR_Frame.size = 0; - } - - CUR_Frame.cursor = CUR_Frame.address; - return error; - } - - -/******************************************************************* - * - * Function : TT_Forget_Frame - * - * Description : Releases a cached frame after reading. - * - * Input : None - * - * Output : SUCCESS on success. FAILURE on error. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Forget_Frame( FRAME_ARG ) - { - if ( CUR_Frame.address == NULL ) - return TT_Err_Nested_Frame_Access; - - if ( CUR_Frame.size > FRAME_CACHE_SIZE ) - FREE( CUR_Frame.address ); - - ZERO_Frame( CUR_Frame ); - - return TT_Err_Ok; - } - - -#else /* TT_CONFIG_OPTION_THREAD_SAFE */ - - /*******************************************************************/ - /*******************************************************************/ - /*******************************************************************/ - /******** ********/ - /******** R E E N T R A N T I M P L E M E N T A T I O N ********/ - /******** ********/ - /*******************************************************************/ - /*******************************************************************/ - /*******************************************************************/ - -/* a simple macro to access the file component's data */ -#define files ( *((TFile_Component*)engine.file_component) ) - -#define CUR_Stream STREAM2REC( stream ) /* re-entrant macros */ -#define CUR_Frame (*frame) - -#define STREAM_VARS stream, -#define STREAM_VAR stream - - -/******************************************************************* - * - * Function : TTFile_Init - * - * Description : Initializes the File component. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TTFile_Init( PEngine_Instance engine ) - { - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TTFile_Done - * - * Description : Finalizes the File component. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TTFile_Done( PEngine_Instance engine ) - { - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Use_Stream - * - * Description : Duplicates a stream for a new usage. - * - * Input : input_stream source stream to duplicate - * copy address of target duplicate stream - * - * Output : error code. - * The target stream is set to NULL in case of failure. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Use_Stream( TT_Stream input_stream, - TT_Stream* copy ) - { - PStream_Rec rec = STREAM2REC( input_stream ); - - return TT_Open_Stream( rec->name, copy ); - } - - -/******************************************************************* - * - * Function : TT_Done_Stream - * - * Description : Releases a given stream. - * - * Input : stream target stream - * - * Output : - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Done_Stream( TT_Stream* stream ) - { - return TT_Close_Stream( stream ); - } - - -/******************************************************************* - * - * Function : TT_Access_Frame - * - * Description : Notifies the component that we're going to read - * 'size' bytes from the current file position. - * This function should load/cache/map these bytes - * so that they will be addressed by the GET_xxx - * functions easily. - * - * Input : size number of bytes to access. - * - * Output : SUCCESS on success. FAILURE on error. - * - * Notes: The function fails if the byte range is not within the - * the file, or if there is not enough memory to cache - * the bytes properly (which usually means that `size' is - * too big in both cases). - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Access_Frame( STREAM_ARGS FRAME_ARGS Long size ) - { - TT_Error error; - - - if ( CUR_Frame.address != NULL ) - return TT_Err_Nested_Frame_Access; - - if ( ALLOC( CUR_Frame.address, size ) ) - return error; - CUR_Frame.size = size; - - error = TT_Read_File( STREAM_VARS (void*)CUR_Frame.address, size ); - if ( error ) - { - FREE( CUR_Frame.address ); - CUR_Frame.size = 0; - } - - CUR_Frame.cursor = CUR_Frame.address; - return error; - } - - -/******************************************************************* - * - * Function : TT_Check_And_Access_Frame - * - * Description : Notifies the component that we're going to read - * `size' bytes from the current file position. - * This function should load/cache/map these bytes - * so that they will be addressed by the GET_xxx - * functions easily. - * - * Input : size number of bytes to access. - * - * Output : SUCCESS on success. FAILURE on error. - * - * Notes: The function truncates `size' if the byte range is not - * within the file. - * - * It will fail if there is not enough memory to cache - * the bytes properly (which usually means that `size' is - * too big). - * - * It will fail if you make two consecutive calls - * to TT_Access_Frame(), without a TT_Forget_Frame() between - * them. - * - * The only difference with TT_Access_Frame() is that we - * check that the frame is within the current file. We - * otherwise truncate it. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Check_And_Access_Frame( STREAM_ARGS FRAME_ARGS Long size ) - { - TT_Error error; - Long readBytes; - - - if ( CUR_Frame.address != NULL ) - return TT_Err_Nested_Frame_Access; - - if ( ALLOC( CUR_Frame.address, size ) ) - return error; - CUR_Frame.size = size; - - readBytes = CUR_Stream->size - TT_File_Pos( STREAM_VAR ); - if ( size > readBytes ) - size = readBytes; - - error = TT_Read_File( STREAM_VARS (void*)CUR_Frame.address, size ); - if ( error ) - { - FREE( CUR_Frame.address ); - CUR_Frame.size = 0; - } - - CUR_Frame.cursor = CUR_Frame.address; - return error; - } - - -/******************************************************************* - * - * Function : TT_Forget_Frame - * - * Description : Releases a cached frame after reading. - * - * Input : None - * - * Output : SUCCESS on success. FAILURE on error. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Forget_Frame( STREAM_ARGS FRAME_ARG ) - { - if ( CUR_Frame.address == NULL ) - return TT_Err_Nested_Frame_Access; - - FREE( CUR_Frame.address ); - ZERO_Frame( CUR_Frame ); - - return TT_Err_Ok; - } - -#endif /* TT_CONFIG_OPTION_THREAD_SAFE */ - - - /*******************************************************************/ - /*******************************************************************/ - /*******************************************************************/ - /*********** ***********/ - /*********** C O M M O N I M P L E M E N T A T I O N ***********/ - /*********** ***********/ - /*******************************************************************/ - /*******************************************************************/ - /*******************************************************************/ - -/******************************************************************* - * - * Function : Stream_Activate - * - * Description : activates a stream, this will either: - * - open a new file handle if the stream is closed - * - move the stream to the head of the linked list - * - * Input : stream the stream to activate - * - * Output : error condition. - * - * Note : This function is also called with fresh new streams - * created by TT_Open_Stream(). They have their 'size' - * field set to -1. - * - ******************************************************************/ - - static TT_Error Stream_Activate( PStream_Rec stream ) - { - if ( !stream->opened ) - { - if ( (stream->file = fopen( (TT_Text*)stream->name, "rb" )) == 0 ) - return TT_Err_Could_Not_ReOpen_File; - - stream->opened = TRUE; - - /* A newly created stream has a size field of -1 */ - if ( stream->size < 0 ) - { - fseek( stream->file, 0, SEEK_END ); - stream->size = ftell( stream->file ); - fseek( stream->file, 0, SEEK_SET ); - } - - /* Reset cursor in file */ - if ( stream->position ) - { - if ( fseek( stream->file, stream->position, SEEK_SET ) != 0 ) - { - /* error during seek */ - fclose( stream->file ); - stream->opened = FALSE; - return TT_Err_Could_Not_ReSeek_File; - } - } - } - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Stream_DeActivate - * - * Description : deactivates a stream, this will : - * - close its file handle if it was opened - * - remove it from the opened list if necessary - * - * Input : stream the stream to deactivate - * - * Output : Error condition - * - * Note : the function is called whenever a stream is deleted - * (_not_ when a stream handle's is closed due to an - * activation). However, the stream record isn't - * destroyed by it.. - * - ******************************************************************/ - - static TT_Error Stream_Deactivate( PStream_Rec stream ) - { - if ( stream->opened ) - { - /* Save its current position within the file */ - stream->position = ftell( stream->file ); - fclose( stream->file ); - stream->file = 0; - stream->opened = FALSE; - } - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Stream_Size - * - * Description : Returns the length of a given stream, even if it - * is flushed. - * - * Input : stream the stream - * - * Output : Length of stream in bytes. - * - ******************************************************************/ - - FT_EXPORT_FUNC( Long ) - TT_Stream_Size( TT_Stream stream ) - { - PStream_Rec rec = STREAM2REC( stream ); - - - if ( rec ) - return rec->size; - else - return 0; /* invalid stream - return 0 */ - } - - -/******************************************************************* - * - * Function : TT_Open_Stream - * - * Description : Opens the font file and saves the total file size. - * - * Input : error address of stream's error variable - * (re-entrant build only) - * filepathname pathname of the file to open - * stream address of target TT_Stream structure - * - * Output : SUCCESS on sucess, FAILURE on error. - * The target stream is set to -1 in case of failure. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TT_Open_Stream( const TT_Text* filepathname, - TT_Stream* stream ) - { - Int len; - TT_Error error; - PStream_Rec stream_rec; - - if ( ALLOC( *stream, sizeof ( TStream_Rec ) ) ) - return error; - - stream_rec = STREAM2REC( *stream ); - - stream_rec->file = NULL; - stream_rec->size = -1L; - stream_rec->base = 0; - stream_rec->opened = FALSE; - stream_rec->position = 0; - - len = strlen( filepathname ) + 1; - if ( ALLOC( stream_rec->name, len ) ) - goto Fail; - - strncpy( stream_rec->name, filepathname, len ); - - error = Stream_Activate( stream_rec ); - if ( error ) - goto Fail_Activate; - -#ifndef TT_CONFIG_OPTION_THREAD_SAFE - CUR_Stream = stream_rec; -#endif - - return TT_Err_Ok; - - Fail_Activate: - FREE( stream_rec->name ); - Fail: - FREE( stream_rec ); - return error; - } - - -/******************************************************************* - * - * Function : TT_Close_Stream - * - * Description : Closes a stream. - * - * Input : stream address of target TT_Stream structure - * - * Output : SUCCESS (always). - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TT_Close_Stream( TT_Stream* stream ) - { - PStream_Rec rec = STREAM2REC( *stream ); - - - Stream_Deactivate( rec ); - FREE( rec->name ); - FREE( rec ); - - HANDLE_Set( *stream, NULL ); - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Flush_Stream - * - * Description : Flushes a stream, i.e., closes its file handle. - * - * Input : stream address of target TT_Stream structure - * - * Output : Error code - * - * NOTE : Never flush the current opened stream. This means that - * you should _never_ call this function between a - * TT_Use_Stream() and a TT_Done_Stream()! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Flush_Stream( TT_Stream* stream ) - { - PStream_Rec rec = STREAM2REC( *stream ); - - - if ( rec ) - { - Stream_Deactivate( rec ); - return TT_Err_Ok; - } - else - return TT_Err_Invalid_Argument; - } - - -/******************************************************************* - * - * Function : TT_Seek_File - * - * Description : Seeks the file cursor to a different position. - * - * Input : position new position in file - * - * Output : SUCCESS on success. FAILURE if out of range. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Seek_File( STREAM_ARGS Long position ) - { - position += CUR_Stream->base; - - if ( fseek( CUR_Stream->file, position, SEEK_SET ) ) - return TT_Err_Invalid_File_Offset; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Skip_File - * - * Description : Skips forward the file cursor. - * - * Input : distance number of bytes to skip - * - * Output : see TT_Seek_File() - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Skip_File( STREAM_ARGS Long distance ) - { - return TT_Seek_File( STREAM_VARS ftell( CUR_Stream->file ) - - CUR_Stream->base + distance ); - } - - -/******************************************************************* - * - * Function : TT_Read_File - * - * Description : Reads a chunk of the file and copies it to memory. - * - * Input : buffer target buffer - * count length in bytes to read - * - * Output : SUCCESS on success. FAILURE if out of range. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Read_File( STREAM_ARGS void* buffer, Long count ) - { - if ( fread( buffer, 1, count, CUR_Stream->file ) != (ULong)count ) - return TT_Err_Invalid_File_Read; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Read_At_File - * - * Description : Reads file at a specified position. - * - * Input : position position to seek to before read - * buffer target buffer - * count number of bytes to read - * - * Output : SUCCESS on success. FAILURE if error. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Read_At_File( STREAM_ARGS Long position, - void* buffer, - Long count ) - { - TT_Error error; - - - if ( (error = TT_Seek_File( STREAM_VARS position )) != TT_Err_Ok || - (error = TT_Read_File( STREAM_VARS buffer, count )) != TT_Err_Ok ) - return error; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_File_Pos - * - * Description : Returns current file seek pointer. - * - * Input : none - * - * Output : Current file position. - * - ******************************************************************/ - - FT_EXPORT_FUNC( Long ) - TT_File_Pos( STREAM_ARG ) - { - return ftell( CUR_Stream->file ) - CUR_Stream->base; - } - - -/******************************************************************* - * - * Function : GET_Byte - * - * Description : Extracts a byte from the current file frame. - * - * Input : None or current frame - * - * Output : Extracted Byte. - * - ******************************************************************/ -#if 0 - FT_EXPORT_FUNC( Byte ) - TT_Get_Byte( FRAME_ARG ) - { - CHECK_FRAME( CUR_Frame, 1 ); - - return (Byte)(*CUR_Frame.cursor++); - } -#endif - - -/******************************************************************* - * - * Function : GET_Char - * - * Description : Extracts a signed byte from the current file frame. - * - * Input : None or current frame - * - * Output : Extracted char. - * - ******************************************************************/ - - FT_EXPORT_FUNC( Char ) - TT_Get_Char( FRAME_ARG ) - { - CHECK_FRAME( CUR_Frame, 1 ); - - return (Char)(*CUR_Frame.cursor++); - } - - -/******************************************************************* - * - * Function : GET_Short - * - * Description : Extracts a short from the current file frame. - * - * Input : None or current frame - * - * Output : Extracted short. - * - ******************************************************************/ - - FT_EXPORT_FUNC( Short ) - TT_Get_Short( FRAME_ARG ) - { - Short getshort; - - - CHECK_FRAME( CUR_Frame, 2 ); - - getshort = (Short)((CUR_Frame.cursor[0] << 8) | - CUR_Frame.cursor[1]); - - CUR_Frame.cursor += 2; - - return getshort; - } - - -/******************************************************************* - * - * Function : GET_UShort - * - * Description : Extracts an unsigned short from the frame. - * - * Input : None or current frame - * - * Output : Extracted ushort. - * - ******************************************************************/ -#if 0 - FT_EXPORT_FUNC( UShort ) - TT_Get_UShort( FRAME_ARG ) - { - UShort getshort; - - - CHECK_FRAME( CUR_Frame, 2 ); - - getshort = (UShort)((CUR_Frame.cursor[0] << 8) | - CUR_Frame.cursor[1]); - - CUR_Frame.cursor += 2; - - return getshort; - } -#endif - - -/******************************************************************* - * - * Function : GET_Long - * - * Description : Extracts a long from the frame. - * - * Input : None or current frame - * - * Output : Extracted long. - * - ******************************************************************/ - - FT_EXPORT_FUNC( Long ) - TT_Get_Long( FRAME_ARG ) - { - Long getlong; - - - CHECK_FRAME( CUR_Frame, 4 ); - - getlong = ((Long)CUR_Frame.cursor[0] << 24) | - ((Long)CUR_Frame.cursor[1] << 16) | - ((Long)CUR_Frame.cursor[2] << 8 ) | - (Long)CUR_Frame.cursor[3]; - - CUR_Frame.cursor += 4; - - return getlong; - } - - -/******************************************************************* - * - * Function : GET_ULong - * - * Description : Extracts an unsigned long from the frame. - * - * Input : None or current frame - * - * Output : Extracted ulong. - * - ******************************************************************/ -#if 0 - FT_EXPORT_FUNC( ULong ) - TT_Get_ULong( FRAME_ARG ) - { - ULong getlong; - - - CHECK_FRAME( CUR_Frame, 4 ); - - getlong = ( ((ULong)CUR_Frame.cursor[0] << 24) | - ((ULong)CUR_Frame.cursor[1] << 16) | - ((ULong)CUR_Frame.cursor[2] << 8 ) | - (ULong)CUR_Frame.cursor[3] ); - - CUR_Frame.cursor += 4; - - return getlong; - } -#endif - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/ttfile.h b/Build/source/libs/freetype/freetype-1.5/lib/ttfile.h deleted file mode 100644 index 13d5fb98e15..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/ttfile.h +++ /dev/null @@ -1,430 +0,0 @@ -/******************************************************************* - * - * ttfile.h 1.4 - * - * File I/O Component (specification). - * - * Copyright 1996-2002 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - * Changes between 1.4 and 1.2 : - * - * - the macros which used to be in ttload.h are now here - * (with their underlying functions) - * - * Changes between 1.3 and 1.2: - * - * - all functions report error values now - * - * - the stream semantics have also changed - * - * Changes between 1.2 and 1.1: - * - * - added macros to support re-entrant builds - * - * - added the TT_Duplicate_File function to duplicate streams - * (re-entrant builds only) - * - ******************************************************************/ - -#ifndef TTFILE_H -#define TTFILE_H - -#include "ttconfig.h" -#include "freetype.h" -#include "ttengine.h" -#include "ttdebug.h" - -#ifdef __cplusplus - extern "C" { -#endif - - /* Initialize file component */ - FT_INTERNAL_DEF( TT_Error ) - TTFile_Init( PEngine_Instance engine ); - - /* Done with file component */ - FT_INTERNAL_DEF( TT_Error ) - TTFile_Done( PEngine_Instance engine ); - - - /****************************************************************/ - /* */ - /* Macros. */ - /* */ - /****************************************************************/ - -/* The following macros are defined to simplify the writing of */ -/* the various table and glyph loaders. */ - -/* For examples see the code in ttload.c, ttgload.c etc. */ - -#define USE_Stream( original, duplicate ) \ - ( (error = TT_Use_Stream( original, &duplicate )) != TT_Err_Ok ) - -#define DONE_Stream( _stream ) \ - TT_Done_Stream( &_stream ) - -/* Define a file frame -- use it only when needed */ -#define DEFINE_A_FRAME TFileFrame frame = TT_Null_FileFrame - -/* Define a stream -- use it only when needed */ -#define DEFINE_A_STREAM TT_Stream stream - - -#ifdef TT_CONFIG_OPTION_THREAD_SAFE /* re-entrant implementation */ - -/* The following macros define the necessary local */ -/* variables used to access streams and frames. */ - -/* Define stream locals with frame */ -#define DEFINE_STREAM_LOCALS \ - TT_Error error; \ - DEFINE_A_STREAM; \ - DEFINE_A_FRAME - -/* Define stream locals without frame */ -#define DEFINE_STREAM_LOCALS_WO_FRAME \ - TT_Error error; \ - DEFINE_A_STREAM - -/* Define locals with a predefined stream in reentrant mode -- see ttload.c */ -#define DEFINE_LOAD_LOCALS( STREAM ) \ - TT_Error error; \ - DEFINE_A_STREAM = (STREAM); \ - DEFINE_A_FRAME - -/* Define locals without frame with a predefined stream - see ttload.c */ -#define DEFINE_LOAD_LOCALS_WO_FRAME( STREAM ) \ - TT_Error error; \ - DEFINE_A_STREAM = (STREAM) - -/* Define all locals necessary to access a font file */ -#define DEFINE_ALL_LOCALS \ - TT_Error error; \ - DEFINE_A_STREAM; \ - DEFINE_A_FRAME - - -#define ACCESS_Frame( _size_ ) \ - ( (error = TT_Access_Frame( stream, \ - &frame, \ - (Long)(_size_) )) != TT_Err_Ok ) -#define CHECK_AND_ACCESS_Frame( _size_ ) \ - ( (error = TT_Check_And_Access_Frame( stream, \ - &frame, \ - (Long)(_size_) )) != TT_Err_Ok ) -#define FORGET_Frame() \ - ( (void)TT_Forget_Frame( stream, &frame ) ) - -#define GET_Byte() TT_Get_Byte ( &frame ) -#define GET_Char() TT_Get_Char ( &frame ) -#define GET_UShort() TT_Get_UShort( &frame ) -#define GET_Short() TT_Get_Short ( &frame ) -#define GET_Long() TT_Get_Long ( &frame ) -#define GET_ULong() TT_Get_ULong ( &frame ) -#define GET_Tag4() TT_Get_ULong ( &frame ) - -#define FILE_Pos() TT_File_Pos ( stream ) - -#define FILE_Seek( _position_ ) \ - ( (error = TT_Seek_File( stream, \ - (Long)(_position_) )) != TT_Err_Ok ) -#define FILE_Skip( _distance_ ) \ - ( (error = TT_Skip_File( stream, \ - (Long)(_distance_) )) != TT_Err_Ok ) -#define FILE_Read( buffer, count ) \ - ( (error = TT_Read_File ( stream, \ - buffer, \ - (Long)(count) )) != TT_Err_Ok ) -#define FILE_Read_At( pos, buffer, count ) \ - ( (error = TT_Read_At_File( stream, \ - (Long)(pos), \ - buffer, \ - (Long)(count) )) != TT_Err_Ok ) - -#else /* thread-safe implementation */ - -/* Define stream locals with frame -- nothing in thread-safe mode */ -#define DEFINE_STREAM_LOCALS \ - TT_Error error - -/* Define stream locals without frame -- nothing in thread-safe mode */ -#define DEFINE_STREAM_LOCALS_WO_FRAME \ - TT_Error error - -/* Define locals with a predefined stream in reentrant mode -- see ttload.c */ -#define DEFINE_LOAD_LOCALS( STREAM ) \ - TT_Error error - - -/* Define locals without frame with a predefined stream - see ttload.c */ -#define DEFINE_LOAD_LOCALS_WO_FRAME( STREAM ) \ - TT_Error error - -/* Define all locals necessary to access a font file */ -#define DEFINE_ALL_LOCALS \ - TT_Error error; \ - DEFINE_A_STREAM - - -#define ACCESS_Frame( _size_ ) \ - ( (error = TT_Access_Frame( (Long)(_size_) )) != TT_Err_Ok ) -#define CHECK_AND_ACCESS_Frame( _size_ ) \ - ( (error = TT_Check_And_Access_Frame( (Long)(_size_) )) != TT_Err_Ok ) -#define FORGET_Frame() \ - ( (void)TT_Forget_Frame() ) - -#define GET_Byte() TT_Get_Byte () -#define GET_Char() TT_Get_Char () -#define GET_UShort() TT_Get_UShort() -#define GET_Short() TT_Get_Short () -#define GET_Long() TT_Get_Long () -#define GET_ULong() TT_Get_ULong () -#define GET_Tag4() TT_Get_ULong () - -#define FILE_Pos() TT_File_Pos() - -#define FILE_Seek( _position_ ) \ - ( (error = TT_Seek_File( (Long)(_position_) )) != TT_Err_Ok ) -#define FILE_Skip( _distance_ ) \ - ( (error = TT_Skip_File( (Long)(_distance_) )) != TT_Err_Ok ) -#define FILE_Read( buffer, count ) \ - ( (error = TT_Read_File ( buffer, \ - (Long)(count) )) != TT_Err_Ok ) -#define FILE_Read_At( pos, buffer, count ) \ - ( (error = TT_Read_At_File( (Long)(pos), \ - buffer, \ - (Long)(count) )) != TT_Err_Ok ) - -#endif /* TT_CONFIG_OPTION_THREAD_SAFE */ - - - /****************************************************************/ - /* */ - /* Stream functions. */ - /* */ - /****************************************************************/ - - /* Open a file and return a stream handle for it. */ - /* Should only be used for a new face object's main stream. */ - - FT_INTERNAL_DEF( TT_Error ) - TT_Open_Stream( const TT_Text* name, - TT_Stream* stream ); - - - /* Closes, then discards, a stream when it's no longer needed. */ - /* Should only be used for a stream opend with TT_Open_Stream(). */ - - FT_INTERNAL_DEF( TT_Error ) - TT_Close_Stream( TT_Stream* stream ); - - - /* Informs the component that we're going to use the file */ - /* opened in 'org_stream', and report errors to the 'error' */ - /* variable. */ - - /* in non re-entrant builds, 'org_stream' is simply copied */ - /* to 'stream'. Otherwise, the latter is a duplicate handle */ - /* for the file opened with 'org_stream' */ - - FT_EXPORT_DEF( TT_Error ) - TT_Use_Stream( TT_Stream org_stream, - TT_Stream* stream ); - - /* Informs the component that we don't need to perform file */ - /* operations on the stream 'stream' anymore. This must be */ - /* used with streams "opened" with TT_Use_Stream() only! */ - - /* in re-entrant builds, this will really discard the stream */ - - FT_EXPORT_DEF( TT_Error ) - TT_Done_Stream( TT_Stream* stream ); - - /* Closes the stream's file handle to release system resources */ - /* The function TT_Use_Stream automatically re-activates a */ - /* flushed stream when it uses one */ - - FT_EXPORT_DEF( TT_Error ) - TT_Flush_Stream( TT_Stream* stream ); - -/* The macros STREAM_ARGS and STREAM_ARG let us build a thread-safe */ -/* or re-entrant implementation depending on a single configuration */ -/*define. */ - -#ifdef TT_CONFIG_OPTION_THREAD_SAFE - -#define STREAM_ARGS TT_Stream stream, -#define STREAM_ARG TT_Stream stream - -#else - -#define STREAM_ARGS /* void */ -#define STREAM_ARG void - -#endif /* TT_CONFIG_OPTION_THREAD_SAFE */ - - - /****************************************************************/ - /* */ - /* File Functions. */ - /* */ - /* The following functions perform file operations on the */ - /* currently 'used' stream. In thread-safe builds, only one */ - /* stream can be used at a time. Synchronisation is performed */ - /* through the Use_Stream()/Done_Stream() functions. */ - /* */ - /****************************************************************/ - - /* Read 'count' bytes from file into 'buffer' */ - - FT_EXPORT_DEF( TT_Error ) - TT_Read_File( STREAM_ARGS void* buffer, - Long count ); - - - /* Seek file cursor to a given position */ - - FT_EXPORT_DEF( TT_Error ) - TT_Seek_File( STREAM_ARGS Long position ); - - - /* Skip the next 'distance' bytes in file */ - - FT_EXPORT_DEF( TT_Error ) - TT_Skip_File( STREAM_ARGS Long distance ); - - - /* Read the 'count' bytes at 'position' into 'buffer' */ - - FT_EXPORT_DEF( TT_Error ) - TT_Read_At_File( STREAM_ARGS Long position, - void* buffer, - Long count ); - - /* Return current file position */ - - FT_EXPORT_DEF( Long ) - TT_File_Pos( STREAM_ARG ); - - /* Return length of a given stream, even if it is flushed */ - - FT_EXPORT_DEF( Long ) - TT_Stream_Size( TT_Stream stream ); - - - /****************************************************************/ - /* */ - /* Frame operations. */ - /* */ - /* For a comprehensive explanation of frames, please refer to */ - /* the documentation files. */ - /* */ - /****************************************************************/ - - /* Frame type declaration.*/ - - struct TFileFrame_ - { - Byte* address; /* frame buffer */ - Byte* cursor; /* current cursor position in frame */ - Long size; /* frame size */ - }; - - typedef struct TFileFrame_ TFileFrame; - - FT_EXPORT_DECL( const TFileFrame ) - TT_Null_FileFrame; - - -/* The macro ZERO_Frame is used to define and init a frame. */ -/* It is important to have a default frame of { NULL, NULL, 0 } */ -/* before a call to TT_Access_Frame(). Otherwise, the call will */ -/* fail with a TT_Err_Nested_Frame_Accesses error. */ - -#define ZERO_Frame( frame ) \ - { \ - (frame).address = NULL; \ - (frame).cursor = NULL; \ - (frame).size = 0; \ - } - - -/* The macros FRAME_ARGS and FRAME_ARG let us build a thread-safe */ -/* or re-entrant implementation depending on a single configuration */ -/* define */ - -#ifdef TT_CONFIG_OPTION_THREAD_SAFE - -#define FRAME_ARGS TFileFrame* frame, -#define FRAME_ARG TFileFrame* frame - -#else - -#define FRAME_ARGS /* void */ -#define FRAME_ARG void - -#endif /* TT_CONFIG_OPTION_THREAD_SAFE */ - - - /* Access the next 'size' bytes from current position. */ - /* Fails if all bytes cannot be read/accessed. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Access_Frame( STREAM_ARGS FRAME_ARGS Long size ); - - - /* Access the bytes located in the next 'size' bytes of the file. */ - /* Doesn't fail if less than 'size' bytes are accessible (like */ - /* at the end of the file). */ - - FT_EXPORT_DEF( TT_Error ) - TT_Check_And_Access_Frame( STREAM_ARGS FRAME_ARGS Long size ); - - /* Forget frame */ - - FT_EXPORT_DEF( TT_Error ) - TT_Forget_Frame( STREAM_ARGS FRAME_ARG ); - - - /* primitive routines for data accessing */ - - FT_EXPORT_DEF( Char ) - TT_Get_Char( FRAME_ARG ); - - FT_EXPORT_DEF( Short ) - TT_Get_Short( FRAME_ARG ); - - FT_EXPORT_DEF( Long ) - TT_Get_Long( FRAME_ARG ); - -#ifdef TT_CONFIG_OPTION_THREAD_SAFE - -#define TT_Get_Byte( frame ) ( (Byte )TT_Get_Char ( frame ) ) -#define TT_Get_UShort( frame ) ( (UShort)TT_Get_Short( frame ) ) -#define TT_Get_ULong( frame ) ( (ULong )TT_Get_Long ( frame ) ) - -#else - -#define TT_Get_Byte() ( (Byte )TT_Get_Char () ) -#define TT_Get_UShort() ( (UShort)TT_Get_Short() ) -#define TT_Get_ULong() ( (ULong )TT_Get_Long () ) - -#endif /* TT_CONFIG_OPTION_THREAD_SAFE */ - - -#ifdef __cplusplus - } -#endif - -#endif /* TTFILE_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/ttgload.c b/Build/source/libs/freetype/freetype-1.5/lib/ttgload.c deleted file mode 100644 index e7a838a40a7..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/ttgload.c +++ /dev/null @@ -1,1353 +0,0 @@ -/******************************************************************* - * - * ttgload.c 1.0 - * - * TrueType Glyph Loader. - * - * Copyright 1996-2000 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - ******************************************************************/ - -#include "tttypes.h" -#include "ttdebug.h" -#include "ttcalc.h" -#include "ttfile.h" - -#include "tttables.h" -#include "ttobjs.h" -#include "ttgload.h" - -#include "ttmemory.h" -#include "tttags.h" -#include "ttload.h" - -/* required by the tracing mode */ -#undef TT_COMPONENT -#define TT_COMPONENT trace_gload - - -/* composite font flags */ - -#define ARGS_ARE_WORDS 0x001 -#define ARGS_ARE_XY_VALUES 0x002 -#define ROUND_XY_TO_GRID 0x004 -#define WE_HAVE_A_SCALE 0x008 -/* reserved 0x010 */ -#define MORE_COMPONENTS 0x020 -#define WE_HAVE_AN_XY_SCALE 0x040 -#define WE_HAVE_A_2X2 0x080 -#define WE_HAVE_INSTR 0x100 -#define USE_MY_METRICS 0x200 - - -/********************************************************/ -/* Return horizontal or vertical metrics in font units */ -/* for a given glyph. The metrics are the left side */ -/* bearing (resp. top side bearing) and advance width */ -/* (resp. advance height). */ -/* */ -/* This function will much probably move to another */ -/* component in the short future, but I haven't decided */ -/* which yet... */ - - FT_INTERNAL_FUNC( void ) - TT_Get_Metrics( TT_Horizontal_Header* header, - UShort index, - Short* bearing, - UShort* advance ) - { - PLongMetrics longs_m; - - UShort k = header->number_Of_HMetrics; - - - if ( index < k ) - { - longs_m = (PLongMetrics)header->long_metrics + index; - *bearing = longs_m->bearing; - *advance = longs_m->advance; - } - else - { - *bearing = ((PShortMetrics)header->short_metrics)[index - k]; - *advance = ((PLongMetrics)header->long_metrics)[k - 1].advance; - } - } - - -/********************************************************/ -/* Return horizontal metrics in font units for a given */ -/* glyph. If `check' is true, take care of mono-spaced */ -/* fonts by returning the advance width max. */ - - static void Get_HMetrics( PFace face, - UShort index, - Bool check, - Short* lsb, - UShort* aw ) - { - TT_Get_Metrics( &face->horizontalHeader, index, lsb, aw ); - - if ( check && face->postscript.isFixedPitch ) - *aw = face->horizontalHeader.advance_Width_Max; - } - - -/********************************************************/ -/* Return advance width table for a given pixel size */ -/* if it is found in the font's `hdmx' table (if any). */ - - static PByte Get_Advance_Widths( PFace face, - UShort ppem ) - { - UShort n; - - - for ( n = 0; n < face->hdmx.num_records; n++ ) - if ( face->hdmx.records[n].ppem == ppem ) - return face->hdmx.records[n].widths; - - return NULL; - } - - -/********************************************************/ -/* Copy current glyph into original one. */ - -#define cur_to_org( n, zone ) \ - MEM_Copy( (zone)->org, (zone)->cur, (n) * sizeof ( TT_Vector ) ) - -/********************************************************/ -/* copy original glyph into current one */ - -#define org_to_cur( n, zone ) \ - MEM_Copy( (zone)->cur, (zone)->org, (n) * sizeof ( TT_Vector ) ) - -/********************************************************/ -/* translate an array of coordinates */ - - static void translate_array( UShort n, - TT_Vector* coords, - TT_Pos delta_x, - TT_Pos delta_y ) - { - UShort k; - - - if ( delta_x ) - for ( k = 0; k < n; k++ ) - coords[k].x += delta_x; - - if ( delta_y ) - for ( k = 0; k < n; k++ ) - coords[k].y += delta_y; - } - - -/********************************************************/ -/* mount one zone on top of another */ - - static void mount_zone( PGlyph_Zone source, - PGlyph_Zone target ) - { - UShort np; - Short nc; - - np = source->n_points; - nc = source->n_contours; - - target->org = source->org + np; - target->cur = source->cur + np; - target->touch = source->touch + np; - - target->contours = source->contours + nc; - - target->n_points = 0; - target->n_contours = 0; - } - - -/******************************************************************* - * - * Function: Load_Simple_Glyph - * - ******************************************************************/ - - static TT_Error Load_Simple_Glyph( PExecution_Context exec, - TT_Stream input, - Short n_contours, - Short left_contours, - UShort left_points, - UShort load_flags, - PSubglyph_Record subg ) - { - DEFINE_LOAD_LOCALS( input ); - - PGlyph_Zone pts; - Short k; - UShort j; - UShort n_points, n_ins; - PFace face; - Byte* flag; - TT_Vector* vec; - TT_F26Dot6 x, y; - - - face = exec->face; - - /* simple check */ - if ( n_contours > left_contours ) - { - PTRACE0(( "ERROR: Glyph index %ld has %d contours > left %d\n", - subg->index, n_contours, left_contours )); - return TT_Err_Too_Many_Contours; - } - - - /* preparing the execution context */ - mount_zone( &subg->zone, &exec->pts ); - - /* reading the contours endpoints */ - if ( ACCESS_Frame( (n_contours + 1) * 2L ) ) - return error; - - PTRACE4(( " Contour endpoints:" )); - - for ( k = 0; k < n_contours; k++ ) - { - exec->pts.contours[k] = GET_UShort(); - PTRACE4(( " %d", exec->pts.contours[k] )); - } - PTRACE4(( "\n" )); - - if ( n_contours > 0 ) - n_points = exec->pts.contours[n_contours - 1] + 1; - else - n_points = 0; - - n_ins = GET_UShort(); - - FORGET_Frame(); - - if ( n_points > left_points ) - { - PTRACE0(( "ERROR: Too many points in glyph %ld\n", subg->index )); - return TT_Err_Too_Many_Points; - } - - /* loading instructions */ - - PTRACE4(( " Instructions size: %d\n", n_ins )); - - if ( n_ins > face->maxProfile.maxSizeOfInstructions ) - { - PTRACE0(( "ERROR: Too many instructions!\n" )); - return TT_Err_Too_Many_Ins; - } - - if ( FILE_Read( exec->glyphIns, n_ins ) ) - return error; - - if ( (error = Set_CodeRange( exec, - TT_CodeRange_Glyph, - exec->glyphIns, - n_ins )) != TT_Err_Ok ) - return error; - - - /* read the flags */ - - if ( CHECK_AND_ACCESS_Frame( n_points * 5L ) ) - return error; - - j = 0; - flag = exec->pts.touch; - - while ( j < n_points ) - { - Byte c, cnt; - - flag[j] = c = GET_Byte(); - j++; - - if ( c & 8 ) - { - cnt = GET_Byte(); - while( cnt > 0 ) - { - flag[j++] = c; - cnt--; - } - } - } - - /* read the X */ - - x = 0; - vec = exec->pts.org; - - for ( j = 0; j < n_points; j++ ) - { - if ( flag[j] & 2 ) - { - if ( flag[j] & 16 ) - x += GET_Byte(); - else - x -= GET_Byte(); - } - else - { - if ( (flag[j] & 16) == 0 ) - x += GET_Short(); - } - - vec[j].x = x; - } - - - /* read the Y */ - - y = 0; - - for ( j = 0; j < n_points; j++ ) - { - if ( flag[j] & 4 ) - { - if ( flag[j] & 32 ) - y += GET_Byte(); - else - y -= GET_Byte(); - } - else - { - if ( (flag[j] & 32) == 0 ) - y += GET_Short(); - } - - vec[j].y = y; - } - - FORGET_Frame(); - /* Now add the two shadow points at n and n + 1. */ - /* We need the left side bearing and advance width. */ - - /* pp1 = xMin - lsb */ - vec[n_points].x = subg->metrics.bbox.xMin - subg->metrics.horiBearingX; - vec[n_points].y = 0; - - /* pp2 = pp1 + aw */ - vec[n_points+1].x = vec[n_points].x + subg->metrics.horiAdvance; - vec[n_points+1].y = 0; - - /* clear the touch flags */ - - for ( j = 0; j < n_points; j++ ) - exec->pts.touch[j] &= TT_Flag_On_Curve; - - exec->pts.touch[n_points ] = 0; - exec->pts.touch[n_points + 1] = 0; - - /* Note that we return two more points that are not */ - /* part of the glyph outline. */ - - n_points += 2; - - /* now eventually scale and hint the glyph */ - - pts = &exec->pts; - pts->n_points = n_points; - pts->n_contours = n_contours; - - if ( (load_flags & TTLOAD_SCALE_GLYPH) == 0 ) - { - /* no scaling, just copy the orig arrays into the cur ones */ - org_to_cur( n_points, pts ); - } - else - { - /* first scale the glyph points */ - - for ( j = 0; j < n_points; j++ ) - { - pts->org[j].x = Scale_X( &exec->metrics, pts->org[j].x ); - pts->org[j].y = Scale_Y( &exec->metrics, pts->org[j].y ); - } - - /* if hinting, round pp1, and shift the glyph accordingly */ - if ( subg->is_hinted ) - { - x = pts->org[n_points - 2].x; - x = ((x+32) & -64) - x; - translate_array( n_points, pts->org, x, 0 ); - - org_to_cur( n_points, pts ); - - pts->cur[n_points - 1].x = (pts->cur[n_points - 1].x + 32) & -64; - - /* now consider hinting */ - if ( n_ins > 0 ) - { - exec->is_composite = FALSE; - exec->pedantic_hinting = load_flags & TTLOAD_PEDANTIC; - - error = Context_Run( exec, FALSE ); - if (error && exec->pedantic_hinting) - return error; - } - } - else - org_to_cur( n_points, pts ); - } - - /* save glyph phantom points */ - if (!subg->preserve_pps) - { - subg->pp1 = pts->cur[n_points - 2]; - subg->pp2 = pts->cur[n_points - 1]; - } - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Load_Composite_End - * - ******************************************************************/ - - static - TT_Error Load_Composite_End( UShort n_points, - Short n_contours, - PExecution_Context exec, - PSubglyph_Record subg, - UShort load_flags, - TT_Stream input ) - { - DEFINE_LOAD_LOCALS( input ); - - UShort k, n_ins; - PGlyph_Zone pts; - - - if ( subg->is_hinted && - subg->element_flag & WE_HAVE_INSTR ) - { - if ( ACCESS_Frame( 2L ) ) - return error; - - n_ins = GET_UShort(); /* read size of instructions */ - FORGET_Frame(); - - PTRACE4(( " Instructions size: %d\n", n_ins )); - - if ( n_ins > exec->face->maxProfile.maxSizeOfInstructions ) - { - PTRACE0(( "ERROR: Too many instructions in composite glyph %ld\n", - subg->index )); - return TT_Err_Too_Many_Ins; - } - - if ( FILE_Read( exec->glyphIns, n_ins ) ) - return error; - - error = Set_CodeRange( exec, - TT_CodeRange_Glyph, - exec->glyphIns, - n_ins ); - - if ( error ) - return error; - } - else - n_ins = 0; - - - /* prepare the execution context */ - n_points += 2; - exec->pts = subg->zone; - pts = &exec->pts; - - pts->n_points = n_points; - pts->n_contours = n_contours; - - /* add phantom points */ - pts->cur[n_points - 2] = subg->pp1; - pts->cur[n_points - 1] = subg->pp2; - - pts->touch[n_points - 1] = 0; - pts->touch[n_points - 2] = 0; - - /* if hinting, round the phantom points */ - if ( subg->is_hinted ) - { - pts->cur[n_points - 2].x = (subg->pp1.x + 32) & -64; - pts->cur[n_points - 1].x = (subg->pp2.x + 32) & -64; - } - - for ( k = 0; k < n_points; k++ ) - pts->touch[k] &= TT_Flag_On_Curve; - - cur_to_org( n_points, pts ); - - /* now consider hinting */ - if ( subg->is_hinted && n_ins > 0 ) - { - exec->is_composite = TRUE; - exec->pedantic_hinting = load_flags & TTLOAD_PEDANTIC; - - error = Context_Run( exec, FALSE ); - if (error && exec->pedantic_hinting) - return error; - } - - /* save glyph origin and advance points */ - subg->pp1 = pts->cur[n_points - 2]; - subg->pp2 = pts->cur[n_points - 1]; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Init_Glyph_Component - * - ******************************************************************/ - - static - void Init_Glyph_Component( PSubglyph_Record element, - PSubglyph_Record original, - PExecution_Context exec ) - { - element->index = -1; - element->is_scaled = FALSE; - element->is_hinted = FALSE; - - if ( original ) - mount_zone( &original->zone, &element->zone ); - else - element->zone = exec->pts; - - element->zone.n_contours = 0; - element->zone.n_points = 0; - - element->arg1 = 0; - element->arg2 = 0; - - element->element_flag = 0; - element->preserve_pps = FALSE; - - element->transform.xx = 1L << 16; - element->transform.xy = 0; - element->transform.yx = 0; - element->transform.yy = 1L << 16; - - element->transform.ox = 0; - element->transform.oy = 0; - - element->metrics.horiBearingX = 0; - element->metrics.horiAdvance = 0; - } - - - FT_INTERNAL_FUNC( TT_Error ) - Load_TrueType_Glyph( PInstance instance, - PGlyph glyph, - UShort glyph_index, - UShort load_flags ) - { - enum TPhases_ - { - Load_Exit, - Load_Glyph, - Load_Header, - Load_Simple, - Load_Composite, - Load_End - }; - - typedef enum TPhases_ TPhases; - - DEFINE_ALL_LOCALS; - - PFace face; - - UShort num_points; - Short num_contours; - UShort left_points; - Short left_contours; - UShort num_elem_points; - - Long table; - UShort load_top; - Long k, l; - UShort new_flags; - Long index; - UShort u, v; - - Long glyph_offset, offset; - - TT_F26Dot6 x, y, nx, ny; - - Fixed xx, xy, yx, yy; - - PExecution_Context exec; - - PSubglyph_Record subglyph, subglyph2; - - TGlyph_Zone base_pts; - - TPhases phase; - PByte widths; - -/* TT_Glyph_Loader_Callback cacheCb; */ -/* TT_Outline cached_outline; */ - - - /* first of all, check arguments */ - if ( !glyph ) - return TT_Err_Invalid_Glyph_Handle; - - face = glyph->face; - if ( !face ) - return TT_Err_Invalid_Glyph_Handle; - - if ( glyph_index >= face->numGlyphs ) - return TT_Err_Invalid_Glyph_Index; - - if ( instance && (load_flags & TTLOAD_SCALE_GLYPH) == 0 ) - { - instance = 0; - load_flags &= ~( TTLOAD_SCALE_GLYPH | TTLOAD_HINT_GLYPH ); - } - - table = TT_LookUp_Table( face, TTAG_glyf ); - if ( table < 0 ) - { - PTRACE0(( "ERROR: There is no glyph table in this font file!\n" )); - return TT_Err_Glyf_Table_Missing; - } - - glyph_offset = face->dirTables[table].Offset; - - /* query new execution context */ - - if ( instance && instance->debug ) - exec = instance->context; - else - exec = New_Context( face ); - - if ( !exec ) - return TT_Err_Could_Not_Find_Context; - - Context_Load( exec, face, instance ); - - if ( instance ) - { - if ( instance->GS.instruct_control & 2 ) - exec->GS = Default_GraphicsState; - else - exec->GS = instance->GS; - /* load default graphics state */ - - glyph->outline.high_precision = ( instance->metrics.y_ppem < 24 ); - } - - /* save its critical pointers, as they'll be modified during load */ - base_pts = exec->pts; - - /* init variables */ - left_points = face->maxPoints; - left_contours = face->maxContours; - - num_points = 0; - num_contours = 0; - - load_top = 0; - subglyph = exec->loadStack; - - Init_Glyph_Component( subglyph, NULL, exec ); - - subglyph->index = glyph_index; - subglyph->is_hinted = load_flags & TTLOAD_HINT_GLYPH; - - /* when the cvt program has disabled hinting, the argument */ - /* is ignored. */ - if ( instance && instance->GS.instruct_control & 1 ) - subglyph->is_hinted = FALSE; - - - /* now access stream */ - - if ( USE_Stream( face->stream, stream ) ) - goto Fin; - - /* Main loading loop */ - - phase = Load_Glyph; - index = 0; - - while ( phase != Load_Exit ) - { - subglyph = exec->loadStack + load_top; - - switch ( phase ) - { - /************************************************************/ - /* */ - /* Load_Glyph state */ - /* */ - /* reading a glyph's generic header to determine */ - /* whether it's simple or composite */ - /* */ - /* exit states: Load_Header and Load_End */ - - case Load_Glyph: - /* check glyph index and table */ - - index = subglyph->index; - if ( index < 0 || index >= face->numGlyphs ) - { - error = TT_Err_Invalid_Glyph_Index; - goto Fail; - } - - /* get horizontal metrics */ - - { - Short left_bearing; - UShort advance_width; - - - Get_HMetrics( face, (UShort)index, - !(load_flags & TTLOAD_IGNORE_GLOBAL_ADVANCE_WIDTH), - &left_bearing, - &advance_width ); - - subglyph->metrics.horiBearingX = left_bearing; - subglyph->metrics.horiAdvance = advance_width; - } - - phase = Load_Header; - - - /* The cache callback isn't part of the FreeType release yet */ - /* It is discarded for the moment.. */ - /* */ -#if 0 - if ( instance ) - { - /* is the glyph in an outline cache ? */ - cacheCb = instance->owner->engine->glCallback; - if ( cacheCb && 0 ) /* disabled */ - { - /* we have a callback */ - error = cacheCb( instance->generic, - index, &cached_outline, &x, &y ); - if ( !error ) - { - /* no error, then append the outline to the current subglyph */ - /* error = Append_Outline( subglyph, - &left_points, - &left_contours, - &cached_outline ); */ - phase = Load_End; - } - } - } -#endif - break; - - - /************************************************************/ - /* */ - /* Load_Header state */ - /* */ - /* reading a glyph's generic header to determine */ - /* wether it's simple or composite */ - /* */ - /* exit states: Load_Simple and Load_Composite */ - /* */ - - case Load_Header: /* load glyph */ - - if ( (TT_UInt)( index + 1 ) < (TT_UInt)face->numLocations && - face->glyphLocations[index] == face->glyphLocations[index + 1] ) - { - /* as described by Frederic Loyer, these are spaces, and */ - /* not the unknown glyph. */ - - num_contours = 0; - num_points = 0; - - subglyph->metrics.bbox.xMin = 0; - subglyph->metrics.bbox.xMax = 0; - subglyph->metrics.bbox.yMin = 0; - subglyph->metrics.bbox.yMax = 0; - - subglyph->pp1.x = 0; - subglyph->pp2.x = subglyph->metrics.horiAdvance; - if (load_flags & TTLOAD_SCALE_GLYPH) - subglyph->pp2.x = Scale_X( &exec->metrics, subglyph->pp2.x ); - - exec->glyphSize = 0; - phase = Load_End; - break; - } - - offset = glyph_offset + face->glyphLocations[index]; - - /* read first glyph header */ - if ( FILE_Seek( offset ) || - ACCESS_Frame( 10L ) ) - goto Fail_File; - - num_contours = GET_Short(); - - subglyph->metrics.bbox.xMin = GET_Short(); - subglyph->metrics.bbox.yMin = GET_Short(); - subglyph->metrics.bbox.xMax = GET_Short(); - subglyph->metrics.bbox.yMax = GET_Short(); - - FORGET_Frame(); - - PTRACE6(( "Glyph %ld:\n", index )); - PTRACE6(( " # of contours: %d\n", num_contours )); - PTRACE6(( " xMin: %4d xMax: %4d\n", - subglyph->metrics.bbox.xMin, - subglyph->metrics.bbox.xMax )); - PTRACE6(( " yMin: %4d yMax: %4d\n", - subglyph->metrics.bbox.yMin, - subglyph->metrics.bbox.yMax )); - - if ( num_contours > left_contours ) - { - PTRACE0(( "ERROR: Too many contours for glyph %ld\n", index )); - error = TT_Err_Too_Many_Contours; - goto Fail; - } - - subglyph->pp1.x = subglyph->metrics.bbox.xMin - - subglyph->metrics.horiBearingX; - subglyph->pp1.y = 0; - subglyph->pp2.x = subglyph->pp1.x + subglyph->metrics.horiAdvance; - if (load_flags & TTLOAD_SCALE_GLYPH) - { - subglyph->pp1.x = Scale_X( &exec->metrics, subglyph->pp1.x ); - subglyph->pp2.x = Scale_X( &exec->metrics, subglyph->pp2.x ); - } - - /* is it a simple glyph ? */ - if ( num_contours > 0 ) - phase = Load_Simple; - else - phase = Load_Composite; - - break; - - - /************************************************************/ - /* */ - /* Load_Simple state */ - /* */ - /* reading a simple glyph (num_contours must be set to */ - /* the glyph's number of contours.) */ - /* */ - /* exit states : Load_End */ - /* */ - - case Load_Simple: - new_flags = load_flags; - - /* disable hinting when scaling */ - if ( !subglyph->is_hinted ) - new_flags &= ~TTLOAD_HINT_GLYPH; - - error = Load_Simple_Glyph( exec, - stream, - num_contours, - left_contours, - left_points, - new_flags, - subglyph ); - if ( error ) - goto Fail; - - /* Note: We could have put the simple loader source there */ - /* but the code is fat enough already :-) */ - - num_points = exec->pts.n_points - 2; - - phase = Load_End; - - break; - - - /************************************************************/ - /* */ - /* Load_Composite state */ - /* */ - /* reading a composite glyph header a pushing a new */ - /* load element on the stack. */ - /* */ - /* exit states: Load_Glyph */ - /* */ - - case Load_Composite: - - /* create a new element on the stack */ - load_top++; - - if ( load_top > face->maxComponents ) - { - error = TT_Err_Invalid_Composite; - goto Fail; - } - - subglyph2 = exec->loadStack + load_top; - - Init_Glyph_Component( subglyph2, subglyph, NULL ); - subglyph2->is_hinted = subglyph->is_hinted; - - /* now read composite header */ - - if ( ACCESS_Frame( 4L ) ) - goto Fail_File; - - subglyph->element_flag = new_flags = GET_UShort(); - - subglyph2->index = GET_UShort(); - - FORGET_Frame(); - - k = 1 + 1; - - if ( new_flags & ARGS_ARE_WORDS ) - k *= 2; - - if ( new_flags & WE_HAVE_A_SCALE ) - k += 2; - - else if ( new_flags & WE_HAVE_AN_XY_SCALE ) - k += 4; - - else if ( new_flags & WE_HAVE_A_2X2 ) - k += 8; - - if ( ACCESS_Frame( k ) ) - goto Fail_File; - - if ( new_flags & ARGS_ARE_WORDS ) - { - k = GET_Short(); - l = GET_Short(); - } - else - { - k = GET_Char(); - l = GET_Char(); - } - - subglyph->arg1 = k; - subglyph->arg2 = l; - - if ( new_flags & ARGS_ARE_XY_VALUES ) - { - subglyph->transform.ox = k; - subglyph->transform.oy = l; - } - - xx = 1L << 16; - xy = 0; - yx = 0; - yy = 1L << 16; - - if ( new_flags & WE_HAVE_A_SCALE ) - { - xx = (Fixed)GET_Short() << 2; - yy = xx; - subglyph2->is_scaled = TRUE; - } - else if ( new_flags & WE_HAVE_AN_XY_SCALE ) - { - xx = (Fixed)GET_Short() << 2; - yy = (Fixed)GET_Short() << 2; - subglyph2->is_scaled = TRUE; - } - else if ( new_flags & WE_HAVE_A_2X2 ) - { - xx = (Fixed)GET_Short() << 2; - xy = (Fixed)GET_Short() << 2; - yx = (Fixed)GET_Short() << 2; - yy = (Fixed)GET_Short() << 2; - subglyph2->is_scaled = TRUE; - } - - FORGET_Frame(); - - subglyph->transform.xx = xx; - subglyph->transform.xy = xy; - subglyph->transform.yx = yx; - subglyph->transform.yy = yy; - - k = TT_MulFix( xx, yy ) - TT_MulFix( xy, yx ); - - /* disable hinting in case of scaling/slanting */ - if ( ABS( k ) != (1L << 16) ) - subglyph2->is_hinted = FALSE; - - subglyph->file_offset = FILE_Pos(); - - phase = Load_Glyph; - - break; - - - /************************************************************/ - /* */ - /* Load_End state */ - /* */ - /* after loading a glyph, apply transformation and offset */ - /* where necessary, pops element and continue or */ - /* stop process. */ - /* */ - /* exit states : Load_Composite and Load_Exit */ - /* */ - - case Load_End: - if ( load_top > 0 ) - { - subglyph2 = subglyph; - - load_top--; - subglyph = exec->loadStack + load_top; - - /* check advance width and left side bearing */ - - if ( !subglyph->preserve_pps && - subglyph->element_flag & USE_MY_METRICS ) - { - subglyph->metrics.horiBearingX = subglyph2->metrics.horiBearingX; - subglyph->metrics.horiAdvance = subglyph2->metrics.horiAdvance; - - subglyph->pp1 = subglyph2->pp1; - subglyph->pp2 = subglyph2->pp2; - - subglyph->preserve_pps = TRUE; - } - - /* apply scale */ - - if ( subglyph2->is_scaled ) - { - TT_Vector* cur = subglyph2->zone.cur; - TT_Vector* org = subglyph2->zone.org; - - for ( u = 0; u < num_points; u++ ) - { - nx = TT_MulFix( cur->x, subglyph->transform.xx ) + - TT_MulFix( cur->y, subglyph->transform.yx ); - - ny = TT_MulFix( cur->x, subglyph->transform.xy ) + - TT_MulFix( cur->y, subglyph->transform.yy ); - - cur->x = nx; - cur->y = ny; - - nx = TT_MulFix( org->x, subglyph->transform.xx ) + - TT_MulFix( org->y, subglyph->transform.yx ); - - ny = TT_MulFix( org->x, subglyph->transform.xy ) + - TT_MulFix( org->y, subglyph->transform.yy ); - - org->x = nx; - org->y = ny; - - cur++; - org++; - } - } - - /* adjust counts */ - - num_elem_points = subglyph->zone.n_points; - - for ( k = 0; k < num_contours; k++ ) - subglyph2->zone.contours[k] += num_elem_points; - - subglyph->zone.n_points += num_points; - subglyph->zone.n_contours += num_contours; - - left_points -= num_points; - left_contours -= num_contours; - - if ( !(subglyph->element_flag & ARGS_ARE_XY_VALUES) ) - { - /* move second glyph according to control points */ - /* the attach points are relative to the specific component */ - - u = (UShort)subglyph->arg1; - v = (UShort)subglyph->arg2; - - if ( u >= num_elem_points || - v >= num_points ) - { - error = TT_Err_Invalid_Composite; - goto Fail; - } - - /* adjust count */ - v += num_elem_points; - - x = subglyph->zone.cur[u].x - subglyph->zone.cur[v].x; - y = subglyph->zone.cur[u].y - subglyph->zone.cur[v].y; - } - else - { - /* apply offset */ - - x = subglyph->transform.ox; - y = subglyph->transform.oy; - - if ( load_flags & TTLOAD_SCALE_GLYPH ) - { - x = Scale_X( &exec->metrics, x ); - y = Scale_Y( &exec->metrics, y ); - - if ( subglyph->element_flag & ROUND_XY_TO_GRID ) - { - x = (x+32) & -64; - y = (y+32) & -64; - } - } - } - - translate_array( num_points, subglyph2->zone.cur, x, y ); - - cur_to_org( num_points, &subglyph2->zone ); - - num_points = subglyph->zone.n_points; - num_contours = subglyph->zone.n_contours; - - /* check for last component */ - - if ( FILE_Seek( subglyph->file_offset ) ) - goto Fail_File; - - if ( subglyph->element_flag & MORE_COMPONENTS ) - phase = Load_Composite; - else - { - error = Load_Composite_End( num_points, - num_contours, - exec, - subglyph, - load_flags, - stream ); - if ( error ) - goto Fail; - - phase = Load_End; - } - } - else - phase = Load_Exit; - - break; - - - case Load_Exit: - break; - } - } - - /* finally, copy the points arrays to the glyph object */ - - exec->pts = base_pts; - - for ( u = 0; u < num_points + 2; u++ ) - { - glyph->outline.points[u] = exec->pts.cur[u]; - glyph->outline.flags [u] = exec->pts.touch[u]; - } - - for ( k = 0; k < num_contours; k++ ) - glyph->outline.contours[k] = exec->pts.contours[k]; - - glyph->outline.n_points = num_points; - glyph->outline.n_contours = num_contours; - glyph->outline.second_pass = TRUE; - - /* translate array so that (0,0) is the glyph's origin */ - translate_array( num_points + 2, - glyph->outline.points, - -subglyph->pp1.x, - 0 ); - - TT_Get_Outline_BBox( &glyph->outline, &glyph->metrics.bbox ); - - if ( subglyph->is_hinted ) - { - /* grid-fit the bounding box */ - glyph->metrics.bbox.xMin &= -64; - glyph->metrics.bbox.yMin &= -64; - glyph->metrics.bbox.xMax = (glyph->metrics.bbox.xMax+63) & -64; - glyph->metrics.bbox.yMax = (glyph->metrics.bbox.yMax+63) & -64; - } - - /* get the device-independent scaled horizontal metrics */ - /* take care of fixed-pitch fonts... */ - { - TT_Pos left_bearing; - TT_Pos advance; - - - left_bearing = subglyph->metrics.horiBearingX; - advance = subglyph->metrics.horiAdvance; - - if ( face->postscript.isFixedPitch ) - advance = face->horizontalHeader.advance_Width_Max; - - if ( load_flags & TTLOAD_SCALE_GLYPH ) - { - left_bearing = Scale_X( &exec->metrics, left_bearing ); - advance = Scale_X( &exec->metrics, advance ); - } - - glyph->metrics.linearHoriBearingX = left_bearing; - glyph->metrics.linearHoriAdvance = advance; - } - - glyph->metrics.horiBearingX = glyph->metrics.bbox.xMin; - glyph->metrics.horiBearingY = glyph->metrics.bbox.yMax; - glyph->metrics.horiAdvance = subglyph->pp2.x - subglyph->pp1.x; - - /* Now take care of vertical metrics. In the case where there is */ - /* no vertical information within the font (relatively common), make */ - /* up some metrics `by hand' ... */ - - { - Short top_bearing; /* vertical top side bearing (EM units) */ - UShort advance_height; /* vertical advance height (EM units) */ - - TT_Pos left; /* scaled vertical left side bearing */ - TT_Pos orig_top; /* scaled original vertical top side bearing */ - TT_Pos top; /* scaled vertical top side bearing */ - TT_Pos advance; /* scaled vertical advance height */ - - - /* Get the unscaled `tsb' and `ah' values */ - if ( face->verticalInfo && - face->verticalHeader.number_Of_VMetrics > 0 ) - { - /* Don't assume that both the vertical header and vertical */ - /* metrics are present in the same font :-) */ - - TT_Get_Metrics( (TT_Horizontal_Header*)&face->verticalHeader, - glyph_index, - &top_bearing, - &advance_height ); - } - else - { - - /* Make up the distances from the horizontal header.. */ - - /* NOTE: The OS/2 values are the only `portable' ones, */ - /* which is why we use them... */ - /* */ - /* NOTE2: The sTypoDescender is negative, which is why */ - /* we compute the baseline-to-baseline distance */ - /* here with : */ - /* ascender - descender + linegap */ - /* */ - -/* XXX What happens here with these Apple fonts without OS/2 table ? */ - - top_bearing = (Short) (face->os2.sTypoLineGap / 2); - advance_height = (UShort)(face->os2.sTypoAscender - - face->os2.sTypoDescender + - face->os2.sTypoLineGap); - } - - /* We must adjust the top_bearing value from the bounding box */ - /* given in the glyph header to te bounding box calculated with */ - /* TT_Get_Outline_BBox() */ - - /* scale the metrics */ - if ( load_flags & TTLOAD_SCALE_GLYPH ) - { - orig_top = Scale_Y( &exec->metrics, top_bearing ); - top = Scale_Y( &exec->metrics, - top_bearing + subglyph->metrics.bbox.yMax ) - - glyph->metrics.bbox.yMax; - advance = Scale_Y( &exec->metrics, advance_height ); - } - else - { - orig_top = top_bearing; - top = top_bearing + subglyph->metrics.bbox.yMax - - glyph->metrics.bbox.yMax; - advance = advance_height; - } - - glyph->metrics.linearVertBearingY = orig_top; - glyph->metrics.linearVertAdvance = advance; - - /* XXX : for now, we have no better algo for the lsb, but it should */ - /* work ok.. */ - /* */ - left = ( glyph->metrics.bbox.xMin - glyph->metrics.bbox.xMax ) / 2; - - /* grid-fit them if necessary */ - if ( subglyph->is_hinted ) - { - left &= -64; - top = (top + 63) & -64; - advance = (advance + 32) & -64; - } - - glyph->metrics.vertBearingX = left; - glyph->metrics.vertBearingY = top; - glyph->metrics.vertAdvance = advance; - } - - /* Adjust advance width to the value contained in the hdmx table. */ - if ( !exec->face->postscript.isFixedPitch && instance && - subglyph->is_hinted ) - { - widths = Get_Advance_Widths( exec->face, - exec->instance->metrics.x_ppem ); - if ( widths ) - glyph->metrics.horiAdvance = widths[glyph_index] << 6; - } - - glyph->outline.dropout_mode = (Char)exec->GS.scan_type; - - error = TT_Err_Ok; - - Fail_File: - Fail: - DONE_Stream( stream ); - - Fin: - - /* reset the execution context */ - exec->pts = base_pts; - - if ( !instance || !instance->debug ) - Done_Context( exec ); - - return error; - } - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/ttgload.h b/Build/source/libs/freetype/freetype-1.5/lib/ttgload.h deleted file mode 100644 index 98e57ef8b79..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/ttgload.h +++ /dev/null @@ -1,51 +0,0 @@ -/******************************************************************* - * - * ttgload.h 1.0 - * - * TrueType Glyph Loader. - * - * Copyright 1996-2000 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - ******************************************************************/ - -#ifndef TTGLOAD_H -#define TTGLOAD_H - -#include "ttconfig.h" -#include "tttypes.h" -#include "ttobjs.h" - -#ifdef __cplusplus - extern "C" { -#endif - - - FT_INTERNAL_DEF( void ) - TT_Get_Metrics( TT_Horizontal_Header* header, - UShort index, - Short* bearing, - UShort* advance ); - - - FT_INTERNAL_DEF( TT_Error ) - Load_TrueType_Glyph( PInstance instance, - PGlyph glyph, - UShort glyph_index, - UShort load_flags ); - -#ifdef __cplusplus - } -#endif - - -#endif /* TTGLOAD_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/ttinterp.c b/Build/source/libs/freetype/freetype-1.5/lib/ttinterp.c deleted file mode 100644 index 3c991a5e130..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/ttinterp.c +++ /dev/null @@ -1,6681 +0,0 @@ -/******************************************************************* - * - * ttinterp.c 3.1 - * - * TrueType bytecode intepreter. - * - * Copyright 1996-2002 by - * David Turner, Robert Wilhelm, and Werner Lemberg - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - * - * Changes between 3.1 and 3.0: - * - * - A more relaxed version of the interpreter. It is now able to - * ignore errors like out-of-bound array access and writes in - * order to silently support broken glyphs (even if the results - * are not always pretty). - * - * Note that one can use the flag TTLOAD_PEDANTIC to force - * TrueType-compliant interpretation. - * - * - A big #if used to completely disable the interpreter, which - * is due to the Apple patents issue. - * - ******************************************************************/ - -#include "freetype.h" -#include "tttypes.h" -#include "ttdebug.h" -#include "ttcalc.h" -#include "ttmemory.h" -#include "ttinterp.h" - - -#ifndef TT_CONFIG_OPTION_BYTECODE_INTERPRETER - - FT_INTERNAL_FUNC( TT_Error ) - RunIns( EXEC_OP ) - { - /* do nothing - always successful */ - -#ifndef TT_CONFIG_OPTION_STATIC_INTERPRETER - /* make picky compilers happy */ - (void)exc; -#endif - return TT_Err_Ok; - } - -#else /* ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER */ - - -#ifdef DEBUG_INTERPRETER - /* The debugger uses a special version of the TrueType */ - /* interpreter, with some hooks and a simple user interface. */ - /* Here we declare the needed additions. */ -#include "ttdebug.h" - -/* Define the `getch()' function, used for get user inputs. */ - -#ifndef UNIX - -/* Outside Unix, we rely on getch() being defined by <conio.h>. */ -/* This has become a standard, coming from MS-DOS libraries, and */ -/* has been ported to OS/2, Win32, and perhaps others. */ -/* If it does not work for you, investigate the code for Unix */ -/* (here, and in test/fdebug.c). */ -#include <conio.h> -#if defined( _M_I86 ) - /* a recent compiler, which do not pollute name spaces... */ -#define getch(x) _getch(x) -#endif /* modern compiler */ - -#else /* !defined( UNIX ) */ - -/* On Unix systems, it is an alias for `getchar()', and the */ -/* debugger front end must ensure that the `stdin' file */ -/* descriptor is not in line-by-line input mode. */ -#define getch getchar - -#endif - -#endif /* DEBUG_INTEPRETER */ - - -/* required by the tracing mode */ -#undef TT_COMPONENT -#define TT_COMPONENT trace_interp - - -/* In order to detect infinite loops in the code, we set-up a */ -/* counter within the run loop. a singly stroke of interpretation */ -/* is now limited to a maximum number of opcodes defined below. */ -/* */ -#define MAX_RUNNABLE_OPCODES 1000000 - - -/******************************************************************/ -/* */ -/* There are two kinds of implementations there: */ -/* */ -/* a. static implementation: */ -/* */ -/* The current execution context is a static variable, which */ -/* fields are accessed directly by the interpreter during */ -/* execution. The context is named 'cur'. */ -/* */ -/* This version is non-reentrant, of course. */ -/* */ -/* */ -/* b. indirect implementation: */ -/* */ -/* The current execution context is passed to _each_ function */ -/* as its first argument, and each field is thus accessed */ -/* indirectly. */ -/* */ -/* This version is, however, fully re-entrant. */ -/* */ -/* */ -/* The idea is that an indirect implementation may be slower to */ -/* execute on the low-end processors that are used in some */ -/* systems (like 386's or even 486's). */ -/* */ -/* When the interpreter started, we had no idea of the time that */ -/* glyph hinting (i.e. executing instructions) could take in the */ -/* whole process of rendering a glyph, and a 10 to 30% */ -/* performance penalty on low-end systems didn't seem much of a */ -/* good idea. This question led us to provide two distinct */ -/* builds from a single source, with the use of macros (again). */ -/* */ -/* Now that the engine is working (and working really well!), it */ -/* seems that the greatest time-consuming factors are: file i/o, */ -/* glyph loading, rasterizing and _then_ glyph hinting! */ -/* */ -/* Tests performed with two versions of the 'fttimer' program */ -/* seem to indicate that hinting takes less than 5% of the */ -/* rendering process, which is dominated by glyph loading and */ -/* scan-line conversion by an high order of magnitude. */ -/* */ -/* As a consequence, the indirect implementation is now the */ -/* default, as its performance costs can be considered */ -/* negligible in our context. Note, however, that we kept the */ -/* same source with macros because: */ -/* */ -/* - the code is kept very close in design to the Pascal one */ -/* used for development. */ -/* */ -/* - it's much more readable that way! */ -/* */ -/* - it's still open to later experimentation and tuning. */ -/* */ -/* TT_CONFIG_OPTION_STATIC_INTERPRETER (in ft_conf.h) toggles */ -/* the use of the static interpreter. */ -/* */ - -#ifndef TT_CONFIG_OPTION_STATIC_INTERPRETER /* indirect implementation */ - -#define CUR (*exc) - -#else /* static implementation */ - -#define CUR cur - - static TExecution_Context cur; /* static exec. context variable */ - - /* Apparently, we have a _lot_ of direct indexing when accessing */ - /* the static `cur', which makes the code bigger (due to all the */ - /* four byte addresses). */ - -#endif /* !TT_CONFIG_OPTION_STATIC_INTERPRETER */ - - -/* A bunch of macros to save typing (and ease reading). */ - -#define INS_ARG EXEC_OPS PStorage args /* see ttobjs.h */ - -#define SKIP_Code() SkipCode( EXEC_ARG ) - -#define GET_ShortIns() GetShortIns( EXEC_ARG ) - -#define COMPUTE_Funcs() Compute_Funcs( EXEC_ARG ) - -#define NORMalize( x, y, v ) Normalize( EXEC_ARGS x, y, v ) - -#define SET_SuperRound( scale, flags ) \ - SetSuperRound( EXEC_ARGS scale, flags ) - -#define INS_Goto_CodeRange( range, ip ) \ - Ins_Goto_CodeRange( EXEC_ARGS range, ip ) - -#define CUR_Func_project( x, y ) CUR.func_project( EXEC_ARGS x, y ) -#define CUR_Func_move( z, p, d ) CUR.func_move( EXEC_ARGS z, p, d ) -#define CUR_Func_dualproj( x, y ) CUR.func_dualproj( EXEC_ARGS x, y ) -#define CUR_Func_freeProj( x, y ) CUR.func_freeProj( EXEC_ARGS x, y ) -#define CUR_Func_round( d, c ) CUR.func_round( EXEC_ARGS d, c ) - -#define CUR_Func_read_cvt( index ) \ - CUR.func_read_cvt( EXEC_ARGS index ) - -#define CUR_Func_write_cvt( index, val ) \ - CUR.func_write_cvt( EXEC_ARGS index, val ) - -#define CUR_Func_move_cvt( index, val ) \ - CUR.func_move_cvt( EXEC_ARGS index, val ) - -#define CURRENT_Ratio() Current_Ratio( EXEC_ARG ) -#define CURRENT_Ppem() Current_Ppem( EXEC_ARG ) - -#define CALC_Length() Calc_Length( EXEC_ARG ) - -#define INS_SxVTL( a, b, c, d ) Ins_SxVTL( EXEC_ARGS a, b, c, d ) - -#define COMPUTE_Point_Displacement( a, b, c, d ) \ - Compute_Point_Displacement( EXEC_ARGS a, b, c, d ) - -#define MOVE_Zp2_Point( a, b, c, t ) Move_Zp2_Point( EXEC_ARGS a, b, c, t ) - -#define CUR_Ppem() Cur_PPEM( EXEC_ARG ) - - /* Instruction dispatch function, as used by the interpreter */ - typedef void (*TInstruction_Function)( INS_ARG ); - -#define BOUNDS( x, n ) ( (TT_UInt)(x) >= (TT_UInt)(n) ) - - - -/*********************************************************************/ -/* */ -/* Before an opcode is executed, the interpreter verifies that */ -/* there are enough arguments on the stack, with the help of */ -/* the Pop_Push_Count table. */ -/* */ -/* For each opcode, the first column gives the number of arguments */ -/* that are popped from the stack; the second one gives the number */ -/* of those that are pushed in result. */ -/* */ -/* Note that for opcodes with a varying number of parameters, */ -/* either 0 or 1 arg is verified before execution, depending */ -/* on the nature of the instruction: */ -/* */ -/* - if the number of arguments is given by the bytecode */ -/* stream or the loop variable, 0 is chosen. */ -/* */ -/* - if the first argument is a count n that is followed */ -/* by arguments a1..an, then 1 is chosen. */ -/* */ - -#undef PACK -#define PACK( x, y ) ((x << 4) | y) - - static const Byte Pop_Push_Count[256] = - { - /* opcodes are gathered in groups of 16 */ - /* please keep the spaces as they are */ - - /* SVTCA y */ PACK( 0, 0 ), - /* SVTCA x */ PACK( 0, 0 ), - /* SPvTCA y */ PACK( 0, 0 ), - /* SPvTCA x */ PACK( 0, 0 ), - /* SFvTCA y */ PACK( 0, 0 ), - /* SFvTCA x */ PACK( 0, 0 ), - /* SPvTL // */ PACK( 2, 0 ), - /* SPvTL + */ PACK( 2, 0 ), - /* SFvTL // */ PACK( 2, 0 ), - /* SFvTL + */ PACK( 2, 0 ), - /* SPvFS */ PACK( 2, 0 ), - /* SFvFS */ PACK( 2, 0 ), - /* GPV */ PACK( 0, 2 ), - /* GFV */ PACK( 0, 2 ), - /* SFvTPv */ PACK( 0, 0 ), - /* ISECT */ PACK( 5, 0 ), - - /* SRP0 */ PACK( 1, 0 ), - /* SRP1 */ PACK( 1, 0 ), - /* SRP2 */ PACK( 1, 0 ), - /* SZP0 */ PACK( 1, 0 ), - /* SZP1 */ PACK( 1, 0 ), - /* SZP2 */ PACK( 1, 0 ), - /* SZPS */ PACK( 1, 0 ), - /* SLOOP */ PACK( 1, 0 ), - /* RTG */ PACK( 0, 0 ), - /* RTHG */ PACK( 0, 0 ), - /* SMD */ PACK( 1, 0 ), - /* ELSE */ PACK( 0, 0 ), - /* JMPR */ PACK( 1, 0 ), - /* SCvTCi */ PACK( 1, 0 ), - /* SSwCi */ PACK( 1, 0 ), - /* SSW */ PACK( 1, 0 ), - - /* DUP */ PACK( 1, 2 ), - /* POP */ PACK( 1, 0 ), - /* CLEAR */ PACK( 0, 0 ), - /* SWAP */ PACK( 2, 2 ), - /* DEPTH */ PACK( 0, 1 ), - /* CINDEX */ PACK( 1, 1 ), - /* MINDEX */ PACK( 1, 0 ), - /* AlignPTS */ PACK( 2, 0 ), - /* INS_$28 */ PACK( 0, 0 ), - /* UTP */ PACK( 1, 0 ), - /* LOOPCALL */ PACK( 2, 0 ), - /* CALL */ PACK( 1, 0 ), - /* FDEF */ PACK( 1, 0 ), - /* ENDF */ PACK( 0, 0 ), - /* MDAP[0] */ PACK( 1, 0 ), - /* MDAP[1] */ PACK( 1, 0 ), - - /* IUP[0] */ PACK( 0, 0 ), - /* IUP[1] */ PACK( 0, 0 ), - /* SHP[0] */ PACK( 0, 0 ), - /* SHP[1] */ PACK( 0, 0 ), - /* SHC[0] */ PACK( 1, 0 ), - /* SHC[1] */ PACK( 1, 0 ), - /* SHZ[0] */ PACK( 1, 0 ), - /* SHZ[1] */ PACK( 1, 0 ), - /* SHPIX */ PACK( 1, 0 ), - /* IP */ PACK( 0, 0 ), - /* MSIRP[0] */ PACK( 2, 0 ), - /* MSIRP[1] */ PACK( 2, 0 ), - /* AlignRP */ PACK( 0, 0 ), - /* RTDG */ PACK( 0, 0 ), - /* MIAP[0] */ PACK( 2, 0 ), - /* MIAP[1] */ PACK( 2, 0 ), - - /* NPushB */ PACK( 0, 0 ), - /* NPushW */ PACK( 0, 0 ), - /* WS */ PACK( 2, 0 ), - /* RS */ PACK( 1, 1 ), - /* WCvtP */ PACK( 2, 0 ), - /* RCvt */ PACK( 1, 1 ), - /* GC[0] */ PACK( 1, 1 ), - /* GC[1] */ PACK( 1, 1 ), - /* SCFS */ PACK( 2, 0 ), - /* MD[0] */ PACK( 2, 1 ), - /* MD[1] */ PACK( 2, 1 ), - /* MPPEM */ PACK( 0, 1 ), - /* MPS */ PACK( 0, 1 ), - /* FlipON */ PACK( 0, 0 ), - /* FlipOFF */ PACK( 0, 0 ), - /* DEBUG */ PACK( 1, 0 ), - - /* LT */ PACK( 2, 1 ), - /* LTEQ */ PACK( 2, 1 ), - /* GT */ PACK( 2, 1 ), - /* GTEQ */ PACK( 2, 1 ), - /* EQ */ PACK( 2, 1 ), - /* NEQ */ PACK( 2, 1 ), - /* ODD */ PACK( 1, 1 ), - /* EVEN */ PACK( 1, 1 ), - /* IF */ PACK( 1, 0 ), - /* EIF */ PACK( 0, 0 ), - /* AND */ PACK( 2, 1 ), - /* OR */ PACK( 2, 1 ), - /* NOT */ PACK( 1, 1 ), - /* DeltaP1 */ PACK( 1, 0 ), - /* SDB */ PACK( 1, 0 ), - /* SDS */ PACK( 1, 0 ), - - /* ADD */ PACK( 2, 1 ), - /* SUB */ PACK( 2, 1 ), - /* DIV */ PACK( 2, 1 ), - /* MUL */ PACK( 2, 1 ), - /* ABS */ PACK( 1, 1 ), - /* NEG */ PACK( 1, 1 ), - /* FLOOR */ PACK( 1, 1 ), - /* CEILING */ PACK( 1, 1 ), - /* ROUND[0] */ PACK( 1, 1 ), - /* ROUND[1] */ PACK( 1, 1 ), - /* ROUND[2] */ PACK( 1, 1 ), - /* ROUND[3] */ PACK( 1, 1 ), - /* NROUND[0] */ PACK( 1, 1 ), - /* NROUND[1] */ PACK( 1, 1 ), - /* NROUND[2] */ PACK( 1, 1 ), - /* NROUND[3] */ PACK( 1, 1 ), - - /* WCvtF */ PACK( 2, 0 ), - /* DeltaP2 */ PACK( 1, 0 ), - /* DeltaP3 */ PACK( 1, 0 ), - /* DeltaCn[0] */ PACK( 1, 0 ), - /* DeltaCn[1] */ PACK( 1, 0 ), - /* DeltaCn[2] */ PACK( 1, 0 ), - /* SROUND */ PACK( 1, 0 ), - /* S45Round */ PACK( 1, 0 ), - /* JROT */ PACK( 2, 0 ), - /* JROF */ PACK( 2, 0 ), - /* ROFF */ PACK( 0, 0 ), - /* INS_$7B */ PACK( 0, 0 ), - /* RUTG */ PACK( 0, 0 ), - /* RDTG */ PACK( 0, 0 ), - /* SANGW */ PACK( 1, 0 ), - /* AA */ PACK( 1, 0 ), - - /* FlipPT */ PACK( 0, 0 ), - /* FlipRgON */ PACK( 2, 0 ), - /* FlipRgOFF */ PACK( 2, 0 ), - /* INS_$83 */ PACK( 0, 0 ), - /* INS_$84 */ PACK( 0, 0 ), - /* ScanCTRL */ PACK( 1, 0 ), - /* SDVPTL[0] */ PACK( 2, 0 ), - /* SDVPTL[1] */ PACK( 2, 0 ), - /* GetINFO */ PACK( 1, 1 ), - /* IDEF */ PACK( 1, 0 ), - /* ROLL */ PACK( 3, 3 ), - /* MAX */ PACK( 2, 1 ), - /* MIN */ PACK( 2, 1 ), - /* ScanTYPE */ PACK( 1, 0 ), - /* InstCTRL */ PACK( 2, 0 ), - /* INS_$8F */ PACK( 0, 0 ), - - /* INS_$90 */ PACK( 0, 0 ), - /* INS_$91 */ PACK( 0, 0 ), - /* INS_$92 */ PACK( 0, 0 ), - /* INS_$93 */ PACK( 0, 0 ), - /* INS_$94 */ PACK( 0, 0 ), - /* INS_$95 */ PACK( 0, 0 ), - /* INS_$96 */ PACK( 0, 0 ), - /* INS_$97 */ PACK( 0, 0 ), - /* INS_$98 */ PACK( 0, 0 ), - /* INS_$99 */ PACK( 0, 0 ), - /* INS_$9A */ PACK( 0, 0 ), - /* INS_$9B */ PACK( 0, 0 ), - /* INS_$9C */ PACK( 0, 0 ), - /* INS_$9D */ PACK( 0, 0 ), - /* INS_$9E */ PACK( 0, 0 ), - /* INS_$9F */ PACK( 0, 0 ), - - /* INS_$A0 */ PACK( 0, 0 ), - /* INS_$A1 */ PACK( 0, 0 ), - /* INS_$A2 */ PACK( 0, 0 ), - /* INS_$A3 */ PACK( 0, 0 ), - /* INS_$A4 */ PACK( 0, 0 ), - /* INS_$A5 */ PACK( 0, 0 ), - /* INS_$A6 */ PACK( 0, 0 ), - /* INS_$A7 */ PACK( 0, 0 ), - /* INS_$A8 */ PACK( 0, 0 ), - /* INS_$A9 */ PACK( 0, 0 ), - /* INS_$AA */ PACK( 0, 0 ), - /* INS_$AB */ PACK( 0, 0 ), - /* INS_$AC */ PACK( 0, 0 ), - /* INS_$AD */ PACK( 0, 0 ), - /* INS_$AE */ PACK( 0, 0 ), - /* INS_$AF */ PACK( 0, 0 ), - - /* PushB[0] */ PACK( 0, 1 ), - /* PushB[1] */ PACK( 0, 2 ), - /* PushB[2] */ PACK( 0, 3 ), - /* PushB[3] */ PACK( 0, 4 ), - /* PushB[4] */ PACK( 0, 5 ), - /* PushB[5] */ PACK( 0, 6 ), - /* PushB[6] */ PACK( 0, 7 ), - /* PushB[7] */ PACK( 0, 8 ), - /* PushW[0] */ PACK( 0, 1 ), - /* PushW[1] */ PACK( 0, 2 ), - /* PushW[2] */ PACK( 0, 3 ), - /* PushW[3] */ PACK( 0, 4 ), - /* PushW[4] */ PACK( 0, 5 ), - /* PushW[5] */ PACK( 0, 6 ), - /* PushW[6] */ PACK( 0, 7 ), - /* PushW[7] */ PACK( 0, 8 ), - - /* MDRP[00] */ PACK( 1, 0 ), - /* MDRP[01] */ PACK( 1, 0 ), - /* MDRP[02] */ PACK( 1, 0 ), - /* MDRP[03] */ PACK( 1, 0 ), - /* MDRP[04] */ PACK( 1, 0 ), - /* MDRP[05] */ PACK( 1, 0 ), - /* MDRP[06] */ PACK( 1, 0 ), - /* MDRP[07] */ PACK( 1, 0 ), - /* MDRP[08] */ PACK( 1, 0 ), - /* MDRP[09] */ PACK( 1, 0 ), - /* MDRP[10] */ PACK( 1, 0 ), - /* MDRP[11] */ PACK( 1, 0 ), - /* MDRP[12] */ PACK( 1, 0 ), - /* MDRP[13] */ PACK( 1, 0 ), - /* MDRP[14] */ PACK( 1, 0 ), - /* MDRP[15] */ PACK( 1, 0 ), - - /* MDRP[16] */ PACK( 1, 0 ), - /* MDRP[17] */ PACK( 1, 0 ), - /* MDRP[18] */ PACK( 1, 0 ), - /* MDRP[19] */ PACK( 1, 0 ), - /* MDRP[20] */ PACK( 1, 0 ), - /* MDRP[21] */ PACK( 1, 0 ), - /* MDRP[22] */ PACK( 1, 0 ), - /* MDRP[23] */ PACK( 1, 0 ), - /* MDRP[24] */ PACK( 1, 0 ), - /* MDRP[25] */ PACK( 1, 0 ), - /* MDRP[26] */ PACK( 1, 0 ), - /* MDRP[27] */ PACK( 1, 0 ), - /* MDRP[28] */ PACK( 1, 0 ), - /* MDRP[29] */ PACK( 1, 0 ), - /* MDRP[30] */ PACK( 1, 0 ), - /* MDRP[31] */ PACK( 1, 0 ), - - /* MIRP[00] */ PACK( 2, 0 ), - /* MIRP[01] */ PACK( 2, 0 ), - /* MIRP[02] */ PACK( 2, 0 ), - /* MIRP[03] */ PACK( 2, 0 ), - /* MIRP[04] */ PACK( 2, 0 ), - /* MIRP[05] */ PACK( 2, 0 ), - /* MIRP[06] */ PACK( 2, 0 ), - /* MIRP[07] */ PACK( 2, 0 ), - /* MIRP[08] */ PACK( 2, 0 ), - /* MIRP[09] */ PACK( 2, 0 ), - /* MIRP[10] */ PACK( 2, 0 ), - /* MIRP[11] */ PACK( 2, 0 ), - /* MIRP[12] */ PACK( 2, 0 ), - /* MIRP[13] */ PACK( 2, 0 ), - /* MIRP[14] */ PACK( 2, 0 ), - /* MIRP[15] */ PACK( 2, 0 ), - - /* MIRP[16] */ PACK( 2, 0 ), - /* MIRP[17] */ PACK( 2, 0 ), - /* MIRP[18] */ PACK( 2, 0 ), - /* MIRP[19] */ PACK( 2, 0 ), - /* MIRP[20] */ PACK( 2, 0 ), - /* MIRP[21] */ PACK( 2, 0 ), - /* MIRP[22] */ PACK( 2, 0 ), - /* MIRP[23] */ PACK( 2, 0 ), - /* MIRP[24] */ PACK( 2, 0 ), - /* MIRP[25] */ PACK( 2, 0 ), - /* MIRP[26] */ PACK( 2, 0 ), - /* MIRP[27] */ PACK( 2, 0 ), - /* MIRP[28] */ PACK( 2, 0 ), - /* MIRP[29] */ PACK( 2, 0 ), - /* MIRP[30] */ PACK( 2, 0 ), - /* MIRP[31] */ PACK( 2, 0 ) - }; - - static const TT_Vector Null_Vector = {0,0}; - -#undef NULL_Vector -#define NULL_Vector (TT_Vector*)&Null_Vector - - -/******************************************************************* - * - * Function : Norm - * - * Description : Returns the norm (length) of a vector. - * - * Input : X, Y vector - * - * Output : Returns length in F26dot6. - * - *****************************************************************/ - - static TT_F26Dot6 Norm( TT_F26Dot6 X, TT_F26Dot6 Y ) - { - TT_Int64 T1, T2; - - - MUL_64( X, X, T1 ); - MUL_64( Y, Y, T2 ); - - ADD_64( T1, T2, T1 ); - - return (TT_F26Dot6)SQRT_64( T1 ); - } - - -/******************************************************************* - * - * Function : FUnits_To_Pixels - * - * Description : Scale a distance in FUnits to pixel coordinates. - * - * Input : Distance in FUnits - * - * Output : Distance in 26.6 format. - * - *****************************************************************/ - - static TT_F26Dot6 FUnits_To_Pixels( EXEC_OPS Short distance ) - { - return TT_MulDiv( distance, - CUR.metrics.scale1, - CUR.metrics.scale2 ); - } - - -/******************************************************************* - * - * Function : Current_Ratio - * - * Description : Return the current aspect ratio scaling factor - * depending on the projection vector's state and - * device resolutions. - * - * Input : None - * - * Output : Aspect ratio in 16.16 format, always <= 1.0 . - * - *****************************************************************/ - - static Long Current_Ratio( EXEC_OP ) - { - if ( CUR.metrics.ratio ) - return CUR.metrics.ratio; - - if ( CUR.GS.projVector.y == 0 ) - CUR.metrics.ratio = CUR.metrics.x_ratio; - - else if ( CUR.GS.projVector.x == 0 ) - CUR.metrics.ratio = CUR.metrics.y_ratio; - - else - { - Long x, y; - - - x = TT_MulDiv( CUR.GS.projVector.x, CUR.metrics.x_ratio, 0x4000 ); - y = TT_MulDiv( CUR.GS.projVector.y, CUR.metrics.y_ratio, 0x4000 ); - CUR.metrics.ratio = Norm( x, y ); - } - - return CUR.metrics.ratio; - } - - - static Long Current_Ppem( EXEC_OP ) - { - return TT_MulFix( CUR.metrics.ppem, CURRENT_Ratio() ); - } - - - static TT_F26Dot6 Read_CVT( EXEC_OPS ULong index ) - { - return CUR.cvt[index]; - } - - - static TT_F26Dot6 Read_CVT_Stretched( EXEC_OPS ULong index ) - { - return TT_MulFix( CUR.cvt[index], CURRENT_Ratio() ); - } - - - static void Write_CVT( EXEC_OPS ULong index, TT_F26Dot6 value ) - { - CUR.cvt[index] = value; - } - - static void Write_CVT_Stretched( EXEC_OPS ULong index, TT_F26Dot6 value ) - { - CUR.cvt[index] = TT_MulDiv( value, 0x10000, CURRENT_Ratio() ); - } - - - static void Move_CVT( EXEC_OPS ULong index, TT_F26Dot6 value ) - { - CUR.cvt[index] += value; - } - - static void Move_CVT_Stretched( EXEC_OPS ULong index, TT_F26Dot6 value ) - { - CUR.cvt[index] += TT_MulDiv( value, 0x10000, CURRENT_Ratio() ); - } - - -/****************************************************************** - * - * Function : Calc_Length - * - * Description : Computes the length in bytes of current opcode. - * - *****************************************************************/ - - static Bool Calc_Length( EXEC_OP ) - { - CUR.opcode = CUR.code[CUR.IP]; - - switch ( CUR.opcode ) - { - case 0x40: - if ( CUR.IP + 1 >= CUR.codeSize ) - return FAILURE; - - CUR.length = CUR.code[CUR.IP + 1] + 2; - break; - - case 0x41: - if ( CUR.IP + 1 >= CUR.codeSize ) - return FAILURE; - - CUR.length = CUR.code[CUR.IP + 1] * 2 + 2; - break; - - case 0xB0: - case 0xB1: - case 0xB2: - case 0xB3: - case 0xB4: - case 0xB5: - case 0xB6: - case 0xB7: - CUR.length = CUR.opcode - 0xB0 + 2; - break; - - case 0xB8: - case 0xB9: - case 0xBA: - case 0xBB: - case 0xBC: - case 0xBD: - case 0xBE: - case 0xBF: - CUR.length = (CUR.opcode - 0xB8) * 2 + 3; - break; - - default: - CUR.length = 1; - break; - } - - /* make sure result is in range */ - - if ( CUR.IP + CUR.length > CUR.codeSize ) - return FAILURE; - - return SUCCESS; - } - - -/******************************************************************* - * - * Function : GetShortIns - * - * Description : Returns a short integer taken from the instruction - * stream at address IP. - * - * Input : None - * - * Output : Short read at Code^[IP..IP+1] - * - * Notes : Called through the GET_ShortIns() macro. - * - *****************************************************************/ - - static Short GetShortIns( EXEC_OP ) - { - /* Reading a byte stream so there is no endianess (DaveP) */ - CUR.IP += 2; - return (Short)((CUR.code[CUR.IP - 2] << 8) + CUR.code[CUR.IP - 1]); - } - - -/******************************************************************* - * - * Function : Ins_Goto_CodeRange - * - * Description : Goes to a certain code range in the instruction - * stream. - * - * Input : aRange - * aIP - * - * Output : SUCCESS or FAILURE. - * - *****************************************************************/ - - static Bool Ins_Goto_CodeRange( EXEC_OPS Int aRange, ULong aIP ) - { - TCodeRange* WITH; - - - if ( aRange < 1 || aRange > 3 ) - { - CUR.error = TT_Err_Bad_Argument; - return FAILURE; - } - - WITH = &CUR.codeRangeTable[aRange - 1]; - - if ( WITH->Base == NULL ) /* invalid coderange */ - { - CUR.error = TT_Err_Invalid_CodeRange; - return FAILURE; - } - - /* NOTE: Because the last instruction of a program may be a CALL */ - /* which will return to the first byte *after* the code */ - /* range, we test for aIP <= Size, instead of aIP < Size. */ - - if ( aIP > WITH->Size ) - { - CUR.error = TT_Err_Code_Overflow; - return FAILURE; - } - - CUR.code = WITH->Base; - CUR.codeSize = WITH->Size; - CUR.IP = aIP; - CUR.curRange = aRange; - - return SUCCESS; - } - - -/******************************************************************* - * - * Function : Direct_Move - * - * Description : Moves a point by a given distance along the - * freedom vector. The point will be touched. - * - * Input : point index of point to move - * distance distance to apply - * zone affected glyph zone - * - * Output : None - * - *****************************************************************/ - - static void Direct_Move( EXEC_OPS PGlyph_Zone zone, - UShort point, - TT_F26Dot6 distance ) - { - TT_F26Dot6 v; - - - v = CUR.GS.freeVector.x; - - if ( v != 0 ) - { - zone->cur[point].x += TT_MulDiv( distance, - v * 0x10000L, - CUR.F_dot_P ); - - zone->touch[point] |= TT_Flag_Touched_X; - } - - v = CUR.GS.freeVector.y; - - if ( v != 0 ) - { - zone->cur[point].y += TT_MulDiv( distance, - v * 0x10000L, - CUR.F_dot_P ); - - zone->touch[point] |= TT_Flag_Touched_Y; - } - } - - -/******************************************************************/ -/* */ -/* The following versions are used whenever both vectors are both */ -/* along one of the coordinate unit vectors, i.e. in 90% cases. */ -/* */ -/******************************************************************/ - -/******************************************************************* - * Direct_Move_X - * - *******************************************************************/ - - static void Direct_Move_X( EXEC_OPS PGlyph_Zone zone, - UShort point, - TT_F26Dot6 distance ) - { - zone->cur[point].x += distance; - zone->touch[point] |= TT_Flag_Touched_X; - } - - -/******************************************************************* - * Direct_Move_Y - * - *******************************************************************/ - - static void Direct_Move_Y( EXEC_OPS PGlyph_Zone zone, - UShort point, - TT_F26Dot6 distance ) - { - zone->cur[point].y += distance; - zone->touch[point] |= TT_Flag_Touched_Y; - } - - -/******************************************************************* - * - * Function : Round_None - * - * Description : Does not round, but adds engine compensation. - * - * Input : distance : distance to round - * compensation : engine compensation - * - * Output : rounded distance. - * - * NOTE : The spec says very few about the relationship between - * rounding and engine compensation. However, it seems - * from the description of super round that we should - * should add the compensation before rounding. - * - ******************************************************************/ - - static TT_F26Dot6 Round_None( EXEC_OPS TT_F26Dot6 distance, - TT_F26Dot6 compensation ) - { - TT_F26Dot6 val; - - - if ( distance >= 0 ) - { - val = distance + compensation; - if ( val < 0 ) - val = 0; - } - else { - val = distance - compensation; - if ( val > 0 ) - val = 0; - } - - return val; - } - - -/******************************************************************* - * - * Function : Round_To_Grid - * - * Description : Rounds value to grid after adding engine - * compensation - * - * Input : distance : distance to round - * compensation : engine compensation - * - * Output : Rounded distance. - * - *****************************************************************/ - - static TT_F26Dot6 Round_To_Grid( EXEC_OPS TT_F26Dot6 distance, - TT_F26Dot6 compensation ) - { - TT_F26Dot6 val; - - - if ( distance >= 0 ) - { - val = distance + compensation + 32; - if ( val > 0 ) - val &= ~63; - else - val = 0; - } - else - { - val = -( (compensation - distance + 32) & (-64) ); - if ( val > 0 ) - val = 0; - } - - return val; - } - - -/******************************************************************* - * - * Function : Round_To_Half_Grid - * - * Description : Rounds value to half grid after adding engine - * compensation. - * - * Input : distance : distance to round - * compensation : engine compensation - * - * Output : Rounded distance. - * - *****************************************************************/ - - static TT_F26Dot6 Round_To_Half_Grid( EXEC_OPS TT_F26Dot6 distance, - TT_F26Dot6 compensation ) - { - TT_F26Dot6 val; - - - if ( distance >= 0 ) - { - val = ((distance + compensation) & (-64)) + 32; - if ( val < 0 ) - val = 0; - } - else - { - val = -( ((compensation - distance) & (-64)) + 32 ); - if ( val > 0 ) - val = 0; - } - - return val; - } - - -/******************************************************************* - * - * Function : Round_Down_To_Grid - * - * Description : Rounds value down to grid after adding engine - * compensation. - * - * Input : distance : distance to round - * compensation : engine compensation - * - * Output : Rounded distance. - * - *****************************************************************/ - - static TT_F26Dot6 Round_Down_To_Grid( EXEC_OPS TT_F26Dot6 distance, - TT_F26Dot6 compensation ) - { - TT_F26Dot6 val; - - - if ( distance >= 0 ) - { - val = distance + compensation; - if ( val > 0 ) - val &= ~63; - else - val = 0; - } - else - { - val = -( (compensation - distance) & (-64) ); - if ( val > 0 ) - val = 0; - } - - return val; - } - - -/******************************************************************* - * - * Function : Round_Up_To_Grid - * - * Description : Rounds value up to grid after adding engine - * compensation. - * - * Input : distance : distance to round - * compensation : engine compensation - * - * Output : Rounded distance. - * - *****************************************************************/ - - static TT_F26Dot6 Round_Up_To_Grid( EXEC_OPS TT_F26Dot6 distance, - TT_F26Dot6 compensation ) - { - TT_F26Dot6 val; - - - if ( distance >= 0 ) - { - val = distance + compensation + 63; - if ( val > 0 ) - val &= ~63; - else - val = 0; - } - else - { - val = -( (compensation - distance + 63) & (-64) ); - if ( val > 0 ) - val = 0; - } - - return val; - } - - -/******************************************************************* - * - * Function : Round_To_Double_Grid - * - * Description : Rounds value to double grid after adding engine - * compensation. - * - * Input : distance : distance to round - * compensation : engine compensation - * - * Output : Rounded distance. - * - *****************************************************************/ - - static TT_F26Dot6 Round_To_Double_Grid( EXEC_OPS TT_F26Dot6 distance, - TT_F26Dot6 compensation ) - { - TT_F26Dot6 val; - - - if ( distance >= 0 ) - { - val = distance + compensation + 16; - if ( val > 0 ) - val &= ~31; - else - val = 0; - } - else - { - val = -( (compensation - distance + 16) & (-32) ); - if ( val > 0 ) - val = 0; - } - - return val; - } - - -/******************************************************************* - * - * Function : Round_Super - * - * Description : Super-rounds value to grid after adding engine - * compensation. - * - * Input : distance : distance to round - * compensation : engine compensation - * - * Output : Rounded distance. - * - * NOTE : The spec says very few about the relationship between - * rounding and engine compensation. However, it seems - * from the description of super round that we should - * should add the compensation before rounding. - * - *****************************************************************/ - - static TT_F26Dot6 Round_Super( EXEC_OPS TT_F26Dot6 distance, - TT_F26Dot6 compensation ) - { - TT_F26Dot6 val; - - - if ( distance >= 0 ) - { - val = (distance - CUR.phase + CUR.threshold + compensation) & - (-CUR.period); - if ( val < 0 ) - val = 0; - val += CUR.phase; - } - else - { - val = -( (CUR.threshold - CUR.phase - distance + compensation) & - (-CUR.period) ); - if ( val > 0 ) - val = 0; - val -= CUR.phase; - } - - return val; - } - - -/******************************************************************* - * - * Function : Round_Super_45 - * - * Description : Super-rounds value to grid after adding engine - * compensation. - * - * Input : distance : distance to round - * compensation : engine compensation - * - * Output : Rounded distance. - * - * NOTE : There is a separate function for Round_Super_45 as we - * may need a greater precision. - * - *****************************************************************/ - - static TT_F26Dot6 Round_Super_45( EXEC_OPS TT_F26Dot6 distance, - TT_F26Dot6 compensation ) - { - TT_F26Dot6 val; - - - if ( distance >= 0 ) - { - val = ( (distance - CUR.phase + CUR.threshold + compensation) / - CUR.period ) * CUR.period; - if ( val < 0 ) - val = 0; - val += CUR.phase; - } - else - { - val = -( ( (CUR.threshold - CUR.phase - distance + compensation) / - CUR.period ) * CUR.period ); - if ( val > 0 ) - val = 0; - val -= CUR.phase; - } - - return val; - } - - -/******************************************************************* - * Compute_Round - * - *****************************************************************/ - - static void Compute_Round( EXEC_OPS Byte round_mode ) - { - switch ( round_mode ) - { - case TT_Round_Off: - CUR.func_round = (TRound_Function)Round_None; - break; - - case TT_Round_To_Grid: - CUR.func_round = (TRound_Function)Round_To_Grid; - break; - - case TT_Round_Up_To_Grid: - CUR.func_round = (TRound_Function)Round_Up_To_Grid; - break; - - case TT_Round_Down_To_Grid: - CUR.func_round = (TRound_Function)Round_Down_To_Grid; - break; - - case TT_Round_To_Half_Grid: - CUR.func_round = (TRound_Function)Round_To_Half_Grid; - break; - - case TT_Round_To_Double_Grid: - CUR.func_round = (TRound_Function)Round_To_Double_Grid; - break; - - case TT_Round_Super: - CUR.func_round = (TRound_Function)Round_Super; - break; - - case TT_Round_Super_45: - CUR.func_round = (TRound_Function)Round_Super_45; - break; - } - } - - -/******************************************************************* - * - * Function : SetSuperRound - * - * Description : Sets Super Round parameters. - * - * Input : GridPeriod Grid period - * selector SROUND opcode - * - * Output : None. - * - *****************************************************************/ - - static void SetSuperRound( EXEC_OPS TT_F26Dot6 GridPeriod, - Long selector ) - { - switch ( (Int)(selector & 0xC0) ) - { - case 0: - CUR.period = GridPeriod / 2; - break; - - case 0x40: - CUR.period = GridPeriod; - break; - - case 0x80: - CUR.period = GridPeriod * 2; - break; - - /* This opcode is reserved, but... */ - - case 0xC0: - CUR.period = GridPeriod; - break; - } - - switch ( (Int)(selector & 0x30) ) - { - case 0: - CUR.phase = 0; - break; - - case 0x10: - CUR.phase = CUR.period / 4; - break; - - case 0x20: - CUR.phase = CUR.period / 2; - break; - - case 0x30: - CUR.phase = GridPeriod * 3 / 4; - break; - } - - if ( (selector & 0x0F) == 0 ) - CUR.threshold = CUR.period - 1; - else - CUR.threshold = ( (Int)(selector & 0x0F) - 4 ) * CUR.period / 8; - - CUR.period /= 256; - CUR.phase /= 256; - CUR.threshold /= 256; - } - - -/******************************************************************* - * - * Function : Project - * - * Description : Computes the projection of vector given by (v2-v1) - * along the current projection vector. - * - * Input : v1, v2 input vector - * - * Output : Returns distance in F26dot6 format. - * - *****************************************************************/ - - static TT_F26Dot6 Project( EXEC_OPS TT_Vector* v1, - TT_Vector* v2 ) - { - TT_Int64 T1, T2; - - - MUL_64( v1->x - v2->x, CUR.GS.projVector.x, T1 ); - MUL_64( v1->y - v2->y, CUR.GS.projVector.y, T2 ); - - ADD_64( T1, T2, T1 ); - - return (TT_F26Dot6)DIV_64( T1, 0x4000L ); - } - - -/******************************************************************* - * - * Function : Dual_Project - * - * Description : Computes the projection of the vector given by - * (v2-v1) along the current dual vector. - * - * Input : v1, v2 input vector - * - * Output : Returns distance in F26dot6 format. - * - *****************************************************************/ - - static TT_F26Dot6 Dual_Project( EXEC_OPS TT_Vector* v1, - TT_Vector* v2 ) - { - TT_Int64 T1, T2; - - - MUL_64( v1->x - v2->x, CUR.GS.dualVector.x, T1 ); - MUL_64( v1->y - v2->y, CUR.GS.dualVector.y, T2 ); - - ADD_64( T1, T2, T1 ); - - return (TT_F26Dot6)DIV_64( T1, 0x4000L ); - } - - -/******************************************************************* - * - * Function : Free_Project - * - * Description : Computes the projection of the vector given by - * (v2-v1) along the current freedom vector. - * - * Input : v1, v2 input vector - * - * Output : Returns distance in F26dot6 format. - * - *****************************************************************/ - - static TT_F26Dot6 Free_Project( EXEC_OPS TT_Vector* v1, - TT_Vector* v2 ) - { - TT_Int64 T1, T2; - - - MUL_64( v1->x - v2->x, CUR.GS.freeVector.x, T1 ); - MUL_64( v1->y - v2->y, CUR.GS.freeVector.y, T2 ); - - ADD_64( T1, T2, T1 ); - - return (TT_F26Dot6)DIV_64( T1, 0x4000L ); - } - - -/******************************************************************* - * - * Function : Project_x - * - * Input : Vx, Vy input vector - * - * Output : Returns Vx. - * - * Note : Used as a dummy function. - * - *****************************************************************/ - - static TT_F26Dot6 Project_x( EXEC_OPS TT_Vector* v1, - TT_Vector* v2 ) - { - return (v1->x - v2->x); - } - - -/******************************************************************* - * - * Function : Project_y - * - * Input : Vx, Vy input vector - * - * Output : Returns Vy. - * - * Note : Used as a dummy function. - * - *****************************************************************/ - - static TT_F26Dot6 Project_y( EXEC_OPS TT_Vector* v1, - TT_Vector* v2 ) - { - return (v1->y - v2->y); - } - - -/******************************************************************* - * - * Function : Compute_Funcs - * - * Description : Computes the projections and movement function - * pointers according to the current graphics state. - * - * Input : None - * - *****************************************************************/ - - static void Compute_Funcs( EXEC_OP ) - { - if ( CUR.GS.freeVector.x == 0x4000 ) - { - CUR.func_freeProj = (TProject_Function)Project_x; - CUR.F_dot_P = CUR.GS.projVector.x * 0x10000L; - } - else - { - if ( CUR.GS.freeVector.y == 0x4000 ) - { - CUR.func_freeProj = (TProject_Function)Project_y; - CUR.F_dot_P = CUR.GS.projVector.y * 0x10000L; - } - else - { - CUR.func_freeProj = (TProject_Function)Free_Project; - CUR.F_dot_P = (Long)CUR.GS.projVector.x * CUR.GS.freeVector.x * 4 + - (Long)CUR.GS.projVector.y * CUR.GS.freeVector.y * 4; - } - } - - CUR.cached_metrics = FALSE; - - if ( CUR.GS.projVector.x == 0x4000 ) - CUR.func_project = (TProject_Function)Project_x; - else - { - if ( CUR.GS.projVector.y == 0x4000 ) - CUR.func_project = (TProject_Function)Project_y; - else - CUR.func_project = (TProject_Function)Project; - } - - if ( CUR.GS.dualVector.x == 0x4000 ) - CUR.func_dualproj = (TProject_Function)Project_x; - else - { - if ( CUR.GS.dualVector.y == 0x4000 ) - CUR.func_dualproj = (TProject_Function)Project_y; - else - CUR.func_dualproj = (TProject_Function)Dual_Project; - } - - CUR.func_move = (TMove_Function)Direct_Move; - - if ( CUR.F_dot_P == 0x40000000L ) - { - if ( CUR.GS.freeVector.x == 0x4000 ) - CUR.func_move = (TMove_Function)Direct_Move_X; - else - { - if ( CUR.GS.freeVector.y == 0x4000 ) - CUR.func_move = (TMove_Function)Direct_Move_Y; - } - } - - /* at small sizes, F_dot_P can become too small, resulting */ - /* in overflows and 'spikes' in a number of glyphs like 'w'. */ - - if ( ABS( CUR.F_dot_P ) < 0x4000000L ) - CUR.F_dot_P = 0x40000000L; - - /* Disable cached aspect ratio */ - CUR.metrics.ratio = 0; - } - - -/******************************************************************* - * - * Function : Normalize - * - * Description : Norms a vector - * - * Input : Vx, Vy input vector - * R normed unit vector - * - * Output : Returns FAILURE if a vector parameter is zero. - * - *****************************************************************/ - - static Bool Normalize( EXEC_OPS TT_F26Dot6 Vx, - TT_F26Dot6 Vy, - TT_UnitVector* R ) - { - TT_F26Dot6 W; - Bool S1, S2; - - - if ( ABS( Vx ) < 0x10000L && ABS( Vy ) < 0x10000L ) - { - Vx *= 0x100; - Vy *= 0x100; - - W = Norm( Vx, Vy ); - - if ( W == 0 ) - { - /* UNDOCUMENTED! It seems that it's possible to try to */ - /* normalize the vector (0,0). Return immediately. */ - return SUCCESS; - } - - R->x = (TT_F2Dot14)TT_MulDiv( Vx, 0x4000L, W ); - R->y = (TT_F2Dot14)TT_MulDiv( Vy, 0x4000L, W ); - - return SUCCESS; - } - - W = Norm( Vx, Vy ); - - Vx = TT_MulDiv( Vx, 0x4000L, W ); - Vy = TT_MulDiv( Vy, 0x4000L, W ); - - W = Vx * Vx + Vy * Vy; - - /* Now, we want that Sqrt( W ) = 0x4000 */ - /* Or 0x1000000 <= W < 0x1004000 */ - - if ( Vx < 0 ) - { - Vx = -Vx; - S1 = TRUE; - } - else - S1 = FALSE; - - if ( Vy < 0 ) - { - Vy = -Vy; - S2 = TRUE; - } - else - S2 = FALSE; - - while ( W < 0x1000000L ) - { - /* We need to increase W, by a minimal amount */ - if ( Vx < Vy ) - Vx++; - else - Vy++; - - W = Vx * Vx + Vy * Vy; - } - - while ( W >= 0x1004000L ) - { - /* We need to decrease W, by a minimal amount */ - if ( Vx < Vy ) - Vx--; - else - Vy--; - - W = Vx * Vx + Vy * Vy; - } - - /* Note that in various cases, we can only */ - /* compute a Sqrt(W) of 0x3FFF, eg. Vx = Vy */ - - if ( S1 ) - Vx = -Vx; - - if ( S2 ) - Vy = -Vy; - - R->x = (TT_F2Dot14)Vx; /* Type conversion */ - R->y = (TT_F2Dot14)Vy; /* Type conversion */ - - return SUCCESS; - } - - -/**************************************************************** - * - * Opcodes - * - ****************************************************************/ - - - static Bool Ins_SxVTL( EXEC_OPS UShort aIdx1, - UShort aIdx2, - Int aOpc, - TT_UnitVector* Vec ) - { - Long A, B, C; - TT_Vector* p1; - TT_Vector* p2; - - - if ( BOUNDS( aIdx1, CUR.zp2.n_points ) || - BOUNDS( aIdx2, CUR.zp1.n_points ) ) - { - if ( CUR.pedantic_hinting ) - CUR.error = TT_Err_Invalid_Reference; - return FAILURE; - } - - p1 = CUR.zp1.cur + aIdx2; - p2 = CUR.zp2.cur + aIdx1; - - A = p1->x - p2->x; - B = p1->y - p2->y; - - if ( (aOpc & 1) != 0 ) - { - C = B; /* CounterClockwise rotation */ - B = A; - A = -C; - } - - NORMalize( A, B, Vec ); - return SUCCESS; - } - - -/* When not using the big switch statements, the interpreter uses a */ -/* call table defined later below in this source. Each opcode must */ -/* thus have a corresponding function, even trivial ones. */ -/* */ -/* They're all defined there. */ - -#define DO_SVTCA \ - { \ - Short A, B; \ - \ - \ - A = (Short)(CUR.opcode & 1) << 14; \ - B = A ^ (Short)0x4000; \ - \ - CUR.GS.freeVector.x = A; \ - CUR.GS.projVector.x = A; \ - CUR.GS.dualVector.x = A; \ - \ - CUR.GS.freeVector.y = B; \ - CUR.GS.projVector.y = B; \ - CUR.GS.dualVector.y = B; \ - \ - COMPUTE_Funcs(); \ - } - - -#define DO_SPVTCA \ - { \ - Short A, B; \ - \ - \ - A = (Short)(CUR.opcode & 1) << 14; \ - B = A ^ (Short)0x4000; \ - \ - CUR.GS.projVector.x = A; \ - CUR.GS.dualVector.x = A; \ - \ - CUR.GS.projVector.y = B; \ - CUR.GS.dualVector.y = B; \ - \ - COMPUTE_Funcs(); \ - } - - -#define DO_SFVTCA \ - { \ - Short A, B; \ - \ - \ - A = (Short)(CUR.opcode & 1) << 14; \ - B = A ^ (Short)0x4000; \ - \ - CUR.GS.freeVector.x = A; \ - CUR.GS.freeVector.y = B; \ - \ - COMPUTE_Funcs(); \ - } - - -#define DO_SPVTL \ - if ( INS_SxVTL( (UShort)args[1], \ - (UShort)args[0], \ - CUR.opcode, \ - &CUR.GS.projVector) == SUCCESS ) \ - { \ - CUR.GS.dualVector = CUR.GS.projVector; \ - COMPUTE_Funcs(); \ - } - - -#define DO_SFVTL \ - if ( INS_SxVTL( (UShort)args[1], \ - (UShort)args[0], \ - CUR.opcode, \ - &CUR.GS.freeVector) == SUCCESS ) \ - COMPUTE_Funcs(); - - -#define DO_SFVTPV \ - CUR.GS.freeVector = CUR.GS.projVector; \ - COMPUTE_Funcs(); - - -#define DO_SPVFS \ - { \ - Short S; \ - Long X, Y; \ - \ - \ - /* Only use low 16bits, then sign extend */ \ - S = (Short)args[1]; \ - Y = (Long)S; \ - S = (Short)args[0]; \ - X = (Long)S; \ - \ - NORMalize( X, Y, &CUR.GS.projVector ); \ - \ - CUR.GS.dualVector = CUR.GS.projVector; \ - COMPUTE_Funcs(); \ - } - - -#define DO_SFVFS \ - { \ - Short S; \ - Long X, Y; \ - \ - \ - /* Only use low 16bits, then sign extend */ \ - S = (Short)args[1]; \ - Y = (Long)S; \ - S = (Short)args[0]; \ - X = S; \ - \ - NORMalize( X, Y, &CUR.GS.freeVector ); \ - COMPUTE_Funcs(); \ - } - - -#define DO_GPV \ - args[0] = CUR.GS.projVector.x; \ - args[1] = CUR.GS.projVector.y; - - -#define DO_GFV \ - args[0] = CUR.GS.freeVector.x; \ - args[1] = CUR.GS.freeVector.y; - - -#define DO_SRP0 \ - CUR.GS.rp0 = (UShort)args[0]; - - -#define DO_SRP1 \ - CUR.GS.rp1 = (UShort)args[0]; - - -#define DO_SRP2 \ - CUR.GS.rp2 = (UShort)args[0]; - - -#define DO_RTHG \ - CUR.GS.round_state = TT_Round_To_Half_Grid; \ - CUR.func_round = (TRound_Function)Round_To_Half_Grid; - - -#define DO_RTG \ - CUR.GS.round_state = TT_Round_To_Grid; \ - CUR.func_round = (TRound_Function)Round_To_Grid; - - -#define DO_RTDG \ - CUR.GS.round_state = TT_Round_To_Double_Grid; \ - CUR.func_round = (TRound_Function)Round_To_Double_Grid; - - -#define DO_RUTG \ - CUR.GS.round_state = TT_Round_Up_To_Grid; \ - CUR.func_round = (TRound_Function)Round_Up_To_Grid; - - -#define DO_RDTG \ - CUR.GS.round_state = TT_Round_Down_To_Grid; \ - CUR.func_round = (TRound_Function)Round_Down_To_Grid; - - -#define DO_ROFF \ - CUR.GS.round_state = TT_Round_Off; \ - CUR.func_round = (TRound_Function)Round_None; - - -#define DO_SROUND \ - SET_SuperRound( 0x4000L, args[0] ); \ - CUR.GS.round_state = TT_Round_Super; \ - CUR.func_round = (TRound_Function)Round_Super; - - -#define DO_S45ROUND \ - SET_SuperRound( 0x2D41L, args[0] ); \ - CUR.GS.round_state = TT_Round_Super_45; \ - CUR.func_round = (TRound_Function)Round_Super_45; - - -#define DO_SLOOP \ - if ( args[0] < 0 ) \ - CUR.error = TT_Err_Bad_Argument; \ - else \ - CUR.GS.loop = args[0]; - - -#define DO_SMD \ - CUR.GS.minimum_distance = (TT_F26Dot6)args[0]; - - -#define DO_SCVTCI \ - CUR.GS.control_value_cutin = (TT_F26Dot6)args[0]; - - -#define DO_SSWCI \ - CUR.GS.single_width_cutin = (TT_F26Dot6)args[0]; - - - /* XXX : UNDOCUMENTED! or bug in the Windows engine? */ - /* */ - /* It seems that the value that is read here is */ - /* expressed in 16.16 format, rather than in */ - /* font units.. */ - /* */ -#define DO_SSW \ - CUR.GS.single_width_value = (TT_F26Dot6)(args[0] >> 10); - - -#define DO_FLIPON \ - CUR.GS.auto_flip = TRUE; - - -#define DO_FLIPOFF \ - CUR.GS.auto_flip = FALSE; - - -#define DO_SDB \ - CUR.GS.delta_base = (Short)args[0]; - - -#define DO_SDS \ - CUR.GS.delta_shift = (Short)args[0]; - - -#define DO_MD /* nothing */ - - -#define DO_MPPEM \ - args[0] = CURRENT_Ppem(); - - -#define DO_MPS \ - args[0] = CUR.metrics.pointSize; - - -#define DO_DUP \ - args[1] = args[0]; - - -#define DO_CLEAR \ - CUR.new_top = 0; - - -#define DO_SWAP \ - { \ - Long L; \ - \ - L = args[0]; \ - args[0] = args[1]; \ - args[1] = L; \ - } - - -#define DO_DEPTH \ - args[0] = CUR.top; - - -#define DO_CINDEX \ - { \ - Long L; \ - \ - \ - L = args[0]; \ - \ - if ( L <= 0 || L > CUR.args ) \ - CUR.error = TT_Err_Invalid_Reference; \ - else \ - args[0] = CUR.stack[CUR.args - L]; \ - } - - -#define DO_JROT \ - if ( args[1] != 0 ) \ - { \ - CUR.IP += args[0]; \ - CUR.step_ins = FALSE; \ - } - - -#define DO_JMPR \ - CUR.IP += args[0]; \ - CUR.step_ins = FALSE; - - -#define DO_JROF \ - if ( args[1] == 0 ) \ - { \ - CUR.IP += args[0]; \ - CUR.step_ins = FALSE; \ - } - - -#define DO_LT \ - args[0] = (args[0] < args[1]); - - -#define DO_LTEQ \ - args[0] = (args[0] <= args[1]); - - -#define DO_GT \ - args[0] = (args[0] > args[1]); - - -#define DO_GTEQ \ - args[0] = (args[0] >= args[1]); - - -#define DO_EQ \ - args[0] = (args[0] == args[1]); - - -#define DO_NEQ \ - args[0] = (args[0] != args[1]); - - -#define DO_ODD \ - args[0] = ( (CUR_Func_round( args[0], 0 ) & 127) == 64 ); - - -#define DO_EVEN \ - args[0] = ( (CUR_Func_round( args[0], 0 ) & 127) == 0 ); - - -#define DO_AND \ - args[0] = ( args[0] && args[1] ); - - -#define DO_OR \ - args[0] = ( args[0] || args[1] ); - - -#define DO_NOT \ - args[0] = !args[0]; - - -#define DO_ADD \ - args[0] += args[1]; - - -#define DO_SUB \ - args[0] -= args[1]; - - -#define DO_DIV \ - if ( args[1] == 0 ) \ - CUR.error = TT_Err_Divide_By_Zero; \ - else \ - args[0] = TT_MulDiv( args[0], 64L, args[1] ); - - -#define DO_MUL \ - args[0] = TT_MulDiv( args[0], args[1], 64L ); - - -#define DO_ABS \ - args[0] = ABS( args[0] ); - - -#define DO_NEG \ - args[0] = -args[0]; - - -#define DO_FLOOR \ - args[0] &= -64; - - -#define DO_CEILING \ - args[0] = (args[0] + 63) & (-64); - - -#define DO_RS \ - { \ - ULong I = (ULong)args[0]; \ - if ( BOUNDS( I, CUR.storeSize ) ) \ - { \ - if ( CUR.pedantic_hinting ) \ - { \ - ARRAY_BOUND_ERROR; \ - } \ - else \ - args[0] = 0; \ - } \ - else \ - args[0] = CUR.storage[I]; \ - } - - -#define DO_WS \ - { \ - ULong I = (ULong)args[0]; \ - if ( BOUNDS( I, CUR.storeSize ) ) \ - { \ - if ( CUR.pedantic_hinting ) \ - { \ - ARRAY_BOUND_ERROR; \ - } \ - } \ - else \ - CUR.storage[I] = args[1]; \ - } - - - -#define DO_RCVT \ - { \ - ULong I = (ULong)args[0]; \ - if ( BOUNDS( I, CUR.cvtSize ) ) \ - { \ - if ( CUR.pedantic_hinting ) \ - { \ - ARRAY_BOUND_ERROR; \ - } \ - else \ - args[0] = 0; \ - } \ - else \ - args[0] = CUR_Func_read_cvt(I); \ - } - - -#define DO_WCVTP \ - { \ - ULong I = (ULong)args[0]; \ - if ( BOUNDS( I, CUR.cvtSize ) ) \ - { \ - if ( CUR.pedantic_hinting ) \ - { \ - ARRAY_BOUND_ERROR; \ - } \ - } \ - else \ - CUR_Func_write_cvt( I, args[1] ); \ - } - - -#define DO_WCVTF \ - { \ - ULong I = (ULong)args[0]; \ - if ( BOUNDS( I, CUR.cvtSize ) ) \ - { \ - if ( CUR.pedantic_hinting ) \ - { \ - ARRAY_BOUND_ERROR; \ - } \ - } \ - else \ - CUR.cvt[I] = FUnits_To_Pixels( EXEC_ARGS (Short)args[1] ); \ - } - - -#define DO_DEBUG \ - CUR.error = TT_Err_Debug_OpCode; - - -#define DO_ROUND \ - args[0] = CUR_Func_round( args[0], \ - CUR.metrics.compensations[CUR.opcode-0x68] ); - - -#define DO_NROUND \ - args[0] = Round_None( EXEC_ARGS \ - args[0], \ - CUR.metrics.compensations[CUR.opcode - 0x6C] ); - - -#define DO_MAX \ - if ( args[1] > args[0] ) \ - args[0] = args[1]; - - -#define DO_MIN \ - if ( args[1] < args[0] ) \ - args[0] = args[1]; - - -#ifndef TT_CONFIG_OPTION_INTERPRETER_SWITCH - - -#undef ARRAY_BOUND_ERROR -#define ARRAY_BOUND_ERROR \ - { \ - CUR.error = TT_Err_Invalid_Reference; \ - return; \ - } - - -/*******************************************/ -/* SVTCA[a] : Set F and P vectors to axis */ -/* CodeRange : $00-$01 */ -/* Stack : --> */ - - static void Ins_SVTCA( INS_ARG ) - { - DO_SVTCA - } - - -/*******************************************/ -/* SPVTCA[a] : Set PVector to Axis */ -/* CodeRange : $02-$03 */ -/* Stack : --> */ - - static void Ins_SPVTCA( INS_ARG ) - { - DO_SPVTCA - } - - -/*******************************************/ -/* SFVTCA[a] : Set FVector to Axis */ -/* CodeRange : $04-$05 */ -/* Stack : --> */ - - static void Ins_SFVTCA( INS_ARG ) - { - DO_SFVTCA - } - -/*******************************************/ -/* SPVTL[a] : Set PVector to Line */ -/* CodeRange : $06-$07 */ -/* Stack : uint32 uint32 --> */ - - static void Ins_SPVTL( INS_ARG ) - { - DO_SPVTL - } - - -/*******************************************/ -/* SFVTL[a] : Set FVector to Line */ -/* CodeRange : $08-$09 */ -/* Stack : uint32 uint32 --> */ - - static void Ins_SFVTL( INS_ARG ) - { - DO_SFVTL - } - - -/*******************************************/ -/* SFVTPV[] : Set FVector to PVector */ -/* CodeRange : $0E */ -/* Stack : --> */ - - static void Ins_SFVTPV( INS_ARG ) - { - DO_SFVTPV - } - - -/*******************************************/ -/* SPVFS[] : Set PVector From Stack */ -/* CodeRange : $0A */ -/* Stack : f2.14 f2.14 --> */ - - static void Ins_SPVFS( INS_ARG ) - { - DO_SPVFS - } - - -/*******************************************/ -/* SFVFS[] : Set FVector From Stack */ -/* CodeRange : $0B */ -/* Stack : f2.14 f2.14 --> */ - - static void Ins_SFVFS( INS_ARG ) - { - DO_SFVFS - } - - -/*******************************************/ -/* GPV[] : Get Projection Vector */ -/* CodeRange : $0C */ -/* Stack : ef2.14 --> ef2.14 */ - - static void Ins_GPV( INS_ARG ) - { - DO_GPV - } - - -/*******************************************/ -/* GFV[] : Get Freedom Vector */ -/* CodeRange : $0D */ -/* Stack : ef2.14 --> ef2.14 */ - - static void Ins_GFV( INS_ARG ) - { - DO_GFV - } - - -/*******************************************/ -/* SRP0[] : Set Reference Point 0 */ -/* CodeRange : $10 */ -/* Stack : uint32 --> */ - - static void Ins_SRP0( INS_ARG ) - { - DO_SRP0 - } - - -/*******************************************/ -/* SRP1[] : Set Reference Point 1 */ -/* CodeRange : $11 */ -/* Stack : uint32 --> */ - - static void Ins_SRP1( INS_ARG ) - { - DO_SRP1 - } - - -/*******************************************/ -/* SRP2[] : Set Reference Point 2 */ -/* CodeRange : $12 */ -/* Stack : uint32 --> */ - - static void Ins_SRP2( INS_ARG ) - { - DO_SRP2 - } - - -/*******************************************/ -/* RTHG[] : Round To Half Grid */ -/* CodeRange : $19 */ -/* Stack : --> */ - - static void Ins_RTHG( INS_ARG ) - { - DO_RTHG - } - - -/*******************************************/ -/* RTG[] : Round To Grid */ -/* CodeRange : $18 */ -/* Stack : --> */ - - static void Ins_RTG( INS_ARG ) - { - DO_RTG - } - - -/*******************************************/ -/* RTDG[] : Round To Double Grid */ -/* CodeRange : $3D */ -/* Stack : --> */ - - static void Ins_RTDG( INS_ARG ) - { - DO_RTDG - } - - -/*******************************************/ -/* RUTG[] : Round Up To Grid */ -/* CodeRange : $7C */ -/* Stack : --> */ - - static void Ins_RUTG( INS_ARG ) - { - DO_RUTG - } - - -/*******************************************/ -/* RDTG[] : Round Down To Grid */ -/* CodeRange : $7D */ -/* Stack : --> */ - - static void Ins_RDTG( INS_ARG ) - { - DO_RDTG - } - - -/*******************************************/ -/* ROFF[] : Round OFF */ -/* CodeRange : $7A */ -/* Stack : --> */ - - static void Ins_ROFF( INS_ARG ) - { - DO_ROFF - } - - -/*******************************************/ -/* SROUND[] : Super ROUND */ -/* CodeRange : $76 */ -/* Stack : Eint8 --> */ - - static void Ins_SROUND( INS_ARG ) - { - DO_SROUND - } - - -/*******************************************/ -/* S45ROUND[]: Super ROUND 45 degrees */ -/* CodeRange : $77 */ -/* Stack : uint32 --> */ - - static void Ins_S45ROUND( INS_ARG ) - { - DO_S45ROUND - } - - -/*******************************************/ -/* SLOOP[] : Set LOOP variable */ -/* CodeRange : $17 */ -/* Stack : int32? --> */ - - static void Ins_SLOOP( INS_ARG ) - { - DO_SLOOP - } - - -/*******************************************/ -/* SMD[] : Set Minimum Distance */ -/* CodeRange : $1A */ -/* Stack : f26.6 --> */ - - static void Ins_SMD( INS_ARG ) - { - DO_SMD - } - - -/**********************************************/ -/* SCVTCI[] : Set Control Value Table Cut In */ -/* CodeRange : $1D */ -/* Stack : f26.6 --> */ - - static void Ins_SCVTCI( INS_ARG ) - { - DO_SCVTCI - } - - -/**********************************************/ -/* SSWCI[] : Set Single Width Cut In */ -/* CodeRange : $1E */ -/* Stack : f26.6 --> */ - - static void Ins_SSWCI( INS_ARG ) - { - DO_SSWCI - } - - -/**********************************************/ -/* SSW[] : Set Single Width */ -/* CodeRange : $1F */ -/* Stack : int32? --> */ - - static void Ins_SSW( INS_ARG ) - { - DO_SSW - } - - -/**********************************************/ -/* FLIPON[] : Set Auto_flip to On */ -/* CodeRange : $4D */ -/* Stack : --> */ - - static void Ins_FLIPON( INS_ARG ) - { - DO_FLIPON - } - - -/**********************************************/ -/* FLIPOFF[] : Set Auto_flip to Off */ -/* CodeRange : $4E */ -/* Stack : --> */ - - static void Ins_FLIPOFF( INS_ARG ) - { - DO_FLIPOFF - } - - -/**********************************************/ -/* SANGW[] : Set Angle Weight */ -/* CodeRange : $7E */ -/* Stack : uint32 --> */ - - static void Ins_SANGW( INS_ARG ) - { - /* instruction not supported anymore */ - } - - -/**********************************************/ -/* SDB[] : Set Delta Base */ -/* CodeRange : $5E */ -/* Stack : uint32 --> */ - - static void Ins_SDB( INS_ARG ) - { - DO_SDB - } - - -/**********************************************/ -/* SDS[] : Set Delta Shift */ -/* CodeRange : $5F */ -/* Stack : uint32 --> */ - - static void Ins_SDS( INS_ARG ) - { - DO_SDS - } - - -/**********************************************/ -/* MPPEM[] : Measure Pixel Per EM */ -/* CodeRange : $4B */ -/* Stack : --> Euint16 */ - - static void Ins_MPPEM( INS_ARG ) - { - DO_MPPEM - } - - -/**********************************************/ -/* MPS[] : Measure PointSize */ -/* CodeRange : $4C */ -/* Stack : --> Euint16 */ - - static void Ins_MPS( INS_ARG ) - { - DO_MPS - } - -/*******************************************/ -/* DUP[] : Duplicate top stack element */ -/* CodeRange : $20 */ -/* Stack : StkElt --> StkElt StkElt */ - - static void Ins_DUP( INS_ARG ) - { - DO_DUP - } - - -/*******************************************/ -/* POP[] : POPs the stack's top elt. */ -/* CodeRange : $21 */ -/* Stack : StkElt --> */ - - static void Ins_POP( INS_ARG ) - { - /* nothing to do */ - } - - -/*******************************************/ -/* CLEAR[] : Clear the entire stack */ -/* CodeRange : $22 */ -/* Stack : StkElt... --> */ - - static void Ins_CLEAR( INS_ARG ) - { - DO_CLEAR - } - - -/*******************************************/ -/* SWAP[] : Swap the top two elements */ -/* CodeRange : $23 */ -/* Stack : 2 * StkElt --> 2 * StkElt */ - - static void Ins_SWAP( INS_ARG ) - { - DO_SWAP - } - - -/*******************************************/ -/* DEPTH[] : return the stack depth */ -/* CodeRange : $24 */ -/* Stack : --> uint32 */ - - static void Ins_DEPTH( INS_ARG ) - { - DO_DEPTH - } - - -/*******************************************/ -/* CINDEX[] : copy indexed element */ -/* CodeRange : $25 */ -/* Stack : int32 --> StkElt */ - - static void Ins_CINDEX( INS_ARG ) - { - DO_CINDEX - } - - -/*******************************************/ -/* EIF[] : End IF */ -/* CodeRange : $59 */ -/* Stack : --> */ - - static void Ins_EIF( INS_ARG ) - { - /* nothing to do */ - } - - -/*******************************************/ -/* JROT[] : Jump Relative On True */ -/* CodeRange : $78 */ -/* Stack : StkElt int32 --> */ - - static void Ins_JROT( INS_ARG ) - { - DO_JROT - } - - -/*******************************************/ -/* JMPR[] : JuMP Relative */ -/* CodeRange : $1C */ -/* Stack : int32 --> */ - - static void Ins_JMPR( INS_ARG ) - { - DO_JMPR - } - - -/*******************************************/ -/* JROF[] : Jump Relative On False */ -/* CodeRange : $79 */ -/* Stack : StkElt int32 --> */ - - static void Ins_JROF( INS_ARG ) - { - DO_JROF - } - - -/*******************************************/ -/* LT[] : Less Than */ -/* CodeRange : $50 */ -/* Stack : int32? int32? --> bool */ - - static void Ins_LT( INS_ARG ) - { - DO_LT - } - - -/*******************************************/ -/* LTEQ[] : Less Than or EQual */ -/* CodeRange : $51 */ -/* Stack : int32? int32? --> bool */ - - static void Ins_LTEQ( INS_ARG ) - { - DO_LTEQ - } - - -/*******************************************/ -/* GT[] : Greater Than */ -/* CodeRange : $52 */ -/* Stack : int32? int32? --> bool */ - - static void Ins_GT( INS_ARG ) - { - DO_GT - } - - -/*******************************************/ -/* GTEQ[] : Greater Than or EQual */ -/* CodeRange : $53 */ -/* Stack : int32? int32? --> bool */ - - static void Ins_GTEQ( INS_ARG ) - { - DO_GTEQ - } - - -/*******************************************/ -/* EQ[] : EQual */ -/* CodeRange : $54 */ -/* Stack : StkElt StkElt --> bool */ - - static void Ins_EQ( INS_ARG ) - { - DO_EQ - } - - -/*******************************************/ -/* NEQ[] : Not EQual */ -/* CodeRange : $55 */ -/* Stack : StkElt StkElt --> bool */ - - static void Ins_NEQ( INS_ARG ) - { - DO_NEQ - } - - -/*******************************************/ -/* ODD[] : Odd */ -/* CodeRange : $56 */ -/* Stack : f26.6 --> bool */ - - static void Ins_ODD( INS_ARG ) - { - DO_ODD - } - - -/*******************************************/ -/* EVEN[] : Even */ -/* CodeRange : $57 */ -/* Stack : f26.6 --> bool */ - - static void Ins_EVEN( INS_ARG ) - { - DO_EVEN - } - - -/*******************************************/ -/* AND[] : logical AND */ -/* CodeRange : $5A */ -/* Stack : uint32 uint32 --> uint32 */ - - static void Ins_AND( INS_ARG ) - { - DO_AND - } - - -/*******************************************/ -/* OR[] : logical OR */ -/* CodeRange : $5B */ -/* Stack : uint32 uint32 --> uint32 */ - - static void Ins_OR( INS_ARG ) - { - DO_OR - } - - -/*******************************************/ -/* NOT[] : logical NOT */ -/* CodeRange : $5C */ -/* Stack : StkElt --> uint32 */ - - static void Ins_NOT( INS_ARG ) - { - DO_NOT - } - - -/*******************************************/ -/* ADD[] : ADD */ -/* CodeRange : $60 */ -/* Stack : f26.6 f26.6 --> f26.6 */ - - static void Ins_ADD( INS_ARG ) - { - DO_ADD - } - - -/*******************************************/ -/* SUB[] : SUBstract */ -/* CodeRange : $61 */ -/* Stack : f26.6 f26.6 --> f26.6 */ - - static void Ins_SUB( INS_ARG ) - { - DO_SUB - } - - -/*******************************************/ -/* DIV[] : DIVide */ -/* CodeRange : $62 */ -/* Stack : f26.6 f26.6 --> f26.6 */ - - static void Ins_DIV( INS_ARG ) - { - DO_DIV - } - - -/*******************************************/ -/* MUL[] : MULtiply */ -/* CodeRange : $63 */ -/* Stack : f26.6 f26.6 --> f26.6 */ - - static void Ins_MUL( INS_ARG ) - { - DO_MUL - } - - -/*******************************************/ -/* ABS[] : ABSolute value */ -/* CodeRange : $64 */ -/* Stack : f26.6 --> f26.6 */ - - static void Ins_ABS( INS_ARG ) - { - DO_ABS - } - - -/*******************************************/ -/* NEG[] : NEGate */ -/* CodeRange : $65 */ -/* Stack : f26.6 --> f26.6 */ - - static void Ins_NEG( INS_ARG ) - { - DO_NEG - } - - -/*******************************************/ -/* FLOOR[] : FLOOR */ -/* CodeRange : $66 */ -/* Stack : f26.6 --> f26.6 */ - - static void Ins_FLOOR( INS_ARG ) - { - DO_FLOOR - } - - -/*******************************************/ -/* CEILING[] : CEILING */ -/* CodeRange : $67 */ -/* f26.6 --> f26.6 */ - - static void Ins_CEILING( INS_ARG ) - { - DO_CEILING - } - -/*******************************************/ -/* RS[] : Read Store */ -/* CodeRange : $43 */ -/* Stack : uint32 --> uint32 */ - - static void Ins_RS( INS_ARG ) - { - DO_RS - } - - -/*******************************************/ -/* WS[] : Write Store */ -/* CodeRange : $42 */ -/* Stack : uint32 uint32 --> */ - - static void Ins_WS( INS_ARG ) - { - DO_WS - } - - -/*******************************************/ -/* WCVTP[] : Write CVT in Pixel units */ -/* CodeRange : $44 */ -/* Stack : f26.6 uint32 --> */ - - static void Ins_WCVTP( INS_ARG ) - { - DO_WCVTP - } - - -/*******************************************/ -/* WCVTF[] : Write CVT in FUnits */ -/* CodeRange : $70 */ -/* Stack : uint32 uint32 --> */ - - static void Ins_WCVTF( INS_ARG ) - { - DO_WCVTF - } - - -/*******************************************/ -/* RCVT[] : Read CVT */ -/* CodeRange : $45 */ -/* Stack : uint32 --> f26.6 */ - - static void Ins_RCVT( INS_ARG ) - { - DO_RCVT - } - - -/********************************************/ -/* AA[] : Adjust Angle */ -/* CodeRange : $7F */ -/* Stack : uint32 --> */ - - static void Ins_AA( INS_ARG ) - { - /* Intentional - no longer supported */ - } - - -/********************************************/ -/* DEBUG[] : DEBUG. Unsupported */ -/* CodeRange : $4F */ -/* Stack : uint32 --> */ - -/* NOTE : The original instruction pops a value from the stack */ - - static void Ins_DEBUG( INS_ARG ) - { - DO_DEBUG - } - -/*******************************************/ -/* ROUND[ab] : ROUND value */ -/* CodeRange : $68-$6B */ -/* Stack : f26.6 --> f26.6 */ - - static void Ins_ROUND( INS_ARG ) - { - DO_ROUND - } - -/*******************************************/ -/* NROUND[ab]: No ROUNDing of value */ -/* CodeRange : $6C-$6F */ -/* Stack : f26.6 --> f26.6 */ - - static void Ins_NROUND( INS_ARG ) - { - DO_NROUND - } - - - -/*******************************************/ -/* MAX[] : MAXimum */ -/* CodeRange : $68 */ -/* Stack : int32? int32? --> int32 */ - - static void Ins_MAX( INS_ARG ) - { - DO_MAX - } - - -/*******************************************/ -/* MIN[] : MINimum */ -/* CodeRange : $69 */ -/* Stack : int32? int32? --> int32 */ - - static void Ins_MIN( INS_ARG ) - { - DO_MIN - } - - -#endif /* !TT_CONFIG_OPTION_INTERPRETER_SWITCH */ - - -/* The following functions are called as is within the switch statement */ - -/*******************************************/ -/* MINDEX[] : move indexed element */ -/* CodeRange : $26 */ -/* Stack : int32? --> StkElt */ - - static void Ins_MINDEX( INS_ARG ) - { - Long L, K; - - - L = args[0]; - - if ( L <= 0 || L > CUR.args ) - { - CUR.error = TT_Err_Invalid_Reference; - return; - } - - K = CUR.stack[CUR.args - L]; - - MEM_Move( (&CUR.stack[CUR.args - L ]), - (&CUR.stack[CUR.args - L + 1]), - (L - 1) * sizeof ( Long ) ); - - CUR.stack[CUR.args - 1] = K; - } - - -/*******************************************/ -/* ROLL[] : roll top three elements */ -/* CodeRange : $8A */ -/* Stack : 3 * StkElt --> 3 * StkElt */ - - static void Ins_ROLL( INS_ARG ) - { - Long A, B, C; - - - A = args[2]; - B = args[1]; - C = args[0]; - - args[2] = C; - args[1] = A; - args[0] = B; - } - - - -/****************************************************************/ -/* */ -/* MANAGING THE FLOW OF CONTROL */ -/* */ -/* Instructions appear in the specs' order. */ -/* */ -/****************************************************************/ - - static Bool SkipCode( EXEC_OP ) - { - CUR.IP += CUR.length; - - if ( CUR.IP < CUR.codeSize ) - if ( CALC_Length() == SUCCESS ) - return SUCCESS; - - CUR.error = TT_Err_Code_Overflow; - return FAILURE; - } - - -/*******************************************/ -/* IF[] : IF test */ -/* CodeRange : $58 */ -/* Stack : StkElt --> */ - - static void Ins_IF( INS_ARG ) - { - Int nIfs; - Bool Out; - - - if ( args[0] != 0 ) - return; - - nIfs = 1; - Out = 0; - - do - { - if ( SKIP_Code() == FAILURE ) - return; - - switch ( CUR.opcode ) - { - case 0x58: /* IF */ - nIfs++; - break; - - case 0x1b: /* ELSE */ - Out = (nIfs == 1); - break; - - case 0x59: /* EIF */ - nIfs--; - Out = (nIfs == 0); - break; - } - } while ( Out == 0 ); - } - - -/*******************************************/ -/* ELSE[] : ELSE */ -/* CodeRange : $1B */ -/* Stack : --> */ - - static void Ins_ELSE( INS_ARG ) - { - Int nIfs; - - - nIfs = 1; - - do - { - if ( SKIP_Code() == FAILURE ) - return; - - switch ( CUR.opcode ) - { - case 0x58: /* IF */ - nIfs++; - break; - - case 0x59: /* EIF */ - nIfs--; - break; - } - } while ( nIfs != 0 ); - } - - -/****************************************************************/ -/* */ -/* DEFINING AND USING FUNCTIONS AND INSTRUCTIONS */ -/* */ -/* Instructions appear in the specs' order. */ -/* */ -/****************************************************************/ - - static PDefRecord Locate_FDef( EXEC_OPS Int n, Bool new_def ) - { - PDefRecord def; - UShort hash; - UShort cnt; - - /* The function table is interpreted as a simple hash table */ - /* with indexes computed modulo maxFDefs and the linear search */ - /* of free cells in the case of a collision. */ - /* Except for some old Apple fonts, all functions in a TrueType */ - /* font fit into 0..maxFDefs - 1 range and the lookup is */ - /* reduced to a single step. */ - - /* Minor optimization. */ - if ( !new_def && ( n < 0 || n > CUR.maxFunc ) ) - return NULL; - - for ( cnt = 0; cnt < CUR.maxFDefs; ++cnt ) - { - hash = ( (UShort)n + cnt ) % CUR.maxFDefs; - def = &CUR.FDefs[ hash ]; - if ( !def->Active ) - return new_def ? def : NULL; - if ( def->Opc == n ) - return def; - } - - /* The table is full and the entry has not been found. */ - return NULL; - } - - -/*******************************************/ -/* FDEF[] : Function DEFinition */ -/* CodeRange : $2C */ -/* Stack : uint32 --> */ - - static void Ins_FDEF( INS_ARG ) - { - Int n; - PDefRecord def; - - - /* check that there is enough room */ - if ( CUR.numFDefs >= CUR.maxFDefs ) - { - CUR.error = TT_Err_Too_Many_FDefs; - return; - } - - n = (Int)args[0]; - if ( n < 0 || n != (int)args[0] ) - { - /* Gotcha. Function index is uint32 according to the specs */ - /* but TDefRecord.Opc is defined as Int. We cannot store */ - /* the definition of this function. */ - CUR.error = TT_Err_Bad_Argument; - return; - } - - def = Locate_FDef( EXEC_ARGS n, TRUE ); - if ( !def ) - { - /* Oh, oh. Something is wrong. Locate_FDef should never fail here. */ - CUR.error = TT_Err_Too_Many_Ins; - return; - } - - /* Some font programs are broken enough to redefine functions! */ - if ( !def->Active ) - CUR.numFDefs++; - - def->Range = CUR.curRange; - def->Opc = n; - def->Start = CUR.IP + 1; - def->Active = TRUE; - - if ( n > CUR.maxFunc ) - CUR.maxFunc = n; - - /* Now skip the whole function definition. */ - /* We don't allow nested IDEFS & FDEFs. */ - - while ( SKIP_Code() == SUCCESS ) - { - switch ( CUR.opcode ) - { - case 0x89: /* IDEF */ - case 0x2c: /* FDEF */ - CUR.error = TT_Err_Nested_DEFS; - return; - case 0x2d: /* ENDF */ - return; - } - } - } - - -/*******************************************/ -/* ENDF[] : END Function definition */ -/* CodeRange : $2D */ -/* Stack : --> */ - - static void Ins_ENDF( INS_ARG ) - { - PCallRecord pRec; - - - if ( CUR.callTop <= 0 ) /* We encountered an ENDF without a call */ - { - CUR.error = TT_Err_ENDF_In_Exec_Stream; - return; - } - - CUR.callTop--; - - pRec = &CUR.callStack[CUR.callTop]; - - pRec->Cur_Count--; - - CUR.step_ins = FALSE; - - if ( pRec->Cur_Count > 0 ) - { - CUR.callTop++; - CUR.IP = pRec->Cur_Restart; - } - else - /* Loop through the current function */ - INS_Goto_CodeRange( pRec->Caller_Range, - pRec->Caller_IP ); - - /* Exit the current call frame. */ - - /* NOTE: When the last intruction of a program */ - /* is a CALL or LOOPCALL, the return address */ - /* is always out of the code range. This is */ - /* a valid address, and it's why we do not test */ - /* the result of Ins_Goto_CodeRange() here! */ - } - - -/*******************************************/ -/* CALL[] : CALL function */ -/* CodeRange : $2B */ -/* Stack : uint32? --> */ - - static void Ins_CALL( INS_ARG ) - { - Int n; - PDefRecord def; - PCallRecord pCrec; - - - n = (Int)args[0]; - def = Locate_FDef( EXEC_ARGS n, FALSE ); - if ( !def ) - { - CUR.error = TT_Err_Invalid_Reference; - return; - } - - /* check call stack */ - if ( CUR.callTop >= CUR.callSize ) - { - CUR.error = TT_Err_Stack_Overflow; - return; - } - - pCrec = CUR.callStack + CUR.callTop; - - pCrec->Caller_Range = CUR.curRange; - pCrec->Caller_IP = CUR.IP + 1; - pCrec->Cur_Count = 1; - pCrec->Cur_Restart = def->Start; - - CUR.callTop++; - - INS_Goto_CodeRange( def->Range, - def->Start ); - - CUR.step_ins = FALSE; - } - - -/*******************************************/ -/* LOOPCALL[]: LOOP and CALL function */ -/* CodeRange : $2A */ -/* Stack : uint32? Eint16? --> */ - - static void Ins_LOOPCALL( INS_ARG ) - { - Int n; - Long count; - PDefRecord def; - PCallRecord pTCR; - - - n = (Int)args[1]; - def = Locate_FDef( EXEC_ARGS n, FALSE ); - if ( !def ) - { - CUR.error = TT_Err_Invalid_Reference; - return; - } - - if ( CUR.callTop >= CUR.callSize ) - { - CUR.error = TT_Err_Stack_Overflow; - return; - } - - count = (Long)args[0]; - if ( count <= 0 ) - return; - - pTCR = &CUR.callStack[CUR.callTop]; - - pTCR->Caller_Range = CUR.curRange; - pTCR->Caller_IP = CUR.IP + 1; - pTCR->Cur_Count = count; - pTCR->Cur_Restart = def->Start; - - CUR.callTop++; - - INS_Goto_CodeRange( def->Range, - def->Start ); - - CUR.step_ins = FALSE; - } - - -/*******************************************/ -/* IDEF[] : Instruction DEFinition */ -/* CodeRange : $89 */ -/* Stack : Eint8 --> */ - - static void Ins_IDEF( INS_ARG ) - { - Byte opcode; - PDefRecord def; - PDefRecord limit; - - - opcode = (Byte)args[0]; - - /* First of all, look for the same instruction in our table */ - def = CUR.IDefs; - limit = def + CUR.numIDefs; - for ( ; def < limit; def++ ) - if ( def->Opc == opcode ) - break; - - if ( def == limit ) - { - /* check that there is enough room for a new instruction */ - if ( CUR.numIDefs >= CUR.maxIDefs ) - { - /* We could introduce a new error message (the same as for FDEF), */ - /* but we're too close from the release to change all the 'po' */ - /* files again... */ - CUR.error = TT_Err_Too_Many_Ins; - return; - } - CUR.numIDefs++; - } - - def->Opc = opcode; - def->Start = CUR.IP + 1; - def->Range = CUR.curRange; - def->Active = TRUE; - - if ( opcode > CUR.maxIns ) - CUR.maxIns = opcode; - - /* Now skip the whole function definition */ - /* We don't allow nested IDEFs & FDEFs. */ - - while ( SKIP_Code() == SUCCESS ) - { - switch ( CUR.opcode ) - { - case 0x89: /* IDEF */ - case 0x2c: /* FDEF */ - CUR.error = TT_Err_Nested_DEFS; - return; - case 0x2d: /* ENDF */ - return; - } - } - } - - -/****************************************************************/ -/* */ -/* PUSHING DATA ONTO THE INTERPRETER STACK */ -/* */ -/* Instructions appear in the specs' order. */ -/* */ -/****************************************************************/ - -/*******************************************/ -/* NPUSHB[] : PUSH N Bytes */ -/* CodeRange : $40 */ -/* Stack : --> uint32... */ - - static void Ins_NPUSHB( INS_ARG ) - { - UShort L, K; - - - L = (UShort)CUR.code[CUR.IP + 1]; - - if ( BOUNDS( L, CUR.stackSize + 1 - CUR.top ) ) - { - CUR.error = TT_Err_Stack_Overflow; - return; - } - - for ( K = 1; K <= L; K++ ) - args[K - 1] = CUR.code[CUR.IP + K + 1]; - - CUR.new_top += L; - } - - -/*******************************************/ -/* NPUSHW[] : PUSH N Words */ -/* CodeRange : $41 */ -/* Stack : --> int32... */ - - static void Ins_NPUSHW( INS_ARG ) - { - UShort L, K; - - - L = (UShort)CUR.code[CUR.IP + 1]; - - if ( BOUNDS( L, CUR.stackSize + 1 - CUR.top ) ) - { - CUR.error = TT_Err_Stack_Overflow; - return; - } - - CUR.IP += 2; - - for ( K = 0; K < L; K++ ) - args[K] = GET_ShortIns(); - - CUR.step_ins = FALSE; - CUR.new_top += L; - } - - -/*******************************************/ -/* PUSHB[abc]: PUSH Bytes */ -/* CodeRange : $B0-$B7 */ -/* Stack : --> uint32... */ - - static void Ins_PUSHB( INS_ARG ) - { - UShort L, K; - - - L = (UShort)CUR.opcode - 0xB0 + 1; - - if ( BOUNDS( L, CUR.stackSize + 1 - CUR.top ) ) - { - CUR.error = TT_Err_Stack_Overflow; - return; - } - - for ( K = 1; K <= L; K++ ) - args[K - 1] = CUR.code[CUR.IP + K]; - } - - -/*******************************************/ -/* PUSHW[abc]: PUSH Words */ -/* CodeRange : $B8-$BF */ -/* Stack : --> int32... */ - - static void Ins_PUSHW( INS_ARG ) - { - UShort L, K; - - - L = (UShort)CUR.opcode - 0xB8 + 1; - - if ( BOUNDS( L, CUR.stackSize + 1 - CUR.top ) ) - { - CUR.error = TT_Err_Stack_Overflow; - return; - } - - CUR.IP++; - - for ( K = 0; K < L; K++ ) - args[K] = GET_ShortIns(); - - CUR.step_ins = FALSE; - } - - - -/****************************************************************/ -/* */ -/* MANAGING THE GRAPHICS STATE */ -/* */ -/* Instructions appear in the specs' order. */ -/* */ -/****************************************************************/ - -/**********************************************/ -/* GC[a] : Get Coordinate projected onto */ -/* CodeRange : $46-$47 */ -/* Stack : uint32 --> f26.6 */ - -/* BULLSHIT: Measures from the original glyph must be taken */ -/* along the dual projection vector! */ - - static void Ins_GC( INS_ARG ) - { - ULong L; - TT_F26Dot6 R; - - - L = (ULong)args[0]; - - if ( BOUNDS( L, CUR.zp2.n_points ) ) - { - if ( CUR.pedantic_hinting ) - { - CUR.error = TT_Err_Invalid_Reference; - return; - } - else - R = 0; - } - else - { - if ( CUR.opcode & 1 ) - R = CUR_Func_dualproj( CUR.zp2.org + L, NULL_Vector ); - else - R = CUR_Func_project( CUR.zp2.cur + L, NULL_Vector ); - } - - args[0] = R; - } - - -/**********************************************/ -/* SCFS[] : Set Coordinate From Stack */ -/* CodeRange : $48 */ -/* Stack : f26.6 uint32 --> */ -/* */ -/* Formula: */ -/* */ -/* OA := OA + ( value - OA.p )/( f.p ) * f */ -/* */ - - static void Ins_SCFS( INS_ARG ) - { - Long K; - UShort L; - - - L = (UShort)args[0]; - - if ( BOUNDS( L, CUR.zp2.n_points ) ) - { - if ( CUR.pedantic_hinting ) - CUR.error = TT_Err_Invalid_Reference; - return; - } - - K = CUR_Func_project( CUR.zp2.cur + L, NULL_Vector ); - - CUR_Func_move( &CUR.zp2, L, args[1] - K ); - - /* not part of the specs, but here for safety */ - - if ( CUR.GS.gep2 == 0 ) - CUR.zp2.org[L] = CUR.zp2.cur[L]; - } - - -/**********************************************/ -/* MD[a] : Measure Distance */ -/* CodeRange : $49-$4A */ -/* Stack : uint32 uint32 --> f26.6 */ - -/* BULLSHIT: Measure taken in the original glyph must be along */ -/* the dual projection vector. */ - -/* Second BULLSHIT: Flag attributes are inverted! */ -/* 0 => measure distance in original outline */ -/* 1 => measure distance in grid-fitted outline */ - -/* Third one !! : zp0 - zp1, and not "zp2 - zp1" !!! */ -/* */ - - static void Ins_MD( INS_ARG ) - { - UShort K, L; - TT_F26Dot6 D; - - - K = (UShort)args[1]; - L = (UShort)args[0]; - - if( BOUNDS( L, CUR.zp0.n_points ) || - BOUNDS( K, CUR.zp1.n_points ) ) - { - if ( CUR.pedantic_hinting ) - { - CUR.error = TT_Err_Invalid_Reference; - return; - } - else - D = 0; - } - else - { - if ( CUR.opcode & 1 ) - D = CUR_Func_project( CUR.zp0.cur + L, CUR.zp1.cur + K ); - else - D = CUR_Func_dualproj( CUR.zp0.org + L, CUR.zp1.org + K ); - } - - args[0] = D; - } - - -/*******************************************/ -/* SDPVTL[a] : Set Dual PVector to Line */ -/* CodeRange : $86-$87 */ -/* Stack : uint32 uint32 --> */ - - static void Ins_SDPVTL( INS_ARG ) - { - Long A, B, C; - UShort p1, p2; /* was Int in pas type ERROR */ - - - p1 = (UShort)args[1]; - p2 = (UShort)args[0]; - - if ( BOUNDS( p2, CUR.zp1.n_points ) || - BOUNDS( p1, CUR.zp2.n_points ) ) - { - if ( CUR.pedantic_hinting ) - CUR.error = TT_Err_Invalid_Reference; - return; - } - - { - TT_Vector* v1 = CUR.zp1.org + p2; - TT_Vector* v2 = CUR.zp2.org + p1; - - - A = v1->x - v2->x; - B = v1->y - v2->y; - } - - if ( (CUR.opcode & 1) != 0 ) - { - C = B; /* CounterClockwise rotation */ - B = A; - A = -C; - } - - NORMalize( A, B, &CUR.GS.dualVector ); - - { - TT_Vector* v1 = CUR.zp1.cur + p2; - TT_Vector* v2 = CUR.zp2.cur + p1; - - - A = v1->x - v2->x; - B = v1->y - v2->y; - } - - if ( (CUR.opcode & 1) != 0 ) - { - C = B; /* CounterClockwise rotation */ - B = A; - A = -C; - } - - NORMalize( A, B, &CUR.GS.projVector ); - - COMPUTE_Funcs(); - } - - -/*******************************************/ -/* SZP0[] : Set Zone Pointer 0 */ -/* CodeRange : $13 */ -/* Stack : uint32 --> */ - - static void Ins_SZP0( INS_ARG ) - { - switch ( (Int)args[0] ) - { - case 0: - CUR.zp0 = CUR.twilight; - break; - - case 1: - CUR.zp0 = CUR.pts; - break; - - default: - if ( CUR.pedantic_hinting ) - CUR.error = TT_Err_Invalid_Reference; - return; - } - - CUR.GS.gep0 = (UShort)args[0]; - } - - -/*******************************************/ -/* SZP1[] : Set Zone Pointer 1 */ -/* CodeRange : $14 */ -/* Stack : uint32 --> */ - - static void Ins_SZP1( INS_ARG ) - { - switch ( (Int)args[0] ) - { - case 0: - CUR.zp1 = CUR.twilight; - break; - - case 1: - CUR.zp1 = CUR.pts; - break; - - default: - if ( CUR.pedantic_hinting ) - CUR.error = TT_Err_Invalid_Reference; - return; - } - - CUR.GS.gep1 = (UShort)args[0]; - } - - -/*******************************************/ -/* SZP2[] : Set Zone Pointer 2 */ -/* CodeRange : $15 */ -/* Stack : uint32 --> */ - - static void Ins_SZP2( INS_ARG ) - { - switch ( (Int)args[0] ) - { - case 0: - CUR.zp2 = CUR.twilight; - break; - - case 1: - CUR.zp2 = CUR.pts; - break; - - default: - if ( CUR.pedantic_hinting ) - CUR.error = TT_Err_Invalid_Reference; - return; - } - - CUR.GS.gep2 = (UShort)args[0]; - } - - -/*******************************************/ -/* SZPS[] : Set Zone Pointers */ -/* CodeRange : $16 */ -/* Stack : uint32 --> */ - - static void Ins_SZPS( INS_ARG ) - { - switch ( (Int)args[0] ) - { - case 0: - CUR.zp0 = CUR.twilight; - break; - - case 1: - CUR.zp0 = CUR.pts; - break; - - default: - if ( CUR.pedantic_hinting ) - CUR.error = TT_Err_Invalid_Reference; - return; - } - - CUR.zp1 = CUR.zp0; - CUR.zp2 = CUR.zp0; - - CUR.GS.gep0 = (UShort)args[0]; - CUR.GS.gep1 = (UShort)args[0]; - CUR.GS.gep2 = (UShort)args[0]; - } - - -/*******************************************/ -/* INSTCTRL[]: INSTruction ConTRol */ -/* CodeRange : $8e */ -/* Stack : int32 int32 --> */ - - static void Ins_INSTCTRL( INS_ARG ) - { - Long K, L; - - - K = args[1]; - L = args[0]; - - if ( K < 1 || K > 2 ) - { - if ( CUR.pedantic_hinting ) - CUR.error = TT_Err_Invalid_Reference; - return; - } - - if ( L != 0 ) - L = K; - - CUR.GS.instruct_control = - (Byte)( CUR.GS.instruct_control & ~(Byte)K ) | (Byte)L; - } - - -/*******************************************/ -/* SCANCTRL[]: SCAN ConTRol */ -/* CodeRange : $85 */ -/* Stack : uint32? --> */ - - static void Ins_SCANCTRL( INS_ARG ) - { - Int A; - - - /* Get Threshold */ - A = (Int)(args[0] & 0xFF); - - if ( A == 0xFF ) - { - CUR.GS.scan_control = TRUE; - return; - } - else if ( A == 0 ) - { - CUR.GS.scan_control = FALSE; - return; - } - - A *= 64; - - if ( (args[0] & 0x100) != 0 && CUR.metrics.pointSize <= A ) - CUR.GS.scan_control = TRUE; - - if ( (args[0] & 0x200) != 0 && CUR.metrics.rotated ) - CUR.GS.scan_control = TRUE; - - if ( (args[0] & 0x400) != 0 && CUR.metrics.stretched ) - CUR.GS.scan_control = TRUE; - - if ( (args[0] & 0x800) != 0 && CUR.metrics.pointSize > A ) - CUR.GS.scan_control = FALSE; - - if ( (args[0] & 0x1000) != 0 && CUR.metrics.rotated ) - CUR.GS.scan_control = FALSE; - - if ( (args[0] & 0x2000) != 0 && CUR.metrics.stretched ) - CUR.GS.scan_control = FALSE; -} - - -/*******************************************/ -/* SCANTYPE[]: SCAN TYPE */ -/* CodeRange : $8D */ -/* Stack : uint32? --> */ - - static void Ins_SCANTYPE( INS_ARG ) - { - /* For compatibility with future enhancements, */ - /* we must ignore new modes */ - - if ( args[0] >= 0 && args[0] <= 5 ) - { - if ( args[0] == 3 ) - args[0] = 2; - - CUR.GS.scan_type = (Int)args[0]; - } - } - - - -/****************************************************************/ -/* */ -/* MANAGING OUTLINES */ -/* */ -/* Instructions appear in the specs' order. */ -/* */ -/****************************************************************/ - -/**********************************************/ -/* FLIPPT[] : FLIP PoinT */ -/* CodeRange : $80 */ -/* Stack : uint32... --> */ - - static void Ins_FLIPPT( INS_ARG ) - { - UShort point; - - - if ( CUR.top < CUR.GS.loop ) - { - CUR.error = TT_Err_Too_Few_Arguments; - return; - } - - while ( CUR.GS.loop > 0 ) - { - CUR.args--; - - point = (UShort)CUR.stack[CUR.args]; - - if ( BOUNDS( point, CUR.pts.n_points ) ) - { - if ( CUR.pedantic_hinting ) - { - CUR.error = TT_Err_Invalid_Reference; - return; - } - } - else - CUR.pts.touch[point] ^= TT_Flag_On_Curve; - - CUR.GS.loop--; - } - - CUR.GS.loop = 1; - CUR.new_top = CUR.args; - } - - -/**********************************************/ -/* FLIPRGON[]: FLIP RanGe ON */ -/* CodeRange : $81 */ -/* Stack : uint32 uint32 --> */ -/* (but UShorts are sufficient) */ - - static void Ins_FLIPRGON( INS_ARG ) - { - UShort I, K, L; - - - K = (UShort)args[1]; - L = (UShort)args[0]; - - if ( BOUNDS( K, CUR.pts.n_points ) || - BOUNDS( L, CUR.pts.n_points ) ) - { - if ( CUR.pedantic_hinting ) - CUR.error = TT_Err_Invalid_Reference; - return; - } - - for ( I = L; I <= K; I++ ) - CUR.pts.touch[I] |= TT_Flag_On_Curve; - } - - -/**********************************************/ -/* FLIPRGOFF : FLIP RanGe OFF */ -/* CodeRange : $82 */ -/* Stack : uint32 uint32 --> */ -/* (but UShorts are sufficient) */ - - static void Ins_FLIPRGOFF( INS_ARG ) - { - UShort I, K, L; - - - K = (UShort)args[1]; - L = (UShort)args[0]; - - if ( BOUNDS( K, CUR.pts.n_points ) || - BOUNDS( L, CUR.pts.n_points ) ) - { - if ( CUR.pedantic_hinting ) - CUR.error = TT_Err_Invalid_Reference; - return; - } - - for ( I = L; I <= K; I++ ) - CUR.pts.touch[I] &= ~TT_Flag_On_Curve; - } - - - static Bool Compute_Point_Displacement( EXEC_OPS - PCoordinates x, - PCoordinates y, - PGlyph_Zone zone, - UShort* refp ) - { - TGlyph_Zone zp; - UShort p; - TT_F26Dot6 d; - - - if ( CUR.opcode & 1 ) - { - zp = CUR.zp0; - p = CUR.GS.rp1; - } - else - { - zp = CUR.zp1; - p = CUR.GS.rp2; - } - - if ( BOUNDS( p, zp.n_points ) ) - { - if ( CUR.pedantic_hinting ) - CUR.error = TT_Err_Invalid_Displacement; - return FAILURE; - } - - *zone = zp; - *refp = p; - - d = CUR_Func_project( zp.cur + p, zp.org + p ); - - *x = TT_MulDiv(d, (Long)CUR.GS.freeVector.x * 0x10000L, CUR.F_dot_P ); - *y = TT_MulDiv(d, (Long)CUR.GS.freeVector.y * 0x10000L, CUR.F_dot_P ); - - return SUCCESS; - } - - - static void Move_Zp2_Point( EXEC_OPS - UShort point, - TT_F26Dot6 dx, - TT_F26Dot6 dy, - Bool touch ) - { - if ( CUR.GS.freeVector.x != 0 ) - { - CUR.zp2.cur[point].x += dx; - if ( touch ) - CUR.zp2.touch[point] |= TT_Flag_Touched_X; - } - - if ( CUR.GS.freeVector.y != 0 ) - { - CUR.zp2.cur[point].y += dy; - if ( touch ) - CUR.zp2.touch[point] |= TT_Flag_Touched_Y; - } - } - - -/**********************************************/ -/* SHP[a] : SHift Point by the last point */ -/* CodeRange : $32-33 */ -/* Stack : uint32... --> */ - - static void Ins_SHP( INS_ARG ) - { - TGlyph_Zone zp; - UShort refp; - - TT_F26Dot6 dx, - dy; - UShort point; - - - if ( CUR.top < CUR.GS.loop ) - { - CUR.error = TT_Err_Invalid_Reference; - return; - } - - if ( COMPUTE_Point_Displacement( &dx, &dy, &zp, &refp ) ) - return; - - while ( CUR.GS.loop > 0 ) - { - CUR.args--; - point = (UShort)CUR.stack[CUR.args]; - - if ( BOUNDS( point, CUR.zp2.n_points ) ) - { - if ( CUR.pedantic_hinting ) - { - CUR.error = TT_Err_Invalid_Reference; - return; - } - } - else - /* UNDOCUMENTED! SHP touches the points */ - MOVE_Zp2_Point( point, dx, dy, TRUE ); - - CUR.GS.loop--; - } - - CUR.GS.loop = 1; - CUR.new_top = CUR.args; - } - - -/**********************************************/ -/* SHC[a] : SHift Contour */ -/* CodeRange : $34-35 */ -/* Stack : uint32 --> */ - - static void Ins_SHC( INS_ARG ) - { - TGlyph_Zone zp; - UShort refp; - TT_F26Dot6 dx, - dy; - - Short contour; - UShort first_point, last_point, i; - - - contour = (UShort)args[0]; - - if ( BOUNDS( contour, CUR.pts.n_contours ) ) - { - if ( CUR.pedantic_hinting ) - CUR.error = TT_Err_Invalid_Reference; - return; - } - - if ( COMPUTE_Point_Displacement( &dx, &dy, &zp, &refp ) ) - return; - - if ( contour == 0 ) - first_point = 0; - else - first_point = CUR.pts.contours[contour - 1] + 1; - - last_point = CUR.pts.contours[contour]; - - /* XXX: this is probably wrong... at least it prevents memory */ - /* corruption when zp2 is the twilight zone */ - if ( last_point > CUR.zp2.n_points ) - { - if ( CUR.zp2.n_points > 0 ) - last_point = CUR.zp2.n_points - 1; - else - last_point = 0; - } - - /* UNDOCUMENTED! SHC doesn't touch the points */ - for ( i = first_point; i <= last_point; i++ ) - { - if ( zp.cur != CUR.zp2.cur || refp != i ) - MOVE_Zp2_Point( i, dx, dy, FALSE ); - } - } - - -/**********************************************/ -/* SHZ[a] : SHift Zone */ -/* CodeRange : $36-37 */ -/* Stack : uint32 --> */ - - static void Ins_SHZ( INS_ARG ) - { - TGlyph_Zone zp; - UShort refp; - TT_F26Dot6 dx, - dy; - - UShort last_point, i; - - - if ( BOUNDS( args[0], 2 ) ) - { - if ( CUR.pedantic_hinting ) - CUR.error = TT_Err_Invalid_Reference; - return; - } - - if ( COMPUTE_Point_Displacement( &dx, &dy, &zp, &refp ) ) - return; - - if ( CUR.zp2.n_points > 0 ) - last_point = CUR.zp2.n_points - 1; - else - last_point = 0; - - /* UNDOCUMENTED! SHZ doesn't touch the points */ - for ( i = 0; i <= last_point; i++ ) - { - if ( zp.cur != CUR.zp2.cur || refp != i ) - MOVE_Zp2_Point( i, dx, dy, FALSE ); - } - } - - -/**********************************************/ -/* SHPIX[] : SHift points by a PIXel amount */ -/* CodeRange : $38 */ -/* Stack : f26.6 uint32... --> */ - - static void Ins_SHPIX( INS_ARG ) - { - TT_F26Dot6 dx, dy; - UShort point; - - - if ( CUR.top < CUR.GS.loop + 1 ) - { - CUR.error = TT_Err_Invalid_Reference; - return; - } - - dx = TT_MulDiv( args[0], - (Long)CUR.GS.freeVector.x, - 0x4000 ); - dy = TT_MulDiv( args[0], - (Long)CUR.GS.freeVector.y, - 0x4000 ); - - while ( CUR.GS.loop > 0 ) - { - CUR.args--; - - point = (UShort)CUR.stack[CUR.args]; - - if ( BOUNDS( point, CUR.zp2.n_points ) ) - { - if ( CUR.pedantic_hinting ) - { - CUR.error = TT_Err_Invalid_Reference; - return; - } - } - else - MOVE_Zp2_Point( point, dx, dy, TRUE ); - - CUR.GS.loop--; - } - - CUR.GS.loop = 1; - CUR.new_top = CUR.args; - } - - -/**********************************************/ -/* MSIRP[a] : Move Stack Indirect Relative */ -/* CodeRange : $3A-$3B */ -/* Stack : f26.6 uint32 --> */ - - static void Ins_MSIRP( INS_ARG ) - { - UShort point; - TT_F26Dot6 distance; - - - point = (UShort)args[0]; - - if ( BOUNDS( point, CUR.zp1.n_points ) || - BOUNDS( CUR.GS.rp0, CUR.zp0.n_points ) ) - { - if ( CUR.pedantic_hinting ) - CUR.error = TT_Err_Invalid_Reference; - return; - } - - /* XXX: UNDOCUMENTED! behaviour */ - if ( CUR.GS.gep0 == 0 ) /* if in twilight zone */ - { - CUR.zp1.org[point] = CUR.zp0.org[CUR.GS.rp0]; - CUR.zp1.cur[point] = CUR.zp1.org[point]; - } - - distance = CUR_Func_project( CUR.zp1.cur + point, - CUR.zp0.cur + CUR.GS.rp0 ); - - CUR_Func_move( &CUR.zp1, point, args[1] - distance ); - - CUR.GS.rp1 = CUR.GS.rp0; - CUR.GS.rp2 = point; - - if ( (CUR.opcode & 1) != 0 ) - CUR.GS.rp0 = point; - } - - -/**********************************************/ -/* MDAP[a] : Move Direct Absolute Point */ -/* CodeRange : $2E-$2F */ -/* Stack : uint32 --> */ - - static void Ins_MDAP( INS_ARG ) - { - UShort point; - TT_F26Dot6 cur_dist, - distance; - - - point = (UShort)args[0]; - - if ( BOUNDS( point, CUR.zp0.n_points ) ) - { - if ( CUR.pedantic_hinting ) - CUR.error = TT_Err_Invalid_Reference; - return; - } - - /* XXX: Is there some undocumented feature while in the */ - /* twilight zone? ? */ - if ( (CUR.opcode & 1) != 0 ) - { - cur_dist = CUR_Func_project( CUR.zp0.cur + point, NULL_Vector ); - distance = CUR_Func_round( cur_dist, - CUR.metrics.compensations[0] ) - cur_dist; - } - else - distance = 0; - - CUR_Func_move( &CUR.zp0, point, distance ); - - CUR.GS.rp0 = point; - CUR.GS.rp1 = point; - } - - -/**********************************************/ -/* MIAP[a] : Move Indirect Absolute Point */ -/* CodeRange : $3E-$3F */ -/* Stack : uint32 uint32 --> */ - - static void Ins_MIAP( INS_ARG ) - { - ULong cvtEntry; - UShort point; - TT_F26Dot6 distance, - org_dist; - - - cvtEntry = (ULong)args[1]; - point = (UShort)args[0]; - - if ( BOUNDS( point, CUR.zp0.n_points ) || - BOUNDS( cvtEntry, CUR.cvtSize ) ) - { - if ( CUR.pedantic_hinting ) - CUR.error = TT_Err_Invalid_Reference; - return; - } - - /* UNDOCUMENTED! */ - /* */ - /* The behaviour of an MIAP instruction is quite */ - /* different when used in the twilight zone. */ - /* */ - /* First, no control value cutin test is performed */ - /* as it would fail anyway. Second, the original */ - /* point, i.e. (org_x,org_y) of zp0.point, is set */ - /* to the absolute, unrounded distance found in */ - /* the CVT. */ - /* */ - /* This is used in the CVT programs of the Microsoft */ - /* fonts Arial, Times, etc., in order to re-adjust */ - /* some key font heights. It allows the use of the */ - /* IP instruction in the twilight zone, which */ - /* otherwise would be "illegal" according to the */ - /* specs :) */ - /* */ - /* We implement it with a special sequence for the */ - /* twilight zone. This is a bad hack, but it seems */ - /* to work. */ - - distance = CUR_Func_read_cvt( cvtEntry ); - - if ( CUR.GS.gep0 == 0 ) /* If in twilight zone */ - { - CUR.zp0.org[point].x = TT_MulDiv( CUR.GS.freeVector.x, - distance, 0x4000L ); - CUR.zp0.org[point].y = TT_MulDiv( CUR.GS.freeVector.y, - distance, 0x4000L ); - CUR.zp0.cur[point] = CUR.zp0.org[point]; - } - - org_dist = CUR_Func_project( CUR.zp0.cur + point, NULL_Vector ); - - if ( (CUR.opcode & 1) != 0 ) /* rounding and control cutin flag */ - { - if ( ABS( distance - org_dist ) > CUR.GS.control_value_cutin ) - distance = org_dist; - - distance = CUR_Func_round( distance, CUR.metrics.compensations[0] ); - } - - CUR_Func_move( &CUR.zp0, point, distance - org_dist ); - - CUR.GS.rp0 = point; - CUR.GS.rp1 = point; - } - - -/**********************************************/ -/* MDRP[abcde] : Move Direct Relative Point */ -/* CodeRange : $C0-$DF */ -/* Stack : uint32 --> */ - - static void Ins_MDRP( INS_ARG ) - { - UShort point; - TT_F26Dot6 org_dist, distance; - - - point = (UShort)args[0]; - - if ( BOUNDS( point, CUR.zp1.n_points ) || - BOUNDS( CUR.GS.rp0, CUR.zp0.n_points ) ) - { - if ( CUR.pedantic_hinting ) - CUR.error = TT_Err_Invalid_Reference; - return; - } - - /* XXX: Is there some undocumented feature while in the */ - /* twilight zone? */ - - org_dist = CUR_Func_dualproj( CUR.zp1.org + point, - CUR.zp0.org + CUR.GS.rp0 ); - - /* single width cutin test */ - - if ( ABS( org_dist ) < CUR.GS.single_width_cutin ) - { - if ( org_dist >= 0 ) - org_dist = CUR.GS.single_width_value; - else - org_dist = -CUR.GS.single_width_value; - } - - /* round flag */ - - if ( (CUR.opcode & 4) != 0 ) - distance = CUR_Func_round( org_dist, - CUR.metrics.compensations[CUR.opcode & 3] ); - else - distance = Round_None( EXEC_ARGS - org_dist, - CUR.metrics.compensations[CUR.opcode & 3] ); - - /* minimum distance flag */ - - if ( (CUR.opcode & 8) != 0 ) - { - if ( org_dist >= 0 ) - { - if ( distance < CUR.GS.minimum_distance ) - distance = CUR.GS.minimum_distance; - } - else - { - if ( distance > -CUR.GS.minimum_distance ) - distance = -CUR.GS.minimum_distance; - } - } - - /* now move the point */ - - org_dist = CUR_Func_project( CUR.zp1.cur + point, - CUR.zp0.cur + CUR.GS.rp0 ); - - CUR_Func_move( &CUR.zp1, point, distance - org_dist ); - - CUR.GS.rp1 = CUR.GS.rp0; - CUR.GS.rp2 = point; - - if ( (CUR.opcode & 16) != 0 ) - CUR.GS.rp0 = point; - } - - -/**********************************************/ -/* MIRP[abcde] : Move Indirect Relative Point */ -/* CodeRange : $E0-$FF */ -/* Stack : int32? uint32 --> */ - - static void Ins_MIRP( INS_ARG ) - { - UShort point; - ULong cvtEntry; - - TT_F26Dot6 cvt_dist, - distance, - cur_dist, - org_dist; - - - point = (UShort)args[0]; - cvtEntry = (ULong)(args[1] + 1); - - /* XXX: UNDOCUMENTED! cvt[-1] = 0 always */ - - if ( BOUNDS( point, CUR.zp1.n_points ) || - BOUNDS( cvtEntry, CUR.cvtSize + 1 ) || - BOUNDS( CUR.GS.rp0, CUR.zp0.n_points ) ) - { - if ( CUR.pedantic_hinting ) - CUR.error = TT_Err_Invalid_Reference; - return; - } - - if ( !cvtEntry ) - cvt_dist = 0; - else - cvt_dist = CUR_Func_read_cvt( cvtEntry - 1 ); - - /* single width test */ - - if ( ABS( cvt_dist ) < CUR.GS.single_width_cutin ) - { - if ( cvt_dist >= 0 ) - cvt_dist = CUR.GS.single_width_value; - else - cvt_dist = -CUR.GS.single_width_value; - } - - /* XXX : UNDOCUMENTED! -- twilight zone */ - - if ( CUR.GS.gep1 == 0 ) - { - CUR.zp1.org[point].x = CUR.zp0.org[CUR.GS.rp0].x + - TT_MulDiv( cvt_dist, - CUR.GS.freeVector.x, - 0x4000 ); - - CUR.zp1.org[point].y = CUR.zp0.org[CUR.GS.rp0].y + - TT_MulDiv( cvt_dist, - CUR.GS.freeVector.y, - 0x4000 ); - - CUR.zp1.cur[point] = CUR.zp1.org[point]; - } - - org_dist = CUR_Func_dualproj( CUR.zp1.org + point, - CUR.zp0.org + CUR.GS.rp0 ); - - cur_dist = CUR_Func_project( CUR.zp1.cur + point, - CUR.zp0.cur + CUR.GS.rp0 ); - - /* auto-flip test */ - - if ( CUR.GS.auto_flip ) - { - if ( (org_dist ^ cvt_dist) < 0 ) - cvt_dist = -cvt_dist; - } - - /* control value cutin and round */ - - if ( (CUR.opcode & 4) != 0 ) - { - /* XXX: UNDOCUMENTED! Only perform cut-in test when both points */ - /* refer to the same zone. */ - - if ( CUR.GS.gep0 == CUR.GS.gep1 ) - if ( ABS( cvt_dist - org_dist ) >= CUR.GS.control_value_cutin ) - cvt_dist = org_dist; - - distance = CUR_Func_round( cvt_dist, - CUR.metrics.compensations[CUR.opcode & 3] ); - } - else - distance = Round_None( EXEC_ARGS - cvt_dist, - CUR.metrics.compensations[CUR.opcode & 3] ); - - /* minimum distance test */ - - if ( (CUR.opcode & 8) != 0 ) - { - if ( org_dist >= 0 ) - { - if ( distance < CUR.GS.minimum_distance ) - distance = CUR.GS.minimum_distance; - } - else - { - if ( distance > -CUR.GS.minimum_distance ) - distance = -CUR.GS.minimum_distance; - } - } - - CUR_Func_move( &CUR.zp1, point, distance - cur_dist ); - - CUR.GS.rp1 = CUR.GS.rp0; - - if ( (CUR.opcode & 16) != 0 ) - CUR.GS.rp0 = point; - - /* UNDOCUMENTED! */ - - CUR.GS.rp2 = point; - } - - -/**********************************************/ -/* ALIGNRP[] : ALIGN Relative Point */ -/* CodeRange : $3C */ -/* Stack : uint32 uint32... --> */ - - static void Ins_ALIGNRP( INS_ARG ) - { - UShort point; - TT_F26Dot6 distance; - - - if ( CUR.top < CUR.GS.loop || - BOUNDS( CUR.GS.rp0, CUR.zp0.n_points ) ) - { - if ( CUR.pedantic_hinting ) - CUR.error = TT_Err_Invalid_Reference; - return; - } - - while ( CUR.GS.loop > 0 ) - { - CUR.args--; - - point = (UShort)CUR.stack[CUR.args]; - - if ( BOUNDS( point, CUR.zp1.n_points ) ) - { - if ( CUR.pedantic_hinting ) - { - CUR.error = TT_Err_Invalid_Reference; - return; - } - } - else - { - distance = CUR_Func_project( CUR.zp1.cur + point, - CUR.zp0.cur + CUR.GS.rp0 ); - - CUR_Func_move( &CUR.zp1, point, -distance ); - } - - CUR.GS.loop--; - } - - CUR.GS.loop = 1; - CUR.new_top = CUR.args; - } - - -/**********************************************/ -/* ISECT[] : moves point to InterSECTion */ -/* CodeRange : $0F */ -/* Stack : 5 * uint32 --> */ - - static void Ins_ISECT( INS_ARG ) - { - UShort point, - a0, a1, - b0, b1; - - TT_F26Dot6 discriminant; - - TT_F26Dot6 dx, dy, - dax, day, - dbx, dby; - - TT_F26Dot6 val; - - TT_Vector R; - - - point = (UShort)args[0]; - - a0 = (UShort)args[1]; - a1 = (UShort)args[2]; - b0 = (UShort)args[3]; - b1 = (UShort)args[4]; - - if ( BOUNDS( b0, CUR.zp0.n_points ) || - BOUNDS( b1, CUR.zp0.n_points ) || - BOUNDS( a0, CUR.zp1.n_points ) || - BOUNDS( a1, CUR.zp1.n_points ) || - BOUNDS( point, CUR.zp2.n_points ) ) - { - if ( CUR.pedantic_hinting ) - CUR.error = TT_Err_Invalid_Reference; - return; - } - - dbx = CUR.zp0.cur[b1].x - CUR.zp0.cur[b0].x; - dby = CUR.zp0.cur[b1].y - CUR.zp0.cur[b0].y; - - dax = CUR.zp1.cur[a1].x - CUR.zp1.cur[a0].x; - day = CUR.zp1.cur[a1].y - CUR.zp1.cur[a0].y; - - dx = CUR.zp0.cur[b0].x - CUR.zp1.cur[a0].x; - dy = CUR.zp0.cur[b0].y - CUR.zp1.cur[a0].y; - - CUR.zp2.touch[point] |= TT_Flag_Touched_Both; - - discriminant = TT_MulDiv( dax, -dby, 0x40L ) + - TT_MulDiv( day, dbx, 0x40L ); - - if ( ABS( discriminant ) >= 0x40 ) - { - val = TT_MulDiv( dx, -dby, 0x40L ) + TT_MulDiv( dy, dbx, 0x40L ); - - R.x = TT_MulDiv( val, dax, discriminant ); - R.y = TT_MulDiv( val, day, discriminant ); - - CUR.zp2.cur[point].x = CUR.zp1.cur[a0].x + R.x; - CUR.zp2.cur[point].y = CUR.zp1.cur[a0].y + R.y; - } - else - { - /* else, take the middle of the middles of A and B */ - - CUR.zp2.cur[point].x = ( CUR.zp1.cur[a0].x + - CUR.zp1.cur[a1].x + - CUR.zp0.cur[b0].x + - CUR.zp0.cur[b1].x ) / 4; - CUR.zp2.cur[point].y = ( CUR.zp1.cur[a0].y + - CUR.zp1.cur[a1].y + - CUR.zp0.cur[b0].y + - CUR.zp0.cur[b1].y ) / 4; - } - } - - -/**********************************************/ -/* ALIGNPTS[] : ALIGN PoinTS */ -/* CodeRange : $27 */ -/* Stack : uint32 uint32 --> */ - - static void Ins_ALIGNPTS( INS_ARG ) - { - UShort p1, p2; - TT_F26Dot6 distance; - - - p1 = (UShort)args[0]; - p2 = (UShort)args[1]; - - if ( BOUNDS( args[0], CUR.zp1.n_points ) || - BOUNDS( args[1], CUR.zp0.n_points ) ) - { - if ( CUR.pedantic_hinting ) - CUR.error = TT_Err_Invalid_Reference; - return; - } - - distance = CUR_Func_project( CUR.zp0.cur + p2, - CUR.zp1.cur + p1 ) / 2; - - CUR_Func_move( &CUR.zp1, p1, distance ); - CUR_Func_move( &CUR.zp0, p2, -distance ); - } - - -/**********************************************/ -/* IP[] : Interpolate Point */ -/* CodeRange : $39 */ -/* Stack : uint32... --> */ - - static void Ins_IP( INS_ARG ) - { - TT_F26Dot6 org_a, org_b, org_x, - cur_a, cur_b, cur_x, - distance; - UShort point; - - - if ( CUR.top < CUR.GS.loop ) - { - CUR.error = TT_Err_Invalid_Reference; - return; - } - - /* XXX: there are some glyphs in some braindead but popular */ - /* fonts out there (e.g. [aeu]grave in monotype.ttf) */ - /* calling IP[] with bad values of rp[12] */ - /* do something sane when this odd thing happens */ - - if ( BOUNDS( CUR.GS.rp1, CUR.zp0.n_points ) || - BOUNDS( CUR.GS.rp2, CUR.zp1.n_points ) ) - { - org_a = cur_a = 0; - org_b = cur_b = 0; - } - else - { - org_a = CUR_Func_dualproj( CUR.zp0.org + CUR.GS.rp1, NULL_Vector ); - org_b = CUR_Func_dualproj( CUR.zp1.org + CUR.GS.rp2, NULL_Vector ); - - cur_a = CUR_Func_project( CUR.zp0.cur + CUR.GS.rp1, NULL_Vector ); - cur_b = CUR_Func_project( CUR.zp1.cur + CUR.GS.rp2, NULL_Vector ); - } - - while ( CUR.GS.loop > 0 ) - { - CUR.args--; - - point = (UShort)CUR.stack[CUR.args]; - if ( BOUNDS( point, CUR.zp2.n_points ) ) - { - if ( CUR.pedantic_hinting ) - { - CUR.error = TT_Err_Invalid_Reference; - return; - } - } - else - { - org_x = CUR_Func_dualproj( CUR.zp2.org + point, NULL_Vector ); - cur_x = CUR_Func_project ( CUR.zp2.cur + point, NULL_Vector ); - - if ( ( org_a <= org_b && org_x <= org_a ) || - ( org_a > org_b && org_x >= org_a ) ) - - distance = ( cur_a - org_a ) + ( org_x - cur_x ); - - else if ( ( org_a <= org_b && org_x >= org_b ) || - ( org_a > org_b && org_x < org_b ) ) - - distance = ( cur_b - org_b ) + ( org_x - cur_x ); - - else - /* note: it seems that rounding this value isn't a good */ - /* idea (cf. width of capital 'S' in Times) */ - - distance = TT_MulDiv( cur_b - cur_a, - org_x - org_a, - org_b - org_a ) + ( cur_a - cur_x ); - - CUR_Func_move( &CUR.zp2, point, distance ); - } - - CUR.GS.loop--; - } - - CUR.GS.loop = 1; - CUR.new_top = CUR.args; - } - - -/**********************************************/ -/* UTP[a] : UnTouch Point */ -/* CodeRange : $29 */ -/* Stack : uint32 --> */ - - static void Ins_UTP( INS_ARG ) - { - UShort point; - Byte mask; - - - point = (UShort)args[0]; - - if ( BOUNDS( point, CUR.zp0.n_points ) ) - { - if ( CUR.pedantic_hinting ) - CUR.error = TT_Err_Invalid_Reference; - return; - } - - mask = 0xFF; - - if ( CUR.GS.freeVector.x != 0 ) - mask &= ~TT_Flag_Touched_X; - - if ( CUR.GS.freeVector.y != 0 ) - mask &= ~TT_Flag_Touched_Y; - - CUR.zp0.touch[point] &= mask; - } - - - /* Local variables for Ins_IUP: */ - struct LOC_Ins_IUP - { - TT_Vector* orgs; /* original and current coordinate */ - TT_Vector* curs; /* arrays */ - }; - - - static void Shift( UShort p1, - UShort p2, - UShort p, - struct LOC_Ins_IUP* LINK ) - { - UShort i; - TT_F26Dot6 x; - - - x = LINK->curs[p].x - LINK->orgs[p].x; - - for ( i = p1; i < p; i++ ) - LINK->curs[i].x += x; - - for ( i = p + 1; i <= p2; i++ ) - LINK->curs[i].x += x; - } - - - static void Interp( UShort p1, - UShort p2, - UShort ref1, - UShort ref2, - struct LOC_Ins_IUP* LINK ) - { - UShort i; - TT_F26Dot6 x, x1, x2, d1, d2; - - - if ( p1 > p2 ) - return; - - x1 = LINK->orgs[ref1].x; - d1 = LINK->curs[ref1].x - LINK->orgs[ref1].x; - x2 = LINK->orgs[ref2].x; - d2 = LINK->curs[ref2].x - LINK->orgs[ref2].x; - - if ( x1 == x2 ) - { - for ( i = p1; i <= p2; i++ ) - { - x = LINK->orgs[i].x; - - if ( x <= x1 ) - x += d1; - else - x += d2; - - LINK->curs[i].x = x; - } - return; - } - - if ( x1 < x2 ) - { - for ( i = p1; i <= p2; i++ ) - { - x = LINK->orgs[i].x; - - if ( x <= x1 ) - x += d1; - else - { - if ( x >= x2 ) - x += d2; - else - x = LINK->curs[ref1].x + - TT_MulDiv( x - x1, - LINK->curs[ref2].x - LINK->curs[ref1].x, - x2 - x1 ); - } - LINK->curs[i].x = x; - } - return; - } - - /* x2 < x1 */ - - for ( i = p1; i <= p2; i++ ) - { - x = LINK->orgs[i].x; - if ( x <= x2 ) - x += d2; - else - { - if ( x >= x1 ) - x += d1; - else - x = LINK->curs[ref1].x + - TT_MulDiv( x - x1, - LINK->curs[ref2].x - LINK->curs[ref1].x, - x2 - x1 ); - } - LINK->curs[i].x = x; - } - } - - -/**********************************************/ -/* IUP[a] : Interpolate Untouched Points */ -/* CodeRange : $30-$31 */ -/* Stack : --> */ - - static void Ins_IUP( INS_ARG ) - { - struct LOC_Ins_IUP V; - Byte mask; - - UShort first_point; /* first point of contour */ - UShort end_point; /* end point (last+1) of contour */ - - UShort first_touched; /* first touched point in contour */ - UShort cur_touched; /* current touched point in contour */ - - UShort point; /* current point */ - Short contour; /* current contour */ - - - if ( CUR.opcode & 1 ) - { - mask = TT_Flag_Touched_X; - V.orgs = CUR.pts.org; - V.curs = CUR.pts.cur; - } - else - { - mask = TT_Flag_Touched_Y; - V.orgs = (TT_Vector*)( ((TT_F26Dot6*)CUR.pts.org) + 1 ); - V.curs = (TT_Vector*)( ((TT_F26Dot6*)CUR.pts.cur) + 1 ); - } - - contour = 0; - point = 0; - - do - { - end_point = CUR.pts.contours[contour]; - first_point = point; - - while ( point <= end_point && (CUR.pts.touch[point] & mask) == 0 ) - point++; - - if ( point <= end_point ) - { - first_touched = point; - cur_touched = point; - - point++; - - while ( point <= end_point ) - { - if ( (CUR.pts.touch[point] & mask) != 0 ) - { - if ( point > 0 ) - Interp( cur_touched + 1, - point - 1, - cur_touched, - point, - &V ); - cur_touched = point; - } - - point++; - } - - if ( cur_touched == first_touched ) - Shift( first_point, end_point, cur_touched, &V ); - else - { - Interp( cur_touched + 1, - end_point, - cur_touched, - first_touched, - &V ); - - if ( first_touched > 0 ) - Interp( first_point, - first_touched - 1, - cur_touched, - first_touched, - &V ); - } - } - contour++; - } while ( contour < CUR.pts.n_contours ); - } - - -/**********************************************/ -/* DELTAPn[] : DELTA Exceptions P1, P2, P3 */ -/* CodeRange : $5D,$71,$72 */ -/* Stack : uint32 (2 * uint32)... --> */ - - static void Ins_DELTAP( INS_ARG ) - { - ULong nump, k; - UShort A; - ULong C; - Long B; - - - nump = (ULong)args[0]; /* some points theoretically may occur more - than once, thus UShort isn't enough */ - - for ( k = 1; k <= nump; k++ ) - { - if ( CUR.args < 2 ) - { - CUR.error = TT_Err_Too_Few_Arguments; - return; - } - - CUR.args -= 2; - - A = (UShort)CUR.stack[CUR.args + 1]; - B = CUR.stack[CUR.args]; - - /* XXX : because some popular fonts contain some invalid DeltaP */ - /* instructions, we simply ignore them when the stacked */ - /* point reference is off limit, rather than returning an */ - /* error. As a delta instruction doesn't change a glyph */ - /* in great ways, this shouldn't be a problem.. */ - - if ( !BOUNDS( A, CUR.zp0.n_points ) ) - { - C = ((ULong)B & 0xF0) >> 4; - - switch ( CUR.opcode ) - { - case 0x5d: - break; - - case 0x71: - C += 16; - break; - - case 0x72: - C += 32; - break; - } - - C += CUR.GS.delta_base; - - if ( CURRENT_Ppem() == (Long)C ) - { - B = ((ULong)B & 0xF) - 8; - if ( B >= 0 ) - B++; - B = B * 64L / (1L << CUR.GS.delta_shift); - - CUR_Func_move( &CUR.zp0, A, B ); - } - } - else - if ( CUR.pedantic_hinting ) - CUR.error = TT_Err_Invalid_Reference; - } - - CUR.new_top = CUR.args; - } - - -/**********************************************/ -/* DELTACn[] : DELTA Exceptions C1, C2, C3 */ -/* CodeRange : $73,$74,$75 */ -/* Stack : uint32 (2 * uint32)... --> */ - - static void Ins_DELTAC( INS_ARG ) - { - ULong nump, k; - ULong A, C; - Long B; - - - nump = (ULong)args[0]; - - for ( k = 1; k <= nump; k++ ) - { - if ( CUR.args < 2 ) - { - CUR.error = TT_Err_Too_Few_Arguments; - return; - } - - CUR.args -= 2; - - A = (ULong)CUR.stack[CUR.args + 1]; - B = CUR.stack[CUR.args]; - - if ( BOUNDS( A, CUR.cvtSize ) ) - { - if ( CUR.pedantic_hinting ) - { - CUR.error = TT_Err_Invalid_Reference; - return; - } - } - else - { - C = ((ULong)B & 0xF0) >> 4; - - switch ( CUR.opcode ) - { - case 0x73: - break; - - case 0x74: - C += 16; - break; - - case 0x75: - C += 32; - break; - } - - C += CUR.GS.delta_base; - - if ( CURRENT_Ppem() == (Long)C ) - { - B = ((ULong)B & 0xF) - 8; - if ( B >= 0 ) - B++; - B = B * 64L / (1L << CUR.GS.delta_shift); - - CUR_Func_move_cvt( A, B ); - } - } - } - - CUR.new_top = CUR.args; - } - - - -/****************************************************************/ -/* */ -/* MISC. INSTRUCTIONS */ -/* */ -/****************************************************************/ - - -/**********************************************/ -/* GETINFO[] : GET INFOrmation */ -/* CodeRange : $88 */ -/* Stack : uint32 --> uint32 */ - -/* XXX According to Apple specs, bits 1 & 2 of the argument ought to be */ -/* consulted before rotated / stretched info is returned */ - - static void Ins_GETINFO( INS_ARG ) - { - Long K; - - - K = 0; - - /* We return then Windows 3.1 version number */ - /* for the font scaler */ - if ( (args[0] & 1) != 0 ) - K = 3; - - /* Has the glyph been rotated ? */ - if ( CUR.metrics.rotated ) - K |= 0x80; - - /* Has the glyph been stretched ? */ - if ( CUR.metrics.stretched ) - K |= 0x100; - - args[0] = K; - } - - - static void Ins_UNKNOWN( INS_ARG ) - { - /* look up the current instruction in our table */ - PDefRecord def, limit; - - def = CUR.IDefs; - limit = def + CUR.numIDefs; - for ( ; def < limit; def++ ) - { - if ( def->Opc == CUR.opcode && def->Active ) - { - PCallRecord pCrec; - - /* implement instruction as a function call */ - - /* check call stack */ - if ( CUR.callTop >= CUR.callSize ) - { - CUR.error = TT_Err_Stack_Overflow; - return; - } - - pCrec = CUR.callStack + CUR.callTop; - - pCrec->Caller_Range = CUR.curRange; - pCrec->Caller_IP = CUR.IP + 1; - pCrec->Cur_Count = 1; - pCrec->Cur_Restart = def->Start; - - CUR.callTop++; - - INS_Goto_CodeRange( def->Range, - def->Start ); - - CUR.step_ins = FALSE; - return; - } - } - - CUR.error = TT_Err_Invalid_Opcode; - } - - -#ifndef TT_CONFIG_OPTION_INTERPRETER_SWITCH - static TInstruction_Function Instruct_Dispatch[256] = - { - /* Opcodes are gathered in groups of 16. */ - /* Please keep the spaces as they are. */ - - /* SVTCA y */ Ins_SVTCA, - /* SVTCA x */ Ins_SVTCA, - /* SPvTCA y */ Ins_SPVTCA, - /* SPvTCA x */ Ins_SPVTCA, - /* SFvTCA y */ Ins_SFVTCA, - /* SFvTCA x */ Ins_SFVTCA, - /* SPvTL // */ Ins_SPVTL, - /* SPvTL + */ Ins_SPVTL, - /* SFvTL // */ Ins_SFVTL, - /* SFvTL + */ Ins_SFVTL, - /* SPvFS */ Ins_SPVFS, - /* SFvFS */ Ins_SFVFS, - /* GPV */ Ins_GPV, - /* GFV */ Ins_GFV, - /* SFvTPv */ Ins_SFVTPV, - /* ISECT */ Ins_ISECT, - - /* SRP0 */ Ins_SRP0, - /* SRP1 */ Ins_SRP1, - /* SRP2 */ Ins_SRP2, - /* SZP0 */ Ins_SZP0, - /* SZP1 */ Ins_SZP1, - /* SZP2 */ Ins_SZP2, - /* SZPS */ Ins_SZPS, - /* SLOOP */ Ins_SLOOP, - /* RTG */ Ins_RTG, - /* RTHG */ Ins_RTHG, - /* SMD */ Ins_SMD, - /* ELSE */ Ins_ELSE, - /* JMPR */ Ins_JMPR, - /* SCvTCi */ Ins_SCVTCI, - /* SSwCi */ Ins_SSWCI, - /* SSW */ Ins_SSW, - - /* DUP */ Ins_DUP, - /* POP */ Ins_POP, - /* CLEAR */ Ins_CLEAR, - /* SWAP */ Ins_SWAP, - /* DEPTH */ Ins_DEPTH, - /* CINDEX */ Ins_CINDEX, - /* MINDEX */ Ins_MINDEX, - /* AlignPTS */ Ins_ALIGNPTS, - /* INS_$28 */ Ins_UNKNOWN, - /* UTP */ Ins_UTP, - /* LOOPCALL */ Ins_LOOPCALL, - /* CALL */ Ins_CALL, - /* FDEF */ Ins_FDEF, - /* ENDF */ Ins_ENDF, - /* MDAP[0] */ Ins_MDAP, - /* MDAP[1] */ Ins_MDAP, - - /* IUP[0] */ Ins_IUP, - /* IUP[1] */ Ins_IUP, - /* SHP[0] */ Ins_SHP, - /* SHP[1] */ Ins_SHP, - /* SHC[0] */ Ins_SHC, - /* SHC[1] */ Ins_SHC, - /* SHZ[0] */ Ins_SHZ, - /* SHZ[1] */ Ins_SHZ, - /* SHPIX */ Ins_SHPIX, - /* IP */ Ins_IP, - /* MSIRP[0] */ Ins_MSIRP, - /* MSIRP[1] */ Ins_MSIRP, - /* AlignRP */ Ins_ALIGNRP, - /* RTDG */ Ins_RTDG, - /* MIAP[0] */ Ins_MIAP, - /* MIAP[1] */ Ins_MIAP, - - /* NPushB */ Ins_NPUSHB, - /* NPushW */ Ins_NPUSHW, - /* WS */ Ins_WS, - /* RS */ Ins_RS, - /* WCvtP */ Ins_WCVTP, - /* RCvt */ Ins_RCVT, - /* GC[0] */ Ins_GC, - /* GC[1] */ Ins_GC, - /* SCFS */ Ins_SCFS, - /* MD[0] */ Ins_MD, - /* MD[1] */ Ins_MD, - /* MPPEM */ Ins_MPPEM, - /* MPS */ Ins_MPS, - /* FlipON */ Ins_FLIPON, - /* FlipOFF */ Ins_FLIPOFF, - /* DEBUG */ Ins_DEBUG, - - /* LT */ Ins_LT, - /* LTEQ */ Ins_LTEQ, - /* GT */ Ins_GT, - /* GTEQ */ Ins_GTEQ, - /* EQ */ Ins_EQ, - /* NEQ */ Ins_NEQ, - /* ODD */ Ins_ODD, - /* EVEN */ Ins_EVEN, - /* IF */ Ins_IF, - /* EIF */ Ins_EIF, - /* AND */ Ins_AND, - /* OR */ Ins_OR, - /* NOT */ Ins_NOT, - /* DeltaP1 */ Ins_DELTAP, - /* SDB */ Ins_SDB, - /* SDS */ Ins_SDS, - - /* ADD */ Ins_ADD, - /* SUB */ Ins_SUB, - /* DIV */ Ins_DIV, - /* MUL */ Ins_MUL, - /* ABS */ Ins_ABS, - /* NEG */ Ins_NEG, - /* FLOOR */ Ins_FLOOR, - /* CEILING */ Ins_CEILING, - /* ROUND[0] */ Ins_ROUND, - /* ROUND[1] */ Ins_ROUND, - /* ROUND[2] */ Ins_ROUND, - /* ROUND[3] */ Ins_ROUND, - /* NROUND[0] */ Ins_NROUND, - /* NROUND[1] */ Ins_NROUND, - /* NROUND[2] */ Ins_NROUND, - /* NROUND[3] */ Ins_NROUND, - - /* WCvtF */ Ins_WCVTF, - /* DeltaP2 */ Ins_DELTAP, - /* DeltaP3 */ Ins_DELTAP, - /* DeltaCn[0] */ Ins_DELTAC, - /* DeltaCn[1] */ Ins_DELTAC, - /* DeltaCn[2] */ Ins_DELTAC, - /* SROUND */ Ins_SROUND, - /* S45Round */ Ins_S45ROUND, - /* JROT */ Ins_JROT, - /* JROF */ Ins_JROF, - /* ROFF */ Ins_ROFF, - /* INS_$7B */ Ins_UNKNOWN, - /* RUTG */ Ins_RUTG, - /* RDTG */ Ins_RDTG, - /* SANGW */ Ins_SANGW, - /* AA */ Ins_AA, - - /* FlipPT */ Ins_FLIPPT, - /* FlipRgON */ Ins_FLIPRGON, - /* FlipRgOFF */ Ins_FLIPRGOFF, - /* INS_$83 */ Ins_UNKNOWN, - /* INS_$84 */ Ins_UNKNOWN, - /* ScanCTRL */ Ins_SCANCTRL, - /* SDPVTL[0] */ Ins_SDPVTL, - /* SDPVTL[1] */ Ins_SDPVTL, - /* GetINFO */ Ins_GETINFO, - /* IDEF */ Ins_IDEF, - /* ROLL */ Ins_ROLL, - /* MAX */ Ins_MAX, - /* MIN */ Ins_MIN, - /* ScanTYPE */ Ins_SCANTYPE, - /* InstCTRL */ Ins_INSTCTRL, - /* INS_$8F */ Ins_UNKNOWN, - - /* INS_$90 */ Ins_UNKNOWN, - /* INS_$91 */ Ins_UNKNOWN, - /* INS_$92 */ Ins_UNKNOWN, - /* INS_$93 */ Ins_UNKNOWN, - /* INS_$94 */ Ins_UNKNOWN, - /* INS_$95 */ Ins_UNKNOWN, - /* INS_$96 */ Ins_UNKNOWN, - /* INS_$97 */ Ins_UNKNOWN, - /* INS_$98 */ Ins_UNKNOWN, - /* INS_$99 */ Ins_UNKNOWN, - /* INS_$9A */ Ins_UNKNOWN, - /* INS_$9B */ Ins_UNKNOWN, - /* INS_$9C */ Ins_UNKNOWN, - /* INS_$9D */ Ins_UNKNOWN, - /* INS_$9E */ Ins_UNKNOWN, - /* INS_$9F */ Ins_UNKNOWN, - - /* INS_$A0 */ Ins_UNKNOWN, - /* INS_$A1 */ Ins_UNKNOWN, - /* INS_$A2 */ Ins_UNKNOWN, - /* INS_$A3 */ Ins_UNKNOWN, - /* INS_$A4 */ Ins_UNKNOWN, - /* INS_$A5 */ Ins_UNKNOWN, - /* INS_$A6 */ Ins_UNKNOWN, - /* INS_$A7 */ Ins_UNKNOWN, - /* INS_$A8 */ Ins_UNKNOWN, - /* INS_$A9 */ Ins_UNKNOWN, - /* INS_$AA */ Ins_UNKNOWN, - /* INS_$AB */ Ins_UNKNOWN, - /* INS_$AC */ Ins_UNKNOWN, - /* INS_$AD */ Ins_UNKNOWN, - /* INS_$AE */ Ins_UNKNOWN, - /* INS_$AF */ Ins_UNKNOWN, - - /* PushB[0] */ Ins_PUSHB, - /* PushB[1] */ Ins_PUSHB, - /* PushB[2] */ Ins_PUSHB, - /* PushB[3] */ Ins_PUSHB, - /* PushB[4] */ Ins_PUSHB, - /* PushB[5] */ Ins_PUSHB, - /* PushB[6] */ Ins_PUSHB, - /* PushB[7] */ Ins_PUSHB, - /* PushW[0] */ Ins_PUSHW, - /* PushW[1] */ Ins_PUSHW, - /* PushW[2] */ Ins_PUSHW, - /* PushW[3] */ Ins_PUSHW, - /* PushW[4] */ Ins_PUSHW, - /* PushW[5] */ Ins_PUSHW, - /* PushW[6] */ Ins_PUSHW, - /* PushW[7] */ Ins_PUSHW, - - /* MDRP[00] */ Ins_MDRP, - /* MDRP[01] */ Ins_MDRP, - /* MDRP[02] */ Ins_MDRP, - /* MDRP[03] */ Ins_MDRP, - /* MDRP[04] */ Ins_MDRP, - /* MDRP[05] */ Ins_MDRP, - /* MDRP[06] */ Ins_MDRP, - /* MDRP[07] */ Ins_MDRP, - /* MDRP[08] */ Ins_MDRP, - /* MDRP[09] */ Ins_MDRP, - /* MDRP[10] */ Ins_MDRP, - /* MDRP[11] */ Ins_MDRP, - /* MDRP[12] */ Ins_MDRP, - /* MDRP[13] */ Ins_MDRP, - /* MDRP[14] */ Ins_MDRP, - /* MDRP[15] */ Ins_MDRP, - - /* MDRP[16] */ Ins_MDRP, - /* MDRP[17] */ Ins_MDRP, - /* MDRP[18] */ Ins_MDRP, - /* MDRP[19] */ Ins_MDRP, - /* MDRP[20] */ Ins_MDRP, - /* MDRP[21] */ Ins_MDRP, - /* MDRP[22] */ Ins_MDRP, - /* MDRP[23] */ Ins_MDRP, - /* MDRP[24] */ Ins_MDRP, - /* MDRP[25] */ Ins_MDRP, - /* MDRP[26] */ Ins_MDRP, - /* MDRP[27] */ Ins_MDRP, - /* MDRP[28] */ Ins_MDRP, - /* MDRP[29] */ Ins_MDRP, - /* MDRP[30] */ Ins_MDRP, - /* MDRP[31] */ Ins_MDRP, - - /* MIRP[00] */ Ins_MIRP, - /* MIRP[01] */ Ins_MIRP, - /* MIRP[02] */ Ins_MIRP, - /* MIRP[03] */ Ins_MIRP, - /* MIRP[04] */ Ins_MIRP, - /* MIRP[05] */ Ins_MIRP, - /* MIRP[06] */ Ins_MIRP, - /* MIRP[07] */ Ins_MIRP, - /* MIRP[08] */ Ins_MIRP, - /* MIRP[09] */ Ins_MIRP, - /* MIRP[10] */ Ins_MIRP, - /* MIRP[11] */ Ins_MIRP, - /* MIRP[12] */ Ins_MIRP, - /* MIRP[13] */ Ins_MIRP, - /* MIRP[14] */ Ins_MIRP, - /* MIRP[15] */ Ins_MIRP, - - /* MIRP[16] */ Ins_MIRP, - /* MIRP[17] */ Ins_MIRP, - /* MIRP[18] */ Ins_MIRP, - /* MIRP[19] */ Ins_MIRP, - /* MIRP[20] */ Ins_MIRP, - /* MIRP[21] */ Ins_MIRP, - /* MIRP[22] */ Ins_MIRP, - /* MIRP[23] */ Ins_MIRP, - /* MIRP[24] */ Ins_MIRP, - /* MIRP[25] */ Ins_MIRP, - /* MIRP[26] */ Ins_MIRP, - /* MIRP[27] */ Ins_MIRP, - /* MIRP[28] */ Ins_MIRP, - /* MIRP[29] */ Ins_MIRP, - /* MIRP[30] */ Ins_MIRP, - /* MIRP[31] */ Ins_MIRP - }; -#endif - - -/****************************************************************/ -/* */ -/* RUN */ -/* */ -/* This function executes a run of opcodes. It will exit */ -/* in the following cases: */ -/* */ -/* - Errors (in which case it returns FALSE) */ -/* */ -/* - Reaching the end of the main code range (returns TRUE). */ -/* Reaching the end of a code range within a function */ -/* call is an error. */ -/* */ -/* - After executing one single opcode, if the flag */ -/* 'Instruction_Trap' is set to TRUE (returns TRUE). */ -/* */ -/* On exit whith TRUE, test IP < CodeSize to know wether it */ -/* comes from a instruction trap or a normal termination. */ -/* */ -/* */ -/* Note: The documented DEBUG opcode pops a value from */ -/* the stack. This behaviour is unsupported, here */ -/* a DEBUG opcode is always an error. */ -/* */ -/* */ -/* THIS IS THE INTERPRETER'S MAIN LOOP */ -/* */ -/* Instructions appear in the specs' order. */ -/* */ -/****************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) -#ifndef DEBUG_INTERPRETER - RunIns( PExecution_Context exc ) -#else - RunIns2( PExecution_Context exc ) -#endif - { - UShort A; - PDefRecord WITH; - PCallRecord WITH1; - - Long ins_counter = 0; /* executed instructions counter */ - -#ifdef TT_CONFIG_OPTION_STATIC_INTERPRETER - cur = *exc; -#endif - - /* set CVT functions */ - CUR.metrics.ratio = 0; - if ( CUR.metrics.x_ppem != CUR.metrics.y_ppem ) - { - /* non-square pixels, use the stretched routines */ - CUR.func_read_cvt = Read_CVT_Stretched; - CUR.func_write_cvt = Write_CVT_Stretched; - CUR.func_move_cvt = Move_CVT_Stretched; - } - else - { - /* square pixels, use normal routines */ - CUR.func_read_cvt = Read_CVT; - CUR.func_write_cvt = Write_CVT; - CUR.func_move_cvt = Move_CVT; - } - - COMPUTE_Funcs(); - Compute_Round( EXEC_ARGS (Byte)( CUR.GS.round_state ) ); - - do - { - if ( CALC_Length() != SUCCESS ) - { - CUR.error = TT_Err_Code_Overflow; - goto LErrorLabel_; - } - - /* First, let's check for empty stack and overflow */ - - CUR.args = CUR.top - (Pop_Push_Count[CUR.opcode] >> 4); - - /* `args' is the top of the stack once arguments have been popped. */ - /* One can also interpret it as the index of the last argument. */ - - if ( CUR.args < 0 ) - { - CUR.error = TT_Err_Too_Few_Arguments; - goto LErrorLabel_; - } - - CUR.new_top = CUR.args + (Pop_Push_Count[CUR.opcode] & 15); - - /* `new_top' is the new top of the stack, after the instruction's */ - /* execution. `top' will be set to `new_top' after the 'switch' */ - /* statement. */ - - if ( CUR.new_top > CUR.stackSize ) - { - CUR.error = TT_Err_Stack_Overflow; - goto LErrorLabel_; - } - - CUR.step_ins = TRUE; - CUR.error = TT_Err_Ok; - -#ifdef TT_CONFIG_OPTION_INTERPRETER_SWITCH - { - PStorage args = CUR.stack + CUR.args; - Byte opcode = CUR.opcode; - - -#undef ARRAY_BOUND_ERROR -#define ARRAY_BOUND_ERROR goto Set_Invalid_Ref - - switch ( opcode ) - { - case 0x00: /* SVTCA y */ - case 0x01: /* SVTCA x */ - case 0x02: /* SPvTCA y */ - case 0x03: /* SPvTCA x */ - case 0x04: /* SFvTCA y */ - case 0x05: /* SFvTCA x */ - { - Short AA, BB; - - - AA = (Short)(opcode & 1) << 14; - BB = AA ^ (Short)0x4000; - - if ( opcode < 4 ) - { - CUR.GS.projVector.x = AA; - CUR.GS.projVector.y = BB; - - CUR.GS.dualVector.x = AA; - CUR.GS.dualVector.y = BB; - } - - if ( (opcode & 2) == 0 ) - { - CUR.GS.freeVector.x = AA; - CUR.GS.freeVector.y = BB; - } - - COMPUTE_Funcs(); - } - break; - - case 0x06: /* SPvTL // */ - case 0x07: /* SPvTL + */ - DO_SPVTL - break; - - case 0x08: /* SFvTL // */ - case 0x09: /* SFvTL + */ - DO_SFVTL - break; - - case 0x0A: /* SPvFS */ - DO_SPVFS - break; - - case 0x0B: /* SFvFS */ - DO_SFVFS - break; - - case 0x0C: /* GPV */ - DO_GPV - break; - - case 0x0D: /* GFV */ - DO_GFV - break; - - case 0x0E: /* SFvTPv */ - DO_SFVTPV - break; - - case 0x0F: /* ISECT */ - Ins_ISECT( EXEC_ARGS args ); - break; - - case 0x10: /* SRP0 */ - DO_SRP0 - break; - - case 0x11: /* SRP1 */ - DO_SRP1 - break; - - case 0x12: /* SRP2 */ - DO_SRP2 - break; - - case 0x13: /* SZP0 */ - Ins_SZP0( EXEC_ARGS args ); - break; - - case 0x14: /* SZP1 */ - Ins_SZP1( EXEC_ARGS args ); - break; - - case 0x15: /* SZP2 */ - Ins_SZP2( EXEC_ARGS args ); - break; - - case 0x16: /* SZPS */ - Ins_SZPS( EXEC_ARGS args ); - break; - - case 0x17: /* SLOOP */ - DO_SLOOP - break; - - case 0x18: /* RTG */ - DO_RTG - break; - - case 0x19: /* RTHG */ - DO_RTHG - break; - - case 0x1A: /* SMD */ - DO_SMD - break; - - case 0x1B: /* ELSE */ - Ins_ELSE( EXEC_ARGS args ); - break; - - case 0x1C: /* JMPR */ - DO_JMPR - break; - - case 0x1D: /* SCVTCI */ - DO_SCVTCI - break; - - case 0x1E: /* SSWCI */ - DO_SSWCI - break; - - case 0x1F: /* SSW */ - DO_SSW - break; - - case 0x20: /* DUP */ - DO_DUP - break; - - case 0x21: /* POP */ - /* nothing :-) !! */ - break; - - case 0x22: /* CLEAR */ - DO_CLEAR - break; - - case 0x23: /* SWAP */ - DO_SWAP - break; - - case 0x24: /* DEPTH */ - DO_DEPTH - break; - - case 0x25: /* CINDEX */ - DO_CINDEX - break; - - case 0x26: /* MINDEX */ - Ins_MINDEX( EXEC_ARGS args ); - break; - - case 0x27: /* ALIGNPTS */ - Ins_ALIGNPTS( EXEC_ARGS args ); - break; - - case 0x28: /* ???? */ - Ins_UNKNOWN( EXEC_ARGS args ); - break; - - case 0x29: /* UTP */ - Ins_UTP( EXEC_ARGS args ); - break; - - case 0x2A: /* LOOPCALL */ - Ins_LOOPCALL( EXEC_ARGS args ); - break; - - case 0x2B: /* CALL */ - Ins_CALL( EXEC_ARGS args ); - break; - - case 0x2C: /* FDEF */ - Ins_FDEF( EXEC_ARGS args ); - break; - - case 0x2D: /* ENDF */ - Ins_ENDF( EXEC_ARGS args ); - break; - - case 0x2E: /* MDAP */ - case 0x2F: /* MDAP */ - Ins_MDAP( EXEC_ARGS args ); - break; - - - case 0x30: /* IUP */ - case 0x31: /* IUP */ - Ins_IUP( EXEC_ARGS args ); - break; - - case 0x32: /* SHP */ - case 0x33: /* SHP */ - Ins_SHP( EXEC_ARGS args ); - break; - - case 0x34: /* SHC */ - case 0x35: /* SHC */ - Ins_SHC( EXEC_ARGS args ); - break; - - case 0x36: /* SHZ */ - case 0x37: /* SHZ */ - Ins_SHZ( EXEC_ARGS args ); - break; - - case 0x38: /* SHPIX */ - Ins_SHPIX( EXEC_ARGS args ); - break; - - case 0x39: /* IP */ - Ins_IP( EXEC_ARGS args ); - break; - - case 0x3A: /* MSIRP */ - case 0x3B: /* MSIRP */ - Ins_MSIRP( EXEC_ARGS args ); - break; - - case 0x3C: /* AlignRP */ - Ins_ALIGNRP( EXEC_ARGS args ); - break; - - case 0x3D: /* RTDG */ - DO_RTDG - break; - - case 0x3E: /* MIAP */ - case 0x3F: /* MIAP */ - Ins_MIAP( EXEC_ARGS args ); - break; - - case 0x40: /* NPUSHB */ - Ins_NPUSHB( EXEC_ARGS args ); - break; - - case 0x41: /* NPUSHW */ - Ins_NPUSHW( EXEC_ARGS args ); - break; - - case 0x42: /* WS */ - DO_WS - break; - - Set_Invalid_Ref: - CUR.error = TT_Err_Invalid_Reference; - break; - - case 0x43: /* RS */ - DO_RS - break; - - case 0x44: /* WCVTP */ - DO_WCVTP - break; - - case 0x45: /* RCVT */ - DO_RCVT - break; - - case 0x46: /* GC */ - case 0x47: /* GC */ - Ins_GC( EXEC_ARGS args ); - break; - - case 0x48: /* SCFS */ - Ins_SCFS( EXEC_ARGS args ); - break; - - case 0x49: /* MD */ - case 0x4A: /* MD */ - Ins_MD( EXEC_ARGS args ); - break; - - case 0x4B: /* MPPEM */ - DO_MPPEM - break; - - case 0x4C: /* MPS */ - DO_MPS - break; - - case 0x4D: /* FLIPON */ - DO_FLIPON - break; - - case 0x4E: /* FLIPOFF */ - DO_FLIPOFF - break; - - case 0x4F: /* DEBUG */ - DO_DEBUG - break; - - case 0x50: /* LT */ - DO_LT - break; - - case 0x51: /* LTEQ */ - DO_LTEQ - break; - - case 0x52: /* GT */ - DO_GT - break; - - case 0x53: /* GTEQ */ - DO_GTEQ - break; - - case 0x54: /* EQ */ - DO_EQ - break; - - case 0x55: /* NEQ */ - DO_NEQ - break; - - case 0x56: /* ODD */ - DO_ODD - break; - - case 0x57: /* EVEN */ - DO_EVEN - break; - - case 0x58: /* IF */ - Ins_IF( EXEC_ARGS args ); - break; - - case 0x59: /* EIF */ - /* do nothing */ - break; - - case 0x5A: /* AND */ - DO_AND - break; - - case 0x5B: /* OR */ - DO_OR - break; - - case 0x5C: /* NOT */ - DO_NOT - break; - - case 0x5D: /* DELTAP1 */ - Ins_DELTAP( EXEC_ARGS args ); - break; - - case 0x5E: /* SDB */ - DO_SDB - break; - - case 0x5F: /* SDS */ - DO_SDS - break; - - case 0x60: /* ADD */ - DO_ADD - break; - - case 0x61: /* SUB */ - DO_SUB - break; - - case 0x62: /* DIV */ - DO_DIV - break; - - case 0x63: /* MUL */ - DO_MUL - break; - - case 0x64: /* ABS */ - DO_ABS - break; - - case 0x65: /* NEG */ - DO_NEG - break; - - case 0x66: /* FLOOR */ - DO_FLOOR - break; - - case 0x67: /* CEILING */ - DO_CEILING - break; - - case 0x68: /* ROUND */ - case 0x69: /* ROUND */ - case 0x6A: /* ROUND */ - case 0x6B: /* ROUND */ - DO_ROUND - break; - - case 0x6C: /* NROUND */ - case 0x6D: /* NROUND */ - case 0x6E: /* NRRUND */ - case 0x6F: /* NROUND */ - DO_NROUND - break; - - case 0x70: /* WCVTF */ - DO_WCVTF - break; - - case 0x71: /* DELTAP2 */ - case 0x72: /* DELTAP3 */ - Ins_DELTAP( EXEC_ARGS args ); - break; - - case 0x73: /* DELTAC0 */ - case 0x74: /* DELTAC1 */ - case 0x75: /* DELTAC2 */ - Ins_DELTAC( EXEC_ARGS args ); - break; - - case 0x76: /* SROUND */ - DO_SROUND - break; - - case 0x77: /* S45Round */ - DO_S45ROUND - break; - - case 0x78: /* JROT */ - DO_JROT - break; - - case 0x79: /* JROF */ - DO_JROF - break; - - case 0x7A: /* ROFF */ - DO_ROFF - break; - - case 0x7B: /* ???? */ - Ins_UNKNOWN( EXEC_ARGS args ); - break; - - case 0x7C: /* RUTG */ - DO_RUTG - break; - - case 0x7D: /* RDTG */ - DO_RDTG - break; - - case 0x7E: /* SANGW */ - case 0x7F: /* AA */ - /* nothing - obsolete */ - break; - - case 0x80: /* FLIPPT */ - Ins_FLIPPT( EXEC_ARGS args ); - break; - - case 0x81: /* FLIPRGON */ - Ins_FLIPRGON( EXEC_ARGS args ); - break; - - case 0x82: /* FLIPRGOFF */ - Ins_FLIPRGOFF( EXEC_ARGS args ); - break; - - case 0x83: /* UNKNOWN */ - case 0x84: /* UNKNOWN */ - Ins_UNKNOWN( EXEC_ARGS args ); - break; - - case 0x85: /* SCANCTRL */ - Ins_SCANCTRL( EXEC_ARGS args ); - break; - - case 0x86: /* SDPVTL */ - case 0x87: /* SDPVTL */ - Ins_SDPVTL( EXEC_ARGS args ); - break; - - case 0x88: /* GETINFO */ - Ins_GETINFO( EXEC_ARGS args ); - break; - - case 0x89: /* IDEF */ - Ins_IDEF( EXEC_ARGS args ); - break; - - case 0x8A: /* ROLL */ - Ins_ROLL( EXEC_ARGS args ); - break; - - case 0x8B: /* MAX */ - DO_MAX - break; - - case 0x8C: /* MIN */ - DO_MIN - break; - - case 0x8D: /* SCANTYPE */ - Ins_SCANTYPE( EXEC_ARGS args ); - break; - - case 0x8E: /* INSTCTRL */ - Ins_INSTCTRL( EXEC_ARGS args ); - break; - - case 0x8F: - Ins_UNKNOWN( EXEC_ARGS args ); - break; - - default: - if ( opcode >= 0xE0 ) - Ins_MIRP( EXEC_ARGS args ); - else if ( opcode >= 0xC0 ) - Ins_MDRP( EXEC_ARGS args ); - else if ( opcode >= 0xB8 ) - Ins_PUSHW( EXEC_ARGS args ); - else if ( opcode >= 0xB0 ) - Ins_PUSHB( EXEC_ARGS args ); - else - Ins_UNKNOWN( EXEC_ARGS args ); - } - - } -#else - Instruct_Dispatch[CUR.opcode]( EXEC_ARGS &CUR.stack[CUR.args] ); -#endif - if ( CUR.error != TT_Err_Ok ) - { - switch ( (Int)(CUR.error) ) - { - case TT_Err_Invalid_Opcode: /* looking for redefined instructions */ - A = 0; - - while ( A < CUR.numIDefs ) - { - WITH = &CUR.IDefs[A]; - - if ( WITH->Active && CUR.opcode == WITH->Opc ) - { - if ( CUR.callTop >= CUR.callSize ) - { - CUR.error = TT_Err_Invalid_Reference; - goto LErrorLabel_; - } - - WITH1 = &CUR.callStack[CUR.callTop]; - - WITH1->Caller_Range = CUR.curRange; - WITH1->Caller_IP = CUR.IP + 1; - WITH1->Cur_Count = 1; - WITH1->Cur_Restart = WITH->Start; - - if ( INS_Goto_CodeRange( WITH->Range, WITH->Start ) == FAILURE ) - goto LErrorLabel_; - - goto LSuiteLabel_; - } - else - { - A++; - continue; - } - } - - CUR.error = TT_Err_Invalid_Opcode; - goto LErrorLabel_; -/* break; Unreachable code warning suppress. Leave in case a later - change to remind the editor to consider break; */ - - default: - goto LErrorLabel_; -/* break; */ - } - } - - CUR.top = CUR.new_top; - - if ( CUR.step_ins ) - CUR.IP += CUR.length; - - /* increment instruction counter and check if we didn't */ - /* run this program for too long ?? (e.g. infinite loops) */ - if ( ++ins_counter > MAX_RUNNABLE_OPCODES ) - { - CUR.error = TT_Err_Execution_Too_Long; - goto LErrorLabel_; - } - - LSuiteLabel_: - - if ( CUR.IP >= CUR.codeSize ) - { - if ( CUR.callTop > 0 ) - { - CUR.error = TT_Err_Code_Overflow; - goto LErrorLabel_; - } - else - goto LNo_Error_; - } - } while ( !CUR.instruction_trap ); - - LNo_Error_: - CUR.error = TT_Err_Ok; - - LErrorLabel_: - -#ifdef TT_CONFIG_OPTION_STATIC_INTERPRETER - *exc = cur; -#endif - - return CUR.error; - - - } - - - -#ifdef DEBUG_INTERPRETER - - /* This function must be declared by the debugger front end */ - /* in order to specify which code range to debug. */ - - int debug_coderange = TT_CodeRange_Glyph; - - FT_INTERNAL_FUNC( TT_Error ) - RunIns( PExecution_Context exc ) - { - Int A, diff; - ULong next_IP; - Char ch, oldch; - char *temp; - int key; - - TT_Error error = 0; - - TGlyph_Zone save; - TGlyph_Zone pts; - -#define TT_Round_Off 5 -#define TT_Round_To_Half_Grid 0 -#define TT_Round_To_Grid 1 -#define TT_Round_To_Double_Grid 2 -#define TT_Round_Up_To_Grid 4 -#define TT_Round_Down_To_Grid 3 -#define TT_Round_Super 6 -#define TT_Round_Super_45 7 - - const String* round_str[8] = - { - "to half-grid", - "to grid", - "to double grid", - "down to grid", - "up to grid", - "off", - "super", - "super 45" - }; - - /* Check that we're running the code range that is effectively */ - /* asked by the debugger front end. */ - if ( CUR.curRange != debug_coderange ) - return RunIns2( &CUR ); - - pts = CUR.pts; - - save.n_points = pts.n_points; - save.n_contours = pts.n_contours; - - MEM_Alloc( save.org, sizeof ( TT_Vector ) * save.n_points ); - MEM_Alloc( save.cur, sizeof ( TT_Vector ) * save.n_points ); - MEM_Alloc( save.touch, sizeof ( Byte ) * save.n_points ); - - CUR.instruction_trap = 1; - - oldch = '\0'; - - do - { - if ( CUR.IP < CUR.codeSize ) - { -#ifdef TT_CONFIG_OPTION_STATIC_INTERPRETER - cur = *exc; -#endif - CALC_Length(); - - CUR.args = CUR.top - (Pop_Push_Count[CUR.opcode] >> 4); - - /* `args' is the top of the stack once arguments have been popped. */ - /* One can also interpret it as the index of the last argument. */ - - /* Print the current line. We use a 80-columns console with the */ - /* following formatting: */ - /* */ - /* [loc]:[addr] [opcode] [disassemby] [a][b]|[c][d] */ - /* */ - - { - char temp[80]; - int n, col, pop; - int args = CUR.args; - - - sprintf( temp, "%78c\n", ' ' ); - - /* first letter of location */ - switch ( CUR.curRange ) - { - case TT_CodeRange_Glyph: - temp[0] = 'g'; - break; - case TT_CodeRange_Cvt: - temp[0] = 'c'; - break; - default: - temp[0] = 'f'; - } - - /* current IP */ - sprintf( temp+1, "%04lx: %02x %-36.36s", - CUR.IP, - CUR.opcode, - Cur_U_Line(&CUR) ); - - strncpy( temp+46, " (", 2 ); - - args = CUR.top - 1; - pop = Pop_Push_Count[CUR.opcode] >> 4; - col = 48; - for ( n = 6; n > 0; n-- ) - { - if ( pop == 0 ) - temp[col-1] = (temp[col-1] == '(' ? ' ' : ')' ); - - if ( args < CUR.top && args >= 0 ) - sprintf( temp+col, "%04lx", CUR.stack[args] ); - else - sprintf( temp+col, " " ); - - temp[col+4] = ' '; - col += 5; - pop--; - args--; - } - temp[78] = '\n'; - temp[79] = '\0'; - PTRACE0(( temp )); - } - - /* First, check for empty stack and overflow */ - if ( CUR.args < 0 ) - { - PTRACE0(( "ERROR : Too few arguments\n" )); - CUR.error = TT_Err_Too_Few_Arguments; - goto LErrorLabel_; - } - - CUR.new_top = CUR.args + (Pop_Push_Count[CUR.opcode] & 15); - - /* new_top is the new top of the stack, after the instruction's */ - /* execution. top will be set to new_top after the 'case' */ - - if ( CUR.new_top > CUR.stackSize ) - { - PTRACE0(( "ERROR : Stack overflow\n" )); - CUR.error = TT_Err_Stack_Overflow; - goto LErrorLabel_; - } - -#ifdef TT_CONFIG_OPTION_STATIC_INTERPRETER - *exc = cur; -#endif - } - else - PTRACE0(( "End of program reached.\n" )); - - key = 0; - do - { - /* read keyboard */ - - ch = getch(); - - switch ( ch ) - { - /* Help - show keybindings */ - case '?': - PTRACE0(( "FDebug Help\n\n" )); - PTRACE0(( "? Show this page\n" )); - PTRACE0(( "q Quit debugger\n" )); - PTRACE0(( "n Skip to next instruction\n" )); - PTRACE0(( "s Step into\n" )); - PTRACE0(( "v Show vector info\n" )); - PTRACE0(( "g Show graphics state\n" )); - PTRACE0(( "p Show points zone\n\n" )); - break; - - /* Show vectors */ - case 'v': - PTRACE0(( "freedom (%04hx,%04hx)\n", CUR.GS.freeVector.x, - CUR.GS.freeVector.y )); - PTRACE0(( "projection (%04hx,%04hx)\n", CUR.GS.projVector.x, - CUR.GS.projVector.y )); - PTRACE0(( "dual (%04hx,%04hx)\n\n", CUR.GS.dualVector.x, - CUR.GS.dualVector.y )); - break; - - /* Show graphics state */ - case 'g': - PTRACE0(( "rounding %s\n", round_str[CUR.GS.round_state] )); - PTRACE0(( "min dist %04lx\n", CUR.GS.minimum_distance )); - PTRACE0(( "cvt_cutin %04lx\n", CUR.GS.control_value_cutin )); - break; - - /* Show points table */ - case 'p': - for ( A = 0; A < CUR.pts.n_points; A++ ) - { - PTRACE0(( "%02hx ", A )); - PTRACE0(( "%08lx,%08lx - ", pts.org[A].x, pts.org[A].y )); - PTRACE0(( "%08lx,%08lx\n", pts.cur[A].x, pts.cur[A].y )); - } - PTRACE0(( "\n" )); - break; - - default: - key = 1; - } - } while ( !key ); - - MEM_Copy( save.org, pts.org, pts.n_points * sizeof ( TT_Vector ) ); - MEM_Copy( save.cur, pts.cur, pts.n_points * sizeof ( TT_Vector ) ); - MEM_Copy( save.touch, pts.touch, pts.n_points ); - - /* a return indicate the last command */ - if (ch == '\r') - ch = oldch; - - switch ( ch ) - { - /* Quit debugger */ - case 'q': - goto LErrorLabel_; - - /* Step over */ - case 'n': - if ( CUR.IP < CUR.codeSize ) - { - /* `step over' is equivalent to `step into' except if */ - /* the current opcode is a CALL or LOOPCALL */ - if ( CUR.opcode != 0x2a && CUR.opcode != 0x2b ) - goto Step_into; - - /* otherwise, loop execution until we reach the next opcode */ - next_IP = CUR.IP + CUR.length; - while ( CUR.IP != next_IP ) - { - if ( ( error = RunIns2( &CUR ) ) != 0 ) - goto LErrorLabel_; - } - } - oldch = ch; - break; - - /* Step into */ - case 's': - if ( CUR.IP < CUR.codeSize ) - - Step_into: - if ( ( error = RunIns2( &CUR ) ) != 0 ) - goto LErrorLabel_; - oldch = ch; - break; - - default: - PTRACE0(( "unknown command. Press ? for help\n" )); - oldch = '\0'; - } - - for ( A = 0; A < pts.n_points; A++ ) - { - diff = 0; - if ( save.org[A].x != pts.org[A].x ) diff |= 1; - if ( save.org[A].y != pts.org[A].y ) diff |= 2; - if ( save.cur[A].x != pts.cur[A].x ) diff |= 4; - if ( save.cur[A].y != pts.cur[A].y ) diff |= 8; - if ( save.touch[A] != pts.touch[A] ) diff |= 16; - - if ( diff ) - { - PTRACE0(( "%02hx ", A )); - - if ( diff & 16 ) temp = "(%01hx)"; else temp = " %01hx "; - PTRACE0(( temp, save.touch[A] & 7 )); - - if ( diff & 1 ) temp = "(%08lx)"; else temp = " %08lx "; - PTRACE0(( temp, save.org[A].x )); - - if ( diff & 2 ) temp = "(%08lx)"; else temp = " %08lx "; - PTRACE0(( temp, save.org[A].y )); - - if ( diff & 4 ) temp = "(%08lx)"; else temp = " %08lx "; - PTRACE0(( temp, save.cur[A].x )); - - if ( diff & 8 ) temp = "(%08lx)"; else temp = " %08lx "; - PTRACE0(( temp, save.cur[A].y )); - - PTRACE0(( "\n" )); - - PTRACE0(( "%02hx ", A )); - - if ( diff & 16 ) temp = "[%01hx]"; else temp = " %01hx "; - PTRACE0(( temp, pts.touch[A] & 7 )); - - if ( diff & 1 ) temp = "[%08lx]"; else temp = " %08lx "; - PTRACE0(( temp, pts.org[A].x )); - - if ( diff & 2 ) temp = "[%08lx]"; else temp = " %08lx "; - PTRACE0(( temp, pts.org[A].y )); - - if ( diff & 4 ) temp = "[%08lx]"; else temp = " %08lx "; - PTRACE0(( temp, pts.cur[A].x )); - - if ( diff & 8 ) temp = "[%08lx]"; else temp = " %08lx "; - PTRACE0(( temp, pts.cur[A].y )); - - PTRACE0(( "\n\n" )); - } - } - } while ( TRUE ); - - LErrorLabel_: - - return error; - } - -#endif /* DEBUG_INTERPRETER */ - - -#endif /* TT_CONFIG_OPTION_BYTECODE_INTERPRETER */ - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/ttinterp.h b/Build/source/libs/freetype/freetype-1.5/lib/ttinterp.h deleted file mode 100644 index 2c92a0ae59d..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/ttinterp.h +++ /dev/null @@ -1,55 +0,0 @@ -/******************************************************************* - * - * ttinterp.h 2.2 - * - * TrueType bytecode intepreter. - * - * Copyright 1996-2001 by - * David Turner, Robert Wilhelm, and Werner Lemberg - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - * - * Changes between 2.2 and 2.1: - * - * - a small bugfix in the Push opcodes - * - * Changes between 2.1 and 2.0: - * - * - created the TTExec component to take care of all execution - * context management. The interpreter has now one single - * function. - * - * - made some changes to support re-entrancy. The re-entrant - * interpreter is smaller! - * - ******************************************************************/ - -#ifndef TTINTERP_H -#define TTINTERP_H - -#include "ttconfig.h" -#include "ttobjs.h" - - -#ifdef __cplusplus - extern "C" { -#endif - - /* Run instructions in current execution context */ - - FT_INTERNAL_DEF( TT_Error ) - RunIns( PExecution_Context exc ); - -#ifdef __cplusplus - } -#endif - -#endif /* TTINTERP_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/ttload.c b/Build/source/libs/freetype/freetype-1.5/lib/ttload.c deleted file mode 100644 index 0cf2894aa71..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/ttload.c +++ /dev/null @@ -1,1598 +0,0 @@ - -/******************************************************************* - * - * ttload.c 1.0 - * - * TrueType Tables Loader. - * - * Copyright 1996-2001, 2002 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - ******************************************************************/ - -#include "tttypes.h" -#include "ttdebug.h" -#include "ttcalc.h" -#include "ttfile.h" - -#include "tttables.h" -#include "ttobjs.h" - -#include "ttmemory.h" -#include "tttags.h" -#include "ttload.h" - -/* required by the tracing mode */ -#undef TT_COMPONENT -#define TT_COMPONENT trace_load - -/* In all functions, the stream is taken from the 'face' object */ -#define DEFINE_LOCALS DEFINE_LOAD_LOCALS( face->stream ) -#define DEFINE_LOCALS_WO_FRAME DEFINE_LOAD_LOCALS_WO_FRAME( face->stream ) - - -/******************************************************************* - * - * Function : LookUp_TrueType_Table - * - * Description : Looks for a TrueType table by name. - * - * Input : face face table to look for - * tag searched tag - * - * Output : Index of table if found, -1 otherwise. - * - ******************************************************************/ - - FT_EXPORT_FUNC( Long ) - TT_LookUp_Table( PFace face, - ULong tag ) - { - UShort i; - - - PTRACE4(( "TT_LookUp_Table( %08lx, %c%c%c%c )\n", - (Long)face, - (Char)(tag >> 24), - (Char)(tag >> 16), - (Char)(tag >> 8), - (Char)(tag) )); - - for ( i = 0; i < face->numTables; i++ ) - if ( face->dirTables[i].Tag == tag ) - return i; - - PTRACE4(( " Could not find table!\n" )); - return -1; - } - - -/******************************************************************* - * - * Function : Load_TrueType_Collection - * - * Description : Loads the TTC table directory into face table. - * - * Input : face face record to look for - * - * Output : Error code. - * - ******************************************************************/ - - static TT_Error Load_TrueType_Collection( PFace face ) - { - DEFINE_LOCALS; - - ULong n; - - - PTRACE3(( "Load_TrueType_Collection( %08lx )\n", (long)face )); - - if ( FILE_Seek ( 0L ) || - ACCESS_Frame( 12L ) ) - return error; - - face->ttcHeader.Tag = GET_Tag4(); - face->ttcHeader.version = GET_Long(); - face->ttcHeader.DirCount = GET_Long(); - - FORGET_Frame(); - - if ( face->ttcHeader.Tag != TTAG_ttcf ) - { - face->ttcHeader.Tag = 0; - face->ttcHeader.version = 0; - face->ttcHeader.DirCount = 0; - - face->ttcHeader.TableDirectory = NULL; - - PTRACE3(("skipped.\n")); - - return TT_Err_File_Is_Not_Collection; - } - - if ( ALLOC_ARRAY( face->ttcHeader.TableDirectory, - face->ttcHeader.DirCount, - ULong ) || - ACCESS_Frame( face->ttcHeader.DirCount * 4L ) ) - return error; - - for ( n = 0; n < face->ttcHeader.DirCount; n++ ) - face->ttcHeader.TableDirectory[n] = GET_ULong(); - - FORGET_Frame(); - - PTRACE3(( "collections directory loaded.\n" )); - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Load_TrueType_Directory - * - * Description : Loads the table directory into face table. - * - * Input : face face record to look for - * - * faceIndex the index of the TrueType font, when - * we're opening a collection. - * - * Output : SUCCESS on success. FAILURE on error. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Load_TrueType_Directory( PFace face, - ULong faceIndex ) - { - DEFINE_LOCALS; - - UShort n, limit; - TTableDir tableDir; - - PTableDirEntry entry; - - - PTRACE2(("Load_TT_Directory( %08lx, %ld )\n", (long)face, faceIndex)); - - error = Load_TrueType_Collection( face ); - - if ( error ) - { - if ( error != TT_Err_File_Is_Not_Collection ) - return error; - - /* the file isn't a collection, exit if we're asking */ - /* for a collected font */ - if ( faceIndex != 0 ) - return error; - - /* Now skip to the beginning of the file */ - if ( FILE_Seek( 0L ) ) - return error; - } - else - { - /* The file is a collection. Check the font index */ - if ( faceIndex >= face->ttcHeader.DirCount ) - return TT_Err_Invalid_Argument; - - /* select a TrueType font in the ttc file */ - if ( FILE_Seek( face->ttcHeader.TableDirectory[faceIndex] ) ) - return error; - } - - if ( ACCESS_Frame( 12L ) ) - return error; - - tableDir.version = GET_Long(); - tableDir.numTables = GET_UShort(); - - tableDir.searchRange = GET_UShort(); - tableDir.entrySelector = GET_UShort(); - tableDir.rangeShift = GET_UShort(); - - FORGET_Frame(); - - PTRACE2(( "-- Tables count : %12u\n", tableDir.numTables )); - PTRACE2(( "-- Format version : %08lx\n", tableDir.version )); - - /* Check that we have a 'sfnt' format there */ - - if ( tableDir.version != 0x00010000 && /* MS fonts */ - tableDir.version != 0x74727565 && /* Mac fonts */ - tableDir.version != 0x00000000 ) /* some Korean fonts */ - { - PERROR(( "!! invalid file format" )); - return TT_Err_Invalid_File_Format; - } - - face->numTables = tableDir.numTables; - - if ( ALLOC_ARRAY( face->dirTables, - face->numTables, - TTableDirEntry ) ) - return error; - - if ( ACCESS_Frame( face->numTables * 16L ) ) - return error; - - limit = face->numTables; - entry = face->dirTables; - - for ( n = 0; n < limit; n++ ) - { /* loop through the tables and get all entries */ - entry->Tag = GET_Tag4(); - entry->CheckSum = GET_ULong(); - entry->Offset = GET_Long(); - entry->Length = GET_Long(); - - PTRACE2(( " %c%c%c%c - %08lx - %08lx\n", - (Char)(entry->Tag >> 24), - (Char)(entry->Tag >> 16), - (Char)(entry->Tag >> 8 ), - (Char)(entry->Tag), - entry->Offset, - entry->Length )); - entry++; - } - - FORGET_Frame(); - - PTRACE2(( "Directory loaded\n\n" )); - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Load_TrueType_MaxProfile - * - * Description : Loads the maxp table into face table. - * - * Input : face face table to look for - * - * Output : Error code. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Load_TrueType_MaxProfile( PFace face ) - { - DEFINE_LOCALS; - - Long i; - PMaxProfile maxProfile = &face->maxProfile; - - - PTRACE2(( "Load_TT_MaxProfile( %08lx )\n", (long)face )); - - if ( ( i = TT_LookUp_Table( face, TTAG_maxp ) ) < 0 ) - return TT_Err_Max_Profile_Missing; - - if ( FILE_Seek( face->dirTables[i].Offset ) ) /* seek to maxprofile */ - return error; - - if ( ACCESS_Frame( 32L ) ) /* read into frame */ - return error; - - /* read frame data into face table */ - maxProfile->version = GET_ULong(); - - maxProfile->numGlyphs = GET_UShort(); - - maxProfile->maxPoints = GET_UShort(); - maxProfile->maxContours = GET_UShort(); - maxProfile->maxCompositePoints = GET_UShort(); - maxProfile->maxCompositeContours = GET_UShort(); - - maxProfile->maxZones = GET_UShort(); - maxProfile->maxTwilightPoints = GET_UShort(); - - maxProfile->maxStorage = GET_UShort(); - maxProfile->maxFunctionDefs = GET_UShort(); - maxProfile->maxInstructionDefs = GET_UShort(); - maxProfile->maxStackElements = GET_UShort(); - maxProfile->maxSizeOfInstructions = GET_UShort(); - maxProfile->maxComponentElements = GET_UShort(); - maxProfile->maxComponentDepth = GET_UShort(); - - FORGET_Frame(); - - /* XXX : an adjustement that is necessary to load certain */ - /* broken fonts like "Keystrokes MT" :-( */ - /* */ - /* We allocate 64 function entries by default when */ - /* the maxFunctionDefs field is null. */ - - if (maxProfile->maxFunctionDefs == 0) - maxProfile->maxFunctionDefs = 64; - - face->numGlyphs = maxProfile->numGlyphs; - - face->maxPoints = MAX( maxProfile->maxCompositePoints, - maxProfile->maxPoints ); - face->maxContours = MAX( maxProfile->maxCompositeContours, - maxProfile->maxContours ); - face->maxComponents = maxProfile->maxComponentElements + - maxProfile->maxComponentDepth; - - /* XXX: Some fonts have maxComponents set to 0; we will */ - /* then use 16 of them by default. */ - if ( face->maxComponents == 0 ) - face->maxComponents = 16; - - /* We also increase maxPoints and maxContours in order to support */ - /* some broken fonts. */ - face->maxPoints += 8; - face->maxContours += 4; - - PTRACE2(( "GASP loaded.\n" )); - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Load_TrueType_Gasp - * - * Description : Loads the TrueType Gasp table into the face - * table. - * - * Input : face face table to look for - * - * Output : Error code. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Load_TrueType_Gasp( PFace face ) - { - DEFINE_LOCALS; - - Long i; - UShort j; - TGasp* gas; - GaspRange* gaspranges; - - - PTRACE2(( "Load_TT_Gasp( %08lx )\n", (long)face )); - - if ( ( i = TT_LookUp_Table( face, TTAG_gasp ) ) < 0 ) - return TT_Err_Ok; /* gasp table is not required */ - - if ( FILE_Seek( face->dirTables[i].Offset ) || - ACCESS_Frame( 4L ) ) - return error; - - gas = &face->gasp; - - gas->version = GET_UShort(); - gas->numRanges = GET_UShort(); - - FORGET_Frame(); - - PTRACE3(( "number of ranges = %d\n", gas->numRanges )); - - if ( ALLOC_ARRAY( gaspranges, gas->numRanges, GaspRange ) || - ACCESS_Frame( gas->numRanges * 4L ) ) - goto Fail; - - face->gasp.gaspRanges = gaspranges; - - for ( j = 0; j < gas->numRanges; j++ ) - { - gaspranges[j].maxPPEM = GET_UShort(); - gaspranges[j].gaspFlag = GET_UShort(); - - PTRACE3(( " [max:%d flag:%d]", - gaspranges[j].maxPPEM, - gaspranges[j].gaspFlag )); - } - PTRACE3(("\n")); - - FORGET_Frame(); - - PTRACE2(( "GASP loaded\n" )); - return TT_Err_Ok; - - Fail: - FREE( gaspranges ); - gas->numRanges = 0; - return error; - } - - -/******************************************************************* - * - * Function : Load_TrueType_Header - * - * Description : Loads the TrueType header table into the face - * table. - * - * Input : face face table to look for - * - * Output : Error code. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Load_TrueType_Header( PFace face ) - { - DEFINE_LOCALS; - - Long i; - TT_Header* header; - - - PTRACE2(( "Load_TT_Header( %08lx )\n", (long)face )); - - if ( ( i = TT_LookUp_Table( face, TTAG_head ) ) < 0 ) - { - PTRACE0(( "Font Header is missing !!\n" )); - return TT_Err_Header_Table_Missing; - } - - if ( FILE_Seek( face->dirTables[i].Offset ) || - ACCESS_Frame( 54L ) ) - return error; - - header = &face->fontHeader; - - header->Table_Version = GET_ULong(); - header->Font_Revision = GET_ULong(); - - header->CheckSum_Adjust = GET_Long(); - header->Magic_Number = GET_Long(); - - header->Flags = GET_UShort(); - header->Units_Per_EM = GET_UShort(); - - header->Created [0] = GET_Long(); - header->Created [1] = GET_Long(); - header->Modified[0] = GET_Long(); - header->Modified[1] = GET_Long(); - - header->xMin = GET_Short(); - header->yMin = GET_Short(); - header->xMax = GET_Short(); - header->yMax = GET_Short(); - - header->Mac_Style = GET_UShort(); - header->Lowest_Rec_PPEM = GET_UShort(); - - header->Font_Direction = GET_Short(); - header->Index_To_Loc_Format = GET_Short(); - header->Glyph_Data_Format = GET_Short(); - - FORGET_Frame(); - - PTRACE2(( " Units per EM : %8u\n", header->Units_Per_EM )); - PTRACE2(( " IndexToLoc : %8d\n", header->Index_To_Loc_Format )); - PTRACE2(( "Font Header Loaded.\n" )); - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Load_TrueType_Metrics - * - * Description : Loads the horizontal or vertical metrics table - * into face object. - * - * Input : face - * vertical set to true when loading the vmtx table, - * or false for hmtx - * - * Output : Error code. - * - ******************************************************************/ - - static - TT_Error Load_TrueType_Metrics( PFace face, - Bool vertical ) - { - DEFINE_LOCALS; - - Long n, num_shorts, num_shorts_checked, num_longs; - - PLongMetrics* longs; - PShortMetrics* shorts; - - PLongMetrics long_metric; - - - PTRACE2(( "Load_TT_%s_Metrics( %08lx )\n", - vertical ? "Vertical" : "Horizontal", - (long)face )); - - if ( vertical ) - { - /* The table is optional, quit silently if it wasn't found */ - /* XXX : Some fonts have a valid vertical header with a non-null */ - /* "number_of_VMetrics" fields, but no corresponding */ - /* 'vmtx' table to get the metrics from (e.g. mingliu) */ - /* */ - /* For safety, we set the field to 0 ! */ - /* */ - n = TT_LookUp_Table( face, TTAG_vmtx ); - if ( n < 0 ) - { - /* Set the number_Of_VMetrics to 0! */ - PTRACE2(( " no vertical header in file.\n" )); - face->verticalHeader.number_Of_VMetrics = 0; - return TT_Err_Ok; - } - - num_longs = face->verticalHeader.number_Of_VMetrics; - longs = (PLongMetrics*)&face->verticalHeader.long_metrics; - shorts = (PShortMetrics*)&face->verticalHeader.short_metrics; - } - else - { - if ( ( n = TT_LookUp_Table( face, TTAG_hmtx ) ) < 0 ) - { - PERROR(( "!! No Horizontal metrics in file !!\n" )); - return TT_Err_Hmtx_Table_Missing; - } - - num_longs = face->horizontalHeader.number_Of_HMetrics; - longs = (PLongMetrics*)&face->horizontalHeader.long_metrics; - shorts = (PShortMetrics*)&face->horizontalHeader.short_metrics; - } - - /* never trust derived values! */ - - num_shorts = face->maxProfile.numGlyphs - num_longs; - num_shorts_checked = ( face->dirTables[n].Length - num_longs * 4 ) / 2; - - if ( num_shorts < 0 ) /* sanity check */ - { - PERROR(( "!! more metrics than glyphs!\n" )); - if ( vertical ) - return TT_Err_Invalid_Vert_Metrics; - else - return TT_Err_Invalid_Horiz_Metrics; - } - - if ( ALLOC_ARRAY( *longs, num_longs, TLongMetrics ) || - ALLOC_ARRAY( *shorts, num_shorts, TShortMetrics ) ) - return error; - - if ( FILE_Seek( face->dirTables[n].Offset ) || - ACCESS_Frame( face->dirTables[n].Length ) ) - return error; - - long_metric = *longs; - for ( n = 0; n < num_longs; n++ ) - { - long_metric->advance = GET_UShort(); - long_metric->bearing = GET_Short(); - long_metric++; - } - - /* do we have an inconsistent number of metric values? */ - - if ( num_shorts > num_shorts_checked ) - { - for ( n = 0; n < num_shorts_checked; n++ ) - (*shorts)[n] = GET_Short(); - - /* we fill up the missing left side bearings with the */ - /* last valid value. Since this will occur for buggy CJK */ - /* fonts usually, nothing serious will happen. */ - - for ( n = num_shorts_checked; n < num_shorts; n++ ) - (*shorts)[n] = (*shorts)[num_shorts_checked - 1]; - } - else - { - for ( n = 0; n < num_shorts; n++ ) - (*shorts)[n] = GET_Short(); - } - - FORGET_Frame(); - - PTRACE2(( "loaded\n" )); - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Load_TrueType_Metrics_Header - * - * Description : Loads either the "hhea" or "vhea" table in memory - * - * Input : face face table to look for - * vertical a boolean. When set, queries the optional - * "vhea" table. Otherwise, load the mandatory - * "hhea" horizontal header. - * - * Output : Error code. - * - * Note : This function now loads the corresponding metrics table - * (either hmtx or vmtx) and attaches it to the header. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Load_TrueType_Metrics_Header( PFace face, - Bool vertical ) - { - DEFINE_LOCALS; - - Long i; - - TT_Horizontal_Header* header; - - - PTRACE2(( vertical ? "Vertical header" : "Horizontal header " )); - - if ( vertical ) - { - face->verticalInfo = 0; - - /* The vertical header table is optional, so return quietly if */ - /* we don't find it.. */ - if ( ( i = TT_LookUp_Table( face, TTAG_vhea ) ) < 0 ) - return TT_Err_Ok; - - face->verticalInfo = 1; - header = (TT_Horizontal_Header*)&face->verticalHeader; - } - else - { - /* The orizontal header is mandatory, return an error if we */ - /* don't find it. */ - if ( ( i = TT_LookUp_Table( face, TTAG_hhea ) ) < 0 ) - return TT_Err_Horiz_Header_Missing; - - header = &face->horizontalHeader; - } - - if ( FILE_Seek( face->dirTables[i].Offset ) || - ACCESS_Frame( 36L ) ) - return error; - - header->Version = GET_ULong(); - header->Ascender = GET_Short(); - header->Descender = GET_Short(); - header->Line_Gap = GET_Short(); - - header->advance_Width_Max = GET_UShort(); - - header->min_Left_Side_Bearing = GET_Short(); - header->min_Right_Side_Bearing = GET_Short(); - header->xMax_Extent = GET_Short(); - header->caret_Slope_Rise = GET_Short(); - header->caret_Slope_Run = GET_Short(); - - header->Reserved0 = GET_Short(); /* this is caret_Offset for - vertical headers */ - header->Reserved1 = GET_Short(); - header->Reserved2 = GET_Short(); - header->Reserved3 = GET_Short(); - header->Reserved4 = GET_Short(); - - header->metric_Data_Format = GET_Short(); - header->number_Of_HMetrics = GET_UShort(); - - FORGET_Frame(); - - header->long_metrics = NULL; - header->short_metrics = NULL; - - PTRACE2(( "loaded\n" )); - - /* Now try to load the corresponding metrics */ - - return Load_TrueType_Metrics( face, vertical ); - } - - -/******************************************************************* - * - * Function : Load_TrueType_Locations - * - * Description : Loads the location table into face table. - * - * Input : face face table to look for - * - * Output : Error code. - * - * NOTE: - * The Font Header *must* be loaded in the leading segment - * calling this function. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Load_TrueType_Locations( PFace face ) - { - DEFINE_LOCALS; - - Long n, limit; - Short LongOffsets; - - - PTRACE2(( "Locations " )); - - LongOffsets = face->fontHeader.Index_To_Loc_Format; - - if ( ( n = TT_LookUp_Table( face, TTAG_loca ) ) < 0 ) - return TT_Err_Locations_Missing; - - if ( FILE_Seek( face->dirTables[n].Offset ) ) - return error; - - if ( LongOffsets != 0 ) - { - face->numLocations = face->dirTables[n].Length >> 2; - - PTRACE2(( "(32 bit offsets): %12lu ", - face->numLocations )); - - if ( ALLOC_ARRAY( face->glyphLocations, - face->numLocations, - Long ) ) - return error; - - if ( ACCESS_Frame( face->numLocations * 4L ) ) - return error; - - limit = face->numLocations; - - for ( n = 0; n < limit; n++ ) - face->glyphLocations[n] = GET_Long(); - - FORGET_Frame(); - } - else - { - face->numLocations = face->dirTables[n].Length >> 1; - - PTRACE2(( "(16 bit offsets): %12lu ", - face->numLocations )); - - if ( ALLOC_ARRAY( face->glyphLocations, - face->numLocations, - Long ) ) - return error; - - if ( ACCESS_Frame( face->numLocations * 2L ) ) - return error; - - limit = face->numLocations; - - for ( n = 0; n < limit; n++ ) - face->glyphLocations[n] = - (Long)((ULong)GET_UShort() * 2); - - FORGET_Frame(); - } - - PTRACE2(( "loaded\n" )); - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Load_TrueType_Names - * - * Description : Loads the name table into face table. - * - * Input : face face table to look for - * - * Output : Error code. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Load_TrueType_Names( PFace face ) - { - DEFINE_LOCALS; - - UShort i, bytes; - Long n; - PByte storage; - - TName_Table* names; - TNameRec* namerec; - - - PTRACE2(( "Names " )); - - if ( ( n = TT_LookUp_Table( face, TTAG_name ) ) < 0 ) - { - /* The name table is required so indicate failure. */ - PTRACE2(( "is missing!\n" )); - - return TT_Err_Name_Table_Missing; - } - - /* Seek to the beginning of the table and check the frame access. */ - /* The names table has a 6 byte header. */ - if ( FILE_Seek( face->dirTables[n].Offset ) || - ACCESS_Frame( 6L ) ) - return error; - - names = &face->nameTable; - - /* Load the initial names data. */ - names->format = GET_UShort(); - names->numNameRecords = GET_UShort(); - names->storageOffset = GET_UShort(); - - FORGET_Frame(); - - /* Allocate the array of name records. */ - if ( ALLOC_ARRAY( names->names, - names->numNameRecords, - TNameRec ) || - ACCESS_Frame( names->numNameRecords * 12L ) ) - { - names->numNameRecords = 0; - goto Fail; - } - - /* Load the name records and determine how much storage is needed */ - /* to hold the strings themselves. */ - - for ( i = bytes = 0; i < names->numNameRecords; i++ ) - { - namerec = names->names + i; - namerec->platformID = GET_UShort(); - namerec->encodingID = GET_UShort(); - namerec->languageID = GET_UShort(); - namerec->nameID = GET_UShort(); - namerec->stringLength = GET_UShort(); - namerec->stringOffset = GET_UShort(); - -#if 0 - /* check the ids */ - if ( namerec->platformID <= 3 ) - { -#endif - /* this test takes care of 'holes' in the names tables, as */ - /* reported by Erwin */ - if ( (namerec->stringOffset + namerec->stringLength) > bytes ) - bytes = namerec->stringOffset + namerec->stringLength; -#if 0 - } -#endif - } - - FORGET_Frame(); - - /* Allocate storage for the strings if they exist. */ - - names->storage = NULL; - - if ( bytes > 0 ) - { - if ( ALLOC( storage, bytes ) || - FILE_Read_At( face->dirTables[n].Offset + names->storageOffset, - (void*)storage, - bytes ) ) - goto Fail_Storage; - - names->storage = storage; - - /* Go through and assign the string pointers to the name records. */ - - for ( i = 0; i < names->numNameRecords; i++ ) - { - namerec = names->names + i; - namerec->string = storage + names->names[i].stringOffset; - -/* It is possible (but rather unlikely) that a new platform ID will be */ -/* added by Apple, so we can't rule out IDs > 3. */ - -#if 0 - if ( namerec->platformID <= 3 ) - namerec->string = storage + names->names[i].stringOffset; - else - { - namerec->string = NULL; - namerec->stringLength = 0; - } -#endif - } - } - -#ifdef DEBUG_LEVEL_TRACE - - for ( i = 0; i < names->numNameRecords; i++ ) - { - int j; - - - PTRACE2(( "%d %d %x %d ", - names->names[i].platformID, - names->names[i].encodingID, - names->names[i].languageID, - names->names[i].nameID )); - - /* I know that M$ encoded strings are Unicode, */ - /* but this works reasonable well for debugging purposes. */ - for ( j = 0; j < names->names[i].stringLength; j++ ) - { - if (names->names[i].string) - { - Char c = *(names->names[i].string + j); - - - if ( (Byte)c < 128 ) - PTRACE2(( "%c", c )); - } - } - - PTRACE2(( "\n" )); - } - -#endif /* DEBUG_LEVEL_TRACE */ - - PTRACE2(( "loaded\n" )); - return TT_Err_Ok; - - Fail_Storage: - FREE( storage ); - - Fail: - Free_TrueType_Names( face ); - return error; - } - - -/******************************************************************* - * - * Function : Free_TrueType_Names - * - * Description : Frees a name table. - * - * Input : face face table to look for - * - * Output : TT_Err_Ok. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Free_TrueType_Names( PFace face ) - { - TName_Table* names = &face->nameTable; - - - /* free strings table */ - FREE( names->names ); - - /* free strings storage */ - FREE( names->storage ); - - names->numNameRecords = 0; - names->format = 0; - names->storageOffset = 0; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Load_TrueType_CVT - * - * Description : Loads cvt table into resident table. - * - * Input : face face table to look for - * - * Output : Error code. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Load_TrueType_CVT( PFace face ) - { - DEFINE_LOCALS; - - Long n, limit; - - - PTRACE2(( "CVT " )); - - if ( ( n = TT_LookUp_Table( face, TTAG_cvt ) ) < 0 ) - { - PTRACE2(( "is missing!\n" )); - - face->cvtSize = 0; - face->cvt = NULL; - return TT_Err_Ok; - } - - face->cvtSize = face->dirTables[n].Length / 2; - - if ( ALLOC_ARRAY( face->cvt, - face->cvtSize, - Short ) ) - return error; - - if ( FILE_Seek( face->dirTables[n].Offset ) || - ACCESS_Frame( face->cvtSize * 2L ) ) - return error; - - limit = face->cvtSize; - - for ( n = 0; n < limit; n++ ) - face->cvt[n] = GET_Short(); - - FORGET_Frame(); - - PTRACE2(( "loaded\n" )); - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Load_TrueType_CMap - * - * Description : Loads the cmap directory in memory. - * The cmaps themselves are loaded in ttcmap.c . - * - * Input : face - * - * Output : Error code. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Load_TrueType_CMap( PFace face ) - { - DEFINE_LOCALS; - - Long off, table_start; - Long n, limit; - - TCMapDir cmap_dir; - TCMapDirEntry entry_; - PCMapTable cmap; - - - PTRACE2(( "CMaps " )); - - if ( ( n = TT_LookUp_Table( face, TTAG_cmap ) ) < 0 ) - return TT_Err_CMap_Table_Missing; - - table_start = face->dirTables[n].Offset; - - if ( ( FILE_Seek( table_start ) ) || - ( ACCESS_Frame( 4L ) ) ) /* 4 bytes cmap header */ - return error; - - cmap_dir.tableVersionNumber = GET_UShort(); - cmap_dir.numCMaps = GET_UShort(); - - FORGET_Frame(); - - off = FILE_Pos(); /* save offset to cmapdir[] which follows */ - - /* save space in face table for cmap tables */ - if ( ALLOC_ARRAY( face->cMaps, - cmap_dir.numCMaps, - TCMapTable ) ) - return error; - - face->numCMaps = cmap_dir.numCMaps; - - limit = face->numCMaps; - cmap = face->cMaps; - - for ( n = 0; n < limit; n++ ) - { - if ( FILE_Seek( off ) || - ACCESS_Frame( 8L ) ) - return error; - - /* extra code using entry_ for platxxx could be cleaned up later */ - cmap->loaded = FALSE; - cmap->platformID = entry_.platformID = GET_UShort(); - cmap->platformEncodingID = entry_.platformEncodingID = GET_UShort(); - - entry_.offset = GET_Long(); - - FORGET_Frame(); - - off = FILE_Pos(); - - if ( FILE_Seek( table_start + entry_.offset ) || - ACCESS_Frame( 6L ) ) - return error; - - cmap->format = GET_UShort(); - cmap->length = GET_UShort(); - cmap->version = GET_UShort(); - - FORGET_Frame(); - - cmap->offset = FILE_Pos(); - - cmap++; - } - - PTRACE2(( "loaded\n" )); - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Load_TrueType_Programs - * - * Description : Loads the font (fpgm) and cvt programs into the - * face table. - * - * Input : face - * - * Output : Error code. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Load_TrueType_Programs( PFace face ) - { - DEFINE_LOCALS_WO_FRAME; - - Long n; - - - PTRACE2(( "Font program " )); - - /* The font program is optional */ - if ( ( n = TT_LookUp_Table( face, TTAG_fpgm ) ) < 0 ) - { - face->fontProgram = NULL; - face->fontPgmSize = 0; - - PTRACE2(( "is missing!\n" )); - } - else - { - face->fontPgmSize = face->dirTables[n].Length; - - if ( ALLOC( face->fontProgram, - face->fontPgmSize ) || - FILE_Read_At( face->dirTables[n].Offset, - (void*)face->fontProgram, - face->fontPgmSize ) ) - return error; - - PTRACE2(( "loaded, %12d bytes\n", face->fontPgmSize )); - } - - PTRACE2(( "Prep program " )); - - if ( ( n = TT_LookUp_Table( face, TTAG_prep ) ) < 0 ) - { - face->cvtProgram = NULL; - face->cvtPgmSize = 0; - - PTRACE2(( "is missing!\n" )); - } - else - { - face->cvtPgmSize = face->dirTables[n].Length; - - if ( ALLOC( face->cvtProgram, - face->cvtPgmSize ) || - FILE_Read_At( face->dirTables[n].Offset, - (void*)face->cvtProgram, - face->cvtPgmSize ) ) - return error; - - PTRACE2(( "loaded, %12d bytes\n", face->cvtPgmSize )); - } - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Load_TrueType_OS_2 - * - * Description : Loads the OS2 Table. - * - * Input : face - * - * Output : Error code. - * - * NOTE : This function used to be named Load_TrueType_OS2. - * We changed its name to avoid a name clash (OS2 happens - * to be a reserved name on some OS/2 compilers...) - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Load_TrueType_OS_2( PFace face ) - { - DEFINE_LOCALS; - - Long i; - TT_OS2* os2; - - - PTRACE2(( "OS/2 Table " )); - - /* We now support old Mac fonts where the OS/2 table doesn't */ - /* exist. Simply put, we set the `version' field to 0xFFFF */ - /* and test this value each time we need to access the table. */ - if ( ( i = TT_LookUp_Table( face, TTAG_OS2 ) ) < 0 ) - { - PTRACE2(( "is missing\n!" )); - face->os2.version = 0xFFFF; - error = TT_Err_Ok; - return TT_Err_Ok; - } - - if ( FILE_Seek( face->dirTables[i].Offset ) || - ACCESS_Frame( 78L ) ) - return error; - - os2 = &face->os2; - - os2->version = GET_UShort(); - os2->xAvgCharWidth = GET_Short(); - os2->usWeightClass = GET_UShort(); - os2->usWidthClass = GET_UShort(); - os2->fsType = GET_Short(); - os2->ySubscriptXSize = GET_Short(); - os2->ySubscriptYSize = GET_Short(); - os2->ySubscriptXOffset = GET_Short(); - os2->ySubscriptYOffset = GET_Short(); - os2->ySuperscriptXSize = GET_Short(); - os2->ySuperscriptYSize = GET_Short(); - os2->ySuperscriptXOffset = GET_Short(); - os2->ySuperscriptYOffset = GET_Short(); - os2->yStrikeoutSize = GET_Short(); - os2->yStrikeoutPosition = GET_Short(); - os2->sFamilyClass = GET_Short(); - - for ( i = 0; i < 10; i++ ) - os2->panose[i] = GET_Byte(); - - os2->ulUnicodeRange1 = GET_ULong(); - os2->ulUnicodeRange2 = GET_ULong(); - os2->ulUnicodeRange3 = GET_ULong(); - os2->ulUnicodeRange4 = GET_ULong(); - - for ( i = 0; i < 4; i++ ) - os2->achVendID[i] = GET_Byte(); - - os2->fsSelection = GET_UShort(); - os2->usFirstCharIndex = GET_UShort(); - os2->usLastCharIndex = GET_UShort(); - os2->sTypoAscender = GET_Short(); - os2->sTypoDescender = GET_Short(); - os2->sTypoLineGap = GET_Short(); - os2->usWinAscent = GET_UShort(); - os2->usWinDescent = GET_UShort(); - - FORGET_Frame(); - - os2->ulCodePageRange1 = 0; - os2->ulCodePageRange2 = 0; - os2->sxHeight = 0; - os2->sCapHeight = 0; - os2->usDefaultChar = 0; - os2->usBreakChar = 0; - os2->usMaxContext = 0; - - if ( os2->version >= 0x0001 ) - { - /* only version 1 tables */ - - if ( ACCESS_Frame( 8L ) ) /* read into frame */ - return error; - - os2->ulCodePageRange1 = GET_ULong(); - os2->ulCodePageRange2 = GET_ULong(); - - FORGET_Frame(); - - if ( os2->version >= 0x0002 ) - { - /* only version 2 tables */ - - if ( ACCESS_Frame( 10L ) ) - return error; - - os2->sxHeight = GET_Short(); - os2->sCapHeight = GET_Short(); - os2->usDefaultChar = GET_UShort(); - os2->usBreakChar = GET_UShort(); - os2->usMaxContext = GET_UShort(); - - FORGET_Frame(); - } - } - - PTRACE2(( "loaded\n" )); - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Load_TrueType_PostScript - * - * Description : Loads the post table into face table. - * - * Input : face face table to look for - * - * Output : SUCCESS on success. FAILURE on error. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Load_TrueType_PostScript( PFace face ) - { - DEFINE_LOCALS; - - Long i; - - TT_Postscript* post = &face->postscript; - - - PTRACE2(( "PostScript " )); - - if ( ( i = TT_LookUp_Table( face, TTAG_post ) ) < 0 ) - return TT_Err_Post_Table_Missing; - - if ( FILE_Seek( face->dirTables[i].Offset ) || - ACCESS_Frame( 32L ) ) - return error; - - /* read frame data into face table */ - - post->FormatType = GET_ULong(); - post->italicAngle = GET_ULong(); - post->underlinePosition = GET_Short(); - post->underlineThickness = GET_Short(); - post->isFixedPitch = GET_ULong(); - post->minMemType42 = GET_ULong(); - post->maxMemType42 = GET_ULong(); - post->minMemType1 = GET_ULong(); - post->maxMemType1 = GET_ULong(); - - FORGET_Frame(); - - /* we don't load the glyph names, we do that in a */ - /* library extension (ftxpost). */ - - PTRACE2(( "loaded\n" )); - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Load_TrueType_Hdmx - * - * Description : Loads the horizontal device metrics table. - * - * Input : face face object to look for - * - * Output : SUCCESS on success. FAILURE on error. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Load_TrueType_Hdmx( PFace face ) - { - DEFINE_LOCALS; - - TT_Hdmx_Record* rec; - TT_Hdmx hdmx; - Long table; - UShort n, num_glyphs; - Long record_size; - - - hdmx.version = 0; - hdmx.num_records = 0; - hdmx.records = 0; - - face->hdmx = hdmx; - - if ( ( table = TT_LookUp_Table( face, TTAG_hdmx ) ) < 0 ) - return TT_Err_Ok; - - if ( FILE_Seek( face->dirTables[table].Offset ) || - ACCESS_Frame( 8L ) ) - return error; - - hdmx.version = GET_UShort(); - hdmx.num_records = GET_Short(); - record_size = GET_Long(); - - FORGET_Frame(); - - /* Only recognize format 0 */ - - if ( hdmx.version != 0 ) - return TT_Err_Ok; - - if ( ALLOC( hdmx.records, sizeof ( TT_Hdmx_Record ) * hdmx.num_records ) ) - return error; - - num_glyphs = face->numGlyphs; - record_size -= num_glyphs+2; - rec = hdmx.records; - - for ( n = 0; n < hdmx.num_records; n++ ) - { - /* read record */ - - if ( ACCESS_Frame( 2L ) ) - goto Fail; - - rec->ppem = GET_Byte(); - rec->max_width = GET_Byte(); - - FORGET_Frame(); - - if ( ALLOC( rec->widths, num_glyphs ) || - FILE_Read( rec->widths, num_glyphs ) ) - goto Fail; - - /* skip padding bytes */ - if ( record_size > 0 ) - if ( FILE_Skip( record_size ) ) - goto Fail; - - rec++; - } - - face->hdmx = hdmx; - - return TT_Err_Ok; - - Fail: - for ( n = 0; n < hdmx.num_records; n++ ) - FREE( hdmx.records[n].widths ); - - FREE( hdmx.records ); - return error; - } - - -/******************************************************************* - * - * Function : Free_TrueType_Hdmx - * - * Description : Frees the horizontal device metrics table. - * - * Input : face face object to look for - * - * Output : TT_Err_Ok. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Free_TrueType_Hdmx( PFace face ) - { - UShort n; - - - if ( !face ) - return TT_Err_Ok; - - for ( n = 0; n < face->hdmx.num_records; n++ ) - FREE( face->hdmx.records[n].widths ); - - FREE( face->hdmx.records ); - face->hdmx.num_records = 0; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Load_TrueType_Any - * - * Description : Loads any font table into client memory. Used by - * the TT_Get_Font_Data() API function. - * - * Input : face face object to look for - * - * tag tag of table to load. Use the value 0 if you - * want to access the whole font file, else set - * this parameter to a valid TrueType table tag - * that you can forge with the MAKE_TT_TAG - * macro. - * - * offset starting offset in the table (or the file - * if tag == 0 ) - * - * buffer address of target buffer - * - * length address of decision variable : - * - * if length == NULL : - * load the whole table. returns an - * an error if 'offset' == 0 !! - * - * if *length == 0 : - * exit immediately, returning the - * length of the given table, or of - * the font file, depending on the - * value of 'tag' - * - * if *length != 0 : - * load the next 'length' bytes of - * table or font, starting at offset - * 'offset' (in table or font too). - * - * Output : Error condition - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Load_TrueType_Any( PFace face, - ULong tag, - Long offset, - void* buffer, - Long* length ) - { - TT_Stream stream; - TT_Error error; - Long table; - ULong size; - - - if ( tag != 0 ) - { - /* look for tag in font directory */ - table = TT_LookUp_Table( face, tag ); - if ( table < 0 ) - return TT_Err_Table_Missing; - - offset += face->dirTables[table].Offset; - size = face->dirTables[table].Length; - } - else - /* tag = 0 -- the use want to access the font file directly */ - size = TT_Stream_Size( face->stream ); - - if ( length && *length == 0 ) - { - *length = size; - return TT_Err_Ok; - } - - if ( length ) - size = *length; - - if ( !USE_Stream( face->stream, stream ) ) - (void)FILE_Read_At( offset, buffer, size ); - DONE_Stream( stream ); - - return error; - } - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/ttload.h b/Build/source/libs/freetype/freetype-1.5/lib/ttload.h deleted file mode 100644 index d5f74d40e17..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/ttload.h +++ /dev/null @@ -1,238 +0,0 @@ -/******************************************************************* - * - * ttload.h 1.2 - * - * TrueType Tables Loader. - * - * Copyright 1996-2002 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - * - * Changes between 1.2 and 1.1 : - * - * - the macros are now in ttfile.h (with their underlying functions) - * - * Changes between 1.1 and 1.0 : - * - * - add function Load_TrueType_Any used by TT_Get_Font_Data - * - ******************************************************************/ - -#ifndef TTLOAD_H -#define TTLOAD_H - -#include "ttconfig.h" -#include "tttypes.h" -#include "ttobjs.h" - -#ifdef __cplusplus - extern "C" { -#endif - - FT_EXPORT_DEF( Long ) - TT_LookUp_Table( PFace face, - ULong tag ); - - FT_INTERNAL_DEF( TT_Error ) - Load_TrueType_Directory( PFace face, - ULong faceIndex ); - - FT_INTERNAL_DEF( TT_Error ) - Load_TrueType_MaxProfile( PFace face ); - FT_INTERNAL_DEF( TT_Error ) - Load_TrueType_Gasp( PFace face ); - FT_INTERNAL_DEF( TT_Error ) - Load_TrueType_Header( PFace face ); - FT_INTERNAL_DEF( TT_Error ) - Load_TrueType_Locations( PFace face ); - FT_INTERNAL_DEF( TT_Error ) - Load_TrueType_Names( PFace face ); - FT_INTERNAL_DEF( TT_Error ) - Load_TrueType_CVT( PFace face ); - FT_INTERNAL_DEF( TT_Error ) - Load_TrueType_CMap( PFace face ); - FT_INTERNAL_DEF( TT_Error ) - Load_TrueType_Programs( PFace face ); - FT_INTERNAL_DEF( TT_Error ) - Load_TrueType_OS_2( PFace face ); - FT_INTERNAL_DEF( TT_Error ) - Load_TrueType_PostScript( PFace face ); - FT_INTERNAL_DEF( TT_Error ) - Load_TrueType_Hdmx( PFace face ); - - FT_INTERNAL_DEF( TT_Error ) - Load_TrueType_Metrics_Header( PFace face, - Bool vertical ); - - FT_INTERNAL_DEF( TT_Error ) - Load_TrueType_Any( PFace face, - ULong tag, - Long offset, - void* buffer, - Long* length ); - - FT_INTERNAL_DEF( TT_Error ) - Free_TrueType_Names( PFace face ); - FT_INTERNAL_DEF( TT_Error ) - Free_TrueType_Hdmx ( PFace face ); - - -/* The following macros are defined to simplify the writing of */ -/* the various table and glyph loaders. */ - -/* For examples see the code in ttload.c, ttgload.c etc. */ - -#define USE_Stream( original, duplicate ) \ - ( (error = TT_Use_Stream( original, &duplicate )) != TT_Err_Ok ) - -#define DONE_Stream( _stream ) \ - TT_Done_Stream( &_stream ) - -/* Define a file frame -- use it only when needed */ -#define DEFINE_A_FRAME TFileFrame frame = TT_Null_FileFrame - -/* Define a stream -- use it only when needed */ -#define DEFINE_A_STREAM TT_Stream stream - - -#ifdef TT_CONFIG_OPTION_THREAD_SAFE /* re-entrant implementation */ - -/* The following macros define the necessary local */ -/* variables used to access streams and frames. */ - -/* Define stream locals with frame */ -#define DEFINE_STREAM_LOCALS \ - TT_Error error; \ - DEFINE_A_STREAM; \ - DEFINE_A_FRAME - -/* Define stream locals without frame */ -#define DEFINE_STREAM_LOCALS_WO_FRAME \ - TT_Error error; \ - DEFINE_A_STREAM - -/* Define locals with a predefined stream in reentrant mode -- see ttload.c */ -#define DEFINE_LOAD_LOCALS( STREAM ) \ - TT_Error error; \ - DEFINE_A_STREAM = (STREAM); \ - DEFINE_A_FRAME - -/* Define locals without frame with a predefined stream - see ttload.c */ -#define DEFINE_LOAD_LOCALS_WO_FRAME( STREAM ) \ - TT_Error error; \ - DEFINE_A_STREAM = (STREAM) - -/* Define all locals necessary to access a font file */ -#define DEFINE_ALL_LOCALS \ - TT_Error error; \ - DEFINE_A_STREAM; \ - DEFINE_A_FRAME - - -#define ACCESS_Frame( _size_ ) \ - ( (error = TT_Access_Frame( stream, \ - &frame, \ - (Long)(_size_) )) != TT_Err_Ok ) -#define CHECK_ACCESS_Frame( _size_ ) \ - ( (error = TT_Check_And_Access_Frame( stream, \ - &frame, \ - (Long)(_size_) )) != TT_Err_Ok ) -#define FORGET_Frame() \ - ( (void)TT_Forget_Frame( stream, &frame ) ) - -#define GET_Byte() TT_Get_Byte ( &frame ) -#define GET_Char() TT_Get_Char ( &frame ) -#define GET_UShort() TT_Get_UShort( &frame ) -#define GET_Short() TT_Get_Short ( &frame ) -#define GET_Long() TT_Get_Long ( &frame ) -#define GET_ULong() TT_Get_ULong ( &frame ) -#define GET_Tag4() TT_Get_ULong ( &frame ) - -#define FILE_Pos() TT_File_Pos ( stream ) - -#define FILE_Seek( _position_ ) \ - ( (error = TT_Seek_File( stream, \ - (Long)(_position_) )) != TT_Err_Ok ) -#define FILE_Skip( _distance_ ) \ - ( (error = TT_Skip_File( stream, \ - (Long)(_distance_) )) != TT_Err_Ok ) -#define FILE_Read( buffer, count ) \ - ( (error = TT_Read_File ( stream, \ - buffer, \ - (Long)(count) )) != TT_Err_Ok ) -#define FILE_Read_At( pos, buffer, count ) \ - ( (error = TT_Read_At_File( stream, \ - (Long)(pos), \ - buffer, \ - (Long)(count) )) != TT_Err_Ok ) - -#else /* thread-safe implementation */ - -/* Define stream locals with frame -- nothing in thread-safe mode */ -#define DEFINE_STREAM_LOCALS \ - TT_Error error - -/* Define stream locals without frame -- nothing in thread-safe mode */ -#define DEFINE_STREAM_LOCALS_WO_FRAME \ - TT_Error error - -/* Define locals with a predefined stream in reentrant mode -- see ttload.c */ -#define DEFINE_LOAD_LOCALS( STREAM ) \ - TT_Error error - - -/* Define locals without frame with a predefined stream - see ttload.c */ -#define DEFINE_LOAD_LOCALS_WO_FRAME( STREAM ) \ - TT_Error error - -/* Define all locals necessary to access a font file */ -#define DEFINE_ALL_LOCALS \ - TT_Error error; \ - DEFINE_A_STREAM - - -#define ACCESS_Frame( _size_ ) \ - ( (error = TT_Access_Frame( (Long)(_size_) )) != TT_Err_Ok ) -#define CHECK_ACCESS_Frame( _size_ ) \ - ( (error = TT_Check_And_Access_Frame( (Long)(_size_) )) != TT_Err_Ok ) -#define FORGET_Frame() \ - ( (void)TT_Forget_Frame() ) - -#define GET_Byte() TT_Get_Byte () -#define GET_Char() TT_Get_Char () -#define GET_UShort() TT_Get_UShort() -#define GET_Short() TT_Get_Short () -#define GET_Long() TT_Get_Long () -#define GET_ULong() TT_Get_ULong () -#define GET_Tag4() TT_Get_ULong () - -#define FILE_Pos() TT_File_Pos() - -#define FILE_Seek( _position_ ) \ - ( (error = TT_Seek_File( (Long)(_position_) )) != TT_Err_Ok ) -#define FILE_Skip( _distance_ ) \ - ( (error = TT_Skip_File( (Long)(_distance_) )) != TT_Err_Ok ) -#define FILE_Read( buffer, count ) \ - ( (error = TT_Read_File ( buffer, \ - (Long)(count) )) != TT_Err_Ok ) -#define FILE_Read_At( pos, buffer, count ) \ - ( (error = TT_Read_At_File( (Long)(pos), \ - buffer, \ - (Long)(count) )) != TT_Err_Ok ) - -#endif /* TT_CONFIG_OPTION_THREAD_SAFE */ - -#ifdef __cplusplus - } -#endif - -#endif /* TTLOAD_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/ttmemory.c b/Build/source/libs/freetype/freetype-1.5/lib/ttmemory.c deleted file mode 100644 index bdfa0cfe62b..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/ttmemory.c +++ /dev/null @@ -1,399 +0,0 @@ -/******************************************************************* - * - * ttmemory.c 1.2 - * - * Memory management component (body). - * - * Copyright 1996-2000 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - * - * Changes between 1.1 and 1.2: - * - * - the font pool is gone. - * - * - introduced the FREE macro and the Free function for - * future use in destructors. - * - * - Init_FontPool() is now a macro to allow the compilation of - * 'legacy' applications (all four test programs have been updated). - * - ******************************************************************/ - -#include "ttdebug.h" -#include "ttmemory.h" -#include "ttengine.h" - -/* required by the tracing mode */ -#undef TT_COMPONENT -#define TT_COMPONENT trace_memory - - -#ifdef DEBUG_MEMORY - -#include <stdio.h> - -#define MAX_TRACKED_BLOCKS 4096 - - struct TMemRec_ - { - void* base; - Long size; - }; - - typedef struct TMemRec_ TMemRec; - - static TMemRec pointers[MAX_TRACKED_BLOCKS + 1]; - - static Int num_alloc; - static Int num_free; - static Int num_realloc; /* counts only `real' reallocations - (i.e., an existing buffer will be resized - to a value larger than zero */ - - static Int fail_alloc; - static Int fail_realloc; - static Int fail_free; - -#endif /* DEBUG_MEMORY */ - - -#ifndef TT_CONFIG_OPTION_THREAD_SAFE - Long TTMemory_Allocated; - Long TTMemory_MaxAllocated; -#endif - - -/******************************************************************* - * - * Function : TT_Alloc - * - * Description : Allocates memory from the heap buffer. - * - * Input : Size size of the memory to be allocated - * P pointer to a buffer pointer - * - * Output : Error code. - * - * NOTE : The newly allocated block should _always_ be zeroed - * on return. Many parts of the engine rely on this to - * work properly. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Alloc( ULong Size, - void** P ) - { -#ifdef DEBUG_MEMORY - Int i; -#endif - - - if ( !P ) - return TT_Err_Invalid_Argument; - - if ( Size > (size_t)-1 ) - return TT_Err_Out_Of_Memory; - if ( Size > 0 ) - { - *P = (void*)malloc( Size ); - if ( !*P ) - return TT_Err_Out_Of_Memory; - -#ifndef TT_CONFIG_OPTION_THREAD_SAFE - TTMemory_Allocated += Size; - TTMemory_MaxAllocated += Size; -#endif - -#ifdef DEBUG_MEMORY - - num_alloc++; - - i = 0; - while ( i < MAX_TRACKED_BLOCKS && pointers[i].base != NULL ) - i++; - - if ( i >= MAX_TRACKED_BLOCKS ) - fail_alloc++; - else - { - pointers[i].base = *P; - pointers[i].size = Size; - } - -#endif /* DEBUG_MEMORY */ - - MEM_Set( *P, 0, Size ); - } - else - *P = NULL; - - return TT_Err_Ok; - } - - -#ifdef TT_CONFIG_OPTION_EXTEND_ENGINE - - -/******************************************************************* - * - * Function : TT_Realloc - * - * Description : Reallocates memory from the heap buffer. - * - * Input : Size new size of the memory to be allocated; - * if zero, TT_Free() will be called - * P pointer to a buffer pointer; if *P == NULL, - * TT_Alloc() will be called - * - * Output : Error code. - * - * NOTES : It's not necessary to zero the memory in case the - * reallocated buffer is larger than before -- the - * application has to take care of this. - * - * If the memory request fails, TT_Free() will be - * called on *P, and TT_Err_Out_Of_Memory returned. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Realloc( ULong Size, - void** P ) - { - void* Q; - -#ifdef DEBUG_MEMORY - Int i; -#endif - - - if ( !P ) - return TT_Err_Invalid_Argument; - - if ( !*P ) - return TT_Alloc( Size, P ); - - if ( Size == 0 ) - return TT_Free( P ); - - if ( Size > (size_t)-1 ) - { - TT_Free( *P ); - return TT_Err_Out_Of_Memory; - } - - Q = (void*)realloc( *P, Size ); - if ( !Q ) - { - TT_Free( *P ); - return TT_Err_Out_Of_Memory; - } - -#ifdef DEBUG_MEMORY - - num_realloc++; - - i = 0; - while ( i < MAX_TRACKED_BLOCKS && pointers[i].base != *P ) - i++; - - if ( i >= MAX_TRACKED_BLOCKS ) - fail_realloc++; - else - { -#ifndef TT_CONFIG_OPTION_THREAD_SAFE - TTMemory_Allocated += Size - pointers[i].size; - if ( Size > pointers[i].size ) - TTMemory_MaxAllocated += Size - pointers[i].size; -#endif - - pointers[i].base = Q; - pointers[i].size = Size; - } -#endif /* DEBUG_MEMORY */ - - *P = Q; - - return TT_Err_Ok; - } - - -#endif /* TT_CONFIG_OPTION_EXTEND_ENGINE */ - - -/******************************************************************* - * - * Function : TT_Free - * - * Description : Releases a previously allocated block of memory. - * - * Input : P pointer to memory block - * - * Output : Always SUCCESS. - * - * Note : The pointer must _always_ be set to NULL by this function. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Free( void** P ) - { -#ifdef DEBUG_MEMORY - Int i; -#endif /* DEBUG_MEMORY */ - - - if ( !P || !*P ) - return TT_Err_Ok; - -#ifdef DEBUG_MEMORY - - num_free++; - - i = 0; - while ( i < MAX_TRACKED_BLOCKS && pointers[i].base != *P ) - i++; - - if ( i >= MAX_TRACKED_BLOCKS ) - fail_free++; - else - { -#ifndef TT_CONFIG_OPTION_THREAD_SAFE - TTMemory_Allocated -= pointers[i].size; -#endif - - pointers[i].base = NULL; - pointers[i].size = 0; - } -#endif /* DEBUG_MEMORY */ - - free( *P ); - - *P = NULL; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TTMemory_Init - * - * Description : Initializes the memory. - * - * Output : Always SUCCESS. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TTMemory_Init( void ) - { -#ifdef DEBUG_MEMORY - Int i; - - - for ( i = 0; i < MAX_TRACKED_BLOCKS; i++ ) - { - pointers[i].base = NULL; - pointers[i].size = 0; - } - - num_alloc = 0; - num_realloc = 0; - num_free = 0; - - fail_alloc = 0; - fail_realloc = 0; - fail_free = 0; -#endif - - -#ifndef TT_CONFIG_OPTION_THREAD_SAFE - TTMemory_Allocated = 0; - TTMemory_MaxAllocated = 0; -#endif - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TTMemory_Done - * - * Description : Finalizes memory usage. - * - * Output : Always SUCCESS. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TTMemory_Done( void ) - { -#ifdef DEBUG_MEMORY - Int i, num_leaked, tot_leaked; - - - num_leaked = 0; - tot_leaked = 0; - - for ( i = 0; i < MAX_TRACKED_BLOCKS; i++ ) - { - if ( pointers[i].base ) - { - num_leaked ++; - tot_leaked += pointers[i].size; - } - } - - fprintf( stderr, - "%d memory allocations, of which %d failed\n", - num_alloc, - fail_alloc ); - - fprintf( stderr, - "%d memory reallocations, of which %d failed\n", - num_realloc, - fail_realloc ); - - fprintf( stderr, - "%d memory deallocations, of which %d failed\n", - num_free, - fail_free ); - - if ( num_leaked > 0 ) - { - fprintf( stderr, - "There are %d leaked memory blocks, totalizing %d bytes\n", - num_leaked, tot_leaked ); - - for ( i = 0; i < MAX_TRACKED_BLOCKS; i++ ) - { - if ( pointers[i].base ) - { - fprintf( stderr, - "index: %4d (base: $%08lx, size: %08ld)\n", - i, - (long)pointers[i].base, - pointers[i].size ); - } - } - } - else - fprintf( stderr, "No memory leaks!\n" ); - -#endif /* DEBUG_MEMORY */ - - return TT_Err_Ok; - } - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/ttmemory.h b/Build/source/libs/freetype/freetype-1.5/lib/ttmemory.h deleted file mode 100644 index 5173567849f..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/ttmemory.h +++ /dev/null @@ -1,129 +0,0 @@ -/******************************************************************* - * - * ttmemory.h 1.2 - * - * Memory management component (specification). - * - * Copyright 1996-2000 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - * Changes between 1.2 and 1.1: - * - * - the font pool is gone! All allocations are now performed - * with malloc() and free(). - * - * - introduced the FREE() macro and the Free() function for - * future use in destructors. - * - * - Init_FontPool() is now a macro to allow the compilation of - * 'legacy' applications (all four test programs have been updated). - * - ******************************************************************/ - -#ifndef TTMEMORY_H -#define TTMEMORY_H - -#include "ttconfig.h" -#include "tttypes.h" -#include <string.h> - - -#ifdef __cplusplus - extern "C" { -#endif - -#define MEM_Set( dest, byte, count ) memset( dest, byte, count ) - -#ifdef HAVE_MEMCPY -#define MEM_Copy( dest, source, count ) memcpy( dest, source, count ) -#else -#define MEM_Copy( dest, source, count ) bcopy( source, dest, count ) -#endif - -#ifdef HAVE_MEMMOVE -#define MEM_Move( dest, source, count ) memmove( dest, source, count ) -#else -#define MEM_Move( dest, source, count ) bcopy( source, dest, count ) -#endif - - -#define MEM_Alloc( _pointer_, _size_ ) \ - TT_Alloc( _size_, (void**)&(_pointer_) ) - -#define MEM_Realloc( _pointer_, _size_ ) \ - TT_Realloc( _size_, (void**)&(_pointer_) ) - -#define ALLOC( _pointer_, _size_ ) \ - ( ( error = MEM_Alloc( _pointer_, _size_ ) ) != TT_Err_Ok ) - -#define ALLOC_ARRAY( _pointer_, _count_, _type_ ) \ - ( ( error = MEM_Alloc( _pointer_, \ - (_count_) * sizeof ( _type_ ) ) ) != TT_Err_Ok ) - -#define REALLOC( _pointer_, _size_ ) \ - ( ( error = MEM_Realloc( _pointer_, _size_ ) ) != TT_Err_Ok ) - -#define REALLOC_ARRAY( _pointer_, _count_, _type_ ) \ - ( (error = MEM_Realloc( _pointer_, \ - (_count_) * sizeof ( _type_ ) ) ) != TT_Err_Ok ) - -#define FREE( _pointer_ ) \ - TT_Free( (void**)&(_pointer_) ) - - - /* Allocate a block of memory of 'Size' bytes from the heap, and */ - /* sets the pointer '*P' to its address. If 'Size' is 0, or in */ - /* case of error, the pointer is always set to NULL. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Alloc( ULong Size, - void** P ); - -#ifdef TT_CONFIG_OPTION_EXTEND_ENGINE - - /* Reallocates a block of memory pointed to by '*P' to 'Size' */ - /* bytes from the heap, possibly changing '*P'. If 'Size' is 0, */ - /* TT_Free() is called, if '*P' is NULL, TT_Alloc() is called. */ - /* '*P' is freed (if it's non-NULL) in case of error. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Realloc( ULong Size, - void** P ); - -#endif /* TT_CONFIG_OPTION_EXTEND_ENGINE */ - - /* Releases a block that was previously allocated through Alloc. */ - /* Note that the function returns successfully when P or *P are */ - /* already NULL. The pointer '*P' is set to NULL on exit in */ - /* case of success. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Free( void** P ); - - - /* For "legacy" applications, that should be re-coded. */ - /* Note that this won't release the previously allocated font pool. */ - -#define Init_FontPool( x, y ) while( 0 ) { } - - - FT_INTERNAL_DEF( TT_Error ) - TTMemory_Init( void ); - FT_INTERNAL_DEF( TT_Error ) - TTMemory_Done( void ); - - -#ifdef __cplusplus - } -#endif - -#endif /* TTMEMORY_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/ttmutex.c b/Build/source/libs/freetype/freetype-1.5/lib/ttmutex.c deleted file mode 100644 index e7c3b53c671..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/ttmutex.c +++ /dev/null @@ -1,85 +0,0 @@ -/******************************************************************* - * - * ttmutex.c 1.0 - * - * Mutual exclusion object, single-threaded implementation - * - * Copyright 1996-2000 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - * NOTE: This is a generic non-functional implementation - * that you are welcome to refine for your own system. - * - * Please name your system-specific source with a - * different name (like ttmutex-os2.c or ttmutex-linux.c) - * and change your makefile accordingly. - * - ******************************************************************/ - -#include "ttmutex.h" - - -/* required by the tracing mode */ -#undef TT_COMPONENT -#define TT_COMPONENT trace_mutex - - -/* ANSI C prevents the compilation of empty units. We thus introduce */ -/* a dummy typedef to get rid of compiler warnings/errors. */ -/* Note that gcc's -ansi -pedantic does not report any error here. */ -/* Watcom, VC++ or Borland C++ do however. */ - - typedef void _ttmutex_to_satisfy_ANSI_C_; - - -#ifdef TT_CONFIG_OPTION_THREAD_SAFE - - FT_INTERNAL_FUNC( void ) - TT_Mutex_Create( TMutex* mutex ) - { - *mutex = (void*)-1; - /* Replace this line with your own mutex creation code */ - } - - - FT_INTERNAL_FUNC( void ) - TT_Mutex_Delete( TMutex* mutex ) - { - *mutex = (void*)0; - /* Replace this line with your own mutex destruction code */ - } - - - FT_INTERNAL_FUNC( void ) - TT_Mutex_Lock( TMutex* mutex ) - { - /* NOTE: It is legal to call this function with a NULL argument */ - /* in which case an immediate return is appropriate. */ - if ( !mutex ) - return; - - ; /* Insert your own mutex locking code here */ - } - - - FT_INTERNAL_FUNC( void ) - TT_Mutex_Release( TMutex* mutex ) - { - /* NOTE: It is legal to call this function with a NULL argument */ - /* in which case an immediate return is appropriate */ - if ( !mutex ) - return; - - ; /* Insert your own mutex release code here */ - } - -#endif /* TT_CONFIG_OPTION_THREAD_SAFE */ - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/ttmutex.h b/Build/source/libs/freetype/freetype-1.5/lib/ttmutex.h deleted file mode 100644 index 3dae642af99..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/ttmutex.h +++ /dev/null @@ -1,63 +0,0 @@ -/******************************************************************* - * - * ttmutex.h 1.0 - * - * Mutual exclusion object / dummy generic interface. - * - * Copyright 1996-2000 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - * Note: This file provides a generic interface. The implementation - * to compile depends on your system and the type of - * library you want to build (either singly-threaded, - * thread-safe or re-entrant). - * - * Please read the technical documentation for more details. - * - ******************************************************************/ - -#ifndef TTMUTEX_H -#define TTMUTEX_H - -#include "ttconfig.h" - - - typedef void* TMutex; /* typeless reference to a mutex */ - -#ifdef TT_CONFIG_OPTION_THREAD_SAFE /* thread-safe and re-entrant builds */ - -#define MUTEX_Create( mutex ) TT_Mutex_Create ( &(mutex) ) -#define MUTEX_Destroy( mutex ) TT_Mutex_Delete ( &(mutex) ) -#define MUTEX_Lock( mutex ) TT_Mutex_Lock ( &(mutex) ) -#define MUTEX_Release( mutex ) TT_Mutex_Release( &(mutex) ) - - FT_INTERNAL_DEF( void ) - TT_Mutex_Create( TMutex* mutex ); /* Create a new mutex */ - FT_INTERNAL_DEF( void ) - TT_Mutex_Delete( TMutex* mutex ); /* Delete a mutex */ - FT_INTERNAL_DEF( void ) - TT_Mutex_Lock( TMutex* mutex ); /* Lock a mutex */ - FT_INTERNAL_DEF( void ) - TT_Mutex_Release( TMutex* mutex ); /* Release a mutex */ - -#else /* for the single-thread build */ - -#define MUTEX_Create( mutex ) /* nothing */ -#define MUTEX_Destroy( mutex ) /* nothing */ -#define MUTEX_Lock( mutex ) /* nothing */ -#define MUTEX_Release( mutex ) /* nothing */ - - /* No code will be generated for mutex operations */ - -#endif /* TT_CONFIG_OPTION_THREAD_SAFE */ - -#endif /* TTMUTEX_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/ttobjs.c b/Build/source/libs/freetype/freetype-1.5/lib/ttobjs.c deleted file mode 100644 index 3c6331dedcb..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/ttobjs.c +++ /dev/null @@ -1,1500 +0,0 @@ -/******************************************************************* - * - * ttobjs.c 1.0 - * - * Objects manager. - * - * Copyright 1996-2001 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - ******************************************************************/ - -#include "ttobjs.h" -#include "ttfile.h" -#include "ttcalc.h" -#include "ttmemory.h" -#include "ttload.h" -#include "ttinterp.h" -#include "ttdebug.h" - - -/* Add extensions definition */ -#ifdef TT_CONFIG_OPTION_EXTEND_ENGINE -#include "ttextend.h" -#endif - -/* Required by tracing mode */ -#undef TT_COMPONENT -#define TT_COMPONENT trace_objs - -/******************************************************************* - * - * Function : New_Context - * - * Description : Creates a new execution context for a given - * face object. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( PExecution_Context ) - New_Context( PFace face ) - { - PEngine_Instance engine; - PExecution_Context exec; - - - if ( !face ) - return NULL; - - engine = face->engine; - CACHE_New( engine->objs_exec_cache, exec, face ); - return exec; - } - - -/******************************************************************* - * - * Function : Done_Context - * - * Description : Discards an execution context. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Done_Context( PExecution_Context exec ) - { - PEngine_Instance engine; - - - if ( !exec ) - return TT_Err_Ok; - - engine = exec->face->engine; - return CACHE_Done( engine->objs_exec_cache, exec ); - } - - -#if 0 - -/******************************************************************* - * - * Function : New_Instance - * - * Description : Creates a new instance for a given face object. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( PInstance ) - New_Instance( PFace face ) - { - PInstance ins; - - - if ( !face ) - return NULL; - - CACHE_New( &face->instances, ins, face ); - - return ins; - } - - -/******************************************************************* - * - * Function : Done_Instance - * - * Description : Discards an instance. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Done_Instance( PInstance instance ) - { - return CACHE_Done( &instance->owner->instances, instance ); - } - -#endif - - -/******************************************************************* - * * - * GLYPH ZONE FUNCTIONS * - * * - * * - *******************************************************************/ - -/******************************************************************* - * - * Function : New_Glyph_Zone - * - * Description : Allocates a new glyph zone - * - * Input : pts pointer to the target glyph zone record - * maxPoints capacity of glyph zone in points - * maxContours capacity of glyph zone in contours - * - * Return : Error code. - * - *****************************************************************/ - - static - TT_Error New_Glyph_Zone( PGlyph_Zone pts, - UShort maxPoints, - UShort maxContours ) - { - TT_Error error; - - - if ( ALLOC( pts->org, maxPoints * 2 * sizeof ( TT_F26Dot6 ) ) || - ALLOC( pts->cur, maxPoints * 2 * sizeof ( TT_F26Dot6 ) ) || - ALLOC( pts->touch, maxPoints * sizeof ( Byte ) ) || - ALLOC( pts->contours, maxContours * sizeof ( Short ) ) ) - return error; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Done_Glyph_Zone - * - * Description : Deallocates a glyph zone - * - * Input : pts pointer to the target glyph zone record - * - * Return : Error code. - * - *****************************************************************/ - - static - TT_Error Done_Glyph_Zone( PGlyph_Zone pts ) - { - FREE( pts->contours ); - FREE( pts->touch ); - FREE( pts->cur ); - FREE( pts->org ); - - return TT_Err_Ok; - } - - - -/******************************************************************* - * * - * CODERANGE FUNCTIONS * - * * - *******************************************************************/ - -/******************************************************************* - * - * Function : Goto_CodeRange - * - * Description : Switch to a new code range (updates Code and IP). - * - * Input : exec target execution context - * range new execution code range - * IP new IP in new code range - * - * Output : SUCCESS on success. FAILURE on error (no code range). - * - *****************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Goto_CodeRange( PExecution_Context exec, - Int range, - ULong IP ) - { - PCodeRange cr; - - - if ( range < 1 || range > 3 ) - return TT_Err_Bad_Argument; - - cr = &exec->codeRangeTable[range - 1]; - - if ( cr->Base == NULL ) - return TT_Err_Invalid_CodeRange; - - /* NOTE: Because the last instruction of a program may be a CALL */ - /* which will return to the first byte *after* the code */ - /* range, we test for IP <= Size, instead of IP < Size. */ - - if ( IP > cr->Size ) - return TT_Err_Code_Overflow; - - exec->code = cr->Base; - exec->codeSize = cr->Size; - exec->IP = IP; - exec->curRange = range; - - return TT_Err_Ok; - } - - -#if 0 - -/******************************************************************* - * - * Function : Get_CodeRange - * - * Description : Returns a pointer to a given code range. Should - * be used only by the debugger. Returns NULL if - * 'range' is out of current bounds. - * - * Input : exec target execution context - * range new execution code range - * - * Output : Pointer to the code range record. NULL on failure. - * - *****************************************************************/ - - FT_INTERNAL_FUNC( PCodeRange ) - Get_CodeRange( PExecution_Context exec, - Int range ) - { - if ( range < 1 || range > 3 ) - return NULL; - else /* arrays start with 1 in Pascal, and with 0 in C */ - return &exec->codeRangeTable[range - 1]; - } - -#endif - - -/******************************************************************* - * - * Function : Set_CodeRange - * - * Description : Sets a code range. - * - * Input : exec target execution context - * range code range index - * base new code base - * length range size in bytes - * - * Output : SUCCESS on success. FAILURE on error. - * - *****************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Set_CodeRange( PExecution_Context exec, - Int range, - void* base, - ULong length ) - { - if ( range < 1 || range > 3 ) - return TT_Err_Bad_Argument; - - exec->codeRangeTable[range - 1].Base = (Byte*)base; - exec->codeRangeTable[range - 1].Size = length; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Clear_CodeRange - * - * Description : Clears a code range. - * - * Input : exec target execution context - * range code range index - * - * Output : SUCCESS on success. FAILURE on error. - * - * Note : Does not set the Error variable. - * - *****************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Clear_CodeRange( PExecution_Context exec, - Int range ) - { - if ( range < 1 || range > 3 ) - return TT_Err_Bad_Argument; - - exec->codeRangeTable[range - 1].Base = NULL; - exec->codeRangeTable[range - 1].Size = 0; - - return TT_Err_Ok; - } - - - -/******************************************************************* - * * - * EXECUTION CONTEXT ROUTINES * - * * - *******************************************************************/ - -/******************************************************************* - * - * Function : Context_Destroy - * - *****************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Context_Destroy( void* _context ) - { - PExecution_Context exec = (PExecution_Context)_context; - - if ( !exec ) - return TT_Err_Ok; - - /* free composite load stack */ - FREE( exec->loadStack ); - exec->loadSize = 0; - - /* points zone */ - Done_Glyph_Zone( &exec->pts ); - exec->maxPoints = 0; - exec->maxContours = 0; - - /* free stack */ - FREE( exec->stack ); - exec->stackSize = 0; - - /* free call stack */ - FREE( exec->callStack ); - exec->callSize = 0; - exec->callTop = 0; - - /* free glyph code range */ - FREE( exec->glyphIns ); - exec->glyphSize = 0; - - exec->instance = NULL; - exec->face = NULL; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Context_Create - * - *****************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Context_Create( void* _context, - void* _face ) - { - PExecution_Context exec = (PExecution_Context)_context; - - PFace face = (PFace)_face; - TT_Error error; - - - /* XXX : We don't reserve arrays anymore, this is done automatically */ - /* during a "Context_Load".. */ - - exec->callSize = 32; - if ( ALLOC_ARRAY( exec->callStack, exec->callSize, TCallRecord ) ) - goto Fail_Memory; - - /* all values in the context are set to 0 already, but this is */ - /* here as a remainder */ - exec->maxPoints = 0; - exec->maxContours = 0; - - exec->stackSize = 0; - exec->loadSize = 0; - exec->glyphSize = 0; - - exec->stack = NULL; - exec->loadStack = NULL; - exec->glyphIns = NULL; - - exec->face = face; - exec->instance = NULL; - - return TT_Err_Ok; - - Fail_Memory: - Context_Destroy( exec ); - return error; - } - - -/******************************************************************* - * - * Function : Context_Load - * - *****************************************************************/ - -/****************************************************************/ -/* */ -/* Update_Max : Reallocate a buffer if it needs to */ -/* */ -/* input: size address of buffer's current size */ -/* expressed in elements */ -/* */ -/* multiplier size in bytes of each element in the */ -/* buffer */ -/* */ -/* buff address of the buffer base pointer */ -/* */ -/* new_max new capacity (size) of the buffer */ - - static - TT_Error Update_Max( ULong* size, - ULong multiplier, - void** buff, - ULong new_max ) - { - TT_Error error; - - if ( *size < new_max ) - { - FREE( *buff ); - if ( ALLOC( *buff, new_max * multiplier ) ) - return error; - *size = new_max; - } - return TT_Err_Ok; - } - - -/****************************************************************/ -/* */ -/* Update_Zone: Reallocate a zone if it needs to */ -/* */ -/* input: zone address of the target zone */ -/* */ -/* maxPoints address of the zone's current capacity */ -/* in points */ -/* */ -/* maxContours address of the zone's current capacity */ -/* in contours */ -/* */ -/* newPoints new capacity in points */ -/* */ -/* newContours new capacity in contours */ -/* */ - - static - TT_Error Update_Zone( PGlyph_Zone zone, - UShort* maxPoints, - UShort* maxContours, - UShort newPoints, - UShort newContours ) - { - if ( *maxPoints < newPoints || *maxContours < newContours ) - { - TT_Error error; - - - Done_Glyph_Zone( zone ); - - error = New_Glyph_Zone( zone, newPoints, newContours ); - if ( error ) - return error; - - *maxPoints = newPoints; - *maxContours = newContours; - } - return TT_Err_Ok; - } - - - FT_INTERNAL_FUNC( TT_Error ) - Context_Load( PExecution_Context exec, - PFace face, - PInstance ins ) - { - Int i; - TMaxProfile* maxp; - TT_Error error; - - exec->face = face; - maxp = &face->maxProfile; - - exec->instance = ins; - - if ( ins ) - { - exec->numFDefs = ins->numFDefs; - exec->numIDefs = ins->numIDefs; - exec->maxFDefs = ins->maxFDefs; - exec->maxIDefs = ins->maxIDefs; - exec->FDefs = ins->FDefs; - exec->IDefs = ins->IDefs; - exec->metrics = ins->metrics; - - exec->maxFunc = ins->maxFunc; - exec->maxIns = ins->maxIns; - - for ( i = 0; i < MAX_CODE_RANGES; i++ ) - exec->codeRangeTable[i] = ins->codeRangeTable[i]; - - /* set graphics state */ - exec->GS = ins->GS; - - exec->cvtSize = ins->cvtSize; - exec->cvt = ins->cvt; - - exec->storeSize = ins->storeSize; - exec->storage = ins->storage; - - exec->twilight = ins->twilight; - } - - error = Update_Max( &exec->loadSize, - sizeof ( TSubglyph_Record ), - (void**)&exec->loadStack, - face->maxComponents + 1 ); - if ( error ) - return error; - - error = Update_Max( &exec->stackSize, - sizeof ( TT_F26Dot6 ), - (void**)&exec->stack, - maxp->maxStackElements + 32 ); - /* XXX : We reserve a little more elements on the stack to deal safely */ - /* with broken fonts like arialbs, courbs, timesbs... */ - if ( error ) - return error; - - error = Update_Max( &exec->glyphSize, - sizeof ( Byte ), - (void**)&exec->glyphIns, - maxp->maxSizeOfInstructions ); - if ( error ) - return error; - - error = Update_Zone( &exec->pts, - &exec->maxPoints, - &exec->maxContours, - exec->face->maxPoints + 2, - exec->face->maxContours ); - /* XXX : We reserve two positions for the phantom points! */ - if ( error ) - return error; - - exec->pts.n_points = 0; - exec->pts.n_contours = 0; - - exec->instruction_trap = FALSE; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Context_Save - * - *****************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Context_Save( PExecution_Context exec, - PInstance ins ) - { - Int i; - - /* XXXX : Will probably disappear soon with all the coderange */ - /* management, which is now rather obsolete. */ - - ins->numFDefs = exec->numFDefs; - ins->numIDefs = exec->numIDefs; - ins->maxFunc = exec->maxFunc; - ins->maxIns = exec->maxIns; - - for ( i = 0; i < MAX_CODE_RANGES; i++ ) - ins->codeRangeTable[i] = exec->codeRangeTable[i]; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Context_Run - * - *****************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Context_Run( PExecution_Context exec, - Bool debug ) - { - TT_Error error; - - - if ( (error = Goto_CodeRange( exec, - TT_CodeRange_Glyph, 0 )) != TT_Err_Ok ) - return error; - - exec->zp0 = exec->pts; - exec->zp1 = exec->pts; - exec->zp2 = exec->pts; - - exec->GS.gep0 = 1; - exec->GS.gep1 = 1; - exec->GS.gep2 = 1; - - exec->GS.projVector.x = 0x4000; - exec->GS.projVector.y = 0x0000; - - exec->GS.freeVector = exec->GS.projVector; - exec->GS.dualVector = exec->GS.projVector; - - exec->GS.round_state = 1; - exec->GS.loop = 1; - - /* some glyphs leave something on the stack. so we clean it */ - /* before a new execution. */ - exec->top = 0; - exec->callTop = 0; - - if ( !debug ) - return RunIns( exec ); - else - return TT_Err_Ok; - } - - - FT_INTERNAL_VAR( const TGraphicsState ) - Default_GraphicsState = - { - 0, 0, 0, - { 0x4000, 0 }, - { 0x4000, 0 }, - { 0x4000, 0 }, - 1, 64, 1, - TRUE, 68, 0, 0, 9, 3, - 0, FALSE, 2, 1, 1, 1 - }; - - - -/******************************************************************* - * * - * INSTANCE FUNCTIONS * - * * - * * - *******************************************************************/ - -/******************************************************************* - * - * Function : Instance_Destroy - * - * Description : - * - * Input : _instance the instance object to destroy - * - * Output : error code. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Instance_Destroy( void* _instance ) - { - PInstance ins = (PInstance)_instance; - - - if ( !_instance ) - return TT_Err_Ok; - - if ( ins->debug ) - { - /* the debug context must be deleted by the debugger itself */ - ins->context = NULL; - ins->debug = FALSE; - } - - FREE( ins->cvt ); - ins->cvtSize = 0; - - /* free storage area */ - FREE( ins->storage ); - ins->storeSize = 0; - - /* twilight zone */ - Done_Glyph_Zone( &ins->twilight ); - - FREE( ins->FDefs ); - FREE( ins->IDefs ); - ins->numFDefs = 0; - ins->numIDefs = 0; - ins->maxFDefs = 0; - ins->maxIDefs = 0; - ins->maxFunc = -1; - ins->maxIns = -1; - - ins->owner = NULL; - ins->valid = FALSE; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Instance_Create - * - * Description : - * - * Input : _instance instance record to initialize - * _face parent face object - * - * Output : Error code. All partially built subtables are - * released on error. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Instance_Create( void* _instance, - void* _face ) - { - PInstance ins = (PInstance)_instance; - PFace face = (PFace)_face; - TT_Error error; - Int i; - UShort n_twilight; - - PMaxProfile maxp = &face->maxProfile; - - - ins->owner = face; - ins->valid = FALSE; - - ins->maxFDefs = maxp->maxFunctionDefs; - ins->maxIDefs = maxp->maxInstructionDefs; - ins->cvtSize = face->cvtSize; - ins->storeSize = maxp->maxStorage; - - /* Set default metrics */ - { - PIns_Metrics metrics = &ins->metrics; - - - metrics->pointSize = 10 * 64; /* default pointsize = 10pts */ - - metrics->x_resolution = 96; /* default resolution = 96dpi */ - metrics->y_resolution = 96; - - metrics->x_ppem = 0; - metrics->y_ppem = 0; - - metrics->rotated = FALSE; - metrics->stretched = FALSE; - - /* set default compensation ( all 0 ) */ - for ( i = 0; i < 4; i++ ) - metrics->compensations[i] = 0; - } - - /* allocate function defs, instruction defs, cvt and storage area */ - if ( ALLOC_ARRAY( ins->FDefs, ins->maxFDefs, TDefRecord ) || - ALLOC_ARRAY( ins->IDefs, ins->maxIDefs, TDefRecord ) || - ALLOC_ARRAY( ins->cvt, ins->cvtSize, Long ) || - ALLOC_ARRAY( ins->storage, ins->storeSize, Long ) ) - goto Fail_Memory; - - /* reserve twilight zone */ - n_twilight = maxp->maxTwilightPoints; - error = New_Glyph_Zone( &ins->twilight, n_twilight, 0 ); - if (error) - goto Fail_Memory; - - ins->twilight.n_points = n_twilight; - - return TT_Err_Ok; - - Fail_Memory: - Instance_Destroy( ins ); - return error; - } - - -/******************************************************************* - * - * Function : Instance_Init - * - * Description : Initialize a fresh new instance. - * Executes the font program if any is found. - * - * Input : _instance the instance object to destroy - * - * Output : Error code. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Instance_Init( PInstance ins ) - { - PExecution_Context exec; - - TT_Error error; - PFace face = ins->owner; - - - if ( ins->debug ) - exec = ins->context; - else - exec = New_Context( face ); - /* debugging instances have their own context */ - - if ( !exec ) - return TT_Err_Could_Not_Find_Context; - - ins->GS = Default_GraphicsState; - - ins->numFDefs = 0; - ins->numIDefs = 0; - ins->maxFunc = -1; - ins->maxIns = -1; - - Context_Load( exec, face, ins ); - - exec->callTop = 0; - exec->top = 0; - - exec->period = 64; - exec->phase = 0; - exec->threshold = 0; - - { - PIns_Metrics metrics = &exec->metrics; - - - metrics->x_ppem = 0; - metrics->y_ppem = 0; - metrics->pointSize = 0; - metrics->x_scale1 = 0; - metrics->x_scale2 = 1; - metrics->y_scale1 = 0; - metrics->y_scale2 = 1; - - metrics->ppem = 0; - metrics->scale1 = 0; - metrics->scale2 = 1; - metrics->ratio = 1L << 16; - } - - exec->instruction_trap = FALSE; - - exec->cvtSize = ins->cvtSize; - exec->cvt = ins->cvt; - - exec->F_dot_P = 0x10000; - - /* allow font program execution */ - Set_CodeRange( exec, - TT_CodeRange_Font, - face->fontProgram, - face->fontPgmSize ); - - /* disable CVT and glyph programs coderange */ - Clear_CodeRange( exec, TT_CodeRange_Cvt ); - Clear_CodeRange( exec, TT_CodeRange_Glyph ); - - if ( face->fontPgmSize > 0 ) - { - error = Goto_CodeRange( exec, TT_CodeRange_Font, 0 ); - if ( error ) - goto Fin; - - error = RunIns( exec ); - } - else - error = TT_Err_Ok; - - Fin: - Context_Save( exec, ins ); - - if ( !ins->debug ) - Done_Context( exec ); - /* debugging instances keep their context */ - - ins->valid = FALSE; - - return error; - } - - -/******************************************************************* - * - * Function : Instance_Reset - * - * Description : Resets an instance to a new pointsize/transform. - * Executes the cvt program if any is found. - * - * Input : _instance the instance object to destroy - * - * Output : Error code. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Instance_Reset( PInstance ins ) - { - PExecution_Context exec; - - TT_Error error; - ULong i; - UShort j; - PFace face; - - - if ( !ins ) - return TT_Err_Invalid_Instance_Handle; - - if ( ins->valid ) - return TT_Err_Ok; - - face = ins->owner; - - if ( ins->metrics.x_ppem < 1 || - ins->metrics.y_ppem < 1 ) - return TT_Err_Invalid_PPem; - - /* compute new transformation */ - if ( ins->metrics.x_ppem >= ins->metrics.y_ppem ) - { - ins->metrics.scale1 = ins->metrics.x_scale1; - ins->metrics.scale2 = ins->metrics.x_scale2; - ins->metrics.ppem = ins->metrics.x_ppem; - ins->metrics.x_ratio = 1L << 16; - ins->metrics.y_ratio = TT_MulDiv( ins->metrics.y_ppem, - 0x10000, - ins->metrics.x_ppem ); - } - else - { - ins->metrics.scale1 = ins->metrics.y_scale1; - ins->metrics.scale2 = ins->metrics.y_scale2; - ins->metrics.ppem = ins->metrics.y_ppem; - ins->metrics.x_ratio = TT_MulDiv( ins->metrics.x_ppem, - 0x10000, - ins->metrics.y_ppem ); - ins->metrics.y_ratio = 1L << 16; - } - - /* Scale the cvt values to the new ppem. */ - /* We use by default the y ppem to scale the CVT. */ - - for ( i = 0; i < ins->cvtSize; i++ ) - ins->cvt[i] = TT_MulDiv( face->cvt[i], - ins->metrics.scale1, - ins->metrics.scale2 ); - - /* All twilight points are originally zero */ - for ( j = 0; j < ins->twilight.n_points; j++ ) - { - ins->twilight.org[j].x = 0; - ins->twilight.org[j].y = 0; - ins->twilight.cur[j].x = 0; - ins->twilight.cur[j].y = 0; - } - - /* clear storage area */ - for ( i = 0; i < ins->storeSize; i++ ) - ins->storage[i] = 0; - - ins->GS = Default_GraphicsState; - - /* get execution context and run prep program */ - - if ( ins->debug ) - exec = ins->context; - else - exec = New_Context(face); - /* debugging instances have their own context */ - - if ( !exec ) - return TT_Err_Could_Not_Find_Context; - - Context_Load( exec, face, ins ); - - Set_CodeRange( exec, - TT_CodeRange_Cvt, - face->cvtProgram, - face->cvtPgmSize ); - - Clear_CodeRange( exec, TT_CodeRange_Glyph ); - - exec->instruction_trap = FALSE; - - exec->top = 0; - exec->callTop = 0; - - if ( face->cvtPgmSize > 0 ) - { - error = Goto_CodeRange( exec, TT_CodeRange_Cvt, 0 ); - if ( error ) - goto Fin; - - if ( !ins->debug ) - error = RunIns( exec ); - } - else - error = TT_Err_Ok; - - ins->GS = exec->GS; - /* save default graphics state */ - - Fin: - Context_Save( exec, ins ); - - if ( !ins->debug ) - Done_Context( exec ); - /* debugging instances keep their context */ - - if ( !error ) - ins->valid = TRUE; - - return error; - } - - - -/******************************************************************* - * * - * FACE FUNCTIONS * - * * - * * - *******************************************************************/ - -/******************************************************************* - * - * Function : Face_Destroy - * - * Description : The face object destructor. - * - * Input : _face typeless pointer to the face object to destroy - * - * Output : Error code. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Face_Destroy( void* _face ) - { - PFace face = (PFace)_face; - UShort n; - - - if ( !face ) - return TT_Err_Ok; - - /* well, we assume that no other thread is using the face */ - /* at this moment, but one is never sure enough. */ - MUTEX_Lock( face->lock ); - - /* first of all, destroys the cached sub-objects */ - Cache_Destroy( &face->instances ); - Cache_Destroy( &face->glyphs ); - - /* destroy the extensions */ -#ifdef TT_CONFIG_OPTION_EXTEND_ENGINE - Extension_Destroy( face ); -#endif - - /* freeing the collection table */ - FREE( face->ttcHeader.TableDirectory ); - face->ttcHeader.DirCount = 0; - - /* freeing table directory */ - FREE( face->dirTables ); - face->numTables = 0; - - /* freeing the locations table */ - FREE( face->glyphLocations ); - face->numLocations = 0; - - /* freeing the character mapping tables */ - for ( n = 0; n < face->numCMaps; n++ ) - CharMap_Free( face->cMaps + n ); - - FREE( face->cMaps ); - face->numCMaps = 0; - - /* freeing the CVT */ - FREE( face->cvt ); - face->cvtSize = 0; - - /* freeing the horizontal metrics */ - FREE( face->horizontalHeader.long_metrics ); - FREE( face->horizontalHeader.short_metrics ); - - /* freeing the vertical ones, if any */ - if (face->verticalInfo) - { - FREE( face->verticalHeader.long_metrics ); - FREE( face->verticalHeader.short_metrics ); - face->verticalInfo = 0; - } - - /* freeing the programs */ - FREE( face->fontProgram ); - FREE( face->cvtProgram ); - face->fontPgmSize = 0; - face->cvtPgmSize = 0; - - /* freeing the gasp table */ - FREE( face->gasp.gaspRanges ); - face->gasp.numRanges = 0; - - /* freeing the name table */ - Free_TrueType_Names( face ); - - /* freeing the hdmx table */ - Free_TrueType_Hdmx( face ); - - /* TT_Close_Stream( &face->stream ); -- this is performed by the API */ - - /* destroy the mutex */ - MUTEX_Destroy(face->lock); - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Face_Create - * - * Description : The face object constructor. - * - * Input : _face face record to build - * _input input stream where to load font data - * - * Output : Error code. - * - * NOTE : The input stream is kept in the face object. The - * caller shouldn't destroy it after calling Face_Create(). - * - ******************************************************************/ - -#undef LOAD_ -#define LOAD_( table ) \ - (error = Load_TrueType_##table (face)) != TT_Err_Ok - - - FT_INTERNAL_FUNC( TT_Error ) - Face_Create( void* _face, - void* _input ) - { - PEngine_Instance engine; - - TFont_Input* input = (TFont_Input*)_input; - PFace face = (PFace)_face; - TT_Error error; - - - face->stream = input->stream; - face->engine = input->engine; - - engine = face->engine; - - MUTEX_Create( face->lock ); - - Cache_Create( engine, - engine->objs_instance_class, - &face->instances, - &face->lock ); - - Cache_Create( engine, - engine->objs_glyph_class, - &face->glyphs, - &face->lock ); - - /* Load collection directory if present, then font directory */ - - error = Load_TrueType_Directory( face, input->fontIndex ); - if ( error ) - goto Fail; - - /* Load tables */ - - if ( LOAD_( Header ) || - LOAD_( MaxProfile ) || - LOAD_( Locations ) || - - (error = Load_TrueType_Metrics_Header( face, 0 )) != TT_Err_Ok || - /* load the 'hhea' & 'hmtx' tables at once */ - - LOAD_( CMap ) || - LOAD_( CVT ) || - LOAD_( Programs ) || - LOAD_( Gasp ) || - LOAD_( Names ) || - LOAD_( OS_2 ) || - LOAD_( PostScript ) || - - (error = Load_TrueType_Metrics_Header( face, 1 )) != TT_Err_Ok || - /* try to load the 'vhea' & 'vmtx' at once if present */ - - LOAD_( Hdmx ) ) - - goto Fail; - -#ifdef TT_CONFIG_OPTION_EXTEND_ENGINE - if ( ( error = Extension_Create( face ) ) != TT_Err_Ok ) - return error; -#endif - - return TT_Err_Ok; - - Fail : - Face_Destroy( face ); - return error; - } - -#undef LOAD_ - - -/******************************************************************* - * - * Function : Glyph_Destroy - * - * Description : The glyph object destructor. - * - * Input : _glyph typeless pointer to the glyph record to destroy - * - * Output : Error code. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Glyph_Destroy( void* _glyph ) - { - PGlyph glyph = (PGlyph)_glyph; - - - if ( !glyph ) - return TT_Err_Ok; - - glyph->outline.owner = TRUE; - return TT_Done_Outline( &glyph->outline ); - } - - -/******************************************************************* - * - * Function : Glyph_Create - * - * Description : The glyph object constructor. - * - * Input : _glyph glyph record to build. - * _face the glyph's parent face. - * - * Output : Error code. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Glyph_Create( void* _glyph, - void* _face ) - { - PFace face = (PFace)_face; - PGlyph glyph = (PGlyph)_glyph; - - - if ( !face ) - return TT_Err_Invalid_Face_Handle; - - if ( !glyph ) - return TT_Err_Invalid_Glyph_Handle; - - glyph->face = face; - - /* XXX: Don't forget the space for the 2 phantom points */ - return TT_New_Outline( glyph->face->maxPoints + 2, - glyph->face->maxContours, - &glyph->outline ); - } - - -/******************************************************************* - * - * Function : Scale_X - * - * Description : scale an horizontal distance from font - * units to 26.6 pixels - * - * Input : metrics pointer to metrics - * x value to scale - * - * Output : scaled value - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Pos ) - Scale_X( PIns_Metrics metrics, - TT_Pos x ) - { - return TT_MulDiv( x, metrics->x_scale1, metrics->x_scale2 ); - } - - -/******************************************************************* - * - * Function : Scale_Y - * - * Description : scale a vertical distance from font - * units to 26.6 pixels - * - * Input : metrics pointer to metrics - * y value to scale - * - * Output : scaled value - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Pos ) - Scale_Y( PIns_Metrics metrics, - TT_Pos y ) - { - return TT_MulDiv( y, metrics->y_scale1, metrics->y_scale2 ); - } - - -/******************************************************************* - * - * Function : TTObjs_Init - * - * Description : The TTObjs component initializer. Creates the - * object cache classes, as well as the face record - * cache. - * - * Input : engine engine instance - * - * Output : Error code. - * - ******************************************************************/ - - static - const TCache_Class objs_face_class = - { - sizeof ( TFace ), - -1, - Face_Create, - Face_Destroy, - NULL, - NULL - }; - - static - const TCache_Class objs_instance_class = - { - sizeof ( TInstance ), - -1, - Instance_Create, - Instance_Destroy, - NULL, - NULL - }; - - /* Note that we use a cache size of 1 for the execution context. */ - /* This is to avoid re-creating a new context each time we */ - /* change one instance's attribute (resolution and/or char sizes) */ - /* or when we load a glyph. */ - - static - const TCache_Class objs_exec_class = - { - sizeof ( TExecution_Context ), - 1, - Context_Create, - Context_Destroy, - NULL, - NULL - }; - - static - const TCache_Class objs_glyph_class = - { - sizeof ( TGlyph ), - -1, - Glyph_Create, - Glyph_Destroy, - NULL, - NULL - }; - - - FT_INTERNAL_FUNC( TT_Error ) - TTObjs_Init( PEngine_Instance engine ) - { - PCache face_cache, exec_cache; - TT_Error error; - - - face_cache = 0; - exec_cache = 0; - - if ( ALLOC( face_cache, sizeof ( TCache ) ) || - ALLOC( exec_cache, sizeof ( TCache ) ) ) - goto Fail; - - /* create face cache */ - error = Cache_Create( engine, (PCache_Class)&objs_face_class, - face_cache, &engine->lock ); - if ( error ) - goto Fail; - - engine->objs_face_cache = face_cache; - - error = Cache_Create( engine, (PCache_Class)&objs_exec_class, - exec_cache, &engine->lock ); - if ( error ) - goto Fail; - - engine->objs_exec_cache = exec_cache; - - engine->objs_face_class = (PCache_Class)&objs_face_class; - engine->objs_instance_class = (PCache_Class)&objs_instance_class; - engine->objs_execution_class = (PCache_Class)&objs_exec_class; - engine->objs_glyph_class = (PCache_Class)&objs_glyph_class; - - goto Exit; - - Fail: - FREE( face_cache ); - FREE( exec_cache ); - - Exit: - return error; - } - - -/******************************************************************* - * - * Function : TTObjs_Done - * - * Description : The TTObjs component finalizer. - * - * Input : engine engine instance - * - * Output : Error code. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TTObjs_Done( PEngine_Instance engine ) - { - /* destroy all active faces and contexts before releasing the */ - /* caches */ - Cache_Destroy( (TCache*)engine->objs_exec_cache ); - Cache_Destroy( (TCache*)engine->objs_face_cache ); - - /* Now frees caches and cache classes */ - FREE( engine->objs_exec_cache ); - FREE( engine->objs_face_cache ); - - return TT_Err_Ok; - } - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/ttobjs.h b/Build/source/libs/freetype/freetype-1.5/lib/ttobjs.h deleted file mode 100644 index 0457609e366..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/ttobjs.h +++ /dev/null @@ -1,881 +0,0 @@ -/******************************************************************* - * - * ttobjs.h 1.0 - * - * Objects definition unit. - * - * Copyright 1996-2000 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - ******************************************************************/ - -#ifndef TTOBJS_H -#define TTOBJS_H - -#include "ttconfig.h" -#include "ttengine.h" -#include "ttmutex.h" -#include "ttcache.h" -#include "tttables.h" -#include "ttcmap.h" - -#ifdef __cplusplus - extern "C" { -#endif - -/* */ -/* This file contains the definitions and methods of the four */ -/* kinds of objects managed by the FreeType engine. These are: */ -/* */ -/* */ -/* Face objects: */ -/* */ -/* There is always one face object per opened TrueType font */ -/* file, and only one. The face object contains data that is */ -/* independent of current transform/scaling/rotation and */ -/* pointsize, or glyph index. This data is made of several */ -/* critical tables that are loaded on face object creation. */ -/* */ -/* A face object tracks all active and recycled objects of */ -/* the instance and execution context classes. Destroying a face */ -/* object will automatically destroy all associated instances. */ -/* */ -/* */ -/* Instance objects: */ -/* */ -/* An instance object always relates to a given face object, */ -/* known as its 'parent' or 'owner', and contains only the */ -/* data that is specific to one given pointsize/transform of */ -/* the face. You can only create an instance from a face object. */ -/* */ -/* An instance's current transform/pointsize can be changed */ -/* at any time using a single high-level API call, */ -/* TT_Reset_Instance(). */ -/* */ -/* Execution Context objects: */ -/* */ -/* An execution context (or context in short) relates to a face. */ -/* It contains the data and tables that are necessary to load */ -/* and hint (i.e. execute the glyph instructions of) one glyph. */ -/* A context is a transient object that is queried/created on */ -/* the fly: client applications never deal with them directly. */ -/* */ -/* */ -/* Glyph objects: */ -/* */ -/* A glyph object contains only the minimal glyph information */ -/* needed to render one glyph correctly. This means that a glyph */ -/* object really contains tables that are sized to hold the */ -/* contents of _any_ glyph of a given face. A client application */ -/* can usually create one glyph object for a given face, then use */ -/* it for all subsequent loads. */ -/* */ -/* Here is an example of a client application : */ -/* (NOTE: No error checking performed here!) */ -/* */ -/* */ -/* TT_Face face; -- face handle */ -/* TT_Instance ins1, ins2; -- two instance handles */ -/* TT_Glyph glyph; -- glyph handle */ -/* */ -/* TT_Init_FreeType(); */ -/* */ -/* -- Initialize the engine. This must be done prior to _any_ */ -/* operation. */ -/* */ -/* TT_Open_Face( "/some/face/name.ttf", &face ); */ -/* */ -/* -- create the face object. This call opens the font file */ -/* */ -/* TT_New_Instance( face, &ins1 ); */ -/* TT_New_Instance( face, &ins2 ); */ -/* */ -/* TT_Set_Instance_PointSize( ins1, 8 ); */ -/* TT_Set_Instance_PointSize( ins2, 12 ); */ -/* */ -/* -- create two distinct instances of the same face */ -/* -- ins1 is pointsize 8 at resolution 96 dpi */ -/* -- ins2 is pointsize 12 at resolution 96 dpi */ -/* */ -/* TT_New_Glyph( face, &glyph ); */ -/* */ -/* -- create a new glyph object which will receive the contents */ -/* of any glyph of 'face' */ -/* */ -/* TT_Load_Glyph( ins1, glyph, 64, DEFAULT_GLYPH_LOAD ); */ -/* */ -/* -- load glyph indexed 64 at pointsize 8 in the 'glyph' object */ -/* -- NOTE: This call will fail if the instance and the glyph */ -/* do not relate to the same face object. */ -/* */ -/* TT_Get_Outline( glyph, &outline ); */ -/* */ -/* -- extract the glyph outline from the object and copies it */ -/* to the 'outline' record */ -/* */ -/* TT_Get_Metrics( glyph, &metrics ); */ -/* */ -/* -- extract the glyph metrics and put them into the 'metrics' */ -/* record */ -/* */ -/* TT_Load_Glyph( ins2, glyph, 64, DEFAULT_GLYPH_LOAD ); */ -/* */ -/* -- load the same glyph at pointsize 12 in the 'glyph' object */ -/* */ -/* */ -/* TT_Close_Face( &face ); */ -/* */ -/* -- destroy the face object. This will destroy 'ins1' and */ -/* 'ins2'. However, the glyph object will still be available */ -/* */ -/* TT_Done_FreeType(); */ -/* */ -/* -- Finalize the engine. This will also destroy all pending */ -/* glyph objects (here 'glyph'). */ - - struct TFace_; - struct TInstance_; - struct TExecution_Context_; - struct TGlyph_; - - typedef struct TFace_ TFace; - typedef TFace* PFace; - - typedef struct TInstance_ TInstance; - typedef TInstance* PInstance; - - typedef struct TExecution_Context_ TExecution_Context; - typedef TExecution_Context* PExecution_Context; - - typedef struct TGlyph_ TGlyph; - typedef TGlyph* PGlyph; - - - /*************************************************************/ - /* */ - /* ADDITIONAL SUBTABLES */ - /* */ - /* These tables are not precisely defined by the specs */ - /* but their structures is implied by the TrueType font */ - /* file layout. */ - /* */ - /*************************************************************/ - - /* Graphics State */ - /* */ - /* The Graphics State (GS) is managed by the */ - /* instruction field, but does not come from */ - /* the font file. Thus, we can use 'int's */ - /* where needed. */ - - struct TGraphicsState_ - { - UShort rp0; - UShort rp1; - UShort rp2; - - TT_UnitVector dualVector; - TT_UnitVector projVector; - TT_UnitVector freeVector; - - Long loop; - TT_F26Dot6 minimum_distance; - Int round_state; - - Bool auto_flip; - TT_F26Dot6 control_value_cutin; - TT_F26Dot6 single_width_cutin; - TT_F26Dot6 single_width_value; - Short delta_base; - Short delta_shift; - - Byte instruct_control; - Bool scan_control; - Int scan_type; - - UShort gep0; - UShort gep1; - UShort gep2; - }; - - typedef struct TGraphicsState_ TGraphicsState; - - - FT_INTERNAL_DEF( const TGraphicsState ) Default_GraphicsState; - - - /*************************************************************/ - /* */ - /* EXECUTION SUBTABLES */ - /* */ - /* These sub-tables relate to instruction execution. */ - /* */ - /*************************************************************/ - -#define MAX_CODE_RANGES 3 - -/* There can only be 3 active code ranges at once: */ -/* - the Font Program */ -/* - the CVT Program */ -/* - a glyph's instructions set */ - -#define TT_CodeRange_Font 1 -#define TT_CodeRange_Cvt 2 -#define TT_CodeRange_Glyph 3 - - - struct TCodeRange_ - { - PByte Base; - ULong Size; - }; - - typedef struct TCodeRange_ TCodeRange; - typedef TCodeRange* PCodeRange; - - - /* Defintion of a code range */ - /* */ - /* Code ranges can be resident to a glyph (i.e. the Font Program) */ - /* while some others are volatile (Glyph instructions). */ - /* Tracking the state and presence of code ranges allows function */ - /* and instruction definitions within a code range to be forgotten */ - /* when the range is discarded. */ - - typedef TCodeRange TCodeRangeTable[MAX_CODE_RANGES]; - - /* defines a function/instruction definition record */ - - struct TDefRecord_ - { - Int Range; /* in which code range is it located ? */ - ULong Start; /* where does it start ? */ - Int Opc; /* function #, or instruction code */ - Bool Active; /* is it active ? */ - }; - - typedef struct TDefRecord_ TDefRecord; - typedef TDefRecord* PDefRecord; - typedef TDefRecord* PDefArray; - - /* defines a call record, used to manage function calls. */ - - struct TCallRecord_ - { - Int Caller_Range; - ULong Caller_IP; - Long Cur_Count; - ULong Cur_Restart; - }; - - typedef struct TCallRecord_ TCallRecord; - typedef TCallRecord* PCallRecord; - typedef TCallRecord* PCallStack; /* defines a simple call stack */ - - - /* This type defining a set of glyph points will be used to represent */ - /* each zone (regular and twilight) during instructions decoding. */ - struct TGlyph_Zone_ - { - UShort n_points; /* number of points in zone */ - Short n_contours; /* number of contours */ - - TT_Vector* org; /* original points coordinates */ - TT_Vector* cur; /* current points coordinates */ - - Byte* touch; /* current touch flags */ - UShort* contours; /* contour end points */ - }; - - typedef struct TGlyph_Zone_ TGlyph_Zone; - typedef TGlyph_Zone* PGlyph_Zone; - - - -#ifndef TT_CONFIG_OPTION_STATIC_INTERPRETER - /* Normal (indexed) implementation */ - -#define EXEC_OPS PExecution_Context exc, -#define EXEC_OP PExecution_Context exc -#define EXEC_ARGS exc, -#define EXEC_ARG exc - -#else - /* Static implementation, with one shared execution context. */ - -#define EXEC_OPS /* [nothing] */ -#define EXEC_OP /* void */ -#define EXEC_ARGS /* [nothing] */ -#define EXEC_ARG /* void */ - -#endif /* TT_CONFIG_OPTION_STATIC_INTERPRETER */ - - - /* Rounding function, as used by the interpreter */ - typedef TT_F26Dot6 (*TRound_Function)( EXEC_OPS TT_F26Dot6 distance, - TT_F26Dot6 compensation ); - - /* Point displacement along the freedom vector routine, as */ - /* used by the interpreter */ - typedef void (*TMove_Function)( EXEC_OPS PGlyph_Zone zone, - UShort point, - TT_F26Dot6 distance ); - - /* Distance projection along one of the proj. vectors, as used */ - /* by the interpreter */ - typedef TT_F26Dot6 (*TProject_Function)( EXEC_OPS TT_Vector* v1, - TT_Vector* v2 ); - - /* reading a cvt value. Take care of non-square pixels when needed */ - typedef TT_F26Dot6 (*TGet_CVT_Function)( EXEC_OPS ULong index ); - - /* setting or moving a cvt value. Take care of non-square pixels */ - /* when needed */ - typedef void (*TSet_CVT_Function)( EXEC_OPS ULong index, - TT_F26Dot6 value ); - - /* subglyph transformation record */ - struct TTransform_ - { - TT_Fixed xx, xy; /* transformation */ - TT_Fixed yx, yy; /* matrix */ - TT_F26Dot6 ox, oy; /* offsets */ - }; - - typedef struct TTransform_ TTransform; - typedef TTransform* PTransform; - - /* subglyph loading record. Used to load composite components */ - struct TSubglyph_Record_ - { - Long index; /* subglyph index; initialized with -1 */ - Bool is_scaled; /* is the subglyph scaled? */ - Bool is_hinted; /* should it be hinted? */ - Bool preserve_pps; /* preserve phantom points? */ - - Long file_offset; - - TT_Big_Glyph_Metrics metrics; - - TGlyph_Zone zone; - - Long arg1; /* first argument */ - Long arg2; /* second argument */ - - UShort element_flag; /* current load element flag */ - - TTransform transform; /* transform */ - - TT_Vector pp1, pp2; /* phantom points */ - - }; - - typedef struct TSubglyph_Record_ TSubglyph_Record; - typedef TSubglyph_Record* PSubglyph_Record; - typedef TSubglyph_Record* PSubglyph_Stack; - - /* A note regarding non-squared pixels: */ - /* */ - /* (This text will probably go into some docs at some time, for */ - /* now, it is kept there to explain some definitions in the */ - /* TIns_Metrics record). */ - /* */ - /* The CVT is a one-dimensional array containing values that */ - /* control certain important characteristics in a font, like */ - /* the height of all capitals, all lowercase letter, default */ - /* spacing or stem width/height. */ - /* */ - /* These values are found in FUnits in the font file, and must be */ - /* scaled to pixel coordinates before being used by the CVT and */ - /* glyph programs. Unfortunately, when using distinct x and y */ - /* resolutions (or distinct x and y pointsizes), there are two */ - /* possible scalings. */ - /* */ - /* A first try was to implement a 'lazy' scheme where all values */ - /* were scaled when first used. However, while some values are always */ - /* used in the same direction, and some other are used in many */ - /* different circumstances and orientations. */ - /* */ - /* I have found a simpler way to do the same, and it even seems to */ - /* work in most of the cases: */ - /* */ - /* - all CVT values are scaled to the maximum ppem size */ - /* */ - /* - when performing a read or write in the CVT, a ratio factor */ - /* is used to perform adequate scaling. Example: */ - /* */ - /* x_ppem = 14 */ - /* y_ppem = 10 */ - /* */ - /* we choose ppem = x_ppem = 14 as the CVT scaling size. All cvt */ - /* entries are scaled to it. */ - /* */ - /* x_ratio = 1.0 */ - /* y_ratio = y_ppem/ppem (< 1.0) */ - /* */ - /* we compute the current ratio like: */ - /* */ - /* - if projVector is horizontal, */ - /* ratio = x_ratio = 1.0 */ - /* - if projVector is vertical, */ - /* ratop = y_ratio */ - /* - else, */ - /* ratio = sqrt((proj.x*x_ratio)^2 + (proj.y*y_ratio)^2) */ - /* */ - /* reading a cvt value returns ratio * cvt[index] */ - /* writing a cvt value in pixels cvt[index] / ratio */ - /* */ - /* the current ppem is simply ratio * ppem */ - /* */ - - /* metrics used by the instance and execution context objects */ - struct TIns_Metrics_ - { - TT_F26Dot6 pointSize; /* point size. 1 point = 1/72 inch. */ - - UShort x_resolution; /* device horizontal resolution in dpi. */ - UShort y_resolution; /* device vertical resolution in dpi. */ - - UShort x_ppem; /* horizontal pixels per EM */ - UShort y_ppem; /* vertical pixels per EM */ - - Long x_scale1; - Long x_scale2; /* used to scale FUnits to fractional pixels */ - - Long y_scale1; - Long y_scale2; /* used to scale FUnits to fractional pixels */ - - /* for non-square pixels */ - Long x_ratio; - Long y_ratio; - - UShort ppem; /* maximum ppem size */ - Long ratio; /* current ratio */ - Long scale1; - Long scale2; /* scale for ppem */ - - TT_F26Dot6 compensations[4]; /* device-specific compensations */ - - Bool rotated; /* `is the glyph rotated?'-flag */ - Bool stretched; /* `is the glyph stretched?'-flag */ - }; - - typedef struct TIns_Metrics_ TIns_Metrics; - typedef TIns_Metrics* PIns_Metrics; - - - - /***********************************************************************/ - /* */ - /* FreeType Face Type */ - /* */ - /***********************************************************************/ - - struct TFace_ - { - /* parent engine instance for the face object */ - PEngine_Instance engine; - - /* i/o stream */ - TT_Stream stream; - - /* used only by the threaded builds of the library */ - TMutex lock; - - /* TrueType collection header, if any was found */ - TTTCHeader ttcHeader; - - /* maximum profile table, as found in the TrueType file */ - TMaxProfile maxProfile; - - /* Note: */ - /* it seems that some maximum values cannot be */ - /* taken directly from this table, but rather by */ - /* combining some of its fields; e.g. the max. */ - /* number of points seems to be given by */ - /* MAX( maxPoints, maxCompositePoints ) */ - /* */ - /* For this reason, we define later our own */ - /* max values that are used to load and allocate */ - /* further tables. */ - - TT_Header fontHeader; /* the font header, as */ - /* found in the TTF file */ - TT_Horizontal_Header horizontalHeader; /* the horizontal header */ - - Bool verticalInfo; /* True when vertical table */ - TT_Vertical_Header verticalHeader; /* is present in the font */ - - TT_OS2 os2; /* 'OS/2' table */ - - TT_Postscript postscript; /* 'Post' table */ - - TT_Hdmx hdmx; /* 'Hdmx' table */ - - TName_Table nameTable; /* name table */ - - TGasp gasp; /* the 'gasp' table */ - - /* The directory of TrueType tables for this typeface */ - UShort numTables; - PTableDirEntry dirTables; - - /* The directory of character mappings table for */ - /* this typeface */ - UShort numCMaps; - PCMapTable cMaps; - - /* The glyph locations table */ - ULong numLocations; /* UShort is not enough */ -#ifndef TT_HUGE_PTR - PStorage glyphLocations; -#else - Storage TT_HUGE_PTR * glyphLocations; -#endif - - /* NOTE : The "hmtx" is now part of the horizontal header */ - - /* the font program, if any */ - ULong fontPgmSize; - PByte fontProgram; - - /* the cvt program, if any */ - ULong cvtPgmSize; - PByte cvtProgram; - - /* the original, unscaled, control value table */ - ULong cvtSize; - PShort cvt; - - /* The following values _must_ be set by the */ - /* maximum profile loader */ - - UShort numGlyphs; /* the face's total number of glyphs */ - UShort maxPoints; /* max glyph points number, simple and composite */ - UShort maxContours; /* max glyph contours numb, simple and composite */ - UShort maxComponents; /* max components in a composite glyph */ - - /* the following are object caches to track active */ - /* and recycled instances and execution contexts */ - /* objects. See 'ttcache.h' */ - - TCache instances; /* current instances for this face */ - TCache glyphs; /* current glyph containers for this face */ - - - /* A typeless pointer to the face object extensions defined */ - /* in the 'ttextend.*' files. */ - void* extension; - Int n_extensions; /* number of extensions */ - - /* Use extensions to provide additional capabilities to the */ - /* engine. Read the developer's guide in the documentation */ - /* directory to know how to do that. */ - - /* a generic pointer for client use - see TT_Set/Get_Face_Pointer */ - void* generic; - }; - - - - /***********************************************************************/ - /* */ - /* FreeType Instance Type */ - /* */ - /***********************************************************************/ - - struct TInstance_ - { - PFace owner; /* face object */ - - Bool valid; - - TIns_Metrics metrics; - - UShort numFDefs; /* number of function definitions */ - UShort maxFDefs; - PDefArray FDefs; /* table of FDefs entries */ - - UShort numIDefs; /* number of instruction definitions */ - UShort maxIDefs; - PDefArray IDefs; /* table of IDefs entries */ - - Int maxFunc; /* maximum function definition id */ - Int maxIns; /* maximum instruction definition id */ - - TCodeRangeTable codeRangeTable; - - TGraphicsState GS; - TGraphicsState default_GS; - - ULong cvtSize; /* the scaled control value table */ - PLong cvt; - - ULong storeSize; /* The storage area is now part of the */ - PLong storage; /* instance */ - - TGlyph_Zone twilight; /* The instance's twilight zone */ - - /* debugging variables */ - - /* When using the debugger, we must keep the */ - /* execution context tied to the instance */ - /* object rather than asking it on demand */ - - Bool debug; - PExecution_Context context; - - /* a generic pointer for client use - see TT_Set/Get_Instance_Pointer */ - void* generic; - }; - - - /***********************************************************************/ - /* */ - /* FreeType Execution Context Type */ - /* */ - /***********************************************************************/ - - struct TExecution_Context_ - { - PFace face; - PInstance instance; - - /* instructions state */ - - TT_Error error; /* last execution error */ - - Long top; /* top of exec. stack */ - - ULong stackSize; /* size of exec. stack */ - PStorage stack; /* current exec. stack */ - - Long args; - ULong new_top; /* new top after exec. */ - - TGlyph_Zone zp0, /* zone records */ - zp1, - zp2, - pts, - twilight; - - TIns_Metrics metrics; /* instance metrics */ - - TGraphicsState GS; /* current graphics state */ - - Int curRange; /* current code range number */ - PByte code; /* current code range */ - ULong IP; /* current instruction pointer */ - ULong codeSize; /* size of current range */ - - Byte opcode; /* current opcode */ - Int length; /* length of current opcode */ - - Bool step_ins; /* true if the interpreter must */ - /* increment IP after ins. exec */ - ULong cvtSize; - PLong cvt; - - ULong glyphSize; /* glyph instructions buffer size */ - PByte glyphIns; /* glyph instructions buffer */ - - UShort numFDefs; /* number of function defs */ - UShort maxFDefs; /* maximum number of function defs */ - PDefRecord FDefs; /* table of FDefs entries */ - - UShort numIDefs; /* number of instruction defs */ - UShort maxIDefs; /* maximum number of instruction defs */ - PDefRecord IDefs; /* table of IDefs entries */ - - Int maxFunc; - Int maxIns; - - Int callTop, /* top of call stack during execution */ - callSize; /* size of call stack */ - PCallStack callStack; /* call stack */ - - UShort maxPoints; /* capacity of this context's "pts" */ - UShort maxContours; /* record, expressed in points and */ - /* contours.. */ - - TCodeRangeTable codeRangeTable; /* table of valid coderanges */ - /* useful for the debugger */ - - ULong storeSize; /* size of current storage */ - PLong storage; /* storage area */ - - TT_F26Dot6 period; /* values used for the */ - TT_F26Dot6 phase; /* 'SuperRounding' */ - TT_F26Dot6 threshold; - - /* this seems to be unused */ -#if 0 - Int cur_ppem; /* ppem along the current proj vector */ -#endif - Long scale1; /* scaling values along the current */ - Long scale2; /* projection vector too.. */ - Bool cached_metrics; /* the ppem is computed lazily. used */ - /* to trigger computation when needed */ - - Bool instruction_trap; /* If True, the interpreter will */ - /* exit after each instruction */ - - TGraphicsState default_GS; /* graphics state resulting from */ - /* the prep program */ - Bool is_composite; /* ture if the glyph is composite */ - - Bool pedantic_hinting; /* if true, read and write array */ - /* bounds faults halt the hinting */ - - /* latest interpreter additions */ - - Long F_dot_P; /* dot product of freedom and projection */ - /* vectors */ - TRound_Function func_round; /* current rounding function */ - - TProject_Function func_project, /* current projection function */ - func_dualproj, /* current dual proj. function */ - func_freeProj; /* current freedom proj. func */ - - TMove_Function func_move; /* current point move function */ - - TGet_CVT_Function func_read_cvt; /* read a cvt entry */ - TSet_CVT_Function func_write_cvt; /* write a cvt entry (in pixels) */ - TSet_CVT_Function func_move_cvt; /* incr a cvt entry (in pixels) */ - - ULong loadSize; - PSubglyph_Stack loadStack; /* loading subglyph stack */ - - }; - - - /***********************************************************************/ - /* */ - /* FreeType Glyph Object Type */ - /* */ - /***********************************************************************/ - - struct TGlyph_ - { - PFace face; - TT_Big_Glyph_Metrics metrics; - TT_Outline outline; - }; - - - /* The following type is used to load a font from a collection. */ - /* See Face_Create in ttobjs.c */ - - struct TFont_Input_ - { - TT_Stream stream; /* input stream */ - ULong fontIndex; /* index of font in collection */ - PEngine_Instance engine; /* parent engine instance */ - - }; - - typedef struct TFont_Input_ TFont_Input; - - - /********************************************************************/ - /* */ - /* Code Range Functions */ - /* */ - /********************************************************************/ - - /* Goto a specified coderange */ - FT_INTERNAL_DEF( TT_Error ) - Goto_CodeRange( PExecution_Context exec, - Int range, - ULong IP ); - -#if 0 - /* Return a pointer to a given coderange record. */ - /* Used only by the debugger. */ - FT_INTERNAL_DEF( PCodeRange ) - Get_CodeRange( PExecution_Context exec, - Int range ); -#endif - - /* Set a given code range properties */ - FT_INTERNAL_DEF( TT_Error ) - Set_CodeRange( PExecution_Context exec, - Int range, - void* base, - ULong length ); - - /* Clear a given coderange */ - FT_INTERNAL_DEF( TT_Error ) - Clear_CodeRange( PExecution_Context exec, Int range ); - - - FT_INTERNAL_DEF( PExecution_Context ) - New_Context( PFace face ); - - FT_INTERNAL_DEF( TT_Error ) - Done_Context( PExecution_Context exec ); - - - FT_INTERNAL_DEF( TT_Error ) - Context_Load( PExecution_Context exec, - PFace face, - PInstance ins ); - - FT_INTERNAL_DEF( TT_Error ) - Context_Save( PExecution_Context exec, - PInstance ins ); - - FT_INTERNAL_DEF( TT_Error ) - Context_Run( PExecution_Context exec, - Bool debug ); - - FT_INTERNAL_DEF( TT_Error ) - Instance_Init( PInstance ins ); - - FT_INTERNAL_DEF( TT_Error ) - Instance_Reset( PInstance ins ); - - - /********************************************************************/ - /* */ - /* Handy scaling functions */ - /* */ - /********************************************************************/ - - FT_INTERNAL_DEF( TT_Pos ) - Scale_X( PIns_Metrics metrics, - TT_Pos x ); - FT_INTERNAL_DEF( TT_Pos ) - Scale_Y( PIns_Metrics metrics, - TT_Pos y ); - - /********************************************************************/ - /* */ - /* Component Initializer/Finalizer */ - /* */ - /* Called from 'freetype.c' */ - /* The component must create and register the face, instance and */ - /* execution context cache classes before any object can be */ - /* managed. */ - /* */ - /********************************************************************/ - - FT_INTERNAL_DEF( TT_Error ) - TTObjs_Init( PEngine_Instance engine ); - FT_INTERNAL_DEF( TT_Error ) - TTObjs_Done( PEngine_Instance engine ); - -#ifdef __cplusplus - } -#endif - -#endif /* TTOBJS_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/ttraster.c b/Build/source/libs/freetype/freetype-1.5/lib/ttraster.c deleted file mode 100644 index e8024546423..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/ttraster.c +++ /dev/null @@ -1,2725 +0,0 @@ -/******************************************************************* - * - * ttraster.c 1.5 - * - * The FreeType glyph rasterizer (body). - * - * Copyright 1996-2000 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - * NOTES: - * - * This version supports the following: - * - * - direct grayscaling - * - sub-banding - * - drop-out modes 4 and 5 - * - second pass for complete drop-out control (bitmap only) - * - variable precision - * - * Changes between 1.5 and 1.3: - * - * Mainly performance tunings: - * - * - Line_Down() and Bezier_Down() now use the functions Line_Up() - * and Bezier_Up() to do their work. - * - optimized Split_Bezier() - * - optimized linked lists used during sweeps - * - ******************************************************************/ - -#include "ttraster.h" -#include "ttdebug.h" -#include "tttypes.h" -#include "ttengine.h" -#include "ttcalc.h" /* for TT_MulDiv only */ - -#include "ttmemory.h" /* only used to allocate memory on engine init */ - -/* required by the tracing mode */ -#undef TT_COMPONENT -#define TT_COMPONENT trace_raster - - -/* The default render pool size */ -#define RASTER_RENDER_POOL 64000 - -/* The size of the two-lines intermediate bitmap used */ -/* for anti-aliasing */ -#define RASTER_GRAY_LINES 2048 - - -#define Raster_Err_None TT_Err_Ok -#define Raster_Err_Not_Ini TT_Err_Raster_Not_Initialized -#define Raster_Err_Overflow TT_Err_Raster_Pool_Overflow -#define Raster_Err_Neg_Height TT_Err_Raster_Negative_Height -#define Raster_Err_Invalid TT_Err_Raster_Invalid_Value -#define Raster_Err_Gray_Unsupported TT_Err_Raster_Gray_Unsupported - - -/* FMulDiv means "Fast MulDiv", it is uses in case where 'b' is typically */ -/* a small value and the result of (a*b) is known to fit in 32 bits. */ -#define FMulDiv( a, b, c ) ( (a) * (b) / (c) ) - -/* On the other hand, SMulDiv is for "Slow MulDiv", and is used typically */ -/* for clipping computations. It simply uses the TT_MulDiv() function */ -/* defined in "ttcalc.h" */ -/* */ -/* So, the following definition fits the bill nicely, and we don't need */ -/* to use the one in 'ttcalc' anymore, even for 16-bit systems... */ -#define SMulDiv TT_MulDiv - - -/* Define DEBUG_RASTER if you want to generate a debug version of the */ -/* rasterizer. This will progressively draw the glyphs while all the */ -/* computation are done directly on the graphics screen (the glyphs */ -/* will be inverted). */ - -/* Note that DEBUG_RASTER should only be used for debugging with b/w */ -/* rendering, not with gray levels. */ - -/* The definition of DEBUG_RASTER should appear in the file */ -/* "ttconfig.h". */ - -#ifdef DEBUG_RASTER - extern Char* Vio; /* A pointer to VRAM or display buffer */ -#endif - - -/* The rasterizer is a very general purpose component, please leave */ -/* the following redefinitions there (you never know your target */ -/* environment). */ - -#ifndef TRUE -#define TRUE 1 -#endif - -#ifndef FALSE -#define FALSE 0 -#endif - -#ifndef NULL -#define NULL (void*)0 -#endif - -#define MaxBezier 32 /* The maximum number of stacked Bezier curves. */ - /* Setting this constant to more than 32 is a */ - /* pure waste of space. */ - -#define Pixel_Bits 6 /* fractional bits of *input* coordinates */ - - /* States of each line, arc and profile */ - enum TStates_ - { - Unknown, - Ascending, - Descending, - Flat - }; - - typedef enum TStates_ TStates; - - struct TProfile_; - typedef struct TProfile_ TProfile; - typedef TProfile* PProfile; - - struct TProfile_ - { - TT_F26Dot6 X; /* current coordinate during sweep */ - PProfile link; /* link to next profile - various purpose */ - PStorage offset; /* start of profile's data in render pool */ - Int flow; /* Profile orientation: Asc/Descending */ - Long height; /* profile's height in scanlines */ - Long start; /* profile's starting scanline */ - - UShort countL; /* number of lines to step before this */ - /* profile becomes drawable */ - - PProfile next; /* next profile in same contour, used */ - /* during drop-out control */ - }; - - typedef PProfile TProfileList; - typedef PProfile* PProfileList; - - - /* I use the classic trick of two dummy records for the head and tail */ - /* of a linked list; this reduces tests in insertion/deletion/sorting. */ - /* NOTE: used during sweeps only. */ - - /* Simple record used to implement a stack of bands, required */ - /* by the sub-banding mechanism */ - - struct TBand_ - { - Short y_min; /* band's minimum */ - Short y_max; /* band's maximum */ - }; - - typedef struct TBand_ TBand; - - -#define AlignProfileSize \ - (( sizeof(TProfile)+sizeof(long)-1 ) / sizeof(long)) - - - /* Left fill bitmask */ - static const Byte LMask[8] = - { 0xFF, 0x7F, 0x3F, 0x1F, 0x0F, 0x07, 0x03, 0x01 }; - - /* Right fill bitmask */ - static const Byte RMask[8] = - { 0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC, 0xFE, 0xFF }; - - /* prototypes used for sweep function dispatch */ - typedef void Function_Sweep_Init( RAS_ARGS Short* min, - Short* max ); - - typedef void Function_Sweep_Span( RAS_ARGS Short y, - TT_F26Dot6 x1, - TT_F26Dot6 x2, - PProfile left, - PProfile right ); - - typedef void Function_Sweep_Step( RAS_ARG ); - - -/* NOTE: These operations are only valid on 2's complement processors */ - -#define FLOOR( x ) ( (x) & -ras.precision ) -#define CEILING( x ) ( ((x) + ras.precision - 1) & -ras.precision ) -#define TRUNC( x ) ( (signed long)(x) >> ras.precision_bits ) -#define FRAC( x ) ( (x) & (ras.precision - 1) ) -#define SCALED( x ) ( ((x) << ras.scale_shift) - ras.precision_half ) - -#ifdef DEBUG_RASTER -#define DEBUG_PSET Pset() -#else -#define DEBUG_PSET -#endif - - struct TPoint_ - { - Long x, y; - }; - - typedef struct TPoint_ TPoint; - - - /* Note that I have moved the location of some fields in the */ - /* structure to ensure that the most used variables are used */ - /* at the top. Thus, their offset can be coded with less */ - /* opcodes, and it results in a smaller executable. */ - - struct TRaster_Instance_ - { - Int precision_bits; /* precision related variables */ - Int precision; - Int precision_half; - Long precision_mask; - Int precision_shift; - Int precision_step; - Int precision_jitter; - - Int scale_shift; /* == precision_shift for bitmaps */ - /* == precision_shift+1 for pixmaps */ - - PStorage buff; /* The profiles buffer */ - PStorage sizeBuff; /* Render pool size */ - PStorage maxBuff; /* Profiles buffer size */ - PStorage top; /* Current cursor in buffer */ - - TT_Error error; - - PByte flags; /* current flags table */ - PUShort outs; /* current outlines table */ - - UShort nPoints; /* number of points in current glyph */ - Short nContours; /* number of contours in current glyph */ - Int numTurns; /* number of Y-turns in outline */ - - TPoint* arc; /* current Bezier arc pointer */ - - UShort bWidth; /* target bitmap width */ - PByte bTarget; /* target bitmap buffer */ - PByte gTarget; /* target pixmap buffer */ - - Long lastX, lastY, minY, maxY; - - UShort num_Profs; /* current number of profiles */ - - Bool fresh; /* signals a fresh new profile which */ - /* 'start' field must be completed */ - Bool joint; /* signals that the last arc ended */ - /* exactly on a scanline. Allows */ - /* removal of doublets */ - PProfile cProfile; /* current profile */ - PProfile fProfile; /* head of linked list of profiles */ - PProfile gProfile; /* contour's first profile in case */ - /* of impact */ - TStates state; /* rendering state */ - - TT_Raster_Map target; /* description of target bit/pixmap */ - - Long traceOfs; /* current offset in target bitmap */ - Long traceG; /* current offset in target pixmap */ - - Short traceIncr; /* sweep's increment in target bitmap */ - - Short gray_min_x; /* current min x during gray rendering */ - Short gray_max_x; /* current max x during gray rendering */ - - /* dispatch variables */ - - Function_Sweep_Init* Proc_Sweep_Init; - Function_Sweep_Span* Proc_Sweep_Span; - Function_Sweep_Span* Proc_Sweep_Drop; - Function_Sweep_Step* Proc_Sweep_Step; - - TT_Vector* coords; - - Byte dropOutControl; /* current drop_out control method */ - - Byte grays[5]; /* Palette of gray levels used for render */ - - Byte* gray_lines; /* Intermediate table used to render the */ - /* graylevels pixmaps. */ - /* gray_lines is a buffer holding two */ - /* monochrome scanlines */ - Short gray_width; /* width in bytes of one monochrome */ - /* intermediate scanline of gray_lines. */ - /* Each gray pixel takes 2 bits long there */ - - /* The gray_lines must hold 2 lines, thus with size */ - /* in bytes of at least 'gray_width*2' */ - - Bool second_pass; /* indicates wether a horizontal pass */ - /* should be performed to control drop-out */ - /* accurately when calling Render_Glyph. */ - /* Note that there is no horizontal pass */ - /* during gray rendering. */ - TPoint arcs[2 * MaxBezier + 1]; /* The Bezier stack */ - - TBand band_stack[16]; /* band stack used for sub-banding */ - Int band_top; /* band stack top */ - - Int count_table[256]; /* Look-up table used to quickly count */ - /* set bits in a gray 2x2 cell */ - }; - - -#ifdef TT_CONFIG_OPTION_STATIC_RASTER - - static TRaster_Instance cur_ras; -#define ras cur_ras - -#else - -#define ras (*raster) - -#endif /* TT_STATIC_RASTER */ - - -#ifdef DEBUG_RASTER - - /************************************************/ - /* */ - /* Pset: */ - /* */ - /* Used for debugging only. Plots a point */ - /* in VRAM during rendering (not afterwards). */ - /* */ - /* NOTE: This procedure relies on the value */ - /* of cProfile->start, which may not */ - /* be set when Pset is called sometimes. */ - /* This will usually result in a dot */ - /* plotted on the first screen scanline */ - /* (far away its original position). */ - /* */ - /* This "bug" reflects nothing wrong */ - /* in the current implementation, and */ - /* the bitmap is rendered correctly, */ - /* so don't panic if you see 'flying' */ - /* dots in debugging mode. */ - /* */ - /* - David */ - /* */ - /************************************************/ - - static void Pset( RAS_ARG ) - { - Long o; - Long x; - - - x = ras.top[-1]; - - switch ( ras.cProfile->flow ) - { - case TT_Flow_Up: - o = Vio_ScanLineWidth * - ( ras.top-ras.cProfile->offset + ras.cProfile->start ) + - ( x / (ras.precision*8) ); - break; - - case TT_Flow_Down: - o = Vio_ScanLineWidth * - ( ras.cProfile->start-ras.top + ras.cProfile->offset ) + - ( x / (ras.precision*8) ); - break; - } - - if ( o > 0 ) - Vio[o] |= (unsigned)0x80 >> ( (x/ras.precision) & 7 ); - } - - - static void Clear_Band( RAS_ARGS Int y1, Int y2 ) - { - MEM_Set( Vio + y1*Vio_ScanLineWidth, (y2-y1+1)*Vio_ScanLineWidth, 0 ); - } - -#endif /* DEBUG_RASTER */ - - -/************************************************************************/ -/* */ -/* Function: Set_High_Precision */ -/* */ -/* Description: Sets precision variables according to param flag. */ -/* */ -/* Input: High set to True for high precision (typically for */ -/* ppem < 18), false otherwise. */ -/* */ -/************************************************************************/ - - static void Set_High_Precision( RAS_ARGS Bool High ) - { - if ( High ) - { - ras.precision_bits = 10; - ras.precision_step = 128; - ras.precision_jitter = 24; - } - else - { - ras.precision_bits = 6; - ras.precision_step = 32; - ras.precision_jitter = 2; - } - - PTRACE7(( "Set_High_Precision(%s)\n", High ? "true" : "false" )); - - ras.precision = 1 << ras.precision_bits; - ras.precision_half = ras.precision / 2; - ras.precision_shift = ras.precision_bits - Pixel_Bits; - ras.precision_mask = -ras.precision; - } - - -/****************************************************************************/ -/* */ -/* Function: New_Profile */ -/* */ -/* Description: Creates a new Profile in the render pool. */ -/* */ -/* Input: aState state/orientation of the new Profile */ -/* */ -/* Returns: SUCCESS on success. */ -/* FAILURE in case of overflow or of incoherent Profile. */ -/* */ -/****************************************************************************/ - - static Bool New_Profile( RAS_ARGS TStates aState ) - { - if ( !ras.fProfile ) - { - ras.cProfile = (PProfile)ras.top; - ras.fProfile = ras.cProfile; - ras.top += AlignProfileSize; - } - - if ( ras.top >= ras.maxBuff ) - { - ras.error = Raster_Err_Overflow; - return FAILURE; - } - - switch ( aState ) - { - case Ascending: - ras.cProfile->flow = TT_Flow_Up; - PTRACE7(( "New ascending profile = %lx\n", (long)ras.cProfile )); - break; - - case Descending: - ras.cProfile->flow = TT_Flow_Down; - PTRACE7(( "New descending profile = %lx\n", (long)ras.cProfile )); - break; - - default: - PTRACE0(( "Invalid profile direction in Raster:New_Profile !!\n" )); - ras.error = Raster_Err_Invalid; - return FAILURE; - } - - ras.cProfile->start = 0; - ras.cProfile->height = 0; - ras.cProfile->offset = ras.top; - ras.cProfile->link = (PProfile)0; - ras.cProfile->next = (PProfile)0; - - if ( !ras.gProfile ) - ras.gProfile = ras.cProfile; - - ras.state = aState; - ras.fresh = TRUE; - ras.joint = FALSE; - - return SUCCESS; - } - - -/****************************************************************************/ -/* */ -/* Function: End_Profile */ -/* */ -/* Description: Finalizes the current Profile. */ -/* */ -/* Input: None */ -/* */ -/* Returns: SUCCESS on success. */ -/* FAILURE in case of overflow or incoherency. */ -/* */ -/****************************************************************************/ - - static Bool End_Profile( RAS_ARG ) - { - Long h; - PProfile oldProfile; - - - h = ras.top - ras.cProfile->offset; - - if ( h < 0 ) - { - PTRACE0(( "Negative height encountered in End_Profile!\n" )); - ras.error = Raster_Err_Neg_Height; - return FAILURE; - } - - if ( h > 0 ) - { - PTRACE1(( "Ending profile %lx, start = %ld, height = %ld\n", - (long)ras.cProfile, ras.cProfile->start, h )); - - oldProfile = ras.cProfile; - ras.cProfile->height = h; - ras.cProfile = (PProfile)ras.top; - - ras.top += AlignProfileSize; - - ras.cProfile->height = 0; - ras.cProfile->offset = ras.top; - oldProfile->next = ras.cProfile; - ras.num_Profs++; - } - - if ( ras.top >= ras.maxBuff ) - { - PTRACE1(( "overflow in End_Profile\n" )); - ras.error = Raster_Err_Overflow; - return FAILURE; - } - - ras.joint = FALSE; - - return SUCCESS; - } - - -/****************************************************************************/ -/* */ -/* Function: Insert_Y_Turn */ -/* */ -/* Description: Insert a salient into the sorted list placed on top */ -/* of the render pool */ -/* */ -/* Input: New y scanline position */ -/* */ -/****************************************************************************/ - - static - Bool Insert_Y_Turn( RAS_ARGS Int y ) - { - PStorage y_turns; - Int y2, n; - - n = ras.numTurns-1; - y_turns = ras.sizeBuff - ras.numTurns; - - /* look for first y value that is <= */ - while ( n >= 0 && y < y_turns[n] ) - n--; - - /* if it is <, simply insert it, ignore if == */ - if ( n >= 0 && y > y_turns[n] ) - while ( n >= 0 ) - { - y2 = y_turns[n]; - y_turns[n] = y; - y = y2; - n--; - } - - if ( n < 0 ) - { - if (ras.maxBuff <= ras.top) - { - ras.error = Raster_Err_Overflow; - return FAILURE; - } - ras.maxBuff--; - ras.numTurns++; - ras.sizeBuff[-ras.numTurns] = y; - } - - return SUCCESS; - } - - -/****************************************************************************/ -/* */ -/* Function: Finalize_Profile_Table */ -/* */ -/* Description: Adjusts all links in the Profiles list. */ -/* */ -/* Input: None */ -/* */ -/* Returns: None. */ -/* */ -/****************************************************************************/ - - static - Bool Finalize_Profile_Table( RAS_ARG ) - { - Long bottom, top; - UShort n; - PProfile p; - - - n = ras.num_Profs; - - if ( n > 1 ) - { - p = ras.fProfile; - while ( n > 0 ) - { - if ( n > 1 ) - p->link = (PProfile)( p->offset + p->height ); - else - p->link = NULL; - - switch ( p->flow ) - { - case TT_Flow_Down: - bottom = p->start - p->height+1; - top = p->start; - p->start = bottom; - p->offset += p->height-1; - break; - - case TT_Flow_Up: - default: - bottom = p->start; - top = p->start + p->height-1; - } - - if ( Insert_Y_Turn( RAS_VARS bottom ) || - Insert_Y_Turn( RAS_VARS top+1 ) ) - return FAILURE; - - p = p->link; - n--; - } - } - else - ras.fProfile = NULL; - - return SUCCESS; - } - - -/****************************************************************************/ -/* */ -/* Function: Split_Bezier */ -/* */ -/* Description: Subdivides one Bezier arc into two joint */ -/* sub-arcs in the Bezier stack. */ -/* */ -/* Input: None (subdivided bezier is taken from the top of the */ -/* stack). */ -/* */ -/* Returns: None. */ -/* */ -/* */ -/* Note: This routine is the 'beef' of this component. It is _the_ */ -/* inner loop that should be optimized to hell to get the */ -/* best performance. */ -/* */ -/****************************************************************************/ - - static void Split_Bezier( TPoint* base ) - { - Long a, b; - - - base[4].x = base[2].x; - b = base[1].x; - a = base[3].x = ( base[2].x + b ) / 2; - b = base[1].x = ( base[0].x + b ) / 2; - base[2].x = ( a + b ) / 2; - - base[4].y = base[2].y; - b = base[1].y; - a = base[3].y = ( base[2].y + b ) / 2; - b = base[1].y = ( base[0].y + b ) / 2; - base[2].y = ( a + b ) / 2; - - /* hand optimized. gcc doesn't seem too good at common expression */ - /* substitution and instruction scheduling ;-) */ - } - - -/****************************************************************************/ -/* */ -/* Function: Push_Bezier */ -/* */ -/* Description: Clears the Bezier stack and pushes a new arc on top of it. */ -/* */ -/* Input: x1,y1 x2,y2 x3,y3 new Bezier arc */ -/* */ -/* Returns: None. */ -/* */ -/****************************************************************************/ - - static void Push_Bezier( RAS_ARGS Long x1, Long y1, - Long x2, Long y2, - Long x3, Long y3 ) - { - ras.arc = ras.arcs; - ras.arc[2].x = x1; ras.arc[2].y = y1; - ras.arc[1].x = x2; ras.arc[1].y = y2; - ras.arc[0].x = x3; ras.arc[0].y = y3; - } - - -/****************************************************************************/ -/* */ -/* Function: Line_Up */ -/* */ -/* Description: Computes the x-coordinates of an ascending line segment */ -/* and stores them in the render pool. */ -/* */ -/* Input: x1,y1,x2,y2 Segment start (x1,y1) and end (x2,y2) points */ -/* */ -/* Returns: SUCCESS on success. */ -/* FAILURE on Render Pool overflow. */ -/* */ -/****************************************************************************/ - - static Bool Line_Up( RAS_ARGS Long x1, Long y1, - Long x2, Long y2, - Long miny, Long maxy ) - { - Long Dx, Dy; - Int e1, e2, f1, f2, size; /* XXX: is `Short' sufficient? */ - Long Ix, Rx, Ax; - - PStorage top; - - - Dx = x2 - x1; - Dy = y2 - y1; - - if ( Dy <= 0 || y2 < miny || y1 > maxy ) - return SUCCESS; - - if ( y1 < miny ) - { - /* Take care : miny-y1 can be a very large value, we use */ - /* a slow MulDiv function to avoid clipping bugs */ - x1 += SMulDiv( Dx, miny - y1, Dy ); - e1 = TRUNC( miny ); - f1 = 0; - } - else - { - e1 = TRUNC( y1 ); - f1 = FRAC( y1 ); - } - - if ( y2 > maxy ) - { - /* x2 += FMulDiv( Dx, maxy - y2, Dy ); UNNECESSARY */ - e2 = TRUNC( maxy ); - f2 = 0; - } - else - { - e2 = TRUNC( y2 ); - f2 = FRAC( y2 ); - } - - if ( f1 > 0 ) - { - if ( e1 == e2 ) return SUCCESS; - else - { - x1 += FMulDiv( Dx, ras.precision - f1, Dy ); - e1 += 1; - } - } - else - if ( ras.joint ) - { - ras.top--; - ras.joint = FALSE; - } - - ras.joint = ( f2 == 0 ); - - if ( ras.fresh ) - { - ras.cProfile->start = e1; - ras.fresh = FALSE; - } - - size = e2 - e1 + 1; - if ( ras.top + size >= ras.maxBuff ) - { - ras.error = Raster_Err_Overflow; - return FAILURE; - } - - if ( Dx > 0 ) - { - Ix = (ras.precision*Dx) / Dy; - Rx = (ras.precision*Dx) % Dy; - Dx = 1; - } - else - { - Ix = -( (ras.precision*-Dx) / Dy ); - Rx = (ras.precision*-Dx) % Dy; - Dx = -1; - } - - Ax = -Dy; - top = ras.top; - - while ( size > 0 ) - { - *top++ = x1; - - DEBUG_PSET; - - x1 += Ix; - Ax += Rx; - if ( Ax >= 0 ) - { - Ax -= Dy; - x1 += Dx; - } - size--; - } - - ras.top = top; - return SUCCESS; - } - - - static Bool Line_Down( RAS_ARGS Long x1, Long y1, - Long x2, Long y2, - Long miny, Long maxy ) - { - Bool result, fresh; - - - fresh = ras.fresh; - - result = Line_Up( RAS_VARS x1, -y1, x2, -y2, -maxy, -miny ); - - if ( fresh && !ras.fresh ) - ras.cProfile->start = -ras.cProfile->start; - - return result; - } - - -/****************************************************************************/ -/* */ -/* Function: Bezier_Up */ -/* */ -/* Description: Computes thes x-coordinates of an ascending bezier arc */ -/* and stores them in the render pool. */ -/* */ -/* Input: None. The arc is taken from the top of the Bezier stack. */ -/* */ -/* Returns: SUCCESS on success. */ -/* FAILURE on Render Pool overflow. */ -/* */ -/****************************************************************************/ - - static Bool Bezier_Up( RAS_ARGS Long miny, Long maxy ) - { - Long y1, y2, e, e2, e0; - Short f1; - - TPoint* arc; - TPoint* start_arc; - - PStorage top; - - - arc = ras.arc; - y1 = arc[2].y; - y2 = arc[0].y; - top = ras.top; - - if ( y2 < miny || y1 > maxy ) - goto Fin; - - e2 = FLOOR( y2 ); - - if ( e2 > maxy ) - e2 = maxy; - - e0 = miny; - - if ( y1 < miny ) - e = miny; - else - { - e = CEILING( y1 ); - f1 = FRAC( y1 ); - e0 = e; - - if ( f1 == 0 ) - { - if ( ras.joint ) - { - top--; - ras.joint = FALSE; - } - - *top++ = arc[2].x; - - DEBUG_PSET; - - e += ras.precision; - } - } - - if ( ras.fresh ) - { - ras.cProfile->start = TRUNC( e0 ); - ras.fresh = FALSE; - } - - if ( e2 < e ) - goto Fin; - - if ( ( top + TRUNC( e2 - e ) + 1 ) >= ras.maxBuff ) - { - ras.top = top; - ras.error = Raster_Err_Overflow; - return FAILURE; - } - - start_arc = arc; - - while ( arc >= start_arc && e <= e2 ) - { - ras.joint = FALSE; - - y2 = arc[0].y; - - if ( y2 > e ) - { - y1 = arc[2].y; - if ( y2 - y1 >= ras.precision_step ) - { - Split_Bezier( arc ); - arc += 2; - } - else - { - *top++ = arc[2].x + FMulDiv( arc[0].x - arc[2].x, - e - y1, - y2 - y1 ); - DEBUG_PSET; - - arc -= 2; - e += ras.precision; - } - } - else - { - if ( y2 == e ) - { - ras.joint = TRUE; - *top++ = arc[0].x; - - DEBUG_PSET; - - e += ras.precision; - } - arc -= 2; - } - } - - Fin: - ras.top = top; - ras.arc -= 2; - return SUCCESS; - } - - -/****************************************************************************/ -/* */ -/* Function: Bezier_Down */ -/* */ -/* Description: Computes the x-coordinates of a descending bezier arc */ -/* and stores them in the render pool. */ -/* */ -/* Input: None. Arc is taken from the top of the Bezier stack. */ -/* */ -/* Returns: SUCCESS on success. */ -/* FAILURE on Render Pool overflow. */ -/* */ -/****************************************************************************/ - - static Bool Bezier_Down( RAS_ARGS Long miny, Long maxy ) - { - TPoint* arc = ras.arc; - Bool result, fresh; - - - arc[0].y = -arc[0].y; - arc[1].y = -arc[1].y; - arc[2].y = -arc[2].y; - - fresh = ras.fresh; - - result = Bezier_Up( RAS_VARS -maxy, -miny ); - - if ( fresh && !ras.fresh ) - ras.cProfile->start = -ras.cProfile->start; - - arc[0].y = -arc[0].y; - return result; - } - - -/****************************************************************************/ -/* */ -/* Function: Line_To */ -/* */ -/* Description: Injects a new line segment and adjusts Profiles list. */ -/* */ -/* Input: x, y : segment endpoint (start point in LastX,LastY) */ -/* */ -/* Returns: SUCCESS on success. */ -/* FAILURE on Render Pool overflow or Incorrect Profile. */ -/* */ -/****************************************************************************/ - - static Bool Line_To( RAS_ARGS Long x, Long y ) - { - /* First, detect a change of direction */ - - switch ( ras.state ) - { - case Unknown: - if ( y > ras.lastY ) - { - if ( New_Profile( RAS_VARS Ascending ) ) return FAILURE; - } - else - { - if ( y < ras.lastY ) - if ( New_Profile( RAS_VARS Descending ) ) return FAILURE; - } - break; - - case Ascending: - if ( y < ras.lastY ) - { - if ( End_Profile( RAS_VAR ) || - New_Profile( RAS_VARS Descending ) ) return FAILURE; - } - break; - - case Descending: - if ( y > ras.lastY ) - { - if ( End_Profile( RAS_VAR ) || - New_Profile( RAS_VARS Ascending ) ) return FAILURE; - } - break; - - default: - ; - } - - /* Then compute the lines */ - - switch ( ras.state ) - { - case Ascending: - if ( Line_Up ( RAS_VARS ras.lastX, ras.lastY, - x, y, ras.minY, ras.maxY ) ) - return FAILURE; - break; - - case Descending: - if ( Line_Down( RAS_VARS ras.lastX, ras.lastY, - x, y, ras.minY, ras.maxY ) ) - return FAILURE; - break; - - default: - ; - } - - ras.lastX = x; - ras.lastY = y; - - return SUCCESS; - } - - -/****************************************************************************/ -/* */ -/* Function: Bezier_To */ -/* */ -/* Description: Injects a new bezier arc and adjusts the profile list. */ -/* */ -/* Input: x, y : arc endpoint (start point in LastX, LastY) */ -/* Cx, Cy : control point */ -/* */ -/* Returns: SUCCESS on success. */ -/* FAILURE on Render Pool overflow or Incorrect Profile. */ -/* */ -/****************************************************************************/ - - static Bool Bezier_To( RAS_ARGS Long x, - Long y, - Long cx, - Long cy ) - { - Long y1, y2, y3, x3; - TStates state_bez; - - - Push_Bezier( RAS_VARS ras.lastX, ras.lastY, cx, cy, x, y ); - - do - { - y1 = ras.arc[2].y; - y2 = ras.arc[1].y; - y3 = ras.arc[0].y; - x3 = ras.arc[0].x; - - /* first, categorize the bezier arc */ - - if ( y1 == y2 ) - { - if ( y2 == y3 ) - state_bez = Flat; - else if ( y2 > y3 ) - state_bez = Descending; - else - state_bez = Ascending; - } - else if ( y1 > y2 ) - { - if ( y2 >= y3 ) - state_bez = Descending; - else - state_bez = Unknown; - } - else if ( y2 <= y3 ) - state_bez = Ascending; - else - state_bez = Unknown; - - /* split non-monotonic arcs, ignore flat ones, or */ - /* computes the up and down ones */ - - switch ( state_bez ) - { - case Flat: - ras.arc -= 2; - break; - - case Unknown: - Split_Bezier( ras.arc ); - ras.arc += 2; - break; - - default: - /* detect a change of direction */ - - if ( ras.state != state_bez ) - { - if ( ras.state != Unknown ) - if ( End_Profile( RAS_VAR ) ) return FAILURE; - - if ( New_Profile( RAS_VARS state_bez ) ) return FAILURE; - } - - /* compute */ - - switch ( ras.state ) - { - case Ascending: - if ( Bezier_Up ( RAS_VARS ras.minY, ras.maxY ) ) - return FAILURE; - break; - - case Descending: - if ( Bezier_Down( RAS_VARS ras.minY, ras.maxY ) ) - return FAILURE; - break; - - default: - ; - } - } - } while ( ras.arc >= ras.arcs ); - - ras.lastX = x3; - ras.lastY = y3; - - return SUCCESS; - } - - -/****************************************************************************/ -/* */ -/* Function: Decompose_Curve */ -/* */ -/* Description: Scans the outline arays in order to emit individual */ -/* segments and beziers by calling Line_To() and Bezier_To(). */ -/* It handles all weird cases, like when the first point */ -/* is off the curve, or when there are simply no 'on' */ -/* points in the contour! */ -/* */ -/* Input: first, last : indexes of first and last point in */ -/* contour. */ -/* */ -/* Returns: SUCCESS on success. */ -/* FAILURE on error. */ -/* */ -/****************************************************************************/ - -#undef SWAP_ -#define SWAP_(x,y) { Long swap = x; x = y; y = swap; } - - static Bool Decompose_Curve( RAS_ARGS UShort first, - UShort last, - Bool flipped ) - { - Long x, y; /* current point */ - Long cx, cy; /* current Bezier control point */ - Long mx, my; /* current middle point */ - - Long x_first, y_first; /* first point's coordinates */ - Long x_last, y_last; /* last point's coordinates */ - - UShort index; /* current point's index */ - Bool on_curve; /* current point's state */ - - x_first = SCALED( ras.coords[first].x ); - y_first = SCALED( ras.coords[first].y ); - - if ( flipped ) SWAP_( x_first,y_first ); - - x_last = SCALED( ras.coords[last].x ); - y_last = SCALED( ras.coords[last].y ); - - if ( flipped ) SWAP_( x_last,y_last ); - - ras.lastX = cx = x_first; - ras.lastY = cy = y_first; - - on_curve = (ras.flags[first] & 1); - index = first; - - /* check first point to determine origin */ - if ( !on_curve ) - { - /* first point is off the curve. Yes, this happens... */ - if ( ras.flags[last] & 1 ) - { - ras.lastX = x_last; /* start at last point if it */ - ras.lastY = y_last; /* is on the curve */ - } - else - { - /* if both first and last points are off the curve, */ - /* start at their middle and record its position */ - /* for closure */ - ras.lastX = (ras.lastX + x_last)/2; - ras.lastY = (ras.lastY + y_last)/2; - - x_last = ras.lastX; - y_last = ras.lastY; - } - } - - /* now process each contour point individually */ - while ( index < last ) - { - index++; - x = SCALED( ras.coords[index].x ); - y = SCALED( ras.coords[index].y ); - - if ( flipped ) SWAP_( x, y ); - - if ( on_curve ) - { - /* the previous point was on the curve */ - on_curve = ( ras.flags[index] & 1 ); - if ( on_curve ) - { - /* two successive on points => emit segment */ - if ( Line_To( RAS_VARS x, y ) ) return FAILURE; - } - else - { - /* else, keep current control point for next bezier */ - cx = x; - cy = y; - } - } - else - { - /* the previous point was off the curve */ - on_curve = ( ras.flags[index] & 1 ); - if ( on_curve ) - { - /* reaching an `on' point */ - if ( Bezier_To( RAS_VARS x, y, cx, cy ) ) return FAILURE; - } - else - { - /* two successive `off' points => create middle point */ - mx = ( cx + x ) / 2; - my = ( cy + y ) / 2; - - if ( Bezier_To( RAS_VARS mx, my, cx, cy ) ) return FAILURE; - - cx = x; - cy = y; - } - } - } - - /* end of contour, close curve cleanly */ - if ( ras.flags[first] & 1 ) - { - if ( on_curve ) - return Line_To( RAS_VARS x_first, y_first ); - else - return Bezier_To( RAS_VARS x_first, y_first, cx, cy ); - } - else - if ( !on_curve ) - return Bezier_To( RAS_VARS x_last, y_last, cx, cy ); - - return SUCCESS; - } - - -/****************************************************************************/ -/* */ -/* Function: Convert_Glyph */ -/* */ -/* Description: Converts a glyph into a series of segments and arcs */ -/* and makes a Profiles list with them. */ -/* */ -/* Input: _xCoord, _yCoord : coordinates tables. */ -/* */ -/* Uses the 'Flag' table too. */ -/* */ -/* Returns: SUCCESS on success. */ -/* FAILURE if any error was encountered during rendering. */ -/* */ -/****************************************************************************/ - - static Bool Convert_Glyph( RAS_ARGS int flipped ) - { - Short i; - UShort start; - - PProfile lastProfile; - - - ras.fProfile = NULL; - ras.joint = FALSE; - ras.fresh = FALSE; - - ras.maxBuff = ras.sizeBuff - AlignProfileSize; - - ras.numTurns = 0; - - ras.cProfile = (PProfile)ras.top; - ras.cProfile->offset = ras.top; - ras.num_Profs = 0; - - start = 0; - - for ( i = 0; i < ras.nContours; i++ ) - { - ras.state = Unknown; - ras.gProfile = NULL; - - if ( Decompose_Curve( RAS_VARS start, ras.outs[i], flipped ) ) - return FAILURE; - - start = ras.outs[i] + 1; - - /* We must now see if the extreme arcs join or not */ - if ( ( FRAC( ras.lastY ) == 0 && - ras.lastY >= ras.minY && - ras.lastY <= ras.maxY ) ) - if ( ras.gProfile && ras.gProfile->flow == ras.cProfile->flow ) - ras.top--; - /* Note that ras.gProfile can be nil if the contour was too small */ - /* to be drawn. */ - - lastProfile = ras.cProfile; - if ( End_Profile( RAS_VAR ) ) return FAILURE; - - /* close the 'next profile in contour' linked list */ - if ( ras.gProfile ) - lastProfile->next = ras.gProfile; - } - - if (Finalize_Profile_Table( RAS_VAR )) - return FAILURE; - - return (ras.top < ras.maxBuff ? SUCCESS : FAILURE ); - } - - -/************************************************/ -/* */ -/* Init_Linked */ -/* */ -/* Inits an empty linked list. */ -/* */ -/************************************************/ - - static void Init_Linked( TProfileList* l ) - { - *l = NULL; - } - - -/************************************************/ -/* */ -/* InsNew : */ -/* */ -/* Inserts a new Profile in a linked list. */ -/* */ -/************************************************/ - - static void InsNew( PProfileList list, - PProfile profile ) - { - PProfile *old, current; - Long x; - - - old = list; - current = *old; - x = profile->X; - - while ( current ) - { - if ( x < current->X ) - break; - old = ¤t->link; - current = *old; - } - - profile->link = current; - *old = profile; - } - - -/*************************************************/ -/* */ -/* DelOld : */ -/* */ -/* Removes an old Profile from a linked list. */ -/* */ -/*************************************************/ - - static void DelOld( PProfileList list, - PProfile profile ) - { - PProfile *old, current; - - - old = list; - current = *old; - - while ( current ) - { - if ( current == profile ) - { - *old = current->link; - return; - } - - old = ¤t->link; - current = *old; - } - - /* we should never get there, unless the Profile was not part of */ - /* the list. */ - } - - -/************************************************/ -/* */ -/* Update : */ -/* */ -/* Update all X offsets of a drawing list */ -/* */ -/************************************************/ - - static void Update( PProfile first ) - { - PProfile current = first; - - - while ( current ) - { - current->X = *current->offset; - current->offset += current->flow; - current->height--; - current = current->link; - } - } - - -/************************************************/ -/* */ -/* Sort : */ -/* */ -/* Sorts a trace list. In 95%, the list */ -/* is already sorted. We need an algorithm */ -/* which is fast in this case. Bubble sort */ -/* is enough and simple. */ -/* */ -/************************************************/ - - static void Sort( PProfileList list ) - { - PProfile *old, current, next; - - - /* First, set the new X coordinate of each profile */ - Update( *list ); - - /* Then sort them */ - old = list; - current = *old; - - if ( !current ) - return; - - next = current->link; - - while ( next ) - { - if ( current->X <= next->X ) - { - old = ¤t->link; - current = *old; - - if ( !current ) - return; - } - else - { - *old = next; - current->link = next->link; - next->link = current; - - old = list; - current = *old; - } - - next = current->link; - } - } - - -/***********************************************************************/ -/* */ -/* Vertical Sweep Procedure Set : */ -/* */ -/* These three routines are used during the vertical black/white */ -/* sweep phase by the generic Draw_Sweep() function. */ -/* */ -/***********************************************************************/ - - static void Vertical_Sweep_Init( RAS_ARGS Short* min, Short* max ) - { - switch ( ras.target.flow ) - { - case TT_Flow_Up: - ras.traceOfs = *min * ras.target.cols; - ras.traceIncr = ras.target.cols; - break; - - default: - ras.traceOfs = ( ras.target.rows - 1 - *min ) * ras.target.cols; - ras.traceIncr = -ras.target.cols; - } - - ras.gray_min_x = 0; - ras.gray_max_x = 0; - } - - - static void Vertical_Sweep_Span( RAS_ARGS Short y, - TT_F26Dot6 x1, - TT_F26Dot6 x2, - PProfile left, - PProfile right ) - { - Long e1, e2; - Short c1, c2; - Short f1, f2; - Byte* target; - - - /* Drop-out control */ - - e1 = TRUNC( CEILING( x1 ) ); - - if ( x2-x1-ras.precision <= ras.precision_jitter ) - e2 = e1; - else - e2 = TRUNC( FLOOR( x2 ) ); - - if ( e2 >= 0 && e1 < ras.bWidth ) - { - if ( e1 < 0 ) e1 = 0; - if ( e2 >= ras.bWidth ) e2 = ras.bWidth-1; - - c1 = (Short)(e1 >> 3); - c2 = (Short)(e2 >> 3); - - f1 = e1 & 7; - f2 = e2 & 7; - - if ( ras.gray_min_x > c1 ) ras.gray_min_x = c1; - if ( ras.gray_max_x < c2 ) ras.gray_max_x = c2; - - target = ras.bTarget + ras.traceOfs + c1; - - if ( c1 != c2 ) - { - *target |= LMask[f1]; - - if ( c2 > c1 + 1 ) - MEM_Set( target + 1, 0xFF, c2 - c1 - 1 ); - - target[c2 - c1] |= RMask[f2]; - } - else - *target |= ( LMask[f1] & RMask[f2] ); - } - } - - - static void Vertical_Sweep_Drop( RAS_ARGS Short y, - TT_F26Dot6 x1, - TT_F26Dot6 x2, - PProfile left, - PProfile right ) - { - Long e1, e2; - Short c1, f1; - - - /* Drop-out control */ - - e1 = CEILING( x1 ); - e2 = FLOOR ( x2 ); - - if ( e1 > e2 ) - { - if ( e1 == e2 + ras.precision ) - { - switch ( ras.dropOutControl ) - { - case 1: - e1 = e2; - break; - - case 4: - e1 = CEILING( (x1 + x2 + 1) / 2 ); - break; - - case 2: - case 5: - /* Drop-out Control Rule #4 */ - - /* The spec is not very clear regarding rule #4. It */ - /* presents a method that is way too costly to implement */ - /* while the general idea seems to get rid of 'stubs'. */ - /* */ - /* Here, we only get rid of stubs recognized when: */ - /* */ - /* upper stub: */ - /* */ - /* - P_Left and P_Right are in the same contour */ - /* - P_Right is the successor of P_Left in that contour */ - /* - y is the top of P_Left and P_Right */ - /* */ - /* lower stub: */ - /* */ - /* - P_Left and P_Right are in the same contour */ - /* - P_Left is the successor of P_Right in that contour */ - /* - y is the bottom of P_Left */ - /* */ - - /* FIXXXME : uncommenting this line solves the disappearing */ - /* bit problem in the '7' of verdana 10pts, but */ - /* makes a new one in the 'C' of arial 14pts */ - - /* if ( x2-x1 < ras.precision_half ) */ - { - /* upper stub test */ - - if ( left->next == right && left->height <= 0 ) return; - - /* lower stub test */ - - if ( right->next == left && left->start == y ) return; - } - - /* check that the rightmost pixel isn't set */ - - e1 = TRUNC( e1 ); - - c1 = (Short)(e1 >> 3); - f1 = e1 & 7; - - if ( e1 >= 0 && e1 < ras.bWidth && - ras.bTarget[ras.traceOfs + c1] & (0x80 >> f1) ) - return; - - if ( ras.dropOutControl == 2 ) - e1 = e2; - else - e1 = CEILING( (x1 + x2 + 1) / 2 ); - - break; - - default: - return; /* unsupported mode */ - } - } - else - return; - } - - e1 = TRUNC( e1 ); - - if ( e1 >= 0 && e1 < ras.bWidth ) - { - c1 = (Short)(e1 >> 3); - f1 = e1 & 7; - - if ( ras.gray_min_x > c1 ) ras.gray_min_x = c1; - if ( ras.gray_max_x < c1 ) ras.gray_max_x = c1; - - ras.bTarget[ras.traceOfs + c1] |= (Char)(0x80 >> f1); - } - } - - - static void Vertical_Sweep_Step( RAS_ARG ) - { - ras.traceOfs += ras.traceIncr; - } - - -/***********************************************************************/ -/* */ -/* Horizontal Sweep Procedure Set : */ -/* */ -/* These three routines are used during the horizontal black/white */ -/* sweep phase by the generic Draw_Sweep() function. */ -/* */ -/***********************************************************************/ - - static void Horizontal_Sweep_Init( RAS_ARGS Short* min, Short* max ) - { - /* nothing, really */ - } - - - static void Horizontal_Sweep_Span( RAS_ARGS Short y, - TT_F26Dot6 x1, - TT_F26Dot6 x2, - PProfile left, - PProfile right ) - { - Long e1, e2; - PByte bits; - Byte f1; - - - if ( x2-x1 < ras.precision ) - { - e1 = CEILING( x1 ); - e2 = FLOOR ( x2 ); - - if ( e1 == e2 ) - { - bits = ras.bTarget + (y >> 3); - f1 = (Byte)(0x80 >> (y & 7)); - - e1 = TRUNC( e1 ); - - if ( e1 >= 0 && e1 < ras.target.rows ) - { - if ( ras.target.flow == TT_Flow_Down ) - bits[(ras.target.rows-1 - e1) * ras.target.cols] |= f1; - else - bits[e1 * ras.target.cols] |= f1; - } - } - } -#if 0 - e2 = TRUNC( e2 ); - - if ( e2 >= 0 && e2 < ras.target.rows ) - if ( ras.target.flow == TT_Flow_Down ) - bits[(ras.target.rows-1-e2) * ras.target.cols] |= f1; - else - bits[e2 * ras.target.cols] |= f1; -#endif - } - - - static void Horizontal_Sweep_Drop( RAS_ARGS Short y, - TT_F26Dot6 x1, - TT_F26Dot6 x2, - PProfile left, - PProfile right ) - { - Long e1, e2; - PByte bits; - Byte f1; - - - /* During the horizontal sweep, we only take care of drop-outs */ - - e1 = CEILING( x1 ); - e2 = FLOOR ( x2 ); - - if ( e1 > e2 ) - { - if ( e1 == e2 + ras.precision ) - { - switch ( ras.dropOutControl ) - { - case 1: - e1 = e2; - break; - - case 4: - e1 = CEILING( (x1 + x2 + 1) / 2 ); - break; - - case 2: - case 5: - - /* Drop-out Control Rule #4 */ - - /* The spec is not very clear regarding rule #4. It */ - /* presents a method that is way too costly to implement */ - /* while the general idea seems to get rid of 'stubs'. */ - /* */ - - /* rightmost stub test */ - - if ( left->next == right && left->height <= 0 ) return; - - /* leftmost stub test */ - - if ( right->next == left && left->start == y ) return; - - /* check that the rightmost pixel isn't set */ - - e1 = TRUNC( e1 ); - - bits = ras.bTarget + (y >> 3); - f1 = (Byte)(0x80 >> (y & 7)); - - if ( ras.target.flow == TT_Flow_Down ) - bits += (ras.target.rows-1-e1) * ras.target.cols; - else - bits += e1 * ras.target.cols; - - if ( e1 >= 0 && - e1 < ras.target.rows && - *bits & f1 ) - return; - - if ( ras.dropOutControl == 2 ) - e1 = e2; - else - e1 = CEILING( (x1 + x2 + 1) / 2 ); - - break; - - default: - return; /* unsupported mode */ - } - } - else - return; - } - - bits = ras.bTarget + (y >> 3); - f1 = (Byte)(0x80 >> (y & 7)); - - e1 = TRUNC( e1 ); - - if ( e1 >= 0 && e1 < ras.target.rows ) - { - if (ras.target.flow==TT_Flow_Down) - bits[(ras.target.rows-1-e1) * ras.target.cols] |= f1; - else - bits[e1 * ras.target.cols] |= f1; - } - } - - - static void Horizontal_Sweep_Step( RAS_ARG ) - { - /* Nothing, really */ - } - - -#ifdef TT_CONFIG_OPTION_GRAY_SCALING - -/***********************************************************************/ -/* */ -/* Vertical Gray Sweep Procedure Set: */ -/* */ -/* These two routines are used during the vertical gray-levels */ -/* sweep phase by the generic Draw_Sweep() function. */ -/* */ -/* */ -/* NOTES: */ -/* */ -/* - The target pixmap's width *must* be a multiple of 4. */ -/* */ -/* - you have to use the function Vertical_Sweep_Span() for */ -/* the gray span call. */ -/* */ -/***********************************************************************/ - - static void Vertical_Gray_Sweep_Init( RAS_ARGS Short* min, Short* max ) - { - *min = *min & -2; - *max = ( *max + 3 ) & -2; - - ras.traceOfs = 0; - - switch ( ras.target.flow ) - { - case TT_Flow_Up: - ras.traceG = (*min / 2) * ras.target.cols; - ras.traceIncr = ras.target.cols; - break; - - default: - ras.traceG = (ras.target.rows-1 - *min/2) * ras.target.cols; - ras.traceIncr = -ras.target.cols; - } - - ras.gray_min_x = ras.target.cols; - ras.gray_max_x = -ras.target.cols; - } - - - static void Vertical_Gray_Sweep_Step( RAS_ARG ) - { - Int c1, c2; - PByte pix, bit, bit2; - Int* count = ras.count_table; - Byte* grays; - - - ras.traceOfs += ras.gray_width; - - if ( ras.traceOfs > ras.gray_width ) - { - pix = ras.gTarget + ras.traceG + ras.gray_min_x * 4; - grays = ras.grays; - - if ( ras.gray_max_x >= 0 ) - { - if ( ras.gray_max_x >= ras.target.width ) - ras.gray_max_x = ras.target.width-1; - - if ( ras.gray_min_x < 0 ) - ras.gray_min_x = 0; - - bit = ras.bTarget + ras.gray_min_x; - bit2 = bit + ras.gray_width; - - c1 = ras.gray_max_x - ras.gray_min_x; - - while ( c1 >= 0 ) - { - c2 = count[*bit] + count[*bit2]; - - if ( c2 ) - { - pix[0] = grays[(c2 & 0xF000) >> 12]; - pix[1] = grays[(c2 & 0x0F00) >> 8]; - pix[2] = grays[(c2 & 0x00F0) >> 4]; - pix[3] = grays[(c2 & 0x000F) ]; - - *bit = 0; - *bit2 = 0; - } - - bit ++; - bit2++; - pix += 4; - c1 --; - } - } - - ras.traceOfs = 0; - ras.traceG += ras.traceIncr; - - ras.gray_min_x = ras.target.cols; - ras.gray_max_x = -ras.target.cols; - } - } - - - static void Horizontal_Gray_Sweep_Span( RAS_ARGS Short y, - TT_F26Dot6 x1, - TT_F26Dot6 x2, - PProfile left, - PProfile right ) - { - /* nothing, really */ - } - - static void Horizontal_Gray_Sweep_Drop( RAS_ARGS Short y, - TT_F26Dot6 x1, - TT_F26Dot6 x2, - PProfile left, - PProfile right ) - { - Long e1, e2; - PByte pixel; - Byte color; - - - /* During the horizontal sweep, we only take care of drop-outs */ - e1 = CEILING( x1 ); - e2 = FLOOR ( x2 ); - - if ( e1 > e2 ) - { - if ( e1 == e2 + ras.precision ) - { - switch ( ras.dropOutControl ) - { - case 1: - e1 = e2; - break; - - case 4: - e1 = CEILING( (x1 + x2 + 1) / 2 ); - break; - - case 2: - case 5: - - /* Drop-out Control Rule #4 */ - - /* The spec is not very clear regarding rule #4. It */ - /* presents a method that is way too costly to implement */ - /* while the general idea seems to get rid of 'stubs'. */ - /* */ - - /* rightmost stub test */ - if ( left->next == right && left->height <= 0 ) return; - - /* leftmost stub test */ - if ( right->next == left && left->start == y ) return; - - if ( ras.dropOutControl == 2 ) - e1 = e2; - else - e1 = CEILING( (x1 + x2 + 1) / 2 ); - - break; - - default: - return; /* unsupported mode */ - } - } - else - return; - } - - if ( e1 >= 0 ) - { - if ( x2 - x1 >= ras.precision_half ) - color = ras.grays[2]; - else - color = ras.grays[1]; - - e1 = TRUNC( e1 ) / 2; - if ( e1 < ras.target.rows ) - { - if ( ras.target.flow == TT_Flow_Down ) - pixel = ras.gTarget + - (ras.target.rows - 1 - e1) * ras.target.cols + y / 2; - else - pixel = ras.gTarget + - e1 * ras.target.cols + y / 2; - - if (pixel[0] == ras.grays[0]) - pixel[0] = color; - } - } - } - -#endif /* TT_CONFIG_OPTION_GRAY_SCALING */ - - -/********************************************************************/ -/* */ -/* Generic Sweep Drawing routine */ -/* */ -/********************************************************************/ - - static Bool Draw_Sweep( RAS_ARG ) - { - Short y, y_change, y_height; - - PProfile P, Q, P_Left, P_Right; - - Short min_Y, max_Y, top, bottom, dropouts; - - Long x1, x2, xs, e1, e2; - - TProfileList wait; - TProfileList draw_left, draw_right; - - - /* Init empty linked lists */ - - Init_Linked( &wait ); - - Init_Linked( &draw_left ); - Init_Linked( &draw_right ); - - /* first, compute min and max Y */ - - P = ras.fProfile; - max_Y = (short)TRUNC( ras.minY ); - min_Y = (short)TRUNC( ras.maxY ); - - while ( P ) - { - Q = P->link; - - bottom = P->start; - top = P->start + P->height-1; - - if ( min_Y > bottom ) min_Y = bottom; - if ( max_Y < top ) max_Y = top; - - P->X = 0; - InsNew( &wait, P ); - - P = Q; - } - - /* Check the Y-turns */ - if ( ras.numTurns == 0 ) - { - ras.error = Raster_Err_Invalid; - return FAILURE; - } - - /* Now inits the sweep */ - - ras.Proc_Sweep_Init( RAS_VARS &min_Y, &max_Y ); - - /* Then compute the distance of each profile from min_Y */ - - P = wait; - - while ( P ) - { - P->countL = P->start - min_Y; - P = P->link; - } - - /* Let's go */ - - y = min_Y; - y_height = 0; - - if ( ras.numTurns > 0 && - ras.sizeBuff[-ras.numTurns] == min_Y ) - ras.numTurns--; - - while ( ras.numTurns > 0 ) - { - /* look in the wait list for new activations */ - - P = wait; - - while ( P ) - { - Q = P->link; - P->countL -= y_height; - if ( P->countL == 0 ) - { - DelOld( &wait, P ); - - switch ( P->flow ) - { - case TT_Flow_Up: InsNew( &draw_left, P ); break; - case TT_Flow_Down: InsNew( &draw_right, P ); break; - } - } - - P = Q; - } - - /* Sort the drawing lists */ - - Sort( &draw_left ); - Sort( &draw_right ); - - y_change = (Short)ras.sizeBuff[-ras.numTurns--]; - y_height = y_change - y; - - while ( y < y_change ) - { - - /* Let's trace */ - - dropouts = 0; - - P_Left = draw_left; - P_Right = draw_right; - - while ( P_Left ) - { - x1 = P_Left ->X; - x2 = P_Right->X; - - if ( x1 > x2 ) - { - xs = x1; - x1 = x2; - x2 = xs; - } - - if ( x2-x1 <= ras.precision ) - { - e1 = FLOOR( x1 ); - e2 = CEILING( x2 ); - - if ( ras.dropOutControl != 0 && - (e1 > e2 || e2 == e1 + ras.precision) ) - { - /* a drop out was detected */ - - P_Left ->X = x1; - P_Right->X = x2; - - /* mark profile for drop-out processing */ - P_Left->countL = 1; - dropouts++; - - goto Skip_To_Next; - } - } - - ras.Proc_Sweep_Span( RAS_VARS y, x1, x2, P_Left, P_Right ); - - Skip_To_Next: - - P_Left = P_Left->link; - P_Right = P_Right->link; - } - - /* now perform the dropouts _after_ the span drawing */ - /* drop-outs processing has been moved out of the loop */ - /* for performance tuning */ - if (dropouts > 0) - goto Scan_DropOuts; - - Next_Line: - - ras.Proc_Sweep_Step( RAS_VAR ); - - y++; - - if ( y < y_change ) - { - Sort( &draw_left ); - Sort( &draw_right ); - } - - } - - /* Now finalize the profiles that needs it */ - - { - PProfile Q, P; - P = draw_left; - while ( P ) - { - Q = P->link; - if ( P->height == 0 ) - DelOld( &draw_left, P ); - P = Q; - } - } - - { - PProfile Q, P = draw_right; - while ( P ) - { - Q = P->link; - if ( P->height == 0 ) - DelOld( &draw_right, P ); - P = Q; - } - } - } - - /* for gray-scaling, flushes the bitmap scanline cache */ - while ( y <= max_Y ) - { - ras.Proc_Sweep_Step( RAS_VAR ); - y++; - } - - return SUCCESS; - -Scan_DropOuts : - - P_Left = draw_left; - P_Right = draw_right; - - while ( P_Left ) - { - if ( P_Left->countL ) - { - P_Left->countL = 0; - /* dropouts--; -- this is useful when debugging only */ - ras.Proc_Sweep_Drop( RAS_VARS y, - P_Left->X, - P_Right->X, - P_Left, - P_Right ); - } - - P_Left = P_Left->link; - P_Right = P_Right->link; - } - - goto Next_Line; - } - - -/****************************************************************************/ -/* */ -/* Function: Render_Single_Pass */ -/* */ -/* Description: Performs one sweep with sub-banding. */ -/* */ -/* Input: _XCoord, _YCoord : x and y coordinates arrays */ -/* */ -/* Returns: SUCCESS on success */ -/* FAILURE if any error was encountered during render. */ -/* */ -/****************************************************************************/ - - static TT_Error Render_Single_Pass( RAS_ARGS Bool flipped ) - { - Short i, j, k; - - - while ( ras.band_top >= 0 ) - { - ras.maxY = (Long)ras.band_stack[ras.band_top].y_max * ras.precision; - ras.minY = (Long)ras.band_stack[ras.band_top].y_min * ras.precision; - - ras.top = ras.buff; - - ras.error = Raster_Err_None; - - if ( Convert_Glyph( RAS_VARS flipped ) ) - { - if ( ras.error != Raster_Err_Overflow ) return FAILURE; - - ras.error = Raster_Err_None; - - /* sub-banding */ - -#ifdef DEBUG_RASTER - ClearBand( RAS_VARS TRUNC( ras.minY ), TRUNC( ras.maxY ) ); -#endif - - i = ras.band_stack[ras.band_top].y_min; - j = ras.band_stack[ras.band_top].y_max; - - k = ( i + j ) / 2; - - if ( ras.band_top >= 7 || k < i ) - { - ras.band_top = 0; - ras.error = Raster_Err_Invalid; - return ras.error; - } - - ras.band_stack[ras.band_top+1].y_min = k; - ras.band_stack[ras.band_top+1].y_max = j; - - ras.band_stack[ras.band_top].y_max = k - 1; - - ras.band_top++; - } - else - { - if ( ras.fProfile ) - if ( Draw_Sweep( RAS_VAR ) ) return ras.error; - ras.band_top--; - } - } - - return TT_Err_Ok; - } - - -/****************************************************************************/ -/* */ -/* Function: Render_Glyph */ -/* */ -/* Description: Renders a glyph in a bitmap. Sub-banding if needed. */ -/* */ -/* Input: AGlyph Glyph record */ -/* */ -/* Returns: SUCCESS on success. */ -/* FAILURE if any error was encountered during rendering. */ -/* */ -/****************************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Render_Glyph( RAS_ARGS TT_Outline* glyph, - TT_Raster_Map* target_map ) - { - TT_Error error; - - - if ( glyph->n_points == 0 || glyph->n_contours <= 0 ) - return TT_Err_Ok; - - if ( !ras.buff ) - { - ras.error = Raster_Err_Not_Ini; - return ras.error; - } - - if ( glyph->n_points < glyph->contours[glyph->n_contours - 1] ) - { - ras.error = TT_Err_Too_Many_Points; - return ras.error; - } - - if ( target_map ) - ras.target = *target_map; - - ras.outs = glyph->contours; - ras.flags = glyph->flags; - ras.nPoints = glyph->n_points; - ras.nContours = glyph->n_contours; - ras.coords = glyph->points; - - Set_High_Precision( RAS_VARS glyph->high_precision ); - ras.scale_shift = ras.precision_shift; - ras.dropOutControl = glyph->dropout_mode; - ras.second_pass = glyph->second_pass; - - - /* Vertical Sweep */ - ras.Proc_Sweep_Init = Vertical_Sweep_Init; - ras.Proc_Sweep_Span = Vertical_Sweep_Span; - ras.Proc_Sweep_Drop = Vertical_Sweep_Drop; - ras.Proc_Sweep_Step = Vertical_Sweep_Step; - - ras.band_top = 0; - ras.band_stack[0].y_min = 0; - ras.band_stack[0].y_max = ras.target.rows - 1; - - ras.bWidth = ras.target.width; - ras.bTarget = (Byte*)ras.target.bitmap; - - if ( (error = Render_Single_Pass( RAS_VARS 0 )) != 0 ) - return error; - - /* Horizontal Sweep */ - - if ( ras.second_pass && ras.dropOutControl != 0 ) - { - ras.Proc_Sweep_Init = Horizontal_Sweep_Init; - ras.Proc_Sweep_Span = Horizontal_Sweep_Span; - ras.Proc_Sweep_Drop = Horizontal_Sweep_Drop; - ras.Proc_Sweep_Step = Horizontal_Sweep_Step; - - ras.band_top = 0; - ras.band_stack[0].y_min = 0; - ras.band_stack[0].y_max = ras.target.width - 1; - - if ( (error = Render_Single_Pass( RAS_VARS 1 )) != 0 ) - return error; - } - - return TT_Err_Ok; - } - - -#ifdef TT_CONFIG_OPTION_GRAY_SCALING - -/****************************************************************************/ -/* */ -/* Function: Render_Gray_Glyph */ -/* */ -/* Description: Renders a glyph with grayscaling. Sub-banding if needed. */ -/* */ -/* Input: AGlyph Glyph record */ -/* */ -/* Returns: SUCCESS on success */ -/* FAILURE if any error was encountered during rendering. */ -/* */ -/****************************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Render_Gray_Glyph( RAS_ARGS TT_Outline* glyph, - TT_Raster_Map* target_map, - Byte* palette ) - { - Int i; - TT_Error error; - - if ( !ras.buff ) - { - ras.error = Raster_Err_Not_Ini; - return ras.error; - } - - if ( glyph->n_points == 0 || glyph->n_contours <= 0 ) - return TT_Err_Ok; - - if ( glyph->n_points < glyph->contours[glyph->n_contours - 1] ) - { - ras.error = TT_Err_Too_Many_Points; - return ras.error; - } - - if ( palette ) - { - for ( i = 0; i < 5; i++ ) - ras.grays[i] = palette[i]; - } - - if ( target_map ) - ras.target = *target_map; - - ras.outs = glyph->contours; - ras.flags = glyph->flags; - ras.nPoints = glyph->n_points; - ras.nContours = glyph->n_contours; - ras.coords = glyph->points; - - Set_High_Precision( RAS_VARS glyph->high_precision ); - ras.scale_shift = ras.precision_shift+1; - ras.dropOutControl = glyph->dropout_mode; - ras.second_pass = glyph->second_pass; - - - /* Vertical Sweep */ - - ras.band_top = 0; - ras.band_stack[0].y_min = 0; - ras.band_stack[0].y_max = 2 * ras.target.rows - 1; - - ras.bWidth = ras.gray_width; - if ( ras.bWidth > ras.target.cols/4 ) - ras.bWidth = ras.target.cols/4; - - ras.bWidth = ras.bWidth * 8; - ras.bTarget = (Byte*)ras.gray_lines; - ras.gTarget = (Byte*)ras.target.bitmap; - - ras.Proc_Sweep_Init = Vertical_Gray_Sweep_Init; - ras.Proc_Sweep_Span = Vertical_Sweep_Span; - ras.Proc_Sweep_Drop = Vertical_Sweep_Drop; - ras.Proc_Sweep_Step = Vertical_Gray_Sweep_Step; - - error = Render_Single_Pass( RAS_VARS 0 ); - if (error) - return error; - - /* Horizontal Sweep */ - - if ( ras.second_pass && ras.dropOutControl != 0 ) - { - ras.Proc_Sweep_Init = Horizontal_Sweep_Init; - ras.Proc_Sweep_Span = Horizontal_Gray_Sweep_Span; - ras.Proc_Sweep_Drop = Horizontal_Gray_Sweep_Drop; - ras.Proc_Sweep_Step = Horizontal_Sweep_Step; - - ras.band_top = 0; - ras.band_stack[0].y_min = 0; - ras.band_stack[0].y_max = ras.target.width * 2 - 1; - - error = Render_Single_Pass( RAS_VARS 1 ); - if (error) - return error; - } - - return TT_Err_Ok; - } - -#endif /* TT_CONFIG_OPTION_GRAY_SCALING */ - - -/************************************************/ -/* */ -/* InitRasterizer */ -/* */ -/* Raster Initialization. */ -/* Gets the bitmap description and render pool */ -/* addresses. */ -/* */ -/************************************************/ - -#undef ras - - FT_INTERNAL_FUNC( TT_Error ) - TTRaster_Done( PEngine_Instance engine ) - { - TRaster_Instance* ras = (TRaster_Instance*)engine->raster_component; - - - if ( !ras ) - return TT_Err_Ok; - - FREE( ras->buff ); - FREE( ras->gray_lines ); - -#ifndef TT_CONFIG_OPTION_STATIC_RASTER - FREE( engine->raster_component ); -#endif - - return TT_Err_Ok; - } - - - FT_INTERNAL_FUNC( TT_Error ) - TTRaster_Init( PEngine_Instance engine ) - { - TT_Error error; - - Int i, l, j, c; - - TRaster_Instance* ras; - - -#ifdef TT_CONFIG_OPTION_STATIC_RASTER - ras = engine->raster_component = &cur_ras; -#else - if ( ALLOC( engine->raster_component, sizeof ( TRaster_Instance ) ) ) - return error; - - ras = (TRaster_Instance*)engine->raster_component; -#endif - - if ( ALLOC( ras->buff, RASTER_RENDER_POOL ) || - ALLOC( ras->gray_lines, RASTER_GRAY_LINES ) ) - return error; - - ras->sizeBuff = ras->buff + ( RASTER_RENDER_POOL/sizeof(long) ); - ras->gray_width = RASTER_GRAY_LINES/2; - - MUTEX_Create( engine->raster_lock ); - - /* Initialization of Count_Table */ - - for ( i = 0; i < 256; i++ ) - { - l = 0; - j = i; - - for ( c = 0; c < 4; c++ ) - { - l <<= 4; - - if ( j & 0x80 ) l++; - if ( j & 0x40 ) l++; - - j = ( j << 2 ) & 0xFF; - } - - ras->count_table[i] = l; - } - - ras->dropOutControl = 2; - ras->error = Raster_Err_None; - - return TT_Err_Ok; - } - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/ttraster.h b/Build/source/libs/freetype/freetype-1.5/lib/ttraster.h deleted file mode 100644 index f6c4149589c..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/ttraster.h +++ /dev/null @@ -1,127 +0,0 @@ -/******************************************************************* - * - * ttraster.h v 1.4 - * - * The FreeType glyph rasterizer. - * - * Copyright 1996-2000 by - * David Turner, Robert Wilhelm, and Werner Lemberg - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - * NOTES: - * - * This version supports the following: - * - * - direct grayscaling - * - sub-banding - * - drop-out modes 4 and 5 - * - second pass for complete drop-out control (bitmap only) - * - variable precision - * - * - * Changes between 1.5 and 1.3: - * - * Mainly performance tunings: - * - * - Line_Down() and Bezier_Down() now use the functions Line_Up() - * and Bezier_Up() to do their work. - * - optimized Split_Bezier() - * - optimized linked lists used during sweeps - * - * Changes between 1.2 and 1.3: - * - * - made the engine optionaly re-entrant. Saves a lot - * of code for a moderate performance hit. - * - ******************************************************************/ - -#ifndef TTRASTER_H -#define TTRASTER_H - -#include "ttconfig.h" -#include "freetype.h" /* for TT_Outline */ -#include "ttengine.h" - -#ifdef __cplusplus -extern "C" { -#endif - - /* We provide two different builds of the scan-line converter */ - /* The static build uses global variables and isn't */ - /* re-entrant. */ - /* The indirect build is re-entrant but accesses all variables */ - /* indirectly. */ - /* */ - /* As a consequence, the indirect build is about 10% slower */ - /* than the static one on a _Pentium_ (this could get worse */ - /* on older processors), but the code size is reduced by */ - /* more than 30% ! */ - /* */ - /* The indirect build is now the default, defined in */ - /* ttconfig.h. Be careful if you experiment with this. */ - - /* Note also that, though its code can be re-entrant, the */ - /* component is always used in thread-safe mode. This is */ - /* simply due to the fact that we want to use a single */ - /* render pool (of 64 Kb), and not to waste memory. */ - -#ifdef TT_STATIC_RASTER - -#define RAS_ARGS /* void */ -#define RAS_ARG /* void */ - -#define RAS_VARS /* void */ -#define RAS_VAR /* void */ - -#else - -#define RAS_ARGS TRaster_Instance* raster, -#define RAS_ARG TRaster_Instance* raster - -#define RAS_VARS raster, -#define RAS_VAR raster - -#endif - - - struct TRaster_Instance_; - typedef struct TRaster_Instance_ TRaster_Instance; - - /* Render one glyph in the target bitmap, using drop-out control */ - /* mode 'scan'. */ - FT_INTERNAL_DEF( TT_Error ) - Render_Glyph( RAS_ARGS TT_Outline* glyph, - TT_Raster_Map* target ); - -#ifdef TT_CONFIG_OPTION_GRAY_SCALING - /* Render one gray-level glyph in the target pixmap. */ - /* Palette points to an array of 5 colors used for the rendering. */ - /* Use NULL to reuse the last palette. Default is VGA graylevels. */ - FT_INTERNAL_DEF( TT_Error ) - Render_Gray_Glyph( RAS_ARGS TT_Outline* glyph, - TT_Raster_Map* target, - Byte* palette ); -#endif - - /* Initialize rasterizer */ - FT_INTERNAL_DEF( TT_Error ) - TTRaster_Init( PEngine_Instance engine ); - - /* Finalize it */ - FT_INTERNAL_DEF( TT_Error ) - TTRaster_Done( PEngine_Instance engine ); - - -#ifdef __cplusplus -} -#endif - -#endif /* TTRASTER_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/tttables.h b/Build/source/libs/freetype/freetype-1.5/lib/tttables.h deleted file mode 100644 index 9c3c4b50fe6..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/tttables.h +++ /dev/null @@ -1,216 +0,0 @@ -/******************************************************************* - * - * tttables.h 1.1 - * - * TrueType Tables structures and handling (specification) - * (this spec has no associated body). - * - * Copyright 1996-2001 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - ******************************************************************/ - -#ifndef TTTABLES_H -#define TTTABLES_H - -#include "ttconfig.h" -#include "tttypes.h" - -#ifdef __cplusplus - extern "C" { -#endif - - /***********************************************************************/ - /* */ - /* TrueType Table Types */ - /* */ - /***********************************************************************/ - - /* TrueType Collection Header */ - - struct TTTCHeader_ - { - ULong Tag; - TT_Fixed version; - ULong DirCount; - PULong TableDirectory; - }; - - typedef struct TTTCHeader_ TTTCHeader; - typedef TTTCHeader* PTTCHeader; - - - /* TrueType Table Directory type */ - - struct TTableDir_ - { - TT_Fixed version; /* should be 0x10000 */ - UShort numTables; /* number of tables */ - - UShort searchRange; /* These parameters are only used */ - UShort entrySelector; /* for a dichotomy search in the */ - UShort rangeShift; /* directory. We ignore them. */ - }; - - typedef struct TTableDir_ TTableDir; - typedef TTableDir* PTableDir; - - - /* The 'TableDir' is followed by 'numTables' TableDirEntries */ - - struct TTableDirEntry_ - { - ULong Tag; /* table type */ - ULong CheckSum; /* table checksum */ - ULong Offset; /* table file offset */ - ULong Length; /* table length */ - }; - - typedef struct TTableDirEntry_ TTableDirEntry; - typedef TTableDirEntry* PTableDirEntry; - - - /* 'cmap' tables */ - - struct TCMapDir_ - { - UShort tableVersionNumber; - UShort numCMaps; - }; - - typedef struct TCMapDir_ TCMapDir; - typedef TCMapDir* PCMapDir; - - struct TCMapDirEntry_ - { - UShort platformID; - UShort platformEncodingID; - Long offset; - }; - - typedef struct TCMapDirEntry_ TCMapDirEntry; - typedef TCMapDirEntry* PCMapDirEntries; - - - /* 'maxp' Maximum Profiles table */ - - struct TMaxProfile_ - { - TT_Fixed version; - UShort numGlyphs, - maxPoints, - maxContours, - maxCompositePoints, - maxCompositeContours, - maxZones, - maxTwilightPoints, - maxStorage, - maxFunctionDefs, - maxInstructionDefs, - maxStackElements, - maxSizeOfInstructions, - maxComponentElements, - maxComponentDepth; - }; - - typedef struct TMaxProfile_ TMaxProfile; - typedef TMaxProfile* PMaxProfile; - - - /* table "gasp" */ - -#define GASP_GRIDFIT 0x01 -#define GASP_DOGRAY 0x02 - - struct GaspRange_ - { - UShort maxPPEM; - UShort gaspFlag; - }; - - typedef struct GaspRange_ GaspRange; - - - struct TGasp_ - { - UShort version; - UShort numRanges; - GaspRange* gaspRanges; - }; - - typedef struct TGasp_ TGasp; - - - /* table "head" - now defined in freetype.h */ - /* table "hhea" - now defined in freetype.h */ - - - /* tables "HMTX" and "VMTX" */ - - struct TLongMetrics_ - { - UShort advance; - Short bearing; - }; - - typedef struct TLongMetrics_ TLongMetrics, *PLongMetrics; - - typedef Short TShortMetrics, *PShortMetrics; - - /* 'loca' location table type */ - - struct TLoca_ - { - UShort Size; - PStorage Table; - }; - - typedef struct TLoca_ TLoca; - - - /* table "name" */ - - struct TNameRec_ - { - UShort platformID; - UShort encodingID; - UShort languageID; - UShort nameID; - UShort stringLength; - UShort stringOffset; - - /* this last field is not defined in the spec */ - /* but used by the FreeType engine */ - - PByte string; - }; - - typedef struct TNameRec_ TNameRec; - - - struct TName_Table_ - { - UShort format; - UShort numNameRecords; - UShort storageOffset; - TNameRec* names; - PByte storage; - }; - - typedef struct TName_Table_ TName_Table; - - -#ifdef __cplusplus - } -#endif - -#endif /* TTTABLES_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/tttags.h b/Build/source/libs/freetype/freetype-1.5/lib/tttags.h deleted file mode 100644 index 7194461a74a..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/tttags.h +++ /dev/null @@ -1,61 +0,0 @@ -/******************************************************************* - * - * tttags.h - * - * tags for TrueType tables (specification only). - * - * Copyright 1996-2001 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - ******************************************************************/ - -#ifndef TTAGS_H -#define TTAGS_H - -#include "ttconfig.h" -#include "freetype.h" /* for MAKE_TT_TAG() */ - -#define TTAG_BASE MAKE_TT_TAG( 'B', 'A', 'S', 'E' ) -#define TTAG_bloc MAKE_TT_TAG( 'b', 'l', 'o', 'c' ) -#define TTAG_bdat MAKE_TT_TAG( 'b', 'd', 'a', 't' ) -#define TTAG_cmap MAKE_TT_TAG( 'c', 'm', 'a', 'p' ) -#define TTAG_cvt MAKE_TT_TAG( 'c', 'v', 't', ' ' ) -#define TTAG_EBDT MAKE_TT_TAG( 'E', 'B', 'D', 'T' ) -#define TTAG_EBLC MAKE_TT_TAG( 'E', 'B', 'L', 'C' ) -#define TTAG_EBSC MAKE_TT_TAG( 'E', 'B', 'S', 'C' ) -#define TTAG_fpgm MAKE_TT_TAG( 'f', 'p', 'g', 'm' ) -#define TTAG_gasp MAKE_TT_TAG( 'g', 'a', 's', 'p' ) -#define TTAG_glyf MAKE_TT_TAG( 'g', 'l', 'y', 'f' ) -#define TTAG_GDEF MAKE_TT_TAG( 'G', 'D', 'E', 'F' ) -#define TTAG_GPOS MAKE_TT_TAG( 'G', 'P', 'O', 'S' ) -#define TTAG_GSUB MAKE_TT_TAG( 'G', 'S', 'U', 'B' ) -#define TTAG_hdmx MAKE_TT_TAG( 'h', 'd', 'm', 'x' ) -#define TTAG_head MAKE_TT_TAG( 'h', 'e', 'a', 'd' ) -#define TTAG_hhea MAKE_TT_TAG( 'h', 'h', 'e', 'a' ) -#define TTAG_hmtx MAKE_TT_TAG( 'h', 'm', 't', 'x' ) -#define TTAG_JSTF MAKE_TT_TAG( 'J', 'S', 'T', 'F' ) -#define TTAG_kern MAKE_TT_TAG( 'k', 'e', 'r', 'n' ) -#define TTAG_loca MAKE_TT_TAG( 'l', 'o', 'c', 'a' ) -#define TTAG_LTSH MAKE_TT_TAG( 'L', 'T', 'S', 'H' ) -#define TTAG_maxp MAKE_TT_TAG( 'm', 'a', 'x', 'p' ) -#define TTAG_name MAKE_TT_TAG( 'n', 'a', 'm', 'e' ) -#define TTAG_OS2 MAKE_TT_TAG( 'O', 'S', '/', '2' ) -#define TTAG_PCLT MAKE_TT_TAG( 'P', 'C', 'L', 'T' ) -#define TTAG_post MAKE_TT_TAG( 'p', 'o', 's', 't' ) -#define TTAG_prep MAKE_TT_TAG( 'p', 'r', 'e', 'p' ) -#define TTAG_ttc MAKE_TT_TAG( 't', 't', 'c', ' ' ) -#define TTAG_ttcf MAKE_TT_TAG( 't', 't', 'c', 'f' ) -#define TTAG_VDMX MAKE_TT_TAG( 'V', 'D', 'M', 'X' ) -#define TTAG_vhea MAKE_TT_TAG( 'v', 'h', 'e', 'a' ) -#define TTAG_vmtx MAKE_TT_TAG( 'v', 'm', 't', 'x' ) - -#endif /* TTAGS_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/lib/tttypes.h b/Build/source/libs/freetype/freetype-1.5/lib/tttypes.h deleted file mode 100644 index 3750c4ee2f7..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/lib/tttypes.h +++ /dev/null @@ -1,151 +0,0 @@ -/******************************************************************* - * - * tttypes.h - * - * Freetype engine's common types specification - * (this spec has no associated body). - * - * Copyright 1996-2001 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - * NOTE: - * - * All these declarations are library internals, and *not* part - * of the high-level interface. See also 'freetype.h'. - * - ******************************************************************/ - -#ifndef TTTYPES_H -#define TTTYPES_H - -#include "ttconfig.h" -#include "freetype.h" - -#ifdef __MACTYPES__ -#error "<MacTypes.h> have been included, and this prevents the proper\ - compilation of this library. Please remove the precompiled headers." -#endif - - typedef char String; - typedef signed char Char; - typedef unsigned char Byte; - - typedef unsigned short UShort; - typedef signed short Short; - - typedef unsigned long ULong; - typedef signed long Long; - - typedef TT_Int32 Fixed; - - typedef unsigned int UInt; - typedef int Int; - - /* Simple access types: pointers and tables */ - - typedef Byte* PByte; - typedef UShort* PUShort; - typedef Short* PShort; - typedef ULong* PULong; - typedef Long* PLong; - - typedef Fixed* PFixed; - - typedef Int* PInt; - - typedef void* Pointer; - - typedef TT_F26Dot6* PCoordinates; - typedef unsigned char* PTouchTable; - - -#ifndef Bool - typedef int Bool; /* No boolean type in C */ -#endif - -#ifndef TRUE -#define TRUE 1 -#endif - -#ifndef FALSE -#define FALSE 0 -#endif - -#ifndef NULL -#define NULL (void*)0 -#endif - - typedef Long Storage; - typedef Storage* PStorage; - - -/* Rounding mode constants */ - -#define TT_Round_Off 5 -#define TT_Round_To_Half_Grid 0 -#define TT_Round_To_Grid 1 -#define TT_Round_To_Double_Grid 2 -#define TT_Round_Up_To_Grid 4 -#define TT_Round_Down_To_Grid 3 -#define TT_Round_Super 6 -#define TT_Round_Super_45 7 - - -/* Touch flag masks */ - -#define TT_Flag_On_Curve 1 -#define TT_Flag_Touched_X 2 -#define TT_Flag_Touched_Y 4 -#define TT_Flag_Touched_Both 6 - - -/* Error management constants :) */ - -#define SUCCESS 0 -#define FAILURE -1 - - -/* The min and max functions missing in C. As usual, be careful not to */ -/* write things like MIN( a++, b++ ) to avoid side effects. */ - -#ifndef MIN -#define MIN( a, b ) ( (a) < (b) ? (a) : (b) ) -#endif - -#ifndef MAX -#define MAX( a, b ) ( (a) > (b) ? (a) : (b) ) -#endif - -#ifndef ABS -#define ABS( a ) ( (a) < 0 ? -(a) : (a) ) -#endif - -/* conversion macros for the handles defined in freetype.h */ - -#define HANDLE_Val( handle ) ((handle).z) - -#define HANDLE_Engine( handle ) ((PEngine_Instance)HANDLE_Val( handle )) - -#define HANDLE_Face( handle ) ((PFace)HANDLE_Val( handle )) - -#define HANDLE_Instance( handle ) ((PInstance)HANDLE_Val( handle )) - -/* HANDLE_Stream( handle ) must be defined in ttfile.c */ - -#define HANDLE_Glyph( handle ) ((PGlyph)HANDLE_Val( handle )) - -#define HANDLE_CharMap( handle ) ((PCMapTable)HANDLE_Val( handle )) - -#define HANDLE_Set( handle, val ) ((handle).z = (void*)(val)) - - -#endif /* TTTYPES_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/freetype-1.5/license.txt b/Build/source/libs/freetype/freetype-1.5/license.txt deleted file mode 100644 index b46b9ddd695..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/license.txt +++ /dev/null @@ -1,7 +0,0 @@ - -FreeType comes with two licenses from which you can choose the one which -fits your needs best: - - . The FreeType License, in file `docs/FTL.txt'; - - . The GNU Public License, in file `docs/GPL.txt'. diff --git a/Build/source/libs/freetype/freetype-1.5/ltconfig b/Build/source/libs/freetype/freetype-1.5/ltconfig deleted file mode 100755 index a01334f9212..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/ltconfig +++ /dev/null @@ -1,3078 +0,0 @@ -#! /bin/sh - -# ltconfig - Create a system-specific libtool. -# Copyright (C) 1996-1999 Free Software Foundation, Inc. -# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 -# -# This file is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# A lot of this script is taken from autoconf-2.10. - -# Check that we are running under the correct shell. -SHELL=${CONFIG_SHELL-/bin/sh} -echo=echo -if test "X$1" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift -elif test "X$1" = X--fallback-echo; then - # Avoid inline document here, it may be left over - : -elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then - # Yippee, $echo works! - : -else - # Restart under the correct shell. - exec "$SHELL" "$0" --no-reexec ${1+"$@"} -fi - -if test "X$1" = X--fallback-echo; then - # used as fallback echo - shift - cat <<EOF -$* -EOF - exit 0 -fi - -# Find the correct PATH separator. Usually this is `:', but -# DJGPP uses `;' like DOS. -if test "X${PATH_SEPARATOR+set}" != Xset; then - UNAME=${UNAME-`uname 2>/dev/null`} - case X$UNAME in - *-DOS) PATH_SEPARATOR=';' ;; - *) PATH_SEPARATOR=':' ;; - esac -fi - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi - -if test "X${echo_test_string+set}" != Xset; then - # find a string as large as possible, as long as the shell can cope with it - for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do - # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... - if (echo_test_string="`eval $cmd`") 2>/dev/null && - echo_test_string="`eval $cmd`" && - (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null; then - break - fi - done -fi - -if test "X`($echo '\t') 2>/dev/null`" != 'X\t' || - test "X`($echo "$echo_test_string") 2>/dev/null`" != X"$echo_test_string"; then - # The Solaris, AIX, and Digital Unix default echo programs unquote - # backslashes. This makes it impossible to quote backslashes using - # echo "$something" | sed 's/\\/\\\\/g' - # - # So, first we look for a working echo in the user's PATH. - - IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" - for dir in $PATH /usr/ucb; do - if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && - test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && - test "X`($dir/echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then - echo="$dir/echo" - break - fi - done - IFS="$save_ifs" - - if test "X$echo" = Xecho; then - # We didn't find a better echo, so look for alternatives. - if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && - test "X`(print -r "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then - # This shell has a builtin print -r that does the trick. - echo='print -r' - elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && - test "X$CONFIG_SHELL" != X/bin/ksh; then - # If we have ksh, try running ltconfig again with it. - ORIGINAL_CONFIG_SHELL="${CONFIG_SHELL-/bin/sh}" - export ORIGINAL_CONFIG_SHELL - CONFIG_SHELL=/bin/ksh - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$0" --no-reexec ${1+"$@"} - else - # Try using printf. - echo='printf "%s\n"' - if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && - test "X`($echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then - # Cool, printf works - : - elif test "X`("$ORIGINAL_CONFIG_SHELL" "$0" --fallback-echo '\t') 2>/dev/null`" = 'X\t' && - test "X`("$ORIGINAL_CONFIG_SHELL" "$0" --fallback-echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then - CONFIG_SHELL="$ORIGINAL_CONFIG_SHELL" - export CONFIG_SHELL - SHELL="$CONFIG_SHELL" - export SHELL - echo="$CONFIG_SHELL $0 --fallback-echo" - elif test "X`("$CONFIG_SHELL" "$0" --fallback-echo '\t') 2>/dev/null`" = 'X\t' && - test "X`("$CONFIG_SHELL" "$0" --fallback-echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then - echo="$CONFIG_SHELL $0 --fallback-echo" - else - # maybe with a smaller string... - prev=: - - for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do - if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null; then - break - fi - prev="$cmd" - done - - if test "$prev" != 'sed 50q "$0"'; then - echo_test_string=`eval $prev` - export echo_test_string - exec "${ORIGINAL_CONFIG_SHELL}" "$0" ${1+"$@"} - else - # Oops. We lost completely, so just stick with echo. - echo=echo - fi - fi - fi - fi -fi - -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -Xsed='sed -e s/^X//' -sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g' - -# Same as above, but do not quote variable references. -double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g' - -# Sed substitution to delay expansion of an escaped shell variable in a -# double_quote_subst'ed string. -delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' - -# The name of this program. -progname=`$echo "X$0" | $Xsed -e 's%^.*/%%'` - -# Constants: -PROGRAM=ltconfig -PACKAGE=libtool -VERSION=1.3.4 -TIMESTAMP=" (1.385.2.196 1999/12/07 21:47:57)" -ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -rm="rm -f" - -help="Try \`$progname --help' for more information." - -# Global variables: -default_ofile=libtool -can_build_shared=yes -enable_shared=yes -# All known linkers require a `.a' archive for static linking (except M$VC, -# which needs '.lib'). -enable_static=yes -enable_fast_install=yes -enable_dlopen=unknown -enable_win32_dll=no -ltmain= -silent= -srcdir= -ac_config_guess= -ac_config_sub= -host= -nonopt= -ofile="$default_ofile" -verify_host=yes -with_gcc=no -with_gnu_ld=no -need_locks=yes -ac_ext=c -objext=o -libext=a -exeext= -cache_file= - -old_AR="$AR" -old_CC="$CC" -old_CFLAGS="$CFLAGS" -old_CPPFLAGS="$CPPFLAGS" -old_LDFLAGS="$LDFLAGS" -old_LD="$LD" -old_LN_S="$LN_S" -old_LIBS="$LIBS" -old_NM="$NM" -old_RANLIB="$RANLIB" -old_DLLTOOL="$DLLTOOL" -old_OBJDUMP="$OBJDUMP" -old_AS="$AS" - -# Parse the command line options. -args= -prev= -for option -do - case "$option" in - -*=*) optarg=`echo "$option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; - *) optarg= ;; - esac - - # If the previous option needs an argument, assign it. - if test -n "$prev"; then - eval "$prev=\$option" - prev= - continue - fi - - case "$option" in - --help) cat <<EOM -Usage: $progname [OPTION]... [HOST [LTMAIN]] - -Generate a system-specific libtool script. - - --debug enable verbose shell tracing - --disable-shared do not build shared libraries - --disable-static do not build static libraries - --disable-fast-install do not optimize for fast installation - --enable-dlopen enable dlopen support - --enable-win32-dll enable building dlls on win32 hosts - --help display this help and exit - --no-verify do not verify that HOST is a valid host type --o, --output=FILE specify the output file [default=$default_ofile] - --quiet same as \`--silent' - --silent do not print informational messages - --srcdir=DIR find \`config.guess' in DIR - --version output version information and exit - --with-gcc assume that the GNU C compiler will be used - --with-gnu-ld assume that the C compiler uses the GNU linker - --disable-lock disable file locking - --cache-file=FILE configure cache file - -LTMAIN is the \`ltmain.sh' shell script fragment or \`ltmain.c' program -that provides basic libtool functionality. - -HOST is the canonical host system name [default=guessed]. -EOM - exit 0 - ;; - - --debug) - echo "$progname: enabling shell trace mode" - set -x - ;; - - --disable-shared) enable_shared=no ;; - - --disable-static) enable_static=no ;; - - --disable-fast-install) enable_fast_install=no ;; - - --enable-dlopen) enable_dlopen=yes ;; - - --enable-win32-dll) enable_win32_dll=yes ;; - - --quiet | --silent) silent=yes ;; - - --srcdir) prev=srcdir ;; - --srcdir=*) srcdir="$optarg" ;; - - --no-verify) verify_host=no ;; - - --output | -o) prev=ofile ;; - --output=*) ofile="$optarg" ;; - - --version) echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"; exit 0 ;; - - --with-gcc) with_gcc=yes ;; - --with-gnu-ld) with_gnu_ld=yes ;; - - --disable-lock) need_locks=no ;; - - --cache-file=*) cache_file="$optarg" ;; - - -*) - echo "$progname: unrecognized option \`$option'" 1>&2 - echo "$help" 1>&2 - exit 1 - ;; - - *) - if test -z "$ltmain"; then - ltmain="$option" - elif test -z "$host"; then -# This generates an unnecessary warning for sparc-sun-solaris4.1.3_U1 -# if test -n "`echo $option| sed 's/[-a-z0-9.]//g'`"; then -# echo "$progname: warning \`$option' is not a valid host type" 1>&2 -# fi - host="$option" - else - echo "$progname: too many arguments" 1>&2 - echo "$help" 1>&2 - exit 1 - fi ;; - esac -done - -if test -z "$ltmain"; then - echo "$progname: you must specify a LTMAIN file" 1>&2 - echo "$help" 1>&2 - exit 1 -fi - -if test ! -f "$ltmain"; then - echo "$progname: \`$ltmain' does not exist" 1>&2 - echo "$help" 1>&2 - exit 1 -fi - -# Quote any args containing shell metacharacters. -ltconfig_args= -for arg -do - case "$arg" in - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) - ltconfig_args="$ltconfig_args '$arg'" ;; - *) ltconfig_args="$ltconfig_args $arg" ;; - esac -done - -# A relevant subset of AC_INIT. - -# File descriptor usage: -# 0 standard input -# 1 file creation -# 2 errors and warnings -# 3 some systems may open it to /dev/tty -# 4 used on the Kubota Titan -# 5 compiler messages saved in config.log -# 6 checking for... messages and results -if test "$silent" = yes; then - exec 6>/dev/null -else - exec 6>&1 -fi -exec 5>>./config.log - -# NLS nuisances. -# Only set LANG and LC_ALL to C if already set. -# These must not be set unconditionally because not all systems understand -# e.g. LANG=C (notably SCO). -if test "X${LC_ALL+set}" = Xset; then LC_ALL=C; export LC_ALL; fi -if test "X${LANG+set}" = Xset; then LANG=C; export LANG; fi - -if test -n "$cache_file" && test -r "$cache_file"; then - echo "loading cache $cache_file within ltconfig" - . $cache_file -fi - -if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then - # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. - if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then - ac_n= ac_c=' -' ac_t=' ' - else - ac_n=-n ac_c= ac_t= - fi -else - ac_n= ac_c='\c' ac_t= -fi - -if test -z "$srcdir"; then - # Assume the source directory is the same one as the path to LTMAIN. - srcdir=`$echo "X$ltmain" | $Xsed -e 's%/[^/]*$%%'` - test "$srcdir" = "$ltmain" && srcdir=. -fi - -trap "$rm conftest*; exit 1" 1 2 15 -if test "$verify_host" = yes; then - # Check for config.guess and config.sub. - ac_aux_dir= - for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do - if test -f $ac_dir/config.guess; then - ac_aux_dir=$ac_dir - break - fi - done - if test -z "$ac_aux_dir"; then - echo "$progname: cannot find config.guess in $srcdir $srcdir/.. $srcdir/../.." 1>&2 - echo "$help" 1>&2 - exit 1 - fi - ac_config_guess=$ac_aux_dir/config.guess - ac_config_sub=$ac_aux_dir/config.sub - - # Make sure we can run config.sub. - if $SHELL $ac_config_sub sun4 >/dev/null 2>&1; then : - else - echo "$progname: cannot run $ac_config_sub" 1>&2 - echo "$help" 1>&2 - exit 1 - fi - - echo $ac_n "checking host system type""... $ac_c" 1>&6 - - host_alias=$host - case "$host_alias" in - "") - if host_alias=`$SHELL $ac_config_guess`; then : - else - echo "$progname: cannot guess host type; you must specify one" 1>&2 - echo "$help" 1>&2 - exit 1 - fi ;; - esac - host=`$SHELL $ac_config_sub $host_alias` - echo "$ac_t$host" 1>&6 - - # Make sure the host verified. - test -z "$host" && exit 1 - -elif test -z "$host"; then - echo "$progname: you must specify a host type if you use \`--no-verify'" 1>&2 - echo "$help" 1>&2 - exit 1 -else - host_alias=$host -fi - -# Transform linux* to *-*-linux-gnu*, to support old configure scripts. -case "$host_os" in -linux-gnu*) ;; -linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` -esac - -host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` - -case "$host_os" in -aix3*) - # AIX sometimes has problems with the GCC collect2 program. For some - # reason, if we set the COLLECT_NAMES environment variable, the problems - # vanish in a puff of smoke. - if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES - fi - ;; -esac - -# Determine commands to create old-style static archives. -old_archive_cmds='$AR cru $oldlib$oldobjs' -old_postinstall_cmds='chmod 644 $oldlib' -old_postuninstall_cmds= - -# Set a sane default for `AR'. -test -z "$AR" && AR=ar - -# Set a sane default for `OBJDUMP'. -test -z "$OBJDUMP" && OBJDUMP=objdump - -# If RANLIB is not set, then run the test. -if test "${RANLIB+set}" != "set"; then - result=no - - echo $ac_n "checking for ranlib... $ac_c" 1>&6 - IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" - for dir in $PATH; do - test -z "$dir" && dir=. - if test -f $dir/ranlib || test -f $dir/ranlib$ac_exeext; then - RANLIB="ranlib" - result="ranlib" - break - fi - done - IFS="$save_ifs" - - echo "$ac_t$result" 1>&6 -fi - -if test -n "$RANLIB"; then - old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" - old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds" -fi - -# Set sane defaults for `DLLTOOL', `OBJDUMP', and `AS', used on cygwin. -test -z "$DLLTOOL" && DLLTOOL=dlltool -test -z "$OBJDUMP" && OBJDUMP=objdump -test -z "$AS" && AS=as - -# Check to see if we are using GCC. -if test "$with_gcc" != yes || test -z "$CC"; then - # If CC is not set, then try to find GCC or a usable CC. - if test -z "$CC"; then - echo $ac_n "checking for gcc... $ac_c" 1>&6 - IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" - for dir in $PATH; do - test -z "$dir" && dir=. - if test -f $dir/gcc || test -f $dir/gcc$ac_exeext; then - CC="gcc" - break - fi - done - IFS="$save_ifs" - - if test -n "$CC"; then - echo "$ac_t$CC" 1>&6 - else - echo "$ac_t"no 1>&6 - fi - fi - - # Not "gcc", so try "cc", rejecting "/usr/ucb/cc". - if test -z "$CC"; then - echo $ac_n "checking for cc... $ac_c" 1>&6 - IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" - cc_rejected=no - for dir in $PATH; do - test -z "$dir" && dir=. - if test -f $dir/cc || test -f $dir/cc$ac_exeext; then - if test "$dir/cc" = "/usr/ucb/cc"; then - cc_rejected=yes - continue - fi - CC="cc" - break - fi - done - IFS="$save_ifs" - if test $cc_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $CC - shift - if test $# -gt 0; then - # We chose a different compiler from the bogus one. - # However, it has the same name, so the bogon will be chosen - # first if we set CC to just the name; use the full file name. - shift - set dummy "$dir/cc" "$@" - shift - CC="$@" - fi - fi - - if test -n "$CC"; then - echo "$ac_t$CC" 1>&6 - else - echo "$ac_t"no 1>&6 - fi - - if test -z "$CC"; then - echo "$progname: error: no acceptable cc found in \$PATH" 1>&2 - exit 1 - fi - fi - - # Now see if the compiler is really GCC. - with_gcc=no - echo $ac_n "checking whether we are using GNU C... $ac_c" 1>&6 - echo "$progname:581: checking whether we are using GNU C" >&5 - - $rm conftest.c - cat > conftest.c <<EOF -#ifdef __GNUC__ - yes; -#endif -EOF - if { ac_try='${CC-cc} -E conftest.c'; { (eval echo $progname:589: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then - with_gcc=yes - fi - $rm conftest.c - echo "$ac_t$with_gcc" 1>&6 -fi - -# Allow CC to be a program name with arguments. -set dummy $CC -compiler="$2" - -echo $ac_n "checking for object suffix... $ac_c" 1>&6 -$rm conftest* -echo 'int i = 1;' > conftest.c -echo "$progname:603: checking for object suffix" >& 5 -if { (eval echo $progname:604: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; }; then - # Append any warnings to the config.log. - cat conftest.err 1>&5 - - for ac_file in conftest.*; do - case $ac_file in - *.c) ;; - *) objext=`echo $ac_file | sed -e s/conftest.//` ;; - esac - done -else - cat conftest.err 1>&5 - echo "$progname: failed program was:" >&5 - cat conftest.c >&5 -fi -$rm conftest* -echo "$ac_t$objext" 1>&6 - -echo $ac_n "checking for executable suffix... $ac_c" 1>&6 -if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - ac_cv_exeext="no" - $rm conftest* - echo 'main () { return 0; }' > conftest.c - echo "$progname:629: checking for executable suffix" >& 5 - if { (eval echo $progname:630: \"$ac_link\") 1>&5; (eval $ac_link) 2>conftest.err; }; then - # Append any warnings to the config.log. - cat conftest.err 1>&5 - - for ac_file in conftest.*; do - case $ac_file in - *.c | *.err | *.$objext ) ;; - *) ac_cv_exeext=.`echo $ac_file | sed -e s/conftest.//` ;; - esac - done - else - cat conftest.err 1>&5 - echo "$progname: failed program was:" >&5 - cat conftest.c >&5 - fi - $rm conftest* -fi -if test "X$ac_cv_exeext" = Xno; then - exeext="" -else - exeext="$ac_cv_exeext" -fi -echo "$ac_t$ac_cv_exeext" 1>&6 - -echo $ac_n "checking for $compiler option to produce PIC... $ac_c" 1>&6 -pic_flag= -special_shlib_compile_flags= -wl= -link_static_flag= -no_builtin_flag= - -if test "$with_gcc" = yes; then - wl='-Wl,' - link_static_flag='-static' - - case "$host_os" in - beos* | irix5* | irix6* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - aix*) - # Below there is a dirty hack to force normal static linking with -ldl - # The problem is because libdl dynamically linked with both libc and - # libC (AIX C++ library), which obviously doesn't included in libraries - # list by gcc. This cause undefined symbols with -static flags. - # This hack allows C programs to be linked with "-static -ldl", but - # we not sure about C++ programs. - link_static_flag="$link_static_flag ${wl}-lC" - ;; - cygwin* | mingw* | os2*) - # We can build DLLs from non-PIC. - ;; - amigaos*) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. - pic_flag='-m68020 -resident32 -malways-restore-a4' - ;; - sysv4*MP*) - if test -d /usr/nec; then - pic_flag=-Kconform_pic - fi - ;; - *) - pic_flag='-fPIC' - ;; - esac -else - # PORTME Check for PIC flags for the system compiler. - case "$host_os" in - aix3* | aix4*) - # All AIX code is PIC. - link_static_flag='-bnso -bI:/lib/syscalls.exp' - ;; - - hpux9* | hpux10* | hpux11*) - # Is there a better link_static_flag that works with the bundled CC? - wl='-Wl,' - link_static_flag="${wl}-a ${wl}archive" - pic_flag='+Z' - ;; - - irix5* | irix6*) - wl='-Wl,' - link_static_flag='-non_shared' - # PIC (with -KPIC) is the default. - ;; - - cygwin* | mingw* | os2*) - # We can build DLLs from non-PIC. - ;; - - osf3* | osf4* | osf5*) - # All OSF/1 code is PIC. - wl='-Wl,' - link_static_flag='-non_shared' - ;; - - sco3.2v5*) - pic_flag='-Kpic' - link_static_flag='-dn' - special_shlib_compile_flags='-belf' - ;; - - solaris*) - pic_flag='-KPIC' - link_static_flag='-Bstatic' - wl='-Wl,' - ;; - - sunos4*) - pic_flag='-PIC' - link_static_flag='-Bstatic' - wl='-Qoption ld ' - ;; - - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - pic_flag='-KPIC' - link_static_flag='-Bstatic' - wl='-Wl,' - ;; - - uts4*) - pic_flag='-pic' - link_static_flag='-Bstatic' - ;; - sysv4*MP*) - if test -d /usr/nec ;then - pic_flag='-Kconform_pic' - link_static_flag='-Bstatic' - fi - ;; - *) - can_build_shared=no - ;; - esac -fi - -if test -n "$pic_flag"; then - echo "$ac_t$pic_flag" 1>&6 - - # Check to make sure the pic_flag actually works. - echo $ac_n "checking if $compiler PIC flag $pic_flag works... $ac_c" 1>&6 - $rm conftest* - echo "int some_variable = 0;" > conftest.c - save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $pic_flag -DPIC" - echo "$progname:776: checking if $compiler PIC flag $pic_flag works" >&5 - if { (eval echo $progname:777: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.$objext; then - # Append any warnings to the config.log. - cat conftest.err 1>&5 - - case "$host_os" in - hpux9* | hpux10* | hpux11*) - # On HP-UX, both CC and GCC only warn that PIC is supported... then they - # create non-PIC objects. So, if there were any warnings, we assume that - # PIC is not supported. - if test -s conftest.err; then - echo "$ac_t"no 1>&6 - can_build_shared=no - pic_flag= - else - echo "$ac_t"yes 1>&6 - pic_flag=" $pic_flag" - fi - ;; - *) - echo "$ac_t"yes 1>&6 - pic_flag=" $pic_flag" - ;; - esac - else - # Append any errors to the config.log. - cat conftest.err 1>&5 - can_build_shared=no - pic_flag= - echo "$ac_t"no 1>&6 - fi - CFLAGS="$save_CFLAGS" - $rm conftest* -else - echo "$ac_t"none 1>&6 -fi - -# Check to see if options -o and -c are simultaneously supported by compiler -echo $ac_n "checking if $compiler supports -c -o file.o... $ac_c" 1>&6 -$rm -r conftest 2>/dev/null -mkdir conftest -cd conftest -$rm conftest* -echo "int some_variable = 0;" > conftest.c -mkdir out -# According to Tom Tromey, Ian Lance Taylor reported there are C compilers -# that will create temporary files in the current directory regardless of -# the output directory. Thus, making CWD read-only will cause this test -# to fail, enabling locking or at least warning the user not to do parallel -# builds. -chmod -w . -save_CFLAGS="$CFLAGS" -CFLAGS="$CFLAGS -o out/conftest2.o" -echo "$progname:829: checking if $compiler supports -c -o file.o" >&5 -if { (eval echo $progname:830: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.o; then - - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s out/conftest.err; then - echo "$ac_t"no 1>&6 - compiler_c_o=no - else - echo "$ac_t"yes 1>&6 - compiler_c_o=yes - fi -else - # Append any errors to the config.log. - cat out/conftest.err 1>&5 - compiler_c_o=no - echo "$ac_t"no 1>&6 -fi -CFLAGS="$save_CFLAGS" -chmod u+w . -$rm conftest* out/* -rmdir out -cd .. -rmdir conftest -$rm -r conftest 2>/dev/null - -if test x"$compiler_c_o" = x"yes"; then - # Check to see if we can write to a .lo - echo $ac_n "checking if $compiler supports -c -o file.lo... $ac_c" 1>&6 - $rm conftest* - echo "int some_variable = 0;" > conftest.c - save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -c -o conftest.lo" - echo "$progname:862: checking if $compiler supports -c -o file.lo" >&5 -if { (eval echo $progname:863: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.lo; then - - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - echo "$ac_t"no 1>&6 - compiler_o_lo=no - else - echo "$ac_t"yes 1>&6 - compiler_o_lo=yes - fi - else - # Append any errors to the config.log. - cat conftest.err 1>&5 - compiler_o_lo=no - echo "$ac_t"no 1>&6 - fi - CFLAGS="$save_CFLAGS" - $rm conftest* -else - compiler_o_lo=no -fi - -# Check to see if we can do hard links to lock some files if needed -hard_links="nottested" -if test "$compiler_c_o" = no && test "$need_locks" != no; then - # do not overwrite the value of need_locks provided by the user - echo $ac_n "checking if we can lock with hard links... $ac_c" 1>&6 - hard_links=yes - $rm conftest* - ln conftest.a conftest.b 2>/dev/null && hard_links=no - touch conftest.a - ln conftest.a conftest.b 2>&5 || hard_links=no - ln conftest.a conftest.b 2>/dev/null && hard_links=no - echo "$ac_t$hard_links" 1>&6 - $rm conftest* - if test "$hard_links" = no; then - echo "*** WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2 - need_locks=warn - fi -else - need_locks=no -fi - -if test "$with_gcc" = yes; then - # Check to see if options -fno-rtti -fno-exceptions are supported by compiler - echo $ac_n "checking if $compiler supports -fno-rtti -fno-exceptions ... $ac_c" 1>&6 - $rm conftest* - echo "int some_variable = 0;" > conftest.c - save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.c" - echo "$progname:914: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 - if { (eval echo $progname:915: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then - - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - echo "$ac_t"no 1>&6 - compiler_rtti_exceptions=no - else - echo "$ac_t"yes 1>&6 - compiler_rtti_exceptions=yes - fi - else - # Append any errors to the config.log. - cat conftest.err 1>&5 - compiler_rtti_exceptions=no - echo "$ac_t"no 1>&6 - fi - CFLAGS="$save_CFLAGS" - $rm conftest* - - if test "$compiler_rtti_exceptions" = "yes"; then - no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions' - else - no_builtin_flag=' -fno-builtin' - fi - -fi - -# Check for any special shared library compilation flags. -if test -n "$special_shlib_compile_flags"; then - echo "$progname: warning: \`$CC' requires \`$special_shlib_compile_flags' to build shared libraries" 1>&2 - if echo "$old_CC $old_CFLAGS " | egrep -e "[ ]$special_shlib_compile_flags[ ]" >/dev/null; then : - else - echo "$progname: add \`$special_shlib_compile_flags' to the CC or CFLAGS env variable and reconfigure" 1>&2 - can_build_shared=no - fi -fi - -echo $ac_n "checking if $compiler static flag $link_static_flag works... $ac_c" 1>&6 -$rm conftest* -echo 'main(){return(0);}' > conftest.c -save_LDFLAGS="$LDFLAGS" -LDFLAGS="$LDFLAGS $link_static_flag" -echo "$progname:958: checking if $compiler static flag $link_static_flag works" >&5 -if { (eval echo $progname:959: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then - echo "$ac_t$link_static_flag" 1>&6 -else - echo "$ac_t"none 1>&6 - link_static_flag= -fi -LDFLAGS="$save_LDFLAGS" -$rm conftest* - -if test -z "$LN_S"; then - # Check to see if we can use ln -s, or we need hard links. - echo $ac_n "checking whether ln -s works... $ac_c" 1>&6 - $rm conftest.dat - if ln -s X conftest.dat 2>/dev/null; then - $rm conftest.dat - LN_S="ln -s" - else - LN_S=ln - fi - if test "$LN_S" = "ln -s"; then - echo "$ac_t"yes 1>&6 - else - echo "$ac_t"no 1>&6 - fi -fi - -# Make sure LD is an absolute path. -if test -z "$LD"; then - ac_prog=ld - if test "$with_gcc" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - echo $ac_n "checking for ld used by GCC... $ac_c" 1>&6 - echo "$progname:991: checking for ld used by GCC" >&5 - ac_prog=`($CC -print-prog-name=ld) 2>&5` - case "$ac_prog" in - # Accept absolute paths. - [\\/]* | [A-Za-z]:[\\/]*) - re_direlt='/[^/][^/]*/\.\./' - # Canonicalize the path of ld - ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` - while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do - ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` - done - test -z "$LD" && LD="$ac_prog" - ;; - "") - # If it fails, then pretend we are not using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac - elif test "$with_gnu_ld" = yes; then - echo $ac_n "checking for GNU ld... $ac_c" 1>&6 - echo "$progname:1015: checking for GNU ld" >&5 - else - echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 - echo "$progname:1018: checking for non-GNU ld" >&5 - fi - - if test -z "$LD"; then - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some GNU ld's only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - if "$LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then - test "$with_gnu_ld" != no && break - else - test "$with_gnu_ld" != yes && break - fi - fi - done - IFS="$ac_save_ifs" - fi - - if test -n "$LD"; then - echo "$ac_t$LD" 1>&6 - else - echo "$ac_t"no 1>&6 - fi - - if test -z "$LD"; then - echo "$progname: error: no acceptable ld found in \$PATH" 1>&2 - exit 1 - fi -fi - -# Check to see if it really is or is not GNU ld. -echo $ac_n "checking if the linker ($LD) is GNU ld... $ac_c" 1>&6 -# I'd rather use --version here, but apparently some GNU ld's only accept -v. -if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then - with_gnu_ld=yes -else - with_gnu_ld=no -fi -echo "$ac_t$with_gnu_ld" 1>&6 - -# See if the linker supports building shared libraries. -echo $ac_n "checking whether the linker ($LD) supports shared libraries... $ac_c" 1>&6 - -allow_undefined_flag= -no_undefined_flag= -need_lib_prefix=unknown -need_version=unknown -# when you set need_version to no, make sure it does not cause -set_version -# flags to be left without arguments -archive_cmds= -archive_expsym_cmds= -old_archive_from_new_cmds= -export_dynamic_flag_spec= -whole_archive_flag_spec= -thread_safe_flag_spec= -hardcode_libdir_flag_spec= -hardcode_libdir_separator= -hardcode_direct=no -hardcode_minus_L=no -hardcode_shlibpath_var=unsupported -runpath_var= -always_export_symbols=no -export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols' -# include_expsyms should be a list of space-separated symbols to be *always* -# included in the symbol list -include_expsyms= -# exclude_expsyms can be an egrep regular expression of symbols to exclude -# it will be wrapped by ` (' and `)$', so one must not match beginning or -# end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', -# as well as any symbol that contains `d'. -exclude_expsyms="_GLOBAL_OFFSET_TABLE_" -# Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out -# platforms (ab)use it in PIC code, but their linkers get confused if -# the symbol is explicitly referenced. Since portable code cannot -# rely on this symbol name, it's probably fine to never include it in -# preloaded symbol tables. - -case "$host_os" in -cygwin* | mingw*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - if test "$with_gcc" != yes; then - with_gnu_ld=no - fi - ;; - -esac - -ld_shlibs=yes -if test "$with_gnu_ld" = yes; then - # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc='${wl}' - - # See if GNU ld supports shared libraries. - case "$host_os" in - aix3* | aix4*) - # On AIX, the GNU linker is very broken - ld_shlibs=no - cat <<EOF 1>&2 - -*** Warning: the GNU linker, at least up to release 2.9.1, is reported -*** to be unable to reliably create shared libraries on AIX. -*** Therefore, libtool is disabling shared libraries support. If you -*** really care for shared libraries, you may want to modify your PATH -*** so that a non-GNU linker is found, and then restart. - -EOF - ;; - - amigaos*) - archive_cmds='$rm $objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data~$AR cru $lib $libobjs~$RANLIB $lib~(cd $objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - - # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports - # that the semantics of dynamic libraries on AmigaOS, at least up - # to version 4, is to share data among multiple programs linked - # with the same dynamic library. Since this doesn't match the - # behavior of shared libraries on other platforms, we can use - # them. - ld_shlibs=no - ;; - - beos*) - if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then - allow_undefined_flag=unsupported - # Joseph Beckenbach <jrb3@best.com> says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - archive_cmds='$CC -nostart $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib' - else - ld_shlibs=no - fi - ;; - - cygwin* | mingw*) - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - hardcode_libdir_flag_spec='-L$libdir' - allow_undefined_flag=unsupported - always_export_symbols=yes - - # Extract the symbol export list from an `--export-all' def file, - # then regenerate the def file from the symbol export list, so that - # the compiled dll only exports the symbol export list. - export_symbols_cmds='test -f $objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $0 > $objdir/$soname-ltdll.c~ - test -f $objdir/$soname-ltdll.$objext || (cd $objdir && $CC -c $soname-ltdll.c)~ - $DLLTOOL --export-all --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --output-def $objdir/$soname-def $objdir/$soname-ltdll.$objext $libobjs $convenience~ - sed -e "1,/EXPORTS/d" -e "s/ @ [0-9]* ; *//" < $objdir/$soname-def > $export_symbols' - - archive_expsym_cmds='echo EXPORTS > $objdir/$soname-def~ - _lt_hint=1; - for symbol in `cat $export_symbols`; do - echo " \$symbol @ \$_lt_hint ; " >> $objdir/$soname-def; - _lt_hint=`expr 1 + \$_lt_hint`; - done~ - test -f $objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $0 > $objdir/$soname-ltdll.c~ - test -f $objdir/$soname-ltdll.$objext || (cd $objdir && $CC -c $soname-ltdll.c)~ - $CC -Wl,--base-file,$objdir/$soname-base -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~ - $DLLTOOL --as=$AS --dllname $soname --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~ - $CC -Wl,--base-file,$objdir/$soname-base $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~ - $DLLTOOL --as=$AS --dllname $soname --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~ - $CC $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts' - - old_archive_from_new_cmds='$DLLTOOL --as=$AS --dllname $soname --def $objdir/$soname-def --output-lib $objdir/$libname.a' - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - archive_cmds='$LD -Bshareable $libobjs $deplibs $linkopts -o $lib' - # can we support soname and/or expsyms with a.out? -oliva - fi - ;; - - solaris* | sysv5*) - if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then - ld_shlibs=no - cat <<EOF 1>&2 - -*** Warning: The releases 2.8.* of the GNU linker cannot reliably -*** create shared libraries on Solaris systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.9.1 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -EOF - elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi - ;; - - sunos4*) - archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linkopts' - wlarc= - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - *) - if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi - ;; - esac - - if test "$ld_shlibs" = yes; then - runpath_var=LD_RUN_PATH - hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' - export_dynamic_flag_spec='${wl}--export-dynamic' - case $host_os in - cygwin* | mingw*) - # dlltool doesn't understand --whole-archive et. al. - whole_archive_flag_spec= - ;; - *) - # ancient GNU ld didn't support --whole-archive et. al. - if $LD --help 2>&1 | egrep 'no-whole-archive' > /dev/null; then - whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - whole_archive_flag_spec= - fi - ;; - esac - fi -else - # PORTME fill in a description of your system's linker (not GNU ld) - case "$host_os" in - aix3*) - allow_undefined_flag=unsupported - always_export_symbols=yes - archive_expsym_cmds='$LD -o $objdir/$soname $libobjs $deplibs $linkopts -bE:$export_symbols -T512 -H512 -bM:SRE~$AR cru $lib $objdir/$soname' - # Note: this linker hardcodes the directories in LIBPATH if there - # are no directories specified by -L. - hardcode_minus_L=yes - if test "$with_gcc" = yes && test -z "$link_static_flag"; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - hardcode_direct=unsupported - fi - ;; - - aix4*) - hardcode_libdir_flag_spec='${wl}-b ${wl}nolibpath ${wl}-b ${wl}libpath:$libdir:/usr/lib:/lib' - hardcode_libdir_separator=':' - if test "$with_gcc" = yes; then - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && \ - strings "$collect2name" | grep resolve_lib_name >/dev/null - then - # We have reworked collect2 - hardcode_direct=yes - else - # We have old collect2 - hardcode_direct=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - hardcode_minus_L=yes - hardcode_libdir_flag_spec='-L$libdir' - hardcode_libdir_separator= - fi - shared_flag='-shared' - else - shared_flag='${wl}-bM:SRE' - hardcode_direct=yes - fi - allow_undefined_flag=' ${wl}-berok' - archive_cmds="\$CC $shared_flag"' -o $objdir/$soname $libobjs $deplibs $linkopts ${wl}-bexpall ${wl}-bnoentry${allow_undefined_flag}' - archive_expsym_cmds="\$CC $shared_flag"' -o $objdir/$soname $libobjs $deplibs $linkopts ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}' - case "$host_os" in aix4.[01]|aix4.[01].*) - # According to Greg Wooledge, -bexpall is only supported from AIX 4.2 on - always_export_symbols=yes ;; - esac - ;; - - amigaos*) - archive_cmds='$rm $objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data~$AR cru $lib $libobjs~$RANLIB $lib~(cd $objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - # see comment about different semantics on the GNU ld section - ld_shlibs=no - ;; - - cygwin* | mingw*) - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - hardcode_libdir_flag_spec=' ' - allow_undefined_flag=unsupported - # Tell ltmain to make .lib files, not .a files. - libext=lib - # FIXME: Setting linknames here is a bad hack. - archive_cmds='$CC -o $lib $libobjs $linkopts `echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames=' - # The linker will automatically build a .lib file if we build a DLL. - old_archive_from_new_cmds='true' - # FIXME: Should let the user specify the lib program. - old_archive_cmds='lib /OUT:$oldlib$oldobjs' - fix_srcfile_path='`cygpath -w $srcfile`' - ;; - - freebsd1*) - ld_shlibs=no - ;; - - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor - # support. Future versions do this automatically, but an explicit c++rt0.o - # does not break anything, and helps significantly (at the cost of a little - # extra space). - freebsd2.2*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts /usr/lib/c++rt0.o' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts' - hardcode_direct=yes - hardcode_minus_L=yes - hardcode_shlibpath_var=no - ;; - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd*) - archive_cmds='$CC -shared -o $lib $libobjs $deplibs $linkopts' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - hpux9* | hpux10* | hpux11*) - case "$host_os" in - hpux9*) archive_cmds='$rm $objdir/$soname~$LD -b +b $install_libdir -o $objdir/$soname $libobjs $deplibs $linkopts~test $objdir/$soname = $lib || mv $objdir/$soname $lib' ;; - *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linkopts' ;; - esac - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_direct=yes - hardcode_minus_L=yes # Not in the search PATH, but as the default - # location of the library. - export_dynamic_flag_spec='${wl}-E' - ;; - - irix5* | irix6*) - if test "$with_gcc" = yes; then - archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' - else - archive_cmds='$LD -shared $libobjs $deplibs $linkopts -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' - fi - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts' # a.out - else - archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linkopts' # ELF - fi - hardcode_libdir_flag_spec='${wl}-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - openbsd*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - os2*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - allow_undefined_flag=unsupported - archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $objdir/$libname.def~$echo DATA >> $objdir/$libname.def~$echo " SINGLE NONSHARED" >> $objdir/$libname.def~$echo EXPORTS >> $objdir/$libname.def~emxexp $libobjs >> $objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $linkopts $objdir/$libname.def' - old_archive_from_new_cmds='emximp -o $objdir/$libname.a $objdir/$libname.def' - ;; - - osf3*) - if test "$with_gcc" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $linkopts ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' - else - allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linkopts -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' - fi - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - ;; - - osf4* | osf5*) # As osf3* with the addition of the -msym flag - if test "$with_gcc" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $linkopts ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' - else - allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linkopts -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' - fi - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - ;; - - sco3.2v5*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' - hardcode_shlibpath_var=no - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ;; - - solaris*) - no_undefined_flag=' -z text' - # $CC -shared without GNU ld will not create a library from C++ - # object files and a static libstdc++, better avoid it by now - archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linkopts' - archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linkopts~$rm $lib.exp' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_shlibpath_var=no - case "$host_os" in - solaris2.[0-5] | solaris2.[0-5].*) ;; - *) # Supported since Solaris 2.6 (maybe 2.5.1?) - whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;; - esac - ;; - - sunos4*) - archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linkopts' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_direct=yes - hardcode_minus_L=yes - hardcode_shlibpath_var=no - ;; - - sysv4) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' - runpath_var='LD_RUN_PATH' - hardcode_shlibpath_var=no - hardcode_direct=no #Motorola manual says yes, but my tests say they lie - ;; - - sysv4.3*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' - hardcode_shlibpath_var=no - export_dynamic_flag_spec='-Bexport' - ;; - - sysv5*) - no_undefined_flag=' -z text' - # $CC -shared without GNU ld will not create a library from C++ - # object files and a static libstdc++, better avoid it by now - archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linkopts' - archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linkopts~$rm $lib.exp' - hardcode_libdir_flag_spec= - hardcode_shlibpath_var=no - runpath_var='LD_RUN_PATH' - ;; - - uts4*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_shlibpath_var=no - ;; - - dgux*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_shlibpath_var=no - ;; - - sysv4*MP*) - if test -d /usr/nec; then - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' - hardcode_shlibpath_var=no - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ld_shlibs=yes - fi - ;; - - sysv4.2uw2*) - archive_cmds='$LD -G -o $lib $libobjs $deplibs $linkopts' - hardcode_direct=yes - hardcode_minus_L=no - hardcode_shlibpath_var=no - hardcode_runpath_var=yes - runpath_var=LD_RUN_PATH - ;; - - unixware7*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' - runpath_var='LD_RUN_PATH' - hardcode_shlibpath_var=no - ;; - - *) - ld_shlibs=no - ;; - esac -fi -echo "$ac_t$ld_shlibs" 1>&6 -test "$ld_shlibs" = no && can_build_shared=no - -if test -z "$NM"; then - echo $ac_n "checking for BSD-compatible nm... $ac_c" 1>&6 - case "$NM" in - [\\/]* | [A-Za-z]:[\\/]*) ;; # Let the user override the test with a path. - *) - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" - for ac_dir in $PATH /usr/ucb /usr/ccs/bin /bin; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/nm || test -f $ac_dir/nm$ac_exeext; then - # Check to see if the nm accepts a BSD-compat flag. - # Adding the `sed 1q' prevents false positives on HP-UX, which says: - # nm: unknown option "B" ignored - if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then - NM="$ac_dir/nm -B" - break - elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then - NM="$ac_dir/nm -p" - break - else - NM=${NM="$ac_dir/nm"} # keep the first match, but - continue # so that we can try to find one that supports BSD flags - fi - fi - done - IFS="$ac_save_ifs" - test -z "$NM" && NM=nm - ;; - esac - echo "$ac_t$NM" 1>&6 -fi - -# Check for command to grab the raw symbol name followed by C symbol from nm. -echo $ac_n "checking command to parse $NM output... $ac_c" 1>&6 - -# These are sane defaults that work on at least a few old systems. -# [They come from Ultrix. What could be older than Ultrix?!! ;)] - -# Character class describing NM global symbol codes. -symcode='[BCDEGRST]' - -# Regexp to match symbols that can be accessed directly from C. -sympat='\([_A-Za-z][_A-Za-z0-9]*\)' - -# Transform the above into a raw symbol and a C symbol. -symxfrm='\1 \2\3 \3' - -# Transform an extracted symbol line into a proper C declaration -global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'" - -# Define system-specific variables. -case "$host_os" in -aix*) - symcode='[BCDT]' - ;; -cygwin* | mingw*) - symcode='[ABCDGISTW]' - ;; -hpux*) # Its linker distinguishes data from code symbols - global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^. .* \(.*\)$/extern char \1;/p'" - ;; -irix*) - symcode='[BCDEGRST]' - ;; -solaris*) - symcode='[BDT]' - ;; -sysv4) - symcode='[DFNSTU]' - ;; -esac - -# If we're using GNU nm, then use its standard symbol codes. -if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then - symcode='[ABCDGISTW]' -fi - -# Try without a prefix undercore, then with it. -for ac_symprfx in "" "_"; do - - # Write the raw and C identifiers. - global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode\)[ ][ ]*\($ac_symprfx\)$sympat$/$symxfrm/p'" - - # Check to see that the pipe works correctly. - pipe_works=no - $rm conftest* - cat > conftest.c <<EOF -#ifdef __cplusplus -extern "C" { -#endif -char nm_test_var; -void nm_test_func(){} -#ifdef __cplusplus -} -#endif -main(){nm_test_var='a';nm_test_func();return(0);} -EOF - - echo "$progname:1635: checking if global_symbol_pipe works" >&5 - if { (eval echo $progname:1636: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.$objext; then - # Now try to grab the symbols. - nlist=conftest.nm - if { echo "$progname:1639: eval \"$NM conftest.$objext | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.$objext | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then - - # Try sorting and uniquifying the output. - if sort "$nlist" | uniq > "$nlist"T; then - mv -f "$nlist"T "$nlist" - else - rm -f "$nlist"T - fi - - # Make sure that we snagged all the symbols we need. - if egrep ' nm_test_var$' "$nlist" >/dev/null; then - if egrep ' nm_test_func$' "$nlist" >/dev/null; then - cat <<EOF > conftest.c -#ifdef __cplusplus -extern "C" { -#endif - -EOF - # Now generate the symbol file. - eval "$global_symbol_to_cdecl"' < "$nlist" >> conftest.c' - - cat <<EOF >> conftest.c -#if defined (__STDC__) && __STDC__ -# define lt_ptr_t void * -#else -# define lt_ptr_t char * -# define const -#endif - -/* The mapping between symbol names and symbols. */ -const struct { - const char *name; - lt_ptr_t address; -} -lt_preloaded_symbols[] = -{ -EOF - sed 's/^. \(.*\) \(.*\)$/ {"\2", (lt_ptr_t) \&\2},/' < "$nlist" >> conftest.c - cat <<\EOF >> conftest.c - {0, (lt_ptr_t) 0} -}; - -#ifdef __cplusplus -} -#endif -EOF - # Now try linking the two files. - mv conftest.$objext conftstm.$objext - save_LIBS="$LIBS" - save_CFLAGS="$CFLAGS" - LIBS="conftstm.$objext" - CFLAGS="$CFLAGS$no_builtin_flag" - if { (eval echo $progname:1691: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then - pipe_works=yes - else - echo "$progname: failed program was:" >&5 - cat conftest.c >&5 - fi - LIBS="$save_LIBS" - else - echo "cannot find nm_test_func in $nlist" >&5 - fi - else - echo "cannot find nm_test_var in $nlist" >&5 - fi - else - echo "cannot run $global_symbol_pipe" >&5 - fi - else - echo "$progname: failed program was:" >&5 - cat conftest.c >&5 - fi - $rm conftest* conftst* - - # Do not use the global_symbol_pipe unless it works. - if test "$pipe_works" = yes; then - break - else - global_symbol_pipe= - fi -done -if test "$pipe_works" = yes; then - echo "${ac_t}ok" 1>&6 -else - echo "${ac_t}failed" 1>&6 -fi - -if test -z "$global_symbol_pipe"; then - global_symbol_to_cdecl= -fi - -# Check hardcoding attributes. -echo $ac_n "checking how to hardcode library paths into programs... $ac_c" 1>&6 -hardcode_action= -if test -n "$hardcode_libdir_flag_spec" || \ - test -n "$runpath_var"; then - - # We can hardcode non-existant directories. - if test "$hardcode_direct" != no && - # If the only mechanism to avoid hardcoding is shlibpath_var, we - # have to relink, otherwise we might link with an installed library - # when we should be linking with a yet-to-be-installed one - ## test "$hardcode_shlibpath_var" != no && - test "$hardcode_minus_L" != no; then - # Linking always hardcodes the temporary library directory. - hardcode_action=relink - else - # We can link without hardcoding, and we can hardcode nonexisting dirs. - hardcode_action=immediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - hardcode_action=unsupported -fi -echo "$ac_t$hardcode_action" 1>&6 - - -reload_flag= -reload_cmds='$LD$reload_flag -o $output$reload_objs' -echo $ac_n "checking for $LD option to reload object files... $ac_c" 1>&6 -# PORTME Some linkers may need a different reload flag. -reload_flag='-r' -echo "$ac_t$reload_flag" 1>&6 -test -n "$reload_flag" && reload_flag=" $reload_flag" - -# PORTME Fill in your ld.so characteristics -library_names_spec= -libname_spec='lib$name' -soname_spec= -postinstall_cmds= -postuninstall_cmds= -finish_cmds= -finish_eval= -shlibpath_var= -shlibpath_overrides_runpath=unknown -version_type=none -dynamic_linker="$host_os ld.so" -sys_lib_dlsearch_path_spec="/lib /usr/lib" -sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" -file_magic_cmd= -file_magic_test_file= -deplibs_check_method='unknown' -# Need to set the preceding variable on all platforms that support -# interlibrary dependencies. -# 'none' -- dependencies not supported. -# `unknown' -- same as none, but documents that we really don't know. -# 'pass_all' -- all dependencies passed with no checks. -# 'test_compile' -- check by making test program. -# 'file_magic [regex]' -- check by looking for files in library path -# which responds to the $file_magic_cmd with a given egrep regex. -# If you have `file' or equivalent on your system and you're not sure -# whether `pass_all' will *always* work, you probably want this one. -echo $ac_n "checking dynamic linker characteristics... $ac_c" 1>&6 -case "$host_os" in -aix3*) - version_type=linux - library_names_spec='${libname}${release}.so$versuffix $libname.a' - shlibpath_var=LIBPATH - - # AIX has no versioning support, so we append a major version to the name. - soname_spec='${libname}${release}.so$major' - ;; - -aix4*) - version_type=linux - # AIX has no versioning support, so currently we can not hardcode correct - # soname into executable. Probably we can add versioning support to - # collect2, so additional links can be useful in future. - # We preserve .a as extension for shared libraries though AIX4.2 - # and later linker supports .so - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.a' - shlibpath_var=LIBPATH - deplibs_check_method=pass_all - ;; - -amigaos*) - library_names_spec='$libname.ixlibrary $libname.a' - # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done' - ;; - -beos*) - library_names_spec='${libname}.so' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - deplibs_check_method=pass_all - lt_cv_dlopen="load_add_on" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - ;; - -bsdi4*) - version_type=linux - need_version=no - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' - soname_spec='${libname}${release}.so$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' - file_magic_cmd=/usr/bin/file - file_magic_test_file=/shlib/libc.so - sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" - sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" - export_dynamic_flag_spec=-rdynamic - # the default ld.so.conf also contains /usr/contrib/lib and - # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow - # libtool to hard-code these into programs - ;; - -cygwin* | mingw*) - version_type=windows - need_version=no - need_lib_prefix=no - if test "$with_gcc" = yes; then - library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.a' - else - library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.lib' - fi - dynamic_linker='Win32 ld.exe' - deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' - file_magic_cmd='${OBJDUMP} -f' - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - lt_cv_dlopen="LoadLibrary" - lt_cv_dlopen_libs= - ;; - -freebsd1*) - dynamic_linker=no - ;; - -freebsd*) - objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` - version_type=freebsd-$objformat - case "$version_type" in - freebsd-elf*) - deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB shared object' - file_magic_cmd=/usr/bin/file - file_magic_test_file=`echo /usr/lib/libc.so*` - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so' - need_version=no - need_lib_prefix=no - ;; - freebsd-*) - deplibs_check_method=unknown - library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix' - need_version=yes - ;; - esac - shlibpath_var=LD_LIBRARY_PATH - case "$host_os" in - freebsd2* | freebsd3.[01]* | freebsdelf3.[01]*) - shlibpath_overrides_runpath=yes - ;; - *) # from 3.2 on - shlibpath_overrides_runpath=no - ;; - esac - ;; - -gnu*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so' - soname_spec='${libname}${release}.so$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -hpux9* | hpux10* | hpux11*) - # Give a soname corresponding to the major version so that dld.sl refuses to - # link against other versions. - dynamic_linker="$host_os dld.sl" - version_type=sunos - need_lib_prefix=no - need_version=no - shlibpath_var=SHLIB_PATH - shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH - library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl' - soname_spec='${libname}${release}.sl$major' - # HP-UX runs *really* slowly unless shared libraries are mode 555. - postinstall_cmds='chmod 555 $lib' - ;; - -irix5* | irix6*) - version_type=irix - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}.so.$major' - library_names_spec='${libname}${release}.so.$versuffix ${libname}${release}.so.$major ${libname}${release}.so $libname.so' - case "$host_os" in - irix5*) - libsuff= shlibsuff= - # this will be overridden with pass_all, but let us keep it just in case - deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1" - ;; - *) - case "$LD" in # libtool.m4 will add one of these switches to LD - *-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;; - *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; - *-64|*"-64 ") libsuff=64 shlibsuff=64 libmagic=64-bit;; - *) libsuff= shlibsuff= libmagic=never-match;; - esac - ;; - esac - shlibpath_var=LD_LIBRARY${shlibsuff}_PATH - shlibpath_overrides_runpath=no - sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" - sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" - file_magic_cmd=/usr/bin/file - file_magic_test_file=`echo /lib${libsuff}/libc.so*` - deplibs_check_method='pass_all' - ;; - -# No shared lib support for Linux oldld, aout, or coff. -linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*) - dynamic_linker=no - ;; - -# This must be Linux ELF. -linux-gnu*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' - soname_spec='${libname}${release}.so$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' - file_magic_cmd=/usr/bin/file - file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` - - if test -f /lib/ld.so.1; then - dynamic_linker='GNU ld.so' - else - # Only the GNU ld.so supports shared libraries on MkLinux. - case "$host_cpu" in - powerpc*) dynamic_linker=no ;; - *) dynamic_linker='Linux ld.so' ;; - esac - fi - ;; - -netbsd*) - version_type=sunos - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker='NetBSD (a.out) ld.so' - else - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so ${libname}.so' - soname_spec='${libname}${release}.so$major' - dynamic_linker='NetBSD ld.elf_so' - fi - shlibpath_var=LD_LIBRARY_PATH - ;; - -openbsd*) - version_type=sunos - if test "$with_gnu_ld" = yes; then - need_lib_prefix=no - need_version=no - fi - library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - ;; - -os2*) - libname_spec='$name' - need_lib_prefix=no - library_names_spec='$libname.dll $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; - -osf3* | osf4* | osf5*) - version_type=osf - need_version=no - soname_spec='${libname}${release}.so' - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so' - shlibpath_var=LD_LIBRARY_PATH - # this will be overridden with pass_all, but let us keep it just in case - deplibs_check_method='file_magic COFF format alpha shared library' - file_magic_cmd=/usr/bin/file - file_magic_test_file=/shlib/libc.so - deplibs_check_method='pass_all' - sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" - ;; - -sco3.2v5*) - version_type=osf - soname_spec='${libname}${release}.so$major' - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' - shlibpath_var=LD_LIBRARY_PATH - ;; - -solaris*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' - soname_spec='${libname}${release}.so$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - # ldd complains unless libraries are executable - postinstall_cmds='chmod +x $lib' - deplibs_check_method="file_magic ELF [0-9][0-9]-bit [LM]SB dynamic lib" - file_magic_cmd=/usr/bin/file - file_magic_test_file=/lib/libc.so - ;; - -sunos4*) - version_type=sunos - library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' - finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - if test "$with_gnu_ld" = yes; then - need_lib_prefix=no - fi - need_version=yes - ;; - -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - version_type=linux - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' - soname_spec='${libname}${release}.so$major' - shlibpath_var=LD_LIBRARY_PATH - case "$host_vendor" in - ncr) - deplibs_check_method='pass_all' - ;; - motorola) - need_lib_prefix=no - need_version=no - shlibpath_overrides_runpath=no - sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' - deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' - file_magic_cmd=/usr/bin/file - file_magic_test_file=`echo /usr/lib/libc.so*` - ;; - esac - ;; - -uts4*) - version_type=linux - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' - soname_spec='${libname}${release}.so$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -dgux*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' - soname_spec='${libname}${release}.so$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -sysv4*MP*) - if test -d /usr/nec ;then - version_type=linux - library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so' - soname_spec='$libname.so.$major' - shlibpath_var=LD_LIBRARY_PATH - fi - ;; - -*) - dynamic_linker=no - ;; -esac -echo "$ac_t$dynamic_linker" 1>&6 -test "$dynamic_linker" = no && can_build_shared=no - -# Report the final consequences. -echo "checking if libtool supports shared libraries... $can_build_shared" 1>&6 - -# Only try to build win32 dlls if AC_LIBTOOL_WIN32_DLL was used in -# configure.in, otherwise build static only libraries. -case "$host_os" in -cygwin* | mingw* | os2*) - if test x$can_build_shared = xyes; then - test x$enable_win32_dll = xno && can_build_shared=no - echo "checking if package supports dlls... $can_build_shared" 1>&6 - fi -;; -esac - -if test -n "$file_magic_test_file" && test -n "$file_magic_cmd"; then - case "$deplibs_check_method" in - "file_magic "*) - file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | - egrep "$file_magic_regex" > /dev/null; then - : - else - cat <<EOF 1>&2 - -*** Warning: the command libtool uses to detect shared libraries, -*** $file_magic_cmd, produces output that libtool cannot recognize. -*** The result is that libtool may fail to recognize shared libraries -*** as such. This will affect the creation of libtool libraries that -*** depend on shared libraries, but programs linked with such libtool -*** libraries will work regardless of this problem. Nevertheless, you -*** may want to report the problem to your system manager and/or to -*** bug-libtool@gnu.org - -EOF - fi ;; - esac -fi - -echo $ac_n "checking whether to build shared libraries... $ac_c" 1>&6 -test "$can_build_shared" = "no" && enable_shared=no - -# On AIX, shared libraries and static libraries use the same namespace, and -# are all built from PIC. -case "$host_os" in -aix3*) - test "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; - -aix4*) - test "$enable_shared" = yes && enable_static=no - ;; -esac - -echo "$ac_t$enable_shared" 1>&6 - -# Make sure either enable_shared or enable_static is yes. -test "$enable_shared" = yes || enable_static=yes - -echo "checking whether to build static libraries... $enable_static" 1>&6 - -if test "$hardcode_action" = relink; then - # Fast installation is not supported - enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then - # Fast installation is not necessary - enable_fast_install=needless -fi - -echo $ac_n "checking for objdir... $ac_c" 1>&6 -rm -f .libs 2>/dev/null -mkdir .libs 2>/dev/null -if test -d .libs; then - objdir=.libs -else - # MS-DOS does not allow filenames that begin with a dot. - objdir=_libs -fi -rmdir .libs 2>/dev/null -echo "$ac_t$objdir" 1>&6 - -if test "x$enable_dlopen" != xyes; then - enable_dlopen=unknown - enable_dlopen_self=unknown - enable_dlopen_self_static=unknown -else -if eval "test \"`echo '$''{'lt_cv_dlopen'+set}'`\" != set"; then - lt_cv_dlopen=no lt_cv_dlopen_libs= -echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6 -echo "$progname:2212: checking for dlopen in -ldl" >&5 -ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'` -if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - ac_save_LIBS="$LIBS" -LIBS="-ldl $LIBS" -cat > conftest.$ac_ext <<EOF -#line 2220 "ltconfig" -/* Override any gcc2 internal prototype to avoid an error. */ -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen(); - -int main() { -dlopen() -; return 0; } -EOF -if { (eval echo $progname:2233: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=yes" -else - echo "$progname: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=no" -fi -rm -f conftest* -LIBS="$ac_save_LIBS" - -fi -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then - echo "$ac_t""yes" 1>&6 - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" -else - echo "$ac_t""no" 1>&6 -echo $ac_n "checking for dlopen""... $ac_c" 1>&6 -echo "$progname:2252: checking for dlopen" >&5 -if eval "test \"`echo '$''{'ac_cv_func_dlopen'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext <<EOF -#line 2257 "ltconfig" -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char dlopen(); below. */ -#include <assert.h> -/* Override any gcc2 internal prototype to avoid an error. */ -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen(); - -int main() { - -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_dlopen) || defined (__stub___dlopen) -choke me -#else -dlopen(); -#endif - -; return 0; } -EOF -if { (eval echo $progname:2282: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then - rm -rf conftest* - eval "ac_cv_func_dlopen=yes" -else - echo "$progname: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_func_dlopen=no" -fi -rm -f conftest* -fi -if eval "test \"`echo '$ac_cv_func_'dlopen`\" = yes"; then - echo "$ac_t""yes" 1>&6 - lt_cv_dlopen="dlopen" -else - echo "$ac_t""no" 1>&6 -echo $ac_n "checking for dld_link in -ldld""... $ac_c" 1>&6 -echo "$progname:2299: checking for dld_link in -ldld" >&5 -ac_lib_var=`echo dld'_'dld_link | sed 'y%./+-%__p_%'` -if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - ac_save_LIBS="$LIBS" -LIBS="-ldld $LIBS" -cat > conftest.$ac_ext <<EOF -#line 2307 "ltconfig" -/* Override any gcc2 internal prototype to avoid an error. */ -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dld_link(); - -int main() { -dld_link() -; return 0; } -EOF -if { (eval echo $progname:2320: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=yes" -else - echo "$progname: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=no" -fi -rm -f conftest* -LIBS="$ac_save_LIBS" - -fi -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then - echo "$ac_t""yes" 1>&6 - lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" -else - echo "$ac_t""no" 1>&6 -echo $ac_n "checking for shl_load""... $ac_c" 1>&6 -echo "$progname:2339: checking for shl_load" >&5 -if eval "test \"`echo '$''{'ac_cv_func_shl_load'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext <<EOF -#line 2344 "ltconfig" -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char shl_load(); below. */ -#include <assert.h> -/* Override any gcc2 internal prototype to avoid an error. */ -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char shl_load(); - -int main() { - -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_shl_load) || defined (__stub___shl_load) -choke me -#else -shl_load(); -#endif - -; return 0; } -EOF -if { (eval echo $progname:2369: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then - rm -rf conftest* - eval "ac_cv_func_shl_load=yes" -else - echo "$progname: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_func_shl_load=no" -fi -rm -f conftest* -fi - -if eval "test \"`echo '$ac_cv_func_'shl_load`\" = yes"; then - echo "$ac_t""yes" 1>&6 - lt_cv_dlopen="shl_load" -else - echo "$ac_t""no" 1>&6 -echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6 -echo "$progname:2387: checking for shl_load in -ldld" >&5 -ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'` -if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - ac_save_LIBS="$LIBS" -LIBS="-ldld $LIBS" -cat > conftest.$ac_ext <<EOF -#line 2395 "ltconfig" -#include "confdefs.h" -/* Override any gcc2 internal prototype to avoid an error. */ -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char shl_load(); - -int main() { -shl_load() -; return 0; } -EOF -if { (eval echo $progname:2409: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=yes" -else - echo "$progname: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=no" -fi -rm -f conftest* -LIBS="$ac_save_LIBS" - -fi -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then - echo "$ac_t""yes" 1>&6 - lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" -else - echo "$ac_t""no" 1>&6 -fi - - -fi - - -fi - - -fi - - -fi - -fi - - if test "x$lt_cv_dlopen" != xno; then - enable_dlopen=yes - fi - - case "$lt_cv_dlopen" in - dlopen) -for ac_hdr in dlfcn.h; do -ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` -echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "$progname:2452: checking for $ac_hdr" >&5 -if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext <<EOF -#line 2457 "ltconfig" -#include <$ac_hdr> -int fnord = 0; -EOF -ac_try="$ac_compile >/dev/null 2>conftest.out" -{ (eval echo $progname:2462: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } -ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` -if test -z "$ac_err"; then - rm -rf conftest* - eval "ac_cv_header_$ac_safe=yes" -else - echo "$ac_err" >&5 - echo "$progname: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_header_$ac_safe=no" -fi -rm -f conftest* -fi -if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then - echo "$ac_t""yes" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi -done - - if test "x$ac_cv_header_dlfcn_h" = xyes; then - CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" - fi - eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" - LIBS="$lt_cv_dlopen_libs $LIBS" - - echo $ac_n "checking whether a program can dlopen itself""... $ac_c" 1>&6 -echo "$progname:2490: checking whether a program can dlopen itself" >&5 -if test "${lt_cv_dlopen_self+set}" = set; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test "$cross_compiling" = yes; then - lt_cv_dlopen_self=cross - else - cat > conftest.c <<EOF -#line 2498 "ltconfig" - -#if HAVE_DLFCN_H -#include <dlfcn.h> -#endif - -#include <stdio.h> - -#ifdef RTLD_GLOBAL -# define LTDL_GLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LTDL_GLOBAL DL_GLOBAL -# else -# define LTDL_GLOBAL 0 -# endif -#endif - -/* We may have to define LTDL_LAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LTDL_LAZY_OR_NOW -# ifdef RTLD_LAZY -# define LTDL_LAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LTDL_LAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LTDL_LAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LTDL_LAZY_OR_NOW DL_NOW -# else -# define LTDL_LAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -fnord() { int i=42;} -main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW); - if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord"); - if(ptr1 || ptr2) { dlclose(self); exit(0); } } exit(1); } - -EOF -if { (eval echo $progname:2544: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null -then - lt_cv_dlopen_self=yes -else - echo "$progname: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -fr conftest* - lt_cv_dlopen_self=no -fi -rm -fr conftest* -fi - -fi - -echo "$ac_t""$lt_cv_dlopen_self" 1>&6 - - if test "$lt_cv_dlopen_self" = yes; then - LDFLAGS="$LDFLAGS $link_static_flag" - echo $ac_n "checking whether a statically linked program can dlopen itself""... $ac_c" 1>&6 -echo "$progname:2563: checking whether a statically linked program can dlopen itself" >&5 -if test "${lt_cv_dlopen_self_static+set}" = set; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test "$cross_compiling" = yes; then - lt_cv_dlopen_self_static=cross - else - cat > conftest.c <<EOF -#line 2571 "ltconfig" - -#if HAVE_DLFCN_H -#include <dlfcn.h> -#endif - -#include <stdio.h> - -#ifdef RTLD_GLOBAL -# define LTDL_GLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LTDL_GLOBAL DL_GLOBAL -# else -# define LTDL_GLOBAL 0 -# endif -#endif - -/* We may have to define LTDL_LAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LTDL_LAZY_OR_NOW -# ifdef RTLD_LAZY -# define LTDL_LAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LTDL_LAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LTDL_LAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LTDL_LAZY_OR_NOW DL_NOW -# else -# define LTDL_LAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -fnord() { int i=42;} -main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW); - if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord"); - if(ptr1 || ptr2) { dlclose(self); exit(0); } } exit(1); } - -EOF -if { (eval echo $progname:2617: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null -then - lt_cv_dlopen_self_static=yes -else - echo "$progname: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -fr conftest* - lt_cv_dlopen_self_static=no -fi -rm -fr conftest* -fi - -fi - -echo "$ac_t""$lt_cv_dlopen_self_static" 1>&6 -fi - ;; - esac - - case "$lt_cv_dlopen_self" in - yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; - *) enable_dlopen_self=unknown ;; - esac - - case "$lt_cv_dlopen_self_static" in - yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; - *) enable_dlopen_self_static=unknown ;; - esac -fi - -# Copy echo and quote the copy, instead of the original, because it is -# used later. -ltecho="$echo" -if test "X$ltecho" = "X$CONFIG_SHELL $0 --fallback-echo"; then - ltecho="$CONFIG_SHELL \$0 --fallback-echo" -fi -LTSHELL="$SHELL" - -LTCONFIG_VERSION="$VERSION" - -# Only quote variables if we're using ltmain.sh. -case "$ltmain" in -*.sh) - # Now quote all the things that may contain metacharacters. - for var in ltecho old_CC old_CFLAGS old_CPPFLAGS \ - old_LD old_LDFLAGS old_LIBS \ - old_NM old_RANLIB old_LN_S old_DLLTOOL old_OBJDUMP old_AS \ - AR CC LD LN_S NM LTSHELL LTCONFIG_VERSION \ - reload_flag reload_cmds wl \ - pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \ - thread_safe_flag_spec whole_archive_flag_spec libname_spec \ - library_names_spec soname_spec \ - RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \ - old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds postuninstall_cmds \ - file_magic_cmd export_symbols_cmds deplibs_check_method allow_undefined_flag no_undefined_flag \ - finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \ - hardcode_libdir_flag_spec hardcode_libdir_separator \ - sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ - compiler_c_o compiler_o_lo need_locks exclude_expsyms include_expsyms; do - - case "$var" in - reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \ - old_postinstall_cmds | old_postuninstall_cmds | \ - export_symbols_cmds | archive_cmds | archive_expsym_cmds | \ - postinstall_cmds | postuninstall_cmds | \ - finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) - # Double-quote double-evaled strings. - eval "$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" - ;; - *) - eval "$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" - ;; - esac - done - - case "$ltecho" in - *'\$0 --fallback-echo"') - ltecho=`$echo "X$ltecho" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` - ;; - esac - - trap "$rm \"$ofile\"; exit 1" 1 2 15 - echo "creating $ofile" - $rm "$ofile" - cat <<EOF > "$ofile" -#! $SHELL - -# `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. -# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) -# NOTE: Changes made to this file will be lost: look at ltconfig or ltmain.sh. -# -# Copyright (C) 1996-1999 Free Software Foundation, Inc. -# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# Sed that helps us avoid accidentally triggering echo(1) options like -n. -Xsed="sed -e s/^X//" - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi - -### BEGIN LIBTOOL CONFIG -EOF - cfgfile="$ofile" - ;; - -*) - # Double-quote the variables that need it (for aesthetics). - for var in old_CC old_CFLAGS old_CPPFLAGS \ - old_LD old_LDFLAGS old_LIBS \ - old_NM old_RANLIB old_LN_S old_DLLTOOL old_OBJDUMP old_AS; do - eval "$var=\\\"\$var\\\"" - done - - # Just create a config file. - cfgfile="$ofile.cfg" - trap "$rm \"$cfgfile\"; exit 1" 1 2 15 - echo "creating $cfgfile" - $rm "$cfgfile" - cat <<EOF > "$cfgfile" -# `$echo "$cfgfile" | sed 's%^.*/%%'` - Libtool configuration file. -# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) -EOF - ;; -esac - -cat <<EOF >> "$cfgfile" -# Libtool was configured as follows, on host `(hostname || uname -n) 2>/dev/null | sed 1q`: -# -# CC=$old_CC CFLAGS=$old_CFLAGS CPPFLAGS=$old_CPPFLAGS \\ -# LD=$old_LD LDFLAGS=$old_LDFLAGS LIBS=$old_LIBS \\ -# NM=$old_NM RANLIB=$old_RANLIB LN_S=$old_LN_S \\ -# DLLTOOL=$old_DLLTOOL OBJDUMP=$old_OBJDUMP AS=$old_AS \\ -# $0$ltconfig_args -# -# Compiler and other test output produced by $progname, useful for -# debugging $progname, is in ./config.log if it exists. - -# The version of $progname that generated this script. -LTCONFIG_VERSION=$LTCONFIG_VERSION - -# Shell to use when invoking shell scripts. -SHELL=$LTSHELL - -# Whether or not to build shared libraries. -build_libtool_libs=$enable_shared - -# Whether or not to build static libraries. -build_old_libs=$enable_static - -# Whether or not to optimize for fast installation. -fast_install=$enable_fast_install - -# The host system. -host_alias=$host_alias -host=$host - -# An echo program that does not interpret backslashes. -echo=$ltecho - -# The archiver. -AR=$AR - -# The default C compiler. -CC=$CC - -# The linker used to build libraries. -LD=$LD - -# Whether we need hard or soft links. -LN_S=$LN_S - -# A BSD-compatible nm program. -NM=$NM - -# Used on cygwin: DLL creation program. -DLLTOOL="$DLLTOOL" - -# Used on cygwin: object dumper. -OBJDUMP="$OBJDUMP" - -# Used on cygwin: assembler. -AS="$AS" - -# The name of the directory that contains temporary libtool files. -objdir=$objdir - -# How to create reloadable object files. -reload_flag=$reload_flag -reload_cmds=$reload_cmds - -# How to pass a linker flag through the compiler. -wl=$wl - -# Object file suffix (normally "o"). -objext="$objext" - -# Old archive suffix (normally "a"). -libext="$libext" - -# Executable file suffix (normally ""). -exeext="$exeext" - -# Additional compiler flags for building library objects. -pic_flag=$pic_flag - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=$compiler_c_o - -# Can we write directly to a .lo ? -compiler_o_lo=$compiler_o_lo - -# Must we lock files when doing compilation ? -need_locks=$need_locks - -# Do we need the lib prefix for modules? -need_lib_prefix=$need_lib_prefix - -# Do we need a version for libraries? -need_version=$need_version - -# Whether dlopen is supported. -dlopen=$enable_dlopen - -# Whether dlopen of programs is supported. -dlopen_self=$enable_dlopen_self - -# Whether dlopen of statically linked programs is supported. -dlopen_self_static=$enable_dlopen_self_static - -# Compiler flag to prevent dynamic linking. -link_static_flag=$link_static_flag - -# Compiler flag to turn off builtin functions. -no_builtin_flag=$no_builtin_flag - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec=$export_dynamic_flag_spec - -# Compiler flag to generate shared objects directly from archives. -whole_archive_flag_spec=$whole_archive_flag_spec - -# Compiler flag to generate thread-safe objects. -thread_safe_flag_spec=$thread_safe_flag_spec - -# Library versioning type. -version_type=$version_type - -# Format of library name prefix. -libname_spec=$libname_spec - -# List of archive names. First name is the real one, the rest are links. -# The last name is the one that the linker finds with -lNAME. -library_names_spec=$library_names_spec - -# The coded name of the library, if different from the real name. -soname_spec=$soname_spec - -# Commands used to build and install an old-style archive. -RANLIB=$RANLIB -old_archive_cmds=$old_archive_cmds -old_postinstall_cmds=$old_postinstall_cmds -old_postuninstall_cmds=$old_postuninstall_cmds - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds=$old_archive_from_new_cmds - -# Commands used to build and install a shared archive. -archive_cmds=$archive_cmds -archive_expsym_cmds=$archive_expsym_cmds -postinstall_cmds=$postinstall_cmds -postuninstall_cmds=$postuninstall_cmds - -# Method to check whether dependent libraries are shared objects. -deplibs_check_method=$deplibs_check_method - -# Command to use when deplibs_check_method == file_magic. -file_magic_cmd=$file_magic_cmd - -# Flag that allows shared libraries with undefined symbols to be built. -allow_undefined_flag=$allow_undefined_flag - -# Flag that forces no undefined symbols. -no_undefined_flag=$no_undefined_flag - -# Commands used to finish a libtool library installation in a directory. -finish_cmds=$finish_cmds - -# Same as above, but a single script fragment to be evaled but not shown. -finish_eval=$finish_eval - -# Take the output of nm and produce a listing of raw symbols and C names. -global_symbol_pipe=$global_symbol_pipe - -# Transform the output of nm in a proper C declaration -global_symbol_to_cdecl=$global_symbol_to_cdecl - -# This is the shared library runtime path variable. -runpath_var=$runpath_var - -# This is the shared library path variable. -shlibpath_var=$shlibpath_var - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=$shlibpath_overrides_runpath - -# How to hardcode a shared library path into an executable. -hardcode_action=$hardcode_action - -# Flag to hardcode \$libdir into a binary during linking. -# This must work even if \$libdir does not exist. -hardcode_libdir_flag_spec=$hardcode_libdir_flag_spec - -# Whether we need a single -rpath flag with a separated argument. -hardcode_libdir_separator=$hardcode_libdir_separator - -# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the -# resulting binary. -hardcode_direct=$hardcode_direct - -# Set to yes if using the -LDIR flag during linking hardcodes DIR into the -# resulting binary. -hardcode_minus_L=$hardcode_minus_L - -# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into -# the resulting binary. -hardcode_shlibpath_var=$hardcode_shlibpath_var - -# Compile-time system search path for libraries -sys_lib_search_path_spec=$sys_lib_search_path_spec - -# Run-time system search path for libraries -sys_lib_dlsearch_path_spec=$sys_lib_dlsearch_path_spec - -# Fix the shell variable \$srcfile for the compiler. -fix_srcfile_path="$fix_srcfile_path" - -# Set to yes if exported symbols are required. -always_export_symbols=$always_export_symbols - -# The commands to list exported symbols. -export_symbols_cmds=$export_symbols_cmds - -# Symbols that should not be listed in the preloaded symbols. -exclude_expsyms=$exclude_expsyms - -# Symbols that must always be exported. -include_expsyms=$include_expsyms - -EOF - -case "$ltmain" in -*.sh) - echo '### END LIBTOOL CONFIG' >> "$ofile" - echo >> "$ofile" - case "$host_os" in - aix3*) - cat <<\EOF >> "$ofile" - -# AIX sometimes has problems with the GCC collect2 program. For some -# reason, if we set the COLLECT_NAMES environment variable, the problems -# vanish in a puff of smoke. -if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES -fi -EOF - ;; - esac - - # Append the ltmain.sh script. - sed '$q' "$ltmain" >> "$ofile" || (rm -f "$ofile"; exit 1) - # We use sed instead of cat because bash on DJGPP gets confused if - # if finds mixed CR/LF and LF-only lines. Since sed operates in - # text mode, it properly converts lines to CR/LF. This bash problem - # is reportedly fixed, but why not run on old versions too? - - chmod +x "$ofile" - ;; - -*) - # Compile the libtool program. - echo "FIXME: would compile $ltmain" - ;; -esac - -test -n "$cache_file" || exit 0 - -# AC_CACHE_SAVE -trap '' 1 2 15 -cat > confcache <<\EOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs. It is not useful on other systems. -# If it contains results you don't want to keep, you may remove or edit it. -# -# By default, configure uses ./config.cache as the cache file, -# creating it if it does not exist already. You can give configure -# the --cache-file=FILE option to use a different cache file; that is -# what configure does when it calls configure scripts in -# subdirectories, so they share the cache. -# Giving --cache-file=/dev/null disables caching, for debugging configure. -# config.status only pays attention to the cache file if you give it the -# --recheck option to rerun configure. -# -EOF -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, don't put newlines in cache variables' values. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -(set) 2>&1 | - case `(ac_space=' '; set | grep ac_space) 2>&1` in - *ac_space=\ *) - # `set' does not quote correctly, so add quotes (double-quote substitution - # turns \\\\ into \\, and sed turns \\ into \). - sed -n \ - -e "s/'/'\\\\''/g" \ - -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" - ;; - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' - ;; - esac >> confcache -if cmp -s $cache_file confcache; then - : -else - if test -w $cache_file; then - echo "updating cache $cache_file" - cat confcache > $cache_file - else - echo "not updating unwritable cache $cache_file" - fi -fi -rm -f confcache - -exit 0 - -# Local Variables: -# mode:shell-script -# sh-indentation:2 -# End: diff --git a/Build/source/libs/freetype/freetype-1.5/ltmain.sh b/Build/source/libs/freetype/freetype-1.5/ltmain.sh deleted file mode 100755 index 4598ec61ccf..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/ltmain.sh +++ /dev/null @@ -1,6930 +0,0 @@ -# ltmain.sh - Provide generalized library-building support services. -# NOTE: Changing this file will not affect anything until you rerun configure. -# -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, -# 2007 Free Software Foundation, Inc. -# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -basename="s,^.*/,,g" - -# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh -# is ksh but when the shell is invoked as "sh" and the current value of -# the _XPG environment variable is not equal to 1 (one), the special -# positional parameter $0, within a function call, is the name of the -# function. -progpath="$0" - -# The name of this program: -progname=`echo "$progpath" | $SED $basename` -modename="$progname" - -# Global variables: -EXIT_SUCCESS=0 -EXIT_FAILURE=1 - -PROGRAM=ltmain.sh -PACKAGE=libtool -VERSION=1.5.24 -TIMESTAMP=" (1.1220.2.455 2007/06/24 02:13:29)" - -# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE). -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac -fi -BIN_SH=xpg4; export BIN_SH # for Tru64 -DUALCASE=1; export DUALCASE # for MKS sh - -# Check that we have a working $echo. -if test "X$1" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift -elif test "X$1" = X--fallback-echo; then - # Avoid inline document here, it may be left over - : -elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then - # Yippee, $echo works! - : -else - # Restart under the correct shell, and then maybe $echo will work. - exec $SHELL "$progpath" --no-reexec ${1+"$@"} -fi - -if test "X$1" = X--fallback-echo; then - # used as fallback echo - shift - cat <<EOF -$* -EOF - exit $EXIT_SUCCESS -fi - -default_mode= -help="Try \`$progname --help' for more information." -magic="%%%MAGIC variable%%%" -mkdir="mkdir" -mv="mv -f" -rm="rm -f" - -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -Xsed="${SED}"' -e 1s/^X//' -sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g' -# test EBCDIC or ASCII -case `echo X|tr X '\101'` in - A) # ASCII based system - # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr - SP2NL='tr \040 \012' - NL2SP='tr \015\012 \040\040' - ;; - *) # EBCDIC based system - SP2NL='tr \100 \n' - NL2SP='tr \r\n \100\100' - ;; -esac - -# NLS nuisances. -# Only set LANG and LC_ALL to C if already set. -# These must not be set unconditionally because not all systems understand -# e.g. LANG=C (notably SCO). -# We save the old values to restore during execute mode. -for lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES -do - eval "if test \"\${$lt_var+set}\" = set; then - save_$lt_var=\$$lt_var - $lt_var=C - export $lt_var - fi" -done - -# Make sure IFS has a sensible default -lt_nl=' -' -IFS=" $lt_nl" - -if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then - $echo "$modename: not configured to build any kind of library" 1>&2 - $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 - exit $EXIT_FAILURE -fi - -# Global variables. -mode=$default_mode -nonopt= -prev= -prevopt= -run= -show="$echo" -show_help= -execute_dlfiles= -duplicate_deps=no -preserve_args= -lo2o="s/\\.lo\$/.${objext}/" -o2lo="s/\\.${objext}\$/.lo/" -extracted_archives= -extracted_serial=0 - -##################################### -# Shell function definitions: -# This seems to be the best place for them - -# func_mktempdir [string] -# Make a temporary directory that won't clash with other running -# libtool processes, and avoids race conditions if possible. If -# given, STRING is the basename for that directory. -func_mktempdir () -{ - my_template="${TMPDIR-/tmp}/${1-$progname}" - - if test "$run" = ":"; then - # Return a directory name, but don't create it in dry-run mode - my_tmpdir="${my_template}-$$" - else - - # If mktemp works, use that first and foremost - my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` - - if test ! -d "$my_tmpdir"; then - # Failing that, at least try and use $RANDOM to avoid a race - my_tmpdir="${my_template}-${RANDOM-0}$$" - - save_mktempdir_umask=`umask` - umask 0077 - $mkdir "$my_tmpdir" - umask $save_mktempdir_umask - fi - - # If we're not in dry-run mode, bomb out on failure - test -d "$my_tmpdir" || { - $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2 - exit $EXIT_FAILURE - } - fi - - $echo "X$my_tmpdir" | $Xsed -} - - -# func_win32_libid arg -# return the library type of file 'arg' -# -# Need a lot of goo to handle *both* DLLs and import libs -# Has to be a shell function in order to 'eat' the argument -# that is supplied when $file_magic_command is called. -func_win32_libid () -{ - win32_libid_type="unknown" - win32_fileres=`file -L $1 2>/dev/null` - case $win32_fileres in - *ar\ archive\ import\ library*) # definitely import - win32_libid_type="x86 archive import" - ;; - *ar\ archive*) # could be an import, or static - if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ - $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then - win32_nmres=`eval $NM -f posix -A $1 | \ - $SED -n -e '1,100{ - / I /{ - s,.*,import, - p - q - } - }'` - case $win32_nmres in - import*) win32_libid_type="x86 archive import";; - *) win32_libid_type="x86 archive static";; - esac - fi - ;; - *DLL*) - win32_libid_type="x86 DLL" - ;; - *executable*) # but shell scripts are "executable" too... - case $win32_fileres in - *MS\ Windows\ PE\ Intel*) - win32_libid_type="x86 DLL" - ;; - esac - ;; - esac - $echo $win32_libid_type -} - - -# func_infer_tag arg -# Infer tagged configuration to use if any are available and -# if one wasn't chosen via the "--tag" command line option. -# Only attempt this if the compiler in the base compile -# command doesn't match the default compiler. -# arg is usually of the form 'gcc ...' -func_infer_tag () -{ - if test -n "$available_tags" && test -z "$tagname"; then - CC_quoted= - for arg in $CC; do - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - arg="\"$arg\"" - ;; - esac - CC_quoted="$CC_quoted $arg" - done - case $@ in - # Blanks in the command may have been stripped by the calling shell, - # but not from the CC environment variable when configure was run. - " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;; - # Blanks at the start of $base_compile will cause this to fail - # if we don't check for them as well. - *) - for z in $available_tags; do - if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then - # Evaluate the configuration. - eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" - CC_quoted= - for arg in $CC; do - # Double-quote args containing other shell metacharacters. - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - arg="\"$arg\"" - ;; - esac - CC_quoted="$CC_quoted $arg" - done - case "$@ " in - " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) - # The compiler in the base compile command matches - # the one in the tagged configuration. - # Assume this is the tagged configuration we want. - tagname=$z - break - ;; - esac - fi - done - # If $tagname still isn't set, then no tagged configuration - # was found and let the user know that the "--tag" command - # line option must be used. - if test -z "$tagname"; then - $echo "$modename: unable to infer tagged configuration" - $echo "$modename: specify a tag with \`--tag'" 1>&2 - exit $EXIT_FAILURE -# else -# $echo "$modename: using $tagname tagged configuration" - fi - ;; - esac - fi -} - - -# func_extract_an_archive dir oldlib -func_extract_an_archive () -{ - f_ex_an_ar_dir="$1"; shift - f_ex_an_ar_oldlib="$1" - - $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)" - $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $? - if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then - : - else - $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2 - exit $EXIT_FAILURE - fi -} - -# func_extract_archives gentop oldlib ... -func_extract_archives () -{ - my_gentop="$1"; shift - my_oldlibs=${1+"$@"} - my_oldobjs="" - my_xlib="" - my_xabs="" - my_xdir="" - my_status="" - - $show "${rm}r $my_gentop" - $run ${rm}r "$my_gentop" - $show "$mkdir $my_gentop" - $run $mkdir "$my_gentop" - my_status=$? - if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then - exit $my_status - fi - - for my_xlib in $my_oldlibs; do - # Extract the objects. - case $my_xlib in - [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; - *) my_xabs=`pwd`"/$my_xlib" ;; - esac - my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` - my_xlib_u=$my_xlib - while :; do - case " $extracted_archives " in - *" $my_xlib_u "*) - extracted_serial=`expr $extracted_serial + 1` - my_xlib_u=lt$extracted_serial-$my_xlib ;; - *) break ;; - esac - done - extracted_archives="$extracted_archives $my_xlib_u" - my_xdir="$my_gentop/$my_xlib_u" - - $show "${rm}r $my_xdir" - $run ${rm}r "$my_xdir" - $show "$mkdir $my_xdir" - $run $mkdir "$my_xdir" - exit_status=$? - if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then - exit $exit_status - fi - case $host in - *-darwin*) - $show "Extracting $my_xabs" - # Do not bother doing anything if just a dry run - if test -z "$run"; then - darwin_orig_dir=`pwd` - cd $my_xdir || exit $? - darwin_archive=$my_xabs - darwin_curdir=`pwd` - darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'` - darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null` - if test -n "$darwin_arches"; then - darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'` - darwin_arch= - $show "$darwin_base_archive has multiple architectures $darwin_arches" - for darwin_arch in $darwin_arches ; do - mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}" - lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" - cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" - func_extract_an_archive "`pwd`" "${darwin_base_archive}" - cd "$darwin_curdir" - $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" - done # $darwin_arches - ## Okay now we have a bunch of thin objects, gotta fatten them up :) - darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP` - darwin_file= - darwin_files= - for darwin_file in $darwin_filelist; do - darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` - lipo -create -output "$darwin_file" $darwin_files - done # $darwin_filelist - ${rm}r unfat-$$ - cd "$darwin_orig_dir" - else - cd "$darwin_orig_dir" - func_extract_an_archive "$my_xdir" "$my_xabs" - fi # $darwin_arches - fi # $run - ;; - *) - func_extract_an_archive "$my_xdir" "$my_xabs" - ;; - esac - my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` - done - func_extract_archives_result="$my_oldobjs" -} -# End of Shell function definitions -##################################### - -# Darwin sucks -eval std_shrext=\"$shrext_cmds\" - -disable_libs=no - -# Parse our command line options once, thoroughly. -while test "$#" -gt 0 -do - arg="$1" - shift - - case $arg in - -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; - *) optarg= ;; - esac - - # If the previous option needs an argument, assign it. - if test -n "$prev"; then - case $prev in - execute_dlfiles) - execute_dlfiles="$execute_dlfiles $arg" - ;; - tag) - tagname="$arg" - preserve_args="${preserve_args}=$arg" - - # Check whether tagname contains only valid characters - case $tagname in - *[!-_A-Za-z0-9,/]*) - $echo "$progname: invalid tag name: $tagname" 1>&2 - exit $EXIT_FAILURE - ;; - esac - - case $tagname in - CC) - # Don't test for the "default" C tag, as we know, it's there, but - # not specially marked. - ;; - *) - if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then - taglist="$taglist $tagname" - # Evaluate the configuration. - eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`" - else - $echo "$progname: ignoring unknown tag $tagname" 1>&2 - fi - ;; - esac - ;; - *) - eval "$prev=\$arg" - ;; - esac - - prev= - prevopt= - continue - fi - - # Have we seen a non-optional argument yet? - case $arg in - --help) - show_help=yes - ;; - - --version) - echo "\ -$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP - -Copyright (C) 2007 Free Software Foundation, Inc. -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - exit $? - ;; - - --config) - ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath - # Now print the configurations for the tags. - for tagname in $taglist; do - ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath" - done - exit $? - ;; - - --debug) - $echo "$progname: enabling shell trace mode" - set -x - preserve_args="$preserve_args $arg" - ;; - - --dry-run | -n) - run=: - ;; - - --features) - $echo "host: $host" - if test "$build_libtool_libs" = yes; then - $echo "enable shared libraries" - else - $echo "disable shared libraries" - fi - if test "$build_old_libs" = yes; then - $echo "enable static libraries" - else - $echo "disable static libraries" - fi - exit $? - ;; - - --finish) mode="finish" ;; - - --mode) prevopt="--mode" prev=mode ;; - --mode=*) mode="$optarg" ;; - - --preserve-dup-deps) duplicate_deps="yes" ;; - - --quiet | --silent) - show=: - preserve_args="$preserve_args $arg" - ;; - - --tag) - prevopt="--tag" - prev=tag - preserve_args="$preserve_args --tag" - ;; - --tag=*) - set tag "$optarg" ${1+"$@"} - shift - prev=tag - preserve_args="$preserve_args --tag" - ;; - - -dlopen) - prevopt="-dlopen" - prev=execute_dlfiles - ;; - - -*) - $echo "$modename: unrecognized option \`$arg'" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - ;; - - *) - nonopt="$arg" - break - ;; - esac -done - -if test -n "$prevopt"; then - $echo "$modename: option \`$prevopt' requires an argument" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE -fi - -case $disable_libs in -no) - ;; -shared) - build_libtool_libs=no - build_old_libs=yes - ;; -static) - build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` - ;; -esac - -# If this variable is set in any of the actions, the command in it -# will be execed at the end. This prevents here-documents from being -# left over by shells. -exec_cmd= - -if test -z "$show_help"; then - - # Infer the operation mode. - if test -z "$mode"; then - $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2 - $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2 - case $nonopt in - *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*) - mode=link - for arg - do - case $arg in - -c) - mode=compile - break - ;; - esac - done - ;; - *db | *dbx | *strace | *truss) - mode=execute - ;; - *install*|cp|mv) - mode=install - ;; - *rm) - mode=uninstall - ;; - *) - # If we have no mode, but dlfiles were specified, then do execute mode. - test -n "$execute_dlfiles" && mode=execute - - # Just use the default operation mode. - if test -z "$mode"; then - if test -n "$nonopt"; then - $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 - else - $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 - fi - fi - ;; - esac - fi - - # Only execute mode is allowed to have -dlopen flags. - if test -n "$execute_dlfiles" && test "$mode" != execute; then - $echo "$modename: unrecognized option \`-dlopen'" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - fi - - # Change the help message to a mode-specific one. - generic_help="$help" - help="Try \`$modename --help --mode=$mode' for more information." - - # These modes are in order of execution frequency so that they run quickly. - case $mode in - # libtool compile mode - compile) - modename="$modename: compile" - # Get the compilation command and the source file. - base_compile= - srcfile="$nonopt" # always keep a non-empty value in "srcfile" - suppress_opt=yes - suppress_output= - arg_mode=normal - libobj= - later= - - for arg - do - case $arg_mode in - arg ) - # do not "continue". Instead, add this to base_compile - lastarg="$arg" - arg_mode=normal - ;; - - target ) - libobj="$arg" - arg_mode=normal - continue - ;; - - normal ) - # Accept any command-line options. - case $arg in - -o) - if test -n "$libobj" ; then - $echo "$modename: you cannot specify \`-o' more than once" 1>&2 - exit $EXIT_FAILURE - fi - arg_mode=target - continue - ;; - - -static | -prefer-pic | -prefer-non-pic) - later="$later $arg" - continue - ;; - - -no-suppress) - suppress_opt=no - continue - ;; - - -Xcompiler) - arg_mode=arg # the next one goes into the "base_compile" arg list - continue # The current "srcfile" will either be retained or - ;; # replaced later. I would guess that would be a bug. - - -Wc,*) - args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` - lastarg= - save_ifs="$IFS"; IFS=',' - for arg in $args; do - IFS="$save_ifs" - - # Double-quote args containing other shell metacharacters. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - arg="\"$arg\"" - ;; - esac - lastarg="$lastarg $arg" - done - IFS="$save_ifs" - lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` - - # Add the arguments to base_compile. - base_compile="$base_compile $lastarg" - continue - ;; - - * ) - # Accept the current argument as the source file. - # The previous "srcfile" becomes the current argument. - # - lastarg="$srcfile" - srcfile="$arg" - ;; - esac # case $arg - ;; - esac # case $arg_mode - - # Aesthetically quote the previous argument. - lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` - - case $lastarg in - # Double-quote args containing other shell metacharacters. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, and some SunOS ksh mistreat backslash-escaping - # in scan sets (worked around with variable expansion), - # and furthermore cannot handle '|' '&' '(' ')' in scan sets - # at all, so we specify them separately. - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - lastarg="\"$lastarg\"" - ;; - esac - - base_compile="$base_compile $lastarg" - done # for arg - - case $arg_mode in - arg) - $echo "$modename: you must specify an argument for -Xcompile" - exit $EXIT_FAILURE - ;; - target) - $echo "$modename: you must specify a target with \`-o'" 1>&2 - exit $EXIT_FAILURE - ;; - *) - # Get the name of the library object. - [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` - ;; - esac - - # Recognize several different file suffixes. - # If the user specifies -o file.o, it is replaced with file.lo - xform='[cCFSifmso]' - case $libobj in - *.ada) xform=ada ;; - *.adb) xform=adb ;; - *.ads) xform=ads ;; - *.asm) xform=asm ;; - *.c++) xform=c++ ;; - *.cc) xform=cc ;; - *.ii) xform=ii ;; - *.class) xform=class ;; - *.cpp) xform=cpp ;; - *.cxx) xform=cxx ;; - *.[fF][09]?) xform=[fF][09]. ;; - *.for) xform=for ;; - *.java) xform=java ;; - *.obj) xform=obj ;; - esac - - libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` - - case $libobj in - *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; - *) - $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 - exit $EXIT_FAILURE - ;; - esac - - func_infer_tag $base_compile - - for arg in $later; do - case $arg in - -static) - build_old_libs=yes - continue - ;; - - -prefer-pic) - pic_mode=yes - continue - ;; - - -prefer-non-pic) - pic_mode=no - continue - ;; - esac - done - - qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"` - case $qlibobj in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - qlibobj="\"$qlibobj\"" ;; - esac - test "X$libobj" != "X$qlibobj" \ - && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' &()|`$[]' \ - && $echo "$modename: libobj name \`$libobj' may not contain shell special characters." - objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` - xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` - if test "X$xdir" = "X$obj"; then - xdir= - else - xdir=$xdir/ - fi - lobj=${xdir}$objdir/$objname - - if test -z "$base_compile"; then - $echo "$modename: you must specify a compilation command" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - fi - - # Delete any leftover library objects. - if test "$build_old_libs" = yes; then - removelist="$obj $lobj $libobj ${libobj}T" - else - removelist="$lobj $libobj ${libobj}T" - fi - - $run $rm $removelist - trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 - - # On Cygwin there's no "real" PIC flag so we must build both object types - case $host_os in - cygwin* | mingw* | pw32* | os2*) - pic_mode=default - ;; - esac - if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then - # non-PIC code in shared libraries is not supported - pic_mode=default - fi - - # Calculate the filename of the output object if compiler does - # not support -o with -c - if test "$compiler_c_o" = no; then - output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} - lockfile="$output_obj.lock" - removelist="$removelist $output_obj $lockfile" - trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 - else - output_obj= - need_locks=no - lockfile= - fi - - # Lock this critical section if it is needed - # We use this script file to make the link, it avoids creating a new file - if test "$need_locks" = yes; then - until $run ln "$progpath" "$lockfile" 2>/dev/null; do - $show "Waiting for $lockfile to be removed" - sleep 2 - done - elif test "$need_locks" = warn; then - if test -f "$lockfile"; then - $echo "\ -*** ERROR, $lockfile exists and contains: -`cat $lockfile 2>/dev/null` - -This indicates that another process is trying to use the same -temporary object file, and libtool could not work around it because -your compiler does not support \`-c' and \`-o' together. If you -repeat this compilation, it may succeed, by chance, but you had better -avoid parallel builds (make -j) in this platform, or get a better -compiler." - - $run $rm $removelist - exit $EXIT_FAILURE - fi - $echo "$srcfile" > "$lockfile" - fi - - if test -n "$fix_srcfile_path"; then - eval srcfile=\"$fix_srcfile_path\" - fi - qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"` - case $qsrcfile in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - qsrcfile="\"$qsrcfile\"" ;; - esac - - $run $rm "$libobj" "${libobj}T" - - # Create a libtool object file (analogous to a ".la" file), - # but don't create it if we're doing a dry run. - test -z "$run" && cat > ${libobj}T <<EOF -# $libobj - a libtool object file -# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP -# -# Please DO NOT delete this file! -# It is necessary for linking the library. - -# Name of the PIC object. -EOF - - # Only build a PIC object if we are building libtool libraries. - if test "$build_libtool_libs" = yes; then - # Without this assignment, base_compile gets emptied. - fbsd_hideous_sh_bug=$base_compile - - if test "$pic_mode" != no; then - command="$base_compile $qsrcfile $pic_flag" - else - # Don't build PIC code - command="$base_compile $qsrcfile" - fi - - if test ! -d "${xdir}$objdir"; then - $show "$mkdir ${xdir}$objdir" - $run $mkdir ${xdir}$objdir - exit_status=$? - if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then - exit $exit_status - fi - fi - - if test -z "$output_obj"; then - # Place PIC objects in $objdir - command="$command -o $lobj" - fi - - $run $rm "$lobj" "$output_obj" - - $show "$command" - if $run eval "$command"; then : - else - test -n "$output_obj" && $run $rm $removelist - exit $EXIT_FAILURE - fi - - if test "$need_locks" = warn && - test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then - $echo "\ -*** ERROR, $lockfile contains: -`cat $lockfile 2>/dev/null` - -but it should contain: -$srcfile - -This indicates that another process is trying to use the same -temporary object file, and libtool could not work around it because -your compiler does not support \`-c' and \`-o' together. If you -repeat this compilation, it may succeed, by chance, but you had better -avoid parallel builds (make -j) in this platform, or get a better -compiler." - - $run $rm $removelist - exit $EXIT_FAILURE - fi - - # Just move the object if needed, then go on to compile the next one - if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then - $show "$mv $output_obj $lobj" - if $run $mv $output_obj $lobj; then : - else - error=$? - $run $rm $removelist - exit $error - fi - fi - - # Append the name of the PIC object to the libtool object file. - test -z "$run" && cat >> ${libobj}T <<EOF -pic_object='$objdir/$objname' - -EOF - - # Allow error messages only from the first compilation. - if test "$suppress_opt" = yes; then - suppress_output=' >/dev/null 2>&1' - fi - else - # No PIC object so indicate it doesn't exist in the libtool - # object file. - test -z "$run" && cat >> ${libobj}T <<EOF -pic_object=none - -EOF - fi - - # Only build a position-dependent object if we build old libraries. - if test "$build_old_libs" = yes; then - if test "$pic_mode" != yes; then - # Don't build PIC code - command="$base_compile $qsrcfile" - else - command="$base_compile $qsrcfile $pic_flag" - fi - if test "$compiler_c_o" = yes; then - command="$command -o $obj" - fi - - # Suppress compiler output if we already did a PIC compilation. - command="$command$suppress_output" - $run $rm "$obj" "$output_obj" - $show "$command" - if $run eval "$command"; then : - else - $run $rm $removelist - exit $EXIT_FAILURE - fi - - if test "$need_locks" = warn && - test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then - $echo "\ -*** ERROR, $lockfile contains: -`cat $lockfile 2>/dev/null` - -but it should contain: -$srcfile - -This indicates that another process is trying to use the same -temporary object file, and libtool could not work around it because -your compiler does not support \`-c' and \`-o' together. If you -repeat this compilation, it may succeed, by chance, but you had better -avoid parallel builds (make -j) in this platform, or get a better -compiler." - - $run $rm $removelist - exit $EXIT_FAILURE - fi - - # Just move the object if needed - if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then - $show "$mv $output_obj $obj" - if $run $mv $output_obj $obj; then : - else - error=$? - $run $rm $removelist - exit $error - fi - fi - - # Append the name of the non-PIC object the libtool object file. - # Only append if the libtool object file exists. - test -z "$run" && cat >> ${libobj}T <<EOF -# Name of the non-PIC object. -non_pic_object='$objname' - -EOF - else - # Append the name of the non-PIC object the libtool object file. - # Only append if the libtool object file exists. - test -z "$run" && cat >> ${libobj}T <<EOF -# Name of the non-PIC object. -non_pic_object=none - -EOF - fi - - $run $mv "${libobj}T" "${libobj}" - - # Unlock the critical section if it was locked - if test "$need_locks" != no; then - $run $rm "$lockfile" - fi - - exit $EXIT_SUCCESS - ;; - - # libtool link mode - link | relink) - modename="$modename: link" - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) - # It is impossible to link a dll without this setting, and - # we shouldn't force the makefile maintainer to figure out - # which system we are compiling for in order to pass an extra - # flag for every libtool invocation. - # allow_undefined=no - - # FIXME: Unfortunately, there are problems with the above when trying - # to make a dll which has undefined symbols, in which case not - # even a static library is built. For now, we need to specify - # -no-undefined on the libtool link line when we can be certain - # that all symbols are satisfied, otherwise we get a static library. - allow_undefined=yes - ;; - *) - allow_undefined=yes - ;; - esac - libtool_args="$nonopt" - base_compile="$nonopt $@" - compile_command="$nonopt" - finalize_command="$nonopt" - - compile_rpath= - finalize_rpath= - compile_shlibpath= - finalize_shlibpath= - convenience= - old_convenience= - deplibs= - old_deplibs= - compiler_flags= - linker_flags= - dllsearchpath= - lib_search_path=`pwd` - inst_prefix_dir= - - avoid_version=no - dlfiles= - dlprefiles= - dlself=no - export_dynamic=no - export_symbols= - export_symbols_regex= - generated= - libobjs= - ltlibs= - module=no - no_install=no - objs= - non_pic_objects= - notinst_path= # paths that contain not-installed libtool libraries - precious_files_regex= - prefer_static_libs=no - preload=no - prev= - prevarg= - release= - rpath= - xrpath= - perm_rpath= - temp_rpath= - thread_safe=no - vinfo= - vinfo_number=no - - func_infer_tag $base_compile - - # We need to know -static, to get the right output filenames. - for arg - do - case $arg in - -all-static | -static | -static-libtool-libs) - case $arg in - -all-static) - if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then - $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2 - fi - if test -n "$link_static_flag"; then - dlopen_self=$dlopen_self_static - fi - prefer_static_libs=yes - ;; - -static) - if test -z "$pic_flag" && test -n "$link_static_flag"; then - dlopen_self=$dlopen_self_static - fi - prefer_static_libs=built - ;; - -static-libtool-libs) - if test -z "$pic_flag" && test -n "$link_static_flag"; then - dlopen_self=$dlopen_self_static - fi - prefer_static_libs=yes - ;; - esac - build_libtool_libs=no - build_old_libs=yes - break - ;; - esac - done - - # See if our shared archives depend on static archives. - test -n "$old_archive_from_new_cmds" && build_old_libs=yes - - # Go through the arguments, transforming them on the way. - while test "$#" -gt 0; do - arg="$1" - shift - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test - ;; - *) qarg=$arg ;; - esac - libtool_args="$libtool_args $qarg" - - # If the previous option needs an argument, assign it. - if test -n "$prev"; then - case $prev in - output) - compile_command="$compile_command @OUTPUT@" - finalize_command="$finalize_command @OUTPUT@" - ;; - esac - - case $prev in - dlfiles|dlprefiles) - if test "$preload" = no; then - # Add the symbol object into the linking commands. - compile_command="$compile_command @SYMFILE@" - finalize_command="$finalize_command @SYMFILE@" - preload=yes - fi - case $arg in - *.la | *.lo) ;; # We handle these cases below. - force) - if test "$dlself" = no; then - dlself=needless - export_dynamic=yes - fi - prev= - continue - ;; - self) - if test "$prev" = dlprefiles; then - dlself=yes - elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then - dlself=yes - else - dlself=needless - export_dynamic=yes - fi - prev= - continue - ;; - *) - if test "$prev" = dlfiles; then - dlfiles="$dlfiles $arg" - else - dlprefiles="$dlprefiles $arg" - fi - prev= - continue - ;; - esac - ;; - expsyms) - export_symbols="$arg" - if test ! -f "$arg"; then - $echo "$modename: symbol file \`$arg' does not exist" - exit $EXIT_FAILURE - fi - prev= - continue - ;; - expsyms_regex) - export_symbols_regex="$arg" - prev= - continue - ;; - inst_prefix) - inst_prefix_dir="$arg" - prev= - continue - ;; - precious_regex) - precious_files_regex="$arg" - prev= - continue - ;; - release) - release="-$arg" - prev= - continue - ;; - objectlist) - if test -f "$arg"; then - save_arg=$arg - moreargs= - for fil in `cat $save_arg` - do -# moreargs="$moreargs $fil" - arg=$fil - # A libtool-controlled object. - - # Check to see that this really is a libtool object. - if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then - pic_object= - non_pic_object= - - # Read the .lo file - # If there is no directory component, then add one. - case $arg in - */* | *\\*) . $arg ;; - *) . ./$arg ;; - esac - - if test -z "$pic_object" || \ - test -z "$non_pic_object" || - test "$pic_object" = none && \ - test "$non_pic_object" = none; then - $echo "$modename: cannot find name of object for \`$arg'" 1>&2 - exit $EXIT_FAILURE - fi - - # Extract subdirectory from the argument. - xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` - if test "X$xdir" = "X$arg"; then - xdir= - else - xdir="$xdir/" - fi - - if test "$pic_object" != none; then - # Prepend the subdirectory the object is found in. - pic_object="$xdir$pic_object" - - if test "$prev" = dlfiles; then - if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then - dlfiles="$dlfiles $pic_object" - prev= - continue - else - # If libtool objects are unsupported, then we need to preload. - prev=dlprefiles - fi - fi - - # CHECK ME: I think I busted this. -Ossama - if test "$prev" = dlprefiles; then - # Preload the old-style object. - dlprefiles="$dlprefiles $pic_object" - prev= - fi - - # A PIC object. - libobjs="$libobjs $pic_object" - arg="$pic_object" - fi - - # Non-PIC object. - if test "$non_pic_object" != none; then - # Prepend the subdirectory the object is found in. - non_pic_object="$xdir$non_pic_object" - - # A standard non-PIC object - non_pic_objects="$non_pic_objects $non_pic_object" - if test -z "$pic_object" || test "$pic_object" = none ; then - arg="$non_pic_object" - fi - else - # If the PIC object exists, use it instead. - # $xdir was prepended to $pic_object above. - non_pic_object="$pic_object" - non_pic_objects="$non_pic_objects $non_pic_object" - fi - else - # Only an error if not doing a dry-run. - if test -z "$run"; then - $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 - exit $EXIT_FAILURE - else - # Dry-run case. - - # Extract subdirectory from the argument. - xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` - if test "X$xdir" = "X$arg"; then - xdir= - else - xdir="$xdir/" - fi - - pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` - non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` - libobjs="$libobjs $pic_object" - non_pic_objects="$non_pic_objects $non_pic_object" - fi - fi - done - else - $echo "$modename: link input file \`$save_arg' does not exist" - exit $EXIT_FAILURE - fi - arg=$save_arg - prev= - continue - ;; - rpath | xrpath) - # We need an absolute path. - case $arg in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - $echo "$modename: only absolute run-paths are allowed" 1>&2 - exit $EXIT_FAILURE - ;; - esac - if test "$prev" = rpath; then - case "$rpath " in - *" $arg "*) ;; - *) rpath="$rpath $arg" ;; - esac - else - case "$xrpath " in - *" $arg "*) ;; - *) xrpath="$xrpath $arg" ;; - esac - fi - prev= - continue - ;; - xcompiler) - compiler_flags="$compiler_flags $qarg" - prev= - compile_command="$compile_command $qarg" - finalize_command="$finalize_command $qarg" - continue - ;; - xlinker) - linker_flags="$linker_flags $qarg" - compiler_flags="$compiler_flags $wl$qarg" - prev= - compile_command="$compile_command $wl$qarg" - finalize_command="$finalize_command $wl$qarg" - continue - ;; - xcclinker) - linker_flags="$linker_flags $qarg" - compiler_flags="$compiler_flags $qarg" - prev= - compile_command="$compile_command $qarg" - finalize_command="$finalize_command $qarg" - continue - ;; - shrext) - shrext_cmds="$arg" - prev= - continue - ;; - darwin_framework|darwin_framework_skip) - test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg" - compile_command="$compile_command $arg" - finalize_command="$finalize_command $arg" - prev= - continue - ;; - *) - eval "$prev=\"\$arg\"" - prev= - continue - ;; - esac - fi # test -n "$prev" - - prevarg="$arg" - - case $arg in - -all-static) - if test -n "$link_static_flag"; then - compile_command="$compile_command $link_static_flag" - finalize_command="$finalize_command $link_static_flag" - fi - continue - ;; - - -allow-undefined) - # FIXME: remove this flag sometime in the future. - $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 - continue - ;; - - -avoid-version) - avoid_version=yes - continue - ;; - - -dlopen) - prev=dlfiles - continue - ;; - - -dlpreopen) - prev=dlprefiles - continue - ;; - - -export-dynamic) - export_dynamic=yes - continue - ;; - - -export-symbols | -export-symbols-regex) - if test -n "$export_symbols" || test -n "$export_symbols_regex"; then - $echo "$modename: more than one -exported-symbols argument is not allowed" - exit $EXIT_FAILURE - fi - if test "X$arg" = "X-export-symbols"; then - prev=expsyms - else - prev=expsyms_regex - fi - continue - ;; - - -framework|-arch|-isysroot) - case " $CC " in - *" ${arg} ${1} "* | *" ${arg} ${1} "*) - prev=darwin_framework_skip ;; - *) compiler_flags="$compiler_flags $arg" - prev=darwin_framework ;; - esac - compile_command="$compile_command $arg" - finalize_command="$finalize_command $arg" - continue - ;; - - -inst-prefix-dir) - prev=inst_prefix - continue - ;; - - # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* - # so, if we see these flags be careful not to treat them like -L - -L[A-Z][A-Z]*:*) - case $with_gcc/$host in - no/*-*-irix* | /*-*-irix*) - compile_command="$compile_command $arg" - finalize_command="$finalize_command $arg" - ;; - esac - continue - ;; - - -L*) - dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - absdir=`cd "$dir" && pwd` - if test -z "$absdir"; then - $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 - absdir="$dir" - notinst_path="$notinst_path $dir" - fi - dir="$absdir" - ;; - esac - case "$deplibs " in - *" -L$dir "*) ;; - *) - deplibs="$deplibs -L$dir" - lib_search_path="$lib_search_path $dir" - ;; - esac - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) - testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'` - case :$dllsearchpath: in - *":$dir:"*) ;; - *) dllsearchpath="$dllsearchpath:$dir";; - esac - case :$dllsearchpath: in - *":$testbindir:"*) ;; - *) dllsearchpath="$dllsearchpath:$testbindir";; - esac - ;; - esac - continue - ;; - - -l*) - if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*) - # These systems don't actually have a C or math library (as such) - continue - ;; - *-*-os2*) - # These systems don't actually have a C library (as such) - test "X$arg" = "X-lc" && continue - ;; - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) - # Do not include libc due to us having libc/libc_r. - test "X$arg" = "X-lc" && continue - ;; - *-*-rhapsody* | *-*-darwin1.[012]) - # Rhapsody C and math libraries are in the System framework - deplibs="$deplibs -framework System" - continue - ;; - *-*-sco3.2v5* | *-*-sco5v6*) - # Causes problems with __ctype - test "X$arg" = "X-lc" && continue - ;; - *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) - # Compiler inserts libc in the correct place for threads to work - test "X$arg" = "X-lc" && continue - ;; - esac - elif test "X$arg" = "X-lc_r"; then - case $host in - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) - # Do not include libc_r directly, use -pthread flag. - continue - ;; - esac - fi - deplibs="$deplibs $arg" - continue - ;; - - # Tru64 UNIX uses -model [arg] to determine the layout of C++ - # classes, name mangling, and exception handling. - -model) - compile_command="$compile_command $arg" - compiler_flags="$compiler_flags $arg" - finalize_command="$finalize_command $arg" - prev=xcompiler - continue - ;; - - -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) - compiler_flags="$compiler_flags $arg" - compile_command="$compile_command $arg" - finalize_command="$finalize_command $arg" - continue - ;; - - -module) - module=yes - continue - ;; - - # -64, -mips[0-9] enable 64-bit mode on the SGI compiler - # -r[0-9][0-9]* specifies the processor on the SGI compiler - # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler - # +DA*, +DD* enable 64-bit mode on the HP compiler - # -q* pass through compiler args for the IBM compiler - # -m* pass through architecture-specific compiler args for GCC - # -m*, -t[45]*, -txscale* pass through architecture-specific - # compiler args for GCC - # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC - # -F/path gives path to uninstalled frameworks, gcc on darwin - # @file GCC response files - -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ - -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) - - # Unknown arguments in both finalize_command and compile_command need - # to be aesthetically quoted because they are evaled later. - arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - arg="\"$arg\"" - ;; - esac - compile_command="$compile_command $arg" - finalize_command="$finalize_command $arg" - compiler_flags="$compiler_flags $arg" - continue - ;; - - -shrext) - prev=shrext - continue - ;; - - -no-fast-install) - fast_install=no - continue - ;; - - -no-install) - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin*) - # The PATH hackery in wrapper scripts is required on Windows - # and Darwin in order for the loader to find any dlls it needs. - $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 - $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 - fast_install=no - ;; - *) no_install=yes ;; - esac - continue - ;; - - -no-undefined) - allow_undefined=no - continue - ;; - - -objectlist) - prev=objectlist - continue - ;; - - -o) prev=output ;; - - -precious-files-regex) - prev=precious_regex - continue - ;; - - -release) - prev=release - continue - ;; - - -rpath) - prev=rpath - continue - ;; - - -R) - prev=xrpath - continue - ;; - - -R*) - dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - $echo "$modename: only absolute run-paths are allowed" 1>&2 - exit $EXIT_FAILURE - ;; - esac - case "$xrpath " in - *" $dir "*) ;; - *) xrpath="$xrpath $dir" ;; - esac - continue - ;; - - -static | -static-libtool-libs) - # The effects of -static are defined in a previous loop. - # We used to do the same as -all-static on platforms that - # didn't have a PIC flag, but the assumption that the effects - # would be equivalent was wrong. It would break on at least - # Digital Unix and AIX. - continue - ;; - - -thread-safe) - thread_safe=yes - continue - ;; - - -version-info) - prev=vinfo - continue - ;; - -version-number) - prev=vinfo - vinfo_number=yes - continue - ;; - - -Wc,*) - args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` - arg= - save_ifs="$IFS"; IFS=',' - for flag in $args; do - IFS="$save_ifs" - case $flag in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - flag="\"$flag\"" - ;; - esac - arg="$arg $wl$flag" - compiler_flags="$compiler_flags $flag" - done - IFS="$save_ifs" - arg=`$echo "X$arg" | $Xsed -e "s/^ //"` - ;; - - -Wl,*) - args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` - arg= - save_ifs="$IFS"; IFS=',' - for flag in $args; do - IFS="$save_ifs" - case $flag in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - flag="\"$flag\"" - ;; - esac - arg="$arg $wl$flag" - compiler_flags="$compiler_flags $wl$flag" - linker_flags="$linker_flags $flag" - done - IFS="$save_ifs" - arg=`$echo "X$arg" | $Xsed -e "s/^ //"` - ;; - - -Xcompiler) - prev=xcompiler - continue - ;; - - -Xlinker) - prev=xlinker - continue - ;; - - -XCClinker) - prev=xcclinker - continue - ;; - - # Some other compiler flag. - -* | +*) - # Unknown arguments in both finalize_command and compile_command need - # to be aesthetically quoted because they are evaled later. - arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - arg="\"$arg\"" - ;; - esac - ;; - - *.$objext) - # A standard object. - objs="$objs $arg" - ;; - - *.lo) - # A libtool-controlled object. - - # Check to see that this really is a libtool object. - if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then - pic_object= - non_pic_object= - - # Read the .lo file - # If there is no directory component, then add one. - case $arg in - */* | *\\*) . $arg ;; - *) . ./$arg ;; - esac - - if test -z "$pic_object" || \ - test -z "$non_pic_object" || - test "$pic_object" = none && \ - test "$non_pic_object" = none; then - $echo "$modename: cannot find name of object for \`$arg'" 1>&2 - exit $EXIT_FAILURE - fi - - # Extract subdirectory from the argument. - xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` - if test "X$xdir" = "X$arg"; then - xdir= - else - xdir="$xdir/" - fi - - if test "$pic_object" != none; then - # Prepend the subdirectory the object is found in. - pic_object="$xdir$pic_object" - - if test "$prev" = dlfiles; then - if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then - dlfiles="$dlfiles $pic_object" - prev= - continue - else - # If libtool objects are unsupported, then we need to preload. - prev=dlprefiles - fi - fi - - # CHECK ME: I think I busted this. -Ossama - if test "$prev" = dlprefiles; then - # Preload the old-style object. - dlprefiles="$dlprefiles $pic_object" - prev= - fi - - # A PIC object. - libobjs="$libobjs $pic_object" - arg="$pic_object" - fi - - # Non-PIC object. - if test "$non_pic_object" != none; then - # Prepend the subdirectory the object is found in. - non_pic_object="$xdir$non_pic_object" - - # A standard non-PIC object - non_pic_objects="$non_pic_objects $non_pic_object" - if test -z "$pic_object" || test "$pic_object" = none ; then - arg="$non_pic_object" - fi - else - # If the PIC object exists, use it instead. - # $xdir was prepended to $pic_object above. - non_pic_object="$pic_object" - non_pic_objects="$non_pic_objects $non_pic_object" - fi - else - # Only an error if not doing a dry-run. - if test -z "$run"; then - $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 - exit $EXIT_FAILURE - else - # Dry-run case. - - # Extract subdirectory from the argument. - xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` - if test "X$xdir" = "X$arg"; then - xdir= - else - xdir="$xdir/" - fi - - pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` - non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` - libobjs="$libobjs $pic_object" - non_pic_objects="$non_pic_objects $non_pic_object" - fi - fi - ;; - - *.$libext) - # An archive. - deplibs="$deplibs $arg" - old_deplibs="$old_deplibs $arg" - continue - ;; - - *.la) - # A libtool-controlled library. - - if test "$prev" = dlfiles; then - # This library was specified with -dlopen. - dlfiles="$dlfiles $arg" - prev= - elif test "$prev" = dlprefiles; then - # The library was specified with -dlpreopen. - dlprefiles="$dlprefiles $arg" - prev= - else - deplibs="$deplibs $arg" - fi - continue - ;; - - # Some other compiler argument. - *) - # Unknown arguments in both finalize_command and compile_command need - # to be aesthetically quoted because they are evaled later. - arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - arg="\"$arg\"" - ;; - esac - ;; - esac # arg - - # Now actually substitute the argument into the commands. - if test -n "$arg"; then - compile_command="$compile_command $arg" - finalize_command="$finalize_command $arg" - fi - done # argument parsing loop - - if test -n "$prev"; then - $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - fi - - if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then - eval arg=\"$export_dynamic_flag_spec\" - compile_command="$compile_command $arg" - finalize_command="$finalize_command $arg" - fi - - oldlibs= - # calculate the name of the file, without its directory - outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` - libobjs_save="$libobjs" - - if test -n "$shlibpath_var"; then - # get the directories listed in $shlibpath_var - eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` - else - shlib_search_path= - fi - eval sys_lib_search_path=\"$sys_lib_search_path_spec\" - eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" - - output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` - if test "X$output_objdir" = "X$output"; then - output_objdir="$objdir" - else - output_objdir="$output_objdir/$objdir" - fi - # Create the object directory. - if test ! -d "$output_objdir"; then - $show "$mkdir $output_objdir" - $run $mkdir $output_objdir - exit_status=$? - if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then - exit $exit_status - fi - fi - - # Determine the type of output - case $output in - "") - $echo "$modename: you must specify an output file" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - ;; - *.$libext) linkmode=oldlib ;; - *.lo | *.$objext) linkmode=obj ;; - *.la) linkmode=lib ;; - *) linkmode=prog ;; # Anything else should be a program. - esac - - case $host in - *cygwin* | *mingw* | *pw32*) - # don't eliminate duplications in $postdeps and $predeps - duplicate_compiler_generated_deps=yes - ;; - *) - duplicate_compiler_generated_deps=$duplicate_deps - ;; - esac - specialdeplibs= - - libs= - # Find all interdependent deplibs by searching for libraries - # that are linked more than once (e.g. -la -lb -la) - for deplib in $deplibs; do - if test "X$duplicate_deps" = "Xyes" ; then - case "$libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; - esac - fi - libs="$libs $deplib" - done - - if test "$linkmode" = lib; then - libs="$predeps $libs $compiler_lib_search_path $postdeps" - - # Compute libraries that are listed more than once in $predeps - # $postdeps and mark them as special (i.e., whose duplicates are - # not to be eliminated). - pre_post_deps= - if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then - for pre_post_dep in $predeps $postdeps; do - case "$pre_post_deps " in - *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; - esac - pre_post_deps="$pre_post_deps $pre_post_dep" - done - fi - pre_post_deps= - fi - - deplibs= - newdependency_libs= - newlib_search_path= - need_relink=no # whether we're linking any uninstalled libtool libraries - notinst_deplibs= # not-installed libtool libraries - case $linkmode in - lib) - passes="conv link" - for file in $dlfiles $dlprefiles; do - case $file in - *.la) ;; - *) - $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 - exit $EXIT_FAILURE - ;; - esac - done - ;; - prog) - compile_deplibs= - finalize_deplibs= - alldeplibs=no - newdlfiles= - newdlprefiles= - passes="conv scan dlopen dlpreopen link" - ;; - *) passes="conv" - ;; - esac - for pass in $passes; do - if test "$linkmode,$pass" = "lib,link" || - test "$linkmode,$pass" = "prog,scan"; then - libs="$deplibs" - deplibs= - fi - if test "$linkmode" = prog; then - case $pass in - dlopen) libs="$dlfiles" ;; - dlpreopen) libs="$dlprefiles" ;; - link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; - esac - fi - if test "$pass" = dlopen; then - # Collect dlpreopened libraries - save_deplibs="$deplibs" - deplibs= - fi - for deplib in $libs; do - lib= - found=no - case $deplib in - -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) - if test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - compiler_flags="$compiler_flags $deplib" - fi - continue - ;; - -l*) - if test "$linkmode" != lib && test "$linkmode" != prog; then - $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 - continue - fi - name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` - for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do - for search_ext in .la $std_shrext .so .a; do - # Search the libtool library - lib="$searchdir/lib${name}${search_ext}" - if test -f "$lib"; then - if test "$search_ext" = ".la"; then - found=yes - else - found=no - fi - break 2 - fi - done - done - if test "$found" != yes; then - # deplib doesn't seem to be a libtool library - if test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - deplibs="$deplib $deplibs" - test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" - fi - continue - else # deplib is a libtool library - # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, - # We need to do some special things here, and not later. - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - case " $predeps $postdeps " in - *" $deplib "*) - if (${SED} -e '2q' $lib | - grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then - library_names= - old_library= - case $lib in - */* | *\\*) . $lib ;; - *) . ./$lib ;; - esac - for l in $old_library $library_names; do - ll="$l" - done - if test "X$ll" = "X$old_library" ; then # only static version available - found=no - ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` - test "X$ladir" = "X$lib" && ladir="." - lib=$ladir/$old_library - if test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - deplibs="$deplib $deplibs" - test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" - fi - continue - fi - fi - ;; - *) ;; - esac - fi - fi - ;; # -l - -L*) - case $linkmode in - lib) - deplibs="$deplib $deplibs" - test "$pass" = conv && continue - newdependency_libs="$deplib $newdependency_libs" - newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` - ;; - prog) - if test "$pass" = conv; then - deplibs="$deplib $deplibs" - continue - fi - if test "$pass" = scan; then - deplibs="$deplib $deplibs" - else - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - fi - newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` - ;; - *) - $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2 - ;; - esac # linkmode - continue - ;; # -L - -R*) - if test "$pass" = link; then - dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` - # Make sure the xrpath contains only unique directories. - case "$xrpath " in - *" $dir "*) ;; - *) xrpath="$xrpath $dir" ;; - esac - fi - deplibs="$deplib $deplibs" - continue - ;; - *.la) lib="$deplib" ;; - *.$libext) - if test "$pass" = conv; then - deplibs="$deplib $deplibs" - continue - fi - case $linkmode in - lib) - valid_a_lib=no - case $deplibs_check_method in - match_pattern*) - set dummy $deplibs_check_method - match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` - if eval $echo \"$deplib\" 2>/dev/null \ - | $SED 10q \ - | $EGREP "$match_pattern_regex" > /dev/null; then - valid_a_lib=yes - fi - ;; - pass_all) - valid_a_lib=yes - ;; - esac - if test "$valid_a_lib" != yes; then - $echo - $echo "*** Warning: Trying to link with static lib archive $deplib." - $echo "*** I have the capability to make that library automatically link in when" - $echo "*** you link to this library. But I can only do this if you have a" - $echo "*** shared version of the library, which you do not appear to have" - $echo "*** because the file extensions .$libext of this argument makes me believe" - $echo "*** that it is just a static archive that I should not used here." - else - $echo - $echo "*** Warning: Linking the shared library $output against the" - $echo "*** static library $deplib is not portable!" - deplibs="$deplib $deplibs" - fi - continue - ;; - prog) - if test "$pass" != link; then - deplibs="$deplib $deplibs" - else - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - fi - continue - ;; - esac # linkmode - ;; # *.$libext - *.lo | *.$objext) - if test "$pass" = conv; then - deplibs="$deplib $deplibs" - elif test "$linkmode" = prog; then - if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then - # If there is no dlopen support or we're linking statically, - # we need to preload. - newdlprefiles="$newdlprefiles $deplib" - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - newdlfiles="$newdlfiles $deplib" - fi - fi - continue - ;; - %DEPLIBS%) - alldeplibs=yes - continue - ;; - esac # case $deplib - if test "$found" = yes || test -f "$lib"; then : - else - $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2 - exit $EXIT_FAILURE - fi - - # Check to see that this really is a libtool archive. - if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : - else - $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 - exit $EXIT_FAILURE - fi - - ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` - test "X$ladir" = "X$lib" && ladir="." - - dlname= - dlopen= - dlpreopen= - libdir= - library_names= - old_library= - # If the library was installed with an old release of libtool, - # it will not redefine variables installed, or shouldnotlink - installed=yes - shouldnotlink=no - avoidtemprpath= - - - # Read the .la file - case $lib in - */* | *\\*) . $lib ;; - *) . ./$lib ;; - esac - - if test "$linkmode,$pass" = "lib,link" || - test "$linkmode,$pass" = "prog,scan" || - { test "$linkmode" != prog && test "$linkmode" != lib; }; then - test -n "$dlopen" && dlfiles="$dlfiles $dlopen" - test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" - fi - - if test "$pass" = conv; then - # Only check for convenience libraries - deplibs="$lib $deplibs" - if test -z "$libdir"; then - if test -z "$old_library"; then - $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 - exit $EXIT_FAILURE - fi - # It is a libtool convenience library, so add in its objects. - convenience="$convenience $ladir/$objdir/$old_library" - old_convenience="$old_convenience $ladir/$objdir/$old_library" - tmp_libs= - for deplib in $dependency_libs; do - deplibs="$deplib $deplibs" - if test "X$duplicate_deps" = "Xyes" ; then - case "$tmp_libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; - esac - fi - tmp_libs="$tmp_libs $deplib" - done - elif test "$linkmode" != prog && test "$linkmode" != lib; then - $echo "$modename: \`$lib' is not a convenience library" 1>&2 - exit $EXIT_FAILURE - fi - continue - fi # $pass = conv - - - # Get the name of the library we link against. - linklib= - for l in $old_library $library_names; do - linklib="$l" - done - if test -z "$linklib"; then - $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 - exit $EXIT_FAILURE - fi - - # This library was specified with -dlopen. - if test "$pass" = dlopen; then - if test -z "$libdir"; then - $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 - exit $EXIT_FAILURE - fi - if test -z "$dlname" || - test "$dlopen_support" != yes || - test "$build_libtool_libs" = no; then - # If there is no dlname, no dlopen support or we're linking - # statically, we need to preload. We also need to preload any - # dependent libraries so libltdl's deplib preloader doesn't - # bomb out in the load deplibs phase. - dlprefiles="$dlprefiles $lib $dependency_libs" - else - newdlfiles="$newdlfiles $lib" - fi - continue - fi # $pass = dlopen - - # We need an absolute path. - case $ladir in - [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; - *) - abs_ladir=`cd "$ladir" && pwd` - if test -z "$abs_ladir"; then - $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 - $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 - abs_ladir="$ladir" - fi - ;; - esac - laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` - - # Find the relevant object directory and library name. - if test "X$installed" = Xyes; then - if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then - $echo "$modename: warning: library \`$lib' was moved." 1>&2 - dir="$ladir" - absdir="$abs_ladir" - libdir="$abs_ladir" - else - dir="$libdir" - absdir="$libdir" - fi - test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes - else - if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then - dir="$ladir" - absdir="$abs_ladir" - # Remove this search path later - notinst_path="$notinst_path $abs_ladir" - else - dir="$ladir/$objdir" - absdir="$abs_ladir/$objdir" - # Remove this search path later - notinst_path="$notinst_path $abs_ladir" - fi - fi # $installed = yes - name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` - - # This library was specified with -dlpreopen. - if test "$pass" = dlpreopen; then - if test -z "$libdir"; then - $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 - exit $EXIT_FAILURE - fi - # Prefer using a static library (so that no silly _DYNAMIC symbols - # are required to link). - if test -n "$old_library"; then - newdlprefiles="$newdlprefiles $dir/$old_library" - # Otherwise, use the dlname, so that lt_dlopen finds it. - elif test -n "$dlname"; then - newdlprefiles="$newdlprefiles $dir/$dlname" - else - newdlprefiles="$newdlprefiles $dir/$linklib" - fi - fi # $pass = dlpreopen - - if test -z "$libdir"; then - # Link the convenience library - if test "$linkmode" = lib; then - deplibs="$dir/$old_library $deplibs" - elif test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$dir/$old_library $compile_deplibs" - finalize_deplibs="$dir/$old_library $finalize_deplibs" - else - deplibs="$lib $deplibs" # used for prog,scan pass - fi - continue - fi - - - if test "$linkmode" = prog && test "$pass" != link; then - newlib_search_path="$newlib_search_path $ladir" - deplibs="$lib $deplibs" - - linkalldeplibs=no - if test "$link_all_deplibs" != no || test -z "$library_names" || - test "$build_libtool_libs" = no; then - linkalldeplibs=yes - fi - - tmp_libs= - for deplib in $dependency_libs; do - case $deplib in - -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test - esac - # Need to link against all dependency_libs? - if test "$linkalldeplibs" = yes; then - deplibs="$deplib $deplibs" - else - # Need to hardcode shared library paths - # or/and link against static libraries - newdependency_libs="$deplib $newdependency_libs" - fi - if test "X$duplicate_deps" = "Xyes" ; then - case "$tmp_libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; - esac - fi - tmp_libs="$tmp_libs $deplib" - done # for deplib - continue - fi # $linkmode = prog... - - if test "$linkmode,$pass" = "prog,link"; then - if test -n "$library_names" && - { { test "$prefer_static_libs" = no || - test "$prefer_static_libs,$installed" = "built,yes"; } || - test -z "$old_library"; }; then - # We need to hardcode the library path - if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then - # Make sure the rpath contains only unique directories. - case "$temp_rpath " in - *" $dir "*) ;; - *" $absdir "*) ;; - *) temp_rpath="$temp_rpath $absdir" ;; - esac - fi - - # Hardcode the library path. - # Skip directories that are in the system default run-time - # search path. - case " $sys_lib_dlsearch_path " in - *" $absdir "*) ;; - *) - case "$compile_rpath " in - *" $absdir "*) ;; - *) compile_rpath="$compile_rpath $absdir" - esac - ;; - esac - case " $sys_lib_dlsearch_path " in - *" $libdir "*) ;; - *) - case "$finalize_rpath " in - *" $libdir "*) ;; - *) finalize_rpath="$finalize_rpath $libdir" - esac - ;; - esac - fi # $linkmode,$pass = prog,link... - - if test "$alldeplibs" = yes && - { test "$deplibs_check_method" = pass_all || - { test "$build_libtool_libs" = yes && - test -n "$library_names"; }; }; then - # We only need to search for static libraries - continue - fi - fi - - link_static=no # Whether the deplib will be linked statically - use_static_libs=$prefer_static_libs - if test "$use_static_libs" = built && test "$installed" = yes ; then - use_static_libs=no - fi - if test -n "$library_names" && - { test "$use_static_libs" = no || test -z "$old_library"; }; then - if test "$installed" = no; then - notinst_deplibs="$notinst_deplibs $lib" - need_relink=yes - fi - # This is a shared library - - # Warn about portability, can't link against -module's on - # some systems (darwin) - if test "$shouldnotlink" = yes && test "$pass" = link ; then - $echo - if test "$linkmode" = prog; then - $echo "*** Warning: Linking the executable $output against the loadable module" - else - $echo "*** Warning: Linking the shared library $output against the loadable module" - fi - $echo "*** $linklib is not portable!" - fi - if test "$linkmode" = lib && - test "$hardcode_into_libs" = yes; then - # Hardcode the library path. - # Skip directories that are in the system default run-time - # search path. - case " $sys_lib_dlsearch_path " in - *" $absdir "*) ;; - *) - case "$compile_rpath " in - *" $absdir "*) ;; - *) compile_rpath="$compile_rpath $absdir" - esac - ;; - esac - case " $sys_lib_dlsearch_path " in - *" $libdir "*) ;; - *) - case "$finalize_rpath " in - *" $libdir "*) ;; - *) finalize_rpath="$finalize_rpath $libdir" - esac - ;; - esac - fi - - if test -n "$old_archive_from_expsyms_cmds"; then - # figure out the soname - set dummy $library_names - realname="$2" - shift; shift - libname=`eval \\$echo \"$libname_spec\"` - # use dlname if we got it. it's perfectly good, no? - if test -n "$dlname"; then - soname="$dlname" - elif test -n "$soname_spec"; then - # bleh windows - case $host in - *cygwin* | mingw*) - major=`expr $current - $age` - versuffix="-$major" - ;; - esac - eval soname=\"$soname_spec\" - else - soname="$realname" - fi - - # Make a new name for the extract_expsyms_cmds to use - soroot="$soname" - soname=`$echo $soroot | ${SED} -e 's/^.*\///'` - newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" - - # If the library has no export list, then create one now - if test -f "$output_objdir/$soname-def"; then : - else - $show "extracting exported symbol list from \`$soname'" - save_ifs="$IFS"; IFS='~' - cmds=$extract_expsyms_cmds - for cmd in $cmds; do - IFS="$save_ifs" - eval cmd=\"$cmd\" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - fi - - # Create $newlib - if test -f "$output_objdir/$newlib"; then :; else - $show "generating import library for \`$soname'" - save_ifs="$IFS"; IFS='~' - cmds=$old_archive_from_expsyms_cmds - for cmd in $cmds; do - IFS="$save_ifs" - eval cmd=\"$cmd\" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - fi - # make sure the library variables are pointing to the new library - dir=$output_objdir - linklib=$newlib - fi # test -n "$old_archive_from_expsyms_cmds" - - if test "$linkmode" = prog || test "$mode" != relink; then - add_shlibpath= - add_dir= - add= - lib_linked=yes - case $hardcode_action in - immediate | unsupported) - if test "$hardcode_direct" = no; then - add="$dir/$linklib" - case $host in - *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; - *-*-sysv4*uw2*) add_dir="-L$dir" ;; - *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ - *-*-unixware7*) add_dir="-L$dir" ;; - *-*-darwin* ) - # if the lib is a module then we can not link against - # it, someone is ignoring the new warnings I added - if /usr/bin/file -L $add 2> /dev/null | - $EGREP ": [^:]* bundle" >/dev/null ; then - $echo "** Warning, lib $linklib is a module, not a shared library" - if test -z "$old_library" ; then - $echo - $echo "** And there doesn't seem to be a static archive available" - $echo "** The link will probably fail, sorry" - else - add="$dir/$old_library" - fi - fi - esac - elif test "$hardcode_minus_L" = no; then - case $host in - *-*-sunos*) add_shlibpath="$dir" ;; - esac - add_dir="-L$dir" - add="-l$name" - elif test "$hardcode_shlibpath_var" = no; then - add_shlibpath="$dir" - add="-l$name" - else - lib_linked=no - fi - ;; - relink) - if test "$hardcode_direct" = yes; then - add="$dir/$linklib" - elif test "$hardcode_minus_L" = yes; then - add_dir="-L$dir" - # Try looking first in the location we're being installed to. - if test -n "$inst_prefix_dir"; then - case $libdir in - [\\/]*) - add_dir="$add_dir -L$inst_prefix_dir$libdir" - ;; - esac - fi - add="-l$name" - elif test "$hardcode_shlibpath_var" = yes; then - add_shlibpath="$dir" - add="-l$name" - else - lib_linked=no - fi - ;; - *) lib_linked=no ;; - esac - - if test "$lib_linked" != yes; then - $echo "$modename: configuration error: unsupported hardcode properties" - exit $EXIT_FAILURE - fi - - if test -n "$add_shlibpath"; then - case :$compile_shlibpath: in - *":$add_shlibpath:"*) ;; - *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; - esac - fi - if test "$linkmode" = prog; then - test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" - test -n "$add" && compile_deplibs="$add $compile_deplibs" - else - test -n "$add_dir" && deplibs="$add_dir $deplibs" - test -n "$add" && deplibs="$add $deplibs" - if test "$hardcode_direct" != yes && \ - test "$hardcode_minus_L" != yes && \ - test "$hardcode_shlibpath_var" = yes; then - case :$finalize_shlibpath: in - *":$libdir:"*) ;; - *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; - esac - fi - fi - fi - - if test "$linkmode" = prog || test "$mode" = relink; then - add_shlibpath= - add_dir= - add= - # Finalize command for both is simple: just hardcode it. - if test "$hardcode_direct" = yes; then - add="$libdir/$linklib" - elif test "$hardcode_minus_L" = yes; then - add_dir="-L$libdir" - add="-l$name" - elif test "$hardcode_shlibpath_var" = yes; then - case :$finalize_shlibpath: in - *":$libdir:"*) ;; - *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; - esac - add="-l$name" - elif test "$hardcode_automatic" = yes; then - if test -n "$inst_prefix_dir" && - test -f "$inst_prefix_dir$libdir/$linklib" ; then - add="$inst_prefix_dir$libdir/$linklib" - else - add="$libdir/$linklib" - fi - else - # We cannot seem to hardcode it, guess we'll fake it. - add_dir="-L$libdir" - # Try looking first in the location we're being installed to. - if test -n "$inst_prefix_dir"; then - case $libdir in - [\\/]*) - add_dir="$add_dir -L$inst_prefix_dir$libdir" - ;; - esac - fi - add="-l$name" - fi - - if test "$linkmode" = prog; then - test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" - test -n "$add" && finalize_deplibs="$add $finalize_deplibs" - else - test -n "$add_dir" && deplibs="$add_dir $deplibs" - test -n "$add" && deplibs="$add $deplibs" - fi - fi - elif test "$linkmode" = prog; then - # Here we assume that one of hardcode_direct or hardcode_minus_L - # is not unsupported. This is valid on all known static and - # shared platforms. - if test "$hardcode_direct" != unsupported; then - test -n "$old_library" && linklib="$old_library" - compile_deplibs="$dir/$linklib $compile_deplibs" - finalize_deplibs="$dir/$linklib $finalize_deplibs" - else - compile_deplibs="-l$name -L$dir $compile_deplibs" - finalize_deplibs="-l$name -L$dir $finalize_deplibs" - fi - elif test "$build_libtool_libs" = yes; then - # Not a shared library - if test "$deplibs_check_method" != pass_all; then - # We're trying link a shared library against a static one - # but the system doesn't support it. - - # Just print a warning and add the library to dependency_libs so - # that the program can be linked against the static library. - $echo - $echo "*** Warning: This system can not link to static lib archive $lib." - $echo "*** I have the capability to make that library automatically link in when" - $echo "*** you link to this library. But I can only do this if you have a" - $echo "*** shared version of the library, which you do not appear to have." - if test "$module" = yes; then - $echo "*** But as you try to build a module library, libtool will still create " - $echo "*** a static module, that should work as long as the dlopening application" - $echo "*** is linked with the -dlopen flag to resolve symbols at runtime." - if test -z "$global_symbol_pipe"; then - $echo - $echo "*** However, this would only work if libtool was able to extract symbol" - $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" - $echo "*** not find such a program. So, this module is probably useless." - $echo "*** \`nm' from GNU binutils and a full rebuild may help." - fi - if test "$build_old_libs" = no; then - build_libtool_libs=module - build_old_libs=yes - else - build_libtool_libs=no - fi - fi - else - deplibs="$dir/$old_library $deplibs" - link_static=yes - fi - fi # link shared/static library? - - if test "$linkmode" = lib; then - if test -n "$dependency_libs" && - { test "$hardcode_into_libs" != yes || - test "$build_old_libs" = yes || - test "$link_static" = yes; }; then - # Extract -R from dependency_libs - temp_deplibs= - for libdir in $dependency_libs; do - case $libdir in - -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` - case " $xrpath " in - *" $temp_xrpath "*) ;; - *) xrpath="$xrpath $temp_xrpath";; - esac;; - *) temp_deplibs="$temp_deplibs $libdir";; - esac - done - dependency_libs="$temp_deplibs" - fi - - newlib_search_path="$newlib_search_path $absdir" - # Link against this library - test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" - # ... and its dependency_libs - tmp_libs= - for deplib in $dependency_libs; do - newdependency_libs="$deplib $newdependency_libs" - if test "X$duplicate_deps" = "Xyes" ; then - case "$tmp_libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; - esac - fi - tmp_libs="$tmp_libs $deplib" - done - - if test "$link_all_deplibs" != no; then - # Add the search paths of all dependency libraries - for deplib in $dependency_libs; do - case $deplib in - -L*) path="$deplib" ;; - *.la) - dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` - test "X$dir" = "X$deplib" && dir="." - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; - *) - absdir=`cd "$dir" && pwd` - if test -z "$absdir"; then - $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 - absdir="$dir" - fi - ;; - esac - if grep "^installed=no" $deplib > /dev/null; then - path="$absdir/$objdir" - else - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` - if test -z "$libdir"; then - $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 - exit $EXIT_FAILURE - fi - if test "$absdir" != "$libdir"; then - $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 - fi - path="$absdir" - fi - depdepl= - case $host in - *-*-darwin*) - # we do not want to link against static libs, - # but need to link against shared - eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` - if test -n "$deplibrary_names" ; then - for tmp in $deplibrary_names ; do - depdepl=$tmp - done - if test -f "$path/$depdepl" ; then - depdepl="$path/$depdepl" - fi - # do not add paths which are already there - case " $newlib_search_path " in - *" $path "*) ;; - *) newlib_search_path="$newlib_search_path $path";; - esac - fi - path="" - ;; - *) - path="-L$path" - ;; - esac - ;; - -l*) - case $host in - *-*-darwin*) - # Again, we only want to link against shared libraries - eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` - for tmp in $newlib_search_path ; do - if test -f "$tmp/lib$tmp_libs.dylib" ; then - eval depdepl="$tmp/lib$tmp_libs.dylib" - break - fi - done - path="" - ;; - *) continue ;; - esac - ;; - *) continue ;; - esac - case " $deplibs " in - *" $path "*) ;; - *) deplibs="$path $deplibs" ;; - esac - case " $deplibs " in - *" $depdepl "*) ;; - *) deplibs="$depdepl $deplibs" ;; - esac - done - fi # link_all_deplibs != no - fi # linkmode = lib - done # for deplib in $libs - dependency_libs="$newdependency_libs" - if test "$pass" = dlpreopen; then - # Link the dlpreopened libraries before other libraries - for deplib in $save_deplibs; do - deplibs="$deplib $deplibs" - done - fi - if test "$pass" != dlopen; then - if test "$pass" != conv; then - # Make sure lib_search_path contains only unique directories. - lib_search_path= - for dir in $newlib_search_path; do - case "$lib_search_path " in - *" $dir "*) ;; - *) lib_search_path="$lib_search_path $dir" ;; - esac - done - newlib_search_path= - fi - - if test "$linkmode,$pass" != "prog,link"; then - vars="deplibs" - else - vars="compile_deplibs finalize_deplibs" - fi - for var in $vars dependency_libs; do - # Add libraries to $var in reverse order - eval tmp_libs=\"\$$var\" - new_libs= - for deplib in $tmp_libs; do - # FIXME: Pedantically, this is the right thing to do, so - # that some nasty dependency loop isn't accidentally - # broken: - #new_libs="$deplib $new_libs" - # Pragmatically, this seems to cause very few problems in - # practice: - case $deplib in - -L*) new_libs="$deplib $new_libs" ;; - -R*) ;; - *) - # And here is the reason: when a library appears more - # than once as an explicit dependence of a library, or - # is implicitly linked in more than once by the - # compiler, it is considered special, and multiple - # occurrences thereof are not removed. Compare this - # with having the same library being listed as a - # dependency of multiple other libraries: in this case, - # we know (pedantically, we assume) the library does not - # need to be listed more than once, so we keep only the - # last copy. This is not always right, but it is rare - # enough that we require users that really mean to play - # such unportable linking tricks to link the library - # using -Wl,-lname, so that libtool does not consider it - # for duplicate removal. - case " $specialdeplibs " in - *" $deplib "*) new_libs="$deplib $new_libs" ;; - *) - case " $new_libs " in - *" $deplib "*) ;; - *) new_libs="$deplib $new_libs" ;; - esac - ;; - esac - ;; - esac - done - tmp_libs= - for deplib in $new_libs; do - case $deplib in - -L*) - case " $tmp_libs " in - *" $deplib "*) ;; - *) tmp_libs="$tmp_libs $deplib" ;; - esac - ;; - *) tmp_libs="$tmp_libs $deplib" ;; - esac - done - eval $var=\"$tmp_libs\" - done # for var - fi - # Last step: remove runtime libs from dependency_libs - # (they stay in deplibs) - tmp_libs= - for i in $dependency_libs ; do - case " $predeps $postdeps $compiler_lib_search_path " in - *" $i "*) - i="" - ;; - esac - if test -n "$i" ; then - tmp_libs="$tmp_libs $i" - fi - done - dependency_libs=$tmp_libs - done # for pass - if test "$linkmode" = prog; then - dlfiles="$newdlfiles" - dlprefiles="$newdlprefiles" - fi - - case $linkmode in - oldlib) - if test -n "$deplibs"; then - $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 - fi - - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then - $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 - fi - - if test -n "$rpath"; then - $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 - fi - - if test -n "$xrpath"; then - $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 - fi - - if test -n "$vinfo"; then - $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2 - fi - - if test -n "$release"; then - $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 - fi - - if test -n "$export_symbols" || test -n "$export_symbols_regex"; then - $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 - fi - - # Now set the variables for building old libraries. - build_libtool_libs=no - oldlibs="$output" - objs="$objs$old_deplibs" - ;; - - lib) - # Make sure we only generate libraries of the form `libNAME.la'. - case $outputname in - lib*) - name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` - eval shared_ext=\"$shrext_cmds\" - eval libname=\"$libname_spec\" - ;; - *) - if test "$module" = no; then - $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - fi - if test "$need_lib_prefix" != no; then - # Add the "lib" prefix for modules if required - name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` - eval shared_ext=\"$shrext_cmds\" - eval libname=\"$libname_spec\" - else - libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` - fi - ;; - esac - - if test -n "$objs"; then - if test "$deplibs_check_method" != pass_all; then - $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 - exit $EXIT_FAILURE - else - $echo - $echo "*** Warning: Linking the shared library $output against the non-libtool" - $echo "*** objects $objs is not portable!" - libobjs="$libobjs $objs" - fi - fi - - if test "$dlself" != no; then - $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 - fi - - set dummy $rpath - if test "$#" -gt 2; then - $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 - fi - install_libdir="$2" - - oldlibs= - if test -z "$rpath"; then - if test "$build_libtool_libs" = yes; then - # Building a libtool convenience library. - # Some compilers have problems with a `.al' extension so - # convenience libraries should have the same extension an - # archive normally would. - oldlibs="$output_objdir/$libname.$libext $oldlibs" - build_libtool_libs=convenience - build_old_libs=yes - fi - - if test -n "$vinfo"; then - $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2 - fi - - if test -n "$release"; then - $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 - fi - else - - # Parse the version information argument. - save_ifs="$IFS"; IFS=':' - set dummy $vinfo 0 0 0 - IFS="$save_ifs" - - if test -n "$8"; then - $echo "$modename: too many parameters to \`-version-info'" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - fi - - # convert absolute version numbers to libtool ages - # this retains compatibility with .la files and attempts - # to make the code below a bit more comprehensible - - case $vinfo_number in - yes) - number_major="$2" - number_minor="$3" - number_revision="$4" - # - # There are really only two kinds -- those that - # use the current revision as the major version - # and those that subtract age and use age as - # a minor version. But, then there is irix - # which has an extra 1 added just for fun - # - case $version_type in - darwin|linux|osf|windows|none) - current=`expr $number_major + $number_minor` - age="$number_minor" - revision="$number_revision" - ;; - freebsd-aout|freebsd-elf|sunos) - current="$number_major" - revision="$number_minor" - age="0" - ;; - irix|nonstopux) - current=`expr $number_major + $number_minor` - age="$number_minor" - revision="$number_minor" - lt_irix_increment=no - ;; - esac - ;; - no) - current="$2" - revision="$3" - age="$4" - ;; - esac - - # Check that each of the things are valid numbers. - case $current in - 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; - *) - $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2 - $echo "$modename: \`$vinfo' is not valid version information" 1>&2 - exit $EXIT_FAILURE - ;; - esac - - case $revision in - 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; - *) - $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2 - $echo "$modename: \`$vinfo' is not valid version information" 1>&2 - exit $EXIT_FAILURE - ;; - esac - - case $age in - 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; - *) - $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2 - $echo "$modename: \`$vinfo' is not valid version information" 1>&2 - exit $EXIT_FAILURE - ;; - esac - - if test "$age" -gt "$current"; then - $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 - $echo "$modename: \`$vinfo' is not valid version information" 1>&2 - exit $EXIT_FAILURE - fi - - # Calculate the version variables. - major= - versuffix= - verstring= - case $version_type in - none) ;; - - darwin) - # Like Linux, but with the current version available in - # verstring for coding it into the library header - major=.`expr $current - $age` - versuffix="$major.$age.$revision" - # Darwin ld doesn't like 0 for these options... - minor_current=`expr $current + 1` - xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" - verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" - ;; - - freebsd-aout) - major=".$current" - versuffix=".$current.$revision"; - ;; - - freebsd-elf) - major=".$current" - versuffix=".$current"; - ;; - - irix | nonstopux) - if test "X$lt_irix_increment" = "Xno"; then - major=`expr $current - $age` - else - major=`expr $current - $age + 1` - fi - case $version_type in - nonstopux) verstring_prefix=nonstopux ;; - *) verstring_prefix=sgi ;; - esac - verstring="$verstring_prefix$major.$revision" - - # Add in all the interfaces that we are compatible with. - loop=$revision - while test "$loop" -ne 0; do - iface=`expr $revision - $loop` - loop=`expr $loop - 1` - verstring="$verstring_prefix$major.$iface:$verstring" - done - - # Before this point, $major must not contain `.'. - major=.$major - versuffix="$major.$revision" - ;; - - linux) - major=.`expr $current - $age` - versuffix="$major.$age.$revision" - ;; - - osf) - major=.`expr $current - $age` - versuffix=".$current.$age.$revision" - verstring="$current.$age.$revision" - - # Add in all the interfaces that we are compatible with. - loop=$age - while test "$loop" -ne 0; do - iface=`expr $current - $loop` - loop=`expr $loop - 1` - verstring="$verstring:${iface}.0" - done - - # Make executables depend on our current version. - verstring="$verstring:${current}.0" - ;; - - sunos) - major=".$current" - versuffix=".$current.$revision" - ;; - - windows) - # Use '-' rather than '.', since we only want one - # extension on DOS 8.3 filesystems. - major=`expr $current - $age` - versuffix="-$major" - ;; - - *) - $echo "$modename: unknown library version type \`$version_type'" 1>&2 - $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 - exit $EXIT_FAILURE - ;; - esac - - # Clear the version info if we defaulted, and they specified a release. - if test -z "$vinfo" && test -n "$release"; then - major= - case $version_type in - darwin) - # we can't check for "0.0" in archive_cmds due to quoting - # problems, so we reset it completely - verstring= - ;; - *) - verstring="0.0" - ;; - esac - if test "$need_version" = no; then - versuffix= - else - versuffix=".0.0" - fi - fi - - # Remove version info from name if versioning should be avoided - if test "$avoid_version" = yes && test "$need_version" = no; then - major= - versuffix= - verstring="" - fi - - # Check to see if the archive will have undefined symbols. - if test "$allow_undefined" = yes; then - if test "$allow_undefined_flag" = unsupported; then - $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 - build_libtool_libs=no - build_old_libs=yes - fi - else - # Don't allow undefined symbols. - allow_undefined_flag="$no_undefined_flag" - fi - fi - - if test "$mode" != relink; then - # Remove our outputs, but don't remove object files since they - # may have been created when compiling PIC objects. - removelist= - tempremovelist=`$echo "$output_objdir/*"` - for p in $tempremovelist; do - case $p in - *.$objext) - ;; - $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) - if test "X$precious_files_regex" != "X"; then - if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 - then - continue - fi - fi - removelist="$removelist $p" - ;; - *) ;; - esac - done - if test -n "$removelist"; then - $show "${rm}r $removelist" - $run ${rm}r $removelist - fi - fi - - # Now set the variables for building old libraries. - if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then - oldlibs="$oldlibs $output_objdir/$libname.$libext" - - # Transform .lo files to .o files. - oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` - fi - - # Eliminate all temporary directories. - #for path in $notinst_path; do - # lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"` - # deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"` - # dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"` - #done - - if test -n "$xrpath"; then - # If the user specified any rpath flags, then add them. - temp_xrpath= - for libdir in $xrpath; do - temp_xrpath="$temp_xrpath -R$libdir" - case "$finalize_rpath " in - *" $libdir "*) ;; - *) finalize_rpath="$finalize_rpath $libdir" ;; - esac - done - if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then - dependency_libs="$temp_xrpath $dependency_libs" - fi - fi - - # Make sure dlfiles contains only unique files that won't be dlpreopened - old_dlfiles="$dlfiles" - dlfiles= - for lib in $old_dlfiles; do - case " $dlprefiles $dlfiles " in - *" $lib "*) ;; - *) dlfiles="$dlfiles $lib" ;; - esac - done - - # Make sure dlprefiles contains only unique files - old_dlprefiles="$dlprefiles" - dlprefiles= - for lib in $old_dlprefiles; do - case "$dlprefiles " in - *" $lib "*) ;; - *) dlprefiles="$dlprefiles $lib" ;; - esac - done - - if test "$build_libtool_libs" = yes; then - if test -n "$rpath"; then - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) - # these systems don't actually have a c library (as such)! - ;; - *-*-rhapsody* | *-*-darwin1.[012]) - # Rhapsody C library is in the System framework - deplibs="$deplibs -framework System" - ;; - *-*-netbsd*) - # Don't link with libc until the a.out ld.so is fixed. - ;; - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) - # Do not include libc due to us having libc/libc_r. - ;; - *-*-sco3.2v5* | *-*-sco5v6*) - # Causes problems with __ctype - ;; - *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) - # Compiler inserts libc in the correct place for threads to work - ;; - *) - # Add libc to deplibs on all other systems if necessary. - if test "$build_libtool_need_lc" = "yes"; then - deplibs="$deplibs -lc" - fi - ;; - esac - fi - - # Transform deplibs into only deplibs that can be linked in shared. - name_save=$name - libname_save=$libname - release_save=$release - versuffix_save=$versuffix - major_save=$major - # I'm not sure if I'm treating the release correctly. I think - # release should show up in the -l (ie -lgmp5) so we don't want to - # add it in twice. Is that correct? - release="" - versuffix="" - major="" - newdeplibs= - droppeddeps=no - case $deplibs_check_method in - pass_all) - # Don't check for shared/static. Everything works. - # This might be a little naive. We might want to check - # whether the library exists or not. But this is on - # osf3 & osf4 and I'm not really sure... Just - # implementing what was already the behavior. - newdeplibs=$deplibs - ;; - test_compile) - # This code stresses the "libraries are programs" paradigm to its - # limits. Maybe even breaks it. We compile a program, linking it - # against the deplibs as a proxy for the library. Then we can check - # whether they linked in statically or dynamically with ldd. - $rm conftest.c - cat > conftest.c <<EOF - int main() { return 0; } -EOF - $rm conftest - if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then - ldd_output=`ldd conftest` - for i in $deplibs; do - name=`expr $i : '-l\(.*\)'` - # If $name is empty we are operating on a -L argument. - if test "$name" != "" && test "$name" != "0"; then - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - case " $predeps $postdeps " in - *" $i "*) - newdeplibs="$newdeplibs $i" - i="" - ;; - esac - fi - if test -n "$i" ; then - libname=`eval \\$echo \"$libname_spec\"` - deplib_matches=`eval \\$echo \"$library_names_spec\"` - set dummy $deplib_matches - deplib_match=$2 - if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then - newdeplibs="$newdeplibs $i" - else - droppeddeps=yes - $echo - $echo "*** Warning: dynamic linker does not accept needed library $i." - $echo "*** I have the capability to make that library automatically link in when" - $echo "*** you link to this library. But I can only do this if you have a" - $echo "*** shared version of the library, which I believe you do not have" - $echo "*** because a test_compile did reveal that the linker did not use it for" - $echo "*** its dynamic dependency list that programs get resolved with at runtime." - fi - fi - else - newdeplibs="$newdeplibs $i" - fi - done - else - # Error occurred in the first compile. Let's try to salvage - # the situation: Compile a separate program for each library. - for i in $deplibs; do - name=`expr $i : '-l\(.*\)'` - # If $name is empty we are operating on a -L argument. - if test "$name" != "" && test "$name" != "0"; then - $rm conftest - if $LTCC $LTCFLAGS -o conftest conftest.c $i; then - ldd_output=`ldd conftest` - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - case " $predeps $postdeps " in - *" $i "*) - newdeplibs="$newdeplibs $i" - i="" - ;; - esac - fi - if test -n "$i" ; then - libname=`eval \\$echo \"$libname_spec\"` - deplib_matches=`eval \\$echo \"$library_names_spec\"` - set dummy $deplib_matches - deplib_match=$2 - if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then - newdeplibs="$newdeplibs $i" - else - droppeddeps=yes - $echo - $echo "*** Warning: dynamic linker does not accept needed library $i." - $echo "*** I have the capability to make that library automatically link in when" - $echo "*** you link to this library. But I can only do this if you have a" - $echo "*** shared version of the library, which you do not appear to have" - $echo "*** because a test_compile did reveal that the linker did not use this one" - $echo "*** as a dynamic dependency that programs can get resolved with at runtime." - fi - fi - else - droppeddeps=yes - $echo - $echo "*** Warning! Library $i is needed by this library but I was not able to" - $echo "*** make it link in! You will probably need to install it or some" - $echo "*** library that it depends on before this library will be fully" - $echo "*** functional. Installing it before continuing would be even better." - fi - else - newdeplibs="$newdeplibs $i" - fi - done - fi - ;; - file_magic*) - set dummy $deplibs_check_method - file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` - for a_deplib in $deplibs; do - name=`expr $a_deplib : '-l\(.*\)'` - # If $name is empty we are operating on a -L argument. - if test "$name" != "" && test "$name" != "0"; then - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - case " $predeps $postdeps " in - *" $a_deplib "*) - newdeplibs="$newdeplibs $a_deplib" - a_deplib="" - ;; - esac - fi - if test -n "$a_deplib" ; then - libname=`eval \\$echo \"$libname_spec\"` - for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do - potential_libs=`ls $i/$libname[.-]* 2>/dev/null` - for potent_lib in $potential_libs; do - # Follow soft links. - if ls -lLd "$potent_lib" 2>/dev/null \ - | grep " -> " >/dev/null; then - continue - fi - # The statement above tries to avoid entering an - # endless loop below, in case of cyclic links. - # We might still enter an endless loop, since a link - # loop can be closed while we follow links, - # but so what? - potlib="$potent_lib" - while test -h "$potlib" 2>/dev/null; do - potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` - case $potliblink in - [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; - *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; - esac - done - if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ - | ${SED} 10q \ - | $EGREP "$file_magic_regex" > /dev/null; then - newdeplibs="$newdeplibs $a_deplib" - a_deplib="" - break 2 - fi - done - done - fi - if test -n "$a_deplib" ; then - droppeddeps=yes - $echo - $echo "*** Warning: linker path does not have real file for library $a_deplib." - $echo "*** I have the capability to make that library automatically link in when" - $echo "*** you link to this library. But I can only do this if you have a" - $echo "*** shared version of the library, which you do not appear to have" - $echo "*** because I did check the linker path looking for a file starting" - if test -z "$potlib" ; then - $echo "*** with $libname but no candidates were found. (...for file magic test)" - else - $echo "*** with $libname and none of the candidates passed a file format test" - $echo "*** using a file magic. Last file checked: $potlib" - fi - fi - else - # Add a -L argument. - newdeplibs="$newdeplibs $a_deplib" - fi - done # Gone through all deplibs. - ;; - match_pattern*) - set dummy $deplibs_check_method - match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` - for a_deplib in $deplibs; do - name=`expr $a_deplib : '-l\(.*\)'` - # If $name is empty we are operating on a -L argument. - if test -n "$name" && test "$name" != "0"; then - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - case " $predeps $postdeps " in - *" $a_deplib "*) - newdeplibs="$newdeplibs $a_deplib" - a_deplib="" - ;; - esac - fi - if test -n "$a_deplib" ; then - libname=`eval \\$echo \"$libname_spec\"` - for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do - potential_libs=`ls $i/$libname[.-]* 2>/dev/null` - for potent_lib in $potential_libs; do - potlib="$potent_lib" # see symlink-check above in file_magic test - if eval $echo \"$potent_lib\" 2>/dev/null \ - | ${SED} 10q \ - | $EGREP "$match_pattern_regex" > /dev/null; then - newdeplibs="$newdeplibs $a_deplib" - a_deplib="" - break 2 - fi - done - done - fi - if test -n "$a_deplib" ; then - droppeddeps=yes - $echo - $echo "*** Warning: linker path does not have real file for library $a_deplib." - $echo "*** I have the capability to make that library automatically link in when" - $echo "*** you link to this library. But I can only do this if you have a" - $echo "*** shared version of the library, which you do not appear to have" - $echo "*** because I did check the linker path looking for a file starting" - if test -z "$potlib" ; then - $echo "*** with $libname but no candidates were found. (...for regex pattern test)" - else - $echo "*** with $libname and none of the candidates passed a file format test" - $echo "*** using a regex pattern. Last file checked: $potlib" - fi - fi - else - # Add a -L argument. - newdeplibs="$newdeplibs $a_deplib" - fi - done # Gone through all deplibs. - ;; - none | unknown | *) - newdeplibs="" - tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ - -e 's/ -[LR][^ ]*//g'` - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - for i in $predeps $postdeps ; do - # can't use Xsed below, because $i might contain '/' - tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"` - done - fi - if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \ - | grep . >/dev/null; then - $echo - if test "X$deplibs_check_method" = "Xnone"; then - $echo "*** Warning: inter-library dependencies are not supported in this platform." - else - $echo "*** Warning: inter-library dependencies are not known to be supported." - fi - $echo "*** All declared inter-library dependencies are being dropped." - droppeddeps=yes - fi - ;; - esac - versuffix=$versuffix_save - major=$major_save - release=$release_save - libname=$libname_save - name=$name_save - - case $host in - *-*-rhapsody* | *-*-darwin1.[012]) - # On Rhapsody replace the C library is the System framework - newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` - ;; - esac - - if test "$droppeddeps" = yes; then - if test "$module" = yes; then - $echo - $echo "*** Warning: libtool could not satisfy all declared inter-library" - $echo "*** dependencies of module $libname. Therefore, libtool will create" - $echo "*** a static module, that should work as long as the dlopening" - $echo "*** application is linked with the -dlopen flag." - if test -z "$global_symbol_pipe"; then - $echo - $echo "*** However, this would only work if libtool was able to extract symbol" - $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" - $echo "*** not find such a program. So, this module is probably useless." - $echo "*** \`nm' from GNU binutils and a full rebuild may help." - fi - if test "$build_old_libs" = no; then - oldlibs="$output_objdir/$libname.$libext" - build_libtool_libs=module - build_old_libs=yes - else - build_libtool_libs=no - fi - else - $echo "*** The inter-library dependencies that have been dropped here will be" - $echo "*** automatically added whenever a program is linked with this library" - $echo "*** or is declared to -dlopen it." - - if test "$allow_undefined" = no; then - $echo - $echo "*** Since this library must not contain undefined symbols," - $echo "*** because either the platform does not support them or" - $echo "*** it was explicitly requested with -no-undefined," - $echo "*** libtool will only create a static version of it." - if test "$build_old_libs" = no; then - oldlibs="$output_objdir/$libname.$libext" - build_libtool_libs=module - build_old_libs=yes - else - build_libtool_libs=no - fi - fi - fi - fi - # Done checking deplibs! - deplibs=$newdeplibs - fi - - - # move library search paths that coincide with paths to not yet - # installed libraries to the beginning of the library search list - new_libs= - for path in $notinst_path; do - case " $new_libs " in - *" -L$path/$objdir "*) ;; - *) - case " $deplibs " in - *" -L$path/$objdir "*) - new_libs="$new_libs -L$path/$objdir" ;; - esac - ;; - esac - done - for deplib in $deplibs; do - case $deplib in - -L*) - case " $new_libs " in - *" $deplib "*) ;; - *) new_libs="$new_libs $deplib" ;; - esac - ;; - *) new_libs="$new_libs $deplib" ;; - esac - done - deplibs="$new_libs" - - - # All the library-specific variables (install_libdir is set above). - library_names= - old_library= - dlname= - - # Test again, we may have decided not to build it any more - if test "$build_libtool_libs" = yes; then - if test "$hardcode_into_libs" = yes; then - # Hardcode the library paths - hardcode_libdirs= - dep_rpath= - rpath="$finalize_rpath" - test "$mode" != relink && rpath="$compile_rpath$rpath" - for libdir in $rpath; do - if test -n "$hardcode_libdir_flag_spec"; then - if test -n "$hardcode_libdir_separator"; then - if test -z "$hardcode_libdirs"; then - hardcode_libdirs="$libdir" - else - # Just accumulate the unique libdirs. - case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) - ;; - *) - hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" - ;; - esac - fi - else - eval flag=\"$hardcode_libdir_flag_spec\" - dep_rpath="$dep_rpath $flag" - fi - elif test -n "$runpath_var"; then - case "$perm_rpath " in - *" $libdir "*) ;; - *) perm_rpath="$perm_rpath $libdir" ;; - esac - fi - done - # Substitute the hardcoded libdirs into the rpath. - if test -n "$hardcode_libdir_separator" && - test -n "$hardcode_libdirs"; then - libdir="$hardcode_libdirs" - if test -n "$hardcode_libdir_flag_spec_ld"; then - case $archive_cmds in - *\$LD*) eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" ;; - *) eval dep_rpath=\"$hardcode_libdir_flag_spec\" ;; - esac - else - eval dep_rpath=\"$hardcode_libdir_flag_spec\" - fi - fi - if test -n "$runpath_var" && test -n "$perm_rpath"; then - # We should set the runpath_var. - rpath= - for dir in $perm_rpath; do - rpath="$rpath$dir:" - done - eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" - fi - test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" - fi - - shlibpath="$finalize_shlibpath" - test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" - if test -n "$shlibpath"; then - eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" - fi - - # Get the real and link names of the library. - eval shared_ext=\"$shrext_cmds\" - eval library_names=\"$library_names_spec\" - set dummy $library_names - realname="$2" - shift; shift - - if test -n "$soname_spec"; then - eval soname=\"$soname_spec\" - else - soname="$realname" - fi - if test -z "$dlname"; then - dlname=$soname - fi - - lib="$output_objdir/$realname" - linknames= - for link - do - linknames="$linknames $link" - done - - # Use standard objects if they are pic - test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` - - # Prepare the list of exported symbols - if test -z "$export_symbols"; then - if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then - $show "generating symbol list for \`$libname.la'" - export_symbols="$output_objdir/$libname.exp" - $run $rm $export_symbols - cmds=$export_symbols_cmds - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - eval cmd=\"$cmd\" - if len=`expr "X$cmd" : ".*"` && - test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then - $show "$cmd" - $run eval "$cmd" || exit $? - skipped_export=false - else - # The command line is too long to execute in one step. - $show "using reloadable object file for export list..." - skipped_export=: - # Break out early, otherwise skipped_export may be - # set to false by a later but shorter cmd. - break - fi - done - IFS="$save_ifs" - if test -n "$export_symbols_regex"; then - $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" - $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' - $show "$mv \"${export_symbols}T\" \"$export_symbols\"" - $run eval '$mv "${export_symbols}T" "$export_symbols"' - fi - fi - fi - - if test -n "$export_symbols" && test -n "$include_expsyms"; then - $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' - fi - - tmp_deplibs= - for test_deplib in $deplibs; do - case " $convenience " in - *" $test_deplib "*) ;; - *) - tmp_deplibs="$tmp_deplibs $test_deplib" - ;; - esac - done - deplibs="$tmp_deplibs" - - if test -n "$convenience"; then - if test -n "$whole_archive_flag_spec"; then - save_libobjs=$libobjs - eval libobjs=\"\$libobjs $whole_archive_flag_spec\" - else - gentop="$output_objdir/${outputname}x" - generated="$generated $gentop" - - func_extract_archives $gentop $convenience - libobjs="$libobjs $func_extract_archives_result" - fi - fi - - if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then - eval flag=\"$thread_safe_flag_spec\" - linker_flags="$linker_flags $flag" - fi - - # Make a backup of the uninstalled library when relinking - if test "$mode" = relink; then - $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? - fi - - # Do each of the archive commands. - if test "$module" = yes && test -n "$module_cmds" ; then - if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then - eval test_cmds=\"$module_expsym_cmds\" - cmds=$module_expsym_cmds - else - eval test_cmds=\"$module_cmds\" - cmds=$module_cmds - fi - else - if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then - eval test_cmds=\"$archive_expsym_cmds\" - cmds=$archive_expsym_cmds - else - eval test_cmds=\"$archive_cmds\" - cmds=$archive_cmds - fi - fi - - if test "X$skipped_export" != "X:" && - len=`expr "X$test_cmds" : ".*" 2>/dev/null` && - test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then - : - else - # The command line is too long to link in one step, link piecewise. - $echo "creating reloadable object files..." - - # Save the value of $output and $libobjs because we want to - # use them later. If we have whole_archive_flag_spec, we - # want to use save_libobjs as it was before - # whole_archive_flag_spec was expanded, because we can't - # assume the linker understands whole_archive_flag_spec. - # This may have to be revisited, in case too many - # convenience libraries get linked in and end up exceeding - # the spec. - if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then - save_libobjs=$libobjs - fi - save_output=$output - output_la=`$echo "X$output" | $Xsed -e "$basename"` - - # Clear the reloadable object creation command queue and - # initialize k to one. - test_cmds= - concat_cmds= - objlist= - delfiles= - last_robj= - k=1 - output=$output_objdir/$output_la-${k}.$objext - # Loop over the list of objects to be linked. - for obj in $save_libobjs - do - eval test_cmds=\"$reload_cmds $objlist $last_robj\" - if test "X$objlist" = X || - { len=`expr "X$test_cmds" : ".*" 2>/dev/null` && - test "$len" -le "$max_cmd_len"; }; then - objlist="$objlist $obj" - else - # The command $test_cmds is almost too long, add a - # command to the queue. - if test "$k" -eq 1 ; then - # The first file doesn't have a previous command to add. - eval concat_cmds=\"$reload_cmds $objlist $last_robj\" - else - # All subsequent reloadable object files will link in - # the last one created. - eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\" - fi - last_robj=$output_objdir/$output_la-${k}.$objext - k=`expr $k + 1` - output=$output_objdir/$output_la-${k}.$objext - objlist=$obj - len=1 - fi - done - # Handle the remaining objects by creating one last - # reloadable object file. All subsequent reloadable object - # files will link in the last one created. - test -z "$concat_cmds" || concat_cmds=$concat_cmds~ - eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" - - if ${skipped_export-false}; then - $show "generating symbol list for \`$libname.la'" - export_symbols="$output_objdir/$libname.exp" - $run $rm $export_symbols - libobjs=$output - # Append the command to create the export file. - eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\" - fi - - # Set up a command to remove the reloadable object files - # after they are used. - i=0 - while test "$i" -lt "$k" - do - i=`expr $i + 1` - delfiles="$delfiles $output_objdir/$output_la-${i}.$objext" - done - - $echo "creating a temporary reloadable object file: $output" - - # Loop through the commands generated above and execute them. - save_ifs="$IFS"; IFS='~' - for cmd in $concat_cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - - libobjs=$output - # Restore the value of output. - output=$save_output - - if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then - eval libobjs=\"\$libobjs $whole_archive_flag_spec\" - fi - # Expand the library linking commands again to reset the - # value of $libobjs for piecewise linking. - - # Do each of the archive commands. - if test "$module" = yes && test -n "$module_cmds" ; then - if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then - cmds=$module_expsym_cmds - else - cmds=$module_cmds - fi - else - if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then - cmds=$archive_expsym_cmds - else - cmds=$archive_cmds - fi - fi - - # Append the command to remove the reloadable object files - # to the just-reset $cmds. - eval cmds=\"\$cmds~\$rm $delfiles\" - fi - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - eval cmd=\"$cmd\" - $show "$cmd" - $run eval "$cmd" || { - lt_exit=$? - - # Restore the uninstalled library and exit - if test "$mode" = relink; then - $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' - fi - - exit $lt_exit - } - done - IFS="$save_ifs" - - # Restore the uninstalled library and exit - if test "$mode" = relink; then - $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? - - if test -n "$convenience"; then - if test -z "$whole_archive_flag_spec"; then - $show "${rm}r $gentop" - $run ${rm}r "$gentop" - fi - fi - - exit $EXIT_SUCCESS - fi - - # Create links to the real library. - for linkname in $linknames; do - if test "$realname" != "$linkname"; then - $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" - $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $? - fi - done - - # If -module or -export-dynamic was specified, set the dlname. - if test "$module" = yes || test "$export_dynamic" = yes; then - # On all known operating systems, these are identical. - dlname="$soname" - fi - fi - ;; - - obj) - if test -n "$deplibs"; then - $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 - fi - - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then - $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 - fi - - if test -n "$rpath"; then - $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 - fi - - if test -n "$xrpath"; then - $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 - fi - - if test -n "$vinfo"; then - $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 - fi - - if test -n "$release"; then - $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 - fi - - case $output in - *.lo) - if test -n "$objs$old_deplibs"; then - $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 - exit $EXIT_FAILURE - fi - libobj="$output" - obj=`$echo "X$output" | $Xsed -e "$lo2o"` - ;; - *) - libobj= - obj="$output" - ;; - esac - - # Delete the old objects. - $run $rm $obj $libobj - - # Objects from convenience libraries. This assumes - # single-version convenience libraries. Whenever we create - # different ones for PIC/non-PIC, this we'll have to duplicate - # the extraction. - reload_conv_objs= - gentop= - # reload_cmds runs $LD directly, so let us get rid of - # -Wl from whole_archive_flag_spec and hope we can get by with - # turning comma into space.. - wl= - - if test -n "$convenience"; then - if test -n "$whole_archive_flag_spec"; then - eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" - reload_conv_objs=$reload_objs\ `$echo "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` - else - gentop="$output_objdir/${obj}x" - generated="$generated $gentop" - - func_extract_archives $gentop $convenience - reload_conv_objs="$reload_objs $func_extract_archives_result" - fi - fi - - # Create the old-style object. - reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test - - output="$obj" - cmds=$reload_cmds - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - eval cmd=\"$cmd\" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - - # Exit if we aren't doing a library object file. - if test -z "$libobj"; then - if test -n "$gentop"; then - $show "${rm}r $gentop" - $run ${rm}r $gentop - fi - - exit $EXIT_SUCCESS - fi - - if test "$build_libtool_libs" != yes; then - if test -n "$gentop"; then - $show "${rm}r $gentop" - $run ${rm}r $gentop - fi - - # Create an invalid libtool object if no PIC, so that we don't - # accidentally link it into a program. - # $show "echo timestamp > $libobj" - # $run eval "echo timestamp > $libobj" || exit $? - exit $EXIT_SUCCESS - fi - - if test -n "$pic_flag" || test "$pic_mode" != default; then - # Only do commands if we really have different PIC objects. - reload_objs="$libobjs $reload_conv_objs" - output="$libobj" - cmds=$reload_cmds - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - eval cmd=\"$cmd\" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - fi - - if test -n "$gentop"; then - $show "${rm}r $gentop" - $run ${rm}r $gentop - fi - - exit $EXIT_SUCCESS - ;; - - prog) - case $host in - *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; - esac - if test -n "$vinfo"; then - $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 - fi - - if test -n "$release"; then - $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 - fi - - if test "$preload" = yes; then - if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown && - test "$dlopen_self_static" = unknown; then - $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." - fi - fi - - case $host in - *-*-rhapsody* | *-*-darwin1.[012]) - # On Rhapsody replace the C library is the System framework - compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` - finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` - ;; - esac - - case $host in - *darwin*) - # Don't allow lazy linking, it breaks C++ global constructors - if test "$tagname" = CXX ; then - compile_command="$compile_command ${wl}-bind_at_load" - finalize_command="$finalize_command ${wl}-bind_at_load" - fi - ;; - esac - - - # move library search paths that coincide with paths to not yet - # installed libraries to the beginning of the library search list - new_libs= - for path in $notinst_path; do - case " $new_libs " in - *" -L$path/$objdir "*) ;; - *) - case " $compile_deplibs " in - *" -L$path/$objdir "*) - new_libs="$new_libs -L$path/$objdir" ;; - esac - ;; - esac - done - for deplib in $compile_deplibs; do - case $deplib in - -L*) - case " $new_libs " in - *" $deplib "*) ;; - *) new_libs="$new_libs $deplib" ;; - esac - ;; - *) new_libs="$new_libs $deplib" ;; - esac - done - compile_deplibs="$new_libs" - - - compile_command="$compile_command $compile_deplibs" - finalize_command="$finalize_command $finalize_deplibs" - - if test -n "$rpath$xrpath"; then - # If the user specified any rpath flags, then add them. - for libdir in $rpath $xrpath; do - # This is the magic to use -rpath. - case "$finalize_rpath " in - *" $libdir "*) ;; - *) finalize_rpath="$finalize_rpath $libdir" ;; - esac - done - fi - - # Now hardcode the library paths - rpath= - hardcode_libdirs= - for libdir in $compile_rpath $finalize_rpath; do - if test -n "$hardcode_libdir_flag_spec"; then - if test -n "$hardcode_libdir_separator"; then - if test -z "$hardcode_libdirs"; then - hardcode_libdirs="$libdir" - else - # Just accumulate the unique libdirs. - case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) - ;; - *) - hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" - ;; - esac - fi - else - eval flag=\"$hardcode_libdir_flag_spec\" - rpath="$rpath $flag" - fi - elif test -n "$runpath_var"; then - case "$perm_rpath " in - *" $libdir "*) ;; - *) perm_rpath="$perm_rpath $libdir" ;; - esac - fi - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) - testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'` - case :$dllsearchpath: in - *":$libdir:"*) ;; - *) dllsearchpath="$dllsearchpath:$libdir";; - esac - case :$dllsearchpath: in - *":$testbindir:"*) ;; - *) dllsearchpath="$dllsearchpath:$testbindir";; - esac - ;; - esac - done - # Substitute the hardcoded libdirs into the rpath. - if test -n "$hardcode_libdir_separator" && - test -n "$hardcode_libdirs"; then - libdir="$hardcode_libdirs" - eval rpath=\" $hardcode_libdir_flag_spec\" - fi - compile_rpath="$rpath" - - rpath= - hardcode_libdirs= - for libdir in $finalize_rpath; do - if test -n "$hardcode_libdir_flag_spec"; then - if test -n "$hardcode_libdir_separator"; then - if test -z "$hardcode_libdirs"; then - hardcode_libdirs="$libdir" - else - # Just accumulate the unique libdirs. - case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) - ;; - *) - hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" - ;; - esac - fi - else - eval flag=\"$hardcode_libdir_flag_spec\" - rpath="$rpath $flag" - fi - elif test -n "$runpath_var"; then - case "$finalize_perm_rpath " in - *" $libdir "*) ;; - *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; - esac - fi - done - # Substitute the hardcoded libdirs into the rpath. - if test -n "$hardcode_libdir_separator" && - test -n "$hardcode_libdirs"; then - libdir="$hardcode_libdirs" - eval rpath=\" $hardcode_libdir_flag_spec\" - fi - finalize_rpath="$rpath" - - if test -n "$libobjs" && test "$build_old_libs" = yes; then - # Transform all the library objects into standard objects. - compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` - finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` - fi - - dlsyms= - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then - if test -n "$NM" && test -n "$global_symbol_pipe"; then - dlsyms="${outputname}S.c" - else - $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 - fi - fi - - if test -n "$dlsyms"; then - case $dlsyms in - "") ;; - *.c) - # Discover the nlist of each of the dlfiles. - nlist="$output_objdir/${outputname}.nm" - - $show "$rm $nlist ${nlist}S ${nlist}T" - $run $rm "$nlist" "${nlist}S" "${nlist}T" - - # Parse the name list into a source file. - $show "creating $output_objdir/$dlsyms" - - test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ -/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ -/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ - -#ifdef __cplusplus -extern \"C\" { -#endif - -/* Prevent the only kind of declaration conflicts we can make. */ -#define lt_preloaded_symbols some_other_symbol - -/* External symbol declarations for the compiler. */\ -" - - if test "$dlself" = yes; then - $show "generating symbol list for \`$output'" - - test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" - - # Add our own program objects to the symbol list. - progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` - for arg in $progfiles; do - $show "extracting global C symbols from \`$arg'" - $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" - done - - if test -n "$exclude_expsyms"; then - $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' - $run eval '$mv "$nlist"T "$nlist"' - fi - - if test -n "$export_symbols_regex"; then - $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' - $run eval '$mv "$nlist"T "$nlist"' - fi - - # Prepare the list of exported symbols - if test -z "$export_symbols"; then - export_symbols="$output_objdir/$outputname.exp" - $run $rm $export_symbols - $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' - case $host in - *cygwin* | *mingw* ) - $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' - $run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' - ;; - esac - else - $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' - $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' - $run eval 'mv "$nlist"T "$nlist"' - case $host in - *cygwin* | *mingw* ) - $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' - $run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' - ;; - esac - fi - fi - - for arg in $dlprefiles; do - $show "extracting global C symbols from \`$arg'" - name=`$echo "$arg" | ${SED} -e 's%^.*/%%'` - $run eval '$echo ": $name " >> "$nlist"' - $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" - done - - if test -z "$run"; then - # Make sure we have at least an empty file. - test -f "$nlist" || : > "$nlist" - - if test -n "$exclude_expsyms"; then - $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T - $mv "$nlist"T "$nlist" - fi - - # Try sorting and uniquifying the output. - if grep -v "^: " < "$nlist" | - if sort -k 3 </dev/null >/dev/null 2>&1; then - sort -k 3 - else - sort +2 - fi | - uniq > "$nlist"S; then - : - else - grep -v "^: " < "$nlist" > "$nlist"S - fi - - if test -f "$nlist"S; then - eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"' - else - $echo '/* NONE */' >> "$output_objdir/$dlsyms" - fi - - $echo >> "$output_objdir/$dlsyms" "\ - -#undef lt_preloaded_symbols - -#if defined (__STDC__) && __STDC__ -# define lt_ptr void * -#else -# define lt_ptr char * -# define const -#endif - -/* The mapping between symbol names and symbols. */ -" - - case $host in - *cygwin* | *mingw* ) - $echo >> "$output_objdir/$dlsyms" "\ -/* DATA imports from DLLs on WIN32 can't be const, because - runtime relocations are performed -- see ld's documentation - on pseudo-relocs */ -struct { -" - ;; - * ) - $echo >> "$output_objdir/$dlsyms" "\ -const struct { -" - ;; - esac - - - $echo >> "$output_objdir/$dlsyms" "\ - const char *name; - lt_ptr address; -} -lt_preloaded_symbols[] = -{\ -" - - eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms" - - $echo >> "$output_objdir/$dlsyms" "\ - {0, (lt_ptr) 0} -}; - -/* This works around a problem in FreeBSD linker */ -#ifdef FREEBSD_WORKAROUND -static const void *lt_preloaded_setup() { - return lt_preloaded_symbols; -} -#endif - -#ifdef __cplusplus -} -#endif\ -" - fi - - pic_flag_for_symtable= - case $host in - # compiling the symbol table file with pic_flag works around - # a FreeBSD bug that causes programs to crash when -lm is - # linked before any other PIC object. But we must not use - # pic_flag when linking with -static. The problem exists in - # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. - *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) - case "$compile_command " in - *" -static "*) ;; - *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";; - esac;; - *-*-hpux*) - case "$compile_command " in - *" -static "*) ;; - *) pic_flag_for_symtable=" $pic_flag";; - esac - esac - - # Now compile the dynamic symbol file. - $show "(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" - $run eval '(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? - - # Clean up the generated files. - $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" - $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" - - # Transform the symbol file into the correct name. - case $host in - *cygwin* | *mingw* ) - if test -f "$output_objdir/${outputname}.def" ; then - compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP` - finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP` - else - compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` - finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` - fi - ;; - * ) - compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` - finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` - ;; - esac - ;; - *) - $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 - exit $EXIT_FAILURE - ;; - esac - else - # We keep going just in case the user didn't refer to - # lt_preloaded_symbols. The linker will fail if global_symbol_pipe - # really was required. - - # Nullify the symbol file. - compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP` - finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP` - fi - - if test "$need_relink" = no || test "$build_libtool_libs" != yes; then - # Replace the output file specification. - compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$output"'%g' | $NL2SP` - link_command="$compile_command$compile_rpath" - - # We have no uninstalled library dependencies, so finalize right now. - $show "$link_command" - $run eval "$link_command" - exit_status=$? - - # Delete the generated files. - if test -n "$dlsyms"; then - $show "$rm $output_objdir/${outputname}S.${objext}" - $run $rm "$output_objdir/${outputname}S.${objext}" - fi - - exit $exit_status - fi - - if test -n "$shlibpath_var"; then - # We should set the shlibpath_var - rpath= - for dir in $temp_rpath; do - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) - # Absolute path. - rpath="$rpath$dir:" - ;; - *) - # Relative path: add a thisdir entry. - rpath="$rpath\$thisdir/$dir:" - ;; - esac - done - temp_rpath="$rpath" - fi - - if test -n "$compile_shlibpath$finalize_shlibpath"; then - compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" - fi - if test -n "$finalize_shlibpath"; then - finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" - fi - - compile_var= - finalize_var= - if test -n "$runpath_var"; then - if test -n "$perm_rpath"; then - # We should set the runpath_var. - rpath= - for dir in $perm_rpath; do - rpath="$rpath$dir:" - done - compile_var="$runpath_var=\"$rpath\$$runpath_var\" " - fi - if test -n "$finalize_perm_rpath"; then - # We should set the runpath_var. - rpath= - for dir in $finalize_perm_rpath; do - rpath="$rpath$dir:" - done - finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " - fi - fi - - if test "$no_install" = yes; then - # We don't need to create a wrapper script. - link_command="$compile_var$compile_command$compile_rpath" - # Replace the output file specification. - link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` - # Delete the old output file. - $run $rm $output - # Link the executable and exit - $show "$link_command" - $run eval "$link_command" || exit $? - exit $EXIT_SUCCESS - fi - - if test "$hardcode_action" = relink; then - # Fast installation is not supported - link_command="$compile_var$compile_command$compile_rpath" - relink_command="$finalize_var$finalize_command$finalize_rpath" - - $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 - $echo "$modename: \`$output' will be relinked during installation" 1>&2 - else - if test "$fast_install" != no; then - link_command="$finalize_var$compile_command$finalize_rpath" - if test "$fast_install" = yes; then - relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $SP2NL | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g' | $NL2SP` - else - # fast_install is set to needless - relink_command= - fi - else - link_command="$compile_var$compile_command$compile_rpath" - relink_command="$finalize_var$finalize_command$finalize_rpath" - fi - fi - - # Replace the output file specification. - link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` - - # Delete the old output files. - $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname - - $show "$link_command" - $run eval "$link_command" || exit $? - - # Now create the wrapper script. - $show "creating $output" - - # Quote the relink command for shipping. - if test -n "$relink_command"; then - # Preserve any variables that may affect compiler behavior - for var in $variables_saved_for_relink; do - if eval test -z \"\${$var+set}\"; then - relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" - elif eval var_value=\$$var; test -z "$var_value"; then - relink_command="$var=; export $var; $relink_command" - else - var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` - relink_command="$var=\"$var_value\"; export $var; $relink_command" - fi - done - relink_command="(cd `pwd`; $relink_command)" - relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP` - fi - - # Quote $echo for shipping. - if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then - case $progpath in - [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; - *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; - esac - qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` - else - qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` - fi - - # Only actually do things if our run command is non-null. - if test -z "$run"; then - # win32 will think the script is a binary if it has - # a .exe suffix, so we strip it off here. - case $output in - *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;; - esac - # test for cygwin because mv fails w/o .exe extensions - case $host in - *cygwin*) - exeext=.exe - outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;; - *) exeext= ;; - esac - case $host in - *cygwin* | *mingw* ) - output_name=`basename $output` - output_path=`dirname $output` - cwrappersource="$output_path/$objdir/lt-$output_name.c" - cwrapper="$output_path/$output_name.exe" - $rm $cwrappersource $cwrapper - trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 - - cat > $cwrappersource <<EOF - -/* $cwrappersource - temporary wrapper executable for $objdir/$outputname - Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP - - The $output program cannot be directly executed until all the libtool - libraries that it depends on are installed. - - This wrapper executable should never be moved out of the build directory. - If it is, it will not operate correctly. - - Currently, it simply execs the wrapper *script* "/bin/sh $output", - but could eventually absorb all of the scripts functionality and - exec $objdir/$outputname directly. -*/ -EOF - cat >> $cwrappersource<<"EOF" -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> -#include <malloc.h> -#include <stdarg.h> -#include <assert.h> -#include <string.h> -#include <ctype.h> -#include <sys/stat.h> - -#if defined(PATH_MAX) -# define LT_PATHMAX PATH_MAX -#elif defined(MAXPATHLEN) -# define LT_PATHMAX MAXPATHLEN -#else -# define LT_PATHMAX 1024 -#endif - -#ifndef DIR_SEPARATOR -# define DIR_SEPARATOR '/' -# define PATH_SEPARATOR ':' -#endif - -#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ - defined (__OS2__) -# define HAVE_DOS_BASED_FILE_SYSTEM -# ifndef DIR_SEPARATOR_2 -# define DIR_SEPARATOR_2 '\\' -# endif -# ifndef PATH_SEPARATOR_2 -# define PATH_SEPARATOR_2 ';' -# endif -#endif - -#ifndef DIR_SEPARATOR_2 -# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) -#else /* DIR_SEPARATOR_2 */ -# define IS_DIR_SEPARATOR(ch) \ - (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) -#endif /* DIR_SEPARATOR_2 */ - -#ifndef PATH_SEPARATOR_2 -# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) -#else /* PATH_SEPARATOR_2 */ -# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) -#endif /* PATH_SEPARATOR_2 */ - -#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) -#define XFREE(stale) do { \ - if (stale) { free ((void *) stale); stale = 0; } \ -} while (0) - -/* -DDEBUG is fairly common in CFLAGS. */ -#undef DEBUG -#if defined DEBUGWRAPPER -# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__) -#else -# define DEBUG(format, ...) -#endif - -const char *program_name = NULL; - -void * xmalloc (size_t num); -char * xstrdup (const char *string); -const char * base_name (const char *name); -char * find_executable(const char *wrapper); -int check_executable(const char *path); -char * strendzap(char *str, const char *pat); -void lt_fatal (const char *message, ...); - -int -main (int argc, char *argv[]) -{ - char **newargz; - int i; - - program_name = (char *) xstrdup (base_name (argv[0])); - DEBUG("(main) argv[0] : %s\n",argv[0]); - DEBUG("(main) program_name : %s\n",program_name); - newargz = XMALLOC(char *, argc+2); -EOF - - cat >> $cwrappersource <<EOF - newargz[0] = (char *) xstrdup("$SHELL"); -EOF - - cat >> $cwrappersource <<"EOF" - newargz[1] = find_executable(argv[0]); - if (newargz[1] == NULL) - lt_fatal("Couldn't find %s", argv[0]); - DEBUG("(main) found exe at : %s\n",newargz[1]); - /* we know the script has the same name, without the .exe */ - /* so make sure newargz[1] doesn't end in .exe */ - strendzap(newargz[1],".exe"); - for (i = 1; i < argc; i++) - newargz[i+1] = xstrdup(argv[i]); - newargz[argc+1] = NULL; - - for (i=0; i<argc+1; i++) - { - DEBUG("(main) newargz[%d] : %s\n",i,newargz[i]); - ; - } - -EOF - - case $host_os in - mingw*) - cat >> $cwrappersource <<EOF - execv("$SHELL",(char const **)newargz); -EOF - ;; - *) - cat >> $cwrappersource <<EOF - execv("$SHELL",newargz); -EOF - ;; - esac - - cat >> $cwrappersource <<"EOF" - return 127; -} - -void * -xmalloc (size_t num) -{ - void * p = (void *) malloc (num); - if (!p) - lt_fatal ("Memory exhausted"); - - return p; -} - -char * -xstrdup (const char *string) -{ - return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL -; -} - -const char * -base_name (const char *name) -{ - const char *base; - -#if defined (HAVE_DOS_BASED_FILE_SYSTEM) - /* Skip over the disk name in MSDOS pathnames. */ - if (isalpha ((unsigned char)name[0]) && name[1] == ':') - name += 2; -#endif - - for (base = name; *name; name++) - if (IS_DIR_SEPARATOR (*name)) - base = name + 1; - return base; -} - -int -check_executable(const char * path) -{ - struct stat st; - - DEBUG("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!"); - if ((!path) || (!*path)) - return 0; - - if ((stat (path, &st) >= 0) && - ( - /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */ -#if defined (S_IXOTH) - ((st.st_mode & S_IXOTH) == S_IXOTH) || -#endif -#if defined (S_IXGRP) - ((st.st_mode & S_IXGRP) == S_IXGRP) || -#endif - ((st.st_mode & S_IXUSR) == S_IXUSR)) - ) - return 1; - else - return 0; -} - -/* Searches for the full path of the wrapper. Returns - newly allocated full path name if found, NULL otherwise */ -char * -find_executable (const char* wrapper) -{ - int has_slash = 0; - const char* p; - const char* p_next; - /* static buffer for getcwd */ - char tmp[LT_PATHMAX + 1]; - int tmp_len; - char* concat_name; - - DEBUG("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"); - - if ((wrapper == NULL) || (*wrapper == '\0')) - return NULL; - - /* Absolute path? */ -#if defined (HAVE_DOS_BASED_FILE_SYSTEM) - if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':') - { - concat_name = xstrdup (wrapper); - if (check_executable(concat_name)) - return concat_name; - XFREE(concat_name); - } - else - { -#endif - if (IS_DIR_SEPARATOR (wrapper[0])) - { - concat_name = xstrdup (wrapper); - if (check_executable(concat_name)) - return concat_name; - XFREE(concat_name); - } -#if defined (HAVE_DOS_BASED_FILE_SYSTEM) - } -#endif - - for (p = wrapper; *p; p++) - if (*p == '/') - { - has_slash = 1; - break; - } - if (!has_slash) - { - /* no slashes; search PATH */ - const char* path = getenv ("PATH"); - if (path != NULL) - { - for (p = path; *p; p = p_next) - { - const char* q; - size_t p_len; - for (q = p; *q; q++) - if (IS_PATH_SEPARATOR(*q)) - break; - p_len = q - p; - p_next = (*q == '\0' ? q : q + 1); - if (p_len == 0) - { - /* empty path: current directory */ - if (getcwd (tmp, LT_PATHMAX) == NULL) - lt_fatal ("getcwd failed"); - tmp_len = strlen(tmp); - concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); - memcpy (concat_name, tmp, tmp_len); - concat_name[tmp_len] = '/'; - strcpy (concat_name + tmp_len + 1, wrapper); - } - else - { - concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1); - memcpy (concat_name, p, p_len); - concat_name[p_len] = '/'; - strcpy (concat_name + p_len + 1, wrapper); - } - if (check_executable(concat_name)) - return concat_name; - XFREE(concat_name); - } - } - /* not found in PATH; assume curdir */ - } - /* Relative path | not found in path: prepend cwd */ - if (getcwd (tmp, LT_PATHMAX) == NULL) - lt_fatal ("getcwd failed"); - tmp_len = strlen(tmp); - concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); - memcpy (concat_name, tmp, tmp_len); - concat_name[tmp_len] = '/'; - strcpy (concat_name + tmp_len + 1, wrapper); - - if (check_executable(concat_name)) - return concat_name; - XFREE(concat_name); - return NULL; -} - -char * -strendzap(char *str, const char *pat) -{ - size_t len, patlen; - - assert(str != NULL); - assert(pat != NULL); - - len = strlen(str); - patlen = strlen(pat); - - if (patlen <= len) - { - str += len - patlen; - if (strcmp(str, pat) == 0) - *str = '\0'; - } - return str; -} - -static void -lt_error_core (int exit_status, const char * mode, - const char * message, va_list ap) -{ - fprintf (stderr, "%s: %s: ", program_name, mode); - vfprintf (stderr, message, ap); - fprintf (stderr, ".\n"); - - if (exit_status >= 0) - exit (exit_status); -} - -void -lt_fatal (const char *message, ...) -{ - va_list ap; - va_start (ap, message); - lt_error_core (EXIT_FAILURE, "FATAL", message, ap); - va_end (ap); -} -EOF - # we should really use a build-platform specific compiler - # here, but OTOH, the wrappers (shell script and this C one) - # are only useful if you want to execute the "real" binary. - # Since the "real" binary is built for $host, then this - # wrapper might as well be built for $host, too. - $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource - ;; - esac - $rm $output - trap "$rm $output; exit $EXIT_FAILURE" 1 2 15 - - $echo > $output "\ -#! $SHELL - -# $output - temporary wrapper script for $objdir/$outputname -# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP -# -# The $output program cannot be directly executed until all the libtool -# libraries that it depends on are installed. -# -# This wrapper script should never be moved out of the build directory. -# If it is, it will not operate correctly. - -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -Xsed='${SED} -e 1s/^X//' -sed_quote_subst='$sed_quote_subst' - -# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE). -if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which - # is contrary to our usage. Disable this feature. - alias -g '\${1+\"\$@\"}'='\"\$@\"' - setopt NO_GLOB_SUBST -else - case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac -fi -BIN_SH=xpg4; export BIN_SH # for Tru64 -DUALCASE=1; export DUALCASE # for MKS sh - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -relink_command=\"$relink_command\" - -# This environment variable determines our operation mode. -if test \"\$libtool_install_magic\" = \"$magic\"; then - # install mode needs the following variable: - notinst_deplibs='$notinst_deplibs' -else - # When we are sourced in execute mode, \$file and \$echo are already set. - if test \"\$libtool_execute_magic\" != \"$magic\"; then - echo=\"$qecho\" - file=\"\$0\" - # Make sure echo works. - if test \"X\$1\" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift - elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then - # Yippee, \$echo works! - : - else - # Restart under the correct shell, and then maybe \$echo will work. - exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} - fi - fi\ -" - $echo >> $output "\ - - # Find the directory that this script lives in. - thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` - test \"x\$thisdir\" = \"x\$file\" && thisdir=. - - # Follow symbolic links until we get to the real thisdir. - file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` - while test -n \"\$file\"; do - destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` - - # If there was a directory component, then change thisdir. - if test \"x\$destdir\" != \"x\$file\"; then - case \"\$destdir\" in - [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; - *) thisdir=\"\$thisdir/\$destdir\" ;; - esac - fi - - file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` - file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` - done - - # Try to get the absolute directory name. - absdir=\`cd \"\$thisdir\" && pwd\` - test -n \"\$absdir\" && thisdir=\"\$absdir\" -" - - if test "$fast_install" = yes; then - $echo >> $output "\ - program=lt-'$outputname'$exeext - progdir=\"\$thisdir/$objdir\" - - if test ! -f \"\$progdir/\$program\" || \\ - { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ - test \"X\$file\" != \"X\$progdir/\$program\"; }; then - - file=\"\$\$-\$program\" - - if test ! -d \"\$progdir\"; then - $mkdir \"\$progdir\" - else - $rm \"\$progdir/\$file\" - fi" - - $echo >> $output "\ - - # relink executable if necessary - if test -n \"\$relink_command\"; then - if relink_command_output=\`eval \$relink_command 2>&1\`; then : - else - $echo \"\$relink_command_output\" >&2 - $rm \"\$progdir/\$file\" - exit $EXIT_FAILURE - fi - fi - - $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || - { $rm \"\$progdir/\$program\"; - $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } - $rm \"\$progdir/\$file\" - fi" - else - $echo >> $output "\ - program='$outputname' - progdir=\"\$thisdir/$objdir\" -" - fi - - $echo >> $output "\ - - if test -f \"\$progdir/\$program\"; then" - - # Export our shlibpath_var if we have one. - if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then - $echo >> $output "\ - # Add our own library path to $shlibpath_var - $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" - - # Some systems cannot cope with colon-terminated $shlibpath_var - # The second colon is a workaround for a bug in BeOS R4 sed - $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` - - export $shlibpath_var -" - fi - - # fixup the dll searchpath if we need to. - if test -n "$dllsearchpath"; then - $echo >> $output "\ - # Add the dll search path components to the executable PATH - PATH=$dllsearchpath:\$PATH -" - fi - - $echo >> $output "\ - if test \"\$libtool_execute_magic\" != \"$magic\"; then - # Run the actual program with our arguments. -" - case $host in - # Backslashes separate directories on plain windows - *-*-mingw | *-*-os2*) - $echo >> $output "\ - exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} -" - ;; - - *) - $echo >> $output "\ - exec \"\$progdir/\$program\" \${1+\"\$@\"} -" - ;; - esac - $echo >> $output "\ - \$echo \"\$0: cannot exec \$program \$*\" - exit $EXIT_FAILURE - fi - else - # The program doesn't exist. - \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 - \$echo \"This script is just a wrapper for \$program.\" 1>&2 - $echo \"See the $PACKAGE documentation for more information.\" 1>&2 - exit $EXIT_FAILURE - fi -fi\ -" - chmod +x $output - fi - exit $EXIT_SUCCESS - ;; - esac - - # See if we need to build an old-fashioned archive. - for oldlib in $oldlibs; do - - if test "$build_libtool_libs" = convenience; then - oldobjs="$libobjs_save" - addlibs="$convenience" - build_libtool_libs=no - else - if test "$build_libtool_libs" = module; then - oldobjs="$libobjs_save" - build_libtool_libs=no - else - oldobjs="$old_deplibs $non_pic_objects" - fi - addlibs="$old_convenience" - fi - - if test -n "$addlibs"; then - gentop="$output_objdir/${outputname}x" - generated="$generated $gentop" - - func_extract_archives $gentop $addlibs - oldobjs="$oldobjs $func_extract_archives_result" - fi - - # Do each command in the archive commands. - if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then - cmds=$old_archive_from_new_cmds - else - # POSIX demands no paths to be encoded in archives. We have - # to avoid creating archives with duplicate basenames if we - # might have to extract them afterwards, e.g., when creating a - # static archive out of a convenience library, or when linking - # the entirety of a libtool archive into another (currently - # not supported by libtool). - if (for obj in $oldobjs - do - $echo "X$obj" | $Xsed -e 's%^.*/%%' - done | sort | sort -uc >/dev/null 2>&1); then - : - else - $echo "copying selected object files to avoid basename conflicts..." - - if test -z "$gentop"; then - gentop="$output_objdir/${outputname}x" - generated="$generated $gentop" - - $show "${rm}r $gentop" - $run ${rm}r "$gentop" - $show "$mkdir $gentop" - $run $mkdir "$gentop" - exit_status=$? - if test "$exit_status" -ne 0 && test ! -d "$gentop"; then - exit $exit_status - fi - fi - - save_oldobjs=$oldobjs - oldobjs= - counter=1 - for obj in $save_oldobjs - do - objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` - case " $oldobjs " in - " ") oldobjs=$obj ;; - *[\ /]"$objbase "*) - while :; do - # Make sure we don't pick an alternate name that also - # overlaps. - newobj=lt$counter-$objbase - counter=`expr $counter + 1` - case " $oldobjs " in - *[\ /]"$newobj "*) ;; - *) if test ! -f "$gentop/$newobj"; then break; fi ;; - esac - done - $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" - $run ln "$obj" "$gentop/$newobj" || - $run cp "$obj" "$gentop/$newobj" - oldobjs="$oldobjs $gentop/$newobj" - ;; - *) oldobjs="$oldobjs $obj" ;; - esac - done - fi - - eval cmds=\"$old_archive_cmds\" - - if len=`expr "X$cmds" : ".*"` && - test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then - cmds=$old_archive_cmds - else - # the command line is too long to link in one step, link in parts - $echo "using piecewise archive linking..." - save_RANLIB=$RANLIB - RANLIB=: - objlist= - concat_cmds= - save_oldobjs=$oldobjs - - # Is there a better way of finding the last object in the list? - for obj in $save_oldobjs - do - last_oldobj=$obj - done - for obj in $save_oldobjs - do - oldobjs="$objlist $obj" - objlist="$objlist $obj" - eval test_cmds=\"$old_archive_cmds\" - if len=`expr "X$test_cmds" : ".*" 2>/dev/null` && - test "$len" -le "$max_cmd_len"; then - : - else - # the above command should be used before it gets too long - oldobjs=$objlist - if test "$obj" = "$last_oldobj" ; then - RANLIB=$save_RANLIB - fi - test -z "$concat_cmds" || concat_cmds=$concat_cmds~ - eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" - objlist= - fi - done - RANLIB=$save_RANLIB - oldobjs=$objlist - if test "X$oldobjs" = "X" ; then - eval cmds=\"\$concat_cmds\" - else - eval cmds=\"\$concat_cmds~\$old_archive_cmds\" - fi - fi - fi - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - eval cmd=\"$cmd\" - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - done - - if test -n "$generated"; then - $show "${rm}r$generated" - $run ${rm}r$generated - fi - - # Now create the libtool archive. - case $output in - *.la) - old_library= - test "$build_old_libs" = yes && old_library="$libname.$libext" - $show "creating $output" - - # Preserve any variables that may affect compiler behavior - for var in $variables_saved_for_relink; do - if eval test -z \"\${$var+set}\"; then - relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" - elif eval var_value=\$$var; test -z "$var_value"; then - relink_command="$var=; export $var; $relink_command" - else - var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` - relink_command="$var=\"$var_value\"; export $var; $relink_command" - fi - done - # Quote the link command for shipping. - relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" - relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP` - if test "$hardcode_automatic" = yes ; then - relink_command= - fi - - - # Only create the output if not a dry run. - if test -z "$run"; then - for installed in no yes; do - if test "$installed" = yes; then - if test -z "$install_libdir"; then - break - fi - output="$output_objdir/$outputname"i - # Replace all uninstalled libtool libraries with the installed ones - newdependency_libs= - for deplib in $dependency_libs; do - case $deplib in - *.la) - name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` - if test -z "$libdir"; then - $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 - exit $EXIT_FAILURE - fi - newdependency_libs="$newdependency_libs $libdir/$name" - ;; - *) newdependency_libs="$newdependency_libs $deplib" ;; - esac - done - dependency_libs="$newdependency_libs" - newdlfiles= - for lib in $dlfiles; do - name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` - if test -z "$libdir"; then - $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 - exit $EXIT_FAILURE - fi - newdlfiles="$newdlfiles $libdir/$name" - done - dlfiles="$newdlfiles" - newdlprefiles= - for lib in $dlprefiles; do - name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` - if test -z "$libdir"; then - $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 - exit $EXIT_FAILURE - fi - newdlprefiles="$newdlprefiles $libdir/$name" - done - dlprefiles="$newdlprefiles" - else - newdlfiles= - for lib in $dlfiles; do - case $lib in - [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; - *) abs=`pwd`"/$lib" ;; - esac - newdlfiles="$newdlfiles $abs" - done - dlfiles="$newdlfiles" - newdlprefiles= - for lib in $dlprefiles; do - case $lib in - [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; - *) abs=`pwd`"/$lib" ;; - esac - newdlprefiles="$newdlprefiles $abs" - done - dlprefiles="$newdlprefiles" - fi - $rm $output - # place dlname in correct position for cygwin - tdlname=$dlname - case $host,$output,$installed,$module,$dlname in - *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; - esac - $echo > $output "\ -# $outputname - a libtool library file -# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP -# -# Please DO NOT delete this file! -# It is necessary for linking the library. - -# The name that we can dlopen(3). -dlname='$tdlname' - -# Names of this library. -library_names='$library_names' - -# The name of the static archive. -old_library='$old_library' - -# Libraries that this one depends upon. -dependency_libs='$dependency_libs' - -# Version information for $libname. -current=$current -age=$age -revision=$revision - -# Is this an already installed library? -installed=$installed - -# Should we warn about portability when linking against -modules? -shouldnotlink=$module - -# Files to dlopen/dlpreopen -dlopen='$dlfiles' -dlpreopen='$dlprefiles' - -# Directory that this library needs to be installed in: -libdir='$install_libdir'" - if test "$installed" = no && test "$need_relink" = yes; then - $echo >> $output "\ -relink_command=\"$relink_command\"" - fi - done - fi - - # Do a symbolic link so that the libtool archive can be found in - # LD_LIBRARY_PATH before the program is installed. - $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" - $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? - ;; - esac - exit $EXIT_SUCCESS - ;; - - # libtool install mode - install) - modename="$modename: install" - - # There may be an optional sh(1) argument at the beginning of - # install_prog (especially on Windows NT). - if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || - # Allow the use of GNU shtool's install command. - $echo "X$nonopt" | grep shtool > /dev/null; then - # Aesthetically quote it. - arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - arg="\"$arg\"" - ;; - esac - install_prog="$arg " - arg="$1" - shift - else - install_prog= - arg=$nonopt - fi - - # The real first argument should be the name of the installation program. - # Aesthetically quote it. - arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - arg="\"$arg\"" - ;; - esac - install_prog="$install_prog$arg" - - # We need to accept at least all the BSD install flags. - dest= - files= - opts= - prev= - install_type= - isdir=no - stripme= - for arg - do - if test -n "$dest"; then - files="$files $dest" - dest=$arg - continue - fi - - case $arg in - -d) isdir=yes ;; - -f) - case " $install_prog " in - *[\\\ /]cp\ *) ;; - *) prev=$arg ;; - esac - ;; - -g | -m | -o) prev=$arg ;; - -s) - stripme=" -s" - continue - ;; - -*) - ;; - *) - # If the previous option needed an argument, then skip it. - if test -n "$prev"; then - prev= - else - dest=$arg - continue - fi - ;; - esac - - # Aesthetically quote the argument. - arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - arg="\"$arg\"" - ;; - esac - install_prog="$install_prog $arg" - done - - if test -z "$install_prog"; then - $echo "$modename: you must specify an install program" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - fi - - if test -n "$prev"; then - $echo "$modename: the \`$prev' option requires an argument" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - fi - - if test -z "$files"; then - if test -z "$dest"; then - $echo "$modename: no file or destination specified" 1>&2 - else - $echo "$modename: you must specify a destination" 1>&2 - fi - $echo "$help" 1>&2 - exit $EXIT_FAILURE - fi - - # Strip any trailing slash from the destination. - dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` - - # Check to see that the destination is a directory. - test -d "$dest" && isdir=yes - if test "$isdir" = yes; then - destdir="$dest" - destname= - else - destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` - test "X$destdir" = "X$dest" && destdir=. - destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` - - # Not a directory, so check to see that there is only one file specified. - set dummy $files - if test "$#" -gt 2; then - $echo "$modename: \`$dest' is not a directory" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - fi - fi - case $destdir in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - for file in $files; do - case $file in - *.lo) ;; - *) - $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - ;; - esac - done - ;; - esac - - # This variable tells wrapper scripts just to set variables rather - # than running their programs. - libtool_install_magic="$magic" - - staticlibs= - future_libdirs= - current_libdirs= - for file in $files; do - - # Do each installation. - case $file in - *.$libext) - # Do the static libraries later. - staticlibs="$staticlibs $file" - ;; - - *.la) - # Check to see that this really is a libtool archive. - if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : - else - $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - fi - - library_names= - old_library= - relink_command= - # If there is no directory component, then add one. - case $file in - */* | *\\*) . $file ;; - *) . ./$file ;; - esac - - # Add the libdir to current_libdirs if it is the destination. - if test "X$destdir" = "X$libdir"; then - case "$current_libdirs " in - *" $libdir "*) ;; - *) current_libdirs="$current_libdirs $libdir" ;; - esac - else - # Note the libdir as a future libdir. - case "$future_libdirs " in - *" $libdir "*) ;; - *) future_libdirs="$future_libdirs $libdir" ;; - esac - fi - - dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ - test "X$dir" = "X$file/" && dir= - dir="$dir$objdir" - - if test -n "$relink_command"; then - # Determine the prefix the user has applied to our future dir. - inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"` - - # Don't allow the user to place us outside of our expected - # location b/c this prevents finding dependent libraries that - # are installed to the same prefix. - # At present, this check doesn't affect windows .dll's that - # are installed into $libdir/../bin (currently, that works fine) - # but it's something to keep an eye on. - if test "$inst_prefix_dir" = "$destdir"; then - $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 - exit $EXIT_FAILURE - fi - - if test -n "$inst_prefix_dir"; then - # Stick the inst_prefix_dir data into the link command. - relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%" | $NL2SP` - else - relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%%" | $NL2SP` - fi - - $echo "$modename: warning: relinking \`$file'" 1>&2 - $show "$relink_command" - if $run eval "$relink_command"; then : - else - $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 - exit $EXIT_FAILURE - fi - fi - - # See the names of the shared library. - set dummy $library_names - if test -n "$2"; then - realname="$2" - shift - shift - - srcname="$realname" - test -n "$relink_command" && srcname="$realname"T - - # Install the shared library and build the symlinks. - $show "$install_prog $dir/$srcname $destdir/$realname" - $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? - if test -n "$stripme" && test -n "$striplib"; then - $show "$striplib $destdir/$realname" - $run eval "$striplib $destdir/$realname" || exit $? - fi - - if test "$#" -gt 0; then - # Delete the old symlinks, and create new ones. - # Try `ln -sf' first, because the `ln' binary might depend on - # the symlink we replace! Solaris /bin/ln does not understand -f, - # so we also need to try rm && ln -s. - for linkname - do - if test "$linkname" != "$realname"; then - $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" - $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" - fi - done - fi - - # Do each command in the postinstall commands. - lib="$destdir/$realname" - cmds=$postinstall_cmds - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - eval cmd=\"$cmd\" - $show "$cmd" - $run eval "$cmd" || { - lt_exit=$? - - # Restore the uninstalled library and exit - if test "$mode" = relink; then - $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' - fi - - exit $lt_exit - } - done - IFS="$save_ifs" - fi - - # Install the pseudo-library for information purposes. - name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` - instname="$dir/$name"i - $show "$install_prog $instname $destdir/$name" - $run eval "$install_prog $instname $destdir/$name" || exit $? - - # Maybe install the static library, too. - test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" - ;; - - *.lo) - # Install (i.e. copy) a libtool object. - - # Figure out destination file name, if it wasn't already specified. - if test -n "$destname"; then - destfile="$destdir/$destname" - else - destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` - destfile="$destdir/$destfile" - fi - - # Deduce the name of the destination old-style object file. - case $destfile in - *.lo) - staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` - ;; - *.$objext) - staticdest="$destfile" - destfile= - ;; - *) - $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - ;; - esac - - # Install the libtool object if requested. - if test -n "$destfile"; then - $show "$install_prog $file $destfile" - $run eval "$install_prog $file $destfile" || exit $? - fi - - # Install the old object if enabled. - if test "$build_old_libs" = yes; then - # Deduce the name of the old-style object file. - staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` - - $show "$install_prog $staticobj $staticdest" - $run eval "$install_prog \$staticobj \$staticdest" || exit $? - fi - exit $EXIT_SUCCESS - ;; - - *) - # Figure out destination file name, if it wasn't already specified. - if test -n "$destname"; then - destfile="$destdir/$destname" - else - destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` - destfile="$destdir/$destfile" - fi - - # If the file is missing, and there is a .exe on the end, strip it - # because it is most likely a libtool script we actually want to - # install - stripped_ext="" - case $file in - *.exe) - if test ! -f "$file"; then - file=`$echo $file|${SED} 's,.exe$,,'` - stripped_ext=".exe" - fi - ;; - esac - - # Do a test to see if this is really a libtool program. - case $host in - *cygwin*|*mingw*) - wrapper=`$echo $file | ${SED} -e 's,.exe$,,'` - ;; - *) - wrapper=$file - ;; - esac - if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then - notinst_deplibs= - relink_command= - - # Note that it is not necessary on cygwin/mingw to append a dot to - # foo even if both foo and FILE.exe exist: automatic-append-.exe - # behavior happens only for exec(3), not for open(2)! Also, sourcing - # `FILE.' does not work on cygwin managed mounts. - # - # If there is no directory component, then add one. - case $wrapper in - */* | *\\*) . ${wrapper} ;; - *) . ./${wrapper} ;; - esac - - # Check the variables that should have been set. - if test -z "$notinst_deplibs"; then - $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 - exit $EXIT_FAILURE - fi - - finalize=yes - for lib in $notinst_deplibs; do - # Check to see that each library is installed. - libdir= - if test -f "$lib"; then - # If there is no directory component, then add one. - case $lib in - */* | *\\*) . $lib ;; - *) . ./$lib ;; - esac - fi - libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test - if test -n "$libdir" && test ! -f "$libfile"; then - $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 - finalize=no - fi - done - - relink_command= - # Note that it is not necessary on cygwin/mingw to append a dot to - # foo even if both foo and FILE.exe exist: automatic-append-.exe - # behavior happens only for exec(3), not for open(2)! Also, sourcing - # `FILE.' does not work on cygwin managed mounts. - # - # If there is no directory component, then add one. - case $wrapper in - */* | *\\*) . ${wrapper} ;; - *) . ./${wrapper} ;; - esac - - outputname= - if test "$fast_install" = no && test -n "$relink_command"; then - if test "$finalize" = yes && test -z "$run"; then - tmpdir=`func_mktempdir` - file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` - outputname="$tmpdir/$file" - # Replace the output file specification. - relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g' | $NL2SP` - - $show "$relink_command" - if $run eval "$relink_command"; then : - else - $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 - ${rm}r "$tmpdir" - continue - fi - file="$outputname" - else - $echo "$modename: warning: cannot relink \`$file'" 1>&2 - fi - else - # Install the binary that we compiled earlier. - file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` - fi - fi - - # remove .exe since cygwin /usr/bin/install will append another - # one anyway - case $install_prog,$host in - */usr/bin/install*,*cygwin*) - case $file:$destfile in - *.exe:*.exe) - # this is ok - ;; - *.exe:*) - destfile=$destfile.exe - ;; - *:*.exe) - destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'` - ;; - esac - ;; - esac - $show "$install_prog$stripme $file $destfile" - $run eval "$install_prog\$stripme \$file \$destfile" || exit $? - test -n "$outputname" && ${rm}r "$tmpdir" - ;; - esac - done - - for file in $staticlibs; do - name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` - - # Set up the ranlib parameters. - oldlib="$destdir/$name" - - $show "$install_prog $file $oldlib" - $run eval "$install_prog \$file \$oldlib" || exit $? - - if test -n "$stripme" && test -n "$old_striplib"; then - $show "$old_striplib $oldlib" - $run eval "$old_striplib $oldlib" || exit $? - fi - - # Do each command in the postinstall commands. - cmds=$old_postinstall_cmds - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - eval cmd=\"$cmd\" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - done - - if test -n "$future_libdirs"; then - $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 - fi - - if test -n "$current_libdirs"; then - # Maybe just do a dry run. - test -n "$run" && current_libdirs=" -n$current_libdirs" - exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' - else - exit $EXIT_SUCCESS - fi - ;; - - # libtool finish mode - finish) - modename="$modename: finish" - libdirs="$nonopt" - admincmds= - - if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then - for dir - do - libdirs="$libdirs $dir" - done - - for libdir in $libdirs; do - if test -n "$finish_cmds"; then - # Do each command in the finish commands. - cmds=$finish_cmds - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - eval cmd=\"$cmd\" - $show "$cmd" - $run eval "$cmd" || admincmds="$admincmds - $cmd" - done - IFS="$save_ifs" - fi - if test -n "$finish_eval"; then - # Do the single finish_eval. - eval cmds=\"$finish_eval\" - $run eval "$cmds" || admincmds="$admincmds - $cmds" - fi - done - fi - - # Exit here if they wanted silent mode. - test "$show" = : && exit $EXIT_SUCCESS - - $echo "X----------------------------------------------------------------------" | $Xsed - $echo "Libraries have been installed in:" - for libdir in $libdirs; do - $echo " $libdir" - done - $echo - $echo "If you ever happen to want to link against installed libraries" - $echo "in a given directory, LIBDIR, you must either use libtool, and" - $echo "specify the full pathname of the library, or use the \`-LLIBDIR'" - $echo "flag during linking and do at least one of the following:" - if test -n "$shlibpath_var"; then - $echo " - add LIBDIR to the \`$shlibpath_var' environment variable" - $echo " during execution" - fi - if test -n "$runpath_var"; then - $echo " - add LIBDIR to the \`$runpath_var' environment variable" - $echo " during linking" - fi - if test -n "$hardcode_libdir_flag_spec"; then - libdir=LIBDIR - eval flag=\"$hardcode_libdir_flag_spec\" - - $echo " - use the \`$flag' linker flag" - fi - if test -n "$admincmds"; then - $echo " - have your system administrator run these commands:$admincmds" - fi - if test -f /etc/ld.so.conf; then - $echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" - fi - $echo - $echo "See any operating system documentation about shared libraries for" - $echo "more information, such as the ld(1) and ld.so(8) manual pages." - $echo "X----------------------------------------------------------------------" | $Xsed - exit $EXIT_SUCCESS - ;; - - # libtool execute mode - execute) - modename="$modename: execute" - - # The first argument is the command name. - cmd="$nonopt" - if test -z "$cmd"; then - $echo "$modename: you must specify a COMMAND" 1>&2 - $echo "$help" - exit $EXIT_FAILURE - fi - - # Handle -dlopen flags immediately. - for file in $execute_dlfiles; do - if test ! -f "$file"; then - $echo "$modename: \`$file' is not a file" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - fi - - dir= - case $file in - *.la) - # Check to see that this really is a libtool archive. - if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : - else - $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - fi - - # Read the libtool library. - dlname= - library_names= - - # If there is no directory component, then add one. - case $file in - */* | *\\*) . $file ;; - *) . ./$file ;; - esac - - # Skip this library if it cannot be dlopened. - if test -z "$dlname"; then - # Warn if it was a shared library. - test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" - continue - fi - - dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` - test "X$dir" = "X$file" && dir=. - - if test -f "$dir/$objdir/$dlname"; then - dir="$dir/$objdir" - else - if test ! -f "$dir/$dlname"; then - $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 - exit $EXIT_FAILURE - fi - fi - ;; - - *.lo) - # Just add the directory containing the .lo file. - dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` - test "X$dir" = "X$file" && dir=. - ;; - - *) - $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 - continue - ;; - esac - - # Get the absolute pathname. - absdir=`cd "$dir" && pwd` - test -n "$absdir" && dir="$absdir" - - # Now add the directory to shlibpath_var. - if eval "test -z \"\$$shlibpath_var\""; then - eval "$shlibpath_var=\"\$dir\"" - else - eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" - fi - done - - # This variable tells wrapper scripts just to set shlibpath_var - # rather than running their programs. - libtool_execute_magic="$magic" - - # Check if any of the arguments is a wrapper script. - args= - for file - do - case $file in - -*) ;; - *) - # Do a test to see if this is really a libtool program. - if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then - # If there is no directory component, then add one. - case $file in - */* | *\\*) . $file ;; - *) . ./$file ;; - esac - - # Transform arg to wrapped name. - file="$progdir/$program" - fi - ;; - esac - # Quote arguments (to preserve shell metacharacters). - file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` - args="$args \"$file\"" - done - - if test -z "$run"; then - if test -n "$shlibpath_var"; then - # Export the shlibpath_var. - eval "export $shlibpath_var" - fi - - # Restore saved environment variables - for lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES - do - eval "if test \"\${save_$lt_var+set}\" = set; then - $lt_var=\$save_$lt_var; export $lt_var - fi" - done - - # Now prepare to actually exec the command. - exec_cmd="\$cmd$args" - else - # Display what would be done. - if test -n "$shlibpath_var"; then - eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" - $echo "export $shlibpath_var" - fi - $echo "$cmd$args" - exit $EXIT_SUCCESS - fi - ;; - - # libtool clean and uninstall mode - clean | uninstall) - modename="$modename: $mode" - rm="$nonopt" - files= - rmforce= - exit_status=0 - - # This variable tells wrapper scripts just to set variables rather - # than running their programs. - libtool_install_magic="$magic" - - for arg - do - case $arg in - -f) rm="$rm $arg"; rmforce=yes ;; - -*) rm="$rm $arg" ;; - *) files="$files $arg" ;; - esac - done - - if test -z "$rm"; then - $echo "$modename: you must specify an RM program" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - fi - - rmdirs= - - origobjdir="$objdir" - for file in $files; do - dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` - if test "X$dir" = "X$file"; then - dir=. - objdir="$origobjdir" - else - objdir="$dir/$origobjdir" - fi - name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` - test "$mode" = uninstall && objdir="$dir" - - # Remember objdir for removal later, being careful to avoid duplicates - if test "$mode" = clean; then - case " $rmdirs " in - *" $objdir "*) ;; - *) rmdirs="$rmdirs $objdir" ;; - esac - fi - - # Don't error if the file doesn't exist and rm -f was used. - if (test -L "$file") >/dev/null 2>&1 \ - || (test -h "$file") >/dev/null 2>&1 \ - || test -f "$file"; then - : - elif test -d "$file"; then - exit_status=1 - continue - elif test "$rmforce" = yes; then - continue - fi - - rmfiles="$file" - - case $name in - *.la) - # Possibly a libtool archive, so verify it. - if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then - . $dir/$name - - # Delete the libtool libraries and symlinks. - for n in $library_names; do - rmfiles="$rmfiles $objdir/$n" - done - test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" - - case "$mode" in - clean) - case " $library_names " in - # " " in the beginning catches empty $dlname - *" $dlname "*) ;; - *) rmfiles="$rmfiles $objdir/$dlname" ;; - esac - test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" - ;; - uninstall) - if test -n "$library_names"; then - # Do each command in the postuninstall commands. - cmds=$postuninstall_cmds - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - eval cmd=\"$cmd\" - $show "$cmd" - $run eval "$cmd" - if test "$?" -ne 0 && test "$rmforce" != yes; then - exit_status=1 - fi - done - IFS="$save_ifs" - fi - - if test -n "$old_library"; then - # Do each command in the old_postuninstall commands. - cmds=$old_postuninstall_cmds - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - eval cmd=\"$cmd\" - $show "$cmd" - $run eval "$cmd" - if test "$?" -ne 0 && test "$rmforce" != yes; then - exit_status=1 - fi - done - IFS="$save_ifs" - fi - # FIXME: should reinstall the best remaining shared library. - ;; - esac - fi - ;; - - *.lo) - # Possibly a libtool object, so verify it. - if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then - - # Read the .lo file - . $dir/$name - - # Add PIC object to the list of files to remove. - if test -n "$pic_object" \ - && test "$pic_object" != none; then - rmfiles="$rmfiles $dir/$pic_object" - fi - - # Add non-PIC object to the list of files to remove. - if test -n "$non_pic_object" \ - && test "$non_pic_object" != none; then - rmfiles="$rmfiles $dir/$non_pic_object" - fi - fi - ;; - - *) - if test "$mode" = clean ; then - noexename=$name - case $file in - *.exe) - file=`$echo $file|${SED} 's,.exe$,,'` - noexename=`$echo $name|${SED} 's,.exe$,,'` - # $file with .exe has already been added to rmfiles, - # add $file without .exe - rmfiles="$rmfiles $file" - ;; - esac - # Do a test to see if this is a libtool program. - if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then - relink_command= - . $dir/$noexename - - # note $name still contains .exe if it was in $file originally - # as does the version of $file that was added into $rmfiles - rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" - if test "$fast_install" = yes && test -n "$relink_command"; then - rmfiles="$rmfiles $objdir/lt-$name" - fi - if test "X$noexename" != "X$name" ; then - rmfiles="$rmfiles $objdir/lt-${noexename}.c" - fi - fi - fi - ;; - esac - $show "$rm $rmfiles" - $run $rm $rmfiles || exit_status=1 - done - objdir="$origobjdir" - - # Try to remove the ${objdir}s in the directories where we deleted files - for dir in $rmdirs; do - if test -d "$dir"; then - $show "rmdir $dir" - $run rmdir $dir >/dev/null 2>&1 - fi - done - - exit $exit_status - ;; - - "") - $echo "$modename: you must specify a MODE" 1>&2 - $echo "$generic_help" 1>&2 - exit $EXIT_FAILURE - ;; - esac - - if test -z "$exec_cmd"; then - $echo "$modename: invalid operation mode \`$mode'" 1>&2 - $echo "$generic_help" 1>&2 - exit $EXIT_FAILURE - fi -fi # test -z "$show_help" - -if test -n "$exec_cmd"; then - eval exec $exec_cmd - exit $EXIT_FAILURE -fi - -# We need to display help for each of the modes. -case $mode in -"") $echo \ -"Usage: $modename [OPTION]... [MODE-ARG]... - -Provide generalized library-building support services. - - --config show all configuration variables - --debug enable verbose shell tracing --n, --dry-run display commands without modifying any files - --features display basic configuration information and exit - --finish same as \`--mode=finish' - --help display this help message and exit - --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] - --quiet same as \`--silent' - --silent don't print informational messages - --tag=TAG use configuration variables from tag TAG - --version print version information - -MODE must be one of the following: - - clean remove files from the build directory - compile compile a source file into a libtool object - execute automatically set library path, then run a program - finish complete the installation of libtool libraries - install install libraries or executables - link create a library or an executable - uninstall remove libraries from an installed directory - -MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for -a more detailed description of MODE. - -Report bugs to <bug-libtool@gnu.org>." - exit $EXIT_SUCCESS - ;; - -clean) - $echo \ -"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE... - -Remove files from the build directory. - -RM is the name of the program to use to delete files associated with each FILE -(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed -to RM. - -If FILE is a libtool library, object or program, all the files associated -with it are deleted. Otherwise, only FILE itself is deleted using RM." - ;; - -compile) - $echo \ -"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE - -Compile a source file into a libtool library object. - -This mode accepts the following additional options: - - -o OUTPUT-FILE set the output file name to OUTPUT-FILE - -prefer-pic try to building PIC objects only - -prefer-non-pic try to building non-PIC objects only - -static always build a \`.o' file suitable for static linking - -COMPILE-COMMAND is a command to be used in creating a \`standard' object file -from the given SOURCEFILE. - -The output file name is determined by removing the directory component from -SOURCEFILE, then substituting the C source code suffix \`.c' with the -library object suffix, \`.lo'." - ;; - -execute) - $echo \ -"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]... - -Automatically set library path, then run a program. - -This mode accepts the following additional options: - - -dlopen FILE add the directory containing FILE to the library path - -This mode sets the library path environment variable according to \`-dlopen' -flags. - -If any of the ARGS are libtool executable wrappers, then they are translated -into their corresponding uninstalled binary, and any of their required library -directories are added to the library path. - -Then, COMMAND is executed, with ARGS as arguments." - ;; - -finish) - $echo \ -"Usage: $modename [OPTION]... --mode=finish [LIBDIR]... - -Complete the installation of libtool libraries. - -Each LIBDIR is a directory that contains libtool libraries. - -The commands that this mode executes may require superuser privileges. Use -the \`--dry-run' option if you just want to see what would be executed." - ;; - -install) - $echo \ -"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND... - -Install executables or libraries. - -INSTALL-COMMAND is the installation command. The first component should be -either the \`install' or \`cp' program. - -The rest of the components are interpreted as arguments to that command (only -BSD-compatible install options are recognized)." - ;; - -link) - $echo \ -"Usage: $modename [OPTION]... --mode=link LINK-COMMAND... - -Link object files or libraries together to form another library, or to -create an executable program. - -LINK-COMMAND is a command using the C compiler that you would use to create -a program from several object files. - -The following components of LINK-COMMAND are treated specially: - - -all-static do not do any dynamic linking at all - -avoid-version do not add a version suffix if possible - -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime - -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols - -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) - -export-symbols SYMFILE - try to export only the symbols listed in SYMFILE - -export-symbols-regex REGEX - try to export only the symbols matching REGEX - -LLIBDIR search LIBDIR for required installed libraries - -lNAME OUTPUT-FILE requires the installed library libNAME - -module build a library that can dlopened - -no-fast-install disable the fast-install mode - -no-install link a not-installable executable - -no-undefined declare that a library does not refer to external symbols - -o OUTPUT-FILE create OUTPUT-FILE from the specified objects - -objectlist FILE Use a list of object files found in FILE to specify objects - -precious-files-regex REGEX - don't remove output files matching REGEX - -release RELEASE specify package release information - -rpath LIBDIR the created library will eventually be installed in LIBDIR - -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries - -static do not do any dynamic linking of uninstalled libtool libraries - -static-libtool-libs - do not do any dynamic linking of libtool libraries - -version-info CURRENT[:REVISION[:AGE]] - specify library version info [each variable defaults to 0] - -All other options (arguments beginning with \`-') are ignored. - -Every other argument is treated as a filename. Files ending in \`.la' are -treated as uninstalled libtool libraries, other files are standard or library -object files. - -If the OUTPUT-FILE ends in \`.la', then a libtool library is created, -only library objects (\`.lo' files) may be specified, and \`-rpath' is -required, except when creating a convenience library. - -If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created -using \`ar' and \`ranlib', or on Windows using \`lib'. - -If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file -is created, otherwise an executable program is created." - ;; - -uninstall) - $echo \ -"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... - -Remove libraries from an installation directory. - -RM is the name of the program to use to delete files associated with each FILE -(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed -to RM. - -If FILE is a libtool library, all the files associated with it are deleted. -Otherwise, only FILE itself is deleted using RM." - ;; - -*) - $echo "$modename: invalid operation mode \`$mode'" 1>&2 - $echo "$help" 1>&2 - exit $EXIT_FAILURE - ;; -esac - -$echo -$echo "Try \`$modename --help' for more information about other modes." - -exit $? - -# The TAGs below are defined such that we never get into a situation -# in which we disable both kinds of libraries. Given conflicting -# choices, we go for a static library, that is the most portable, -# since we can't tell whether shared libraries were disabled because -# the user asked for that or because the platform doesn't support -# them. This is particularly important on AIX, because we don't -# support having both static and shared libraries enabled at the same -# time on that platform, so we default to a shared-only configuration. -# If a disable-shared tag is given, we'll fallback to a static-only -# configuration. But we'll never go from static-only to shared-only. - -# ### BEGIN LIBTOOL TAG CONFIG: disable-shared -disable_libs=shared -# ### END LIBTOOL TAG CONFIG: disable-shared - -# ### BEGIN LIBTOOL TAG CONFIG: disable-static -disable_libs=static -# ### END LIBTOOL TAG CONFIG: disable-static - -# Local Variables: -# mode:shell-script -# sh-indentation:2 -# End: diff --git a/Build/source/libs/freetype/freetype-1.5/mkinstalldirs b/Build/source/libs/freetype/freetype-1.5/mkinstalldirs deleted file mode 100755 index 4191a45dbd7..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/mkinstalldirs +++ /dev/null @@ -1,162 +0,0 @@ -#! /bin/sh -# mkinstalldirs --- make directory hierarchy - -scriptversion=2009-04-28.21; # UTC - -# Original author: Noah Friedman <friedman@prep.ai.mit.edu> -# Created: 1993-05-16 -# Public domain. -# -# This file is maintained in Automake, please report -# bugs to <bug-automake@gnu.org> or send patches to -# <automake-patches@gnu.org>. - -nl=' -' -IFS=" "" $nl" -errstatus=0 -dirmode= - -usage="\ -Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ... - -Create each directory DIR (with mode MODE, if specified), including all -leading file name components. - -Report bugs to <bug-automake@gnu.org>." - -# process command line arguments -while test $# -gt 0 ; do - case $1 in - -h | --help | --h*) # -h for help - echo "$usage" - exit $? - ;; - -m) # -m PERM arg - shift - test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } - dirmode=$1 - shift - ;; - --version) - echo "$0 $scriptversion" - exit $? - ;; - --) # stop option processing - shift - break - ;; - -*) # unknown option - echo "$usage" 1>&2 - exit 1 - ;; - *) # first non-opt arg - break - ;; - esac -done - -for file -do - if test -d "$file"; then - shift - else - break - fi -done - -case $# in - 0) exit 0 ;; -esac - -# Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and -# mkdir -p a/c at the same time, both will detect that a is missing, -# one will create a, then the other will try to create a and die with -# a "File exists" error. This is a problem when calling mkinstalldirs -# from a parallel make. We use --version in the probe to restrict -# ourselves to GNU mkdir, which is thread-safe. -case $dirmode in - '') - if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then - echo "mkdir -p -- $*" - exec mkdir -p -- "$@" - else - # On NextStep and OpenStep, the `mkdir' command does not - # recognize any option. It will interpret all options as - # directories to create, and then abort because `.' already - # exists. - test -d ./-p && rmdir ./-p - test -d ./--version && rmdir ./--version - fi - ;; - *) - if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 && - test ! -d ./--version; then - echo "mkdir -m $dirmode -p -- $*" - exec mkdir -m "$dirmode" -p -- "$@" - else - # Clean up after NextStep and OpenStep mkdir. - for d in ./-m ./-p ./--version "./$dirmode"; - do - test -d $d && rmdir $d - done - fi - ;; -esac - -for file -do - case $file in - /*) pathcomp=/ ;; - *) pathcomp= ;; - esac - oIFS=$IFS - IFS=/ - set fnord $file - shift - IFS=$oIFS - - for d - do - test "x$d" = x && continue - - pathcomp=$pathcomp$d - case $pathcomp in - -*) pathcomp=./$pathcomp ;; - esac - - if test ! -d "$pathcomp"; then - echo "mkdir $pathcomp" - - mkdir "$pathcomp" || lasterr=$? - - if test ! -d "$pathcomp"; then - errstatus=$lasterr - else - if test ! -z "$dirmode"; then - echo "chmod $dirmode $pathcomp" - lasterr= - chmod "$dirmode" "$pathcomp" || lasterr=$? - - if test ! -z "$lasterr"; then - errstatus=$lasterr - fi - fi - fi - fi - - pathcomp=$pathcomp/ - done -done - -exit $errstatus - -# Local Variables: -# mode: shell-script -# sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" -# time-stamp-end: "; # UTC" -# End: diff --git a/Build/source/libs/freetype/freetype-1.5/net.m4 b/Build/source/libs/freetype/freetype-1.5/net.m4 deleted file mode 100644 index 919766781a2..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/net.m4 +++ /dev/null @@ -1,55 +0,0 @@ -dnl -dnl The following was written by jhawk@mit.edu -dnl -dnl AC_LIBRARY_NET: Id: net.m4,v 1.4 1997/10/25 20:49:53 jhawk Exp -dnl -dnl This test is for network applications that need socket() and -dnl gethostbyname() -ish functions. Under Solaris, those applications need to -dnl link with "-lsocket -lnsl". Under IRIX, they should *not* link with -dnl "-lsocket" because libsocket.a breaks a number of things (for instance: -dnl gethostbyname() under IRIX 5.2, and snoop sockets under most versions of -dnl IRIX). -dnl -dnl Unfortunately, many application developers are not aware of this, and -dnl mistakenly write tests that cause -lsocket to be used under IRIX. It is -dnl also easy to write tests that cause -lnsl to be used under operating -dnl systems where neither are necessary (or useful), such as SunOS 4.1.4, which -dnl uses -lnsl for TLI. -dnl -dnl This test exists so that every application developer does not test this in -dnl a different, and subtly broken fashion. -dnl -dnl It has been argued that this test should be broken up into two seperate -dnl tests, one for the resolver libraries, and one for the libraries necessary -dnl for using Sockets API. Unfortunately, the two are carefully intertwined and -dnl allowing the autoconf user to use them independantly potentially results in -dnl unfortunate ordering dependancies -- as such, such component macros would -dnl have to carefully use indirection and be aware if the other components were -dnl executed. Since other autoconf macros do not go to this trouble, and almost -dnl no applications use sockets without the resolver, this complexity has not -dnl been implemented. -dnl -dnl The check for libresolv is in case you are attempting to link statically -dnl and happen to have a libresolv.a lying around (and no libnsl.a). -dnl -AC_DEFUN([AC_LIBRARY_NET], [ - # Most operating systems have gethostbyname() in the default searched - # libraries (i.e. libc): - AC_CHECK_FUNC(gethostbyname, , - # Some OSes (eg. Solaris) place it in libnsl: - AC_CHECK_LIB(nsl, gethostbyname, , - # Some strange OSes (SINIX) have it in libsocket: - AC_CHECK_LIB(socket, gethostbyname, , - # Unfortunately libsocket sometimes depends on libnsl. - # AC_CHECK_LIB's API is essentially broken so the following - # ugliness is necessary: - AC_CHECK_LIB(socket, gethostbyname, - LIBS="-lsocket -lnsl $LIBS", - AC_CHECK_LIB(resolv, gethostbyname), - -lnsl) - ) - ) - ) - AC_CHECK_FUNC(socket, , AC_CHECK_LIB(socket, socket, , - AC_CHECK_LIB(socket, socket, LIBS="-lsocket -lnsl $LIBS", , -lnsl))) - ]) diff --git a/Build/source/libs/freetype/freetype-1.5/pascal/README b/Build/source/libs/freetype/freetype-1.5/pascal/README deleted file mode 100644 index e8c197ac579..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/pascal/README +++ /dev/null @@ -1,10 +0,0 @@ -In previous releases of Freetype v.1.x, this directory hold a Pascal -version of the FreeType library. Since it has proven to be difficult -to keep the Pascal version in sync with the C version, we decided to -split the two projects, making the Pascal version of the Freetype -1.5 library available separately. - -If you are interested in the Pascal version, please visit -http://www.freetype.org for more information. - ---- end of pascal/README --- diff --git a/Build/source/libs/freetype/freetype-1.5/po/.cvsignore b/Build/source/libs/freetype/freetype-1.5/po/.cvsignore deleted file mode 100644 index 2c6880244fe..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/po/.cvsignore +++ /dev/null @@ -1,8 +0,0 @@ -*.gmo -*.mo -Makefile -Makefile.in -POTFILES -cat-id-tbl.c -freetype.pot -stamp-cat-id diff --git a/Build/source/libs/freetype/freetype-1.5/po/.cvsignore.delete b/Build/source/libs/freetype/freetype-1.5/po/.cvsignore.delete deleted file mode 100644 index e69de29bb2d..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/po/.cvsignore.delete +++ /dev/null diff --git a/Build/source/libs/freetype/freetype-1.5/po/Makefile.in.in b/Build/source/libs/freetype/freetype-1.5/po/Makefile.in.in deleted file mode 100644 index f16ad4dcbbc..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/po/Makefile.in.in +++ /dev/null @@ -1,220 +0,0 @@ -# -# -# Makefile for freetype I18n, -# based on the Makefile.in.in that comes with gettext -# -# Erwin Dieterich, 20. 1. 1998 Erwin.Dieterich.ED@Bayer-AG.de -# -# -# -# Makefile for program source directory in GNU NLS utilities package. -# Copyright (C) 1995, 1996 Free Software Foundation, Inc. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -PACKAGE = freetype -VERSION = @freetype_version@ - -SHELL = /bin/sh -@SET_MAKE@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ - -prefix = @prefix@ -exec_prefix = @exec_prefix@ -datadir = $(prefix)/@DATADIRNAME@ -localedir = @LOCALEDIR@ -gnulocaledir = @LOCALEDIR@ -subdir = po - -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ - -CC = @CC@ -GMSGFMT = @GMSGFMT@ -MSGFMT = @MSGFMT@ -XGETTEXT = @XGETTEXT@ -MSGMERGE = @MSGMERGE@ - -DEFS = @DEFS@ -CFLAGS = @CFLAGS@ -CPPFLAGS = @CPPFLAGS@ - -INCLUDES = -I.. - -COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) - -DISTFILES = Makefile.in.in POTFILES.in $(PACKAGE).pot - -POTFILES = \ - -CATALOGS = @CATALOGS@ -CATOBJEXT = @CATOBJEXT@ -INSTOBJEXT = @INSTOBJEXT@ - -.SUFFIXES: -.SUFFIXES: .c .o .po .pox .gmo .mo .msg - -.c.o: - $(COMPILE) $< - -.po.pox: - $(MAKE) $(PACKAGE).pot - $(MSGMERGE) $< $(srcdir)/$(PACKAGE).pot -o $*.pox - -.po.mo: - $(MSGFMT) -o $@ $< - -.po.gmo: - file=`echo $* | sed 's,.*/,,'`.gmo \ - && rm -f $$file && $(GMSGFMT) -o $$file $< - - - -all: all-@USE_NLS@ - -all-yes: $(PACKAGE).pot $(CATALOGS) -all-no: - @echo "No support for NLS requested" - -$(PACKAGE).pot: $(POTFILES) - if test -n "$(XGETTEXT)"; then \ - $(XGETTEXT) --default-domain=freetype --directory=$(srcdir)/.. \ - --keyword=_ --files-from=$(srcdir)/POTFILES.in; \ - mv freetype.po freetype.pot; \ - else \ - echo "xgettext not available: $(PACKAGE).pot not updated" 1>&2; \ - fi - - -install: install-exec install-data -install-exec: -install-data: install-data-@USE_NLS@ -install-data-no: all -install-data-yes: all - $(top_srcdir)/mkinstalldirs $(datadir); \ - catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - case "$$cat" in \ - *.gmo) destdir=$(gnulocaledir);; \ - *) destdir=$(localedir);; \ - esac; \ - lang=`echo $$cat | sed 's/$(CATOBJEXT)$$//'`; \ - dir=$$destdir/$$lang/LC_MESSAGES; \ - $(top_srcdir)/mkinstalldirs $$dir; \ - if test -r $$cat; then \ - $(INSTALL_DATA) $$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \ - echo "installing $$cat as $$dir/$(PACKAGE)$(INSTOBJEXT)"; \ - else \ - $(INSTALL_DATA) $(srcdir)/$$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \ - echo "installing $(srcdir)/$$cat as" \ - "$$dir/$(PACKAGE)$(INSTOBJEXT)"; \ - fi; \ - if test -r $$cat.m; then \ - $(INSTALL_DATA) $$cat.m $$dir/$(PACKAGE)$(INSTOBJEXT).m; \ - echo "installing $$cat.m as $$dir/$(PACKAGE)$(INSTOBJEXT).m"; \ - else \ - if test -r $(srcdir)/$$cat.m ; then \ - $(INSTALL_DATA) $(srcdir)/$$cat.m \ - $$dir/$(PACKAGE)$(INSTOBJEXT).m; \ - echo "installing $(srcdir)/$$cat as" \ - "$$dir/$(PACKAGE)$(INSTOBJEXT).m"; \ - else \ - true; \ - fi; \ - fi; \ - done - -# Define this as empty until I found a useful application. -installcheck: - -uninstall: - catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - lang=`echo $$cat | sed 's/$(CATOBJEXT)$$//'`; \ - rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \ - rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \ - rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \ - rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \ - done - rm -f $(gettextsrcdir)/po-Makefile.in.in - -check: all - -dvi info tags TAGS ID: - -mostlyclean: - rm -f core core.* *.pox $(PACKAGE).po *.old.po - rm -fr *.o *~ - -clean: mostlyclean - -distclean: clean - rm -f Makefile Makefile.in POTFILES *.mo *.gmo *.msg *.cat.m - -maintainer-clean: distclean - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - -distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) -dist distdir: update-po $(DISTFILES) - dists="$(DISTFILES)"; \ - for file in $$dists; do \ - ln $(srcdir)/$$file $(distdir) 2> /dev/null \ - || cp -p $(srcdir)/$$file $(distdir); \ - done - -update-po: Makefile - $(MAKE) $(PACKAGE).pot - PATH=`pwd`/../src:$$PATH; \ - cd $(srcdir); \ - catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - lang=`echo $$cat | sed 's/$(CATOBJEXT)$$//'`; \ - mv $$lang.po $$lang.old.po; \ - echo "$$lang:"; \ - if $(MSGMERGE) $$lang.old.po $(PACKAGE).pot -o $$lang.po; then \ - rm -f $$lang.old.po; \ - else \ - echo "msgmerge for $$cat failed!"; \ - rm -f $$lang.po; \ - mv $$lang.old.po $$lang.po; \ - fi; \ - done - -POTFILES: POTFILES.in - ( if test 'x$(srcdir)' != 'x.'; then \ - posrcprefix='$(top_srcdir)/'; \ - else \ - posrcprefix="../"; \ - fi; \ - sed -e '/^#/d' -e '/^[ ]*$$/d' \ - -e "s@.*@ $$posrcprefix& \\\\@" \ - -e '$$s/\(.*\) \\/\1/' < $(srcdir)/POTFILES.in > POTFILES ) - -Makefile: Makefile.in.in ../config.status POTFILES - cd .. \ - && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \ - $(SHELL) ./config.status - -# Tell versions [3.59,3.63) of GNU make not to export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: - -.PHONY: all all-yes all-no install install-exec install-data install-data-no \ - install-data-yes installcheck uninstall check mostlyclean clean \ - distclean maintainer-clean dist distdir update-po diff --git a/Build/source/libs/freetype/freetype-1.5/po/POTFILES.in b/Build/source/libs/freetype/freetype-1.5/po/POTFILES.in deleted file mode 100644 index 71ce09d9ca1..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/po/POTFILES.in +++ /dev/null @@ -1,10 +0,0 @@ -# -# List of source files containing translatable strings -# -# -lib/extend/ftxerr18.c -test/fterror.c -test/ftdump.c -test/ftlint.c -test/ftmetric.c -test/ftsbit.c diff --git a/Build/source/libs/freetype/freetype-1.5/po/cs.po b/Build/source/libs/freetype/freetype-1.5/po/cs.po deleted file mode 100644 index 34de4178404..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/po/cs.po +++ /dev/null @@ -1,883 +0,0 @@ -# Czech messages for FreeType -# Copyright (C) 1998-2002 Pavel Kaòkovský -# Pavel Kaòkovský <peak@argo.troja.mff.cuni.cz>, 1998-2002 -# -msgid "" -msgstr "" -"Project-Id-Version: FreeType 1.5\n" -"POT-Creation-Date: 2002-11-08 18:11+0000\n" -"PO-Revision-Date: 2002-12-25\n" -"Last-Translator: Pavel Kaòkovský <peak@argo.troja.mff.cuni.cz>, 2002\n" -"Language-Team: Czech\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=iso-8859-2\n" -"Content-Transfer-Encoding: 8bit\n" - -#: lib/extend/ftxerr18.c:40 -msgid "" -"Welcome to the translation of the Freetype v.1 library!\n" -"\n" -"This message is not really part of the library (it is bracketed by\n" -" #if 0 / #endif), but is really intended to be the first one in the .po\n" -"file, and the first one that a new translator should see, to give hints.\n" -"\n" -"First, while this .po might seems big, the real interesting part of it\n" -"is only the messages in this file, lib/extend/ftxerr18.c. The other\n" -"messages are part of the demonstration programs, and are more intended\n" -"to help grasping how to use i18n with the Freetype library. So the real\n" -"work is the about 65 first ones. Unfortunately they are the harder ones!\n" -"\n" -"A difficulty is that there are some specialized vocabulary, about\n" -"``faces'', ``glyph'' and similar things. These are typographical things,\n" -"and this should be researched before attempting to translate the whole\n" -"thing. A quick look across the TrueType documentation might help to\n" -"understand many things, too.\n" -"\n" -"Best wiches for your translation!\n" -"Antoine Leca - 2002-11-08" -msgstr "" -"(Read)" - -#: lib/extend/ftxerr18.c:77 -msgid "Successful function call, no error." -msgstr "Úspì¹né volání funkce, ¾ádná chyba." - -#: lib/extend/ftxerr18.c:80 -msgid "Invalid face handle." -msgstr "Neplatný manipulátor písma." - -#: lib/extend/ftxerr18.c:82 -msgid "Invalid instance handle." -msgstr "Neplatný manipulátor instance." - -#: lib/extend/ftxerr18.c:84 -msgid "Invalid glyph handle." -msgstr "Neplatný manipulátor litery." - -#: lib/extend/ftxerr18.c:86 -msgid "Invalid charmap handle." -msgstr "Neplatný manipulátor znakové mapy." - -#: lib/extend/ftxerr18.c:88 -msgid "Invalid result address." -msgstr "Neplatná adresa výsledku." - -#: lib/extend/ftxerr18.c:90 -msgid "Invalid glyph index." -msgstr "Neplatný index litery." - -#: lib/extend/ftxerr18.c:92 -msgid "Invalid argument." -msgstr "Neplatný argument." - -#: lib/extend/ftxerr18.c:94 -msgid "Could not open file." -msgstr "Nelze otevøít soubor." - -#: lib/extend/ftxerr18.c:96 -msgid "File is not a TrueType collection." -msgstr "Soubor není kolekce písem TrueType." - -#: lib/extend/ftxerr18.c:98 -msgid "Mandatory table missing." -msgstr "Nìkterá z povinných tabulek chybí." - -#: lib/extend/ftxerr18.c:100 -msgid "Invalid horizontal metrics (hmtx table broken)." -msgstr "Neplatná horizontální metrika (tabulka HMTX po¹kozena)." - -#: lib/extend/ftxerr18.c:102 -msgid "Invalid charmap format." -msgstr "Neplatný formát znakové mapy." - -#: lib/extend/ftxerr18.c:104 -msgid "Invalid ppem value." -msgstr "Neplatné rozmìry liter (ppem)." - -#: lib/extend/ftxerr18.c:106 -msgid "Invalid vertical metrics (vmtx table broken)." -msgstr "Neplatná vertikální metrika (tabulka VMTX po¹kozena)." - -#: lib/extend/ftxerr18.c:109 -msgid "Invalid file format." -msgstr "Neplatný formát souboru." - -#: lib/extend/ftxerr18.c:112 -msgid "Invalid engine." -msgstr "Neplatná globální data knihovny." - -#: lib/extend/ftxerr18.c:114 -msgid "Too many extensions." -msgstr "Pøíli¹ mnoho roz¹íøení." - -#: lib/extend/ftxerr18.c:116 -msgid "Extensions unsupported." -msgstr "Roz¹íøení není podporováno." - -#: lib/extend/ftxerr18.c:118 -msgid "Invalid extension id." -msgstr "Neplatný identifikátor roz¹íøení." - -#: lib/extend/ftxerr18.c:121 -msgid "No vertical data in font." -msgstr "V písmu nejsou obsa¾ena ¾ádná vertikální data." - -#: lib/extend/ftxerr18.c:124 -msgid "Maximum Profile (maxp) table missing." -msgstr "Chybìjící tabulka maximálních hodnot (MAXP)." - -#: lib/extend/ftxerr18.c:126 -msgid "Font Header (head) table missing." -msgstr "Chybìjící tabulka hlavièky písma (HEAD)." - -#: lib/extend/ftxerr18.c:128 -msgid "Horizontal Header (hhea) table missing." -msgstr "Chybìjící tabulka horizontální hlavièky (HHEA)." - -#: lib/extend/ftxerr18.c:130 -msgid "Index to Location (loca) table missing." -msgstr "Chybìjící tabulka adres liter (LOCA)." - -#: lib/extend/ftxerr18.c:132 -msgid "Naming (name) table missing." -msgstr "Chybìjící tabulka jmen (NAME)." - -#: lib/extend/ftxerr18.c:134 -msgid "Character to Glyph Index Mapping (cmap) tables missing." -msgstr "Chybìjící tabulky znakových map (CMAP)." - -#: lib/extend/ftxerr18.c:136 -msgid "Horizontal Metrics (hmtx) table missing." -msgstr "Chybìjící tabulka horizontálních metrik (HTMX)." - -#: lib/extend/ftxerr18.c:138 -msgid "OS/2 table missing." -msgstr "Chybìjící tabulka OS/2." - -#: lib/extend/ftxerr18.c:140 -msgid "PostScript (post) table missing." -msgstr "Chybìjící tabulka dat pro PostScript (POST)." - -#: lib/extend/ftxerr18.c:142 -msgid "Glyph (glyf) table missing." -msgstr "Chybìjící tabulka liter (GLYF)." - -#: lib/extend/ftxerr18.c:147 -msgid "Out of memory." -msgstr "Nedostatek pamìti." - -#: lib/extend/ftxerr18.c:152 -msgid "Invalid file offset." -msgstr "Neplatná adresa v souboru." - -#: lib/extend/ftxerr18.c:154 -msgid "Invalid file read." -msgstr "Neplatné ètení ze souboru." - -#: lib/extend/ftxerr18.c:156 -msgid "Invalid frame access." -msgstr "Neplatný pøístup k úseku souboru." - -#: lib/extend/ftxerr18.c:161 -msgid "Too many points." -msgstr "Pøíli¹ mnoho bodù." - -#: lib/extend/ftxerr18.c:163 -msgid "Too many contours." -msgstr "Pøíli¹ mnoho kontur." - -#: lib/extend/ftxerr18.c:165 -msgid "Invalid composite glyph." -msgstr "Neplatná kompozitní litera." - -#: lib/extend/ftxerr18.c:167 -msgid "Too many instructions." -msgstr "Pøíli¹ mnoho instrukcí." - -#: lib/extend/ftxerr18.c:169 -msgid "Too many function definitions (FDEF)." -msgstr "Pøíli¹ mnoho definic funkcí (FDEF)." - -#: lib/extend/ftxerr18.c:174 -msgid "Invalid opcode." -msgstr "Neplatný kód operace." - -#: lib/extend/ftxerr18.c:176 -msgid "Too few arguments." -msgstr "Pøíli¹ málo argumentù." - -#: lib/extend/ftxerr18.c:178 -msgid "Stack overflow." -msgstr "Pøeteèení zásobníku." - -#: lib/extend/ftxerr18.c:180 -msgid "Code overflow." -msgstr "Pøeteèení oblasti instrukcí." - -#: lib/extend/ftxerr18.c:182 -msgid "Bad argument." -msgstr "©patný argument." - -#: lib/extend/ftxerr18.c:184 -msgid "Divide by zero." -msgstr "Dìlení nulou." - -#: lib/extend/ftxerr18.c:186 -msgid "Storage overflow." -msgstr "Pøeteèení oblasti pro ukládání dat." - -#: lib/extend/ftxerr18.c:188 -msgid "Control Value (cvt) table overflow." -msgstr "Pøeteèení tabulky øídících hodnot (CVT)." - -#: lib/extend/ftxerr18.c:190 -msgid "Invalid reference." -msgstr "Neplatný odkaz." - -#: lib/extend/ftxerr18.c:192 -msgid "Invalid distance." -msgstr "Neplatná vzdálenost." - -#: lib/extend/ftxerr18.c:194 -msgid "Interpolate twilight points." -msgstr "Interpolace mezi body v \"soumraèné zónì\"." - -#: lib/extend/ftxerr18.c:196 -msgid "`DEBUG' opcode found." -msgstr "Ladící operace." - -#: lib/extend/ftxerr18.c:198 -msgid "`ENDF' in byte-code stream." -msgstr "Operace ENDF nalezena na ¹patném místì." - -#: lib/extend/ftxerr18.c:200 -msgid "Out of code ranges." -msgstr "Mimo oblasti instrukcí." - -#: lib/extend/ftxerr18.c:202 -msgid "Nested function definitions." -msgstr "Vnoøené definice funkcí." - -#: lib/extend/ftxerr18.c:204 -msgid "Invalid code range." -msgstr "Neplatná oblast instrukcí." - -#: lib/extend/ftxerr18.c:206 -msgid "Invalid displacement." -msgstr "Neplatné posunutí." - -#: lib/extend/ftxerr18.c:208 -msgid "Endless loop encountered while executing instructions." -msgstr "Do¹lo k zacyklení bìhem vykonávání instrukcí." - -#: lib/extend/ftxerr18.c:213 -msgid "Nested frame access." -msgstr "Vnoøené pøístupy k úseku souboru." - -#: lib/extend/ftxerr18.c:215 -msgid "Invalid cache list." -msgstr "Neplatný seznam vyrovnávací pamìti." - -#: lib/extend/ftxerr18.c:217 -msgid "Could not find context." -msgstr "Nelze najít kontext." - -#: lib/extend/ftxerr18.c:219 -msgid "Unlisted object." -msgstr "Objekt není v seznamu." - -#: lib/extend/ftxerr18.c:224 -msgid "Raster pool overflow." -msgstr "Pøeteèení pamìti rasterizéru." - -#: lib/extend/ftxerr18.c:226 -msgid "Raster: negative height encountered." -msgstr "Rasterizér: záporná vý¹ka." - -#: lib/extend/ftxerr18.c:228 -msgid "Raster: invalid value." -msgstr "Rasterizér: neplatná hodnota." - -#: lib/extend/ftxerr18.c:230 -msgid "Raster not initialized." -msgstr "Rasterizér není incializován." - -#: lib/extend/ftxerr18.c:235 -msgid "Invalid kerning (kern) table format." -msgstr "Neplatný formát tabulky kernù (KERN)." - -#: lib/extend/ftxerr18.c:237 -msgid "Invalid kerning (kern) table." -msgstr "Neplatná tabulka kernù (KERN)." - -#: lib/extend/ftxerr18.c:240 -msgid "Invalid PostScript (post) table format." -msgstr "Neplatný formát tabulky PostScript (POST)." - -#: lib/extend/ftxerr18.c:242 -msgid "Invalid PostScript (post) table." -msgstr "Neplatná tabulka PostScript (POST)." - -#: lib/extend/ftxerr18.c:247 -msgid "Invalid TrueType Open subtable format." -msgstr "Neplatný formát podtabulky TrueType Open." - -#: lib/extend/ftxerr18.c:249 -msgid "Invalid TrueType Open subtable." -msgstr "Neplatná podtabulka TrueType Open." - -#: lib/extend/ftxerr18.c:251 -msgid "Glyph(s) not covered by lookup." -msgstr "Jedna èi více liter bìhem prohledávání nenalezena." - -#: lib/extend/ftxerr18.c:253 -msgid "Too many nested context substitutions." -msgstr "Pøíli¹ mnoho vnoøených kontextových substitucí." - -#: lib/extend/ftxerr18.c:255 -msgid "No MM (Adobe MultipleMaster) interpreter available." -msgstr "®ádný interpreter MM (Adobe MultipleMaster) není k dispozici." - -#: lib/extend/ftxerr18.c:258 -msgid "Invalid glyph substitution (GSUB) table format." -msgstr "Neplatný formát tabulky substitucí liter (GSUB)." - -#: lib/extend/ftxerr18.c:260 -msgid "Invalid glyph substitution (GSUB) table." -msgstr "Neplatná tabulka substitucí liter (GSUB)." - -#: lib/extend/ftxerr18.c:263 -msgid "Invalid glyph positioning (GPOS) table format." -msgstr "Neplatný formát tabulky umís»ování liter (GPOS)." - -#: lib/extend/ftxerr18.c:265 -msgid "Invalid glyph positioning (GPOS) table." -msgstr "Neplatná tabulka umís»ování liter (GPOS)." - -#: lib/extend/ftxerr18.c:268 -msgid "Invalid glyph definition (GDEF) table format." -msgstr "Neplatný formát tabulky definic liter (GDEF)." - -#: lib/extend/ftxerr18.c:270 -msgid "Invalid glyph definition (GDEF) table." -msgstr "Neplatná tabulka definic liter (GDEF)." - -#: lib/extend/ftxerr18.c:277 -msgid "Invalid Error Number." -msgstr "Neznámý kód chyby." - -#: test/fterror.c:49 -msgid "" -"fterror: test TT_ErrToString18 functionality\n" -"\n" -msgstr "" -"fterror: test funkce TT_ErrToString18\n" -"\n" - -#: test/fterror.c:50 -msgid "" -" with an optional numerical argument, dumps the associated message.\n" -"\n" -msgstr "" -" pøi zadání èíselného argumentu vypí¹e odpovídající hlá¹ení.\n" -"\n" - -#: test/fterror.c:73 -msgid "Start of fterror.\n" -msgstr "Zaèátek fterror.\n" - -#: test/fterror.c:81 -msgid "End of fterror.\n" -msgstr "Konec fterror.\n" - -#: test/fterror.c:96 -#, c-format -msgid "Freetype error code 0x%04lX (%lu): %s\n" -msgstr "Chybové hlá¹ení FreeType 0x%04lX (%lu): %s\n" - -#: test/ftdump.c:169 test/ftlint.c:207 test/ftmetric.c:294 -msgid "Could not create glyph container.\n" -msgstr "Nelze vytvoøit kontejner liter.\n" - -#: test/ftdump.c:179 test/ftlint.c:215 test/ftmetric.c:303 test/ftsbit.c:214 -msgid "Could not create instance.\n" -msgstr "Nelze vytvoøit instanci.\n" - -#: test/ftdump.c:188 -msgid "Could not create second instance.\n" -msgstr "Nelze vytvoøit druhou instanci.\n" - -#: test/ftdump.c:194 -msgid "Memory footprint statistics:\n" -msgstr "Statistika pamì»ových nárokù:\n" - -#: test/ftdump.c:202 -msgid "face object" -msgstr "objekt písma" - -#: test/ftdump.c:203 -msgid "glyph object" -msgstr "objekt litery" - -#: test/ftdump.c:204 -msgid "instance object" -msgstr "objekt instance" - -#: test/ftdump.c:208 -msgid "exec. context object" -msgstr "objekt provádìcího kontextu" - -#: test/ftdump.c:215 -msgid "total memory usage" -msgstr "celková spotøeba pamìti" - -#: test/ftdump.c:223 test/ftdump.c:579 test/ftdump.c:789 test/ftdump.c:993 -#: test/ftdump.c:1139 test/ftlint.c:274 test/ftlint.c:287 test/ftmetric.c:390 -#: test/ftsbit.c:286 -#, c-format -msgid "FreeType error message: %s\n" -msgstr "Chybové hlá¹ení FreeType: %s\n" - -#: test/ftdump.c:300 -msgid "font name table entries\n" -msgstr "polo¾ky v tabulce jmen\n" - -#: test/ftdump.c:310 -#, c-format -msgid "" -"PostScript name: %s\n" -"\n" -msgstr "" -"PostScriptové jméno: %s\n" -"\n" - -#: test/ftdump.c:333 -msgid "character map encodings\n" -msgstr "kódování map znakù\n" - -#: test/ftdump.c:340 test/ftdump.c:488 -msgid "The file doesn't seem to have any encoding table.\n" -msgstr "Soubor zøejmì neobsahuje ¾ádnou mapu znakù.\n" - -#: test/ftdump.c:344 test/ftdump.c:492 -#, c-format -msgid "" -"There are %hu encodings:\n" -"\n" -msgstr "" -"%hu kódování:\n" -"\n" - -#: test/ftdump.c:349 -#, c-format -msgid "encoding %2u: " -msgstr "kódování %2u: " - -#: test/ftdump.c:376 test/ftdump.c:385 test/ftdump.c:452 -#, c-format -msgid "Unknown value %hu" -msgstr "Neznámá hodnota %hu" - -#: test/ftdump.c:459 -msgid "Unknown" -msgstr "Neznámé" - -#: test/ftdump.c:481 -msgid "ftxcmap test\n" -msgstr "test roz¹íøení ftxcmap\n" - -#: test/ftdump.c:498 -#, c-format -msgid "encoding %2u:\n" -msgstr "kódování %2u:\n" - -#: test/ftdump.c:503 -#, c-format -msgid "first: glyph index %hu, character code 0x%lx\n" -msgstr "první: index litery %hu, kód znaku 0x%lx\n" - -#: test/ftdump.c:507 -#, c-format -msgid "next: glyph index %hu, character code 0x%lx\n" -msgstr "dal¹í: index litery %hu, kód znaku 0x%lx\n" - -#: test/ftdump.c:511 -#, c-format -msgid "last: glyph index %hu, character code 0x%lx\n" -msgstr "poslední: index litery %hu, kód znaku 0x%lx\n" - -#: test/ftdump.c:533 test/ftmetric.c:284 -msgid "Error while retrieving embedded bitmaps table.\n" -msgstr "Chyba bìhem naèítání tabulky vlo¾ených bitmap.\n" - -#: test/ftdump.c:537 -msgid "embedded bitmap table\n" -msgstr "tabulka vlo¾ených bitmap\n" - -#: test/ftdump.c:540 -#, c-format -msgid " version of embedded bitmap table: 0x%lx\n" -msgstr " verze tabulky vlo¾ených bitmap: 0x%lx\n" - -#: test/ftdump.c:542 -#, c-format -msgid " number of embedded bitmap strikes: %lu\n" -msgstr " poèet blokù vlo¾ených bitmap: %lu\n" - -#: test/ftdump.c:552 -#, c-format -msgid " bitmap strike %hu/%lu: " -msgstr " blok vlo¾ených bitmap %hu/%lu: " - -#: test/ftdump.c:555 -#, c-format -msgid "%hux%hu pixels, %hu-bit depth, glyphs [%hu..%hu]\n" -msgstr "%hux%hu pixelù, bitová hloubka %hu, litery [%hu..%hu]\n" - -#: test/ftdump.c:564 -#, c-format -msgid " range format (%hu:%hu) glyphs %hu..%hu\n" -msgstr " úsek formátu (%hu:%hu) litery %hu..%hu\n" - -#: test/ftdump.c:615 -msgid "Error while loading GSUB table.\n" -msgstr "Chyba bìhem naèítání tabulky GSUB.\n" - -#: test/ftdump.c:619 -msgid "GSUB table\n" -msgstr "tabulka GSUB\n" - -#: test/ftdump.c:626 -msgid "Error while querying GSUB script list.\n" -msgstr "Chyba bìhem prohledávání seznamu GSUB skriptù.\n" - -#: test/ftdump.c:639 -#, c-format -msgid "Error while selecting GSUB script `%4.4s'.\n" -msgstr "Chyba pøi pokusu vybrat GSUB skript \"%4.4s\".\n" - -#: test/ftdump.c:644 test/ftdump.c:848 -#, c-format -msgid " script `%4.4s' (index %hu):\n" -msgstr " skript \"%4.4s\" (index %hu):\n" - -#: test/ftdump.c:652 -#, c-format -msgid "Error while querying GSUB default language system for script `%4.4s'.\n" -msgstr "" -"Chyba bìhem zkoumání bì¾ného GSUB jazykového systému pro skript \"%4.4s\".\n" - -#: test/ftdump.c:657 test/ftdump.c:861 -msgid " default language system:\n" -msgstr " bì¾ný jazykový systém:\n" - -#: test/ftdump.c:670 -#, c-format -msgid "" -"Error while selecting GSUB feature `%4.4s'\n" -"for default language system of script `%4.4s'.\n" -msgstr "" -"Chyba pøi výbìru GSUB vlastnosti \"%4.4s\"\n" -"pro bì¾ný jazykový systém skriptu \"%4.4s\".\n" - -#: test/ftdump.c:676 test/ftdump.c:757 test/ftdump.c:880 test/ftdump.c:961 -#, c-format -msgid " feature `%4.4s' (index %hu; lookup " -msgstr " vlastnost \"%4.4s\" (index %hu; vyhledávání " - -#: test/ftdump.c:692 -#, c-format -msgid "Error while querying GSUB language list for script `%4.4s'.\n" -msgstr "Chyba bìhem zkoumání GSUB seznamu jazykù pro skript \"%4.4s\".\n" - -#: test/ftdump.c:709 -#, c-format -msgid "Error while selecting GSUB language `%4.4s' for script `%4.4s'.\n" -msgstr "Chyba bìhem výbìru GSUB jazyka \"%4.4s\" pro skript \"%4.4s\".\n" - -#: test/ftdump.c:714 test/ftdump.c:918 -#, c-format -msgid " language `%4.4s' (index %hu):\n" -msgstr " jazyk \"%4.4s\" (index %hu):\n" - -#: test/ftdump.c:719 test/ftdump.c:923 -#, c-format -msgid " required feature index %hu (lookup " -msgstr " po¾adovaná vlastnost (index %hu; vyhledávání " - -#: test/ftdump.c:734 -#, c-format -msgid "" -"Error while querying GSUB feature list\n" -"for script `%4.4s', language `%4.4s'.\n" -msgstr "" -"Chyba bìhem zkoumání seznamu GSUB vlastností\n" -"pro skript \"%4.4s\", jazyk \"%4.4s\".\n" - -#: test/ftdump.c:751 -#, c-format -msgid "" -"Error while selecting GSUB feature `%4.4s'\n" -"for script `%4.4s', language `%4.4s'.\n" -msgstr "" -"Chyba bìhem výbìru GSUB vlastnosti \"%4.4s\"\n" -"pro skript \"%4.4s\", jazyk \"%4.4s\".\n" - -#: test/ftdump.c:776 test/ftdump.c:980 -msgid "" -"Lookups:\n" -"\n" -msgstr "" -"Vyhledávací údaje:\n" -"\n" - -#: test/ftdump.c:779 test/ftdump.c:983 -#, c-format -msgid " %hu: type %hu, flag 0x%x\n" -msgstr " %hu: typ %hu, pøíznaky 0x%x\n" - -#: test/ftdump.c:819 -msgid "Error while loading GPOS table.\n" -msgstr "Chyba bìhem naèítání tabulky GPOS.\n" - -#: test/ftdump.c:823 -msgid "GPOS table\n" -msgstr "tabulka GPOS\n" - -#: test/ftdump.c:830 -msgid "Error while querying GPOS script list.\n" -msgstr "Chyba bìhem prohledávání seznamu GPOS skriptù.\n" - -#: test/ftdump.c:843 -#, c-format -msgid "Error while selecting GPOS script `%4.4s'.\n" -msgstr "Chyba pøi pokusu vybrat GPOS skript \"%4.4s\".\n" - -#: test/ftdump.c:856 -#, c-format -msgid "Error while querying GPOS default language system for script `%4.4s'.\n" -msgstr "" -"Chyba bìhem zkoumání bì¾ného GPOS jazykového systému pro skript \"%4.4s\".\n" - -#: test/ftdump.c:874 -#, c-format -msgid "" -"Error while selecting GPOS feature `%4.4s'\n" -"for default language system of script `%4.4s'.\n" -msgstr "" -"Chyba pøi výbìru GPOS vlastnosti \"%4.4s\"\n" -"pro bì¾ný jazykový systém skriptu \"%4.4s\".\n" - -#: test/ftdump.c:896 -#, c-format -msgid "Error while querying GPOS language list for script `%4.4s'.\n" -msgstr "Chyba bìhem zkoumání GPOS seznamu jazykù pro skript \"%4.4s\".\n" - -#: test/ftdump.c:913 -#, c-format -msgid "Error while selecting GPOS language `%4.4s' for script `%4.4s'.\n" -msgstr "Chyba bìhem výbìru GPOS jazyka \"%4.4s\" pro skript \"%4.4s\".\n" - -#: test/ftdump.c:938 -#, c-format -msgid "" -"Error while querying GPOS feature list\n" -"for script `%4.4s', language `%4.4s'.\n" -msgstr "" -"Chyba bìhem zkoumání seznamu GPOS vlastností\n" -"pro skript \"%4.4s\", jazyk \"%4.4s\".\n" - -#: test/ftdump.c:955 -#, c-format -msgid "" -"Error while selecting GPOS feature `%4.4s'\n" -"for script `%4.4s', language `%4.4s'.\n" -msgstr "" -"Chyba bìhem výbìru GPOS vlastnosti \"%4.4s\"\n" -"pro skript \"%4.4s\", jazyk \"%4.4s\".\n" - -#: test/ftdump.c:1018 -msgid "ftdump: Simple TrueType Dumper -- part of the FreeType project" -msgstr "" -"ftdump: jednoduchý výpis obsahu písma TrueType -- souèást projektu FreeType" - -#: test/ftdump.c:1022 -#, c-format -msgid "" -"Usage: %s fontname[.ttf|.ttc]\n" -"\n" -msgstr "" -"Pou¾ití: %s název-písma[.ttf|.ttc]\n" -"\n" - -#: test/ftdump.c:1054 test/ftlint.c:134 test/ftmetric.c:228 test/ftsbit.c:127 -msgid "Error while initializing engine.\n" -msgstr "Chyba bìhem inicializace knihovny.\n" - -#: test/ftdump.c:1061 test/ftmetric.c:236 test/ftsbit.c:134 -msgid "Error while initializing embedded bitmap extension.\n" -msgstr "Chyba bìhem inicializace roz¹íøení pro vlo¾ené bitmapy.\n" - -#: test/ftdump.c:1068 -msgid "Error while initializing GSUB extension.\n" -msgstr "Chyba bìhem inicializace roz¹íøení pro substituce liter (GSUB).\n" - -#: test/ftdump.c:1075 -msgid "Error while initializing GPOS extension.\n" -msgstr "Chyba bìhem inicializace roz¹íøení pro umís»ování liter (GPOS).\n" - -#: test/ftdump.c:1091 test/ftlint.c:187 test/ftmetric.c:251 test/ftsbit.c:182 -#, c-format -msgid "Could not find or open %s.\n" -msgstr "Nelze nalézt nebo otevøít soubor %s.\n" - -#: test/ftdump.c:1094 test/ftlint.c:193 test/ftmetric.c:254 test/ftsbit.c:188 -#, c-format -msgid "Error while opening %s.\n" -msgstr "Chyba bìhem otevírání souboru %s.\n" - -#: test/ftlint.c:94 -msgid "" -"ftlint: Simple TrueType instruction tester -- part of the FreeType project" -msgstr "ftlint: test instrukcí písma TrueType -- souèást projektu FreeType" - -#: test/ftlint.c:99 -#, c-format -msgid "" -"Usage: %s ppem fontname[.ttf|.ttc] [fontname2..]\n" -"\n" -msgstr "" -"Pou¾ití: %s ppem název-písma[.ttf|.ttc] [název-dal¹ího-písma...]\n" -"\n" - -#: test/ftlint.c:226 test/ftsbit.c:225 -#, c-format -msgid "Could not set point size to %d.\n" -msgstr "Nelze nastavit velikost písma na %d bodù.\n" - -#: test/ftlint.c:239 -msgid "" -"Error with\n" -" " -msgstr "" -"Výskyt chyb\n" -" " - -#: test/ftlint.c:240 -#, c-format -msgid "glyph %4u: %s\n" -msgstr "litera %4d: %s\n" - -#: test/ftlint.c:253 -msgid "1 fail.\n" -msgstr "poèet chyb: 1\n" - -#: test/ftlint.c:255 -#, c-format -msgid "%d fails.\n" -msgstr "poèet chyb: %d\n" - -#: test/ftmetric.c:70 -msgid "" -"ftmetric: Simple TTF metrics/glyph dumper -- part of the FreeType project" -msgstr "ftmetric: výpis metrik písma TrueType -- souèást projektu FreeType" - -#: test/ftmetric.c:74 -#, c-format -msgid "" -"Usage: %s [options below] point fontname[.ttf|.ttc]\n" -"\n" -" -B show sbit's metrics (default: none)\n" -" -c C use C'th font index of TrueType collection (default: 0)\n" -" -i index glyph index (default: 0)\n" -" -r R use resolution R dpi (default: 72)\n" -"\n" -msgstr "" -"Pou¾ití: %s [volby (viz ní¾e)] bodová-velikost název-písma[.ttf|.ttc]\n" -"\n" -" -B zobraz rozmìry bitmapy (std: nezobrazuj)\n" -" -c C pou¾ij písmo indexu C z kolekce písem (std: 0)\n" -" -i index index litery (std: 0)\n" -" -r R rozli¹ení R bodù na palec (std: 72 dpi)\n" -"\n" - -#: test/ftmetric.c:261 -#, c-format -msgid "There are %d fonts in this collection.\n" -msgstr "Poèet písem v kolekci: %d.\n" - -#: test/ftmetric.c:266 -#, c-format -msgid "There is no collection with index %d in this font file.\n" -msgstr "V kolekci není ¾ádné písmo s indexem %d.\n" - -#: test/ftmetric.c:280 -msgid "There is no embedded bitmap data in the font.\n" -msgstr "V souboru písma nejsou vlo¾eny ¾ádné bitmapy.\n" - -#: test/ftmetric.c:310 -msgid "Could not set device resolutions.\n" -msgstr "Nelze nastavit rozli¹ení zaøízení.\n" - -#: test/ftmetric.c:317 -msgid "Could not reset instance.\n" -msgstr "Nelze inicializovat instanci.\n" - -#: test/ftmetric.c:323 -#, c-format -msgid "Instance metrics: ppemX %d, ppemY %d\n" -msgstr "Rozmìry instance: ppemX %d, ppemY %d\n" - -#: test/ftmetric.c:333 test/ftsbit.c:234 -msgid "Could not allocate glyph bitmap container.\n" -msgstr "Nelze vytvoøit kontejner vlo¾ených bitmap.\n" - -#: test/ftmetric.c:341 test/ftsbit.c:258 -#, c-format -msgid "Can't load bitmap for glyph %d.\n" -msgstr "Nelze naèíst bitmapu pro literu %d.\n" - -#: test/ftmetric.c:368 -msgid "Outline's metrics" -msgstr "Rozmìry obrysu" - -#: test/ftmetric.c:370 -msgid "Outline glyph\n" -msgstr "Obrys litery\n" - -#: test/ftsbit.c:90 -msgid "ftsbit: Simple TrueType `sbit' dumper -- part of the FreeType project" -msgstr "" -"ftsbit: výpis bitmap vlo¾ených do písma TrueType -- souèást projektu FreeType" - -#: test/ftsbit.c:95 -#, c-format -msgid "" -"Usage: %s ppem fontname[.ttf|.ttc] glyph_index [glyph_index2..]\n" -"\n" -msgstr "" -"Pou¾ití: %s ppem název-písma[.ttf|.ttc] index-litery [index-dal¹í-litery...]\n" -"\n" - -#: test/ftsbit.c:200 -msgid "Could not find embedded bitmaps in this font.\n" -msgstr "V souboru písma nelze nalézt ¾ádné vlo¾ené bitmapy.\n" - -#: test/ftsbit.c:206 -msgid "Error while loading embedded bitmaps.\n" -msgstr "Chyba bìhem naèítání vlo¾ených bitmap.\n" - -#: test/ftsbit.c:252 -#, c-format -msgid " no bitmap for glyph %d.\n" -msgstr " litera %d nemá ¾ádnou vlo¾enou bitmapu.\n" - -#: test/ftsbit.c:264 -#, c-format -msgid "glyph index %d = %dx%d pixels, " -msgstr "litera %d = %dx%d pixelù, " - -#: test/ftsbit.c:267 -#, c-format -msgid "advance = %ld, minBearing = [%ld,%ld]\n" -msgstr "posun = %ld, minBearing = [%ld,%ld]\n" diff --git a/Build/source/libs/freetype/freetype-1.5/po/de.po b/Build/source/libs/freetype/freetype-1.5/po/de.po deleted file mode 100644 index de1c08d1492..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/po/de.po +++ /dev/null @@ -1,885 +0,0 @@ -# German messages for FreeType. -# Copyright (C) 1997-2000 Erwin Dieterich -# Erwin Dieterich <Erwin.Dieterich.ED@Bayer-AG.de>, 1997-2000. -# -msgid "" -msgstr "" -"Project-Id-Version: FreeType 1.5\n" -"POT-Creation-Date: 2002-11-08 18:11+0000\n" -"PO-Revision-Date: 2002-11-10\n" -"Last-Translator: Werner Lemberg <wl@gnu.org>\n" -"Language-Team: German\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=iso-8859-1\n" -"Content-Transfer-Encoding: 8bit\n" - -#: lib/extend/ftxerr18.c:40 -msgid "" -"Welcome to the translation of the Freetype v.1 library!\n" -"\n" -"This message is not really part of the library (it is bracketed by\n" -" #if 0 / #endif), but is really intended to be the first one in the .po\n" -"file, and the first one that a new translator should see, to give hints.\n" -"\n" -"First, while this .po might seems big, the real interesting part of it\n" -"is only the messages in this file, lib/extend/ftxerr18.c. The other\n" -"messages are part of the demonstration programs, and are more intended\n" -"to help grasping how to use i18n with the Freetype library. So the real\n" -"work is the about 65 first ones. Unfortunately they are the harder ones!\n" -"\n" -"A difficulty is that there are some specialized vocabulary, about\n" -"``faces'', ``glyph'' and similar things. These are typographical things,\n" -"and this should be researched before attempting to translate the whole\n" -"thing. A quick look across the TrueType documentation might help to\n" -"understand many things, too.\n" -"\n" -"Best wiches for your translation!\n" -"Antoine Leca - 2002-11-08" -msgstr "no translation needed" - -#: lib/extend/ftxerr18.c:77 -msgid "Successful function call, no error." -msgstr "Funktionsaufruf erfolgreich." - -#: lib/extend/ftxerr18.c:80 -msgid "Invalid face handle." -msgstr "Ungültiges Schriftobjekt." - -#: lib/extend/ftxerr18.c:82 -msgid "Invalid instance handle." -msgstr "Ungültiges Instanzenobjekt." - -#: lib/extend/ftxerr18.c:84 -msgid "Invalid glyph handle." -msgstr "Ungültiges Glyphobjekt." - -#: lib/extend/ftxerr18.c:86 -msgid "Invalid charmap handle." -msgstr "Ungültiges Objekt für Zeichenkodierungstabelle (charmap)." - -#: lib/extend/ftxerr18.c:88 -msgid "Invalid result address." -msgstr "Ungültige Ergebnisadresse." - -#: lib/extend/ftxerr18.c:90 -msgid "Invalid glyph index." -msgstr "Ungültiger Glyphindex." - -#: lib/extend/ftxerr18.c:92 -msgid "Invalid argument." -msgstr "Ungültiger Übergabeparameter" - -#: lib/extend/ftxerr18.c:94 -msgid "Could not open file." -msgstr "Datei konnte nicht geöffnet werden." - -#: lib/extend/ftxerr18.c:96 -msgid "File is not a TrueType collection." -msgstr "Datei ist keine TrueType-Collection." - -#: lib/extend/ftxerr18.c:98 -msgid "Mandatory table missing." -msgstr "Eine obligatorische Tabelle fehlt." - -#: lib/extend/ftxerr18.c:100 -msgid "Invalid horizontal metrics (hmtx table broken)." -msgstr "Ungültige horizontale Metrik (`hmtx'-Tabelle defekt)." - -#: lib/extend/ftxerr18.c:102 -msgid "Invalid charmap format." -msgstr "Ungültiges Format der Zeichenkodierungstabelle (charmap)." - -#: lib/extend/ftxerr18.c:104 -msgid "Invalid ppem value." -msgstr "Ungültiger ppem-Wert." - -#: lib/extend/ftxerr18.c:106 -msgid "Invalid vertical metrics (vmtx table broken)." -msgstr "Ungültige vertikale Metrik (`vmtx'-Tabelle defekt)." - -#: lib/extend/ftxerr18.c:109 -msgid "Invalid file format." -msgstr "Ungültiges Dateiformat." - -#: lib/extend/ftxerr18.c:112 -msgid "Invalid engine." -msgstr "Ungültige FreeType-Maschine (engine)." - -#: lib/extend/ftxerr18.c:114 -msgid "Too many extensions." -msgstr "Zu viele Erweiterungen." - -#: lib/extend/ftxerr18.c:116 -msgid "Extensions unsupported." -msgstr "Erweiterungen nicht unterstützt." - -#: lib/extend/ftxerr18.c:118 -msgid "Invalid extension id." -msgstr "Ungültige Erweiterungs-ID." - -#: lib/extend/ftxerr18.c:121 -msgid "No vertical data in font." -msgstr "Keine vertikale Informationen in der Schrift." - -#: lib/extend/ftxerr18.c:124 -msgid "Maximum Profile (maxp) table missing." -msgstr "`Maximum Profile (maxp)'-Tabelle fehlt." - -#: lib/extend/ftxerr18.c:126 -msgid "Font Header (head) table missing." -msgstr "`Font Header (head)'-Tabelle fehlt." - -#: lib/extend/ftxerr18.c:128 -msgid "Horizontal Header (hhea) table missing." -msgstr "`Horizontal Header (hhea)'-Tabelle fehlt." - -#: lib/extend/ftxerr18.c:130 -msgid "Index to Location (loca) table missing." -msgstr "`Index to Location (loca)'-Tabelle fehlt." - -#: lib/extend/ftxerr18.c:132 -msgid "Naming (name) table missing." -msgstr "`Naming (name)'-Tabelle fehlt." - -#: lib/extend/ftxerr18.c:134 -msgid "Character to Glyph Index Mapping (cmap) tables missing." -msgstr "`Character to Glyph Index Mapping (cmap)'-Tabellen fehlen." - -#: lib/extend/ftxerr18.c:136 -msgid "Horizontal Metrics (hmtx) table missing." -msgstr "`Horizontal Metrics (hmtx)'-Tabelle fehlt." - -#: lib/extend/ftxerr18.c:138 -msgid "OS/2 table missing." -msgstr "`OS/2'-Tabelle fehlt." - -#: lib/extend/ftxerr18.c:140 -msgid "PostScript (post) table missing." -msgstr "`PostScript (post)'-Tabelle fehlt." - -#: lib/extend/ftxerr18.c:142 -msgid "Glyph (glyf) table missing." -msgstr "`Glyph (glyf)'-Tabelle fehlt." - -#: lib/extend/ftxerr18.c:147 -msgid "Out of memory." -msgstr "Zu wenig Speicher." - -#: lib/extend/ftxerr18.c:152 -msgid "Invalid file offset." -msgstr "Ungültiger Dateioffset." - -#: lib/extend/ftxerr18.c:154 -msgid "Invalid file read." -msgstr "Ungültiger Lesezugriff auf Datei." - -#: lib/extend/ftxerr18.c:156 -msgid "Invalid frame access." -msgstr "Ungültiger Zugriff auf Speicherfenster (frame)." - -#: lib/extend/ftxerr18.c:161 -msgid "Too many points." -msgstr "Zu viele Punkte." - -#: lib/extend/ftxerr18.c:163 -msgid "Too many contours." -msgstr "Zu viele Konturen." - -#: lib/extend/ftxerr18.c:165 -msgid "Invalid composite glyph." -msgstr "Ungültiger zusammengesetzter Glyph." - -#: lib/extend/ftxerr18.c:167 -msgid "Too many instructions." -msgstr "Zu viele Programminstruktionen." - -#: lib/extend/ftxerr18.c:169 -msgid "Too many function definitions (FDEF)." -msgstr "Zu viele Funktionsdefinitionen (FDEF)." - -#: lib/extend/ftxerr18.c:174 -msgid "Invalid opcode." -msgstr "Ungültiger Opcode." - -#: lib/extend/ftxerr18.c:176 -msgid "Too few arguments." -msgstr "Zu wenig Übergabeparameter." - -#: lib/extend/ftxerr18.c:178 -msgid "Stack overflow." -msgstr "Stack-Überlauf." - -#: lib/extend/ftxerr18.c:180 -msgid "Code overflow." -msgstr "Code-Überlauf." - -#: lib/extend/ftxerr18.c:182 -msgid "Bad argument." -msgstr "Falscher Übergabeparameter." - -#: lib/extend/ftxerr18.c:184 -msgid "Divide by zero." -msgstr "Division durch Null." - -#: lib/extend/ftxerr18.c:186 -msgid "Storage overflow." -msgstr "Speicherüberlauf." - -#: lib/extend/ftxerr18.c:188 -msgid "Control Value (cvt) table overflow." -msgstr "Überlauf der `Control Value (cvt)'-Tabelle." - -#: lib/extend/ftxerr18.c:190 -msgid "Invalid reference." -msgstr "Ungültige Referenz." - -#: lib/extend/ftxerr18.c:192 -msgid "Invalid distance." -msgstr "Ungültiger Abstand." - -#: lib/extend/ftxerr18.c:194 -msgid "Interpolate twilight points." -msgstr "Interpolation von Punkten der Zwielichtzone." - -#: lib/extend/ftxerr18.c:196 -msgid "`DEBUG' opcode found." -msgstr "`DEBUG'-Opcode gefunden." - -#: lib/extend/ftxerr18.c:198 -msgid "`ENDF' in byte-code stream." -msgstr "`ENDF' in Bytecode-Strom." - -#: lib/extend/ftxerr18.c:200 -msgid "Out of code ranges." -msgstr "Außerhalb der Code-Bereiche." - -#: lib/extend/ftxerr18.c:202 -msgid "Nested function definitions." -msgstr "Verschachtelte Funktionsdefinitionen." - -#: lib/extend/ftxerr18.c:204 -msgid "Invalid code range." -msgstr "Ungültiger Codebereich." - -#: lib/extend/ftxerr18.c:206 -msgid "Invalid displacement." -msgstr "Ungültige Verschiebung." - -#: lib/extend/ftxerr18.c:208 -msgid "Endless loop encountered while executing instructions." -msgstr "" -"Unendliche Schleife beim Ausführen\n" -"der Programminstruktionen entdeckt." - -#: lib/extend/ftxerr18.c:213 -msgid "Nested frame access." -msgstr "Verschachtelter Zugriff auf Speicherfenster (frame)." - -#: lib/extend/ftxerr18.c:215 -msgid "Invalid cache list." -msgstr "Ungütlige Cacheliste." - -#: lib/extend/ftxerr18.c:217 -msgid "Could not find context." -msgstr "Der Kontext konnte nicht gefunden werden." - -#: lib/extend/ftxerr18.c:219 -msgid "Unlisted object." -msgstr "Objekt ist nicht aufgeführt." - -#: lib/extend/ftxerr18.c:224 -msgid "Raster pool overflow." -msgstr "Überlauf des Rasterpools." - -#: lib/extend/ftxerr18.c:226 -msgid "Raster: negative height encountered." -msgstr "Raster: Negative Höhe gefunden." - -#: lib/extend/ftxerr18.c:228 -msgid "Raster: invalid value." -msgstr "Raster: Ungültiger Wert." - -#: lib/extend/ftxerr18.c:230 -msgid "Raster not initialized." -msgstr "Raster nicht initialisiert." - -#: lib/extend/ftxerr18.c:235 -msgid "Invalid kerning (kern) table format." -msgstr "Ungültiges Format der `Kerning (kern)'-Tabelle." - -#: lib/extend/ftxerr18.c:237 -msgid "Invalid kerning (kern) table." -msgstr "Ungültige `Kerning (kern)'-Tabelle." - -#: lib/extend/ftxerr18.c:240 -msgid "Invalid PostScript (post) table format." -msgstr "Ungültiges Format der `PostScript (post)'-Tabelle." - -#: lib/extend/ftxerr18.c:242 -msgid "Invalid PostScript (post) table." -msgstr "Ungültige `PostScript (post)'-Tabelle." - -#: lib/extend/ftxerr18.c:247 -msgid "Invalid TrueType Open subtable format." -msgstr "Ungültiges Format einer TrueType-Open-Subtabelle." - -#: lib/extend/ftxerr18.c:249 -msgid "Invalid TrueType Open subtable." -msgstr "Ungültige TrueType-Open-Subtabelle." - -#: lib/extend/ftxerr18.c:251 -msgid "Glyph(s) not covered by lookup." -msgstr "Glyph(en) von Lookup-Prozedur nicht erfaßt." - -#: lib/extend/ftxerr18.c:253 -msgid "Too many nested context substitutions." -msgstr "Zu viele verschachtelte Kontext-Substitutionen." - -#: lib/extend/ftxerr18.c:255 -msgid "No MM (Adobe MultipleMaster) interpreter available." -msgstr "Kein MM-Interpreter (für Adobe MultipleMaster Fonts) verfügbar." - -#: lib/extend/ftxerr18.c:258 -msgid "Invalid glyph substitution (GSUB) table format." -msgstr "Ungültiges Format der `glyph substitution (GSUB)'-Tabelle." - -#: lib/extend/ftxerr18.c:260 -msgid "Invalid glyph substitution (GSUB) table." -msgstr "Ungültige `glyph substitution (GSUB)'-Tabelle." - -#: lib/extend/ftxerr18.c:263 -msgid "Invalid glyph positioning (GPOS) table format." -msgstr "Ungültiges Format der `glyph positioning (GPOS)'-Tabelle." - -#: lib/extend/ftxerr18.c:265 -msgid "Invalid glyph positioning (GPOS) table." -msgstr "Ungültige `glyph positioning (GPOS)'-Tabelle." - -#: lib/extend/ftxerr18.c:268 -msgid "Invalid glyph definition (GDEF) table format." -msgstr "Ungültiges Format der `glyph definition (GDEF)'-Tabelle." - -#: lib/extend/ftxerr18.c:270 -msgid "Invalid glyph definition (GDEF) table." -msgstr "Ungültige `glyph definition (GDEF)'-Tabelle." - -#: lib/extend/ftxerr18.c:277 -msgid "Invalid Error Number." -msgstr "Ungültige Fehler-ID." - -#: test/fterror.c:49 -msgid "" -"fterror: test TT_ErrToString18 functionality\n" -"\n" -msgstr "" -"fterror: Teste Funktionalität von TT_ErrToString18\n" -"\n" - -#: test/fterror.c:50 -msgid "" -" with an optional numerical argument, dumps the associated message.\n" -"\n" -msgstr "" -" ein optionales numerisches Argument liefert die assoziierte Meldung.\n" -"\n" - -#: test/fterror.c:73 -msgid "Start of fterror.\n" -msgstr "Beginn von fterror.\n" - -#: test/fterror.c:81 -msgid "End of fterror.\n" -msgstr "Ende von fterror.\n" - -#: test/fterror.c:96 -msgid "Freetype error code 0x%04lX (%lu): %s\n" -msgstr "FreeType Fehlercode 0x%04lX (%lu): %s\n" - -#: test/ftdump.c:169 test/ftlint.c:207 test/ftmetric.c:294 -msgid "Could not create glyph container.\n" -msgstr "Konnte den Glyphcontainer nicht erzeugen.\n" - -#: test/ftdump.c:179 test/ftlint.c:215 test/ftmetric.c:303 test/ftsbit.c:214 -msgid "Could not create instance.\n" -msgstr "Konnte die Instanz nicht erzeugen.\n" - -#: test/ftdump.c:188 -msgid "Could not create second instance.\n" -msgstr "Konnte die zweite Instanz nicht erzeugen.\n" - -#: test/ftdump.c:194 -msgid "Memory footprint statistics:\n" -msgstr "Speicherabdruck-Statistik:\n" - -#: test/ftdump.c:202 -msgid "face object" -msgstr "Schriftobjekt" - -#: test/ftdump.c:203 -msgid "glyph object" -msgstr "Glyphobjekt" - -#: test/ftdump.c:204 -msgid "instance object" -msgstr "Instanzobjekt" - -#: test/ftdump.c:208 -msgid "exec. context object" -msgstr "Ausführbares Kontextobjekt" - -#: test/ftdump.c:215 -msgid "total memory usage" -msgstr "Gesamtverbrauch an Speicher" - -#: test/ftdump.c:223 test/ftdump.c:579 test/ftdump.c:789 test/ftdump.c:993 -#: test/ftdump.c:1139 test/ftlint.c:274 test/ftlint.c:287 test/ftmetric.c:390 -#: test/ftsbit.c:286 -#, c-format -msgid "FreeType error message: %s\n" -msgstr "FreeType Fehlermeldung: %s\n" - -#: test/ftdump.c:300 -msgid "font name table entries\n" -msgstr "Einträge in der `name'-Tabelle der Schrift\n" - -#: test/ftdump.c:310 -#, c-format -msgid "" -"PostScript name: %s\n" -"\n" -msgstr "" -"PostScript-Name: %s\n" -"\n" - -#: test/ftdump.c:333 -msgid "character map encodings\n" -msgstr "Zeichenkodierungstabellen (cmaps)\n" - -#: test/ftdump.c:340 test/ftdump.c:488 -msgid "The file doesn't seem to have any encoding table.\n" -msgstr "Diese Datei enthält anscheinend keine `cmap'-Tabelle.\n" - -#: test/ftdump.c:344 test/ftdump.c:492 -#, c-format -msgid "" -"There are %hu encodings:\n" -"\n" -msgstr "" -"Es gibt %hu Kodierungen:\n" -"\n" - -#: test/ftdump.c:349 -#, c-format -msgid "encoding %2u: " -msgstr "Kodierung %2u: " - -#: test/ftdump.c:376 test/ftdump.c:385 test/ftdump.c:452 -#, c-format -msgid "Unknown value %hu" -msgstr "Unbekannter Wert %hu" - -#: test/ftdump.c:459 -msgid "Unknown" -msgstr "Unbekannt" - -#: test/ftdump.c:481 -msgid "ftxcmap test\n" -msgstr "Test von ftxcmap\n" - -#: test/ftdump.c:498 -#, c-format -msgid "encoding %2u:\n" -msgstr "Kodierung %2u:\n" - -#: test/ftdump.c:503 -#, c-format -msgid "first: glyph index %hu, character code 0x%lx\n" -msgstr "Erster Eintrag: Glyphindex %hu, Zeichenkode 0x%lx\n" - -#: test/ftdump.c:507 -#, c-format -msgid "next: glyph index %hu, character code 0x%lx\n" -msgstr "Nächster Eintrag: Glyphindex %hu, Zeichenkode 0x%lx\n" - -#: test/ftdump.c:511 -#, c-format -msgid "last: glyph index %hu, character code 0x%lx\n" -msgstr "Letzter Eintrag: Glyphindex %hu, Zeichenkode 0x%lx\n" - -#: test/ftdump.c:533 test/ftmetric.c:284 -msgid "Error while retrieving embedded bitmaps table.\n" -msgstr "Fehler beim Laden der `embedded bitmaps'-Tabelle.\n" - -#: test/ftdump.c:537 -msgid "embedded bitmap table\n" -msgstr "`embedded bitmap'-Tabelle\n" - -#: test/ftdump.c:540 -#, c-format -msgid " version of embedded bitmap table: 0x%lx\n" -msgstr " Version der `embedded bitmap'-Tabelle: 0x%lx\n" - -#: test/ftdump.c:542 -#, c-format -msgid " number of embedded bitmap strikes: %lu\n" -msgstr " Anzahl der eingebetteten Bitmapsätze: %lu\n" - -#: test/ftdump.c:552 -#, c-format -msgid " bitmap strike %hu/%lu: " -msgstr " Bitmapsatz %hu/%hu: " - -#: test/ftdump.c:555 -#, c-format -msgid "%hux%hu pixels, %hu-bit depth, glyphs [%hu..%hu]\n" -msgstr "%hux%hu Pixel, Tiefe %hu Bit, Glyphbereich [%hu-%hu]\n" - -#: test/ftdump.c:564 -#, c-format -msgid " range format (%hu:%hu) glyphs %hu..%hu\n" -msgstr " Bereichsformat (%hu:%hu) Glyphen %hu-%hu\n" - -#: test/ftdump.c:615 -msgid "Error while loading GSUB table.\n" -msgstr "Fehler beim Laden der `GSUB'-Tabelle.\n" - -#: test/ftdump.c:619 -msgid "GSUB table\n" -msgstr "`GSUB'-Tabelle\n" - -#: test/ftdump.c:626 -msgid "Error while querying GSUB script list.\n" -msgstr "Fehler bei Abfrage der GSUB Schriftenliste.\n" - -#: test/ftdump.c:639 -#, c-format -msgid "Error while selecting GSUB script `%4.4s'.\n" -msgstr "Fehler bei Auswahl der GSUB Schrift `%4.4s'.\n" - -#: test/ftdump.c:644 test/ftdump.c:848 -#, c-format -msgid " script `%4.4s' (index %hu):\n" -msgstr " Schrift `%4.4s' (Index %hu):\n" - -#: test/ftdump.c:652 -#, c-format -msgid "Error while querying GSUB default language system for script `%4.4s'.\n" -msgstr "" -"Fehler bei Abfrage der GSUB-Standardsprachenwerte für Schrift `%4.4s'.\n" - -#: test/ftdump.c:657 test/ftdump.c:861 -msgid " default language system:\n" -msgstr " Standardsprachenwerte:\n" - -#: test/ftdump.c:670 -#, c-format -msgid "" -"Error while selecting GSUB feature `%4.4s'\n" -"for default language system of script `%4.4s'.\n" -msgstr "" -"Fehler bei Auswahl des GSUB-Merkmals `%4.4s'\n" -"für Standardsprachenwert der Schrift `%4.4s'.\n" - -#: test/ftdump.c:676 test/ftdump.c:757 test/ftdump.c:880 test/ftdump.c:961 -#, c-format -msgid " feature `%4.4s' (index %hu; lookup " -msgstr " Merkmal `%4.4s' (Index %hu; Lookup " - -#: test/ftdump.c:692 -#, c-format -msgid "Error while querying GSUB language list for script `%4.4s'.\n" -msgstr "Fehler bei Abfrage der GSUB-Sprachenliste für Schrift `%4.4s'.\n" - -#: test/ftdump.c:709 -#, c-format -msgid "Error while selecting GSUB language `%4.4s' for script `%4.4s'.\n" -msgstr "Fehler bei Auswahl der GSUB-Sprache `%4.4s' für Schrift `%4.4s'.\n" - -#: test/ftdump.c:714 test/ftdump.c:918 -#, c-format -msgid " language `%4.4s' (index %hu):\n" -msgstr " Sprache `%4.4s' (Index %hu):\n" - -#: test/ftdump.c:719 test/ftdump.c:923 -#, c-format -msgid " required feature index %hu (lookup " -msgstr " Benötigtes Merkmal: Index %hu (Lookup " - -#: test/ftdump.c:734 -#, c-format -msgid "" -"Error while querying GSUB feature list\n" -"for script `%4.4s', language `%4.4s'.\n" -msgstr "" -"Fehler bei Abfrage der GSUB-Merkmaltabelle\n" -"für Schrift `%4.4s', Sprache `%4.4s'.\n" - -#: test/ftdump.c:751 -#, c-format -msgid "" -"Error while selecting GSUB feature `%4.4s'\n" -"for script `%4.4s', language `%4.4s'.\n" -msgstr "" -"Fehler bei Auswahl des GSUB-Merkmals `%4.4s'\n" -"für Schrift `%4.4s', Sprache `%4.4s'.\n" - -#: test/ftdump.c:776 test/ftdump.c:980 -msgid "" -"Lookups:\n" -"\n" -msgstr "" -"Lookups:\n" -"\n" - -#: test/ftdump.c:779 test/ftdump.c:983 -#, c-format -msgid " %hu: type %hu, flag 0x%x\n" -msgstr " %hu: Typ %hu, Flag 0x%x\n" - -#: test/ftdump.c:819 -msgid "Error while loading GPOS table.\n" -msgstr "Fehler beim Laden der `GPOS'-Tabelle.\n" - -#: test/ftdump.c:823 -msgid "GPOS table\n" -msgstr "`GPOS'-Tabelle\n" - -#: test/ftdump.c:830 -msgid "Error while querying GPOS script list.\n" -msgstr "Fehler bei Abfrage der GPOS Schriftenliste.\n" - -#: test/ftdump.c:843 -#, c-format -msgid "Error while selecting GPOS script `%4.4s'.\n" -msgstr "Fehler bei Auswahl der GPOS Schrift `%4.4s'.\n" - -#: test/ftdump.c:856 -#, c-format -msgid "Error while querying GPOS default language system for script `%4.4s'.\n" -msgstr "" -"Fehler bei Abfrage der GPOS-Standardsprachenwerte für Schrift `%4.4s'.\n" - -#: test/ftdump.c:874 -#, c-format -msgid "" -"Error while selecting GPOS feature `%4.4s'\n" -"for default language system of script `%4.4s'.\n" -msgstr "" -"Fehler bei Auswahl des GPOS-Merkmals `%4.4s'\n" -"für Standardsprachenwert der Schrift `%4.4s'.\n" - -#: test/ftdump.c:896 -#, c-format -msgid "Error while querying GPOS language list for script `%4.4s'.\n" -msgstr "Fehler bei Abfrage der GPOS-Sprachenliste für Schrift `%4.4s'.\n" - -#: test/ftdump.c:913 -#, c-format -msgid "Error while selecting GPOS language `%4.4s' for script `%4.4s'.\n" -msgstr "Fehler bei Auswahl der GPOS-Sprache `%4.4s' für Schrift `%4.4s'.\n" - -#: test/ftdump.c:938 -#, c-format -msgid "" -"Error while querying GPOS feature list\n" -"for script `%4.4s', language `%4.4s'.\n" -msgstr "" -"Fehler bei Abfrage der GPOS-Merkmaltabelle\n" -"für Schrift `%4.4s', Sprache `%4.4s'.\n" - -#: test/ftdump.c:955 -#, c-format -msgid "" -"Error while selecting GPOS feature `%4.4s'\n" -"for script `%4.4s', language `%4.4s'.\n" -msgstr "" -"Fehler bei Auswahl des GPOS-Merkmals `%4.4s'\n" -"für Schrift `%4.4s', Sprache `%4.4s'.\n" - -#: test/ftdump.c:1018 -msgid "ftdump: Simple TrueType Dumper -- part of the FreeType project" -msgstr "ftdump: Ein einfacher TrueType Dumper -- Teil des FreeType-Projekts" - -#: test/ftdump.c:1022 -#, c-format -msgid "" -"Usage: %s fontname[.ttf|.ttc]\n" -"\n" -msgstr "" -"Verwendung: %s Fontname[.ttf|.ttc]\n" -"\n" - -#: test/ftdump.c:1054 test/ftlint.c:134 test/ftmetric.c:228 test/ftsbit.c:127 -msgid "Error while initializing engine.\n" -msgstr "Fehler beim Starten von FreeType.\n" - -#: test/ftdump.c:1061 test/ftmetric.c:236 test/ftsbit.c:134 -msgid "Error while initializing embedded bitmap extension.\n" -msgstr "Fehler bei Initialisierung der Erweiterung für eingebettete Bitmaps.\n" - -#: test/ftdump.c:1068 -msgid "Error while initializing GSUB extension.\n" -msgstr "Fehler beim Starten der GSUB-Erweiterung.\n" - -#: test/ftdump.c:1075 -msgid "Error while initializing GPOS extension.\n" -msgstr "Fehler beim Starten der GPOS-Erweiterung.\n" - -#: test/ftdump.c:1091 test/ftlint.c:187 test/ftmetric.c:251 test/ftsbit.c:182 -#, c-format -msgid "Could not find or open %s.\n" -msgstr "Datei `%s' konnte nicht gefunden oder geöffnet werden.\n" - -#: test/ftdump.c:1094 test/ftlint.c:193 test/ftmetric.c:254 test/ftsbit.c:188 -#, c-format -msgid "Error while opening %s.\n" -msgstr "Fehler beim Öffnen von %s.\n" - -#: test/ftlint.c:94 -msgid "" -"ftlint: Simple TrueType instruction tester -- part of the FreeType project" -msgstr "" -"ftlint: Ein einfacher TTF Instruktionen-Tester -- Teil des FreeType-Projekts" - -#: test/ftlint.c:99 -#, c-format -msgid "" -"Usage: %s ppem fontname[.ttf|.ttc] [fontname2..]\n" -"\n" -msgstr "" -"Verwendung: %s ppem Fontname[.ttf|.ttc] [Fontname2..]\n" -"\n" - -#: test/ftlint.c:226 test/ftsbit.c:225 -#, c-format -msgid "Could not set point size to %d.\n" -msgstr "Konnte die Schriftgröße nicht auf %d Punkt setzen.\n" - -#: test/ftlint.c:239 -msgid "" -"Error with\n" -" " -msgstr "" -"Fehler bei\n" -" " - -#: test/ftlint.c:240 -#, c-format -msgid "glyph %4u: %s\n" -msgstr "Glyph %4u: %s\n" - -#: test/ftlint.c:253 -msgid "1 fail.\n" -msgstr "einmal gescheitert.\n" - -#: test/ftlint.c:255 -#, c-format -msgid "%d fails.\n" -msgstr "%d mal gescheitert.\n" - -#: test/ftmetric.c:70 -msgid "" -"ftmetric: Simple TTF metrics/glyph dumper -- part of the FreeType project" -msgstr "" -"ftmetric: Ein einfacher TTF Metrik/Glyph-Dumper -- Teil des FreeType-Projekts" - -#: test/ftmetric.c:74 -#, c-format -msgid "" -"Usage: %s [options below] point fontname[.ttf|.ttc]\n" -"\n" -" -B show sbit's metrics (default: none)\n" -" -c C use C'th font index of TrueType collection (default: 0)\n" -" -i index glyph index (default: 0)\n" -" -r R use resolution R dpi (default: 72)\n" -"\n" -msgstr "" -"Verwendung: %s [Optionen s.u.] Punktgröße Fontname[.ttf|.ttc]\n" -"\n" -" -B zeige Metriken von eingebetteten Bitmaps (Standardwert: nein)\n" -" -c C verwende den `C'ten Fontindex der TrueType-Collection\n" -" (Standardwert: 0)\n" -" -i Index Glyphindex (Standardwert: 0)\n" -" -r R verwende Auflösung `R' dpi (Standardwert: 72)\n" -"\n" - -#: test/ftmetric.c:261 -#, c-format -msgid "There are %d fonts in this collection.\n" -msgstr "Es gibt %d Fonts in dieser TrueType-Collection.\n" - -#: test/ftmetric.c:266 -#, c-format -msgid "There is no collection with index %d in this font file.\n" -msgstr "In dieser Fontdatei gibt es keine Collection mit Index %d.\n" - -#: test/ftmetric.c:280 -msgid "There is no embedded bitmap data in the font.\n" -msgstr "Konnte keine eingebetteten Bitmaps in Fontdatei finden.\n" - -#: test/ftmetric.c:310 -msgid "Could not set device resolutions.\n" -msgstr "Konnte die Geräteauflösung nicht setzen.\n" - -#: test/ftmetric.c:317 -msgid "Could not reset instance.\n" -msgstr "Konnte die Instanz nicht neu setzen.\n" - -#: test/ftmetric.c:323 -#, c-format -msgid "Instance metrics: ppemX %d, ppemY %d\n" -msgstr "Instanzmetriken: ppemX %d, ppemY %d\n" - -#: test/ftmetric.c:333 test/ftsbit.c:234 -msgid "Could not allocate glyph bitmap container.\n" -msgstr "Konnte den Glyphcontainer für Bitmaps nicht erzeugen.\n" - -#: test/ftmetric.c:341 test/ftsbit.c:258 -#, c-format -msgid "Can't load bitmap for glyph %d.\n" -msgstr "Kann Bitmap für Glyph %d nicht laden.\n" - -#: test/ftmetric.c:368 -msgid "Outline's metrics" -msgstr "Vektormetriken" - -#: test/ftmetric.c:370 -msgid "Outline glyph\n" -msgstr "Vektorglyph\n" - -#: test/ftsbit.c:90 -msgid "ftsbit: Simple TrueType `sbit' dumper -- part of the FreeType project" -msgstr "" -"ftsbit: Ein einfacher TrueType `sbit' Dumper -- Teil des FreeType-Projekts" - -#: test/ftsbit.c:95 -#, c-format -msgid "" -"Usage: %s ppem fontname[.ttf|.ttc] glyph_index [glyph_index2..]\n" -"\n" -msgstr "" -"Verwendung: %s ppem Fontname[.ttf|.ttc] Glyphindex [Glyphindex2..]\n" -"\n" - -#: test/ftsbit.c:200 -msgid "Could not find embedded bitmaps in this font.\n" -msgstr "Konnte keine eingebetteten Bitmaps in Fontdatei finden.\n" - -#: test/ftsbit.c:206 -msgid "Error while loading embedded bitmaps.\n" -msgstr "Fehler beim Laden von eingebettete Bitmaps.\n" - -#: test/ftsbit.c:252 -#, c-format -msgid " no bitmap for glyph %d.\n" -msgstr " keine Bitmap für Glyph %d.\n" - -#: test/ftsbit.c:264 -#, c-format -msgid "glyph index %d = %dx%d pixels, " -msgstr "Glyphindex %d = %dx%d Pixel, " - -#: test/ftsbit.c:267 -#, c-format -msgid "advance = %ld, minBearing = [%ld,%ld]\n" -msgstr "Vorschubbreite = %ld, `minBearing' = [%ld,%ld]\n" diff --git a/Build/source/libs/freetype/freetype-1.5/po/es.po b/Build/source/libs/freetype/freetype-1.5/po/es.po deleted file mode 100644 index 0ff48e5b9be..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/po/es.po +++ /dev/null @@ -1,888 +0,0 @@ -# Spanish messages for FreeType. -# Copyright (C) 1998-2002 Miguel A. Pérez Valdenebro -# Miguel A. Pérez Valdenebro <map@fujitsu.es>, 1998. -# -msgid "" -msgstr "" -"Project-Id-Version: FreeType 1.5\n" -"POT-Creation-Date: 2002-11-08 18:11+0000\n" -"PO-Revision-Date: 2002-11-08 18:30+0100\n" -"Last-Translator: \n" -"Language-Team: Spanish\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=iso-8859-1\n" -"Content-Transfer-Encoding: 8bit\n" - -#: lib/extend/ftxerr18.c:40 -msgid "" -"Welcome to the translation of the Freetype v.1 library!\n" -"\n" -"This message is not really part of the library (it is bracketed by\n" -" #if 0 / #endif), but is really intended to be the first one in the .po\n" -"file, and the first one that a new translator should see, to give hints.\n" -"\n" -"First, while this .po might seems big, the real interesting part of it\n" -"is only the messages in this file, lib/extend/ftxerr18.c. The other\n" -"messages are part of the demonstration programs, and are more intended\n" -"to help grasping how to use i18n with the Freetype library. So the real\n" -"work is the about 65 first ones. Unfortunately they are the harder ones!\n" -"\n" -"A difficulty is that there are some specialized vocabulary, about\n" -"``faces'', ``glyph'' and similar things. These are typographical things,\n" -"and this should be researched before attempting to translate the whole\n" -"thing. A quick look across the TrueType documentation might help to\n" -"understand many things, too.\n" -"\n" -"Best wiches for your translation!\n" -"Antoine Leca - 2002-11-08" -msgstr "" - -#: lib/extend/ftxerr18.c:77 -msgid "Successful function call, no error." -msgstr "Éxito en la llamada a función." - -#: lib/extend/ftxerr18.c:80 -msgid "Invalid face handle." -msgstr "Ticket de diseño inválido." - -#: lib/extend/ftxerr18.c:82 -msgid "Invalid instance handle." -msgstr "Ticket de instancia inválido." - -#: lib/extend/ftxerr18.c:84 -msgid "Invalid glyph handle." -msgstr "Ticket de glifo inválido." - -#: lib/extend/ftxerr18.c:86 -msgid "Invalid charmap handle." -msgstr "Ticket de codificación inválido." - -#: lib/extend/ftxerr18.c:88 -msgid "Invalid result address." -msgstr "Dirección del resultado inválida." - -#: lib/extend/ftxerr18.c:90 -msgid "Invalid glyph index." -msgstr "Índice de glifo inválido." - -#: lib/extend/ftxerr18.c:92 -msgid "Invalid argument." -msgstr "Argumento inválido." - -#: lib/extend/ftxerr18.c:94 -msgid "Could not open file." -msgstr "No se puedo abrir el fichero." - -#: lib/extend/ftxerr18.c:96 -msgid "File is not a TrueType collection." -msgstr "El fichero no es una colección TrueType." - -#: lib/extend/ftxerr18.c:98 -msgid "Mandatory table missing." -msgstr "No se encuentra une tabla obligatoria." - -#: lib/extend/ftxerr18.c:100 -msgid "Invalid horizontal metrics (hmtx table broken)." -msgstr "Dimensiones horizontales (tabla `hmtx') incorrectas." - -#: lib/extend/ftxerr18.c:102 -msgid "Invalid charmap format." -msgstr "Formato de codificación inválido." - -#: lib/extend/ftxerr18.c:104 -msgid "Invalid ppem value." -msgstr "Tamaño en pixel invalido." - -#: lib/extend/ftxerr18.c:106 -msgid "Invalid vertical metrics (vmtx table broken)." -msgstr "Dimensiones verticales (tabla `vmtx') incorrectas." - -#: lib/extend/ftxerr18.c:109 -msgid "Invalid file format." -msgstr "Formato de fichero inválido." - -#: lib/extend/ftxerr18.c:112 -msgid "Invalid engine." -msgstr "Instancia de la biblioteca incorrecta." - -#: lib/extend/ftxerr18.c:114 -msgid "Too many extensions." -msgstr "Demasiadas extensiones (max:8)." - -#: lib/extend/ftxerr18.c:116 -msgid "Extensions unsupported." -msgstr "Extensión no soportada." - -#: lib/extend/ftxerr18.c:118 -msgid "Invalid extension id." -msgstr "Identificador de extensión inválido." - -#: lib/extend/ftxerr18.c:121 -msgid "No vertical data in font." -msgstr "Placa sin datos verticales." - -#: lib/extend/ftxerr18.c:124 -msgid "Maximum Profile (maxp) table missing." -msgstr "No se encuentra la tabla `maxp'." - -#: lib/extend/ftxerr18.c:126 -msgid "Font Header (head) table missing." -msgstr "No se encuentra la cabecera (head) de la placa." - -#: lib/extend/ftxerr18.c:128 -msgid "Horizontal Header (hhea) table missing." -msgstr "No se encuentra la cabecera para la horizontal (hhea)." - -#: lib/extend/ftxerr18.c:130 -msgid "Index to Location (loca) table missing." -msgstr "No se encuentra la tabla de los posiciones (loca)." - -#: lib/extend/ftxerr18.c:132 -msgid "Naming (name) table missing." -msgstr "No se encuentra la tabla de los nombres (name)." - -#: lib/extend/ftxerr18.c:134 -msgid "Character to Glyph Index Mapping (cmap) tables missing." -msgstr "" -"No se encuentra la tabla de correspondencia de carácter a glifo (cmap)." - -#: lib/extend/ftxerr18.c:136 -msgid "Horizontal Metrics (hmtx) table missing." -msgstr "No se encuentra la tabla de dimensiones horizontales (hmtx)." - -#: lib/extend/ftxerr18.c:138 -msgid "OS/2 table missing." -msgstr "No se encuentra la tabla `OS/2'." - -#: lib/extend/ftxerr18.c:140 -msgid "PostScript (post) table missing." -msgstr "No se encuentra la tabla PostScript (post)." - -#: lib/extend/ftxerr18.c:142 -msgid "Glyph (glyf) table missing." -msgstr "No se encuentra los glifos (tabla `glyf')." - -#: lib/extend/ftxerr18.c:147 -msgid "Out of memory." -msgstr "No hay suficiente memoria." - -#: lib/extend/ftxerr18.c:152 -msgid "Invalid file offset." -msgstr "Dirección en el fichero inválido." - -#: lib/extend/ftxerr18.c:154 -msgid "Invalid file read." -msgstr "Lectura de fichero incorrecta." - -#: lib/extend/ftxerr18.c:156 -msgid "Invalid frame access." -msgstr "Ventana de acceso inválida." - -#: lib/extend/ftxerr18.c:161 -msgid "Too many points." -msgstr "Demasiados puntos de control." - -#: lib/extend/ftxerr18.c:163 -msgid "Too many contours." -msgstr "Demasiados contornos." - -#: lib/extend/ftxerr18.c:165 -msgid "Invalid composite glyph." -msgstr "Glifo compuesto inválido." - -#: lib/extend/ftxerr18.c:167 -msgid "Too many instructions." -msgstr "Demasiadas instrucciones." - -#: lib/extend/ftxerr18.c:169 -msgid "Too many function definitions (FDEF)." -msgstr "Demasiadas definiciones de funciones (FDEF)." - -#: lib/extend/ftxerr18.c:174 -msgid "Invalid opcode." -msgstr "Código de operación inválido." - -#: lib/extend/ftxerr18.c:176 -msgid "Too few arguments." -msgstr "Hace falta más argumentos." - -#: lib/extend/ftxerr18.c:178 -msgid "Stack overflow." -msgstr "Desbordamiento de pila." - -#: lib/extend/ftxerr18.c:180 -msgid "Code overflow." -msgstr "Desbordamiento de código." - -#: lib/extend/ftxerr18.c:182 -msgid "Bad argument." -msgstr "Argumento incorrecto." - -#: lib/extend/ftxerr18.c:184 -msgid "Divide by zero." -msgstr "División por cero." - -#: lib/extend/ftxerr18.c:186 -msgid "Storage overflow." -msgstr "Desbordamiento de capacidad en el almacen." - -#: lib/extend/ftxerr18.c:188 -msgid "Control Value (cvt) table overflow." -msgstr "Desbordamiento de capacidad (tabla CVT)." - -#: lib/extend/ftxerr18.c:190 -msgid "Invalid reference." -msgstr "Referencia incorrecta." - -#: lib/extend/ftxerr18.c:192 -msgid "Invalid distance." -msgstr "Distancia incorrecta." - -#: lib/extend/ftxerr18.c:194 -msgid "Interpolate twilight points." -msgstr "Interpolación de marcas (puntos de referencia)." - -#: lib/extend/ftxerr18.c:196 -msgid "`DEBUG' opcode found." -msgstr "Se ha encontrado la instrucción `DEBUG'." - -#: lib/extend/ftxerr18.c:198 -msgid "`ENDF' in byte-code stream." -msgstr "Se ha encontrado `ENDF' en el programa de un glifo." - -#: lib/extend/ftxerr18.c:200 -msgid "Out of code ranges." -msgstr "Demasiados espacios de ejecución (code ranges)." - -#: lib/extend/ftxerr18.c:202 -msgid "Nested function definitions." -msgstr "Definiciones de funciones encajadas." - -#: lib/extend/ftxerr18.c:204 -msgid "Invalid code range." -msgstr "Espacio de ejecución (code range) incorrecto." - -#: lib/extend/ftxerr18.c:206 -msgid "Invalid displacement." -msgstr "Desplazamiento inválido." - -#: lib/extend/ftxerr18.c:208 -msgid "Endless loop encountered while executing instructions." -msgstr "" -"Se ha encontrado bucle sin fin durante la ejecución de las instrucciones." - -#: lib/extend/ftxerr18.c:213 -msgid "Nested frame access." -msgstr "Ventanas de acceso encajadas." - -#: lib/extend/ftxerr18.c:215 -msgid "Invalid cache list." -msgstr "Lista de `cache' inválida." - -#: lib/extend/ftxerr18.c:217 -msgid "Could not find context." -msgstr "No se puede encontrar el contexto." - -#: lib/extend/ftxerr18.c:219 -msgid "Unlisted object." -msgstr "Este objeto no es encadenado en el `cache'." - -#: lib/extend/ftxerr18.c:224 -msgid "Raster pool overflow." -msgstr "Tramador: Desbordamiento de memoria." - -#: lib/extend/ftxerr18.c:226 -msgid "Raster: negative height encountered." -msgstr "Tramador: altura negativa." - -#: lib/extend/ftxerr18.c:228 -msgid "Raster: invalid value." -msgstr "Tramador: valor erroneo." - -#: lib/extend/ftxerr18.c:230 -msgid "Raster not initialized." -msgstr "Tramador no inicializado." - -#: lib/extend/ftxerr18.c:235 -msgid "Invalid kerning (kern) table format." -msgstr "Formato de la tabla `kern' incorrecto." - -#: lib/extend/ftxerr18.c:237 -msgid "Invalid kerning (kern) table." -msgstr "Tabla `kern' inválida." - -#: lib/extend/ftxerr18.c:240 -msgid "Invalid PostScript (post) table format." -msgstr "Formato de tabla PostScript (post) incorrecto." - -#: lib/extend/ftxerr18.c:242 -msgid "Invalid PostScript (post) table." -msgstr "Tabla PostScript (post) inválida." - -#: lib/extend/ftxerr18.c:247 -msgid "Invalid TrueType Open subtable format." -msgstr "Formato de la tabla TrueType Open incorrecto." - -#: lib/extend/ftxerr18.c:249 -msgid "Invalid TrueType Open subtable." -msgstr "Tabla TrueType Open inválida." - -#: lib/extend/ftxerr18.c:251 -msgid "Glyph(s) not covered by lookup." -msgstr "Estos glifos no existen en las tablas de busqueda (lookups)." - -#: lib/extend/ftxerr18.c:253 -msgid "Too many nested context substitutions." -msgstr "Demasiados cambios contextuales encajados." - -#: lib/extend/ftxerr18.c:255 -msgid "No MM (Adobe MultipleMaster) interpreter available." -msgstr "No encontrado el intérprete per MM (Adobe MultipleMaster)." - -#: lib/extend/ftxerr18.c:258 -msgid "Invalid glyph substitution (GSUB) table format." -msgstr "Formato de la tabla de cambios de glifos (GSUB) incorrecto." - -#: lib/extend/ftxerr18.c:260 -msgid "Invalid glyph substitution (GSUB) table." -msgstr "Tabla de cambios de glifos (GSUB) inválida." - -#: lib/extend/ftxerr18.c:263 -msgid "Invalid glyph positioning (GPOS) table format." -msgstr "Formato de la tabla de posiciones de los glifos (GPOS) incorrecto." - -#: lib/extend/ftxerr18.c:265 -msgid "Invalid glyph positioning (GPOS) table." -msgstr "Tabla de posiciones de los glifos (GPOS) inválida." - -#: lib/extend/ftxerr18.c:268 -msgid "Invalid glyph definition (GDEF) table format." -msgstr "Formato de la tabla de definiciones de los glifos (GDEF) incorrecto." - -#: lib/extend/ftxerr18.c:270 -msgid "Invalid glyph definition (GDEF) table." -msgstr "Tabla de definiciones de los glifos (GDEF) inválida." - -#: lib/extend/ftxerr18.c:277 -msgid "Invalid Error Number." -msgstr "Número de Error Inválido." - -#: test/fterror.c:49 -msgid "" -"fterror: test TT_ErrToString18 functionality\n" -"\n" -msgstr "fterror: ensayo si funcciona TT_ErrToString18\n\n" - -#: test/fterror.c:50 -msgid "" -" with an optional numerical argument, dumps the associated message.\n" -"\n" -msgstr " con un argumento númerico opcional, escribe el mensaje asociado.\n\n" - -#: test/fterror.c:73 -msgid "Start of fterror.\n" -msgstr "Inicio de fterror.\n" - -#: test/fterror.c:81 -msgid "End of fterror.\n" -msgstr "Fin de fterror.\n" - -#: test/fterror.c:96 -#, c-format -msgid "Freetype error code 0x%04lX (%lu): %s\n" -msgstr "Código de error FreeType 0x%04lX (%lu):\n" - -#: test/ftdump.c:169 test/ftlint.c:207 test/ftmetric.c:294 -msgid "Could not create glyph container.\n" -msgstr "No se puede crear una caja de glifo.\n" - -#: test/ftdump.c:179 test/ftlint.c:215 test/ftmetric.c:303 test/ftsbit.c:214 -msgid "Could not create instance.\n" -msgstr "No se puede crear una instancia.\n" - -#: test/ftdump.c:188 -msgid "Could not create second instance.\n" -msgstr "No se puede crear una segunda instancia.\n" - -#: test/ftdump.c:194 -msgid "Memory footprint statistics:\n" -msgstr "Estadísticas de asignación de memoria:\n" - -#: test/ftdump.c:202 -msgid "face object" -msgstr "objeto diseño" - -#: test/ftdump.c:203 -msgid "glyph object" -msgstr "objeto glifo" - -#: test/ftdump.c:204 -msgid "instance object" -msgstr "objeto instancia" - -#: test/ftdump.c:208 -msgid "exec. context object" -msgstr "objeto contexto de calculo" - -#: test/ftdump.c:215 -msgid "total memory usage" -msgstr "uso total de memoria" - -#: test/ftdump.c:223 test/ftdump.c:579 test/ftdump.c:789 test/ftdump.c:993 -#: test/ftdump.c:1139 test/ftlint.c:274 test/ftlint.c:287 test/ftmetric.c:390 -#: test/ftsbit.c:286 -#, c-format -msgid "FreeType error message: %s\n" -msgstr "Mensaje de error FreeType: %s\n" - -#: test/ftdump.c:300 -msgid "font name table entries\n" -msgstr "Entradas en la tabla de nombres\n" - -#: test/ftdump.c:310 -#, c-format -msgid "" -"PostScript name: %s\n" -"\n" -msgstr "" -"Nombre PostScript: %s\n" -"\n" - -#: test/ftdump.c:333 -msgid "character map encodings\n" -msgstr "Codificaciones del mapa de caracteres\n" - -#: test/ftdump.c:340 test/ftdump.c:488 -msgid "The file doesn't seem to have any encoding table.\n" -msgstr "La placa no parece tener ninguna tabla de codificación.\n" - -#: test/ftdump.c:344 test/ftdump.c:492 -#, c-format -msgid "" -"There are %hu encodings:\n" -"\n" -msgstr "" -"Hay %hu codificaciones:\n" -"\n" - -#: test/ftdump.c:349 -#, c-format -msgid "encoding %2u: " -msgstr " codificación %2u: " - -#: test/ftdump.c:376 test/ftdump.c:385 test/ftdump.c:452 -#, c-format -msgid "Unknown value %hu" -msgstr "Desconocido %hu" - -#: test/ftdump.c:459 -msgid "Unknown" -msgstr "Desconocido" - -#: test/ftdump.c:481 -msgid "ftxcmap test\n" -msgstr "Muestra de ftxcmap\n" - -#: test/ftdump.c:498 -#, c-format -msgid "encoding %2u:\n" -msgstr "Codificación %2u:\n" - -#: test/ftdump.c:503 -#, c-format -msgid "first: glyph index %hu, character code 0x%lx\n" -msgstr "primero: glifo índice %hu, codigo de carácter 0x%lx\n" - -#: test/ftdump.c:507 -#, c-format -msgid "next: glyph index %hu, character code 0x%lx\n" -msgstr "siguiente: glifo índice %hu, codigo de carácter 0x%lx\n" - -#: test/ftdump.c:511 -#, c-format -msgid "last: glyph index %hu, character code 0x%lx\n" -msgstr "ultimo: glifo índice %hu, codigo de carácter 0x%lx\n" - -#: test/ftdump.c:533 test/ftmetric.c:284 -msgid "Error while retrieving embedded bitmaps table.\n" -msgstr "Error durante la recuperación de los bitmaps.\n" - -#: test/ftdump.c:537 -msgid "embedded bitmap table\n" -msgstr "Tabla de bitmaps\n" - -#: test/ftdump.c:540 -#, c-format -msgid " version of embedded bitmap table: 0x%lx\n" -msgstr " version de la tabla de bitmap: 0x%lx\n" - -#: test/ftdump.c:542 -#, c-format -msgid " number of embedded bitmap strikes: %lu\n" -msgstr " número de tamaños de bitmaps: %lu\n" - -#: test/ftdump.c:552 -#, c-format -msgid " bitmap strike %hu/%lu: " -msgstr " tamaño %hu en %lu: " - -#: test/ftdump.c:555 -#, c-format -msgid "%hux%hu pixels, %hu-bit depth, glyphs [%hu..%hu]\n" -msgstr "%hux%hu pixels, en %hu bits, glifos [%hu...%hu]\n" - -#: test/ftdump.c:564 -#, c-format -msgid " range format (%hu:%hu) glyphs %hu..%hu\n" -msgstr " formato intervalo (%hu:%hu) glifos %hu...%hu\n" - -#: test/ftdump.c:615 -msgid "Error while loading GSUB table.\n" -msgstr "Error durante la creación de la tabla GSUB.\n" - -#: test/ftdump.c:619 -msgid "GSUB table\n" -msgstr "Table de cambios de glifos (GSUB)\n" - -#: test/ftdump.c:626 -msgid "Error while querying GSUB script list.\n" -msgstr "Error durante la busqueda de la lista de las escrituras en GSUB.\n" - -#: test/ftdump.c:639 -#, c-format -msgid "Error while selecting GSUB script `%4.4s'.\n" -msgstr "Error durante la selección de la escritura `%4.4s' en GSUB.\n" - -#: test/ftdump.c:644 test/ftdump.c:848 -#, c-format -msgid " script `%4.4s' (index %hu):\n" -msgstr " escritura `%4.4s' (índice %hu):\n" - -#: test/ftdump.c:652 -#, c-format -msgid "Error while querying GSUB default language system for script `%4.4s'.\n" -msgstr "" -"Error durante la busqueda en GSUB de las informaciones\n" -"relativas a las lenguas estandar de la escritura `%4.4s'.\n" - -#: test/ftdump.c:657 test/ftdump.c:861 -msgid " default language system:\n" -msgstr " lenguas estandar:\n" - -#: test/ftdump.c:670 -#, c-format -msgid "" -"Error while selecting GSUB feature `%4.4s'\n" -"for default language system of script `%4.4s'.\n" -msgstr "" -"Error durante la selección de la información `%4.4s' en GSUB\n" -"para las lenguas estandar de la escritura `%4.4s'.\n" - -#: test/ftdump.c:676 test/ftdump.c:757 test/ftdump.c:880 test/ftdump.c:961 -#, c-format -msgid " feature `%4.4s' (index %hu; lookup " -msgstr " información `%4.4s' (índice %hu: tabla de busqueda " - -#: test/ftdump.c:692 -#, c-format -msgid "Error while querying GSUB language list for script `%4.4s'.\n" -msgstr "" -"Error durante la busqueda de las lenguas para la escritura `%4.4s' en GSUB.\n" - -#: test/ftdump.c:709 -#, c-format -msgid "Error while selecting GSUB language `%4.4s' for script `%4.4s'.\n" -msgstr "" -"Error durante la selección de la lengua `%4.4s' para la escritura `%4.4s' en " -"GSUB.\n" - -#: test/ftdump.c:714 test/ftdump.c:918 -#, c-format -msgid " language `%4.4s' (index %hu):\n" -msgstr " lengua `%4.4s' (índice %hu):\n" - -#: test/ftdump.c:719 test/ftdump.c:923 -#, c-format -msgid " required feature index %hu (lookup " -msgstr " información obligatoria índice %hu (tabla de busqueda " - -#: test/ftdump.c:734 -#, c-format -msgid "" -"Error while querying GSUB feature list\n" -"for script `%4.4s', language `%4.4s'.\n" -msgstr "" -"Error durante la busqueda en GSUB de las informaciones\n" -"relativas a la escritura `%4.4s', lengua `%4.4s'.\n" - -#: test/ftdump.c:751 -#, c-format -msgid "" -"Error while selecting GSUB feature `%4.4s'\n" -"for script `%4.4s', language `%4.4s'.\n" -msgstr "" -"Error durante la selección de la información `%4.4s'\n" -"relativa a la escritura `%4.4s', lengua `%4.4s' en GSUB.\n" - -#: test/ftdump.c:776 test/ftdump.c:980 -msgid "" -"Lookups:\n" -"\n" -msgstr "Tabla de busqueda:\n" - -#: test/ftdump.c:779 test/ftdump.c:983 -#, c-format -msgid " %hu: type %hu, flag 0x%x\n" -msgstr " %hu: tipo %hu, indicador 0x%x\n" - -#: test/ftdump.c:819 -msgid "Error while loading GPOS table.\n" -msgstr "Error durante la creación de la tabla GPOS.\n" - -#: test/ftdump.c:823 -msgid "GPOS table\n" -msgstr "Table de posición de glifos (GPOS)\n" - -#: test/ftdump.c:830 -msgid "Error while querying GPOS script list.\n" -msgstr "Error durante la busqueda de la lista de las escrituras en GPOS.\n" - -#: test/ftdump.c:843 -#, c-format -msgid "Error while selecting GPOS script `%4.4s'.\n" -msgstr "Error durante la selección de la escritura `%4.4s' en GPOS.\n" - -#: test/ftdump.c:856 -#, c-format -msgid "Error while querying GPOS default language system for script `%4.4s'.\n" -msgstr "" -"Error durante la busqueda en GPOS de las informaciones\n" -"relativas a las lenguas estandar de la escritura `%4.4s'.\n" - -#: test/ftdump.c:874 -#, c-format -msgid "" -"Error while selecting GPOS feature `%4.4s'\n" -"for default language system of script `%4.4s'.\n" -msgstr "" -"Error durante la selección de la información `%4.4s' en GPOS\n" -"para las lenguas estandar de la escritura `%4.4s'.\n" - -#: test/ftdump.c:896 -#, c-format -msgid "Error while querying GPOS language list for script `%4.4s'.\n" -msgstr "" -"Error durante la busqueda de las lenguas para la escritura `%4.4s' en GPOS.\n" - -#: test/ftdump.c:913 -#, c-format -msgid "Error while selecting GPOS language `%4.4s' for script `%4.4s'.\n" -msgstr "" -"Error durante la selección de la lengua `%4.4s' para la escritura `%4.4s' en " -"GPOS.\n" - -#: test/ftdump.c:938 -#, c-format -msgid "" -"Error while querying GPOS feature list\n" -"for script `%4.4s', language `%4.4s'.\n" -msgstr "" -"Error durante la busqueda en GPOS de las informaciones\n" -"relativas a la escritura `%4.4s', lengua `%4.4s'.\n" - -#: test/ftdump.c:955 -#, c-format -msgid "" -"Error while selecting GPOS feature `%4.4s'\n" -"for script `%4.4s', language `%4.4s'.\n" -msgstr "" -"Error durante la selección de la información `%4.4s'\n" -"relativa a la escritura `%4.4s', lengua `%4.4s' en GPOS.\n" - -#: test/ftdump.c:1018 -msgid "ftdump: Simple TrueType Dumper -- part of the FreeType project" -msgstr "" -"ftdump: información sobre placas TrueType -- parte del proyecto FreeType" - -#: test/ftdump.c:1022 -#, c-format -msgid "" -"Usage: %s fontname[.ttf|.ttc]\n" -"\n" -msgstr "" -"Uso: %s nombre_de_la_placa[.ttf|.ttc]\n" -"\n" - -#: test/ftdump.c:1054 test/ftlint.c:134 test/ftmetric.c:228 test/ftsbit.c:127 -msgid "Error while initializing engine.\n" -msgstr "Error durante la inicialización de la biblioteca.\n" - -#: test/ftdump.c:1061 test/ftmetric.c:236 test/ftsbit.c:134 -msgid "Error while initializing embedded bitmap extension.\n" -msgstr "Error durante la inicialización de la extensión `bitmap'.\n" - -#: test/ftdump.c:1068 -msgid "Error while initializing GSUB extension.\n" -msgstr "Error durante la inicialización de la extensión `GSUB'.\n" - -#: test/ftdump.c:1075 -msgid "Error while initializing GPOS extension.\n" -msgstr "Error durante la inicialización de la extensión `GPOS'.\n" - -#: test/ftdump.c:1091 test/ftlint.c:187 test/ftmetric.c:251 test/ftsbit.c:182 -#, c-format -msgid "Could not find or open %s.\n" -msgstr "No se puede encontrar o abrir el fichero %s.\n" - -#: test/ftdump.c:1094 test/ftlint.c:193 test/ftmetric.c:254 test/ftsbit.c:188 -#, c-format -msgid "Error while opening %s.\n" -msgstr "Error abriendo %s.\n" - -#: test/ftlint.c:94 -msgid "" -"ftlint: Simple TrueType instruction tester -- part of the FreeType project" -msgstr "" -"ftlint: verificador de instrucciones TrueType -- parte del proyecto FreeType" - -#: test/ftlint.c:99 -#, c-format -msgid "" -"Usage: %s ppem fontname[.ttf|.ttc] [fontname2..]\n" -"\n" -msgstr "" -"Uso: %s ppem nombre_de_la_placa[.ttf|.ttc] [nombre2...]\n" -"\n" - -#: test/ftlint.c:226 test/ftsbit.c:225 -#, c-format -msgid "Could not set point size to %d.\n" -msgstr "No se puede asignar el tamaño del punto a %d.\n" - -#: test/ftlint.c:239 -msgid "" -"Error with\n" -" " -msgstr "" -"Error con\n" -" " - -#: test/ftlint.c:240 -#, c-format -msgid "glyph %4u: %s\n" -msgstr "glifo %4u: %s\n" - -#: test/ftlint.c:253 -msgid "1 fail.\n" -msgstr "1 error.\n" - -#: test/ftlint.c:255 -#, c-format -msgid "%d fails.\n" -msgstr "%d errores.\n" - -#: test/ftmetric.c:70 -msgid "" -"ftmetric: Simple TTF metrics/glyph dumper -- part of the FreeType project" -msgstr "" -"ftmetric: información sobre dimensiones TrueType -- parte del proyecto " -"FreeType" - -#: test/ftmetric.c:74 -#, c-format -msgid "" -"Usage: %s [options below] point fontname[.ttf|.ttc]\n" -"\n" -" -B show sbit's metrics (default: none)\n" -" -c C use C'th font index of TrueType collection (default: 0)\n" -" -i index glyph index (default: 0)\n" -" -r R use resolution R dpi (default: 72)\n" -"\n" -msgstr "" -"Uso: %s [optiones] ppem nombre_de_la_placa[.ttf|.ttc]\n" -"\n" -" -B muestra dimensiones de los sbit's (default: no)\n" -" -c C usa (C+1)ª placa de la collección TrueType (default: 1ª)\n" -" -i index muestra esto glifo (default: primero glifo)\n" -" -r R usa resolución R en dpi (default: 72)\n" -"\n" - -#: test/ftmetric.c:261 -#, c-format -msgid "There are %d fonts in this collection.\n" -msgstr "Hay %d placas en esta collección.\n" - -#: test/ftmetric.c:266 -#, c-format -msgid "There is no collection with index %d in this font file.\n" -msgstr "No hay placa con índice %d en esto fichero.\n" - -#: test/ftmetric.c:280 -msgid "There is no embedded bitmap data in the font.\n" -msgstr "No hay bitmaps en esto fichero.\n" - -#: test/ftmetric.c:310 -msgid "Could not set device resolutions.\n" -msgstr "No se puede poner esta resolución.\n" - -#: test/ftmetric.c:317 -msgid "Could not reset instance.\n" -msgstr "No se puede inicializar la instancia.\n" - -#: test/ftmetric.c:323 -#, c-format -msgid "Instance metrics: ppemX %d, ppemY %d\n" -msgstr "Dimensiones: ppemX %d, ppemY %d\n" - -#: test/ftmetric.c:333 test/ftsbit.c:234 -msgid "Could not allocate glyph bitmap container.\n" -msgstr "No se puede crear un contenedor de bitmap.\n" - -#: test/ftmetric.c:341 test/ftsbit.c:258 -#, c-format -msgid "Can't load bitmap for glyph %d.\n" -msgstr "Ne se puede crear un bitmap para el glifo %d.\n" - -#: test/ftmetric.c:368 -msgid "Outline's metrics" -msgstr "Dimensiones del contorno" - -#: test/ftmetric.c:370 -msgid "Outline glyph\n" -msgstr "Glifo utilizando el contorno\n" - -#: test/ftsbit.c:90 -msgid "ftsbit: Simple TrueType `sbit' dumper -- part of the FreeType project" -msgstr "ftsbit: bitmaps de una placa TrueType -- parte del proyecto FreeType" - -#: test/ftsbit.c:95 -#, c-format -msgid "" -"Usage: %s ppem fontname[.ttf|.ttc] glyph_index [glyph_index2..]\n" -"\n" -msgstr "" -"Uso: %s ppem nombre_de_font[.ttf|.ttc] índice_de_glifo [índice2...]\n" -"\n" - -#: test/ftsbit.c:200 -msgid "Could not find embedded bitmaps in this font.\n" -msgstr "No se puede encontrar bitmaps en esto fichero.\n" - -#: test/ftsbit.c:206 -msgid "Error while loading embedded bitmaps.\n" -msgstr "Error durante la lectura de los bitmaps.\n" - -#: test/ftsbit.c:252 -#, c-format -msgid " no bitmap for glyph %d.\n" -msgstr " no bitmap para el glifo %d.\n" - -#: test/ftsbit.c:264 -#, c-format -msgid "glyph index %d = %dx%d pixels, " -msgstr "glifo índice %d = %dx%d pixels, " - -#: test/ftsbit.c:267 -#, c-format -msgid "advance = %ld, minBearing = [%ld,%ld]\n" -msgstr "`advance' = %ld, `bearings' = [%ld,%ld]\n" diff --git a/Build/source/libs/freetype/freetype-1.5/po/fr.po b/Build/source/libs/freetype/freetype-1.5/po/fr.po deleted file mode 100644 index f88bc2b022f..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/po/fr.po +++ /dev/null @@ -1,883 +0,0 @@ -# French messages for FreeType, without accents. -# Copyright (C) 1998-2002 David Turner -# David Turner <david.turner@freetype.org>, 1998 -# -msgid "" -msgstr "" -"Project-Id-Version: FreeType 1.5\n" -"POT-Creation-Date: 2002-11-08 18:11+0000\n" -"PO-Revision-Date: 2002-11-08 18:20+0100\n" -"Last-Translator: Antoine Leca <Antoine-Freetype@Leca-Marti.org>\n" -"Language-Team: French\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=us-ascii\n" -"Content-Transfer-Encoding: 7bit\n" - -#: lib/extend/ftxerr18.c:40 -msgid "" -"Welcome to the translation of the Freetype v.1 library!\n" -"\n" -"This message is not really part of the library (it is bracketed by\n" -" #if 0 / #endif), but is really intended to be the first one in the .po\n" -"file, and the first one that a new translator should see, to give hints.\n" -"\n" -"First, while this .po might seems big, the real interesting part of it\n" -"is only the messages in this file, lib/extend/ftxerr18.c. The other\n" -"messages are part of the demonstration programs, and are more intended\n" -"to help grasping how to use i18n with the Freetype library. So the real\n" -"work is the about 65 first ones. Unfortunately they are the harder ones!\n" -"\n" -"A difficulty is that there are some specialized vocabulary, about\n" -"``faces'', ``glyph'' and similar things. These are typographical things,\n" -"and this should be researched before attempting to translate the whole\n" -"thing. A quick look across the TrueType documentation might help to\n" -"understand many things, too.\n" -"\n" -"Best wiches for your translation!\n" -"Antoine Leca - 2002-11-08" -msgstr "(Lu - Antoine Leca, 2002-11-08)" - -#: lib/extend/ftxerr18.c:77 -msgid "Successful function call, no error." -msgstr "Appel de fonction reussi, pas d'erreur." - -#: lib/extend/ftxerr18.c:80 -msgid "Invalid face handle." -msgstr "Mauvais handle d'oeil (face)." - -#: lib/extend/ftxerr18.c:82 -msgid "Invalid instance handle." -msgstr "Mauvais handle d'instance." - -#: lib/extend/ftxerr18.c:84 -msgid "Invalid glyph handle." -msgstr "Mauvais handle de glyphe." - -#: lib/extend/ftxerr18.c:86 -msgid "Invalid charmap handle." -msgstr "Mauvais handle d'encodage (charmap)." - -#: lib/extend/ftxerr18.c:88 -msgid "Invalid result address." -msgstr "Mauvaise adresse de resultat." - -#: lib/extend/ftxerr18.c:90 -msgid "Invalid glyph index." -msgstr "Numero de glyphe incorrect." - -#: lib/extend/ftxerr18.c:92 -msgid "Invalid argument." -msgstr "Argument incorrect." - -#: lib/extend/ftxerr18.c:94 -msgid "Could not open file." -msgstr "Le fichier n'a pas pu etre ouvert." - -#: lib/extend/ftxerr18.c:96 -msgid "File is not a TrueType collection." -msgstr "Ce fichier n'est pas une collection." - -#: lib/extend/ftxerr18.c:98 -msgid "Mandatory table missing." -msgstr "Il manque une table critique." - -#: lib/extend/ftxerr18.c:100 -msgid "Invalid horizontal metrics (hmtx table broken)." -msgstr "Metriques horizontales (table `hmtx') incorrectes." - -#: lib/extend/ftxerr18.c:102 -msgid "Invalid charmap format." -msgstr "Format d'encodage (charmap) invalide." - -#: lib/extend/ftxerr18.c:104 -msgid "Invalid ppem value." -msgstr "Taille en pixels incorrecte." - -#: lib/extend/ftxerr18.c:106 -msgid "Invalid vertical metrics (vmtx table broken)." -msgstr "Metriques verticales (table `vmtx') incorrectes." - -#: lib/extend/ftxerr18.c:109 -msgid "Invalid file format." -msgstr "Format de fichier invalide." - -#: lib/extend/ftxerr18.c:112 -msgid "Invalid engine." -msgstr "Mauvaise instance de bibliotheque (engine)" - -#: lib/extend/ftxerr18.c:114 -msgid "Too many extensions." -msgstr "Trop d'extensions utilisees (max: 8)." - -#: lib/extend/ftxerr18.c:116 -msgid "Extensions unsupported." -msgstr "Extensions non disponibles." - -#: lib/extend/ftxerr18.c:118 -msgid "Invalid extension id." -msgstr "Mauvais numero d'extension." - -#: lib/extend/ftxerr18.c:121 -msgid "No vertical data in font." -msgstr "Pas de donnees verticales dans cette police." - -#: lib/extend/ftxerr18.c:124 -msgid "Maximum Profile (maxp) table missing." -msgstr "Il manque la table `maxp'." - -#: lib/extend/ftxerr18.c:126 -msgid "Font Header (head) table missing." -msgstr "Il manque l'en-tete de police (head)." - -#: lib/extend/ftxerr18.c:128 -msgid "Horizontal Header (hhea) table missing." -msgstr "Il manque l'en-tete pour l'horizontale (hhea)." - -#: lib/extend/ftxerr18.c:130 -msgid "Index to Location (loca) table missing." -msgstr "Il manque les index de glyphes (table `loca')." - -#: lib/extend/ftxerr18.c:132 -msgid "Naming (name) table missing." -msgstr "Il manque la table des noms (name)." - -#: lib/extend/ftxerr18.c:134 -msgid "Character to Glyph Index Mapping (cmap) tables missing." -msgstr "Il manque la table des encodages (cmap)." - -#: lib/extend/ftxerr18.c:136 -msgid "Horizontal Metrics (hmtx) table missing." -msgstr "Il manque les metriques horizontales (hmtx)." - -#: lib/extend/ftxerr18.c:138 -msgid "OS/2 table missing." -msgstr "Il manque la table `OS/2'." - -#: lib/extend/ftxerr18.c:140 -msgid "PostScript (post) table missing." -msgstr "Il manque la table Postscript (post)." - -#: lib/extend/ftxerr18.c:142 -msgid "Glyph (glyf) table missing." -msgstr "Il manque les glyphes (table `glyf')." - -#: lib/extend/ftxerr18.c:147 -msgid "Out of memory." -msgstr "Pas assez de memoire." - -#: lib/extend/ftxerr18.c:152 -msgid "Invalid file offset." -msgstr "Adresse dans le fichier incorrecte." - -#: lib/extend/ftxerr18.c:154 -msgid "Invalid file read." -msgstr "Lecture du fichier impossible." - -#: lib/extend/ftxerr18.c:156 -msgid "Invalid frame access." -msgstr "Fenetre d'access incorrecte." - -#: lib/extend/ftxerr18.c:161 -msgid "Too many points." -msgstr "Trop de points." - -#: lib/extend/ftxerr18.c:163 -msgid "Too many contours." -msgstr "Trop de contours." - -#: lib/extend/ftxerr18.c:165 -msgid "Invalid composite glyph." -msgstr "Glyphe compose invalide." - -#: lib/extend/ftxerr18.c:167 -msgid "Too many instructions." -msgstr "Trop d'instructions." - -#: lib/extend/ftxerr18.c:169 -msgid "Too many function definitions (FDEF)." -msgstr "Trop de definitions de fonctions (FDEF)." - -#: lib/extend/ftxerr18.c:174 -msgid "Invalid opcode." -msgstr "Code-operation invalide." - -#: lib/extend/ftxerr18.c:176 -msgid "Too few arguments." -msgstr "Il manque un ou des arguments." - -#: lib/extend/ftxerr18.c:178 -msgid "Stack overflow." -msgstr "Debordement de la pile." - -#: lib/extend/ftxerr18.c:180 -msgid "Code overflow." -msgstr "Debordement dans le code." - -#: lib/extend/ftxerr18.c:182 -msgid "Bad argument." -msgstr "Mauvais argument." - -#: lib/extend/ftxerr18.c:184 -msgid "Divide by zero." -msgstr "Division par zero." - -#: lib/extend/ftxerr18.c:186 -msgid "Storage overflow." -msgstr "Depassement de capacite (stockage)." - -#: lib/extend/ftxerr18.c:188 -msgid "Control Value (cvt) table overflow." -msgstr "Depassement de capacite (tableau cvt)." - -#: lib/extend/ftxerr18.c:190 -msgid "Invalid reference." -msgstr "Reference incorrecte." - -#: lib/extend/ftxerr18.c:192 -msgid "Invalid distance." -msgstr "Distance incorrecte." - -#: lib/extend/ftxerr18.c:194 -msgid "Interpolate twilight points." -msgstr "Interpolation de points de repere." - -#: lib/extend/ftxerr18.c:196 -msgid "`DEBUG' opcode found." -msgstr "Le code `DEBUG' a ete rencontre." - -#: lib/extend/ftxerr18.c:198 -msgid "`ENDF' in byte-code stream." -msgstr "'ENDF' invalide dans les instructions d'un glyphe." - -#: lib/extend/ftxerr18.c:200 -msgid "Out of code ranges." -msgstr "Pas assez d'espace d'execution (code ranges)." - -#: lib/extend/ftxerr18.c:202 -msgid "Nested function definitions." -msgstr "Definitions imbriquees de fonction." - -#: lib/extend/ftxerr18.c:204 -msgid "Invalid code range." -msgstr "Espace d'execution (code range) incorrect." - -#: lib/extend/ftxerr18.c:206 -msgid "Invalid displacement." -msgstr "Deplacement invalide." - -#: lib/extend/ftxerr18.c:208 -msgid "Endless loop encountered while executing instructions." -msgstr "Arret force d'une boucle infinie." - -#: lib/extend/ftxerr18.c:213 -msgid "Nested frame access." -msgstr "Fenetres d'acces imbriquees." - -#: lib/extend/ftxerr18.c:215 -msgid "Invalid cache list." -msgstr "(Mauvaise liste chainee de caches)." - -#: lib/extend/ftxerr18.c:217 -msgid "Could not find context." -msgstr "Contexte introuvable." - -#: lib/extend/ftxerr18.c:219 -msgid "Unlisted object." -msgstr "Objet non chaine dans le cache." - -#: lib/extend/ftxerr18.c:224 -msgid "Raster pool overflow." -msgstr "Debordement de memoire de la trameuse." - -#: lib/extend/ftxerr18.c:226 -msgid "Raster: negative height encountered." -msgstr "Trameuse: hauteur negative." - -#: lib/extend/ftxerr18.c:228 -msgid "Raster: invalid value." -msgstr "Trameuse: valeur incorrecte." - -#: lib/extend/ftxerr18.c:230 -msgid "Raster not initialized." -msgstr "Trameuse: non initialisee." - -#: lib/extend/ftxerr18.c:235 -msgid "Invalid kerning (kern) table format." -msgstr "Format de table de crenage (kern) invalide." - -#: lib/extend/ftxerr18.c:237 -msgid "Invalid kerning (kern) table." -msgstr "Table de crenage (kern) incorrecte." - -#: lib/extend/ftxerr18.c:240 -msgid "Invalid PostScript (post) table format." -msgstr "Format de table Postscript (post) invalide." - -#: lib/extend/ftxerr18.c:242 -msgid "Invalid PostScript (post) table." -msgstr "Table Postscript (post) incorrecte." - -#: lib/extend/ftxerr18.c:247 -msgid "Invalid TrueType Open subtable format." -msgstr "Format de table TrueType Open invalide." - -#: lib/extend/ftxerr18.c:249 -msgid "Invalid TrueType Open subtable." -msgstr "Sous-table TrueType Open incorrecte." - -#: lib/extend/ftxerr18.c:251 -msgid "Glyph(s) not covered by lookup." -msgstr "Des glyphes sont absents d'une table de recherche (lookup)." - -#: lib/extend/ftxerr18.c:253 -msgid "Too many nested context substitutions." -msgstr "Substitutions contextuelles imbriquees trop profondement." - -#: lib/extend/ftxerr18.c:255 -msgid "No MM (Adobe MultipleMaster) interpreter available." -msgstr "Pas d'interpreteur MM (Adobe MultipleMaster) disponible." - -#: lib/extend/ftxerr18.c:258 -msgid "Invalid glyph substitution (GSUB) table format." -msgstr "Format de la table de substitution de glyphes (GSUB) invalide." - -#: lib/extend/ftxerr18.c:260 -msgid "Invalid glyph substitution (GSUB) table." -msgstr "Table de substitution de glyphes (GSUB) incorrecte." - -#: lib/extend/ftxerr18.c:263 -msgid "Invalid glyph positioning (GPOS) table format." -msgstr "Format de table de positionnement des glyphes (GPOS) invalide." - -#: lib/extend/ftxerr18.c:265 -msgid "Invalid glyph positioning (GPOS) table." -msgstr "Table de positionnement des glyphes (GPOS) incorrecte." - -#: lib/extend/ftxerr18.c:268 -msgid "Invalid glyph definition (GDEF) table format." -msgstr "Format de table de definition des glyphes (GDEF) invalide." - -#: lib/extend/ftxerr18.c:270 -msgid "Invalid glyph definition (GDEF) table." -msgstr "Table de definition des glyphes (GDEF) incorrecte." - -#: lib/extend/ftxerr18.c:277 -msgid "Invalid Error Number." -msgstr "Numero d'erreur inconnu ?" - -#: test/fterror.c:49 -msgid "" -"fterror: test TT_ErrToString18 functionality\n" -"\n" -msgstr "" -"fterror: teste la fonctionnalite TT_ErrToString18\n" -"\n" - -#: test/fterror.c:50 -msgid "" -" with an optional numerical argument, dumps the associated message.\n" -"\n" -msgstr "" -" avec un argument numerique optionnel, ecrit le message associe.\n" -"\n" - -#: test/fterror.c:73 -msgid "Start of fterror.\n" -msgstr "Debut de fterror.\n" - -#: test/fterror.c:81 -msgid "End of fterror.\n" -msgstr "Fin de fterror.\n" - -#: test/fterror.c:96 -#, c-format -msgid "Freetype error code 0x%04lX (%lu): %s\n" -msgstr "Code d'erreur FreeType 0x%04lX (%lu) : %s\n" - -#: test/ftdump.c:169 test/ftlint.c:207 test/ftmetric.c:294 -msgid "Could not create glyph container.\n" -msgstr "Impossible de creer un conteneur de glyphe.\n" - -#: test/ftdump.c:179 test/ftlint.c:215 test/ftmetric.c:303 test/ftsbit.c:214 -msgid "Could not create instance.\n" -msgstr "Impossible de creer une instance\n" - -#: test/ftdump.c:188 -msgid "Could not create second instance.\n" -msgstr "Impossible de creer une deuxieme instance.\n" - -#: test/ftdump.c:194 -msgid "Memory footprint statistics:\n" -msgstr "Statistiques de consommation de la memoire:\n" - -#: test/ftdump.c:202 -msgid "face object" -msgstr "objet oeil" - -#: test/ftdump.c:203 -msgid "glyph object" -msgstr "objet glyphe" - -#: test/ftdump.c:204 -msgid "instance object" -msgstr "objet instance" - -#: test/ftdump.c:208 -msgid "exec. context object" -msgstr "objet contexte" - -#: test/ftdump.c:215 -msgid "total memory usage" -msgstr "consommation totale de memoire" - -#: test/ftdump.c:223 test/ftdump.c:579 test/ftdump.c:789 test/ftdump.c:993 -#: test/ftdump.c:1139 test/ftlint.c:274 test/ftlint.c:287 test/ftmetric.c:390 -#: test/ftsbit.c:286 -#, c-format -msgid "FreeType error message: %s\n" -msgstr "Message d'erreur FreeType : %s\n" - -#: test/ftdump.c:300 -msgid "font name table entries\n" -msgstr "Elements du tableau des noms\n" - -#: test/ftdump.c:310 -#, c-format -msgid "PostScript name: %s\n\n" -msgstr "Nom Postscript : %s\n\n" - -#: test/ftdump.c:333 -msgid "character map encodings\n" -msgstr "Encodages des caracteres\n" - -#: test/ftdump.c:340 test/ftdump.c:488 -msgid "The file doesn't seem to have any encoding table.\n" -msgstr "Cette police ne semble pas avoir de table d'encodage.\n" - -#: test/ftdump.c:344 test/ftdump.c:492 -#, c-format -msgid "" -"There are %hu encodings:\n" -"\n" -msgstr "" -"Il y a %hu encodage(s) :\n" -"\n" - -#: test/ftdump.c:349 -#, c-format -msgid "encoding %2u: " -msgstr "encodage %2u : " - -#: test/ftdump.c:376 test/ftdump.c:385 test/ftdump.c:452 -#, c-format -msgid "Unknown value %hu" -msgstr "(valeur inconnue %hu)" - -#: test/ftdump.c:459 -msgid "Unknown" -msgstr "(inconnu)" - -#: test/ftdump.c:481 -msgid "ftxcmap test\n" -msgstr "Test de ftxcmap\n" - -#: test/ftdump.c:498 -#, c-format -msgid "encoding %2u:\n" -msgstr "encodage %2u :\n" - -#: test/ftdump.c:503 -#, c-format -msgid "first: glyph index %hu, character code 0x%lx\n" -msgstr "premier : glyphe numero %hu, caractere code 0x%lx\n" - -#: test/ftdump.c:507 -#, c-format -msgid "next: glyph index %hu, character code 0x%lx\n" -msgstr "suivant : glyphe numero %hu, caractere code 0x%lx\n" - -#: test/ftdump.c:511 -#, c-format -msgid "last: glyph index %hu, character code 0x%lx\n" -msgstr "dernier : glyphe numero %hu, caractere code 0x%lx\n" - -#: test/ftdump.c:533 test/ftmetric.c:284 -msgid "Error while retrieving embedded bitmaps table.\n" -msgstr "Erreur pendant la recuperation de la table des bitmaps.\n" - -#: test/ftdump.c:537 -msgid "embedded bitmap table\n" -msgstr "Table des bitmaps incorpores\n" - -#: test/ftdump.c:540 -#, c-format -msgid " version of embedded bitmap table: 0x%lx\n" -msgstr " version de la table de bitmaps : 0x%lx\n" - -#: test/ftdump.c:542 -#, c-format -msgid " number of embedded bitmap strikes: %lu\n" -msgstr " nombre de tailles de bitmaps : %lu\n" - -#: test/ftdump.c:552 -#, c-format -msgid " bitmap strike %hu/%lu: " -msgstr " taille de bitmap %hu sur %lu : " - -#: test/ftdump.c:555 -#, c-format -msgid "%hux%hu pixels, %hu-bit depth, glyphs [%hu..%hu]\n" -msgstr "%hux%hu pixels par %hu bit(s), glyphes de %hu a %hu\n" - -#: test/ftdump.c:564 -#, c-format -msgid " range format (%hu:%hu) glyphs %hu..%hu\n" -msgstr " format intervalle (%hu:%hu) glyphes %hu a %hu\n" - -#: test/ftdump.c:615 -msgid "Error while loading GSUB table.\n" -msgstr "Erreur en chargeant la table GSUB.\n" - -#: test/ftdump.c:619 -msgid "GSUB table\n" -msgstr "Table des substitutions de glyphes (GSUB)\n" - -#: test/ftdump.c:626 -msgid "Error while querying GSUB script list.\n" -msgstr "Erreur en demandant la liste des ecritures dans GSUB.\n" - -#: test/ftdump.c:639 -#, c-format -msgid "Error while selecting GSUB script `%4.4s'.\n" -msgstr "Erreur en selectionnant l'ecriture `%4.4s' dans GSUB.\n" - -#: test/ftdump.c:644 test/ftdump.c:848 -#, c-format -msgid " script `%4.4s' (index %hu):\n" -msgstr " Ecriture `%4.4s' (numero %hu)\n" - -#: test/ftdump.c:652 -#, c-format -msgid "Error while querying GSUB default language system for script `%4.4s'.\n" -msgstr "" -"Erreur en cherchant les informations pour les langues standards de `%4.4s' " -"dans GSUB.\n" - -#: test/ftdump.c:657 test/ftdump.c:861 -msgid " default language system:\n" -msgstr " langue standard :\n" - -#: test/ftdump.c:670 -#, c-format -msgid "" -"Error while selecting GSUB feature `%4.4s'\n" -"for default language system of script `%4.4s'.\n" -msgstr "" -"Erreur en selectionnant dans GSUB l'information `%4.4s'\n" -"pour la langue standard de l'ecriture `%4.4s'.\n" - -#: test/ftdump.c:676 test/ftdump.c:757 test/ftdump.c:880 test/ftdump.c:961 -#, c-format -msgid " feature `%4.4s' (index %hu; lookup " -msgstr " information `%4.4s' (numero %hu ; table(s) de recherche " - -#: test/ftdump.c:692 -#, c-format -msgid "Error while querying GSUB language list for script `%4.4s'.\n" -msgstr "" -"Erreur en demandant la liste des langues pour l'ecriture `%4.4s' dans GSUB.\n" - -#: test/ftdump.c:709 -#, c-format -msgid "Error while selecting GSUB language `%4.4s' for script `%4.4s'.\n" -msgstr "" -"Erreur en selectionnant la langue `%4.4s' pour l'ecriture `%4.4s' dans " -"GSUB.\n" - -#: test/ftdump.c:714 test/ftdump.c:918 -#, c-format -msgid " language `%4.4s' (index %hu):\n" -msgstr " langue `%4.4s' (numero %hu) :\n" - -#: test/ftdump.c:719 test/ftdump.c:923 -#, c-format -msgid " required feature index %hu (lookup " -msgstr " information requise (table(s) de recherche " - -#: test/ftdump.c:734 -#, c-format -msgid "" -"Error while querying GSUB feature list\n" -"for script `%4.4s', language `%4.4s'.\n" -msgstr "" -"Erreur en recherchant dans GSUB la liste des informations\n" -"pour l'ecriture `%4.4s', langue `%4.4s'.\n" - -#: test/ftdump.c:751 -#, c-format -msgid "" -"Error while selecting GSUB feature `%4.4s'\n" -"for script `%4.4s', language `%4.4s'.\n" -msgstr "" -"Erreur en selectionnant dans GSUB l'information `%4.4s'\n" -"pour l'ecriture `%4.4s', langue `%4.4s'.\n" - -#: test/ftdump.c:776 test/ftdump.c:980 -msgid "" -"Lookups:\n" -"\n" -msgstr " Tables de recherche :\n" - -#: test/ftdump.c:779 test/ftdump.c:983 -#, c-format -msgid " %hu: type %hu, flag 0x%x\n" -msgstr "%4hu : type %hu, drapeaux 0x%x\n" - -#: test/ftdump.c:819 -msgid "Error while loading GPOS table.\n" -msgstr "Erreur en chargeant la table GPOS.\n" - -#: test/ftdump.c:823 -msgid "GPOS table\n" -msgstr "Table des repositionnement de glyphes (GPOS)\n" - -#: test/ftdump.c:830 -msgid "Error while querying GPOS script list.\n" -msgstr "Erreur en demandant la liste des ecritures dans GPOS.\n" - -#: test/ftdump.c:843 -#, c-format -msgid "Error while selecting GPOS script `%4.4s'.\n" -msgstr "Erreur en selectionnant l'ecriture `%4.4s' dans GPOS.\n" - -#: test/ftdump.c:856 -#, c-format -msgid "Error while querying GPOS default language system for script `%4.4s'.\n" -msgstr "" -"Erreur en cherchant les informations pour les langues standards de `%4.4s' " -"dans GPOS.\n" - -#: test/ftdump.c:874 -#, c-format -msgid "" -"Error while selecting GPOS feature `%4.4s'\n" -"for default language system of script `%4.4s'.\n" -msgstr "" -"Erreur en selectionnant dans GPOS l'information `%4.4s'\n" -"pour la langue standard de l'ecriture `%4.4s'.\n" - -#: test/ftdump.c:896 -#, c-format -msgid "Error while querying GPOS language list for script `%4.4s'.\n" -msgstr "" -"Erreur en demandant la liste des langues pour l'ecriture `%4.4s' dans GPOS.\n" - -#: test/ftdump.c:913 -#, c-format -msgid "Error while selecting GPOS language `%4.4s' for script `%4.4s'.\n" -msgstr "" -"Erreur en selectionnant la langue `%4.4s' pour l'ecriture `%4.4s' dans " -"GPOS.\n" - -#: test/ftdump.c:938 -#, c-format -msgid "" -"Error while querying GPOS feature list\n" -"for script `%4.4s', language `%4.4s'.\n" -msgstr "" -"Erreur en recherchant dans GPOS la liste des informations\n" -"pour l'ecriture `%4.4s', langue `%4.4s'.\n" - -#: test/ftdump.c:955 -#, c-format -msgid "" -"Error while selecting GPOS feature `%4.4s'\n" -"for script `%4.4s', language `%4.4s'.\n" -msgstr "" -"Erreur en selectionnant dans GPOS l'information `%4.4s'\n" -"pour l'ecriture `%4.4s', langue `%4.4s'.\n" - -#: test/ftdump.c:1018 -msgid "ftdump: Simple TrueType Dumper -- part of the FreeType project" -msgstr "ftdump : utilitaire d'informations TrueType -- www.freetype.org" - -#: test/ftdump.c:1022 -#, c-format -msgid "" -"Usage: %s fontname[.ttf|.ttc]\n" -"\n" -msgstr "" -"Utilisation : %s nompolice[.ttf|.ttc]\n" -"\n" - -#: test/ftdump.c:1054 test/ftlint.c:134 test/ftmetric.c:228 test/ftsbit.c:127 -msgid "Error while initializing engine.\n" -msgstr "Erreur lors de l'initialisation de FreeType.\n" - -#: test/ftdump.c:1061 test/ftmetric.c:236 test/ftsbit.c:134 -msgid "Error while initializing embedded bitmap extension.\n" -msgstr "Erreur lors de l'initialisation de l'extension `bitmaps'.\n" - -#: test/ftdump.c:1068 -msgid "Error while initializing GSUB extension.\n" -msgstr "Erreur lors de l'initialisation de l'extension `GSUB'.\n" - -#: test/ftdump.c:1075 -msgid "Error while initializing GPOS extension.\n" -msgstr "Erreur lors de l'initialisation de l'extension `GPOS'.\n" - -#: test/ftdump.c:1091 test/ftlint.c:187 test/ftmetric.c:251 test/ftsbit.c:182 -#, c-format -msgid "Could not find or open %s.\n" -msgstr "Impossible de trouver ou d'ouvrir %s.\n" - -#: test/ftdump.c:1094 test/ftlint.c:193 test/ftmetric.c:254 test/ftsbit.c:188 -#, c-format -msgid "Error while opening %s.\n" -msgstr "Erreur lors de l'ouverture de %s.\n" - -#: test/ftlint.c:94 -msgid "" -"ftlint: Simple TrueType instruction tester -- part of the FreeType project" -msgstr "" -"ftlint : verificateur simple d'instructions TrueType - www.freetype.org" - -#: test/ftlint.c:99 -#, c-format -msgid "" -"Usage: %s ppem fontname[.ttf|.ttc] [fontname2..]\n" -"\n" -msgstr "" -"Utilisation : %s ppem nompolice[.ttf|.ttc] [nompolice2...]\n" -"\n" - -#: test/ftlint.c:226 test/ftsbit.c:225 -#, c-format -msgid "Could not set point size to %d.\n" -msgstr "Impossible de selectionner la taille %d.\n" - -#: test/ftlint.c:239 -msgid "" -"Error with\n" -" " -msgstr "" -"Erreur avec\n" -" " - -#: test/ftlint.c:240 -#, c-format -msgid "glyph %4u: %s\n" -msgstr "glyphe %4u : %s\n" - -#: test/ftlint.c:253 -msgid "1 fail.\n" -msgstr "1 echec.\n" - -#: test/ftlint.c:255 -#, c-format -msgid "%d fails.\n" -msgstr "%d echecs.\n" - -#: test/ftmetric.c:70 -msgid "" -"ftmetric: Simple TTF metrics/glyph dumper -- part of the FreeType project" -msgstr "ftmetric : affichage des metriques TrueType -- www.freetype.org" - -#: test/ftmetric.c:74 -#, c-format -msgid "" -"Usage: %s [options below] point fontname[.ttf|.ttc]\n" -"\n" -" -B show sbit's metrics (default: none)\n" -" -c C use C'th font index of TrueType collection (default: 0)\n" -" -i index glyph index (default: 0)\n" -" -r R use resolution R dpi (default: 72)\n" -"\n" -msgstr "" -"Utilisation : %s [options] point nompolice[.ttf|.ttc]\n" -"\n" -" -B montrer les metriques des bitmaps (defaut : non)\n" -" -c C utilise la police numero C d'une collection (defaut : 0)\n" -" -i index numero du glyphe (default : 0)\n" -" -r R resolution en dpi (defaut : 72)\n" -"\n" - -#: test/ftmetric.c:261 -#, c-format -msgid "There are %d fonts in this collection.\n" -msgstr "Il y a %d polices dans cette collection.\n" - -#: test/ftmetric.c:266 -#, c-format -msgid "There is no collection with index %d in this font file.\n" -msgstr "Il n'y a aucune police d'indice %d dans cette collection.\n" - -#: test/ftmetric.c:280 -msgid "There is no embedded bitmap data in the font.\n" -msgstr "Il n'y a pas de bitmaps dans cette police.\n" - -#: test/ftmetric.c:310 -msgid "Could not set device resolutions.\n" -msgstr "Impossible de changer la resolution.\n" - -#: test/ftmetric.c:317 -msgid "Could not reset instance.\n" -msgstr "Impossible de changer la taile.\n" - -#: test/ftmetric.c:323 -#, c-format -msgid "Instance metrics: ppemX %d, ppemY %d\n" -msgstr "Metriques de l'instance : ppemX %d ppemY %d\n" - -#: test/ftmetric.c:333 test/ftsbit.c:234 -msgid "Could not allocate glyph bitmap container.\n" -msgstr "Impossible d'allouer un conteneur de glyphe.\n" - -#: test/ftmetric.c:341 test/ftsbit.c:258 -#, c-format -msgid "Can't load bitmap for glyph %d.\n" -msgstr "Impossible de charger le bitmap du glyphe %d.\n" - -#: test/ftmetric.c:368 -msgid "Outline's metrics" -msgstr "Metriques du dessin vectorise" - -#: test/ftmetric.c:370 -msgid "Outline glyph\n" -msgstr "glyphe du dessin vectorise\n" - -#: test/ftsbit.c:90 -msgid "ftsbit: Simple TrueType `sbit' dumper -- part of the FreeType project" -msgstr "ftsbit : affichage des `sbit' TrueType -- www.freetype.org" - -#: test/ftsbit.c:95 -#, c-format -msgid "" -"Usage: %s ppem fontname[.ttf|.ttc] glyph_index [glyph_index2..]\n" -"\n" -msgstr "" -"Utilisation : %s ppm nompolice[.ttf|.ttc] numero_glyphe [numero_glyphe2...]\n" -"\n" - -#: test/ftsbit.c:200 -msgid "Could not find embedded bitmaps in this font.\n" -msgstr "Pas de bitmaps dans cette police.\n" - -#: test/ftsbit.c:206 -msgid "Error while loading embedded bitmaps.\n" -msgstr "Erreur lors du chargement des bitmaps.\n" - -#: test/ftsbit.c:252 -#, c-format -msgid " no bitmap for glyph %d.\n" -msgstr " pas de bitmap pour le glyphe %d.\n" - -#: test/ftsbit.c:264 -#, c-format -msgid "glyph index %d = %dx%d pixels, " -msgstr "glyphe numero %d = %dx%d pixels, " - -#: test/ftsbit.c:267 -#, c-format -msgid "advance = %ld, minBearing = [%ld,%ld]\n" -msgstr "chasse = %ld, approches = [%ld,%ld]\n" diff --git a/Build/source/libs/freetype/freetype-1.5/po/freetype.pot b/Build/source/libs/freetype/freetype-1.5/po/freetype.pot deleted file mode 100644 index 51758ba2cf8..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/po/freetype.pot +++ /dev/null @@ -1,842 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR Free Software Foundation, Inc. -# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2002-11-08 18:11+0000\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: LANGUAGE <LL@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=CHARSET\n" -"Content-Transfer-Encoding: 8bit\n" - -#: lib/extend/ftxerr18.c:40 -msgid "" -"Welcome to the translation of the Freetype v.1 library!\n" -"\n" -"This message is not really part of the library (it is bracketed by\n" -" #if 0 / #endif), but is really intended to be the first one in the .po\n" -"file, and the first one that a new translator should see, to give hints.\n" -"\n" -"First, while this .po might seems big, the real interesting part of it\n" -"is only the messages in this file, lib/extend/ftxerr18.c. The other\n" -"messages are part of the demonstration programs, and are more intended\n" -"to help grasping how to use i18n with the Freetype library. So the real\n" -"work is the about 65 first ones. Unfortunately they are the harder ones!\n" -"\n" -"A difficulty is that there are some specialized vocabulary, about\n" -"``faces'', ``glyph'' and similar things. These are typographical things,\n" -"and this should be researched before attempting to translate the whole\n" -"thing. A quick look across the TrueType documentation might help to\n" -"understand many things, too.\n" -"\n" -"Best wiches for your translation!\n" -"Antoine Leca - 2002-11-08" -msgstr "" - -#: lib/extend/ftxerr18.c:77 -msgid "Successful function call, no error." -msgstr "" - -#: lib/extend/ftxerr18.c:80 -msgid "Invalid face handle." -msgstr "" - -#: lib/extend/ftxerr18.c:82 -msgid "Invalid instance handle." -msgstr "" - -#: lib/extend/ftxerr18.c:84 -msgid "Invalid glyph handle." -msgstr "" - -#: lib/extend/ftxerr18.c:86 -msgid "Invalid charmap handle." -msgstr "" - -#: lib/extend/ftxerr18.c:88 -msgid "Invalid result address." -msgstr "" - -#: lib/extend/ftxerr18.c:90 -msgid "Invalid glyph index." -msgstr "" - -#: lib/extend/ftxerr18.c:92 -msgid "Invalid argument." -msgstr "" - -#: lib/extend/ftxerr18.c:94 -msgid "Could not open file." -msgstr "" - -#: lib/extend/ftxerr18.c:96 -msgid "File is not a TrueType collection." -msgstr "" - -#: lib/extend/ftxerr18.c:98 -msgid "Mandatory table missing." -msgstr "" - -#: lib/extend/ftxerr18.c:100 -msgid "Invalid horizontal metrics (hmtx table broken)." -msgstr "" - -#: lib/extend/ftxerr18.c:102 -msgid "Invalid charmap format." -msgstr "" - -#: lib/extend/ftxerr18.c:104 -msgid "Invalid ppem value." -msgstr "" - -#: lib/extend/ftxerr18.c:106 -msgid "Invalid vertical metrics (vmtx table broken)." -msgstr "" - -#: lib/extend/ftxerr18.c:109 -msgid "Invalid file format." -msgstr "" - -#: lib/extend/ftxerr18.c:112 -msgid "Invalid engine." -msgstr "" - -#: lib/extend/ftxerr18.c:114 -msgid "Too many extensions." -msgstr "" - -#: lib/extend/ftxerr18.c:116 -msgid "Extensions unsupported." -msgstr "" - -#: lib/extend/ftxerr18.c:118 -msgid "Invalid extension id." -msgstr "" - -#: lib/extend/ftxerr18.c:121 -msgid "No vertical data in font." -msgstr "" - -#: lib/extend/ftxerr18.c:124 -msgid "Maximum Profile (maxp) table missing." -msgstr "" - -#: lib/extend/ftxerr18.c:126 -msgid "Font Header (head) table missing." -msgstr "" - -#: lib/extend/ftxerr18.c:128 -msgid "Horizontal Header (hhea) table missing." -msgstr "" - -#: lib/extend/ftxerr18.c:130 -msgid "Index to Location (loca) table missing." -msgstr "" - -#: lib/extend/ftxerr18.c:132 -msgid "Naming (name) table missing." -msgstr "" - -#: lib/extend/ftxerr18.c:134 -msgid "Character to Glyph Index Mapping (cmap) tables missing." -msgstr "" - -#: lib/extend/ftxerr18.c:136 -msgid "Horizontal Metrics (hmtx) table missing." -msgstr "" - -#: lib/extend/ftxerr18.c:138 -msgid "OS/2 table missing." -msgstr "" - -#: lib/extend/ftxerr18.c:140 -msgid "PostScript (post) table missing." -msgstr "" - -#: lib/extend/ftxerr18.c:142 -msgid "Glyph (glyf) table missing." -msgstr "" - -#: lib/extend/ftxerr18.c:147 -msgid "Out of memory." -msgstr "" - -#: lib/extend/ftxerr18.c:152 -msgid "Invalid file offset." -msgstr "" - -#: lib/extend/ftxerr18.c:154 -msgid "Invalid file read." -msgstr "" - -#: lib/extend/ftxerr18.c:156 -msgid "Invalid frame access." -msgstr "" - -#: lib/extend/ftxerr18.c:161 -msgid "Too many points." -msgstr "" - -#: lib/extend/ftxerr18.c:163 -msgid "Too many contours." -msgstr "" - -#: lib/extend/ftxerr18.c:165 -msgid "Invalid composite glyph." -msgstr "" - -#: lib/extend/ftxerr18.c:167 -msgid "Too many instructions." -msgstr "" - -#: lib/extend/ftxerr18.c:169 -msgid "Too many function definitions (FDEF)." -msgstr "" - -#: lib/extend/ftxerr18.c:174 -msgid "Invalid opcode." -msgstr "" - -#: lib/extend/ftxerr18.c:176 -msgid "Too few arguments." -msgstr "" - -#: lib/extend/ftxerr18.c:178 -msgid "Stack overflow." -msgstr "" - -#: lib/extend/ftxerr18.c:180 -msgid "Code overflow." -msgstr "" - -#: lib/extend/ftxerr18.c:182 -msgid "Bad argument." -msgstr "" - -#: lib/extend/ftxerr18.c:184 -msgid "Divide by zero." -msgstr "" - -#: lib/extend/ftxerr18.c:186 -msgid "Storage overflow." -msgstr "" - -#: lib/extend/ftxerr18.c:188 -msgid "Control Value (cvt) table overflow." -msgstr "" - -#: lib/extend/ftxerr18.c:190 -msgid "Invalid reference." -msgstr "" - -#: lib/extend/ftxerr18.c:192 -msgid "Invalid distance." -msgstr "" - -#: lib/extend/ftxerr18.c:194 -msgid "Interpolate twilight points." -msgstr "" - -#: lib/extend/ftxerr18.c:196 -msgid "`DEBUG' opcode found." -msgstr "" - -#: lib/extend/ftxerr18.c:198 -msgid "`ENDF' in byte-code stream." -msgstr "" - -#: lib/extend/ftxerr18.c:200 -msgid "Out of code ranges." -msgstr "" - -#: lib/extend/ftxerr18.c:202 -msgid "Nested function definitions." -msgstr "" - -#: lib/extend/ftxerr18.c:204 -msgid "Invalid code range." -msgstr "" - -#: lib/extend/ftxerr18.c:206 -msgid "Invalid displacement." -msgstr "" - -#: lib/extend/ftxerr18.c:208 -msgid "Endless loop encountered while executing instructions." -msgstr "" - -#: lib/extend/ftxerr18.c:213 -msgid "Nested frame access." -msgstr "" - -#: lib/extend/ftxerr18.c:215 -msgid "Invalid cache list." -msgstr "" - -#: lib/extend/ftxerr18.c:217 -msgid "Could not find context." -msgstr "" - -#: lib/extend/ftxerr18.c:219 -msgid "Unlisted object." -msgstr "" - -#: lib/extend/ftxerr18.c:224 -msgid "Raster pool overflow." -msgstr "" - -#: lib/extend/ftxerr18.c:226 -msgid "Raster: negative height encountered." -msgstr "" - -#: lib/extend/ftxerr18.c:228 -msgid "Raster: invalid value." -msgstr "" - -#: lib/extend/ftxerr18.c:230 -msgid "Raster not initialized." -msgstr "" - -#: lib/extend/ftxerr18.c:235 -msgid "Invalid kerning (kern) table format." -msgstr "" - -#: lib/extend/ftxerr18.c:237 -msgid "Invalid kerning (kern) table." -msgstr "" - -#: lib/extend/ftxerr18.c:240 -msgid "Invalid PostScript (post) table format." -msgstr "" - -#: lib/extend/ftxerr18.c:242 -msgid "Invalid PostScript (post) table." -msgstr "" - -#: lib/extend/ftxerr18.c:247 -msgid "Invalid TrueType Open subtable format." -msgstr "" - -#: lib/extend/ftxerr18.c:249 -msgid "Invalid TrueType Open subtable." -msgstr "" - -#: lib/extend/ftxerr18.c:251 -msgid "Glyph(s) not covered by lookup." -msgstr "" - -#: lib/extend/ftxerr18.c:253 -msgid "Too many nested context substitutions." -msgstr "" - -#: lib/extend/ftxerr18.c:255 -msgid "No MM (Adobe MultipleMaster) interpreter available." -msgstr "" - -#: lib/extend/ftxerr18.c:258 -msgid "Invalid glyph substitution (GSUB) table format." -msgstr "" - -#: lib/extend/ftxerr18.c:260 -msgid "Invalid glyph substitution (GSUB) table." -msgstr "" - -#: lib/extend/ftxerr18.c:263 -msgid "Invalid glyph positioning (GPOS) table format." -msgstr "" - -#: lib/extend/ftxerr18.c:265 -msgid "Invalid glyph positioning (GPOS) table." -msgstr "" - -#: lib/extend/ftxerr18.c:268 -msgid "Invalid glyph definition (GDEF) table format." -msgstr "" - -#: lib/extend/ftxerr18.c:270 -msgid "Invalid glyph definition (GDEF) table." -msgstr "" - -#: lib/extend/ftxerr18.c:277 -msgid "Invalid Error Number." -msgstr "" - -#: test/fterror.c:49 -msgid "" -"fterror: test TT_ErrToString18 functionality\n" -"\n" -msgstr "" - -#: test/fterror.c:50 -msgid "" -" with an optional numerical argument, dumps the associated message.\n" -"\n" -msgstr "" - -#: test/fterror.c:73 -msgid "Start of fterror.\n" -msgstr "" - -#: test/fterror.c:81 -msgid "End of fterror.\n" -msgstr "" - -#: test/fterror.c:96 -#, c-format -msgid "Freetype error code 0x%04lX (%lu): %s\n" -msgstr "" - -#: test/ftdump.c:169 test/ftlint.c:207 test/ftmetric.c:294 -msgid "Could not create glyph container.\n" -msgstr "" - -#: test/ftdump.c:179 test/ftlint.c:215 test/ftmetric.c:303 test/ftsbit.c:214 -msgid "Could not create instance.\n" -msgstr "" - -#: test/ftdump.c:188 -msgid "Could not create second instance.\n" -msgstr "" - -#: test/ftdump.c:194 -msgid "Memory footprint statistics:\n" -msgstr "" - -#: test/ftdump.c:202 -msgid "face object" -msgstr "" - -#: test/ftdump.c:203 -msgid "glyph object" -msgstr "" - -#: test/ftdump.c:204 -msgid "instance object" -msgstr "" - -#: test/ftdump.c:208 -msgid "exec. context object" -msgstr "" - -#: test/ftdump.c:215 -msgid "total memory usage" -msgstr "" - -#: test/ftdump.c:223 test/ftdump.c:579 test/ftdump.c:789 test/ftdump.c:993 -#: test/ftdump.c:1139 test/ftlint.c:274 test/ftlint.c:287 test/ftmetric.c:390 -#: test/ftsbit.c:286 -#, c-format -msgid "FreeType error message: %s\n" -msgstr "" - -#: test/ftdump.c:300 -msgid "font name table entries\n" -msgstr "" - -#: test/ftdump.c:310 -#, c-format -msgid "" -"PostScript name: %s\n" -"\n" -msgstr "" - -#: test/ftdump.c:333 -msgid "character map encodings\n" -msgstr "" - -#: test/ftdump.c:340 test/ftdump.c:488 -msgid "The file doesn't seem to have any encoding table.\n" -msgstr "" - -#: test/ftdump.c:344 test/ftdump.c:492 -#, c-format -msgid "" -"There are %hu encodings:\n" -"\n" -msgstr "" - -#: test/ftdump.c:349 -#, c-format -msgid "encoding %2u: " -msgstr "" - -#: test/ftdump.c:376 test/ftdump.c:385 test/ftdump.c:452 -#, c-format -msgid "Unknown value %hu" -msgstr "" - -#: test/ftdump.c:459 -msgid "Unknown" -msgstr "" - -#: test/ftdump.c:481 -msgid "ftxcmap test\n" -msgstr "" - -#: test/ftdump.c:498 -#, c-format -msgid "encoding %2u:\n" -msgstr "" - -#: test/ftdump.c:503 -#, c-format -msgid "first: glyph index %hu, character code 0x%lx\n" -msgstr "" - -#: test/ftdump.c:507 -#, c-format -msgid "next: glyph index %hu, character code 0x%lx\n" -msgstr "" - -#: test/ftdump.c:511 -#, c-format -msgid "last: glyph index %hu, character code 0x%lx\n" -msgstr "" - -#: test/ftdump.c:533 test/ftmetric.c:284 -msgid "Error while retrieving embedded bitmaps table.\n" -msgstr "" - -#: test/ftdump.c:537 -msgid "embedded bitmap table\n" -msgstr "" - -#: test/ftdump.c:540 -#, c-format -msgid " version of embedded bitmap table: 0x%lx\n" -msgstr "" - -#: test/ftdump.c:542 -#, c-format -msgid " number of embedded bitmap strikes: %lu\n" -msgstr "" - -#: test/ftdump.c:552 -#, c-format -msgid " bitmap strike %hu/%lu: " -msgstr "" - -#: test/ftdump.c:555 -#, c-format -msgid "%hux%hu pixels, %hu-bit depth, glyphs [%hu..%hu]\n" -msgstr "" - -#: test/ftdump.c:564 -#, c-format -msgid " range format (%hu:%hu) glyphs %hu..%hu\n" -msgstr "" - -#: test/ftdump.c:615 -msgid "Error while loading GSUB table.\n" -msgstr "" - -#: test/ftdump.c:619 -msgid "GSUB table\n" -msgstr "" - -#: test/ftdump.c:626 -msgid "Error while querying GSUB script list.\n" -msgstr "" - -#: test/ftdump.c:639 -#, c-format -msgid "Error while selecting GSUB script `%4.4s'.\n" -msgstr "" - -#: test/ftdump.c:644 test/ftdump.c:848 -#, c-format -msgid " script `%4.4s' (index %hu):\n" -msgstr "" - -#: test/ftdump.c:652 -#, c-format -msgid "Error while querying GSUB default language system for script `%4.4s'.\n" -msgstr "" - -#: test/ftdump.c:657 test/ftdump.c:861 -msgid " default language system:\n" -msgstr "" - -#: test/ftdump.c:670 -#, c-format -msgid "" -"Error while selecting GSUB feature `%4.4s'\n" -"for default language system of script `%4.4s'.\n" -msgstr "" - -#: test/ftdump.c:676 test/ftdump.c:757 test/ftdump.c:880 test/ftdump.c:961 -#, c-format -msgid " feature `%4.4s' (index %hu; lookup " -msgstr "" - -#: test/ftdump.c:692 -#, c-format -msgid "Error while querying GSUB language list for script `%4.4s'.\n" -msgstr "" - -#: test/ftdump.c:709 -#, c-format -msgid "Error while selecting GSUB language `%4.4s' for script `%4.4s'.\n" -msgstr "" - -#: test/ftdump.c:714 test/ftdump.c:918 -#, c-format -msgid " language `%4.4s' (index %hu):\n" -msgstr "" - -#: test/ftdump.c:719 test/ftdump.c:923 -#, c-format -msgid " required feature index %hu (lookup " -msgstr "" - -#: test/ftdump.c:734 -#, c-format -msgid "" -"Error while querying GSUB feature list\n" -"for script `%4.4s', language `%4.4s'.\n" -msgstr "" - -#: test/ftdump.c:751 -#, c-format -msgid "" -"Error while selecting GSUB feature `%4.4s'\n" -"for script `%4.4s', language `%4.4s'.\n" -msgstr "" - -#: test/ftdump.c:776 test/ftdump.c:980 -msgid "" -"Lookups:\n" -"\n" -msgstr "" - -#: test/ftdump.c:779 test/ftdump.c:983 -#, c-format -msgid " %hu: type %hu, flag 0x%x\n" -msgstr "" - -#: test/ftdump.c:819 -msgid "Error while loading GPOS table.\n" -msgstr "" - -#: test/ftdump.c:823 -msgid "GPOS table\n" -msgstr "" - -#: test/ftdump.c:830 -msgid "Error while querying GPOS script list.\n" -msgstr "" - -#: test/ftdump.c:843 -#, c-format -msgid "Error while selecting GPOS script `%4.4s'.\n" -msgstr "" - -#: test/ftdump.c:856 -#, c-format -msgid "Error while querying GPOS default language system for script `%4.4s'.\n" -msgstr "" - -#: test/ftdump.c:874 -#, c-format -msgid "" -"Error while selecting GPOS feature `%4.4s'\n" -"for default language system of script `%4.4s'.\n" -msgstr "" - -#: test/ftdump.c:896 -#, c-format -msgid "Error while querying GPOS language list for script `%4.4s'.\n" -msgstr "" - -#: test/ftdump.c:913 -#, c-format -msgid "Error while selecting GPOS language `%4.4s' for script `%4.4s'.\n" -msgstr "" - -#: test/ftdump.c:938 -#, c-format -msgid "" -"Error while querying GPOS feature list\n" -"for script `%4.4s', language `%4.4s'.\n" -msgstr "" - -#: test/ftdump.c:955 -#, c-format -msgid "" -"Error while selecting GPOS feature `%4.4s'\n" -"for script `%4.4s', language `%4.4s'.\n" -msgstr "" - -#: test/ftdump.c:1018 -msgid "ftdump: Simple TrueType Dumper -- part of the FreeType project" -msgstr "" - -#: test/ftdump.c:1022 -#, c-format -msgid "" -"Usage: %s fontname[.ttf|.ttc]\n" -"\n" -msgstr "" - -#: test/ftdump.c:1054 test/ftlint.c:134 test/ftmetric.c:228 test/ftsbit.c:127 -msgid "Error while initializing engine.\n" -msgstr "" - -#: test/ftdump.c:1061 test/ftmetric.c:236 test/ftsbit.c:134 -msgid "Error while initializing embedded bitmap extension.\n" -msgstr "" - -#: test/ftdump.c:1068 -msgid "Error while initializing GSUB extension.\n" -msgstr "" - -#: test/ftdump.c:1075 -msgid "Error while initializing GPOS extension.\n" -msgstr "" - -#: test/ftdump.c:1091 test/ftlint.c:187 test/ftmetric.c:251 test/ftsbit.c:182 -#, c-format -msgid "Could not find or open %s.\n" -msgstr "" - -#: test/ftdump.c:1094 test/ftlint.c:193 test/ftmetric.c:254 test/ftsbit.c:188 -#, c-format -msgid "Error while opening %s.\n" -msgstr "" - -#: test/ftlint.c:94 -msgid "" -"ftlint: Simple TrueType instruction tester -- part of the FreeType project" -msgstr "" - -#: test/ftlint.c:99 -#, c-format -msgid "" -"Usage: %s ppem fontname[.ttf|.ttc] [fontname2..]\n" -"\n" -msgstr "" - -#: test/ftlint.c:226 test/ftsbit.c:225 -#, c-format -msgid "Could not set point size to %d.\n" -msgstr "" - -#: test/ftlint.c:239 -msgid "" -"Error with\n" -" " -msgstr "" - -#: test/ftlint.c:240 -#, c-format -msgid "glyph %4u: %s\n" -msgstr "" - -#: test/ftlint.c:253 -msgid "1 fail.\n" -msgstr "" - -#: test/ftlint.c:255 -#, c-format -msgid "%d fails.\n" -msgstr "" - -#: test/ftmetric.c:70 -msgid "" -"ftmetric: Simple TTF metrics/glyph dumper -- part of the FreeType project" -msgstr "" - -#: test/ftmetric.c:74 -#, c-format -msgid "" -"Usage: %s [options below] point fontname[.ttf|.ttc]\n" -"\n" -" -B show sbit's metrics (default: none)\n" -" -c C use C'th font index of TrueType collection (default: 0)\n" -" -i index glyph index (default: 0)\n" -" -r R use resolution R dpi (default: 72)\n" -"\n" -msgstr "" - -#: test/ftmetric.c:261 -#, c-format -msgid "There are %d fonts in this collection.\n" -msgstr "" - -#: test/ftmetric.c:266 -#, c-format -msgid "There is no collection with index %d in this font file.\n" -msgstr "" - -#: test/ftmetric.c:280 -msgid "There is no embedded bitmap data in the font.\n" -msgstr "" - -#: test/ftmetric.c:310 -msgid "Could not set device resolutions.\n" -msgstr "" - -#: test/ftmetric.c:317 -msgid "Could not reset instance.\n" -msgstr "" - -#: test/ftmetric.c:323 -#, c-format -msgid "Instance metrics: ppemX %d, ppemY %d\n" -msgstr "" - -#: test/ftmetric.c:333 test/ftsbit.c:234 -msgid "Could not allocate glyph bitmap container.\n" -msgstr "" - -#: test/ftmetric.c:341 test/ftsbit.c:258 -#, c-format -msgid "Can't load bitmap for glyph %d.\n" -msgstr "" - -#: test/ftmetric.c:368 -msgid "Outline's metrics" -msgstr "" - -#: test/ftmetric.c:370 -msgid "Outline glyph\n" -msgstr "" - -#: test/ftsbit.c:90 -msgid "ftsbit: Simple TrueType `sbit' dumper -- part of the FreeType project" -msgstr "" - -#: test/ftsbit.c:95 -#, c-format -msgid "" -"Usage: %s ppem fontname[.ttf|.ttc] glyph_index [glyph_index2..]\n" -"\n" -msgstr "" - -#: test/ftsbit.c:200 -msgid "Could not find embedded bitmaps in this font.\n" -msgstr "" - -#: test/ftsbit.c:206 -msgid "Error while loading embedded bitmaps.\n" -msgstr "" - -#: test/ftsbit.c:252 -#, c-format -msgid " no bitmap for glyph %d.\n" -msgstr "" - -#: test/ftsbit.c:264 -#, c-format -msgid "glyph index %d = %dx%d pixels, " -msgstr "" - -#: test/ftsbit.c:267 -#, c-format -msgid "advance = %ld, minBearing = [%ld,%ld]\n" -msgstr "" diff --git a/Build/source/libs/freetype/freetype-1.5/po/nl.po b/Build/source/libs/freetype/freetype-1.5/po/nl.po deleted file mode 100644 index 56314f498c1..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/po/nl.po +++ /dev/null @@ -1,883 +0,0 @@ -# Dutch messages for FreeType. -# Copyright (C) 1998-2000 Gertjan de Back -# Gertjan de Back <gertjan.de.back@planet.nl>, 1999. -# -msgid "" -msgstr "" -"Project-Id-Version: FreeType 1.5\n" -"POT-Creation-Date: 2002-11-08 18:11+0000\n" -"PO-Revision-Date: 2000-01-05\n" -"Last-Translator: Gertjan de Back <gertjan.de.back@planet.nl>\n" -"Language-Team: Dutch\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=iso-8859-1\n" -"Content-Transfer-Encoding: 8bit\n" - -#: lib/extend/ftxerr18.c:40 -msgid "" -"Welcome to the translation of the Freetype v.1 library!\n" -"\n" -"This message is not really part of the library (it is bracketed by\n" -" #if 0 / #endif), but is really intended to be the first one in the .po\n" -"file, and the first one that a new translator should see, to give hints.\n" -"\n" -"First, while this .po might seems big, the real interesting part of it\n" -"is only the messages in this file, lib/extend/ftxerr18.c. The other\n" -"messages are part of the demonstration programs, and are more intended\n" -"to help grasping how to use i18n with the Freetype library. So the real\n" -"work is the about 65 first ones. Unfortunately they are the harder ones!\n" -"\n" -"A difficulty is that there are some specialized vocabulary, about\n" -"``faces'', ``glyph'' and similar things. These are typographical things,\n" -"and this should be researched before attempting to translate the whole\n" -"thing. A quick look across the TrueType documentation might help to\n" -"understand many things, too.\n" -"\n" -"Best wiches for your translation!\n" -"Antoine Leca - 2002-11-08" -msgstr "" - -#: lib/extend/ftxerr18.c:77 -msgid "Successful function call, no error." -msgstr "Functieaanroep succesvol." - -#: lib/extend/ftxerr18.c:80 -msgid "Invalid face handle." -msgstr "Ongeldige Face handle." - -#: lib/extend/ftxerr18.c:82 -msgid "Invalid instance handle." -msgstr "Ongeldige Instance handle." - -#: lib/extend/ftxerr18.c:84 -msgid "Invalid glyph handle." -msgstr "Ongeldige Glyph handle." - -#: lib/extend/ftxerr18.c:86 -msgid "Invalid charmap handle." -msgstr "Ongeldige Charmap handle." - -#: lib/extend/ftxerr18.c:88 -msgid "Invalid result address." -msgstr "Ongeldig resultaat adres." - -#: lib/extend/ftxerr18.c:90 -msgid "Invalid glyph index." -msgstr "Ongeldige Glyph index." - -#: lib/extend/ftxerr18.c:92 -msgid "Invalid argument." -msgstr "Ongeldig argument." - -#: lib/extend/ftxerr18.c:94 -msgid "Could not open file." -msgstr "Bestand kon niet geopend worden." - -#: lib/extend/ftxerr18.c:96 -msgid "File is not a TrueType collection." -msgstr "Bestand is geen TrueType collectie." - -#: lib/extend/ftxerr18.c:98 -msgid "Mandatory table missing." -msgstr "Vereiste tabel ontbreekt." - -#: lib/extend/ftxerr18.c:100 -msgid "Invalid horizontal metrics (hmtx table broken)." -msgstr "Ongeldige horizontale metriek (hmtx tabel defect)." - -#: lib/extend/ftxerr18.c:102 -msgid "Invalid charmap format." -msgstr "Ongeldige Charmap opmaak." - -#: lib/extend/ftxerr18.c:104 -msgid "Invalid ppem value." -msgstr "Ongeldige ppem waarde." - -#: lib/extend/ftxerr18.c:106 -msgid "Invalid vertical metrics (vmtx table broken)." -msgstr "Ongeldige vertikale metriek (vmtx tabel defect)." - -#: lib/extend/ftxerr18.c:109 -msgid "Invalid file format." -msgstr "Ongeldige bestandsopmaak." - -#: lib/extend/ftxerr18.c:112 -msgid "Invalid engine." -msgstr "Ongeldige engine." - -#: lib/extend/ftxerr18.c:114 -msgid "Too many extensions." -msgstr "Te veel uitbreidingen." - -#: lib/extend/ftxerr18.c:116 -msgid "Extensions unsupported." -msgstr "Uitbreidingen niet ondersteund." - -#: lib/extend/ftxerr18.c:118 -msgid "Invalid extension id." -msgstr "Ongeldige uitbreiding id." - -#: lib/extend/ftxerr18.c:121 -msgid "No vertical data in font." -msgstr "Geen vertikale informatie in lettertype." - -#: lib/extend/ftxerr18.c:124 -msgid "Maximum Profile (maxp) table missing." -msgstr "`Maximum Profile (maxp)' tabel ontbreekt." - -#: lib/extend/ftxerr18.c:126 -msgid "Font Header (head) table missing." -msgstr "`Font Header (head)' tabel ontbreekt." - -#: lib/extend/ftxerr18.c:128 -msgid "Horizontal Header (hhea) table missing." -msgstr "`Horizontal Header (hhea)' tabel ontbreekt." - -#: lib/extend/ftxerr18.c:130 -msgid "Index to Location (loca) table missing." -msgstr "`Index to Location (loca)' tabel ontbreekt." - -#: lib/extend/ftxerr18.c:132 -msgid "Naming (name) table missing." -msgstr "`Naming (name)' tabel ontbreekt." - -#: lib/extend/ftxerr18.c:134 -msgid "Character to Glyph Index Mapping (cmap) tables missing." -msgstr "`Character to Glyph Index Mapping (cmap)' tabel ontbreekt." - -#: lib/extend/ftxerr18.c:136 -msgid "Horizontal Metrics (hmtx) table missing." -msgstr "`Horizontal Metrics (hmtx)' tabel ontbreekt." - -#: lib/extend/ftxerr18.c:138 -msgid "OS/2 table missing." -msgstr "OS/2 tabel ontbreekt." - -#: lib/extend/ftxerr18.c:140 -msgid "PostScript (post) table missing." -msgstr "`PostScript (post)' tabel ontbreekt." - -#: lib/extend/ftxerr18.c:142 -msgid "Glyph (glyf) table missing." -msgstr "`Naming (glyf)' tabel ontbreekt." - -#: lib/extend/ftxerr18.c:147 -msgid "Out of memory." -msgstr "Onvoldoende geheugen." - -#: lib/extend/ftxerr18.c:152 -msgid "Invalid file offset." -msgstr "Bestand positie ongeldig." - -#: lib/extend/ftxerr18.c:154 -msgid "Invalid file read." -msgstr "Lezen van bestand ongeldig." - -#: lib/extend/ftxerr18.c:156 -msgid "Invalid frame access." -msgstr "Toegang tot frame ongeldig." - -#: lib/extend/ftxerr18.c:161 -msgid "Too many points." -msgstr "Te veel punten." - -#: lib/extend/ftxerr18.c:163 -msgid "Too many contours." -msgstr "Te veel contouren." - -#: lib/extend/ftxerr18.c:165 -msgid "Invalid composite glyph." -msgstr "Samengestelde Glyph ongeldig." - -#: lib/extend/ftxerr18.c:167 -msgid "Too many instructions." -msgstr "Te veel instructies." - -#: lib/extend/ftxerr18.c:169 -#, fuzzy -msgid "Too many function definitions (FDEF)." -msgstr "Functiedefinities genest." - -#: lib/extend/ftxerr18.c:174 -msgid "Invalid opcode." -msgstr "Ongeldige opcode." - -#: lib/extend/ftxerr18.c:176 -msgid "Too few arguments." -msgstr "Te weinig argumenten." - -#: lib/extend/ftxerr18.c:178 -msgid "Stack overflow." -msgstr "Stack overloop." - -#: lib/extend/ftxerr18.c:180 -msgid "Code overflow." -msgstr "Code overloop." - -#: lib/extend/ftxerr18.c:182 -msgid "Bad argument." -msgstr "Foutief argument." - -#: lib/extend/ftxerr18.c:184 -msgid "Divide by zero." -msgstr "Deling door nul." - -#: lib/extend/ftxerr18.c:186 -msgid "Storage overflow." -msgstr "Opslag overloop." - -#: lib/extend/ftxerr18.c:188 -msgid "Control Value (cvt) table overflow." -msgstr "`Control Value (cvt)' tabel overloop." - -#: lib/extend/ftxerr18.c:190 -msgid "Invalid reference." -msgstr "Ongeldige referentie." - -#: lib/extend/ftxerr18.c:192 -msgid "Invalid distance." -msgstr "Ongeldige afstand." - -#: lib/extend/ftxerr18.c:194 -msgid "Interpolate twilight points." -msgstr "Interpolatie van schemer (twilight) punten." - -#: lib/extend/ftxerr18.c:196 -msgid "`DEBUG' opcode found." -msgstr "`DEBUG'-opcode gevonden." - -#: lib/extend/ftxerr18.c:198 -msgid "`ENDF' in byte-code stream." -msgstr "`ENDF' in bytecode-stroom." - -#: lib/extend/ftxerr18.c:200 -msgid "Out of code ranges." -msgstr "Onvoldoende codegebieden." - -#: lib/extend/ftxerr18.c:202 -msgid "Nested function definitions." -msgstr "Functiedefinities genest." - -#: lib/extend/ftxerr18.c:204 -msgid "Invalid code range." -msgstr "Ongeldig codegebied." - -#: lib/extend/ftxerr18.c:206 -msgid "Invalid displacement." -msgstr "Ongeldige verplaatsing." - -#: lib/extend/ftxerr18.c:208 -msgid "Endless loop encountered while executing instructions." -msgstr "Oneindige loop aangetrofffen tijdens het uitvoeren van instructies." - -#: lib/extend/ftxerr18.c:213 -msgid "Nested frame access." -msgstr "Frame toegang genest." - -#: lib/extend/ftxerr18.c:215 -msgid "Invalid cache list." -msgstr "Ongeldige cachelijst." - -#: lib/extend/ftxerr18.c:217 -msgid "Could not find context." -msgstr "Context niet gevonden." - -#: lib/extend/ftxerr18.c:219 -msgid "Unlisted object." -msgstr "Object niet aanwezig." - -#: lib/extend/ftxerr18.c:224 -msgid "Raster pool overflow." -msgstr "Overloop van Raster pool." - -#: lib/extend/ftxerr18.c:226 -msgid "Raster: negative height encountered." -msgstr "Raster: negatieve hoogte aangetroffen." - -#: lib/extend/ftxerr18.c:228 -msgid "Raster: invalid value." -msgstr "Raster: ongeldige waarde." - -#: lib/extend/ftxerr18.c:230 -msgid "Raster not initialized." -msgstr "Raster niet geinitialiseerd." - -#: lib/extend/ftxerr18.c:235 -msgid "Invalid kerning (kern) table format." -msgstr "Ongeldige `Kerning (kern)' tabel opmaak." - -#: lib/extend/ftxerr18.c:237 -msgid "Invalid kerning (kern) table." -msgstr "Ongeldige `Kerning (kern)' tabel." - -#: lib/extend/ftxerr18.c:240 -msgid "Invalid PostScript (post) table format." -msgstr "Ongeldige `PostScript (post)' tabel opmaak." - -#: lib/extend/ftxerr18.c:242 -msgid "Invalid PostScript (post) table." -msgstr "Ongeldige `PostScript (post)' tabel." - -#: lib/extend/ftxerr18.c:247 -msgid "Invalid TrueType Open subtable format." -msgstr "Ongeldige opmaak van TrueType Open subtabel." - -#: lib/extend/ftxerr18.c:249 -msgid "Invalid TrueType Open subtable." -msgstr "Ongeldige TrueType Open subtabel." - -#: lib/extend/ftxerr18.c:251 -msgid "Glyph(s) not covered by lookup." -msgstr "Glyph(s) niet door opgenomen in Lookup." - -#: lib/extend/ftxerr18.c:253 -msgid "Too many nested context substitutions." -msgstr "Te veel geneste context vervangingen." - -#: lib/extend/ftxerr18.c:255 -msgid "No MM (Adobe MultipleMaster) interpreter available." -msgstr "" - -#: lib/extend/ftxerr18.c:258 -msgid "Invalid glyph substitution (GSUB) table format." -msgstr "Ongeldige Glyph vervanging (GSUB) tabel opmaak." - -#: lib/extend/ftxerr18.c:260 -msgid "Invalid glyph substitution (GSUB) table." -msgstr "Ongeldige Glyph vervanging (GSUB) tabel." - -#: lib/extend/ftxerr18.c:263 -msgid "Invalid glyph positioning (GPOS) table format." -msgstr "Ongeldige Glyph plaatsing (GPOS) tabel opmaak." - -#: lib/extend/ftxerr18.c:265 -msgid "Invalid glyph positioning (GPOS) table." -msgstr "Ongeldige Glyph plaatsing (GPOS) tabel." - -#: lib/extend/ftxerr18.c:268 -#, fuzzy -msgid "Invalid glyph definition (GDEF) table format." -msgstr "Ongeldige Glyph plaatsing (GPOS) tabel opmaak." - -#: lib/extend/ftxerr18.c:270 -#, fuzzy -msgid "Invalid glyph definition (GDEF) table." -msgstr "Ongeldige Glyph plaatsing (GPOS) tabel." - -#: lib/extend/ftxerr18.c:277 -msgid "Invalid Error Number." -msgstr "Ongeldig foutnummer." - -#: test/fterror.c:49 -msgid "" -"fterror: test TT_ErrToString18 functionality\n" -"\n" -msgstr "" - -#: test/fterror.c:50 -msgid "" -" with an optional numerical argument, dumps the associated message.\n" -"\n" -msgstr "" - -#: test/fterror.c:73 -msgid "Start of fterror.\n" -msgstr "Begin van fterror.\n" - -#: test/fterror.c:81 -msgid "End of fterror.\n" -msgstr "Einde van fterror.\n" - -#: test/fterror.c:96 -#, fuzzy, c-format -msgid "Freetype error code 0x%04lX (%lu): %s\n" -msgstr "FreeType foutmelding: %s\n" - -#: test/ftdump.c:169 test/ftlint.c:207 test/ftmetric.c:294 -msgid "Could not create glyph container.\n" -msgstr "Aanmaken Glyph container mislukt.\n" - -#: test/ftdump.c:179 test/ftlint.c:215 test/ftmetric.c:303 test/ftsbit.c:214 -msgid "Could not create instance.\n" -msgstr "Aanmaken Instance mislukt.\n" - -#: test/ftdump.c:188 -msgid "Could not create second instance.\n" -msgstr "Aanmaken tweede Instance mislukt.\n" - -#: test/ftdump.c:194 -msgid "Memory footprint statistics:\n" -msgstr "Statistieken geheugengebruik:\n" - -#: test/ftdump.c:202 -msgid "face object" -msgstr "Face object" - -#: test/ftdump.c:203 -msgid "glyph object" -msgstr "Glyph object" - -#: test/ftdump.c:204 -msgid "instance object" -msgstr "Instance object" - -#: test/ftdump.c:208 -msgid "exec. context object" -msgstr "uitv. context object" - -#: test/ftdump.c:215 -msgid "total memory usage" -msgstr "totaal geheugengebruik" - -#: test/ftdump.c:223 test/ftdump.c:579 test/ftdump.c:789 test/ftdump.c:993 -#: test/ftdump.c:1139 test/ftlint.c:274 test/ftlint.c:287 test/ftmetric.c:390 -#: test/ftsbit.c:286 -#, c-format -msgid "FreeType error message: %s\n" -msgstr "FreeType foutmelding: %s\n" - -#: test/ftdump.c:300 -msgid "font name table entries\n" -msgstr "lettertypen in namentabel\n" - -#: test/ftdump.c:310 -#, c-format -msgid "" -"PostScript name: %s\n" -"\n" -msgstr "" -"PostScript naam: %s\n" -"\n" - -#: test/ftdump.c:333 -msgid "character map encodings\n" -msgstr "tekencodering tabellen\n" - -#: test/ftdump.c:340 test/ftdump.c:488 -msgid "The file doesn't seem to have any encoding table.\n" -msgstr "Het bestand schijnt geen codering tabellen te bevatten.\n" - -#: test/ftdump.c:344 test/ftdump.c:492 -#, c-format -msgid "" -"There are %hu encodings:\n" -"\n" -msgstr "" -"Er zijn %hu coderingen:\n" -"\n" - -#: test/ftdump.c:349 -#, c-format -msgid "encoding %2u: " -msgstr "codering %2u: " - -#: test/ftdump.c:376 test/ftdump.c:385 test/ftdump.c:452 -#, c-format -msgid "Unknown value %hu" -msgstr "Waarde %hu onbekend" - -#: test/ftdump.c:459 -msgid "Unknown" -msgstr "Onbekend" - -#: test/ftdump.c:481 -msgid "ftxcmap test\n" -msgstr "ftxcmap test\n" - -#: test/ftdump.c:498 -#, c-format -msgid "encoding %2u:\n" -msgstr "codering %2u:\n" - -#: test/ftdump.c:503 -#, c-format -msgid "first: glyph index %hu, character code 0x%lx\n" -msgstr "eerste: Glyph index %hu, karakter code 0x%lx\n" - -#: test/ftdump.c:507 -#, c-format -msgid "next: glyph index %hu, character code 0x%lx\n" -msgstr "volgende: Glyph index %hu, karakter code 0x%lx\n" - -#: test/ftdump.c:511 -#, c-format -msgid "last: glyph index %hu, character code 0x%lx\n" -msgstr "laatste: Glyph index %hu, karakter code 0x%lx\n" - -#: test/ftdump.c:533 test/ftmetric.c:284 -msgid "Error while retrieving embedded bitmaps table.\n" -msgstr "Fout bij het ophalen van ingebedde bitmap tabel.\n" - -#: test/ftdump.c:537 -msgid "embedded bitmap table\n" -msgstr "ingebedde bitmap tabel\n" - -#: test/ftdump.c:540 -#, c-format -msgid " version of embedded bitmap table: 0x%lx\n" -msgstr " versie van ingebedde bitmap tabel: 0x%lx\n" - -#: test/ftdump.c:542 -#, c-format -msgid " number of embedded bitmap strikes: %lu\n" -msgstr " aantal ingebedde bitmap treffers: %lu\n" - -#: test/ftdump.c:552 -#, c-format -msgid " bitmap strike %hu/%lu: " -msgstr " bitmap treffer %hu/%lu: " - -#: test/ftdump.c:555 -#, c-format -msgid "%hux%hu pixels, %hu-bit depth, glyphs [%hu..%hu]\n" -msgstr "%hux%hu pixels, %hu-bit diepte, Glyphs [%hu..%hu]\n" - -#: test/ftdump.c:564 -#, c-format -msgid " range format (%hu:%hu) glyphs %hu..%hu\n" -msgstr " bereik formaat (%hu:%hu) Glyphs %hu..%hu\n" - -#: test/ftdump.c:615 -msgid "Error while loading GSUB table.\n" -msgstr "Fout bij het laden van GSUB tabel.\n" - -#: test/ftdump.c:619 -msgid "GSUB table\n" -msgstr "GSUB tabel\n" - -#: test/ftdump.c:626 -msgid "Error while querying GSUB script list.\n" -msgstr "Fout bij het opvragen van GSUB script lijst.\n" - -#: test/ftdump.c:639 -#, c-format -msgid "Error while selecting GSUB script `%4.4s'.\n" -msgstr "Fout bij het selecteren van GSUB script `%4.4s'.\n" - -#: test/ftdump.c:644 test/ftdump.c:848 -#, c-format -msgid " script `%4.4s' (index %hu):\n" -msgstr " script `%4.4s' (index %hu):\n" - -#: test/ftdump.c:652 -#, c-format -msgid "Error while querying GSUB default language system for script `%4.4s'.\n" -msgstr "" -"Fout bij het opvragen van GSUB standaard taal systeem voor script `%4.4s'.\n" - -#: test/ftdump.c:657 test/ftdump.c:861 -msgid " default language system:\n" -msgstr " standaard taal systeem:\n" - -#: test/ftdump.c:670 -#, c-format -msgid "" -"Error while selecting GSUB feature `%4.4s'\n" -"for default language system of script `%4.4s'.\n" -msgstr "" -"Fout bij het selecteren van GSUB kenmerk `%4.4s'\n" -"voor standaard taal systeem van script `%4.4s'.\n" - -#: test/ftdump.c:676 test/ftdump.c:757 test/ftdump.c:880 test/ftdump.c:961 -#, c-format -msgid " feature `%4.4s' (index %hu; lookup " -msgstr " kenmerk `%4.4s' (index %hu; lookup " - -#: test/ftdump.c:692 -#, c-format -msgid "Error while querying GSUB language list for script `%4.4s'.\n" -msgstr "Fout bij het opvragen van GSUB taal lijst voor script `%4.4s'.\n" - -#: test/ftdump.c:709 -#, c-format -msgid "Error while selecting GSUB language `%4.4s' for script `%4.4s'.\n" -msgstr "Fout bij het selecteren van GSUB taal `%4.4s' voor script `%4.4s'.\n" - -#: test/ftdump.c:714 test/ftdump.c:918 -#, c-format -msgid " language `%4.4s' (index %hu):\n" -msgstr " taal `%4.4s' (index %hu):\n" - -#: test/ftdump.c:719 test/ftdump.c:923 -#, c-format -msgid " required feature index %hu (lookup " -msgstr " benodigde kenmerk index %hu (lookup " - -#: test/ftdump.c:734 -#, c-format -msgid "" -"Error while querying GSUB feature list\n" -"for script `%4.4s', language `%4.4s'.\n" -msgstr "" -"Fout bij het opvragen van GSUB kenmerken lijst\n" -"voor script `%4.4s', taal `%4.4s'.\n" - -#: test/ftdump.c:751 -#, c-format -msgid "" -"Error while selecting GSUB feature `%4.4s'\n" -"for script `%4.4s', language `%4.4s'.\n" -msgstr "" -"Fout bij het selecteren van GSUB kenmerk `%4.4s'\n" -"voor script `%4.4s', taal `%4.4s'.\n" - -#: test/ftdump.c:776 test/ftdump.c:980 -msgid "" -"Lookups:\n" -"\n" -msgstr "" -"Lookups:\n" -"\n" - -#: test/ftdump.c:779 test/ftdump.c:983 -#, c-format -msgid " %hu: type %hu, flag 0x%x\n" -msgstr " %hu: type %hu, vlag 0x%x\n" - -#: test/ftdump.c:819 -msgid "Error while loading GPOS table.\n" -msgstr "Fout bij het laden van GPOS tabel.\n" - -#: test/ftdump.c:823 -msgid "GPOS table\n" -msgstr "GPOS tabel\n" - -#: test/ftdump.c:830 -msgid "Error while querying GPOS script list.\n" -msgstr "Fout bij het opvragen van GPOS script lijst.\n" - -#: test/ftdump.c:843 -#, c-format -msgid "Error while selecting GPOS script `%4.4s'.\n" -msgstr "Fout bij het selecteren van GPOS script `%4.4s'.\n" - -#: test/ftdump.c:856 -#, c-format -msgid "Error while querying GPOS default language system for script `%4.4s'.\n" -msgstr "" -"Fout bij het opvragen van GPOS standaard taal systeem voor script `%4.4s'.\n" - -#: test/ftdump.c:874 -#, c-format -msgid "" -"Error while selecting GPOS feature `%4.4s'\n" -"for default language system of script `%4.4s'.\n" -msgstr "" -"Fout bij het selecteren van GPOS kenmerk `%4.4s'\n" -"voor standaard taal systeem van script `%4.4s'.\n" - -#: test/ftdump.c:896 -#, c-format -msgid "Error while querying GPOS language list for script `%4.4s'.\n" -msgstr "Fout bij het opvragen van GPOS taal lijst voor script `%4.4s'.\n" - -#: test/ftdump.c:913 -#, c-format -msgid "Error while selecting GPOS language `%4.4s' for script `%4.4s'.\n" -msgstr "Fout bij het selecteren van GPOS taal `%4.4s' voor script `%4.4s'.\n" - -#: test/ftdump.c:938 -#, c-format -msgid "" -"Error while querying GPOS feature list\n" -"for script `%4.4s', language `%4.4s'.\n" -msgstr "" -"Fout bij het opvragen van GPOS kenmerken lijst\n" -"voor script `%4.4s', taal `%4.4s'.\n" - -#: test/ftdump.c:955 -#, c-format -msgid "" -"Error while selecting GPOS feature `%4.4s'\n" -"for script `%4.4s', language `%4.4s'.\n" -msgstr "" -"Fout bij het selecteren van GPOS kenmerk `%4.4s'\n" -"voor script `%4.4s', taal `%4.4s'.\n" - -#: test/ftdump.c:1018 -msgid "ftdump: Simple TrueType Dumper -- part of the FreeType project" -msgstr "" -"ftdump: eenvoudige TrueType dumper -- onderdeel van het FreeType project" - -#: test/ftdump.c:1022 -#, c-format -msgid "" -"Usage: %s fontname[.ttf|.ttc]\n" -"\n" -msgstr "" -"Gebruik: %s lettertype[.ttf|.ttc]\n" -"\n" - -#: test/ftdump.c:1054 test/ftlint.c:134 test/ftmetric.c:228 test/ftsbit.c:127 -msgid "Error while initializing engine.\n" -msgstr "Fout bij het starten van de FreeType engine.\n" - -#: test/ftdump.c:1061 test/ftmetric.c:236 test/ftsbit.c:134 -msgid "Error while initializing embedded bitmap extension.\n" -msgstr "Fout bij het starten de ingebedde bitmap toevoeging.\n" - -#: test/ftdump.c:1068 -msgid "Error while initializing GSUB extension.\n" -msgstr "Fout bij het starten van de GSUB toevoeging.\n" - -#: test/ftdump.c:1075 -msgid "Error while initializing GPOS extension.\n" -msgstr "Fout bij het starten van de GPOS toevoeging.\n" - -#: test/ftdump.c:1091 test/ftlint.c:187 test/ftmetric.c:251 test/ftsbit.c:182 -#, c-format -msgid "Could not find or open %s.\n" -msgstr "Kan %s niet vinden of openen.\n" - -#: test/ftdump.c:1094 test/ftlint.c:193 test/ftmetric.c:254 test/ftsbit.c:188 -#, c-format -msgid "Error while opening %s.\n" -msgstr "Fout bij het openen van %s.\n" - -#: test/ftlint.c:94 -msgid "" -"ftlint: Simple TrueType instruction tester -- part of the FreeType project" -msgstr "" -"ftlint: TrueType instructie tester -- onderdeel van het FreeType project" - -#: test/ftlint.c:99 -#, c-format -msgid "" -"Usage: %s ppem fontname[.ttf|.ttc] [fontname2..]\n" -"\n" -msgstr "" -"Gebruik: %s ppem lettertype[.ttf|.ttc] [lettertype2..]\n" -"\n" - -#: test/ftlint.c:226 test/ftsbit.c:225 -#, c-format -msgid "Could not set point size to %d.\n" -msgstr "Instellen van puntgrootte %d mislukt.\n" - -#: test/ftlint.c:239 -msgid "" -"Error with\n" -" " -msgstr "" -"Fout met\n" -" " - -#: test/ftlint.c:240 -#, c-format -msgid "glyph %4u: %s\n" -msgstr "Glyph %4u: %s\n" - -#: test/ftlint.c:253 -msgid "1 fail.\n" -msgstr "1 misser.\n" - -#: test/ftlint.c:255 -#, c-format -msgid "%d fails.\n" -msgstr "%d missers.\n" - -#: test/ftmetric.c:70 -msgid "" -"ftmetric: Simple TTF metrics/glyph dumper -- part of the FreeType project" -msgstr "" -"ftmetric: TTF metriek/Glyph dumper -- onderdeel van het FreeType project" - -#: test/ftmetric.c:74 -#, c-format -msgid "" -"Usage: %s [options below] point fontname[.ttf|.ttc]\n" -"\n" -" -B show sbit's metrics (default: none)\n" -" -c C use C'th font index of TrueType collection (default: 0)\n" -" -i index glyph index (default: 0)\n" -" -r R use resolution R dpi (default: 72)\n" -"\n" -msgstr "" -"Gebruik: %s [opties hieronder] punt lettertype[.ttf|.ttc]\n" -"\n" -" -B toon sbit's metriek (standaard: geen)\n" -" -c C gebruik 'C'e lettertype index van TrueType collectie (standaard: " -"0)\n" -" -i index Glyph index (standaard: 0)\n" -" -r R gebruik resolutie van R dpi (standaard: 72)\n" -"\n" - -#: test/ftmetric.c:261 -#, c-format -msgid "There are %d fonts in this collection.\n" -msgstr "Er zijn %d lettertypen in deze collectie.\n" - -#: test/ftmetric.c:266 -#, c-format -msgid "There is no collection with index %d in this font file.\n" -msgstr "Er is geen collectie met index %d in dit lettertype.\n" - -#: test/ftmetric.c:280 -msgid "There is no embedded bitmap data in the font.\n" -msgstr "Er is geen ingebedde bitmap informatie in het lettertype.\n" - -#: test/ftmetric.c:310 -msgid "Could not set device resolutions.\n" -msgstr "Instellen van resolutie is mislukt.\n" - -#: test/ftmetric.c:317 -msgid "Could not reset instance.\n" -msgstr "Her-instellen van Instance mislukt.\n" - -#: test/ftmetric.c:323 -#, c-format -msgid "Instance metrics: ppemX %d, ppemY %d\n" -msgstr "Instance metriek: ppemX %d, ppemY %d\n" - -#: test/ftmetric.c:333 test/ftsbit.c:234 -msgid "Could not allocate glyph bitmap container.\n" -msgstr "Toewijzen van Glyph bitmap container mislukt.\n" - -#: test/ftmetric.c:341 test/ftsbit.c:258 -#, c-format -msgid "Can't load bitmap for glyph %d.\n" -msgstr "Laden van bitmap voor Glyph %d mislukt.\n" - -#: test/ftmetric.c:368 -msgid "Outline's metrics" -msgstr "Omtrek metriek" - -#: test/ftmetric.c:370 -msgid "Outline glyph\n" -msgstr "Omtrek Glyph\n" - -#: test/ftsbit.c:90 -msgid "ftsbit: Simple TrueType `sbit' dumper -- part of the FreeType project" -msgstr "ftsbit: TrueType `sbit' dumper -- onderdeel van het FreeType project" - -#: test/ftsbit.c:95 -#, c-format -msgid "" -"Usage: %s ppem fontname[.ttf|.ttc] glyph_index [glyph_index2..]\n" -"\n" -msgstr "" -"Gebruik: %s ppem lettertype[.ttf|.ttc] glyph_index [glyph_index2..]\n" -"\n" - -#: test/ftsbit.c:200 -msgid "Could not find embedded bitmaps in this font.\n" -msgstr "Ingebedde bitmaps niet gevonden in dit lettertype.\n" - -#: test/ftsbit.c:206 -msgid "Error while loading embedded bitmaps.\n" -msgstr "Fout bij het laden van ingebedde bitmaps.\n" - -#: test/ftsbit.c:252 -#, c-format -msgid " no bitmap for glyph %d.\n" -msgstr " geen bitmap voor Glyph %d.\n" - -#: test/ftsbit.c:264 -#, c-format -msgid "glyph index %d = %dx%d pixels, " -msgstr "Glyph index %d = %dx%d pixels, " - -#: test/ftsbit.c:267 -#, c-format -msgid "advance = %ld, minBearing = [%ld,%ld]\n" -msgstr "advance = %ld, minBearing = [%ld,%ld]\n" diff --git a/Build/source/libs/freetype/freetype-1.5/readme.1st b/Build/source/libs/freetype/freetype-1.5/readme.1st deleted file mode 100644 index ad87630be1c..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/readme.1st +++ /dev/null @@ -1,10 +0,0 @@ - - DISCLAIMER - - - PLEASE READ THE FILE `PATENTS' BEFORE ANYTHING ELSE! IT - CONTAINS *CRITICAL* INFORMATION REGARDING THE FREE USE OF THIS - LIBRARY. - - ---- end of readme.1st --- diff --git a/Build/source/libs/freetype/freetype-1.5/test/.cvsignore b/Build/source/libs/freetype/freetype-1.5/test/.cvsignore deleted file mode 100644 index 0f0d08671e4..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/.cvsignore +++ /dev/null @@ -1,12 +0,0 @@ -.libs -ftview -fttimer -ftlint -ftdump -ftzoom -ftstring -ftstrpnm -fterror -ftsbit -ftmetric -ftstrtto diff --git a/Build/source/libs/freetype/freetype-1.5/test/.cvsignore.delete b/Build/source/libs/freetype/freetype-1.5/test/.cvsignore.delete deleted file mode 100644 index e69de29bb2d..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/.cvsignore.delete +++ /dev/null diff --git a/Build/source/libs/freetype/freetype-1.5/test/README b/Build/source/libs/freetype/freetype-1.5/test/README deleted file mode 100644 index 364b1eb586a..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/README +++ /dev/null @@ -1,6 +0,0 @@ - -The instructions how to use the test programs can be found in the -main `README' file located in the parent directory. - - ---- end of README --- diff --git a/Build/source/libs/freetype/freetype-1.5/test/arabic.c b/Build/source/libs/freetype/freetype-1.5/test/arabic.c deleted file mode 100644 index 37715ff7447..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/arabic.c +++ /dev/null @@ -1,386 +0,0 @@ -/****************************************************************************/ -/* */ -/* The FreeType project -- a free and portable quality TrueType renderer. */ -/* */ -/* Copyright 1996-2000 by */ -/* D. Turner, R.Wilhelm, and W. Lemberg */ -/* */ -/* arabic -- An implementation of the contextual algorithm given in the */ -/* Unicode 2.0 book to assign the `isolated', `initial', `medial', and */ -/* `final' properties to an input string of character codes for the Arabic */ -/* script. */ -/* */ -/****************************************************************************/ - -#include <stdio.h> -#include <stdlib.h> - -#include "arabic.h" -#include "freetype.h" -#include "ftxopen.h" - - - /* - - Here a table of the joining classes for characters in the range - U+0620 - U+06FF. - - The following character also has a joining class: - - U+200C ZERO WIDTH NON-JOINER -> causing - - All other characters are given the joining class `none'. - - */ - - joining_class arabic[] = - { - /* U+0620 */ - none, none, right, right, - right, right, dual, right, - dual, right, dual, dual, - dual, dual, dual, right, - - /* U+0630 */ - right, right, right, dual, - dual, dual, dual, dual, - dual, dual, dual, none, - none, none, none, none, - - /* U+0640 */ - causing, dual, dual, dual, - dual, dual, dual, dual, - right, right, dual, transparent, - transparent, transparent, transparent, transparent, - - /* U+0650 */ - transparent, transparent, transparent, none, - none, none, none, none, - none, none, none, none, - none, none, none, none, - - /* U+0660 */ - none, none, none, none, - none, none, none, none, - none, none, none, none, - none, none, none, none, - - /* U+0670 */ - transparent, none, right, right, - none, right, right, right, - dual, dual, dual, dual, - dual, dual, dual, dual, - - /* U+0680 */ - dual, dual, dual, dual, - dual, dual, dual, dual, - right, right, right, right, - right, right, right, right, - - /* U+0690 */ - right, right, right, right, - right, right, right, right, - right, right, dual, dual, - dual, dual, dual, dual, - - /* U+06A0 */ - dual, dual, dual, dual, - dual, dual, dual, dual, - dual, dual, dual, dual, - dual, dual, dual, dual, - - /* U+06B0 */ - dual, dual, dual, dual, - dual, dual, dual, dual, - dual, dual, dual, dual, - dual, dual, dual, dual, - - /* U+06C0 */ - right, dual, right, right, - right, right, right, right, - right, right, right, right, - dual, right, dual, right, - - /* U+06D0 */ - dual, dual, right, right, - none, none, none, transparent, - transparent, transparent, transparent, transparent, - transparent, transparent, transparent, transparent, - - /* U+06E0 */ - transparent, transparent, transparent, transparent, - transparent, none, none, transparent, - transparent, none, transparent, transparent, - transparent, transparent, none, none, - - /* U+06F0 */ - none, none, none, none, - none, none, none, none, - none, none, dual, dual, - dual, none, none, none - }; - - - struct cgc_ - { - TT_UShort char_code; - TT_UShort glyph_index; - TT_UShort class; - }; - - typedef struct cgc_ cgc; - - - int compare_cgc( const void* a, - const void* b ) - { - return ( ((cgc*)a)->glyph_index > ((cgc*)b)->glyph_index ) ? - 1 : ( ( ((cgc*)a)->glyph_index == ((cgc*)b)->glyph_index ) ? - 0 : -1 ); - } - - - TT_Error Build_Arabic_Glyph_Properties( TT_CharMap char_map, - TT_UShort max_glyphs, - TTO_GDEFHeader** gdef ) - { - TT_UShort i, j, num_glyphs; - - cgc Arabic[0x0700 - 0x0620]; - - TT_UShort glyph_indices[0x700 - 0x0620]; - TT_UShort classes[0x700 - 0x0620]; - - - if ( !gdef ) - return TT_Err_Invalid_Argument; - - j = 0; - - for ( i = 0x0620; i < 0x0700; i++ ) - { - Arabic[j].char_code = i; - Arabic[j].class = ( arabic[i - 0x0620] == transparent ) ? - MARK_GLYPH : SIMPLE_GLYPH; - Arabic[j].glyph_index = TT_Char_Index( char_map, i ); - if ( Arabic[j].glyph_index ) - j++; - } - num_glyphs = j; - - if ( !num_glyphs ) - { - /* no Arabic font */ - *gdef = NULL; - return TT_Err_Ok; - } - - /* sort it */ - - qsort( Arabic, num_glyphs, sizeof ( cgc ), compare_cgc ); - - /* write it to the arrays, removing duplicates */ - - glyph_indices[0] = Arabic[0].glyph_index; - classes[0] = Arabic[0].class; - - j = 1; - - for ( i = 1; i < num_glyphs; i++ ) - { - glyph_indices[j] = Arabic[i].glyph_index; - classes[j] = Arabic[i].class; - - if ( glyph_indices[j - 1] != glyph_indices[j] ) - j++; - } - num_glyphs = j; - - TT_GDEF_Build_ClassDefinition( *gdef, max_glyphs, num_glyphs, - glyph_indices, classes ); - - return TT_Err_Ok; - } - - - /* The joining rules as given in the Unicode 2.0 book (characters are - here specified as appearing in the byte stream, i.e. *not* in - visual order). Joining classes are given in angle brackets, glyph - forms in square brackets. Glyphs affected by a specific rule are - enclosed with vertical bars. - - Note: The description of the joining algorithm in the book is - severely broken. You can get a corrected version from - www.unicode.org (as of 29-Jun-1999, this hasn't appeared). - - R1: <anything1> <transparent> <anything2> - - apply joining rules for - <anything1> <anything2> -> [shape1] [shape2] - - -> [shape1] [isolated] [shape2] - - R2: <causing|left|dual> |<right>| - - -> [final] - - R3: |<left>| <causing|right|dual> - - -> [initial] - - R4: <causing|left|dual> |<dual>| <causing|right|dual> - - -> [medial] - - R5: <causing|left|dual> |<dual>| <!(causing|right|dual)> - - -> [final] - - R6: <!(causing|left|dual)> |<dual>| <causing|right|dual> - - -> [initial] - - R7: If R1-R6 fail: - - <anything> -> [isolated] */ - - - /* `direction' can be -1, 0, or 1 to indicate the last non-transparent - glyph, the current glyph, and the next non-transparent glyph, - respectively. */ - - static joining_class Get_Joining_Class( TT_ULong* string, - TT_UShort pos, - TT_UShort length, - int direction ) - { - joining_class j; - - - while ( 1 ) - { - if ( pos == 0 && direction < 0 ) - return none; - - pos += direction; - - if ( pos >= length ) - return none; - - if ( string[pos] < 0x0620 || - string[pos] >= 0x0700 ) - { - if ( string[pos] == 0x200C ) - return causing; - else - return none; - } - else - j = arabic[string[pos] - 0x0620]; - - if ( !direction || j != transparent ) - return j; - } - } - - - TT_Error Assign_Arabic_Properties( TT_ULong* string, - TT_UShort* properties, - TT_UShort length ) - { - joining_class previous, current, next; - - TT_UShort i; - - - if ( !string || !properties || length == 0 ) - return TT_Err_Invalid_Argument; - - for ( i = 0; i < length; i++ ) - { - previous = Get_Joining_Class( string, i, length, -1 ); - current = Get_Joining_Class( string, i, length, 0 ); - next = Get_Joining_Class( string, i, length, 1 ); - - /* R1 */ - - if ( current == transparent ) - { - properties[i] |= isolated_p; - continue; - } - - /* R2 */ - - if ( previous == causing || - previous == left || - previous == dual ) - if ( current == right ) - { - properties[i] |= final_p; - continue; - } - - /* R3 */ - - if ( current == left ) - if ( next == causing || - next == right || - next == dual ) - { - properties[i] |= initial_p; - continue; - } - - /* R4 */ - - if ( previous == causing || - previous == left || - previous == dual ) - if ( current == dual ) - if ( next == causing || - next == right || - next == dual ) - { - properties[i] |= medial_p; - continue; - } - - /* R5 */ - - if ( previous == causing || - previous == left || - previous == dual ) - if ( current == dual ) - if ( !( next == causing || - next == right || - next == dual ) ) - { - properties[i] |= final_p; - continue; - } - - /* R6 */ - - if ( !( previous == causing || - previous == left || - previous == dual ) ) - if ( current == dual ) - if ( next == causing || - next == right || - next == dual ) - { - properties[i] |= initial_p; - continue; - } - - /* R7 */ - - properties[i] |= isolated_p; - } - - return TT_Err_Ok; - } - - -/* End */ diff --git a/Build/source/libs/freetype/freetype-1.5/test/arabic.h b/Build/source/libs/freetype/freetype-1.5/test/arabic.h deleted file mode 100644 index af7f63279fd..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/arabic.h +++ /dev/null @@ -1,66 +0,0 @@ -/****************************************************************************/ -/* */ -/* The FreeType project -- a free and portable quality TrueType renderer. */ -/* */ -/* Copyright 1996-2000 by */ -/* D. Turner, R.Wilhelm, and W. Lemberg */ -/* */ -/* arabic -- An implementation of the contextual algorithm given in the */ -/* Unicode 2.0 book to assign the `isolated', `initial', `medial', and */ -/* `final' properties to an input string of character codes for the Arabic */ -/* script. */ -/* */ -/****************************************************************************/ - - -#include "freetype.h" -#include "ftxopen.h" - - - enum joining_type_ - { - isolated = 1, /* nominal */ - final = 2, /* right_joining */ - initial = 4, /* left_joining */ - medial = 8 /* double_joining */ - }; - - typedef enum joining_type_ joining_type; - - - /* A glyph's property value as needed by e.g. TT_GSUB_Apply_String() - specifies which features should *not* be applied */ - - enum arabic_glyph_property_ - { - isolated_p = final | initial | medial, - final_p = isolated | initial | medial, - initial_p = isolated | final | medial, - medial_p = isolated | final | initial - }; - - typedef enum arabic_glyph_property_ arabic_glyph_property; - - - enum joining_class_ - { - right, - left, /* not used */ - dual, - causing, - none, - transparent - }; - - typedef enum joining_class_ joining_class; - - - TT_Error Assign_Arabic_Properties( TT_ULong* string, - TT_UShort* properties, - TT_UShort length ); - TT_Error Build_Arabic_Glyph_Properties( TT_CharMap char_map, - TT_UShort max_glyphs, - TTO_GDEFHeader** gdef ); - - -/* End */ diff --git a/Build/source/libs/freetype/freetype-1.5/test/arch/amigaos/Makefile.gcc b/Build/source/libs/freetype/freetype-1.5/test/arch/amigaos/Makefile.gcc deleted file mode 100644 index 1cb828baa2d..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/arch/amigaos/Makefile.gcc +++ /dev/null @@ -1,118 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library and test programs for amiga using ADE. -# -# You will need GNU make. -# -# Use this file while in the 'test' directory with the following statement: -# -# make -f arch/amigaos/Makefile.gcc -# -# -# Copyright 1996-2001 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. - -ARCH = arch/amigaos -FT_MAKEFILE = $(ARCH)/Makefile.gcc - -CC = gcc - -LIBDIR = ../lib -INCDIRS = -I$(LIBDIR) -I$(LIBDIR)/$(ARCH) -I. -I$(LIBDIR)/extend - -CFLAGS = -ansi -Wall -g -noixemul $(INCDIRS) -# CFLAGS = -Wall -noixemul -O2 -Ilib $(INCDIRS) - -SRC = arabic.c \ - common.c \ - textdisp.c \ - ftdump.c \ - fterror.c \ - ftlint.c \ - ftmetric.c \ - ftsbit.c \ - ftstring.c \ - ftstrpnm.c \ - ftstrtto.c \ - fttimer.c \ - ftview.c \ - ftzoom.c - -GSRC = gmain.c display.c blitter.c $(ARCH)/gw_amiga.c -GOBJ = $(GSRC:.c=.o) - - -%.o: %.c - $(CC) $(CFLAGS) -c -o $@ $< - -%.exe: - $(CC) $(CFLAGS) -o $@ @^ - - -EXEFILES = ftdump \ - fterror \ - ftlint \ - ftmetric \ - ftsbit \ - ftstring \ - ftstrpnm \ - ftstrtto \ - fttimer \ - ftview \ - ftzoom - -.PHONY: all debug freetype freetype_debug \ - clean distclean do_clean depend - - -all: freetype $(EXEFILES) - -debug: freetype_debug $(EXEFILES) - -freetype: - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) all - -freetype_debug: - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) debug - -ftzoom: $(GOBJ) ftzoom.o common.o $(LIBDIR)/libttf.a -ftview: $(GOBJ) ftview.o common.o $(LIBDIR)/libttf.a -ftlint: ftlint.o common.o $(LIBDIR)/libttf.a -ftdump: ftdump.o common.o $(LIBDIR)/libttf.a -ftstring: $(GOBJ) ftstring.o common.o $(LIBDIR)/libttf.a -fttimer: $(GOBJ) fttimer.o common.o $(LIBDIR)/libttf.a -ftsbit: ftsbit.o common.o textdisp.o $(LIBDIR)/libttf.a -ftstrpnm: ftstrpnm.o common.o $(LIBDIR)/libttf.a -ftmetric: ftmetric.o common.o textdisp.o $(LIBDIR)/libttf.a -ftstrtto: $(GOBJ) ftstrtto.o common.o arabic.o $(LIBDIR)/libttf.a -fterror: fterror.o $(LIBDIR)/libttf.a - - -clean: do_clean - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) clean - -distclean: do_clean - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) distclean - -rm dep.end core - -rm $(EXE) - -do_clean: - -rm *.o - -rm arch/amigaos/*.o - - -depend: - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) depend - $(CC) -E -M $(INCDIRS) $(SRC) $(GSRC) > dep.end - -ifeq (dep.end,$(wildcard dep.end)) - include dep.end -endif - -# end of Makefile.gcc diff --git a/Build/source/libs/freetype/freetype-1.5/test/arch/amigaos/TODO b/Build/source/libs/freetype/freetype-1.5/test/arch/amigaos/TODO deleted file mode 100644 index 49e53a1b243..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/arch/amigaos/TODO +++ /dev/null @@ -1,16 +0,0 @@ - - * To test the window oriented driver. - - * To improve the window oriented driver to use ROM functions like - WriteChunkyPixel() (or similar) instead of the current routine. - - * To build a truetype.library from libttf.a - - * truetype.datatype. - - * Program to convert truetype fonts in Amiga fonts. - - Suggestions, bug reports, code improvements, support for other compilers, - ... are welcome ! - - Send them to: map@medusa.es or to freetype@freetype.org diff --git a/Build/source/libs/freetype/freetype-1.5/test/arch/amigaos/gfsamiga.c b/Build/source/libs/freetype/freetype-1.5/test/arch/amigaos/gfsamiga.c deleted file mode 100644 index 8a680a1774d..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/arch/amigaos/gfsamiga.c +++ /dev/null @@ -1,428 +0,0 @@ -/******************************************************************* - * - * gfsamiga.c graphics utility fullscreen Amiga driver. 1.0 - * - * This is the driver for fullscreen Amiga display, used by the - * graphics utility of the FreeType test suite. - * - * Copyright 1996-2000 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - ******************************************************************/ - -/* standard includes */ - -#include <stdio.h> -#include <stdlib.h> - -/* AmigaOS includes */ - -#include <exec/types.h> -#include <exec/memory.h> -#include <intuition/intuition.h> -#include <intuition/screens.h> - -#ifdef __GNUC__ - -#include <inline/exec.h> -#include <inline/intuition.h> -#include <inline/graphics.h> -#include <inline/dos.h> - -#else - -#include <clib/exec_protos.h> -#include <clib/intuition_protos.h> -#include <clib/graphics_protos.h> -#include <clib/dos_protos.h> - -#endif - -/* FreeType includes */ - -#include "gdriver.h" -#include "gevents.h" -#include "gmain.h" - -/* some screen definitions */ - -#define MONO_SCREEN_WIDTH 640 -#define MONO_SCREEN_HEIGHT 512 -#define MONO_SCREEN_DEPTH 1 - -#define GRAY_SCREEN_WIDTH 320 -#define GRAY_SCREEN_HEIGHT 256 -#define GRAY_SCREEN_DEPTH 3 - -#define DISPLAY_MEM ( 1024 * 64 ) - - - /* external variables */ - - extern struct Library* SysBase; - extern struct Library* DOSBase; - - extern int vio_ScanLineWidth; - extern char* Vio; - extern char gray_palette[5]; - - /* global variables */ - - struct Library* IntuitionBase = NULL; - struct Library* GfxBase = NULL; - - typedef struct _Translator - { - char key; - GEvent event_class; - int event_info; - } Translator; - -#define NUM_Translators 20 - - static const Translator trans[NUM_Translators] = - { - { (char)27, event_Quit, 0 }, - { 'q', event_Quit, 0 }, - - { 'x', event_Rotate_Glyph, -1 }, - { 'c', event_Rotate_Glyph, 1 }, - { 'v', event_Rotate_Glyph, -16 }, - { 'b', event_Rotate_Glyph, 16 }, - - { '{', event_Change_Glyph, -10000 }, - { '}', event_Change_Glyph, 10000 }, - { '(', event_Change_Glyph, -1000 }, - { ')', event_Change_Glyph, 1000 }, - { '9', event_Change_Glyph, -100 }, - { '0', event_Change_Glyph, 100 }, - { 'i', event_Change_Glyph, -10 }, - { 'o', event_Change_Glyph, 10 }, - { 'k', event_Change_Glyph, -1 }, - { 'l', event_Change_Glyph, 1 }, - - { '+', event_Scale_Glyph, 10 }, - { '-', event_Scale_Glyph, -10 }, - { 'u', event_Scale_Glyph, 1 }, - { 'j', event_Scale_Glyph, -1 } - }; - - - /* local variables */ - - static struct Screen* fts = NULL; - static struct Window* ftw = NULL; - - static int graphx_mode; - - - /* exit gracefully */ - - static void AmigaCleanUp( void ) - { - if ( ftw ) - CloseWindow( ftw ); - - if ( fts ) - CloseScreen( fts ); - - if ( IntuitionBase ) - CloseLibrary( IntuitionBase ); - - if ( GfxBase ) - CloseLibrary( GfxBase ); - - if ( graphx_mode == Graphics_Mode_Gray ) - if ( Vio ) - FreeMem( Vio, DISPLAY_MEM ); - } - - - static void SetPalette( void ) - { - short color[] = { 0x0000, - 0x0333, - 0x0777, - 0x0BBB, - 0x0FFF, - 0x0A00, - 0x00A0, - 0x000A - }; - short i; - - - for ( i = 0; i < 8; i++ ) - { - if ( i < 5 ) - gray_palette[i] = i; - - SetRGB4( &fts->ViewPort, i, (UBYTE)(color[i] >> 8 & 0x0f), - (UBYTE)(color[i] >> 4 & 0x0f), - (UBYTE)(color[i] & 0x0f ) ); - } - } - - - /* open libraries & custom screen */ - - static int AmigaInit( void ) - { - /* cleanup at exit */ - if ( atexit( AmigaCleanUp ) ) - { - PutStr( "atexit() failed\n" ); - return -1; - } - - /* open intuition library */ - - IntuitionBase = (struct Library*)OpenLibrary( "intuition.library", 37L ); - if ( IntuitionBase == NULL ) - { - PutStr( "Could not open intuition library\n" ); - return -1; - } - - /* Open graphics library */ - - GfxBase = OpenLibrary( "graphics.library", 37L ); - if ( GfxBase == NULL ) - { - PutStr( "Could not open graphics library\n" ); - return -1; - } - - if ( graphx_mode == Graphics_Mode_Gray ) - { - /* open custom screen */ - fts = (struct Screen*)OpenScreenTags( - NULL, - SA_DisplayID, (PAL_MONITOR_ID | LORES_KEY), - SA_Width, GRAY_SCREEN_WIDTH, - SA_Height, GRAY_SCREEN_HEIGHT, - SA_Depth, GRAY_SCREEN_DEPTH, - SA_ShowTitle, FALSE, - TAG_DONE ); - - if ( fts == NULL ) - { - PutStr( "Could not open custom screen\n" ); - return -1; - } - - /* set gray palette */ - SetPalette(); - } - else - { - /* open custom screen */ - fts = (struct Screen*)OpenScreenTags( - NULL, - SA_DisplayID, (PAL_MONITOR_ID | HIRESLACE_KEY), - SA_Width, MONO_SCREEN_WIDTH, - SA_Height, MONO_SCREEN_HEIGHT, - SA_Depth, MONO_SCREEN_DEPTH, - SA_ShowTitle, FALSE, - TAG_DONE ); - - if ( fts == NULL ) - { - PutStr( "Could not open custom screen\n" ); - return -1; - } - } - - /* open intuition window */ - ftw = OpenWindowTags( - NULL, - WA_Left, 0, - WA_Width, fts->Width, - WA_Top, 0, - WA_Height, fts->Height, - WA_IDCMP, IDCMP_VANILLAKEY | IDCMP_MOUSEBUTTONS, - WA_Flags, WFLG_BACKDROP | WFLG_BORDERLESS | - WFLG_RMBTRAP | WFLG_ACTIVATE, - WA_Gadgets, NULL, - WA_Title, NULL, - WA_CustomScreen, fts, - TAG_DONE ); - - if ( ftw == NULL ) - { - PutStr( "Could not open intuition window\n" ); - return -1; - } - - if ( graphx_mode == Graphics_Mode_Gray ) - { - Vio = (char*)AllocMem( DISPLAY_MEM, MEMF_ANY ); - - if ( !Vio ) - { - PutStr( "Cannot AllocMem() display memory\n" ); - return -1; - } - - vio_Width = vio_ScanLineWidth = GRAY_SCREEN_WIDTH; - vio_Height = GRAY_SCREEN_HEIGHT; - } - else - { - Vio = (char*)fts->BitMap.Planes[0]; - vio_ScanLineWidth = fts->BitMap.BytesPerRow; - vio_Width = MONO_SCREEN_WIDTH; - vio_Height = MONO_SCREEN_HEIGHT; - } - - return 0; - } - - - /* get events in the window */ - - static char Get_Intuition_Event( void ) - { - struct IntuiMessage* msg; - ULONG class; - USHORT code; - - - WaitPort( ftw->UserPort ); - - while ( ( msg = (struct IntuiMessage*)GetMsg( ftw->UserPort ) ) ) - { - class = msg->Class; - code = msg->Code; - - ReplyMsg( (struct Message*)msg ); - - switch ( class ) - { - case IDCMP_MOUSEBUTTONS: - return (char)27; - - case IDCMP_VANILLAKEY: - return (char)code; - } - } - - return '\0'; - } - - - /* set Amiga graphics mode */ - - int Driver_Set_Graphics( int mode ) - { - graphx_mode = mode; - - - if ( AmigaInit() == -1 ) - return 0; /* failure */ - - return 1; /* success */ - } - - - /* restore screen to its original state */ - - int Driver_Restore_Mode( void ) - { - /* do nothing */ - - return 1; /* success */ - } - - - /* display bitmap */ - - int Driver_Display_Bitmap( char* buffer, int line, int col ) - { - int y, z; - char* target; - char old = -1; - - - target = Vio + ( line - 1 ) * vio_ScanLineWidth; - - for ( y = 0; y < line; y++ ) - { - CopyMem( buffer, target, col ); - target -= vio_ScanLineWidth; - buffer += col; - } - - if ( graphx_mode == Graphics_Mode_Gray ) - { - /* clear screen */ - SetRast( &fts->RastPort, 0 ); - - /* draw glyph */ - for ( y = 0; y < line; y++ ) - { - for ( z = 0; z < col; z++ ) - { - int c = Vio[y * vio_ScanLineWidth + z]; - - if ( c != 0 ) - { - if ( old != c ) - { - if ( c < 0 || c > 5 ) - { - PutStr( "Unexpected value!\n" ); - SetAPen( &fts->RastPort, 7 ); - } - else - { - old = c; - SetAPen( &fts->RastPort, c ); - } - } - - WritePixel( &fts->RastPort, z, y ); - } - } - } - } - - return 1; /* success */ - } - - - void Get_Event( TEvent* event ) - { - int i; - char c; - - - c = Get_Intuition_Event(); - - if ( c != '\0' ) - for ( i = 0; i < NUM_Translators; i++ ) - { - if ( c == trans[i].key ) - { - event->what = trans[i].event_class; - event->info = trans[i].event_info; - return; - } - } - - /* unrecognized keystroke */ - - event->what = event_Keyboard; - event->info = (int)c; - - return; - } - - -/* End */ diff --git a/Build/source/libs/freetype/freetype-1.5/test/arch/amigaos/gw_amiga.c b/Build/source/libs/freetype/freetype-1.5/test/arch/amigaos/gw_amiga.c deleted file mode 100644 index 3704d96f999..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/arch/amigaos/gw_amiga.c +++ /dev/null @@ -1,519 +0,0 @@ -/******************************************************************* - * - * gw_amiga.c graphics utility Intuition Amiga driver. - * - * This is the driver for windowed display under Amiga WorkBench, - * used by the graphics utility of the FreeType test suite. - * - * Copyright 1996-2000, 2002 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - ******************************************************************/ - -/* modified by Richard Griffith - open largest window we can, and adapt accordingly - gray and mono both appear black on white - display Header message in Window title - add simple menus - */ - -/* standard includes */ - -#include <stdio.h> -#include <stdlib.h> - -/* AmigaOS includes */ - -#include <exec/types.h> -#include <exec/memory.h> -#include <intuition/intuition.h> -#include <intuition/screens.h> -#include <libraries/gadtools.h> - -#include <clib/exec_protos.h> -#include <clib/intuition_protos.h> -#include <clib/graphics_protos.h> -#include <clib/dos_protos.h> -#include <clib/gadtools_protos.h> - -/* FreeType includes */ - -#include "gdriver.h" -#include "gevents.h" -#include "gmain.h" - - -/* some screen definitions */ - -#define MONO_WINDOW_WIDTH 0xFFFF -#define MONO_WINDOW_HEIGHT 0xFFFF - -#define GRAY_WINDOW_WIDTH 0xFFFF -#define GRAY_WINDOW_HEIGHT 0xFFFF - -#define DISPLAY_MEM ( 1024 * 64 ) - - - /* external variables */ - extern struct Library* SysBase; - extern struct Library* DOSBase; - - extern int vio_ScanLineWidth; - extern char* Vio; -/* extern char gray_palette[5]; */ - - /* global variables */ - struct Library* IntuitionBase = NULL; - struct Library* GfxBase = NULL; - struct Library* GadToolsBase = NULL; - - typedef struct _Translator - { - char key; - GEvent event_class; - int event_info; - } Translator; - -#define NUM_Translators 20 - - static const Translator trans[NUM_Translators] = - { - { (char)27, event_Quit, 0 }, - { 'q', event_Quit, 0 }, - - { 'x', event_Rotate_Glyph, -1 }, - { 'c', event_Rotate_Glyph, 1 }, - { 'v', event_Rotate_Glyph, -16 }, - { 'b', event_Rotate_Glyph, 16 }, - - { '{', event_Change_Glyph, -10000 }, - { '}', event_Change_Glyph, 10000 }, - { '(', event_Change_Glyph, -1000 }, - { ')', event_Change_Glyph, 1000 }, - { '9', event_Change_Glyph, -100 }, - { '0', event_Change_Glyph, 100 }, - { 'i', event_Change_Glyph, -10 }, - { 'o', event_Change_Glyph, 10 }, - { 'k', event_Change_Glyph, -1 }, - { 'l', event_Change_Glyph, 1 }, - - { '+', event_Scale_Glyph, 10 }, - { '-', event_Scale_Glyph, -10 }, - { 'u', event_Scale_Glyph, 1 }, - { 'j', event_Scale_Glyph, -1 } - }; - - - /* local variables */ - static struct Screen* fts = NULL; - static struct Window* ftw = NULL; - static APTR VisualInfo = NULL; - static struct Menu *ftmenus = NULL; - - static int graphx_mode; - - static ULONG vio_allocsize; - - static struct NewMenu ftNewMenu[] = { - {NM_TITLE, (STRPTR)"File", NULL, 0, NULL, NULL}, - {NM_ITEM, (STRPTR)"Next", (STRPTR)"n", 0, 0L, (APTR)'n'}, - {NM_ITEM, (STRPTR)"Previous",(STRPTR)"p", 0, 0L, (APTR)'p'}, - {NM_ITEM, (STRPTR)NM_BARLABEL, NULL, 0, 0L, NULL}, - {NM_ITEM, (STRPTR)"Quit", (STRPTR)"q", 0, 0L, (APTR)'q'}, - {NM_TITLE, (STRPTR)"Options", NULL, 0, NULL, NULL}, - {NM_ITEM, (STRPTR)"Scale Up", NULL, 0, NULL, NULL}, - {NM_SUB, (STRPTR)"Fine", (STRPTR)"u", 0, 0L, (APTR)'u'}, - {NM_SUB, (STRPTR)"Fast", (STRPTR)"+", 0, 0L, (APTR)'+'}, - {NM_ITEM, (STRPTR)"Scale Down", NULL, 0, NULL, NULL}, - {NM_SUB, (STRPTR)"Fine", (STRPTR)"j", 0, 0L, (APTR)'j'}, - {NM_SUB, (STRPTR)"Fast", (STRPTR)"-", 0, 0L, (APTR)'-'}, - {NM_ITEM, (STRPTR)"Toggle Hinting", (STRPTR)"h", 0, 0L, (APTR)'h'}, - {NM_ITEM, (STRPTR)"Toggle Kerning", (STRPTR)"K", 0, 0L, (APTR)'K'}, - {NM_ITEM, (STRPTR)"Toggle sbit", (STRPTR)"B", 0, 0L, (APTR)'B'}, - {NM_ITEM, (STRPTR)"Toggle GSUB", (STRPTR)"S", 0, 0L, (APTR)'S'}, - {NM_ITEM, (STRPTR)"Toggle GPOS", (STRPTR)"P", 0, 0L, (APTR)'P'}, - {NM_TITLE, (STRPTR)"Glyph", NULL, 0, NULL, NULL}, - {NM_ITEM, (STRPTR)"Next", NULL, 0, NULL, NULL}, - {NM_SUB, (STRPTR)"1", (STRPTR)"l", 0, 0L, (APTR)'l'}, - {NM_SUB, (STRPTR)"10", (STRPTR)"o", 0, 0L, (APTR)'o'}, - {NM_SUB, (STRPTR)"100", (STRPTR)"0", 0, 0L, (APTR)'0'}, - {NM_SUB, (STRPTR)"1000", (STRPTR)")", 0, 0L, (APTR)')'}, - {NM_SUB, (STRPTR)"10000",(STRPTR)"}", 0, 0L, (APTR)'}'}, - {NM_ITEM, (STRPTR)"Previous", NULL, 0, NULL, NULL}, - {NM_SUB, (STRPTR)"1", (STRPTR)"k", 0, 0L, (APTR)'k'}, - {NM_SUB, (STRPTR)"10", (STRPTR)"i", 0, 0L, (APTR)'i'}, - {NM_SUB, (STRPTR)"100", (STRPTR)"9", 0, 0L, (APTR)'9'}, - {NM_SUB, (STRPTR)"1000", (STRPTR)"(", 0, 0L, (APTR)'('}, - {NM_SUB, (STRPTR)"10000",(STRPTR)"{", 0, 0L, (APTR)'{'}, - {NM_TITLE, (STRPTR)"Rotate", NULL, 0, NULL, NULL}, - {NM_ITEM, (STRPTR)"Clockwise", NULL, 0, NULL, NULL}, - {NM_SUB, (STRPTR)"Fine", (STRPTR)"c", 0, 0L, (APTR)'c'}, - {NM_SUB, (STRPTR)"Fast", (STRPTR)"b", 0, 0L, (APTR)'b'}, - {NM_ITEM, (STRPTR)"Counter-clockwise", NULL, 0, NULL, NULL}, - {NM_SUB, (STRPTR)"Fine", (STRPTR)"x", 0, 0L, (APTR)'x'}, - {NM_SUB, (STRPTR)"Fast", (STRPTR)"v", 0, 0L, (APTR)'v'}, - {NM_END, NULL, NULL, 0, 0L, NULL} }; - - - /* Exit gracefully */ - static void AmigaCleanUp( void ) - { - if ( Vio ) - FreeMem( Vio, vio_allocsize ); - - ReleasePen( fts->ViewPort.ColorMap, gray_palette[0] ); - ReleasePen( fts->ViewPort.ColorMap, gray_palette[1] ); - - if ( graphx_mode == Graphics_Mode_Gray ) - { - ReleasePen( fts->ViewPort.ColorMap, gray_palette[2] ); - ReleasePen( fts->ViewPort.ColorMap, gray_palette[3] ); - ReleasePen( fts->ViewPort.ColorMap, gray_palette[4] ); - } - - if ( ftmenus ) - { - ClearMenuStrip( ftw ); - FreeMenus( ftmenus ); - } - - if ( ftw ) - CloseWindow( ftw ); - - if ( VisualInfo ) - FreeVisualInfo( VisualInfo ); - - if ( GfxBase ) - CloseLibrary( GfxBase ); - - if ( GadToolsBase ) - CloseLibrary( GadToolsBase ); - - if ( IntuitionBase ) - CloseLibrary( IntuitionBase ); - } - - - /* open libraries & custom screen */ - static int AmigaInit( void ) - { - /* cleanup at exit */ - if ( atexit( AmigaCleanUp ) ) - { - PutStr( "atexit() failed\n" ); - return -1; - } - - /* open intuition library */ - IntuitionBase = (struct Library*)OpenLibrary( "intuition.library", 39L ); - if ( IntuitionBase == NULL ) - { - PutStr( "Could not open intuition library\n" ); - return -1; - } - - /* open gaadtools library */ - GadToolsBase = (struct Library*)OpenLibrary( "gadtools.library", 39L ); - if ( GadToolsBase == NULL ) - { - PutStr( "Could not open gadtools library\n" ); - return -1; - } - - /* open graphics library */ - GfxBase = OpenLibrary( "graphics.library", 39L ); - if ( GfxBase == NULL ) - { - PutStr( "Could not open graphics library\n" ); - return -1; - } - - /* get public screen */ - fts = LockPubScreen( NULL ); - - if ( fts == NULL ) - { - PutStr( "Could not lock public screen\n" ); - return -1; - } - - if ( ! ( VisualInfo = GetVisualInfo( fts, TAG_DONE ))) - { - PutStr( "Could not get VisualInfo\n" ); - return -1; - } - - if ( graphx_mode == Graphics_Mode_Gray ) - { - vio_ScanLineWidth = GRAY_WINDOW_WIDTH; - vio_Width = GRAY_WINDOW_WIDTH; - vio_Height = GRAY_WINDOW_HEIGHT; - - gray_palette[4] = ObtainBestPenA( fts->ViewPort.ColorMap, - 0x00000000, 0x00000000, 0x00000000, NULL ); - gray_palette[3] = ObtainBestPenA( fts->ViewPort.ColorMap, - 0x33333300, 0x33333300, 0x33333300, NULL ); - gray_palette[2] = ObtainBestPenA( fts->ViewPort.ColorMap, - 0x77777700, 0x77777700, 0x77777700, NULL ); - gray_palette[1] = ObtainBestPenA( fts->ViewPort.ColorMap, - 0xBBBBBB00, 0xBBBBBB00, 0xBBBBBB00, NULL ); - gray_palette[0] = ObtainBestPenA( fts->ViewPort.ColorMap, - 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, NULL ); - } - else - { - vio_ScanLineWidth = MONO_WINDOW_WIDTH / 8; - vio_Width = MONO_WINDOW_WIDTH; - vio_Height = MONO_WINDOW_HEIGHT; - - gray_palette[0] = ObtainBestPenA( fts->ViewPort.ColorMap, - 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, NULL ); - gray_palette[1] = ObtainBestPenA( fts->ViewPort.ColorMap, - 0x00000000, 0x00000000, 0x00000000, NULL ); - } - - if ( !( ftmenus = CreateMenus( ftNewMenu, GTMN_FrontPen, 0L, TAG_DONE ) ) ) - { - PutStr( "Could not create menus\n" ); - return -1; - } - - LayoutMenus( ftmenus, VisualInfo, GTMN_NewLookMenus, TRUE, TAG_DONE ); - - /* open intuition window */ - ftw = OpenWindowTags( - NULL, - WA_InnerWidth, vio_Width, - WA_InnerHeight, vio_Height, - WA_IDCMP, IDCMP_MENUPICK | - IDCMP_VANILLAKEY | - IDCMP_CLOSEWINDOW, - /* WA_AutoAdjust, TRUE, */ - WA_CloseGadget, TRUE, - WA_Activate, TRUE, - WA_DragBar, TRUE, - WA_SmartRefresh, TRUE, - WA_Gadgets, NULL, - WA_Flags, WFLG_DEPTHGADGET | WFLG_SMART_REFRESH, - WA_Title, (UBYTE*)"FreeType Project", - WA_NewLookMenus, TRUE, - WA_PubScreen, fts, - TAG_DONE ); - - if ( ftw == NULL ) - { - PutStr( "Could not open intuition window\n" ); - return -1; - } - - SetMenuStrip( ftw, ftmenus ); - - UnlockPubScreen( NULL, fts ); - - vio_Height = ftw->Height - ftw->BorderTop - ftw->BorderBottom - 2; - vio_Width = (ftw->Width - ftw->BorderLeft - ftw->BorderRight) & 0xFFFFFC; - - if ( graphx_mode == Graphics_Mode_Gray ) - { - vio_ScanLineWidth = vio_Width; - } - else - { - vio_ScanLineWidth = vio_Width / 8; - } - vio_allocsize = vio_Height * vio_ScanLineWidth; - - Vio = (char*)AllocMem( vio_allocsize, MEMF_ANY ); - if ( Vio == NULL ) - { - PutStr( "Could not allocate memory\n" ); - return -1; - } - - return 0; - } - - - /* get events in the window */ - static char Get_Intuition_Event( void ) - { - struct IntuiMessage* msg; - ULONG class; - USHORT code; - int rc; - struct MenuItem *n; - - - WaitPort( ftw->UserPort ); - - while ( ( msg = (struct IntuiMessage*)GetMsg( ftw->UserPort ) ) ) - { - class = msg->Class; - code = msg->Code; - - ReplyMsg( (struct Message*)msg ); - - switch( class ) - { - case IDCMP_REFRESHWINDOW: - GT_BeginRefresh( ftw ); - GT_EndRefresh( ftw, TRUE ); - break; - - case IDCMP_CLOSEWINDOW: - return (char)27; - - case IDCMP_VANILLAKEY: - return (char)code; - - case IDCMP_MENUPICK: - while( code != MENUNULL ) - { - n = ItemAddress( ftmenus, code ); - rc = (int)GTMENUITEM_USERDATA( n ); - code = n->NextSelect; - } /* despite loop, we only do one */ - return (char)rc; - } - } - - return '\0'; - } - - - /* Set Amiga graphics mode */ - int Driver_Set_Graphics( int mode ) - { - graphx_mode = mode; - - if ( AmigaInit() == -1 ) - return 0; /* failure */ - - return 1; /* success */ - } - - - /* restore screen to its original state */ - int Driver_Restore_Mode( void ) - { - /* Do nothing */ - - return 1; /* success */ - } - - - /* display bitmap */ - int Driver_Display_Bitmap( char* buffer, int line, int col ) - { - int y, z; - char* target; - char old = 0; - extern char Header[]; - - - SetWindowTitles(ftw,Header,Header); - - target = Vio + ( line - 1 ) * vio_ScanLineWidth; - - for ( y = 0; y < line; y++ ) - { - CopyMem( buffer, target, col ); - target -= vio_ScanLineWidth; - buffer += col; - } - - /* clear window */ - /* SetRast( ftw->RPort, gray_palette[0] ); */ - - SetAPen( ftw->RPort, gray_palette[0] ); - - RectFill( ftw->RPort, ftw->BorderLeft, ftw->BorderTop, - ftw->Width - ftw->BorderRight - 1, - ftw->Height - ftw->BorderBottom - 1 ); - - if ( graphx_mode != Graphics_Mode_Gray ) - { - SetAPen( ftw->RPort, gray_palette[1] ); - old = 1; - } - - /* Draw glyph */ - for ( y = 0; y < line; y++ ) - { - for ( z = 0; z < col; z++ ) - { - int c = Vio[y * vio_ScanLineWidth + z]; - - - if ( graphx_mode == Graphics_Mode_Gray ) - { - if ( c != 0 && c != gray_palette[0] ) - { - if ( old != c ) - { - old = c; - /* printf("x = %d, y = %d, color = %d\n", z, y, c ); */ - SetAPen( ftw->RPort, c ); - } - - WritePixel( ftw->RPort, ftw->BorderLeft + z, ftw->BorderTop + y ); - } - } - else - { - int mask = 0x80; - int counter = 0; - - - while ( mask ) - { - if ( mask & c ) - WritePixel( ftw->RPort, ftw->BorderLeft + z * 8 + counter, - ftw->BorderTop + y ); - - counter++; - mask >>= 1; - } - } - } - } - - return 1; /* success */ - } - - - void Get_Event( TEvent* event ) - { - int i; - char c; - - - c = Get_Intuition_Event(); - - if ( c != '\0' ) - for ( i = 0; i < NUM_Translators; i++ ) - { - if ( c == trans[i].key ) - { - event->what = trans[i].event_class; - event->info = trans[i].event_info; - return; - } - } - - /* unrecognized keystroke */ - - event->what = event_Keyboard; - event->info = (int)c; - - return; - } - - -/* End */ diff --git a/Build/source/libs/freetype/freetype-1.5/test/arch/amigaos/smakefile b/Build/source/libs/freetype/freetype-1.5/test/arch/amigaos/smakefile deleted file mode 100644 index 07f0ed50fc2..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/arch/amigaos/smakefile +++ /dev/null @@ -1,195 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library and test programs for amiga using SAS/C -# and smake -# -# Use this file while in the 'test/arch/amigaos' directory with -# the following statements: -# -# smake assign -# smake -# -# the 'assign' step creates an assignment to simplify referencing -# the core library module, as smake has quite a few limitations in -# dealing with multi-directory projects. -# -# -# Copyright 1996-2001 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. - -OBJB = ttapi.o ttcache.o ttcalc.o ttcmap.o ttdebug.o \ - ttextend.o ttfile.o ttgload.o ttinterp.o ttload.o \ - ttmemory.o ttmutex.o ttobjs.o ttraster.o - -OBJS = freetype.o - -OBJX = ftxgasp.o ftxkern.o ftxpost.o ftxcmap.o ftxwidth.o \ - ftxsbit.o ftxgsub.o ftxgpos.o ftxgdef.o ftxopen.o - -CORE = FT:lib/ -COREXT = $(CORE)extend/ -TST = FT:test/ - -OPTIMIZER = optimize optcomp=5 optdep=4 optinlocal optrdep=4 - -SCFLAGS = idlen=40 idir=$(CORE)arch/amigaos idir=$(CORE) idir=$(COREXT) - -TSCFLAGS = $(SCFLAGS) idir=$(TST) - -LIB=ttf.lib -TOPTS=$(TSCFLAGS) link lib=$(LIB) lib=lib:scm.lib \ - lib=lib:sc.lib lib=lib:amiga.lib - -EXE = ftzoom ftlint ftview fttimer ftmetric \ - ftdump ftstring ftstrpnm ftsbit ftstrtto - -TOBJ = gw_amiga.o gmain.o common.o textdisp.o blitter.o display.o - -all: ttf.lib $(EXE) - -assign: - assign FT: /// - -ttf.lib: $(OBJS) $(OBJX) - oml $@ r $(OBJS) $(OBJX) - -ttfdbg.lib: $(OBJB) $(OBJX) - oml $@ r $(OBJB) $(OBJX) - -clean: - -delete \#?.o - -delete //\#?.o - -delete \#?.lib - -delete $(EXE) - - -# -# freetype library core single object -# -freetype.o: $(CORE)arch/amigaos/freetype.c - sc $(SCFLAGS) code=far $(OPTIMIZER) objname=$@ $< - -# -# freetype library core as separate objects -# -ttapi.o: $(CORE)ttapi.c - sc $(SCFLAGS) objname=$@ $< -ttcache.o: $(CORE)ttcache.c - sc $(SCFLAGS) objname=$@ $< -ttcalc.o: $(CORE)ttcalc.c - sc $(SCFLAGS) objname=$@ $< -ttcmap.o: $(CORE)ttcmap.c - sc $(SCFLAGS) objname=$@ $< -ttdebug.o: $(CORE)ttdebug.c - sc $(SCFLAGS) objname=$@ $< -ttextend.o: $(CORE)ttextend.c - sc $(SCFLAGS) objname=$@ $< -ttfile.o: $(CORE)ttfile.c - sc $(SCFLAGS) objname=$@ $< -ttgload.o: $(CORE)ttgload.c - sc $(SCFLAGS) objname=$@ $< -ttinterp.o: $(CORE)ttinterp.c - sc $(SCFLAGS) objname=$@ $< -ttload.o: $(CORE)ttload.c - sc $(SCFLAGS) objname=$@ $< -ttmemory.o: $(CORE)ttmemory.c - sc $(SCFLAGS) objname=$@ $< -ttmutex.o: $(CORE)ttmutex.c - sc $(SCFLAGS) objname=$@ $< -ttobjs.o: $(CORE)ttobjs.c - sc $(SCFLAGS) objname=$@ $< -ttraster.o: $(CORE)ttraster.c - sc $(SCFLAGS) objname=$@ $< - -# -# library extentions -# -ftxgasp.o: $(COREXT)ftxgasp.c - sc $(SCFLAGS) objname=$@ $< -ftxkern.o: $(COREXT)ftxkern.c - sc $(SCFLAGS) objname=$@ $< -ftxpost.o: $(COREXT)ftxpost.c - sc $(SCFLAGS) objname=$@ $< -ftxcmap.o: $(COREXT)ftxcmap.c - sc $(SCFLAGS) objname=$@ $< -ftxwidth.o: $(COREXT)ftxwidth.c - sc $(SCFLAGS) objname=$@ $< -ftxsbit.o: $(COREXT)ftxsbit.c - sc $(SCFLAGS) objname=$@ $< -ftxgsub.o: $(COREXT)ftxgsub.c - sc $(SCFLAGS) objname=$@ $< -ftxgpos.o: $(COREXT)ftxgpos.c - sc $(SCFLAGS) objname=$@ $< code=far -ftxgdef.o: $(COREXT)ftxgdef.c - sc $(SCFLAGS) objname=$@ $< -ftxopen.o: $(COREXT)ftxopen.c - sc $(SCFLAGS) objname=$@ $< - -# -# Test programs -# -ftzoom: $(TST)ftzoom.c $(TOBJ) $(LIB) - sc $(TST)ftzoom.c programname=$@ $(TOBJ) $(TOPTS) - -ftlint: $(TST)ftlint.c common.o $(LIB) - sc $(TST)ftlint.c programname=$@ common.o $(TOPTS) - -ftdump: $(TST)ftdump.c common.o $(LIB) - sc $(TST)ftdump.c programname=$@ common.o $(TOPTS) - -# use unsigned char so full latin1 encoding may be used in string argument -ftstring: $(TST)ftstring.c $(TOBJ) $(LIB) - sc $(TST)ftstring.c uchar programname=$@ $(TOBJ) $(TOPTS) - -ftview: $(TST)ftview.c $(TOBJ) $(LIB) - sc $(TST)ftview.c programname=$@ $(TOBJ) $(TOPTS) - -fttimer: $(TST)fttimer.c $(TOBJ) $(LIB) - sc $(TST)fttimer.c programname=$@ $(TOBJ) $(TOPTS) - -ftstrpnm: $(TST)ftstrpnm.c common.o $(LIB) - sc $(TST)ftstrpnm.c uchar programname=$@ common.o $(TOPTS) - -ftsbit: $(TST)ftsbit.c common.o textdisp.o $(LIB) - sc $(TST)ftsbit.c programname=$@ common.o textdisp.o $(TOPTS) - -ftmetric: $(TST)ftmetric.c common.o textdisp.o $(LIB) - sc $(TST)ftmetric.c programname=$@ common.o textdisp.o $(TOPTS) - -# use unsigned char so full latin1/UTF8 encoding may be used in argument -ftstrtto: $(TST)ftstrtto.c $(TOBJ) arabic.o $(LIB) - sc $(TST)ftstrtto.c uchar programname=$@ $(TOBJ) \ - arabic.o $(TOPTS) - -# -# Test program support modules -# - -gw_amiga.o: gw_amiga.c - sc gw_amiga.c $(TSCFLAGS) - -common.o: $(TST)common.c - sc $(TSCFLAGS) objname=$@ $< - -textdisp.o: $(TST)textdisp.c - sc $(TSCFLAGS) objname=$@ $< - -blitter.o: $(TST)blitter.c - sc $(TSCFLAGS) objname=$@ $< - -display.o: $(TST)display.c - sc $(TSCFLAGS) objname=$@ $< - -gmain.o: $(TST)gmain.c - sc $(TSCFLAGS) objname=$@ $< - -arabic.o: $(TST)arabic.c - sc $(TSCFLAGS) objname=$@ $< - -# end of smakefile diff --git a/Build/source/libs/freetype/freetype-1.5/test/arch/debugger/Makefile b/Build/source/libs/freetype/freetype-1.5/test/arch/debugger/Makefile deleted file mode 100644 index 4de2f61c654..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/arch/debugger/Makefile +++ /dev/null @@ -1,110 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the debugger for emx-gcc under OS/2 resp. under Unix. -# -# You will need GNU make. -# -# Use this file while in the `test' directory with the following statements: -# -# make -f arch/debugger/Makefile depend -# make -f arch/debugger/Makefile -# -# -# Copyright 1996-2002 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. - -ARCH = arch/debugger -FT_MAKEFILE = $(ARCH)/Makefile - -CC = gcc - -LIBDIR = ../lib -LIBTTF = $(LIBDIR)/$(ARCH)/libttf.a - -INCDIRS = -I$(LIBDIR) -I$(LIBDIR)/extend -I$(LIBDIR)/$(ARCH) -I. - -# Note: The debugger uses non-ANSI functions to read the keyboard -# on OS/2 -- do not set the `-ansi flag here. -# -CFLAGS = -Wall -O0 -g $(INCDIRS) - - -SRC = fdebug.c common.c - -ALLSRC = $(SRC) -ALLOBJ = $(ALLSRC:.c=.o) - -# on OS/2, do not use the curses library -# -ifdef OS2_SHELL -EXE := fdebug.exe -OS := OS2 -EFENCE := -EXTRAFLAGS := -RM := del -else -EXE := fdebug -OS := UNIX -EFENCE := -lefence -RM := rm -f -# -# POSIX TERMIOS: Do not define if you use OLD U*ix like 4.2BSD. -# -EXTRAFLAGS := HAVE_POSIX_TERMIOS -endif - -%.o: %.c - $(CC) $(CFLAGS) -c -o $@ $< -D$(OS) -D$(EXTRAFLAGS) - -%.exe: - $(CC) $(CFLAGS) -o $@ $^ - - - -EXEFILES = $(EXE) - -.PHONY: all debug freetype freetype_debug \ - clean distclean do_clean depend - - -all: freetype $(EXEFILES) - -debug: freetype_debug $(EXEFILES) - -$(EXE): fdebug.o common.o $(LIBTTF) -$(EXE): - $(CC) $(CFLAGS) -o $@ $^ $(EFENCE) - -freetype: - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) all - -freetype_debug: - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) debug - - -clean: do_clean - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) clean - -distclean: do_clean - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) distclean - -$(RM) dep.end $(EXEFILES) core - -do_clean: - -$(RM) $(subst /,\,$(ALLOBJ)) - - -depend: $(ALLSRC) - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) depend - $(CC) -E -MM $(INCDIRS) $^ > dep.end - -ifeq (dep.end,$(wildcard dep.end)) - include dep.end -endif - -# end of Makefile.emx diff --git a/Build/source/libs/freetype/freetype-1.5/test/arch/msdos/Makefile.BC b/Build/source/libs/freetype/freetype-1.5/test/arch/msdos/Makefile.BC deleted file mode 100644 index 1dc04a39d7c..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/arch/msdos/Makefile.BC +++ /dev/null @@ -1,191 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library and test programs for BC++ under MSDOS, large model. -# -# Tested with Borland C++ v.3.1, 4.02, 5.0 -# You will need Borland MAKE (v.3.6 and above should be OK, for oldest -# versions refer to the instructions below). -# -# -# Use this file while in the 'test' directory with the following statement: -# -# make -farch\msdos\Makefile.BC -# -# -# Debug versions can be obtained with -# -# make -DDEBUG -farch\msdos\Makefile.BC -# -# A special version enabled to handle big fonts (with more than 16,384 -# glyphs) can be obtained with -# -# make -DBIGFONTS -farch\msdos\Makefile.BC -# -# -# Copyright 1996-2001 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. - -ARCH = arch\msdos -FT_MAKEFILE = $(ARCH)\Makefile.BC - -CC = bcc - -LIBDIR = ..\lib -INCDIRS = -I$(LIBDIR);$(LIBDIR)\$(ARCH);.;$(LIBDIR)\extend -SPURIOUS_WARNINGS = -w-nak -w-par -w-use -w-aus -w-stu -w-stv -w-cln -w-sig -w-pia - -# Credits go to Dave Hoo <dhoo@flash.net> for pointing out that modern -# Borland compilers (from BC++ 3.1 on) can increase the limit of -# the length of identifiers. -!if ! $d(DEBUG) -CFLAGS = -ml -A -O2 -3 -i40 $(INCDIRS) $(SPURIOUS_WARNINGS) -LDFLAGS = -ml -!else -CFLAGS = -v -N -ml -A -i40 $(INCDIRS) $(SPURIOUS_WARNINGS) -LDFLAGS = -v -ml -!endif - - -# full-screen MSDOS driver -GDRIVER = $(ARCH)\.\gfs_dos.c - -DISPLAY = display.c - -G1SRC = gmain.c blitter.c $(GDRIVER) -GSRC = $(DISPLAY) $(G1SRC) - -GOBJ = $(GSRC:.c=.obj) -G1OBJ = $(G1SRC:.c=.obj) - -SRC = arabic.c \ - common.c \ - textdisp.c \ - ftdump.c \ - fterror.c \ - ftlint.c \ - ftmetric.c \ - ftsbit.c \ - ftstring.c \ - ftstrpnm.c \ - ftstrtto.c \ - fttimer.c \ - ftview.c \ - ftzoom.c - -OBJ = $(SRC:.c=.obj) - - -.c.obj: - $(CC) -c -o$* @&&| - $(CFLAGS) $< -| - -EXEFILES = ftdump.exe \ - fterror.exe \ - ftlint.exe \ - ftmetric.exe \ - ftsbit.exe \ - ftstring.exe \ - ftstrpnm.exe \ - ftstrtto.exe \ - fttimer.exe \ - ftview.exe \ - ftzoom.exe - -!if !$d(DEBUG) -# Skipped if DEBUG build -all: freetype $(EXEFILES) - -!endif - -debug: freetype_debug $(EXEFILES) - -!if $d(BIGFONTS) -MAKEBIG = -DBIGFONTS -!endif - -freetype: - cd $(LIBDIR) - make -f$(FT_MAKEFILE) $(MAKEBIG) all - cd ..\test - -freetype_debug: - cd $(LIBDIR) - make -f$(FT_MAKEFILE) -DDEBUG $(MAKEBIG) debug - cd ..\test - - -# Borland C compilers are unable to include <dos.h> in ANSI mode. -# So we have a special rule for this file, to build it outside ANSI. -$(GDRIVER:.c=.obj): - $(CC) -c -o$* @&&| - $(CFLAGS) -A- $*.c -| - -.obj.exe: - $(CC) -e$* @&&| - $(LDFLAGS) $** -| - -# Borland versions of make are unable to use the $** variable inside -# implicit rules (like .obj.exe:). The job has to be done by hand. :-( -ftzoom.exe: $(G1OBJ) ftzoom.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftzoom.obj $(G1OBJ) common.obj $(LIBDIR)\libttf.lib - -ftview.exe: $(GOBJ) ftview.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftview.obj $(GOBJ) common.obj $(LIBDIR)\libttf.lib - -ftstring.exe: $(GOBJ) ftstring.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftstring.obj $(GOBJ) common.obj $(LIBDIR)\libttf.lib - -ftstrtto.exe: $(GOBJ) ftstrtto.obj common.obj arabic.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftstrtto.obj $(GOBJ) common.obj arabic.obj \ - $(LIBDIR)\libttf.lib - -fttimer.exe: $(G1OBJ) fttimer.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) fttimer.obj $(G1OBJ) common.obj $(LIBDIR)\libttf.lib - -ftlint.exe: ftlint.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftlint.obj common.obj $(LIBDIR)\libttf.lib - -ftdump.exe: ftdump.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftdump.obj common.obj $(LIBDIR)\libttf.lib - -ftstrpnm.exe: ftstrpnm.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftstrpnm.obj common.obj $(LIBDIR)\libttf.lib - -ftsbit.exe: $(TDOBJ) ftsbit.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftsbit.obj textdisp.obj common.obj $(LIBDIR)\libttf.lib - -ftmetric.exe: $(TDOBJ) ftmetric.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftmetric.obj textdisp.obj common.obj $(LIBDIR)\libttf.lib - -fterror.exe: fterror.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) fterror.obj common.obj $(LIBDIR)\libttf.lib - - -clean: do_clean - cd $(LIBDIR) - make -f$(FT_MAKEFILE) clean - cd ..\test - -distclean: do_clean - cd $(LIBDIR) - make -f$(FT_MAKEFILE) distclean - cd ..\test - -del *.exe - -do_clean: - -del *.obj - -del $(ARCH)\*.obj - del time.h # clean the ugly hack for Turbo C... - -!include "$(ARCH)\depend.dos" - -# end of Makefile diff --git a/Build/source/libs/freetype/freetype-1.5/test/arch/msdos/Makefile.MS b/Build/source/libs/freetype/freetype-1.5/test/arch/msdos/Makefile.MS deleted file mode 100644 index f0e32a3da76..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/arch/msdos/Makefile.MS +++ /dev/null @@ -1,152 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library and test programs for Microsoft C for MS-DOS, -# large model. It also works for Visual C++ 1.x 16-bits compiler, but -# you should instead use the Makefile customized for it, Makefile.VC. -# -# You will need NMAKE. -# -# -# Use this file while in the 'test' directory with the following statement: -# -# nmake /f arch\msdos\Makefile.MS -# -# -# Debug versions can be obtained with -# -# nmake DEBUG=1 /f arch\msdos\Makefile.MS -# -# A special version enabled to handle big fonts (with more than 16,384 -# glyphs) can be obtained with -# -# nmake BIGFONTS=1 /f arch\msdos\Makefile.MS -# -# -# Copyright 1996-2001 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. - -ARCH = arch\msdos -FT_MAKEFILE = $(ARCH)\Makefile.MS -FT_MAKE = $(MAKE) /nologo - -CC = cl /nologo - -LIBDIR = ..\lib -INCDIRS = -I$(LIBDIR) -I$(LIBDIR)\$(ARCH) -I. -I$(LIBDIR)\extend - -!ifndef DEBUG -CFLAGS = /Ox /AL /Za /W2 /G2 $(INCDIRS) -LDFLAGS = /AL -!else -CFLAGS = /Zi /AL /Za /W2 /G2 $(INCDIRS) -LDFLAGS = /Zi /AL -!endif - - -# full-screen MSDOS driver -GDRIVER = $(ARCH)\gfs_dos.c - -GSRC = display.c gmain.c blitter.c $(GDRIVER) - -GOBJ = $(GSRC:.c=.obj) - -SRC = arabic.c \ - common.c \ - textdisp.c \ - ftdump.c \ - fterror.c \ - ftlint.c \ - ftmetric.c \ - ftsbit.c \ - ftstring.c \ - ftstrpnm.c \ - ftstrtto.c \ - fttimer.c \ - ftview.c \ - ftzoom.c - -OBJ = $(SRC:.c=.obj) - - -.c.obj: - @$(CC) /c /Fo$* @<< - $(CFLAGS) $< -<< - -EXEFILES = ftdump.exe \ - fterror.exe \ - ftlint.exe \ - ftmetric.exe \ - ftsbit.exe \ - ftstring.exe \ - ftstrpnm.exe \ - ftstrtto.exe \ - fttimer.exe \ - ftview.exe \ - ftzoom.exe - -!ifndef DEBUG -# Skiped if DEBUG build -all: freetype $(EXEFILES) - -!endif - -debug: freetype_debug $(EXEFILES) - -!ifdef BIGFONTS -MAKEBIG = BIGFONTS=1 -!endif - -freetype: - cd $(LIBDIR) - $(FT_MAKE) /f $(FT_MAKEFILE) $(MAKEBIG) all - cd ..\test - -freetype_debug: - cd $(LIBDIR) - $(FT_MAKE) /f $(FT_MAKEFILE) DEBUG=1 $(MAKEBIG) debug - cd ..\test - -.obj.exe: - $(CC) /Fe$* @<< - $(LDFLAGS) $** -<< - -ftzoom.exe: $(GOBJ) ftzoom.obj common.obj $(LIBDIR)\libttf.lib -ftview.exe: $(GOBJ) ftview.obj common.obj $(LIBDIR)\libttf.lib -ftstring.exe: $(GOBJ) ftstring.obj common.obj $(LIBDIR)\libttf.lib -ftstrtto.exe: $(GOBJ) ftstrtto.obj common.obj arabic.obj $(LIBDIR)\libttf.lib -fttimer.exe: $(GOBJ) fttimer.obj common.obj $(LIBDIR)\libttf.lib -ftlint.exe: ftlint.obj common.obj $(LIBDIR)\libttf.lib -ftdump.exe: ftdump.obj common.obj $(LIBDIR)\libttf.lib -ftstrpnm.exe: ftstrpnm.obj common.obj $(LIBDIR)\libttf.lib -ftsbit.exe: ftsbit.obj common.obj textdisp.obj $(LIBDIR)\libttf.lib -ftmetric.exe: ftmetric.obj common.obj textdisp.obj $(LIBDIR)\libttf.lib -fterror.exe: fterror.obj common.obj $(LIBDIR)\libttf.lib - - -clean: do_clean - cd $(LIBDIR) - $(FT_MAKE) /f $(FT_MAKEFILE) clean - cd ..\test - -distclean: do_clean - cd $(LIBDIR) - $(FT_MAKE) /f $(FT_MAKEFILE) distclean - cd ..\test - -del *.exe - -do_clean: - -del *.obj - -del $(ARCH)\*.obj - - -!include "$(ARCH)\depend.dos" - -# end of Makefile.MS diff --git a/Build/source/libs/freetype/freetype-1.5/test/arch/msdos/Makefile.TC b/Build/source/libs/freetype/freetype-1.5/test/arch/msdos/Makefile.TC deleted file mode 100644 index 6640e577c0e..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/arch/msdos/Makefile.TC +++ /dev/null @@ -1,267 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library and test programs for Turbo C under MSDOS, large model. -# -# You will need Borland MAKE. -# Tested with Turbo C v.1.5, v.2.0, Turbo C++ v.1.0, v.3.0 -# Turbo C v.1.0 (May '87) is too old (lack of structure assignment) -# to compile FreeType. Update your compiler. ;-) -# See below for notes regarding the various versions. -# -# -# Use this file while in the 'test' directory with the following statement: -# -# make -farch\msdos\Makefile.TC -# -# -# Debug versions can be obtained (except for TC 1.5, see below) with -# -# make -DDEBUG -farch\msdos\Makefile.TC -# -# The main difference is with the compiler options, because due to size -# constraints, the modules of the library are always compiled separately. -# -# -# Copyright 1996-2001 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. -# -# -# -# Various notes about specific versions... -# -# The lack of space in the command line prevents us to turn off the -# -w-use warning (when TCC.CFG file had enabled it). -# -# Due to lack of space in the command line, we are not able to -# switch off all the irrelevant warnings for the demo program. -# Under the default settings, only one warning should be shown. -# If more of the ``verbose'' warnings are enabled, much more can -# appear. However, rest assured that any of them have been dealt -# with, and they are just that, warnings, not indicating real -# problems. -# -# NOTE: Turbo C++ v. 3.0 -# -# The Makefile.TC for this version is common with the older versions. -# Alternatively, you can consider using Makefile.BC instead, changing -# the name of the compiler from BCC to TCC! -# -# NOTE 2: Turbo C v. 2.0 -# -# This version lacks an ANSI compliant <time.h> header, so it causes -# problems when compiling the demo program fttimer. We worked around -# this difficulty in a very hacky way. -# The detection is based on the version of make used, so if you use -# a more recent version, please take a closer look at the Makefile. -# -# NOTE 3: Turbo C v. 1.5 -# -# Yes, this old compiler is able to compile the FreeType library, even -# if it predates the ANSI standard by months! However, this is a -# huge piece for such a small compiler, and several things are not -# possible. First, as always with real-mode compilers, you need a lot -# of available memory, probably more than 512KB at the C> prompt. -# Also, compiling for debug is ardeous: both Makefile.TC assume the -# -v option, which was not available in this version. -# -# The hack for <time.h> is used there too, as with v.2.0. - - -ARCH = arch\msdos -FT_MAKEFILE = $(ARCH)\Makefile.TC - -CC = tcc - -LIBDIR = ..\lib -INCDIRS = -I$(LIBDIR);$(LIBDIR)\$(ARCH);.;$(LIBDIR)\extend -SPURIOUS_WARNINGS = -w-pia -w-par -w-use -w-aus -w-rng - -!if ! $d(DEBUG) -CFLAGS_LEAN = -ml -A -O -Z -G -a $(INCDIRS) -# The lack of space in the command line prevents us to turn off the -# warnings, when the TCC.CFG file had enable it with -w. -# With the normal settings, it should not complain. -LDFLAGS = -ml -!else -# For Turbo C v.1.5, replace the -v option below by -y (2 occurences). -# You should have applied the same change in the lib Makefile, too. -CFLAGS_LEAN = -v -N -ml -w-pia -A $(INCDIRS) -LDFLAGS = -v -ml -!endif - -CFLAGS = $(CFLAGS_LEAN) $(SPURIOUS_WARNINGS) - - -# full-screen MSDOS driver -GDRIVER = $(ARCH)\.\gfs_dos.obj - -# the line below does not work with these old versions of make... -# GOBJ = $(GSRC:.c=.o) - -DISPLAY = display.obj - -G1OBJ = gmain.obj blitter.obj $(GDRIVER) -GOBJ = $(DISPLAY) $(G1OBJ) - -SRC = arabic.c \ - common.c \ - textdisp.c \ - ftdump.c \ - fterror.c \ - ftlint.c \ - ftmetric.c \ - ftsbit.c \ - ftstring.c \ - ftstrpnm.c \ - ftstrtto.c \ - fttimer.c \ - ftview.c \ - ftzoom.c - -OBJ = arabic.obj \ - common.obj \ - ftdump.obj \ - fterror.obj \ - ftlint.obj \ - ftmetric.obj \ - ftsbit.obj \ - ftstring.obj \ - ftstrpnm.obj \ - ftstrtto.obj \ - fttimer.obj \ - ftview.obj \ - ftzoom.obj - - -.c.obj: - $(CC) $(CFLAGS) -c -o$* $< - - -EXEFILES = ftdump.exe \ - fterror.exe \ - ftlint.exe \ - ftmetric.exe \ - ftsbit.exe \ - ftstring.exe \ - ftstrpnm.exe \ - ftstrtto.exe \ - fttimer.exe \ - ftview.exe \ - ftzoom.exe - - -!if !$d(DEBUG) -# Skipped if DEBUG build -all: freetype $(EXEFILES) - -!endif - -debug: freetype_debug $(EXEFILES) - -freetype: - cd $(LIBDIR) - make -f$(FT_MAKEFILE) all - cd ..\test - -freetype_debug: - cd $(LIBDIR) - make -f$(FT_MAKEFILE) -DDEBUG debug - cd ..\test - - -# Borland C compilers are unable to include <dos.h> in ANSI mode. -# So we have a special rule for this file, to build it outside ANSI. -# Furthermore, this line exceeds the 128-character limit of COMMAND.COM; -# as a result, we drop the warnings... -$(GDRIVER): - $(CC) $(CFLAGS_LEAN) -A- -c -o$* $*.c - - -# This old gr... make is unable to have a $ variable to name all the -# dependencies. :-( So the job have to be done by hand... -ftzoom.exe: $(G1OBJ) ftzoom.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftzoom.obj $(G1OBJ) common.obj $(LIBDIR)\libttf.lib - -ftview.exe: $(GOBJ) ftview.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftview.obj $(GOBJ) common.obj $(LIBDIR)\libttf.lib - -ftstring.exe: $(GOBJ) ftstring.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftstring.obj $(GOBJ) common.obj $(LIBDIR)\libttf.lib - -ftstrtto.exe: $(GOBJ) ftstrtto.obj common.obj arabic.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftstrtto.obj $(GOBJ) common.obj \ - arabic.obj $(LIBDIR)\libttf.lib - - -# fttimer.exe... Well, there is an additional problem here... - -!if $(__MAKE__) < 0x0300 - -# Also, Turbo C v.1.5 and v.2.0 are not fully ANSI compliant with regard to -# <time.h>, particularly the clock() function. -# So we use an ugly hack here: a modified version of time.h, with the -# necessary machinery, is included in the arch\msdos directory. -time.h: $(ARCH)\time_tc.h - copy $(ARCH)\time_tc.h time.h - -# Below is the special rule for forcing recompilation of fttimer.obj -# using our <time.h>, without using the rule that is pulled in by -# !include "$(ARCH)\depend.dos" at the end of the Makefile... -fttimer.exe: $(G1OBJ) fttimer.c time.h common.obj $(LIBDIR)\libttf.lib - $(CC) $(CFLAGS) -c -o$* $*.c - $(CC) $(LDFLAGS) fttimer.obj $(G1OBJ) common.obj $(LIBDIR)\libttf.lib - -# Yes, all of this is really dirty... - -!else -# Normal behaviour -fttimer.exe: $(G1OBJ) fttimer.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) fttimer.obj $(G1OBJ) common.obj $(LIBDIR)\libttf.lib -!endif - - - -ftlint.exe: ftlint.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftlint.obj common.obj $(LIBDIR)\libttf.lib - -ftdump.exe: ftdump.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftdump.obj common.obj $(LIBDIR)\libttf.lib - -ftstrpnm.exe: ftstrpnm.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftstrpnm.obj common.obj $(LIBDIR)\libttf.lib - -ftsbit.exe: $(TDOBJ) ftsbit.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftsbit.obj textdisp.obj common.obj $(LIBDIR)\libttf.lib - -ftmetric.exe: $(TDOBJ) ftmetric.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftmetric.obj textdisp.obj common.obj $(LIBDIR)\libttf.lib - -fterror.exe: fterror.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) fterror.obj common.obj $(LIBDIR)\libttf.lib - - -clean: do_clean - cd $(LIBDIR) - make -f$(FT_MAKEFILE) clean - cd ..\test - -distclean: do_clean - cd $(LIBDIR) - make -f$(FT_MAKEFILE) distclean - cd ..\test - -del *.exe - -do_clean: - -del *.obj - -del $(ARCH)\*.obj - del time.h # clean the ugly hack for Turbo C... - -!include "$(ARCH)\depend.dos" - -# end of Makefile diff --git a/Build/source/libs/freetype/freetype-1.5/test/arch/msdos/Makefile.VC b/Build/source/libs/freetype/freetype-1.5/test/arch/msdos/Makefile.VC deleted file mode 100644 index 60d03fff311..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/arch/msdos/Makefile.VC +++ /dev/null @@ -1,153 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library and test programs for Microsoft Visual C++ 1.x -# and Microsoft C/C++ v.7.0 16-bit compilers for MS-DOS, large model. -# -# You will need NMAKE. -# -# -# Use this file while in the 'test' directory with the following statement: -# -# nmake /f arch\msdos\Makefile.VC -# -# -# Debug versions can be obtained with -# -# nmake DEBUG=1 /f arch\msdos\Makefile.VC -# -# A special version enabled to handle big fonts (with more than 16,384 -# glyphs) can be obtained with -# -# nmake BIGFONTS=1 /f arch\msdos\Makefile.VC -# -# -# Copyright 1996-2001 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. - -ARCH = arch\msdos -FT_MAKEFILE = $(ARCH)\Makefile.VC -FT_MAKE = $(MAKE) /nologo - -CC = cl /nologo - -LIBDIR = ..\lib -INCDIRS = -I$(LIBDIR) -I$(LIBDIR)\$(ARCH) -I. -I$(LIBDIR)\extend - -# One can also consider using "set MSC_CMD_FLAGS=/Gr /Op- /Gy /YX". -# With Microsoft C/C++ 7.0, use /G2 instead of /G3. -!ifndef DEBUG -CFLAGS = /Ox /AL /Za /W2 /G3 $(INCDIRS) -LDFLAGS = /AL -!else -CFLAGS = /Zi /Ge /AL /Za /W2 /G3 $(INCDIRS) -LDFLAGS = /Zi /AL -!endif - - -# full-screen MSDOS driver -GDRIVER = $(ARCH)\gfs_dos.c - -GSRC = display.c gmain.c blitter.c $(GDRIVER) - -GOBJ = $(GSRC:.c=.obj) - -SRC = arabic.c \ - common.c \ - textdisp.c \ - ftdump.c \ - fterror.c \ - ftlint.c \ - ftmetric.c \ - ftsbit.c \ - ftstring.c \ - ftstrpnm.c \ - ftstrtto.c \ - fttimer.c \ - ftview.c \ - ftzoom.c - -OBJ = $(SRC:.c=.obj) - - -.c.obj: - @$(CC) /c /Fo$* @<< - $(CFLAGS) $< -<< - -EXEFILES = ftdump.exe \ - fterror.exe \ - ftlint.exe \ - ftmetric.exe \ - ftsbit.exe \ - ftstring.exe \ - ftstrpnm.exe \ - ftstrtto.exe \ - fttimer.exe \ - ftview.exe \ - ftzoom.exe - -!ifndef DEBUG -# Skiped if DEBUG build -all: freetype $(EXEFILES) - -!endif - -debug: freetype_debug $(EXEFILES) - -!ifdef BIGFONTS -MAKEBIG = BIGFONTS=1 -!endif - -freetype: - cd $(LIBDIR) - $(FT_MAKE) /f $(FT_MAKEFILE) $(MAKEBIG) all - cd ..\test - -freetype_debug: - cd $(LIBDIR) - $(FT_MAKE) /f $(FT_MAKEFILE) DEBUG=1 $(MAKEBIG) debug - cd ..\test - -.obj.exe: - $(CC) /Fe$* @<< - $(LDFLAGS) $** -<< - -ftzoom.exe: $(GOBJ) ftzoom.obj common.obj $(LIBDIR)\libttf.lib -ftview.exe: $(GOBJ) ftview.obj common.obj $(LIBDIR)\libttf.lib -ftstring.exe: $(GOBJ) ftstring.obj common.obj $(LIBDIR)\libttf.lib -ftstrtto.exe: $(GOBJ) ftstrtto.obj common.obj arabic.obj $(LIBDIR)\libttf.lib -fttimer.exe: $(GOBJ) fttimer.obj common.obj $(LIBDIR)\libttf.lib -ftlint.exe: ftlint.obj common.obj $(LIBDIR)\libttf.lib -ftdump.exe: ftdump.obj common.obj $(LIBDIR)\libttf.lib -ftstrpnm.exe: ftstrpnm.obj common.obj $(LIBDIR)\libttf.lib -ftsbit.exe: ftsbit.obj common.obj textdisp.obj $(LIBDIR)\libttf.lib -ftmetric.exe: ftmetric.obj common.obj textdisp.obj $(LIBDIR)\libttf.lib -fterror.exe: fterror.obj common.obj $(LIBDIR)\libttf.lib - - -clean: do_clean - cd $(LIBDIR) - $(FT_MAKE) /f $(FT_MAKEFILE) clean - cd ..\test - -distclean: do_clean - cd $(LIBDIR) - $(FT_MAKE) /f $(FT_MAKEFILE) distclean - cd ..\test - -del *.exe - -do_clean: - -del *.obj - -del $(ARCH)\*.obj - - -!include "$(ARCH)\depend.dos" - -# end of Makefile.VC diff --git a/Build/source/libs/freetype/freetype-1.5/test/arch/msdos/Makefile.dm b/Build/source/libs/freetype/freetype-1.5/test/arch/msdos/Makefile.dm deleted file mode 100644 index cce7c9e9368..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/arch/msdos/Makefile.dm +++ /dev/null @@ -1,156 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library and test programs for emx-gcc and djgpp under MSDOS. -# -# You will need dmake. -# -# Use this file while in the 'test' directory with the following statement: -# -# dmake -r -f arch/msdos/Makefile.dm -# -# -# Copyright 1996-2001 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. - -ARCH = arch/msdos -FT_MAKEFILE = $(ARCH)/Makefile.dm -FT_MAKE = dmake -r - -.IMPORT: COMSPEC -SHELL := $(COMSPEC) -SHELLFLAGS := /c -GROUPSHELL := $(SHELL) -GROUPFLAGS := $(SHELLFLAGS) -GROUPSUFFIX := .bat -SHELLMETAS := *"?<>&| - -CC = gcc - -LIBDIR = ../lib -LIBDIR_DOS = ..\lib -INCDIRS = -I$(LIBDIR) -I$(LIBDIR)/$(ARCH) -I. -I$(LIBDIR)/extend - -CFLAGS = -Wall -ansi -O2 -g $(INCDIRS) -# CFLAGS = -ansi -Wall -O2 -s $(INCDIRS) - -# full-screen MSDOS driver -GDRIVER = $(ARCH)/gfs_dos.c - -SRC = arabic.c \ - common.c \ - textdisp.c \ - ftdump.c \ - fterror.c \ - ftlint.c \ - ftmetric.c \ - ftsbit.c \ - ftstring.c \ - ftstrpnm.c \ - ftstrtto.c \ - fttimer.c \ - ftview.c \ - ftzoom.c - -GSRC = gmain.c display.c blitter.c $(GDRIVER) -GOBJ = $(GSRC:.c=.o) - - -%.o: %.c - $(CC) $(CFLAGS) -c -o $@ $< - -%.exe: - $(CC) $(CFLAGS) -o $@ @$(mktmp $(&:t"\n")\n) - - -EXEFILES = ftdump.exe \ - fterror.exe \ - ftlint.exe \ - ftmetric.exe \ - ftsbit.exe \ - ftstring.exe \ - ftstrpnm.exe \ - ftstrtto.exe \ - fttimer.exe \ - ftview.exe \ - ftzoom.exe - -.PHONY: all debug freetype freetype_debug \ - clean distclean do_clean do_distclean depend - - -all: freetype $(EXEFILES) - -debug: freetype_debug $(EXEFILES) - -freetype: -[ - cd $(LIBDIR_DOS) - $(FT_MAKE) -f $(FT_MAKEFILE) all - cd $(MAKEDIR) -] - -freetype_debug: -[ - cd $(LIBDIR_DOS) - $(FT_MAKE) -f $(FT_MAKEFILE) debug - cd $(MAKEDIR) -] - -ftzoom.exe: $(GOBJ) ftzoom.o common.o $(LIBDIR)/libttf.a -ftview.exe: $(GOBJ) ftview.o common.o $(LIBDIR)/libttf.a -ftlint.exe: ftlint.o common.o $(LIBDIR)/libttf.a -ftdump.exe: ftdump.o common.o $(LIBDIR)/libttf.a -ftstring.exe: $(GOBJ) ftstring.o common.o $(LIBDIR)/libttf.a -fttimer.exe: $(GOBJ) fttimer.o common.o $(LIBDIR)/libttf.a -ftstrpnm.exe: ftstrpnm.o common.o $(LIBDIR)/libttf.a -ftsbit.exe: ftsbit.o common.o textdisp.o $(LIBDIR)/libttf.a -ftmetric.exe: ftmetric.o common.o textdisp.o $(LIBDIR)/libttf.a -ftstrtto.exe: $(GOBJ) ftstrtto.o common.o arabic.o $(LIBDIR)/libttf.a - - -clean: do_clean -[ - cd $(LIBDIR_DOS) - $(FT_MAKE) -f $(FT_MAKEFILE) clean - cd $(MAKEDIR) -] - -distclean: do_clean do_distclean -[ - cd $(LIBDIR_DOS) - $(FT_MAKE) -f $(FT_MAKEFILE) distclean - cd $(MAKEDIR) -] - -do_distclean: --[ - del dep.end - del *.exe - del core -] - -do_clean: --[ - del *.o - del $(ARCH)\gfs_dos.o -] - -#depend: $(SRC) $(GSRC) -#[ -# cd $(LIBDIR_DOS) -# $(FT_MAKE) -f $(FT_MAKEFILE) depend -# cd $(MAKEDIR) -# $(CC) -E -M $(INCDIRS) @$(mktmp $(<:t"\n")\n) > dep.end -#] -# -#ifeq (dep.end,$(wildcard dep.end)) -# include dep.end -#endif - -# end of Makefile.dm diff --git a/Build/source/libs/freetype/freetype-1.5/test/arch/msdos/Makefile.gcc b/Build/source/libs/freetype/freetype-1.5/test/arch/msdos/Makefile.gcc deleted file mode 100644 index 64a9dd35279..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/arch/msdos/Makefile.gcc +++ /dev/null @@ -1,151 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library and test programs for emx-gcc and djgpp under MSDOS. -# -# You will need a recent GNU make DOS port. -# -# Use this file while in the 'test' directory with the following statements: -# -# make -f arch/msdos/Makefile.gcc depend -# make -f arch/msdos/Makefile.gcc -# -# -# If you have the GNU gettext package installed with DJGPP, you can also try -# -# make -f arch/msdos/Makefile.gcc HAVE_GETTEXT -# -# Note that this version takes in account new versions of GNU gettext, -# which in turn requires the iconv library. If you have an old version -# of gettext and don't have the iconv library, just erase the `-l iconv'. -# -# Also take a look at the lib Makefile (at ../lib/arch/msdos/Makefile.gcc), -# about the need to have the path to the *.mo files correct. -# -# -# Copyright 1996-2002 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. - -ARCH = arch/msdos -FT_MAKEFILE = $(ARCH)/Makefile.gcc - -CC = gcc - -LIBDIR = ../lib -INCDIRS = -I$(LIBDIR) -I$(LIBDIR)/$(ARCH) -I. -I$(LIBDIR)/extend - -ifndef GETTEXT -GETTEXT=NO_GETTEXT -endif - -CFLAGS = -Wall -ansi -O2 -g $(INCDIRS) -D$(GETTEXT) -# CFLAGS = -ansi -Wall -O2 -s $(INCDIRS) -D$(GETTEXT) - - -# full-screen MSDOS driver -GDRIVER = $(ARCH)/gfs_dos.c $(ARCH)/gmain_dj.c - -SRC = arabic.c \ - common.c \ - textdisp.c \ - ftdump.c \ - fterror.c \ - ftlint.c \ - ftmetric.c \ - ftsbit.c \ - ftstring.c \ - ftstrpnm.c \ - ftstrtto.c \ - fttimer.c \ - ftview.c \ - ftzoom.c - -GSRC = display.c blitter.c $(GDRIVER) -GOBJ = $(GSRC:.c=.o) - - -%.o: %.c - $(CC) $(CFLAGS) -c -o $@ $< - - -ifeq ($(GETTEXT),HAVE_GETTEXT) -%.exe: - $(CC) $(CFLAGS) -o $@ $^ -lintl -liconv -# Remove `-l iconv' above if you have an old version -# of GNU gettext (like 0.10.35) and no iconv library. -else -%.exe: - $(CC) $(CFLAGS) -o $@ $^ -endif - - -EXEFILES = ftdump.exe \ - fterror.exe \ - ftlint.exe \ - ftmetric.exe \ - ftsbit.exe \ - ftstring.exe \ - ftstrpnm.exe \ - ftstrtto.exe \ - fttimer.exe \ - ftview.exe \ - ftzoom.exe - -.PHONY: all debug freetype freetype_debug \ - clean distclean do_clean depend - - -all: freetype $(EXEFILES) - -debug: freetype_debug $(EXEFILES) - -HAVE_GETTEXT: - $(MAKE) -f $(FT_MAKEFILE) GETTEXT=HAVE_GETTEXT all - -freetype: - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) all - -freetype_debug: - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) debug - -ftzoom.exe: $(GOBJ) ftzoom.o common.o $(LIBDIR)/libttf.a -ftview.exe: $(GOBJ) ftview.o common.o $(LIBDIR)/libttf.a -ftlint.exe: ftlint.o common.o $(LIBDIR)/libttf.a -ftdump.exe: ftdump.o common.o $(LIBDIR)/libttf.a -fterror.exe: fterror.o common.o $(LIBDIR)/libttf.a -ftstring.exe: $(GOBJ) ftstring.o common.o $(LIBDIR)/libttf.a -fttimer.exe: $(GOBJ) fttimer.o common.o $(LIBDIR)/libttf.a -ftstrpnm.exe: ftstrpnm.o common.o $(LIBDIR)/libttf.a -ftsbit.exe: ftsbit.o common.o textdisp.o $(LIBDIR)/libttf.a -ftmetric.exe: ftmetric.o common.o textdisp.o $(LIBDIR)/libttf.a -ftstrtto.exe: $(GOBJ) ftstrtto.o common.o arabic.o $(LIBDIR)/libttf.a - - -clean: do_clean - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) clean - -distclean: do_clean - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) distclean - -del dep.end - -del *.exe - -del core - -do_clean: - -del *.o - -del response - -del $(ARCH)\gfs_dos.o - -depend: $(SRC) $(GSRC) - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) depend - $(CC) -E -MM $(INCDIRS) $^ > dep.end - -ifeq (dep.end,$(wildcard dep.end)) - include dep.end -endif - -# end of Makefile.gcc diff --git a/Build/source/libs/freetype/freetype-1.5/test/arch/msdos/depend.dos b/Build/source/libs/freetype/freetype-1.5/test/arch/msdos/depend.dos deleted file mode 100644 index 09809f45f38..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/arch/msdos/depend.dos +++ /dev/null @@ -1,76 +0,0 @@ -# This file is part of the FreeType project. -# Automatically generated, but you can customize to fit your needs. -# However, changes will be erased if not made in `makedep'... -# -# This dependency file to be used with various MS-DOS compilers -# has been generated automatically with the script `makedep' on -# 2002-02-19. - -arabic.obj: arabic.c arabic.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\extend\ftxopen.h ..\lib\extend\ftxgdef.h \ - ..\lib\extend\ftxgsub.h ..\lib\extend\ftxgpos.h -blitter.obj: blitter.c blitter.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h -common.obj: common.c common.h -display.obj: display.c display.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h gmain.h -fdebug.obj: fdebug.c ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\tttypes.h ..\lib\ttconfig.h \ - ..\lib\arch\msdos\ft_conf.h ..\lib\ttdebug.h \ - ..\lib\ttobjs.h ..\lib\ttengine.h \ - ..\lib\ttmutex.h ..\lib\ttcache.h \ - ..\lib\tttables.h ..\lib\ttcmap.h -ftdump.obj: ftdump.c common.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\extend\ftxcmap.h ..\lib\extend\ftxopen.h \ - ..\lib\extend\ftxgdef.h ..\lib\extend\ftxgsub.h \ - ..\lib\extend\ftxgpos.h ..\lib\extend\ftxsbit.h \ - ..\lib\ttobjs.h ..\lib\ttconfig.h \ - ..\lib\arch\msdos\ft_conf.h ..\lib\ttengine.h \ - ..\lib\tttypes.h ..\lib\ttmutex.h \ - ..\lib\ttcache.h ..\lib\tttables.h \ - ..\lib\ttcmap.h ..\lib\ttmemory.h -fterror.obj: fterror.c ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\extend\ftxerr18.h \ - ..\lib\arch\msdos\ft_conf.h -ftlint.obj: ftlint.c common.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\arch\msdos\ft_conf.h -ftmetric.obj: ftmetric.c common.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\extend\ftxsbit.h textdisp.h \ - ..\lib\arch\msdos\ft_conf.h -ftsbit.obj: ftsbit.c common.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\extend\ftxsbit.h textdisp.h \ - ..\lib\arch\msdos\ft_conf.h -ftstring.obj: ftstring.c common.h display.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h gevents.h \ - gdriver.h gmain.h -ftstrpnm.obj: ftstrpnm.c common.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h -ftstrtto.obj: ftstrtto.c arabic.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\extend\ftxopen.h ..\lib\extend\ftxgdef.h \ - ..\lib\extend\ftxgsub.h ..\lib\extend\ftxgpos.h \ - blitter.h common.h display.h ..\lib\extend\ftxkern.h \ - ..\lib\extend\ftxsbit.h gdriver.h gevents.h gmain.h \ - ..\lib\ttmemory.h ..\lib\ttconfig.h \ - ..\lib\arch\msdos\ft_conf.h ..\lib\tttypes.h -fttimer.obj: fttimer.c common.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h gdriver.h \ - gevents.h gmain.h -ftview.obj: ftview.c blitter.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h common.h \ - display.h ..\lib\extend\ftxsbit.h gdriver.h gevents.h \ - gmain.h -ftzoom.obj: ftzoom.c common.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\extend\ftxpost.h gdriver.h gevents.h gmain.h -gmain.obj: gmain.c gdriver.h gmain.h -textdisp.obj: textdisp.c textdisp.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h -arch\msdos\gfs_dos.obj: arch\msdos\gfs_dos.c gdriver.h gevents.h gmain.h diff --git a/Build/source/libs/freetype/freetype-1.5/test/arch/msdos/gfs_dos.c b/Build/source/libs/freetype/freetype-1.5/test/arch/msdos/gfs_dos.c deleted file mode 100644 index ce61c526796..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/arch/msdos/gfs_dos.c +++ /dev/null @@ -1,374 +0,0 @@ -/******************************************************************* - * - * gfs_dos.c graphics utility fullscreen Dos driver. 1.0 - * - * This is the driver for fullscreen Dos display, used by the - * graphics utility of the FreeType test suite. - * - * Copyright 1996-2002 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - ******************************************************************/ - -#include <stdio.h> -#include <stdlib.h> -#if defined( __STDC__ ) || defined( __TURBOC__ ) -#include <string.h> -#else -#include <memory.h> -#endif - -#include "gdriver.h" -#include "gevents.h" -#include "gmain.h" - - -/* The following #ifdef are used to define the following macros : */ -/* */ -/* - int86 : function to call an interrupt */ -/* - reg_ax : the 'ax' register as stored in the REGS struct */ -/* */ - -/* ---- DJGPP dos compiler support --------------------------------------- */ - -#if defined( __DJGPP__ ) || defined( __DJGPP ) || defined( __GO32__ ) - -#undef __STRICT_ANSI__ -#ifndef DJGPP -#define DJGPP -#endif - -#include <dos.h> -#include <conio.h> -#include <go32.h> - -#if !defined( __DJGPP__ ) -/* DJGPP v1.x */ - -const int djgpp_use_nearpointers = 0; /* V.1 did not know about them */ - -#else -/* DJGPP v2.x */ - -#ifdef DJGPP_NEAR_POINTERS -#include <sys/nearptr.h> -int djgpp_use_nearpointers = -1; /* to be tested if they works */ -#else -const int djgpp_use_nearpointers = 0; /* don't even try */ -#endif - -#endif /* DJGPP v.? */ - -#define int86( a, b, c ) int86( a, b, c ) -#define reg_ax regs.x.ax - -#endif - -/* ---- Microsoft C compilers support ------------------------------------ */ - -#if defined( M_I86 ) || defined( _M_I86 ) - -#include <dos.h> -#include <conio.h> - -#define reg_ax regs.x.ax - -#ifdef _M_I86 /* a recent compiler, which do not pollute name spaces */ -#define getch() _getch() -#define REGS _REGS -#define int86( a, b, c ) _int86( a, b, c ) -#else -#define int86( a, b, c ) int86( a, b, c ) -#endif - -#ifndef MK_FP -#ifdef _MK_FP -#define MK_FP( seg, ofs ) _MK_FP( seg, ofs ) -#else -#ifndef _M_I86 /* old versions */ -#define __far _far -#endif -#define MK_FP( seg, offset ) (void __far *)( ((unsigned long)seg << 16) + \ - (unsigned long)(unsigned)offset ) -#endif /* _MK_FP */ -#endif /* MK_FP */ - -#endif /* Microsoft compilers */ - -/* ---- Borland C compiler support --------------------------------------- */ - -#ifdef __TURBOC__ -#ifdef __STDC__ -#error "MK_FP is incompatible with ANSI mode. Use the `-A-' switch." -#endif - -#include <dos.h> /* Includes the declaration of int86 */ -#include <conio.h> /* for getch */ - -#define reg_ax regs.x.ax -#define int86( a, b, c ) int86( a, b, c ) - -#endif - -/* ---- Phar Lap 286|DOS extender support -------------------------------- */ - -#ifdef DOSX286 -/* The symbol DOSX286 must be specified on the command line. */ - -#include <phapi.h> - -#ifndef FP_SEG -#define FP_SEG(fp) (*((unsigned __far *)&(fp) + 1)) -#endif - -#endif - -/* ---- EMX/Dos compiler support ----------------------------------------- */ - -#ifdef __EMX__ - -#include <dos.h> -#include <sys/hw.h> -#include <conio.h> /* for getch */ - extern _read_kbd(); /* to avoid an ANSI warning during compilation */ - -#define int86 _int86 -#define reg_ax regs.x.ax - -#endif - -/* ---- WATCOM Dos/16 & Dos/32 support ----------------------------------- */ - -#ifdef __WATCOMC__ - -#include <i86.h> - -#define reg_ax regs.w.ax - -#ifdef __386__ -#define int86 int386 -#endif - -#endif - - -#if !defined( reg_ax ) || !defined( int86 ) -#error "Your compiler is not (yet) supported. Check the source file!" -#endif - - - typedef struct _Translator - { - char key; - GEvent event_class; - int event_info; - } Translator; - -#define NUM_Translators 20 - - static const Translator trans[NUM_Translators] = - { - { (char)27, event_Quit, 0 }, - { 'q', event_Quit, 0 }, - - { 'x', event_Rotate_Glyph, -1 }, - { 'c', event_Rotate_Glyph, 1 }, - { 'v', event_Rotate_Glyph, -16 }, - { 'b', event_Rotate_Glyph, 16 }, - - { '{', event_Change_Glyph, -10000 }, - { '}', event_Change_Glyph, 10000 }, - { '(', event_Change_Glyph, -1000 }, - { ')', event_Change_Glyph, 1000 }, - { '9', event_Change_Glyph, -100 }, - { '0', event_Change_Glyph, 100 }, - { 'i', event_Change_Glyph, -10 }, - { 'o', event_Change_Glyph, 10 }, - { 'k', event_Change_Glyph, -1 }, - { 'l', event_Change_Glyph, 1 }, - - { '+', event_Scale_Glyph, 10 }, - { '-', event_Scale_Glyph, -10 }, - { 'u', event_Scale_Glyph, 1 }, - { 'j', event_Scale_Glyph, -1 } - }; - - - /* Set Graphics Mode */ - - int Driver_Set_Graphics( int mode ) - { - union REGS regs; - - - switch ( mode ) - { - case Graphics_Mode_Mono: /* Standard VGA 640x480x16 mode */ - reg_ax = 0x12; - int86( 0x10, ®s, ®s ); - - vio_ScanLineWidth = 80; - vio_Width = 640; - vio_Height = 480; - break; - - case Graphics_Mode_Gray: /* Standard VGA 320x200x256 mode */ - reg_ax = 0x13; - int86( 0x10, ®s, ®s ); - - vio_ScanLineWidth = 320; - vio_Width = 320; - vio_Height = 200; - - /* default gray_palette takes the gray levels of the standard VGA */ - /* 256 colors mode */ - - gray_palette[0] = 0; - gray_palette[1] = 23; - gray_palette[2] = 27; - gray_palette[3] = 29; - gray_palette[4] = 31; - break; - - default: - return 0; /* failure */ - } - -#if defined( __EMX__ ) - Vio = _memaccess( 0xA0000, 0xAFFFF, 1 ); -#elif defined( DJGPP ) - Vio = (char *)0xA0000; -#elif defined( __WATCOMC__ ) && defined( __386__ ) - Vio = (char *)0xA0000; -#elif defined( DOSX286 ) - { - unsigned short sel; - - - if ( DosMapRealSeg( 0xA000, (long)vio_ScanLineWidth*vio_Height, &sel ) ) - return 0; /* failure */ - - Vio = (char*)MK_FP( sel, 0 ); - } -#else - Vio = (char*)MK_FP( 0xA000, 0 ); -#endif - - return 1; /* success */ - } - - - /* Revert to text mode */ - - int Driver_Restore_Mode() - { - union REGS regs; - - - reg_ax = 0x3; - int86( 0x10, ®s, ®s ); - -#ifdef DOSX286 - DosFreeSeg( FP_SEG( Vio ) ); -#endif - - return 1; /* success */ - } - - - int Driver_Display_Bitmap( char* buffer, int line, int col ) - { - int y, used_col; - char* target; - -#ifdef DJGPP - char cbuf = 0; - int i; -#endif - -#ifdef DJGPP_USE_NEAR_POINTERS - if( djgpp_use_nearpointers ) - if( ! __djgpp_nearptr_enable() ) - /* doesn't work, probably under some real OS like NT or dosemu! */ - djgpp_use_nearpointers = 0; - else - Vio += __djgpp_conventional_base; -#endif - -#ifdef DJGPP - if( !djgpp_use_nearpointers ) - for( i = 0; i < vio_Height*vio_ScanLineWidth; i++ ) - dosmemput( &cbuf, 1, (unsigned long) Vio+i ); - else - /*FALLTHROUGH*/ -#endif - memset( Vio, 0, vio_Height * vio_ScanLineWidth ); - - if ( line > vio_Height ) - line = vio_Height; - if ( col > vio_ScanLineWidth ) - used_col = vio_ScanLineWidth; - else - used_col = col; - - target = Vio + ( line - 1 ) * vio_ScanLineWidth; - - for ( y = 0; y < line; y++ ) - { -#ifdef DJGPP - if( !djgpp_use_nearpointers ) - dosmemput( buffer, used_col, (unsigned long)target ); - else - /*FALLTHROUGH*/ -#endif - memcpy( target, buffer, used_col ); - - target -= vio_ScanLineWidth; - buffer += col; - } - -#ifdef DJGPP_USE_NEAR_POINTERS - if( djgpp_use_nearpointers ) - { - Vio -= __djgpp_conventional_base; - __djgpp_nearptr_disable(); - } -#endif - - return 1; /* success */ - } - - - void Get_Event( TEvent* event ) - { - int i; - int c; - - - c = getch(); - - for ( i = 0; i < NUM_Translators; i++ ) - { - if ( c == trans[i].key ) - { - event->what = trans[i].event_class; - event->info = trans[i].event_info; - return; - } - } - - /* unrecognized keystroke */ - - event->what = event_Keyboard; - event->info = (int)c; - return; - } - - -/* End */ diff --git a/Build/source/libs/freetype/freetype-1.5/test/arch/msdos/gmain_dj.c b/Build/source/libs/freetype/freetype-1.5/test/arch/msdos/gmain_dj.c deleted file mode 100644 index 01206cfb21c..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/arch/msdos/gmain_dj.c +++ /dev/null @@ -1,470 +0,0 @@ -/******************************************************************* - * - * gmain_dj.c graphics utility main body, specific DJGPP version - * - * This file defines a specific implementation of the generic - * graphics utility used by the FreeType test programs. It is - * provided because the management of the video memory under DJGPP - * extender is rather specific... - * - * Copyright 1996-2002 by Antoine Leca, - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - ******************************************************************/ - -#include "gdriver.h" -#include "gmain.h" - -#undef __STRICT_ANSI__ -#include <go32.h> - -#ifndef FAILURE -#define FAILURE 0 -#endif - -#ifndef SUCCESS -#define SUCCESS 1 -#endif - - char* Vio; /* pointer to VRAM or display buffer */ - - int vio_ScanLineWidth; /* scan line width in bytes */ - - int vio_Width; - int vio_Height; - - int gcursor_x = 0; - int gcursor_y = 0; - - int gwindow_width = 0; - int gwindow_height = 0; - - unsigned char gray_palette[5]; - - - typedef void TFunction_Print_8x8_Char( int x, - int y, - unsigned char c ); - - TFunction_Print_8x8_Char* Print_8x8_Char; - - /* font characters */ - - unsigned char font_8x8[2048] = - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x7E, 0x81, 0xA5, 0x81, 0xBD, 0x99, 0x81, 0x7E, - 0x7E, 0xFF, 0xDB, 0xFF, 0xC3, 0xE7, 0xFF, 0x7E, - 0x6C, 0xFE, 0xFE, 0xFE, 0x7C, 0x38, 0x10, 0x00, - 0x10, 0x38, 0x7C, 0xFE, 0x7C, 0x38, 0x10, 0x00, - 0x38, 0x7C, 0x38, 0xFE, 0xFE, 0x92, 0x10, 0x7C, - 0x00, 0x10, 0x38, 0x7C, 0xFE, 0x7C, 0x38, 0x7C, - 0x00, 0x00, 0x18, 0x3C, 0x3C, 0x18, 0x00, 0x00, - 0xFF, 0xFF, 0xE7, 0xC3, 0xC3, 0xE7, 0xFF, 0xFF, - 0x00, 0x3C, 0x66, 0x42, 0x42, 0x66, 0x3C, 0x00, - 0xFF, 0xC3, 0x99, 0xBD, 0xBD, 0x99, 0xC3, 0xFF, - 0x0F, 0x07, 0x0F, 0x7D, 0xCC, 0xCC, 0xCC, 0x78, - 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x7E, 0x18, - 0x3F, 0x33, 0x3F, 0x30, 0x30, 0x70, 0xF0, 0xE0, - 0x7F, 0x63, 0x7F, 0x63, 0x63, 0x67, 0xE6, 0xC0, - 0x99, 0x5A, 0x3C, 0xE7, 0xE7, 0x3C, 0x5A, 0x99, - 0x80, 0xE0, 0xF8, 0xFE, 0xF8, 0xE0, 0x80, 0x00, - 0x02, 0x0E, 0x3E, 0xFE, 0x3E, 0x0E, 0x02, 0x00, - 0x18, 0x3C, 0x7E, 0x18, 0x18, 0x7E, 0x3C, 0x18, - 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x66, 0x00, - 0x7F, 0xDB, 0xDB, 0x7B, 0x1B, 0x1B, 0x1B, 0x00, - 0x3E, 0x63, 0x38, 0x6C, 0x6C, 0x38, 0x86, 0xFC, - 0x00, 0x00, 0x00, 0x00, 0x7E, 0x7E, 0x7E, 0x00, - 0x18, 0x3C, 0x7E, 0x18, 0x7E, 0x3C, 0x18, 0xFF, - 0x18, 0x3C, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x00, - 0x18, 0x18, 0x18, 0x18, 0x7E, 0x3C, 0x18, 0x00, - 0x00, 0x18, 0x0C, 0xFE, 0x0C, 0x18, 0x00, 0x00, - 0x00, 0x30, 0x60, 0xFE, 0x60, 0x30, 0x00, 0x00, - 0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xFE, 0x00, 0x00, - 0x00, 0x24, 0x66, 0xFF, 0x66, 0x24, 0x00, 0x00, - 0x00, 0x18, 0x3C, 0x7E, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0x7E, 0x3C, 0x18, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x18, 0x3C, 0x3C, 0x18, 0x18, 0x00, 0x18, 0x00, - 0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x6C, 0x6C, 0xFE, 0x6C, 0xFE, 0x6C, 0x6C, 0x00, - 0x18, 0x7E, 0xC0, 0x7C, 0x06, 0xFC, 0x18, 0x00, - 0x00, 0xC6, 0xCC, 0x18, 0x30, 0x66, 0xC6, 0x00, - 0x38, 0x6C, 0x38, 0x76, 0xDC, 0xCC, 0x76, 0x00, - 0x30, 0x30, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x18, 0x30, 0x60, 0x60, 0x60, 0x30, 0x18, 0x00, - 0x60, 0x30, 0x18, 0x18, 0x18, 0x30, 0x60, 0x00, - 0x00, 0x66, 0x3C, 0xFF, 0x3C, 0x66, 0x00, 0x00, - 0x00, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30, - 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, - 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC0, 0x80, 0x00, - 0x7C, 0xCE, 0xDE, 0xF6, 0xE6, 0xC6, 0x7C, 0x00, - 0x30, 0x70, 0x30, 0x30, 0x30, 0x30, 0xFC, 0x00, - 0x78, 0xCC, 0x0C, 0x38, 0x60, 0xCC, 0xFC, 0x00, - 0x78, 0xCC, 0x0C, 0x38, 0x0C, 0xCC, 0x78, 0x00, - 0x1C, 0x3C, 0x6C, 0xCC, 0xFE, 0x0C, 0x1E, 0x00, - 0xFC, 0xC0, 0xF8, 0x0C, 0x0C, 0xCC, 0x78, 0x00, - 0x38, 0x60, 0xC0, 0xF8, 0xCC, 0xCC, 0x78, 0x00, - 0xFC, 0xCC, 0x0C, 0x18, 0x30, 0x30, 0x30, 0x00, - 0x78, 0xCC, 0xCC, 0x78, 0xCC, 0xCC, 0x78, 0x00, - 0x78, 0xCC, 0xCC, 0x7C, 0x0C, 0x18, 0x70, 0x00, - 0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x00, - 0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x30, - 0x18, 0x30, 0x60, 0xC0, 0x60, 0x30, 0x18, 0x00, - 0x00, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x00, 0x00, - 0x60, 0x30, 0x18, 0x0C, 0x18, 0x30, 0x60, 0x00, - 0x3C, 0x66, 0x0C, 0x18, 0x18, 0x00, 0x18, 0x00, - 0x7C, 0xC6, 0xDE, 0xDE, 0xDC, 0xC0, 0x7C, 0x00, - 0x30, 0x78, 0xCC, 0xCC, 0xFC, 0xCC, 0xCC, 0x00, - 0xFC, 0x66, 0x66, 0x7C, 0x66, 0x66, 0xFC, 0x00, - 0x3C, 0x66, 0xC0, 0xC0, 0xC0, 0x66, 0x3C, 0x00, - 0xF8, 0x6C, 0x66, 0x66, 0x66, 0x6C, 0xF8, 0x00, - 0xFE, 0x62, 0x68, 0x78, 0x68, 0x62, 0xFE, 0x00, - 0xFE, 0x62, 0x68, 0x78, 0x68, 0x60, 0xF0, 0x00, - 0x3C, 0x66, 0xC0, 0xC0, 0xCE, 0x66, 0x3A, 0x00, - 0xCC, 0xCC, 0xCC, 0xFC, 0xCC, 0xCC, 0xCC, 0x00, - 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00, - 0x1E, 0x0C, 0x0C, 0x0C, 0xCC, 0xCC, 0x78, 0x00, - 0xE6, 0x66, 0x6C, 0x78, 0x6C, 0x66, 0xE6, 0x00, - 0xF0, 0x60, 0x60, 0x60, 0x62, 0x66, 0xFE, 0x00, - 0xC6, 0xEE, 0xFE, 0xFE, 0xD6, 0xC6, 0xC6, 0x00, - 0xC6, 0xE6, 0xF6, 0xDE, 0xCE, 0xC6, 0xC6, 0x00, - 0x38, 0x6C, 0xC6, 0xC6, 0xC6, 0x6C, 0x38, 0x00, - 0xFC, 0x66, 0x66, 0x7C, 0x60, 0x60, 0xF0, 0x00, - 0x7C, 0xC6, 0xC6, 0xC6, 0xD6, 0x7C, 0x0E, 0x00, - 0xFC, 0x66, 0x66, 0x7C, 0x6C, 0x66, 0xE6, 0x00, - 0x7C, 0xC6, 0xE0, 0x78, 0x0E, 0xC6, 0x7C, 0x00, - 0xFC, 0xB4, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00, - 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xFC, 0x00, - 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x78, 0x30, 0x00, - 0xC6, 0xC6, 0xC6, 0xC6, 0xD6, 0xFE, 0x6C, 0x00, - 0xC6, 0xC6, 0x6C, 0x38, 0x6C, 0xC6, 0xC6, 0x00, - 0xCC, 0xCC, 0xCC, 0x78, 0x30, 0x30, 0x78, 0x00, - 0xFE, 0xC6, 0x8C, 0x18, 0x32, 0x66, 0xFE, 0x00, - 0x78, 0x60, 0x60, 0x60, 0x60, 0x60, 0x78, 0x00, - 0xC0, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x02, 0x00, - 0x78, 0x18, 0x18, 0x18, 0x18, 0x18, 0x78, 0x00, - 0x10, 0x38, 0x6C, 0xC6, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, - 0x30, 0x30, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00, - 0xE0, 0x60, 0x60, 0x7C, 0x66, 0x66, 0xDC, 0x00, - 0x00, 0x00, 0x78, 0xCC, 0xC0, 0xCC, 0x78, 0x00, - 0x1C, 0x0C, 0x0C, 0x7C, 0xCC, 0xCC, 0x76, 0x00, - 0x00, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00, - 0x38, 0x6C, 0x64, 0xF0, 0x60, 0x60, 0xF0, 0x00, - 0x00, 0x00, 0x76, 0xCC, 0xCC, 0x7C, 0x0C, 0xF8, - 0xE0, 0x60, 0x6C, 0x76, 0x66, 0x66, 0xE6, 0x00, - 0x30, 0x00, 0x70, 0x30, 0x30, 0x30, 0x78, 0x00, - 0x0C, 0x00, 0x1C, 0x0C, 0x0C, 0xCC, 0xCC, 0x78, - 0xE0, 0x60, 0x66, 0x6C, 0x78, 0x6C, 0xE6, 0x00, - 0x70, 0x30, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00, - 0x00, 0x00, 0xCC, 0xFE, 0xFE, 0xD6, 0xD6, 0x00, - 0x00, 0x00, 0xB8, 0xCC, 0xCC, 0xCC, 0xCC, 0x00, - 0x00, 0x00, 0x78, 0xCC, 0xCC, 0xCC, 0x78, 0x00, - 0x00, 0x00, 0xDC, 0x66, 0x66, 0x7C, 0x60, 0xF0, - 0x00, 0x00, 0x76, 0xCC, 0xCC, 0x7C, 0x0C, 0x1E, - 0x00, 0x00, 0xDC, 0x76, 0x62, 0x60, 0xF0, 0x00, - 0x00, 0x00, 0x7C, 0xC0, 0x70, 0x1C, 0xF8, 0x00, - 0x10, 0x30, 0xFC, 0x30, 0x30, 0x34, 0x18, 0x00, - 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00, - 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0x78, 0x30, 0x00, - 0x00, 0x00, 0xC6, 0xC6, 0xD6, 0xFE, 0x6C, 0x00, - 0x00, 0x00, 0xC6, 0x6C, 0x38, 0x6C, 0xC6, 0x00, - 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0x7C, 0x0C, 0xF8, - 0x00, 0x00, 0xFC, 0x98, 0x30, 0x64, 0xFC, 0x00, - 0x1C, 0x30, 0x30, 0xE0, 0x30, 0x30, 0x1C, 0x00, - 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x00, - 0xE0, 0x30, 0x30, 0x1C, 0x30, 0x30, 0xE0, 0x00, - 0x76, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x38, 0x6C, 0xC6, 0xC6, 0xFE, 0x00, - 0x7C, 0xC6, 0xC0, 0xC6, 0x7C, 0x0C, 0x06, 0x7C, - 0x00, 0xCC, 0x00, 0xCC, 0xCC, 0xCC, 0x76, 0x00, - 0x1C, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00, - 0x7E, 0x81, 0x3C, 0x06, 0x3E, 0x66, 0x3B, 0x00, - 0xCC, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00, - 0xE0, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00, - 0x30, 0x30, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00, - 0x00, 0x00, 0x7C, 0xC6, 0xC0, 0x78, 0x0C, 0x38, - 0x7E, 0x81, 0x3C, 0x66, 0x7E, 0x60, 0x3C, 0x00, - 0xCC, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00, - 0xE0, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00, - 0xCC, 0x00, 0x70, 0x30, 0x30, 0x30, 0x78, 0x00, - 0x7C, 0x82, 0x38, 0x18, 0x18, 0x18, 0x3C, 0x00, - 0xE0, 0x00, 0x70, 0x30, 0x30, 0x30, 0x78, 0x00, - 0xC6, 0x10, 0x7C, 0xC6, 0xFE, 0xC6, 0xC6, 0x00, - 0x30, 0x30, 0x00, 0x78, 0xCC, 0xFC, 0xCC, 0x00, - 0x1C, 0x00, 0xFC, 0x60, 0x78, 0x60, 0xFC, 0x00, - 0x00, 0x00, 0x7F, 0x0C, 0x7F, 0xCC, 0x7F, 0x00, - 0x3E, 0x6C, 0xCC, 0xFE, 0xCC, 0xCC, 0xCE, 0x00, - 0x78, 0x84, 0x00, 0x78, 0xCC, 0xCC, 0x78, 0x00, - 0x00, 0xCC, 0x00, 0x78, 0xCC, 0xCC, 0x78, 0x00, - 0x00, 0xE0, 0x00, 0x78, 0xCC, 0xCC, 0x78, 0x00, - 0x78, 0x84, 0x00, 0xCC, 0xCC, 0xCC, 0x76, 0x00, - 0x00, 0xE0, 0x00, 0xCC, 0xCC, 0xCC, 0x76, 0x00, - 0x00, 0xCC, 0x00, 0xCC, 0xCC, 0x7C, 0x0C, 0xF8, - 0xC3, 0x18, 0x3C, 0x66, 0x66, 0x3C, 0x18, 0x00, - 0xCC, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0x78, 0x00, - 0x18, 0x18, 0x7E, 0xC0, 0xC0, 0x7E, 0x18, 0x18, - 0x38, 0x6C, 0x64, 0xF0, 0x60, 0xE6, 0xFC, 0x00, - 0xCC, 0xCC, 0x78, 0x30, 0xFC, 0x30, 0xFC, 0x30, - 0xF8, 0xCC, 0xCC, 0xFA, 0xC6, 0xCF, 0xC6, 0xC3, - 0x0E, 0x1B, 0x18, 0x3C, 0x18, 0x18, 0xD8, 0x70, - 0x1C, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00, - 0x38, 0x00, 0x70, 0x30, 0x30, 0x30, 0x78, 0x00, - 0x00, 0x1C, 0x00, 0x78, 0xCC, 0xCC, 0x78, 0x00, - 0x00, 0x1C, 0x00, 0xCC, 0xCC, 0xCC, 0x76, 0x00, - 0x00, 0xF8, 0x00, 0xB8, 0xCC, 0xCC, 0xCC, 0x00, - 0xFC, 0x00, 0xCC, 0xEC, 0xFC, 0xDC, 0xCC, 0x00, - 0x3C, 0x6C, 0x6C, 0x3E, 0x00, 0x7E, 0x00, 0x00, - 0x38, 0x6C, 0x6C, 0x38, 0x00, 0x7C, 0x00, 0x00, - 0x18, 0x00, 0x18, 0x18, 0x30, 0x66, 0x3C, 0x00, - 0x00, 0x00, 0x00, 0xFC, 0xC0, 0xC0, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xFC, 0x0C, 0x0C, 0x00, 0x00, - 0xC6, 0xCC, 0xD8, 0x36, 0x6B, 0xC2, 0x84, 0x0F, - 0xC3, 0xC6, 0xCC, 0xDB, 0x37, 0x6D, 0xCF, 0x03, - 0x18, 0x00, 0x18, 0x18, 0x3C, 0x3C, 0x18, 0x00, - 0x00, 0x33, 0x66, 0xCC, 0x66, 0x33, 0x00, 0x00, - 0x00, 0xCC, 0x66, 0x33, 0x66, 0xCC, 0x00, 0x00, - 0x22, 0x88, 0x22, 0x88, 0x22, 0x88, 0x22, 0x88, - 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, - 0xDB, 0xF6, 0xDB, 0x6F, 0xDB, 0x7E, 0xD7, 0xED, - 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0xF8, 0x18, 0x18, 0x18, - 0x18, 0x18, 0xF8, 0x18, 0xF8, 0x18, 0x18, 0x18, - 0x36, 0x36, 0x36, 0x36, 0xF6, 0x36, 0x36, 0x36, - 0x00, 0x00, 0x00, 0x00, 0xFE, 0x36, 0x36, 0x36, - 0x00, 0x00, 0xF8, 0x18, 0xF8, 0x18, 0x18, 0x18, - 0x36, 0x36, 0xF6, 0x06, 0xF6, 0x36, 0x36, 0x36, - 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, - 0x00, 0x00, 0xFE, 0x06, 0xF6, 0x36, 0x36, 0x36, - 0x36, 0x36, 0xF6, 0x06, 0xFE, 0x00, 0x00, 0x00, - 0x36, 0x36, 0x36, 0x36, 0xFE, 0x00, 0x00, 0x00, - 0x18, 0x18, 0xF8, 0x18, 0xF8, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xF8, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0x1F, 0x00, 0x00, 0x00, - 0x18, 0x18, 0x18, 0x18, 0xFF, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xFF, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0x1F, 0x18, 0x18, 0x18, - 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, - 0x18, 0x18, 0x18, 0x18, 0xFF, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x1F, 0x18, 0x1F, 0x18, 0x18, 0x18, - 0x36, 0x36, 0x36, 0x36, 0x37, 0x36, 0x36, 0x36, - 0x36, 0x36, 0x37, 0x30, 0x3F, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x3F, 0x30, 0x37, 0x36, 0x36, 0x36, - 0x36, 0x36, 0xF7, 0x00, 0xFF, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0x00, 0xF7, 0x36, 0x36, 0x36, - 0x36, 0x36, 0x37, 0x30, 0x37, 0x36, 0x36, 0x36, - 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, - 0x36, 0x36, 0xF7, 0x00, 0xF7, 0x36, 0x36, 0x36, - 0x18, 0x18, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, - 0x36, 0x36, 0x36, 0x36, 0xFF, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x18, 0x18, 0x18, - 0x00, 0x00, 0x00, 0x00, 0xFF, 0x36, 0x36, 0x36, - 0x36, 0x36, 0x36, 0x36, 0x3F, 0x00, 0x00, 0x00, - 0x18, 0x18, 0x1F, 0x18, 0x1F, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x1F, 0x18, 0x1F, 0x18, 0x18, 0x18, - 0x00, 0x00, 0x00, 0x00, 0x3F, 0x36, 0x36, 0x36, - 0x36, 0x36, 0x36, 0x36, 0xFF, 0x36, 0x36, 0x36, - 0x18, 0x18, 0xFF, 0x18, 0xFF, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0xF8, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x1F, 0x18, 0x18, 0x18, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, - 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, - 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, - 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x76, 0xDC, 0xC8, 0xDC, 0x76, 0x00, - 0x00, 0x78, 0xCC, 0xF8, 0xCC, 0xF8, 0xC0, 0xC0, - 0x00, 0xFC, 0xCC, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, - 0x00, 0x00, 0xFE, 0x6C, 0x6C, 0x6C, 0x6C, 0x00, - 0xFC, 0xCC, 0x60, 0x30, 0x60, 0xCC, 0xFC, 0x00, - 0x00, 0x00, 0x7E, 0xD8, 0xD8, 0xD8, 0x70, 0x00, - 0x00, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x60, 0xC0, - 0x00, 0x76, 0xDC, 0x18, 0x18, 0x18, 0x18, 0x00, - 0xFC, 0x30, 0x78, 0xCC, 0xCC, 0x78, 0x30, 0xFC, - 0x38, 0x6C, 0xC6, 0xFE, 0xC6, 0x6C, 0x38, 0x00, - 0x38, 0x6C, 0xC6, 0xC6, 0x6C, 0x6C, 0xEE, 0x00, - 0x1C, 0x30, 0x18, 0x7C, 0xCC, 0xCC, 0x78, 0x00, - 0x00, 0x00, 0x7E, 0xDB, 0xDB, 0x7E, 0x00, 0x00, - 0x06, 0x0C, 0x7E, 0xDB, 0xDB, 0x7E, 0x60, 0xC0, - 0x38, 0x60, 0xC0, 0xF8, 0xC0, 0x60, 0x38, 0x00, - 0x78, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x00, - 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x00, - 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x7E, 0x00, - 0x60, 0x30, 0x18, 0x30, 0x60, 0x00, 0xFC, 0x00, - 0x18, 0x30, 0x60, 0x30, 0x18, 0x00, 0xFC, 0x00, - 0x0E, 0x1B, 0x1B, 0x18, 0x18, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0x18, 0xD8, 0xD8, 0x70, - 0x18, 0x18, 0x00, 0x7E, 0x00, 0x18, 0x18, 0x00, - 0x00, 0x76, 0xDC, 0x00, 0x76, 0xDC, 0x00, 0x00, - 0x38, 0x6C, 0x6C, 0x38, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x0F, 0x0C, 0x0C, 0x0C, 0xEC, 0x6C, 0x3C, 0x1C, - 0x58, 0x6C, 0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00, - 0x70, 0x98, 0x30, 0x60, 0xF8, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x3C, 0x3C, 0x3C, 0x3C, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - }; - - - void Print_8x8_Mono( int x, int y, unsigned char c ) - { - int offset, i; - unsigned char* bitm; - - if ( !Vio ) - return; - - offset = x + y * vio_ScanLineWidth * 8; - bitm = font_8x8 + (int)c * 8; - - for ( i = 0; i < 8; i++ ) - { - dosmemput( bitm, 1, (unsigned long)(Vio+offset) ); - bitm++; - offset += vio_ScanLineWidth; - } - } - - - void Print_8x8_Gray( int x, int y, unsigned char c ) - { - int offset, i, bit; - unsigned char * bitm, black = 0, white = 0xF; - - if ( !Vio ) - return; - - offset = x * 8 + y * vio_ScanLineWidth * 8; - bitm = font_8x8 + (int)c * 8; - - for ( i = 0; i < 8; i++ ) - { - bit = 0x80; - while ( bit > 0 ) - { - if ( bit & *bitm ) - dosmemput( &white, 1, (unsigned long)(Vio+offset) ); - else - dosmemput( &black, 1, (unsigned long)(Vio+offset) ); - - bit >>= 1; - offset++; - } - offset += vio_ScanLineWidth - 8; - bitm++; - } - } - - - int SetGraphScreen( int mode ) - { - gcursor_x = 0; - gcursor_y = 0; - - switch( mode ) - { - case Graphics_Mode_Mono: - if ( !Driver_Set_Graphics( mode ) ) - return FAILURE; - - gwindow_width = vio_ScanLineWidth; - gwindow_height = vio_Height / 8; - - Print_8x8_Char = Print_8x8_Mono; - break; - - case Graphics_Mode_Gray: - if ( !Driver_Set_Graphics( mode ) ) - return FAILURE; - - gwindow_width = vio_ScanLineWidth / 8; - gwindow_height = vio_Height / 8; - - Print_8x8_Char = Print_8x8_Gray; - break; - - default: - /* Invalid function call */ - return FAILURE; - } - - return SUCCESS; - } - - - /* restore previous (or text) video mode */ - - int RestoreScreen( void ) - { - gcursor_x = 0; - gcursor_y = 0; - gwindow_height = 0; - gwindow_height = 0; - - return Driver_Restore_Mode(); - } - - - void Display_Bitmap_On_Screen( char* buffer, int line, int col ) - { - Driver_Display_Bitmap( buffer, line, col ); - } - - - void Goto_XY( int x, int y ) - { - gcursor_x = x; - gcursor_y = y; - } - - - void Print_Str( char* string ) - { - if ( !string ) return; - - while ( *string ) - { - switch ( *string ) - { - case '\n': - gcursor_x = 0; - gcursor_y++; - if ( gcursor_y > gwindow_height ) gcursor_y = 0; - break; - - default: - (*Print_8x8_Char)( gcursor_x, gcursor_y, *string ); - - gcursor_x++; - - if ( gcursor_x >= gwindow_width ) - { - gcursor_x = 0; - gcursor_y++; - - if ( gcursor_y >= gwindow_height ) gcursor_y = 0; - } - } - string++; - } - } - - - void Print_XY( int x, int y, char* string ) - { - Goto_XY( x, y ); - Print_Str( string ); - } - -/* End */ diff --git a/Build/source/libs/freetype/freetype-1.5/test/arch/msdos/makedep b/Build/source/libs/freetype/freetype-1.5/test/arch/msdos/makedep deleted file mode 100755 index cb1aabbaeb7..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/arch/msdos/makedep +++ /dev/null @@ -1,35 +0,0 @@ -# makedep -# -# This shell script creates a dependency file necessary for older compilers -# on the MS-DOS platform. -# -# Copyright 1996-2002 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. - -echo "\ -# This file is part of the FreeType project. -# Automatically generated, but you can customize to fit your needs. -# However, changes will be erased if not made in \`makedep'... -# -# This dependency file to be used with various MS-DOS compilers -# has been generated automatically with the script \`makedep' on -# `date +%Y-%m-%d`. -" > depend.dos - -(cd ../.. - gcc -MM -I../lib/arch/msdos -I../lib -I../lib/extend -I. *.c | \ - sed -e "s/\.o:/.obj:/" -e "s:/:\\\\:g") >> depend.dos - -(cd ../.. - gcc -MM -I../lib/arch/msdos -I../lib -I../lib/extend -I. \ - -Dreg_ax -Dint86 arch/msdos/*.c | \ - sed -e "s/^\(.*\)\.o:/arch\\\\msdos\\\\\1.obj:/" \ - -e "s:/:\\\\:g") >> depend.dos - -# eof diff --git a/Build/source/libs/freetype/freetype-1.5/test/arch/msdos/time_tc.h b/Build/source/libs/freetype/freetype-1.5/test/arch/msdos/time_tc.h deleted file mode 100644 index cef288aec2d..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/arch/msdos/time_tc.h +++ /dev/null @@ -1,124 +0,0 @@ -/******************************************************************* - * - * time.h Replacement for buggy <time.h> of old Turbo C compilers - * - * This file is a hack! It replaces <time.h> when compiling with - * old versions of Borland Turbo C compilers that lack clock(), - * and provide its own version. - * - * Written by Antoine Leca - * Copyright 1999-2000 Antoine Leca, - * David Turner, Robert Wilhelm and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - ******************************************************************/ - -#if !defined __TURBOC__ || !defined __MSDOS__ || __TURBOC__>0x220 -/* - * We are not running on a Borland compiler, or either on - * a recent version that does not need the hack. - * Certainly the user does not clean up the directory. - * Stop the compilation. - */ -#error Remove the file time.h in directory test - -#endif - -#ifndef _TIME_H_DEFINED -#define _TIME_H_DEFINED - -#if defined _TM_DEFINED || defined _TIME_T -#error Another version of <time.h> seems to have been already included -#endif - -#ifndef __TIME_T -#define __TIME_T -typedef long time_t; -#endif - -#ifndef __CLOCK_T -#define __CLOCK_T -typedef long clock_t; -#define CLK_TCK 18.2 -#endif - -#define CLOCKS_PER_SEC CLK_TCK - -struct tm { - int tm_sec; - int tm_min; - int tm_hour; - int tm_mday; - int tm_mon; - int tm_year; - int tm_wday; - int tm_yday; - int tm_isdst; -}; - - -clock_t clock (void); -double difftime(time_t time2, time_t time1); -time_t time (time_t *timer); - -char *asctime (const struct tm *tblock); -char *ctime (const time_t *time); -struct tm *gmtime (const time_t *timer); -struct tm *localtime(const time_t *timer); - - -#if __TURBOC__ <= 0x0150 - -/******************************************************************* - * - * Function : clock - * - * Description : Turbo C v.1.x lacks the clock() function that is - * needed for at least fttimer. - * So this is a replacement that does more or less - * the functionnality of clock(), using the BIOS. - * Since we do not know exactly when the process - * started (as clock() is supposed to do), we cheat - * a little here. - * - * Input : None - * - * Output : None - * - * Notes : Use two static objects. - * NEED_CLOCK_HERE is a macro that should be defined - * in only ONE module (otherwise, the linker will complain). - * - ******************************************************************/ - -extern long biostime(int cmd, long newtime); - -static long CountOfTicks; -static long DateOfReference = 0; - -clock_t clock (void) -{ - - if (DateOfReference == 0) /* this is the first call */ - { - DateOfReference = time(NULL) / 86400L; - CountOfTicks = biostime(0,0L) - CLOCKS_PER_SEC; - /* pretend we start one second ago */ - return CLOCKS_PER_SEC; /* to avoid returning 0 */ - } - - return (time(NULL) / 86400L - DateOfReference) * 0x1800B0L - + biostime(0,0L) - CountOfTicks; -} - -#endif /* Turbo C v.1.x */ - -#endif /* defined __TIME_H_DEFINED */ - - -/* End */ diff --git a/Build/source/libs/freetype/freetype-1.5/test/arch/os2/Makefile.dm b/Build/source/libs/freetype/freetype-1.5/test/arch/os2/Makefile.dm deleted file mode 100644 index 9c5c0cce689..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/arch/os2/Makefile.dm +++ /dev/null @@ -1,153 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library and test programs for emx-gcc under OS/2 -# -# You will need dmake. -# -# Use this file while in the 'test' directory with the following statement: -# -# dmake -r -f arch/os2/Makefile.dm -# -# -# Copyright 1996-2001 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. - -ARCH = arch/os2 -FT_MAKEFILE = $(ARCH)/Makefile.dm -FT_MAKE = dmake -r - -.IMPORT: COMSPEC -SHELL := $(COMSPEC) -SHELLFLAGS := /c -GROUPSHELL := $(SHELL) -GROUPFLAGS := $(SHELLFLAGS) -GROUPSUFFIX := .cmd -SHELLMETAS := *"?<>&| - -CC = gcc - -LIBDIR = ../lib -LIBDIR_OS2 = $(subst,/,\ $(LIBDIR)) -INCDIRS = -I$(LIBDIR) -I$(LIBDIR)/$(ARCH) -I. -I$(LIBDIR)/extend - -# CFLAGS = -Wall -ansi -O2 -g $(INCDIRS) -CFLAGS = -ansi -Wall -O2 -s -Zcrtdll $(INCDIRS) - -# full-screen MSDOS driver -GFSDRIVER = $(ARCH)/gfs_os2.c -GPMDRIVER = $(ARCH)/gpm_os2.c -GPM_DEF = $(ARCH)/gpm_os2.def - -DISPLAY = display.c - -SRC = ftlint.c fttimer.c ftview.c ftzoom.c ftdump.c ftstring.c ftstrpnm.c \ - ftsbit.c common.c blitter.c ftmetric.c ftstrtto.c arabic.c textdisp.c - -GSRC = gmain.c display.c blitter.c -GFSSRC = $(GSRC) $(GFSDRIVER) -GPMSRC = $(GSRC) $(GPMDRIVER) - -GFSOBJ = $(GFSSRC:.c=.o) -GPMOBJ = $(GPMSRC:.c=.o) - -ALLSRC = $(SRC) $(GSRC) $(GFSDRIVER) $(GPMDRIVER) -ALLOBJ = $(ALLSRC:.c=.o) - -%.o: %.c - $(CC) $(CFLAGS) -c -o $@ $< - -%.exe: - $(CC) $(CFLAGS) -o $@ @$(mktmp $(&:t"\n")\n) - - -EXEFILES = ftview.exe ftviewfs.exe \ - ftlint.exe \ - fttimer.exe fttimefs.exe \ - ftdump.exe \ - ftstring.exe ftstrfs.exe \ - ftzoom.exe ftzoomfs.exe \ - ftstrpnm.exe \ - ftsbit.exe \ - ftmetric.exe \ - ftstrtto.exe ftstrtfs.exe - -.PHONY: all debug freetype freetype_debug \ - clean distclean do_clean do_distclean depend - - -all: freetype $(EXEFILES) - -debug: freetype_debug $(EXEFILES) - - -freetype: -[ - cd $(LIBDIR_OS2) - $(FT_MAKE) -f $(FT_MAKEFILE) all - cd $(MAKEDIR) -] - -freetype_debug: -[ - cd $(LIBDIR_OS2) - $(FT_MAKE) -f $(FT_MAKEFILE) debug - cd $(MAKEDIR) -] - -ftzoom.exe: $(GPMOBJ) ftzoom.o common.o $(LIBDIR)/libttf.a $(GPM_DEF) -ftzoomfs.exe: $(GFSOBJ) ftzoom.o common.o $(LIBDIR)/libttf.a -ftview.exe: $(GPMOBJ) ftview.o common.o $(LIBDIR)/libttf.a $(GPM_DEF) -ftviewfs.exe: $(GFSOBJ) ftview.o common.o $(LIBDIR)/libttf.a -ftlint.exe: ftlint.o common.o $(LIBDIR)/libttf.a -ftdump.exe: ftdump.o common.o $(LIBDIR)/libttf.a -ftstring.exe: $(GPMOBJ) ftstring.o common.o $(LIBDIR)/libttf.a $(GPM_DEF) -ftstrfs.exe: $(GFSOBJ) ftstring.o common.o $(LIBDIR)/libttf.a -ftstrpnm.exe: ftstrpnm.o common.o $(LIBDIR)/libttf.a -fttimer.exe: $(GPMOBJ) fttimer.o common.o $(LIBDIR)/libttf.a $(GPM_DEF) -fttimefs.exe: $(GFSOBJ) fttimer.o common.o $(LIBDIR)/libttf.a -ftsbit.exe: ftsbit.o common.o textdisp.o $(LIBDIR)/libttf.a -ftmetric.exe: ftmetric.o common.o textdisp.o $(LIBDIR)/libttf.a -ftstrtto.exe: $(GPMOBJ) ftstrtto.o common.o arabic.o \ - $(LIBDIR)/libttf.a $(GPM_DEF) -ftstrtfs.exe: $(GFSOBJ) ftstrtto.o common.o arabic.o $(LIBDIR)/libttf.a - - -clean: do_clean -[ - cd $(LIBDIR_OS2) - $(FT_MAKE) -f $(FT_MAKEFILE) clean - cd $(MAKEDIR) -] - -distclean: do_clean do_distclean -[ - cd $(LIBDIR_OS2) - $(FT_MAKE) -f $(FT_MAKEFILE) distclean - cd $(MAKEDIR) -] - -do_distclean: - -+del dep.end $(EXEFILES) core - -do_clean: - -+del $(subst,/,\ $(ALLOBJ)) - -# depend: $(ALLSRC) -#[ -# cd $(LIBDIR_OS2) -# $(FT_MAKE) -f $(FT_MAKEFILE) depend -# cd $(MAKEDIR) -# $(CC) -E -M $(INCDIRS) @$(mktmp $(<:t"\n")\n) > dep.end -#] -# -# ifeq (dep.end,$(wildcard dep.end)) -# include dep.end -# endif - -# end of Makefile.dm diff --git a/Build/source/libs/freetype/freetype-1.5/test/arch/os2/Makefile.emx b/Build/source/libs/freetype/freetype-1.5/test/arch/os2/Makefile.emx deleted file mode 100644 index b7382f7d9a1..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/arch/os2/Makefile.emx +++ /dev/null @@ -1,119 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library and test programs for emx-gcc under OS/2. -# -# You will need GNU make. -# -# Use this file while in the 'test' directory with the following statements: -# -# make -f arch/os2/Makefile.emx depend -# make -f arch/os2/Makefile.emx -# -# -# Copyright 1996-2002 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. - -ARCH = arch/os2 -FT_MAKEFILE = $(ARCH)/Makefile.emx - -CC = gcc - -LIBDIR = ../lib -INCDIRS = -I$(LIBDIR) -I$(LIBDIR)/extend -I$(LIBDIR)/$(ARCH) -I. - -CFLAGS = -Wall -ansi -O0 -g $(INCDIRS) -# CFLAGS = -ansi -Wall -O2 -s -Zcrtdll $(INCDIRS) - -GFSDRIVER = $(ARCH)/gfs_os2.c -GPMDRIVER = $(ARCH)/gpm_os2.c -GPM_DEF = $(ARCH)/gpm_os2.def - -SRC = fttimer.c ftview.c ftlint.c ftzoom.c ftdump.c ftstring.c ftstrpnm.c \ - ftsbit.c common.c blitter.c ftmetric.c ftstrtto.c arabic.c textdisp.o - -GSRC = gmain.c display.c blitter.c -GFSSRC = $(GSRC) $(GFSDRIVER) -GPMSRC = $(GSRC) $(GPMDRIVER) -GFSOBJ = $(GFSSRC:.c=.o) -GPMOBJ = $(GPMSRC:.c=.o) - -ALLSRC = $(SRC) $(GSRC) $(GFSDRIVER) $(GPMDRIVER) -ALLOBJ = $(ALLSRC:.c=.o) - - -%.o: %.c - $(CC) $(CFLAGS) -c -o $@ $< - -%.exe: - $(CC) $(CFLAGS) -o $@ $^ - - -EXEFILES = ftview.exe ftviewfs.exe \ - fttimer.exe fttimefs.exe \ - ftlint.exe \ - ftstring.exe ftstrfs.exe \ - ftstrpnm.exe \ - ftzoom.exe ftzoomfs.exe \ - ftsbit.exe \ - ftdump.exe \ - ftmetric.exe \ - ftstrtto.exe ftstrtfs.exe - -.PHONY: all debug freetype freetype_debug \ - clean distclean do_clean depend - - -all: freetype $(EXEFILES) - -debug: freetype_debug $(EXEFILES) - -freetype: - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) all - -freetype_debug: - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) debug - -ftzoom.exe: $(GPMOBJ) ftzoom.o common.o $(LIBDIR)/libttf.a $(GPM_DEF) -ftzoomfs.exe: $(GFSOBJ) ftzoom.o common.o $(LIBDIR)/libttf.a -ftview.exe: $(GPMOBJ) ftview.o common.o $(LIBDIR)/libttf.a $(GPM_DEF) -ftviewfs.exe: $(GFSOBJ) ftview.o common.o $(LIBDIR)/libttf.a -ftlint.exe: ftlint.o common.o $(LIBDIR)/libttf.a -ftdump.exe: ftdump.o common.o $(LIBDIR)/libttf.a -ftstring.exe: $(GPMOBJ) ftstring.o common.o $(LIBDIR)/libttf.a $(GPM_DEF) -ftstrfs.exe: $(GFSOBJ) ftstring.o common.o $(LIBDIR)/libttf.a -ftstrpnm.exe: ftstrpnm.o common.o $(LIBDIR)/libttf.a -fttimer.exe: $(GPMOBJ) fttimer.o common.o $(LIBDIR)/libttf.a $(GPM_DEF) -fttimefs.exe: $(GFSOBJ) fttimer.o common.o $(LIBDIR)/libttf.a -ftsbit.exe: ftsbit.o common.o textdisp.o $(LIBDIR)/libttf.a -ftmetric.exe: ftmetric.o common.o textdisp.o $(LIBDIR)/libttf.a -ftstrtto.exe: $(GPMOBJ) ftstrtto.o common.o arabic.o \ - $(LIBDIR)/libttf.a $(GPM_DEF) -ftstrtfs.exe: $(GFSOBJ) ftstrtto.o common.o arabic.o $(LIBDIR)/libttf.a - - -clean: do_clean - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) clean - -distclean: do_clean - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) distclean - -del dep.end $(EXEFILES) core - -do_clean: - -del $(subst /,\,$(ALLOBJ)) - - -depend: $(ALLSRC) - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) depend - $(CC) -E -MM $(INCDIRS) $^ > dep.end - -ifeq (dep.end,$(wildcard dep.end)) - include dep.end -endif - -# end of Makefile.emx diff --git a/Build/source/libs/freetype/freetype-1.5/test/arch/os2/Makefile.icc b/Build/source/libs/freetype/freetype-1.5/test/arch/os2/Makefile.icc deleted file mode 100644 index 8e772b475ed..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/arch/os2/Makefile.icc +++ /dev/null @@ -1,157 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library and test programs for IBM VisualAge C++ under OS/2. -# -# You will need nmake. -# -# Use this file while in the 'test' directory with the following statement: -# -# nmake -f arch\os2\Makefile.icc -# -# -# Copyright 1996-2001 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. - -ARCH = arch\os2 -FT_MAKEFILE = $(ARCH)\Makefile.icc -FT_MAKE = $(MAKE) -nologo - -CC = icc - -LIBDIR = ..\lib -INCDIRS = -I$(LIBDIR) -I$(LIBDIR)\extend -I$(LIBDIR)\$(ARCH) -I. -CFLAGS = -O+ -Gd+ -Gn+ -Gl+ -Ti- -Tm- -Q+ -Wpro- -Wcnd- $(INCDIRS) - -# Fullscreen OS/2 driver -GFSDRIVER_SRC = $(ARCH)\gfs_os2.c -GFSDRIVER = $(ARCH)\gfs_os2.obj - -# PM OS/2 Driver -GPMDRIVER = $(ARCH)\gpm_os2.obj -GPMDRIVER_SRC = $(ARCH)\gpm_os2.c -GPM_DEF = $(ARCH)\gpm_os2.def - -SRC = gmain.c display.c common.c arabic.c textdisp.c \ - ftzoom.c ftview.c fttimer.c ftlint.c ftdump.c ftstring.c \ - ftstrpnm.c ftsbit.c ftmetric.c ftstrtto.c \ - $(GFSDRIVER_SRC) - -COMMON = common.obj -GFSOBJS = gmain.obj display.obj $(GFSDRIVER) $(COMMON) blitter.obj -GPMOBJS = gmain.obj display.obj $(GPMDRIVER) $(COMMON) blitter.obj -OBJ1 = ftzoom.obj -OBJ2 = fttimer.obj -OBJ3 = ftview.obj -OBJ4 = ftlint.obj -OBJ5 = ftdump.obj -OBJ6 = ftstring.obj -OBJ7 = ftstrpnm.obj -OBJ8 = ftsbit.obj -OBJ9 = ftmetric.obj -OBJ10 = ftstrtto.obj -OBJ11 = arabic.obj -OBJ12 = textdisp.obj - - -EXEFILES = fttimefs.exe fttimer.exe \ - ftzoom.exe ftzoomfs.exe \ - ftviewfs.exe ftview.exe \ - ftlint.exe \ - ftdump.exe \ - ftstring.exe ftstrfs.exe \ - ftstrpnm.exe \ - ftsbit.exe \ - ftmetric.exe \ - ftstrtto.exe ftstrtfs.exe - - -all: freetype $(EXEFILES) - -debug: freetype_debug $(EXEFILES) - - -freetype: - cd $(LIBDIR) - $(FT_MAKE) -f $(FT_MAKEFILE) all - cd ..\test - -freetype_debug: - cd $(LIBDIR) - $(FT_MAKE) -f $(FT_MAKEFILE) debug - cd ..\test - -$(GFSDRIVER): $(GFSDRIVER_SRC) - $(CC) $(CFLAGS) /c /Fo$@ $** -I. - -$(GPMDRIVER): $(GPMDRIVER_SRC) - $(CC) $(CFLAGS) /c /Fo$@ $** -I. - -ftzoomfs.exe: $(GFSOBJS) $(OBJ1) $(LIBDIR)\libttf.lib - $(CC) $(CFLAGS) /Fe$@ $** - -ftzoom.exe: $(GPMOBJS) $(OBJ1) $(LIBDIR)\libttf.lib - $(CC) $(CFLAGS) $(GPM_DEF) /Fe$@ $** - -fttimefs.exe: $(GFSOBJS) $(OBJ2) $(LIBDIR)\libttf.lib - $(CC) $(CFLAGS) /Fe$@ $** - -fttimer.exe: $(GPMOBJS) $(OBJ2) $(LIBDIR)\libttf.lib - $(CC) $(CFLAGS) $(GPM_DEF) /Fe$@ $** - -ftviewfs.exe: $(GFSOBJS) $(OBJ3) $(LIBDIR)\libttf.lib - $(CC) $(CFLAGS) /Fe$@ $** - -ftview.exe: $(GPMOBJS) $(OBJ3) $(LIBDIR)\libttf.lib - $(CC) $(CFLAGS) $(GPM_DEF) /Fe$@ $** - -ftlint.exe: $(OBJ4) $(LIBDIR)\libttf.lib $(COMMON) - $(CC) $(CFLAGS) /Fe$@ $** - -ftdump.exe: $(OBJ5) $(LIBDIR)\libttf.lib $(COMMON) - $(CC) $(CFLAGS) /Fe$@ $** - -ftstrfs.exe: $(GFSOBJS) $(OBJ6) $(LIBDIR)\libttf.lib - $(CC) $(CFLAGS) /Fe$@ $** - -ftstring.exe: $(GPMOBJS) $(OBJ6) $(LIBDIR)\libttf.lib - $(CC) $(CFLAGS) $(GPM_DEF) /Fe$@ $** - -ftstrpnm.exe: $(OBJ7) $(LIBDIR)\libttf.lib $(COMMON) - $(CC) $(CFLAGS) /Fe$@ $** - -ftsbit.exe: $(OBJ8) $(OBJ12) $(LIBDIR)\libttf.lib $(COMMON) - $(CC) $(CFLAGS) /Fe$@ $** - -ftmetric.exe: $(OBJ9) $(OBJ12) $(LIBDIR)\libttf.lib $(COMMON) - $(CC) $(CFLAGS) /Fe$@ $** - -ftstrtfs.exe: $(GFSOBJS) $(OBJ10) $(OBJ11) $(LIBDIR)\libttf.lib - $(CC) $(CFLAGS) /Fe$@ $** - -ftstrtto.exe: $(GPMOBJS) $(OBJ10) $(OBJ11) $(LIBDIR)\libttf.lib - $(CC) $(CFLAGS) $(GPM_DEF) /Fe$@ $** - - -clean: do_clean - cd $(LIBDIR) - $(FT_MAKE) -f $(FT_MAKEFILE) clean - cd ..\test - -distclean: do_clean - cd $(LIBDIR) - $(FT_MAKE) -f $(FT_MAKEFILE) distclean - cd ..\test - -del *.exe - -do_clean: - -del *.obj - -del $(GFSDRIVER) - -del $(GPMDRIVER) - -# end of Makefile.icc diff --git a/Build/source/libs/freetype/freetype-1.5/test/arch/os2/Makefile.wat b/Build/source/libs/freetype/freetype-1.5/test/arch/os2/Makefile.wat deleted file mode 100644 index 4b9fe07277c..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/arch/os2/Makefile.wat +++ /dev/null @@ -1,172 +0,0 @@ -# This file is part of the FreeType project -# -# This builds the test programs with the Watcom compiler -# -# You'll need Watcom's wmake -# -# Invoke by "wmake -f arch\os2\Makefile.wat" when in the "test" directory -# -# -# Copyright 1996-2001 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. -# -# This compiler did compile early versions of the FreeType package. -# While we tried our best to maintain the makefiles, the development team -# does not have currently access to a copy of this compiler, and we did not -# receive notices of successful builts since many years. So be prepared -# to have some problems; and if it works for you, or if you can upgrade the -# package in any way, please notify us! - -ARCH = arch\os2 -FT_MAKEFILE = $(ARCH)\Makefile.wat -FT_MAKE = wmake -h - -.EXTENSIONS: -.EXTENSIONS: .exe .obj .c .h -.obj:. -.c:. -.h:.;..\lib - -CC = wcl386 - -LIBDIR = ..\lib -INCDIRS = -I$(LIBDIR) -I$(LIBDIR)\$(ARCH) -I$(LIBDIR)\extend -LIBFILE = $(LIBDIR)\libttf.lib - -LINK_OPTS = - -OBJ_CFLAGS = /c /otexanl+ /s /w4 /zq $(INCDIRS) - -CCFLAGS = /otexanl+ /s /w4 /zq $(INCDIRS) - -GFSDRIVER = $(ARCH)\gfs_os2.obj -GFSDRIVER_SRC = $(ARCH)\gfs_os2.c - -GPMDRIVER = $(ARCH)\gpm_os2.obj -GPMDRIVER_SRC = $(ARCH)\gpm_os2.c -GPMDRIVER_DEF = $(ARCH)\gpm_os2.def - -SRC = gmain.c display.c blitter.c textdisp.c & - fttimer.c ftview.c ftlint.c ftzoom.c ftdump.c ftstring.c & - ftstrpnm.c ftsbit.c ftmetric.c ftstrtto.c & - $(GPMDRIVER_SRC) $(GFSDRIVER_SRC) - -GFSOBJ = gmain.obj $(GFSDRIVER) blitter.obj display.obj -GPMOBJ = gmain.obj $(GPMDRIVER) blitter.obj display.obj - -PM = $(LIBFILE) $(GPMOBJ) common.obj -FS = $(LIBFILE) $(GFSOBJ) common.obj - - -# graphics utility and test driver - -EXEFILES = ftview.exe ftviewfs.exe & - fttimer.exe fttimefs.exe & - ftlint.exe & - ftdump.exe & - ftstring.exe ftstrfs.exe & - ftzoom.exe ftzoomfs.exe & - ftstrpnm.exe & - ftsbit.exe & - ftmetric.exe & - ftstrtto.exe ftstrtfs.exe - - -all: freetype $(EXEFILES) - -debug: freetype_debug $(EXEFILES) - - -freetype: .symbolic - cd ..\lib - $(FT_MAKE) -f $(FT_MAKEFILE) all - cd ..\test - -freetype_debug: .symbolic - cd ..\lib - $(FT_MAKE) -f $(FT_MAKEFILE) debug - cd ..\test - -# implicit rules -# -.c.obj : - $(CC) $(OBJ_CFLAGS) $[* /fo=$[*.obj - - -# the full-screen graphics driver -# -$(GFSDRIVER): $(GFSDRIVER_SRC) - $(CC) $(OBJ_CFLAGS) $[*.c /fo=$[*.obj - -# the pm graphics driver -# -$(GPMDRIVER): $(GPMDRIVER_SRC) - $(CC) $(OBJ_CFLAGS) $[*.c /fo=$[*.obj - -ftzoom.exe : ftzoom.obj $(LIBFILE) $(PM) $(GPMDRIVER_DEF) - $(CC) $(CCFLAGS) -l=os2v2_pm $(PM) $[*.c /fe=$[*.exe - -ftzoomfs.exe : ftzoom.obj $(LIBFILE) $(FS) - $(CC) $(CCFLAGS) $(FS) $[@ /fe=ftzoomfs.exe - -ftview.exe : ftview.obj $(LIBFILE) $(PM) $(GPMDRIVER_DEF) - $(CC) $(CCFLAGS) -l=os2v2_pm $(PM) $[*.c /fe=$[*.exe - -ftviewfs.exe : ftview.obj $(LIBFILE) $(FS) - $(CC) $(CCFLAGS) $(FS) $[*.c /fe=ftviewfs.exe - -ftstring.exe : ftstring.obj $(LIBFILE) $(PM) $(GPMDRIVER_DEF) - $(CC) $(CCFLAGS) -l=os2v2_pm $(PM) $[*.c /fe=$[*.exe - -ftstrfs.exe : ftstring.obj $(LIBFILE) $(FS) - $(CC) $(CCFLAGS) $(FS) $[*.c /fe=ftstrfs.exe - -fttimer.exe: fttimer.obj $(LIBFILE) $(PM) $(GPMDRIVER_DEF) - $(CC) $(CCFLAGS) -l=os2v2_pm $(PM) $[*.c /fe=$[*.exe - -fttimefs.exe: fttimer.obj $(LIBFILE) $(FS) - $(CC) $(CCFLAGS) $(FS) $[*.c /fe=fttimefs.exe - -ftlint.exe: ftlint.obj $(LIBFILE) - $(CC) $(CCFLAGS) $(LIBFILE) common.obj $[*.c /fe=$[*.exe - -ftdump.exe: ftdump.obj $(LIBFILE) - $(CC) $(CCFLAGS) $(LIBFILE) common.obj $[*.c /fe=$[*.exe - -ftstrpnm.exe: ftstrpnm.obj $(LIBFILE) - $(CC) $(CCFLAGS) $(LIBFILE) common.obj $[*.c /fe=$[*.exe - -ftsbit.exe: ftsbit.obj textdisp.obj $(LIBFILE) - $(CC) $(CCFLAGS) $(LIBFILE) common.obj textdisp.obj $[*.c /fe=$[*.exe - -ftmetric.exe: ftmetric.obj textdisp.obj $(LIBFILE) - $(CC) $(CCFLAGS) $(LIBFILE) common.obj textdisp.obj $[*.c /fe=$[*.exe - -ftstrtto.exe : ftstrtto.obj arabic.obj $(LIBFILE) $(PM) $(GPMDRIVER_DEF) - $(CC) $(CCFLAGS) -l=os2v2_pm $(PM) $[*.c /fe=$[*.exe - -ftstrtfs.exe : ftstrtto.obj arabic.obj $(LIBFILE) $(FS) - $(CC) $(CCFLAGS) $(FS) $[*.c /fe=ftstrtfs.exe - - -clean: .symbolic - @-erase *.obj - @-erase $(ARCH)\*.obj - -distclean: .symbolic clean - @-erase *.exe - @-erase *.err - cd ..\lib - $(FT_MAKE) -f $(FT_MAKEFILE) distclean - cd ..\test - -new: .symbolic - @-wtouch *.c - -# end of Makefile.wat diff --git a/Build/source/libs/freetype/freetype-1.5/test/arch/os2/gfs_os2.c b/Build/source/libs/freetype/freetype-1.5/test/arch/os2/gfs_os2.c deleted file mode 100644 index 954cf1b06ae..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/arch/os2/gfs_os2.c +++ /dev/null @@ -1,219 +0,0 @@ -/******************************************************************* - * - * gfs_os2.c graphics utility fullscreen OS/2 driver. 1.0 - * - * This is the driver for fullscreen OS/2 display, used by the - * graphics utility of the FreeType test suite. - * - * Copyright 1996-2000 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - ******************************************************************/ - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#define INCL_SUB -#include <os2.h> - -#ifdef __EMX__ -#include <os2thunk.h> -#endif - -#if defined(__EMX__)||defined(__IBMC__) -#include <conio.h> /* for getch */ - extern _read_kbd(); /* to avoid an ANSI warning during compilation */ -#endif - -#include "gdriver.h" -#include "gevents.h" -#include "gmain.h" - - - typedef struct _Translator - { - char key; - GEvent event_class; - int event_info; - } Translator; - -#define NUM_Translators 20 - - static const Translator trans[NUM_Translators] = - { - { (char)27, event_Quit, 0 }, - { 'q', event_Quit, 0 }, - - { 'x', event_Rotate_Glyph, -1 }, - { 'c', event_Rotate_Glyph, 1 }, - { 'v', event_Rotate_Glyph, -16 }, - { 'b', event_Rotate_Glyph, 16 }, - - { '{', event_Change_Glyph, -10000 }, - { '}', event_Change_Glyph, 10000 }, - { '(', event_Change_Glyph, -1000 }, - { ')', event_Change_Glyph, 1000 }, - { '9', event_Change_Glyph, -100 }, - { '0', event_Change_Glyph, 100 }, - { 'i', event_Change_Glyph, -10 }, - { 'o', event_Change_Glyph, 10 }, - { 'k', event_Change_Glyph, -1 }, - { 'l', event_Change_Glyph, 1 }, - - { '+', event_Scale_Glyph, 10 }, - { '-', event_Scale_Glyph, -10 }, - { 'u', event_Scale_Glyph, 1 }, - { 'j', event_Scale_Glyph, -1 } - }; - - - static VIOMODEINFO OrgMode; - static long VioBufOfs; - - - /* BIOS video modes */ - - static VIOMODEINFO VioMode_640x480x16 = - { - sizeof ( VIOMODEINFO ), - VGMT_OTHER + VGMT_GRAPHICS, - COLORS_16, - 80, - 35, - 640, - 480 - }; - - static VIOMODEINFO VioMode_320x200x256 = - { - sizeof ( VIOMODEINFO ), - VGMT_OTHER + VGMT_GRAPHICS, - 8, - 40, - 25, - 320, - 200 - }; - - static VIOPHYSBUF VioBuf = - { - (void*)0xA0000L, - 64*1024 - }; - - - /* Restores screen to its original state */ - - int Driver_Restore_Mode() - { - VioSetMode( &OrgMode, 0 ); - return 1; - } - - - /* Sets graphics mode */ - - int Driver_Set_Graphics( int mode ) - { - int rc; - - - OrgMode.cb = sizeof ( VIOMODEINFO ); - VioGetMode( &OrgMode, 0 ); - - switch ( mode ) - { - case Graphics_Mode_Mono: - rc = VioSetMode( &VioMode_640x480x16, 0 ); - vio_ScanLineWidth = 80; - vio_Width = 640; - vio_Height = 480; - break; - - case Graphics_Mode_Gray: - rc = VioSetMode( &VioMode_320x200x256, 0 ); - vio_ScanLineWidth = 320; - vio_Width = 320; - vio_Height = 200; - - /* default gray_palette takes the gray levels of the standard VGA */ - /* 256 colors mode */ - - gray_palette[0] = 0; - gray_palette[1] = 23; - gray_palette[2] = 27; - gray_palette[3] = 29; - gray_palette[4] = 31; - break; - - default: - rc = -1; - break; - } - - if ( rc ) return 0; /* failure */ - - if ( VioGetPhysBuf( &VioBuf, 0 ) ) return 0; /* Could not access VRAM */ - - VioBufOfs = (long)MAKEP( VioBuf.asel[0], 0 ); - - memset( (void*)VioBufOfs, 0, 64 * 1024 ); - - Vio = (char*)VioBufOfs; - - return 1; /* success */ - } - - - int Driver_Display_Bitmap( char* buffer, int line, int col ) - { - int y; - char* target; - - target = Vio + ( line - 1 ) * vio_ScanLineWidth; - - for ( y = 0; y < line; y++ ) - { - memcpy( target, buffer, col ); - target -= vio_ScanLineWidth; - buffer += col; - } - - return 1; /* success */ - } - - - void Get_Event( TEvent* event ) - { - int i; - char c; - - - c = getch(); - - for ( i = 0; i < NUM_Translators; i++ ) - { - if ( c == trans[i].key ) - { - event->what = trans[i].event_class; - event->info = trans[i].event_info; - return; - } - } - - /* unrecognized keystroke */ - - event->what = event_Keyboard; - event->info = (int)c; - return; - } - - -/* End */ diff --git a/Build/source/libs/freetype/freetype-1.5/test/arch/os2/gpm_os2.c b/Build/source/libs/freetype/freetype-1.5/test/arch/os2/gpm_os2.c deleted file mode 100644 index 22ed397363f..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/arch/os2/gpm_os2.c +++ /dev/null @@ -1,654 +0,0 @@ -/******************************************************************* - * - * gpm_os2.c graphics OS/2 Presentation Manager Window driver. 0.2 - * - * This is the driver for windowed OS/2 display, used by the - * graphics utility of the FreeType test suite. - * - * written by Eric Olson (eolson@imag.net) - * - * Borrowing liberally from the other FreeType drivers. - * Some bitmap manipulations are derived from fastgpi.c, - * a sample program written by Donald Graft (dgraft@gate.net). - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - ******************************************************************/ - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#define INCL_DOS -#define INCL_WIN -#define INCL_GPI -#define INCL_SUB - -#include <os2.h> - -#include "gdriver.h" -#include "gevents.h" -#include "gmain.h" - - -#define VIO_WIDTH 640u /* these can be changed but VIO_WIDTH should remain */ -#define VIO_HEIGHT 360u /* for now a multiple of 32 to avoid padding issues */ -#define MAG_WIDTH VIO_WIDTH -#define MAG_HEIGHT 120u -#define MAX_MAG 16 /* should be less than Min(MAG_WIDTH, MAG_HEIGHT) */ - - - typedef struct _Translator - { - char key; - GEvent event_class; - int event_info; - } Translator; - -#define NUM_Translators 20 - - static const Translator trans[NUM_Translators] = - { - { (char)27, event_Quit, 0 }, - { 'q', event_Quit, 0 }, - - { 'x', event_Rotate_Glyph, -1 }, - { 'c', event_Rotate_Glyph, 1 }, - { 'v', event_Rotate_Glyph, -16 }, - { 'b', event_Rotate_Glyph, 16 }, - - { '{', event_Change_Glyph, -10000 }, - { '}', event_Change_Glyph, 10000 }, - { '(', event_Change_Glyph, -1000 }, - { ')', event_Change_Glyph, 1000 }, - { '9', event_Change_Glyph, -100 }, - { '0', event_Change_Glyph, 100 }, - { 'i', event_Change_Glyph, -10 }, - { 'o', event_Change_Glyph, 10 }, - { 'k', event_Change_Glyph, -1 }, - { 'l', event_Change_Glyph, 1 }, - - { '+', event_Scale_Glyph, 10 }, - { '-', event_Scale_Glyph, -10 }, - { 'u', event_Scale_Glyph, 1 }, - { 'j', event_Scale_Glyph, -1 } - }; - - - static HAB habt; - static HAB hab; - static HWND hwndFrame, hwndClient; - static HWND hwndTitle; - static HDC hdcMemory; - static HPS hpsMemory = (HPS) NULL; - - /* Threads and semaphores */ - TID MessageThread; - HMTX hmtxPSMemoryLock; - HEV hevKeyLock; - - /* Bitmap information */ - static PBITMAPINFO2 pbmi; - static HBITMAP hbm; - BYTE Bitmap[VIO_WIDTH * VIO_HEIGHT]; - BOOL ready = FALSE; - - /* Coordinates for the bitblt of whole graphic area */ - POINTL aptlFull[4] = {{ 0u, MAG_HEIGHT }, - { VIO_WIDTH, VIO_HEIGHT + MAG_HEIGHT }, - { 0u, 0u }, - { VIO_WIDTH, VIO_HEIGHT }}; - - /* Coordinates for the magnification bitblt */ - POINTL aptlMagd[4] = {{ 0u, 0u }, - { MAG_WIDTH, MAG_HEIGHT }, /* target */ - { 0u, 0u }, - { VIO_WIDTH, VIO_HEIGHT }}; /* source */ - - /* level of magnification and center of magnification window */ - static int magnification=1; - static POINTL view_target = {0, 0}; - static SIZEL mag_win_size; - - /* local event to pass on */ - TEvent ourevent = { event_Rotate_Glyph, 0 }; - - /* grayscale vs b/w mode */ - int Colourmode; - - /* array defined in the test programs */ - extern char Header[]; - - - void RunPMWindow( ULONG ); - MRESULT EXPENTRY Message_Process( HWND, ULONG, MPARAM, MPARAM ); - - - - /* restores screen to its original state */ - - int Driver_Restore_Mode() - { - /* PMWindow has probably already destroyed itself */ - if ( hwndFrame ) - WinDestroyWindow( hwndFrame ); - - WinReleasePS( hpsMemory ); - WinTerminate( habt ); - - return 1; - } - - - /* set graphics mode */ - - int Driver_Set_Graphics( int mode ) - { - LONG palette[5]; - int x; - POINTL coords; - SIZEL sizl = { 0, 0 }; - - PTIB thread_block; - PPIB process_block; - - /* XXX : This is a very nasty hack, it fools OS/2 and let the program */ - /* call PM functions, even though stdin/stdout/stderr are still */ - /* directed to the standard i/o streams.. */ - /* The program must be compiled with WINDOWCOMPAT */ - /* */ - /* Credits go to Michal for finding this !! */ - /* */ - DosGetInfoBlocks( &thread_block, &process_block ); - process_block->pib_ultype = 3; - - /* save mono vs grayscale status */ - Colourmode = mode; - - /* event semaphore to signal reraster event */ - DosCreateEventSem( NULL, &hevKeyLock, 0, TRUE ); - - /* mutex semaphore for access to the presentation space */ - DosCreateMutexSem( NULL, &hmtxPSMemoryLock, 0, FALSE ); - - /* Start thread with Presentation Manager window */ - DosCreateThread( &MessageThread, (PFNTHREAD)RunPMWindow, 0UL, 0UL, 32920 ); - - /* open anchor block to permit Gpi calls from this thread */ - habt = WinInitialize( 0 ); - - /* create device context and presentation space for our graphic */ - hdcMemory = DevOpenDC( hab, OD_MEMORY, (PSZ)"*", 0L, 0L, 0L ); - - DosRequestMutexSem( hmtxPSMemoryLock, SEM_INDEFINITE_WAIT ); - hpsMemory = GpiCreatePS( - habt, hdcMemory, &sizl, - PU_PELS | GPIT_MICRO | GPIA_ASSOC | GPIF_DEFAULT ); - GpiSetBackMix( hpsMemory, BM_OVERPAINT ); - - /* create bitmap for raster image of graphic */ - - /* find some memory for the bitmap header */ - DosAllocMem( (PPVOID)&pbmi, - sizeof ( BITMAPINFO2 ) + sizeof ( RGB2 ) * 256, - PAG_COMMIT | PAG_READ | PAG_WRITE); - /* 256 should really be 2 if not grayscale */ - - /* initialize the header to appropriate values */ - memset( pbmi, 0, sizeof ( BITMAPINFO2 ) + sizeof ( RGB2 ) * 256 ); - - pbmi->cbFix = sizeof ( BITMAPINFOHEADER2 ); - pbmi->cx = VIO_WIDTH; - pbmi->cy = VIO_HEIGHT; - pbmi->cPlanes = 1; - - switch ( mode ) - { - case Graphics_Mode_Mono: - pbmi->cBitCount = 1; - break; - - case Graphics_Mode_Gray: - pbmi->cBitCount = 8; - break; - } - - hbm = GpiCreateBitmap( hpsMemory, (PBITMAPINFOHEADER2)pbmi, - 0L, NULL, NULL ); - - /* associate it with the presentation space */ - GpiSetBitmap( hpsMemory, hbm ); - pbmi->cbFix = sizeof ( BITMAPINFOHEADER2 ); - GpiQueryBitmapInfoHeader( hbm, (PBITMAPINFOHEADER2) pbmi ); - - switch ( mode ) - { - case Graphics_Mode_Mono: - DosReleaseMutexSem( hmtxPSMemoryLock ); - - vio_ScanLineWidth = VIO_WIDTH / 8; - vio_Width = VIO_WIDTH; - vio_Height = VIO_HEIGHT; - - gray_palette[0] = 0; /* to avoid testing for grayscale... */ - break; - - case Graphics_Mode_Gray: - vio_ScanLineWidth = VIO_WIDTH; - vio_Width = VIO_WIDTH; - vio_Height = VIO_HEIGHT; - - /* set gray_palette by convoluted procedure */ - - /* create logical color palette */ - palette[0] = 0xffffffL; /* White */ - palette[1] = 0xbbbbbbL; - palette[2] = 0x777777L; /* Gray */ - palette[3] = 0x333333L; - palette[4] = 0L; /* Black */ - - GpiCreateLogColorTable( hpsMemory, (ULONG)LCOL_PURECOLOR, - (LONG)LCOLF_CONSECRGB, (LONG)0L, - (LONG)5L, (PLONG)palette ); - - /* plot to presentation space in all five gray shades */ - for (x = 0 ; x < 5 ; x++) - { - GpiSetColor( hpsMemory, (LONG)x ); - coords.x = x; - coords.y = 0; - GpiSetPel( hpsMemory, &coords ); - } - - /* retrieve the 5 pixels as gray_palette */ - GpiQueryBitmapInfoHeader( hbm, (PBITMAPINFOHEADER2) pbmi ); - GpiQueryBitmapBits( hpsMemory, 0L, (LONG)VIO_HEIGHT - 2, - &Bitmap[0], pbmi ); - for ( x = 0; x < 5; x++ ) - { - gray_palette[x] = Bitmap[x]; - } - - /* initialization in case we paint before Driver_Display is called */ - memset( &Bitmap[0], gray_palette[0], vio_Height * vio_ScanLineWidth ); - DosReleaseMutexSem( hmtxPSMemoryLock ); - break; - - default: - return 0; /* Unknown mode */ - } - - return 1; /* success even if windows were not setup right */ - } - - - int Driver_Display_Bitmap( char* buffer, int lines, int cols ) - { - int y, target; - - - /* copy the bitmap and blt to presentation space */ - if ( (lines == vio_Height) & (cols == vio_ScanLineWidth) ) - memcpy( &Bitmap[0], buffer, lines * cols ); - else - { - memset( &Bitmap[0], gray_palette[0], vio_Height * vio_ScanLineWidth ); - /* temporary hack to center any bitmap */ - target = ( vio_Height - lines ) / 2 * vio_ScanLineWidth + - ( vio_ScanLineWidth - cols ) / 2; - - for ( y = 0 ; y < lines ; y++ ) - { - memcpy( &Bitmap[target], buffer, cols ); - target += vio_ScanLineWidth; - buffer += cols; - } - } - - /* Get permission and write to in-memory ps */ - DosRequestMutexSem( hmtxPSMemoryLock, SEM_INDEFINITE_WAIT ); - GpiSetBitmapBits( hpsMemory, 0L, (LONG)VIO_HEIGHT - 2, &Bitmap[0], pbmi ); - DosReleaseMutexSem( hmtxPSMemoryLock ); - ready = TRUE; - - /* Invalidate and ask for redraw now */ - WinInvalidateRect( hwndClient, NULL, FALSE ); - WinUpdateWindow( hwndFrame ); - - return 1; /* success */ - } - - - void Get_Event( TEvent* event ) - { - ULONG ulRequestCount; - - - /* the Get_Event function blocks until there is an event to process */ - DosWaitEventSem( hevKeyLock, SEM_INDEFINITE_WAIT ); - DosQueryEventSem( hevKeyLock, &ulRequestCount ); - DosResetEventSem( hevKeyLock, &ulRequestCount ); - event->what = ourevent.what; - event->info = ourevent.info; - return; - } - - - void RunPMWindow( ULONG dummy ) - { - unsigned char classname[] = "DisplayClass"; - ULONG flClassFlags; - static HMQ hmq; - QMSG qmsg; - - - if ( (hab = WinInitialize( 0 )) == 0 ) - { - printf( "Error doing WinInitialize()\n" ); - return; - } - - if ( (hmq = WinCreateMsgQueue( hab, 0 )) == (HMQ)NULL ) - { - printf( "Error doing WinCreateMsgQueue()\n" ); - return; - } - - if ( !WinRegisterClass( hab, (PSZ)classname, (PFNWP)Message_Process, - CS_SIZEREDRAW, 0 ) ) - { - printf( "Error doing WinRegisterClass()\n" ); - return; - } - - flClassFlags = FCF_TITLEBAR | FCF_MINBUTTON | FCF_DLGBORDER | - FCF_TASKLIST | FCF_SYSMENU; - if ( (hwndFrame = WinCreateStdWindow( HWND_DESKTOP, - WS_VISIBLE, - &flClassFlags, - (PSZ)classname, - (PSZ)"FreeType PM Graphics", - WS_VISIBLE, - 0, 0, &hwndClient )) == 0 ) - { - printf( "Error doing WinCreateStdWindow()\n" ); - return; - } - - /* find the title window handle */ - hwndTitle = WinWindowFromID( hwndFrame, FID_TITLEBAR ); - - /* set Window size and position */ - WinSetWindowPos( - hwndFrame, 0L, - (SHORT)60, - (SHORT)WinQuerySysValue( HWND_DESKTOP, SV_CYSCREEN ) - - ( VIO_HEIGHT + MAG_HEIGHT + 100 ), - (SHORT)WinQuerySysValue( HWND_DESKTOP, SV_CYDLGFRAME ) * 2 + - VIO_WIDTH, - (SHORT)WinQuerySysValue( HWND_DESKTOP, SV_CYTITLEBAR ) + - WinQuerySysValue( HWND_DESKTOP, SV_CYDLGFRAME ) * 2 + - VIO_HEIGHT + MAG_HEIGHT, - SWP_SIZE | SWP_MOVE ) ; - - /* run the message queue till the end */ - while ( WinGetMsg( hab, &qmsg, (HWND)NULL, 0, 0 ) ) - WinDispatchMsg( hab, &qmsg ); - - /* clean-up */ - WinDestroyWindow( hwndFrame ); - hwndFrame = (HWND)NULL; - WinDestroyMsgQueue( hmq ); - WinTerminate( hab ); - - /* await death... */ - while ( 1 ) - DosSleep( 100 ); - } - - - void Adjust_Mag_Rectangle( void ) - { - SIZEL source, - target; - - - /* Step 1, find optimal source size for this mag and window size */ - source.cx = mag_win_size.cx / magnification; - if (source.cx > vio_Width) source.cx = vio_Width; - source.cy = mag_win_size.cy / magnification; - if (source.cy > vio_Height) source.cy = vio_Height; - - target.cx = source.cx * magnification; - target.cy = source.cy * magnification; - - aptlMagd[0].x = (mag_win_size.cx - target.cx) / 2; - aptlMagd[0].y = (mag_win_size.cy - target.cy) / 2; - aptlMagd[1].x = aptlMagd[0].x + target.cx - 1; - aptlMagd[1].y = aptlMagd[0].x + target.cy - 1; - - /* Step 2, try crosshairs point dependent coordinates */ - aptlMagd[2].x = view_target.x - source.cx / 2; - aptlMagd[2].y = view_target.y - source.cy / 2; - if (aptlMagd[2].x < 0 ) aptlMagd[2].x = 0; - if (aptlMagd[2].y < 0 ) aptlMagd[2].y = 0; - if (aptlMagd[2].x > vio_Width - source.cx) - aptlMagd[2].x = vio_Width - source.cx; - if (aptlMagd[2].y > vio_Height - source.cy) - aptlMagd[2].y = vio_Height - source.cy; - - aptlMagd[3].x = aptlMagd[2].x + source.cx - 1; - aptlMagd[3].y = aptlMagd[2].y + source.cy - 1; - - } /* End of Adjust_Mag_Rectangle; */ - - - /* Message processing for our PM Window class */ - MRESULT EXPENTRY Message_Process( HWND handle, ULONG mess, - MPARAM parm1, MPARAM parm2 ) - { - static HDC hdc; - static HPS hps; - static BOOL minimized; - - POINTL top_corner, bottom_corner; - SWP swp; - int i; - - - switch( mess ) - { - case WM_DESTROY: - /* warn the main thread to quit if it didn't know */ - ourevent.what = event_Quit; - ourevent.info = 0; - DosPostEventSem( hevKeyLock ); - break; - - case WM_CREATE: - /* set original magnification */ - magnification = 4; - minimized = FALSE; - - /* create Device Context and Presentation Space for screen. */ - /* could we use a cached one ? */ - hdc = WinOpenWindowDC( handle ); - mag_win_size.cx = 0; - mag_win_size.cy = 0; - hps = GpiCreatePS( hab, hdc, &mag_win_size, - PU_PELS | GPIT_MICRO | GPIA_ASSOC | GPIF_DEFAULT ); - - /* Set to size of magnifier window */ - mag_win_size.cx = MAG_WIDTH; - mag_win_size.cy = MAG_HEIGHT; - Adjust_Mag_Rectangle(); - - /* take the input focus */ - WinFocusChange( HWND_DESKTOP, handle, 0L ); - break; - - case WM_BUTTON1DOWN: - if ( MOUSEMSG( &mess )->y >= MAG_HEIGHT ) - { - view_target.x = MOUSEMSG( &mess )->x; - view_target.y = MOUSEMSG( &mess )->y - MAG_HEIGHT; - Adjust_Mag_Rectangle(); - WinInvalidateRect( hwndClient, NULL, FALSE ); - } - - return WinDefWindowProc( handle, mess, parm1, parm2 ); - break; - - case WM_MINMAXFRAME: - /* to update minimized if changed */ - swp = *((PSWP) parm1); - if ( swp.fl & SWP_MINIMIZE ) - minimized = TRUE; - if ( swp.fl & SWP_RESTORE ) - minimized = FALSE; - return WinDefWindowProc( handle, mess, parm1, parm2 ); - break; - - case WM_ERASEBACKGROUND: - case WM_PAINT: - /* reset the window title only if not minimized */ - if ( !minimized ) - WinSetWindowText( hwndTitle, Header ); - - /* copy the memory image of the screen out to the real screen */ - DosRequestMutexSem( hmtxPSMemoryLock, SEM_INDEFINITE_WAIT ); - WinBeginPaint( handle, hps, NULL ); - - /* main image and magnified picture */ - GpiBitBlt( hps, hpsMemory, 4L, aptlFull, ROP_SRCCOPY, BBO_AND ); - GpiBitBlt( hps, hpsMemory, 4L, aptlMagd, ROP_SRCCOPY, BBO_AND ); - - /* double-dash the magnifing bounding box. Paint the mag liner? */ - if ( magnification != 1 ) - { - GpiSetLineType( hps, LINETYPE_LONGDASH ); - - bottom_corner.x = aptlMagd[2].x - 1; - bottom_corner.y = aptlMagd[2].y + MAG_HEIGHT - 1; - top_corner.x = aptlMagd[3].x ; - top_corner.y = aptlMagd[3].y + MAG_HEIGHT; - - GpiMove( hps, &bottom_corner ); - GpiBox( hps, DRO_OUTLINE, &top_corner, 0L, 0L ); - -#if 0 - GpiSetClipRegion(); - GpiErase(); -#endif - } - - WinEndPaint( hps ); - DosReleaseMutexSem( hmtxPSMemoryLock ); - break; - - case WM_CHAR: - if ( CHARMSG( &mess )->fs & KC_KEYUP ) - break; - - switch ( CHARMSG( &mess )->vkey ) - { - case VK_ESC: - ourevent.what = event_Quit; - ourevent.info = 0; - DosPostEventSem( hevKeyLock ); - break; - - case VK_PAGEDOWN: - if ( magnification < MAX_MAG ) - { - magnification += 1; - Adjust_Mag_Rectangle(); - WinInvalidateRect( handle, NULL, FALSE ); - } - break; - - case VK_PAGEUP: - if ( magnification > 1 ) - { - magnification -= 1; - Adjust_Mag_Rectangle(); - WinInvalidateRect( handle, NULL, FALSE ); - } - break; - - case VK_LEFT: - if ( view_target.x > 0 ) - { - view_target.x -= 1; - Adjust_Mag_Rectangle(); - WinInvalidateRect( handle, NULL, FALSE ); - } - break; - - case VK_RIGHT: - if ( view_target.x < VIO_WIDTH - 1 ) - { - view_target.x += 1; - Adjust_Mag_Rectangle(); - WinInvalidateRect( handle, NULL, FALSE ); - } - break; - - case VK_DOWN: - if ( view_target.y > 0 ) - { - view_target.y -= 1; - Adjust_Mag_Rectangle(); - WinInvalidateRect( handle, NULL, FALSE ); - } - break; - - case VK_UP: - if ( view_target.y < VIO_HEIGHT - 1 ) - { - view_target.y += 1; - Adjust_Mag_Rectangle(); - WinInvalidateRect( handle, NULL, FALSE ); - } - break; - - case VK_F1: /* bring up help and about dialog window */ - break; - } - - if ( CHARMSG( &mess )->fs & KC_CHAR ) - { - char c = (CHAR)CHARMSG( &mess )->chr ; - - - for ( i = 0; i < NUM_Translators; i++ ) - { - if ( c == trans[i].key ) - { - ourevent.what = trans[i].event_class; - ourevent.info = trans[i].event_info; - DosPostEventSem( hevKeyLock ); - return (MRESULT)TRUE; - } - } - - /* unrecognized keystroke */ - ourevent.what = event_Keyboard; - ourevent.info = (int)c; - DosPostEventSem( hevKeyLock ); - } - break; - - default: - return WinDefWindowProc( handle, mess, parm1, parm2 ); - } - - return (MRESULT) FALSE; - } - - -/* End */ diff --git a/Build/source/libs/freetype/freetype-1.5/test/arch/os2/gpm_os2.def b/Build/source/libs/freetype/freetype-1.5/test/arch/os2/gpm_os2.def deleted file mode 100644 index 4a77c632c03..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/arch/os2/gpm_os2.def +++ /dev/null @@ -1,5 +0,0 @@ -NAME WINDOWCOMPAT - -DESCRIPTION 'FreeType Graphics' -HEAPSIZE 8192 -STACKSIZE 40888 diff --git a/Build/source/libs/freetype/freetype-1.5/test/arch/unix/.cvsignore b/Build/source/libs/freetype/freetype-1.5/test/arch/unix/.cvsignore deleted file mode 100644 index f3c7a7c5da6..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/arch/unix/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -Makefile diff --git a/Build/source/libs/freetype/freetype-1.5/test/arch/unix/.cvsignore.delete b/Build/source/libs/freetype/freetype-1.5/test/arch/unix/.cvsignore.delete deleted file mode 100644 index e69de29bb2d..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/arch/unix/.cvsignore.delete +++ /dev/null diff --git a/Build/source/libs/freetype/freetype-1.5/test/arch/unix/Makefile.in b/Build/source/libs/freetype/freetype-1.5/test/arch/unix/Makefile.in deleted file mode 100644 index 887ee57f2e8..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/arch/unix/Makefile.in +++ /dev/null @@ -1,184 +0,0 @@ -# This file is part of the FreeType project. -# -# test/arch/unix/Makefile.in -# -# -# Copyright 1996-2001 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. - -ARCH = arch/unix - -top_builddir=.. - -VPATH = @srcdir@/../.. -srcdir = @srcdir@/../.. - -RM = @RM@ -RMF = @RM@ -f -RMDIR = @RMDIR@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ - -CC = @CC@ -CPP = @CPP@ - -LIBTOOL = $(top_builddir)/libtool -MKINSTALLDIRS = $(srcdir)/../mkinstalldirs - -include $(top_builddir)/MakeSub - -FT_LIBDIR = $(srcdir)/../lib -INCDIRS = -I. -I$(srcdir) -I$(top_builddir) \ - -I$(FT_LIBDIR) -I$(FT_LIBDIR)/extend - -CFLAGS = @CFLAGS@ @X_CFLAGS@ @XX_CFLAGS@ -CPPFLAGS = @CPPFLAGS@ -FT_CFLAGS = $(INCDIRS) $(CFLAGS) $(CPPFLAGS) -DX11 -DLOCALEDIR='"@LOCALEDIR@"' - -FT_LIBS = @X_LIBS@ @X_PRE_LIBS@ @X_EXTRA_LIBS@ @LIBS@ - -SRC = $(srcdir)/arabic.c \ - $(srcdir)/common.c \ - $(srcdir)/textdisp.c \ - $(srcdir)/ftdump.c \ - $(srcdir)/fterror.c \ - $(srcdir)/ftlint.c \ - $(srcdir)/ftmetric.c \ - $(srcdir)/ftsbit.c \ - $(srcdir)/ftstring.c \ - $(srcdir)/ftstrpnm.c \ - $(srcdir)/fttimer.c \ - $(srcdir)/ftview.c \ - $(srcdir)/ftzoom.c \ - $(srcdir)/ftstrtto.c \ - $(srcdir)/gmain.c \ - $(srcdir)/$(ARCH)/gwin_x11.c - -DISPOBJS = common.o gmain.o display.o gwin_x11.o blitter.o - -PROGRAMS = ftdump fterror ftlint ftmetric ftsbit ftstrpnm -X_PROGRAMS = ftstring ftstrtto fttimer ftview ftzoom - -ALL_PROGRAMS = $(PROGRAMS) @X_PROGRAMS@ - -# set this variable to nil if you don't need to use Electric-Fence -EFENCE = -#EFENCE = -lefence - - -# variables used to compile either with libtool or not -# -PROCESS = $(LIBTOOL) --mode=link $(CC) $(FT_CFLAGS) -#PROCESS = $(CC) $(FT_CFLAGS) - -LIBTTF = $(top_builddir)/lib/libttf.la -#LIBTTF =$(top_builddir)/lib/libttf.a - -.c.o: - $(CC) -c $(FT_CFLAGS) $< - - -all: $(ALL_PROGRAMS) - - -gwin_x11.o: $(srcdir)/$(ARCH)/gwin_x11.c - $(CC) -c $(FT_CFLAGS) $(srcdir)/$(ARCH)/gwin_x11.c - -ftzoom: ftzoom.o $(DISPOBJS) $(LIBTTF) - $(PROCESS) -o ftzoom ftzoom.o $(DISPOBJS) \ - $(EFENCE) $(LIBTTF) $(FT_LIBS) -lX11 - -fttimer: fttimer.o $(DISPOBJS) $(LIBTTF) - $(PROCESS) -o fttimer fttimer.o $(DISPOBJS) \ - $(EFENCE) $(LIBTTF) $(FT_LIBS) -lX11 - -ftview: ftview.o $(DISPOBJS) $(LIBTTF) - $(PROCESS) -o ftview ftview.o $(DISPOBJS) \ - $(EFENCE) $(LIBTTF) $(FT_LIBS) -lX11 - -ftlint: ftlint.o common.o $(LIBTTF) - $(PROCESS) -o ftlint ftlint.o common.o \ - $(EFENCE) $(LIBTTF) $(FT_LIBS) - -ftdump: ftdump.o common.o $(LIBTTF) - $(PROCESS) -o ftdump ftdump.o common.o \ - $(EFENCE) $(LIBTTF) $(FT_LIBS) - -ftmetric: ftmetric.o common.o textdisp.o $(LIBTTF) - $(PROCESS) -o ftmetric ftmetric.o common.o textdisp.o \ - $(EFENCE) $(LIBTTF) $(FT_LIBS) - -ftsbit: ftsbit.o common.o textdisp.o $(LIBTTF) - $(PROCESS) -o ftsbit ftsbit.o common.o textdisp.o \ - $(EFENCE) $(LIBTTF) - -ftstring: ftstring.o $(DISPOBJS) $(LIBTTF) - $(PROCESS) -o ftstring ftstring.o $(DISPOBJS) \ - $(EFENCE) $(LIBTTF) $(FT_LIBS) -lX11 - -ftstrpnm: ftstrpnm.o common.o $(LIBTTF) - $(PROCESS) -o ftstrpnm ftstrpnm.o common.o \ - $(EFENCE) $(LIBTTF) - -fterror: fterror.o common.o $(LIBTTF) - $(PROCESS) -o fterror fterror.o common.o \ - $(EFENCE) $(LIBTTF) $(FT_LIBS) - -ftstrtto: ftstrtto.o $(DISPOBJS) arabic.o $(LIBTTF) - $(PROCESS) -o ftstrtto ftstrtto.o $(DISPOBJS) arabic.o \ - $(EFENCE) $(LIBTTF) $(FT_LIBS) -lX11 - - -install: $(ALL_PROGRAMS) - $(MKINSTALLDIRS) $(bindir) - for P in $(ALL_PROGRAMS) ; do \ - $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$P $(bindir)/$$P ; \ - done - -uninstall: - -for P in $(ALL_PROGRAMS) ; do \ - $(LIBTOOL) --mode=uninstall $(RM) $(bindir)/$$P ; \ - done - -clean: do_clean - -distclean: do_clean - -$(RMF) $(ALL_PROGRAMS) - -$(RMF) *~ *.orig core *.core - -$(RMF) config.cache config.log config.status - -$(RMF) $(ARCH)/Makefile - -$(RMF) .libs/* - -$(RMDIR) .libs - -do_clean: - -$(RMF) *.o - -depend: - (echo '/^#.* PUT NO STUFF BELOW/,$$d' ; echo w ; echo q) | \ - ed - $(ARCH)/Makefile - echo '# Dependencies generated by make depend: PUT NO STUFF BELOW' \ - >> $(ARCH)/Makefile - for file in $(SRC) ; do \ - $(CPP) $(CPPFLAGS) $(INCDIRS) $$file | \ - sed -n -e 's|^# [1-9][0-9]* "\([^/].*\.h\)".*|\1|p' \ - -e 's|^# [1-9][0-9]* "\($(srcdir)/.*\.h\)".*|\1|p' | \ - sed -e 's|/\./|.|g' -e "s/^/`basename $$file .c`.o: /" ; \ - done | \ - sort -u | \ - awk '{ if (LINE == 1) \ - { line = last = $$1 } \ - else if ($$1 != last) \ - { print line ; line = last = $$1 } \ - line = line " " $$2 } \ - END { print line }' >> $(ARCH)/Makefile - -.PHONY: all install uninstall clean distclean do_clean depend - -# Dependencies generated by make depend: PUT NO STUFF BELOW diff --git a/Build/source/libs/freetype/freetype-1.5/test/arch/unix/gwin_x11.c b/Build/source/libs/freetype/freetype-1.5/test/arch/unix/gwin_x11.c deleted file mode 100644 index 965c1f60784..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/arch/unix/gwin_x11.c +++ /dev/null @@ -1,451 +0,0 @@ -/******************************************************************* - * - * gwin_x11.c graphics utility X-Window driver. 1.0 - * - * This is the driver for windowed display under X11, used by the - * graphics utility of the FreeType test suite. - * - * Copyright 1996-2000 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - ******************************************************************/ - -#include <stdio.h> -#include <string.h> -#include <stdlib.h> -#include <X11/Xlib.h> -#include <X11/Xutil.h> -#include <X11/cursorfont.h> - -#include "common.h" /* for Panic() */ -#include "freetype.h" - -#include "gdriver.h" -#include "gevents.h" -#include "gmain.h" - - - /* Translator added to ease changes to control keys */ - - typedef struct _Translator - { - char key; - GEvent event_class; - int event_info; - } Translator; - -#define NUM_Translators 20 - - static const Translator trans[NUM_Translators] = - { - { (char)27, event_Quit, 0 }, - { 'q', event_Quit, 0 }, - - { 'x', event_Rotate_Glyph, -1 }, - { 'c', event_Rotate_Glyph, 1 }, - { 'v', event_Rotate_Glyph, -16 }, - { 'b', event_Rotate_Glyph, 16 }, - - { '{', event_Change_Glyph, -10000 }, - { '}', event_Change_Glyph, 10000 }, - { '(', event_Change_Glyph, -1000 }, - { ')', event_Change_Glyph, 1000 }, - { '9', event_Change_Glyph, -100 }, - { '0', event_Change_Glyph, 100 }, - { 'i', event_Change_Glyph, -10 }, - { 'o', event_Change_Glyph, 10 }, - { 'k', event_Change_Glyph, -1 }, - { 'l', event_Change_Glyph, 1 }, - - { '+', event_Scale_Glyph, 10 }, - { '-', event_Scale_Glyph, -10 }, - { 'u', event_Scale_Glyph, 1 }, - { 'j', event_Scale_Glyph, -1 } - }; - - /* End of translators addition. See Get_Event() below */ - - extern char Header[]; /* defined in the test programs */ - - static Window win; - static GC gcblack; - static XColor color[5]; - - Display* display; - static char* displayname = ""; - - static XImage* image; - - static Visual* visual; - static Colormap colormap; - static int depth; - static Bool gray; - - static Cursor idle; - static Cursor busy; - - static int win_origin_x, win_origin_y, - win_width, win_height; - static int image_width, image_height; - - long vioBufOfs; - - - - /* restore acreen to its original state */ - - int Driver_Restore_Mode( void ) - { - XUnmapWindow( display, win ); - XCloseDisplay( display ); - - return 1; /* success */ - } - - - /* set graphics mode */ - - void x11init( void ) - { - int screen_num, i; - XTextProperty xtp; - XSizeHints xsh; - XSetWindowAttributes xswa; - -#if 1 - unsigned short colors[5] = { 0, 16, 32, 48, 63 }; /* gamma = 1.0 */ -#else - unsigned short colors[5] = { 0, 34, 46, 55, 63 }; /* gamma = 2.2 */ -#endif - - - XrmInitialize(); - - if( !( display = XOpenDisplay( displayname ) ) ) - Panic( "ERROR: cannot open display\n" ); - - screen_num = DefaultScreen ( display ); - colormap = DefaultColormap( display, screen_num ); - depth = DefaultDepth ( display, screen_num ); - visual = DefaultVisual ( display, screen_num ); - - idle = XCreateFontCursor( display, XC_left_ptr ); - busy = XCreateFontCursor( display, XC_watch ); - - if ( gray ) - { - int count; - XPixmapFormatValues* formats; - - - formats = XListPixmapFormats( display, &count ); - vio_ScanLineWidth = 0; - - while ( count > 0 ) - { - --count; - if ( formats[count].depth == depth ) - { - int bits; - - bits = win_width * formats[count].bits_per_pixel; - if ( bits % formats[count].scanline_pad ) - { - bits -= bits % formats[count].scanline_pad; - bits += formats[count].scanline_pad; - } - - vio_ScanLineWidth = bits / 8; - break; - } - } - if ( !vio_ScanLineWidth ) - Panic( "ERROR: the display doesn't offer a suitable pixmap format\n" ); - - XFree( formats ); - } - - Vio = (char*)malloc( win_height * vio_ScanLineWidth ); - - if ( !Vio ) - Panic( "ERROR: cannot malloc display memory\n" ); - - xswa.border_pixel = BlackPixel( display, screen_num ); - xswa.background_pixel = WhitePixel( display, screen_num ); - xswa.cursor = busy; - - xswa.event_mask = KeyPressMask | ExposureMask; - - win = XCreateWindow( display, - RootWindow( display, screen_num ), - win_origin_x, - win_origin_y, - win_width, - win_height, - 10, - depth, - InputOutput, - visual, - CWBackPixel | CWBorderPixel | CWEventMask | CWCursor, - &xswa ); - - XMapWindow( display, win ); - - gcblack = XCreateGC( display, RootWindow( display, screen_num ), - 0L, NULL ); - XSetForeground( display, gcblack, BlackPixel( display, screen_num ) ); - XSetBackground( display, gcblack, WhitePixel( display, screen_num ) ); - - /* allocate colors */ - - if ( gray ) - for ( i = 0; i < 5; i++ ) - { - gray_palette[i] = i; - - color[i].red = - color[i].green = - color[i].blue = 65535 - ( colors[i] * 65535 ) / 63; - - if ( !XAllocColor( display, colormap, &color[i] ) ) - Panic( "ERROR: cannot allocate Color\n" ); - } - - image = XCreateImage( display, - visual, - gray ? depth : 1, - gray ? ZPixmap : XYBitmap, - 0, - (char*)Vio, - win_width, - win_height, - 8, - 0 ); - if ( !image ) - Panic( "ERROR: cannot create image\n" ); - - if ( !gray ) - { - image->byte_order = MSBFirst; - image->bitmap_bit_order = MSBFirst; - } - - /* make window manager happy :-) */ - xtp.value = (unsigned char*)"FreeType"; - xtp.encoding = 31; - xtp.format = 8; - xtp.nitems = strlen( (char*)xtp.value ); - - xsh.x = win_origin_x; - xsh.y = win_origin_y; - - xsh.width = win_width; - xsh.height = win_height; - xsh.flags = (PPosition | PSize); - xsh.flags = 0; - - XSetWMProperties( display, win, &xtp, &xtp, NULL, 0, &xsh, NULL, NULL ); - } - - - int Driver_Set_Graphics( int mode ) - { - if ( mode == Graphics_Mode_Gray ) - { - gray = 1; - vio_ScanLineWidth = 320; - - win_origin_x = 0; - win_origin_y = 0; - win_width = 320; - win_height = 200; - } - else if ( mode == Graphics_Mode_Mono ) - { - gray = 0; - vio_ScanLineWidth = 80; - - win_origin_x = 0; - win_origin_y = 0; - win_width = 640; - win_height = 450; - } - else - Panic( "ERROR: mode %d not supported\n", mode ); - - vio_Width = win_width; - vio_Height = win_height; - - x11init(); - - return 1; /* success */ - } - - - void Put_Image( int x, int y, int w, int h ) - { - XPutImage( display, win, gcblack, image, x, y, x, y, w, h ); - } - - - int Driver_Display_Bitmap( char* buffer, int line, int col ) - { - int z, y, used_col; - char* target; - - - XClearWindow( display, win ); - - /* this displays the Header string in the window title */ - XStoreName( display, win, Header ); - - if ( line > win_height ) - line = win_height; - - if ( !gray ) - { - if ( col > vio_ScanLineWidth ) - used_col = vio_ScanLineWidth; - else - used_col = col; - - target = Vio + ( line - 1 ) * vio_ScanLineWidth; - - for ( y = 0; y < line; y++ ) - { - memcpy( (char*)target, buffer, used_col ); - target -= vio_ScanLineWidth; - buffer += col; - } - - Put_Image( 0, 0, used_col * 8, line ); - image_width = used_col * 8; - image_height = line; - } - else - { - if ( col > win_width ) - used_col = win_width; - else - used_col = col; - - for ( y = line - 1; y >= 0; y-- ) - { - char* bufp; - - - bufp = buffer; - - for ( z = 0; z < used_col; z++ ) - { - int c; - - - c = *bufp++; - - if ( c < 0 || c >= 5 ) /* security check */ - { - /* Message( "weird grayshade: %d\n", c ); */ - c = 0; - } - XPutPixel( image, z, y, color[c].pixel ); - } - - buffer += col; - } - - Put_Image( 0, 0, used_col, line ); - image_width = used_col; - image_height = line; - } - - return 1; - } - - - /* This function maps X keystrokes into GEvents. Note that */ - /* currently only keystrokes events exit this function. */ - - void Get_Event( TEvent* event ) - { - static char key_buffer[10]; - static int key_cursor = 0; - static int key_number = 0; - static XEvent x_event; - KeySym key; - - int i, bool_exit; - char c; - - XComposeStatus compose; - - - bool_exit = key_cursor < key_number; - - XDefineCursor( display, win, idle ); - - while ( !bool_exit ) - { - XNextEvent( display, &x_event ); - - switch ( x_event.type ) - { - case KeyPress: - key_number = XLookupString( &x_event.xkey, - key_buffer, - sizeof ( key_buffer ), - &key, - &compose ); - key_cursor = 0; - - if ( key_number > 0 ) - bool_exit = 1; - break; - - case MappingNotify: - XRefreshKeyboardMapping( &x_event.xmapping ); - break; - - case Expose: -#if 0 - Put_Image( x_event.xexpose.x, - x_event.xexpose.y, - x_event.xexpose.width, - x_event.xexpose.height ); -#else - /* we always redraw the whole image */ - Put_Image( 0, 0, image_width, image_height ); -#endif - break; - - /* You should add more cases to handle mouse events, etc. */ - } - } - - XDefineCursor( display, win, busy ); - XFlush ( display ); - - c = key_buffer[key_cursor++]; - - for ( i = 0; i < NUM_Translators; i++ ) - { - if ( c == trans[i].key ) - { - event->what = trans[i].event_class; - event->info = trans[i].event_info; - return; - } - } - - event->what = event_Keyboard; - event->info = (int)c; - } - - -/* End */ diff --git a/Build/source/libs/freetype/freetype-1.5/test/arch/win16/Makefile.BC b/Build/source/libs/freetype/freetype-1.5/test/arch/win16/Makefile.BC deleted file mode 100644 index 7eaf19811b6..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/arch/win16/Makefile.BC +++ /dev/null @@ -1,222 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library and test programs for BC++ for 16-bit Windows, -# using large model, and using Easy-Win to display console outputs. -# -# Tested with Borland C++ v.4.02, 5.0 -# You will need Borland MAKE (v.3.6 and above should be OK, for oldest -# versions refer to the instructions below). -# -# -# Use this file while in the 'test' directory with the following statement: -# -# make -farch\win16\Makefile.BC -# -# -# A DLL version of the library can be built and then used with -# -# make -DDLL -farch/win16/Makefile.BC dll -# -# (do not forget to define DLL, otherwise the link phase will fail). -# -# -# Debug versions can be obtained with -# -# make -DDEBUG -farch\win16\Makefile.BC -# -# Special versions enabled to handle big fonts (with more than 16,384 -# glyphs) can be obtained with -# -# make -DBIGFONTS -farch\msdos\Makefile.BC -# -# -# Copyright 1996-2001 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. - -ARCH = arch\win16 -FT_MAKEFILE = $(ARCH)\Makefile.BC -FT_DLL = ft15_16.dll - -CC = bcc - -LIBDIR = ..\lib -INCDIRS = -I$(LIBDIR);$(LIBDIR)\$(ARCH);.;$(LIBDIR)\extend -SPURIOUS_WARNINGS = -w-nak -w-par -w-use -w-aus -w-stu -w-stv -w-cln -w-sig -w-pia - -# Credits go to Dave Hoo <dhoo@flash.net> for pointing out that modern -# Borland compilers (from BC++ 3.1 on) can increase the limit of -# the length of identifiers. -CFLAGS = -WSE -ml -A -i40 $(INCDIRS) $(SPURIOUS_WARNINGS) - -!if ! $d(DEBUG) -CFLAGS = $(CFLAGS) -O2 -3 -LDFLAGS = -ml -W -lC -!else -CFLAGS = $(CFLAGS) -v -N -LDFLAGS = -v -ml -W -lC -!endif - -!if $d(DLL) -CFLAGS = $(CFLAGS) -DFREETYPE_DLL -!endif - - -# Windows graphic driver -GDRIVER = $(ARCH)\gw_win16.c - -DISPLAY = display.c - -G1SRC = gmain.c blitter.c $(GDRIVER) -GSRC = $(DISPLAY) $(G1SRC) - -GOBJ = $(GSRC:.c=.obj) -G1OBJ = $(G1SRC:.c=.obj) - -SRC = arabic.c \ - common.c \ - textdisp.c \ - ftdump.c \ - fterror.c \ - ftlint.c \ - ftmetric.c \ - ftsbit.c \ - ftstring.c \ - ftstrpnm.c \ - ftstrtto.c \ - fttimer.c \ - ftview.c \ - ftzoom.c - -OBJ = $(SRC:.c=.obj) - - -.c.obj: - $(CC) -c -o$* @&&| - $(CFLAGS) $< -| - -EXEFILES = ftdump.exe \ - fterror.exe \ - ftlint.exe \ - ftmetric.exe \ - ftsbit.exe \ - ftstring.exe \ - ftstrpnm.exe \ - ftstrtto.exe \ - fttimer.exe \ - ftview.exe \ - ftzoom.exe - -!if !$d(DEBUG) -# Skipped if DEBUG build -all: freetype $(EXEFILES) - -dll: the_dll $(EXEFILES) - -!else -# Skipped if non-DEBUG build -default_target: debug -dll: the_debug_dll $(EXEFILES) - -!endif - -debug: freetype_debug $(EXEFILES) - - -!if $d(BIGFONTS) -MAKEBIG = -DBIGFONTS -!endif - -freetype: - cd $(LIBDIR) - make -f$(FT_MAKEFILE) $(MAKEBIG) all - cd ..\test - -freetype_debug: - cd $(LIBDIR) - make -f$(FT_MAKEFILE) -DDEBUG $(MAKEBIG) debug - cd ..\test - -the_dll: - cd $(LIBDIR) - make -f$(FT_MAKEFILE) -DDLL $(MAKEBIG) dll - cd ..\test - -copy $(LIBDIR)\$(FT_DLL) - -the_debug_dll: - cd $(LIBDIR) - make -f$(FT_MAKEFILE) -DDEBUG -DDLL $(MAKEBIG) dll - cd ..\test - -copy $(LIBDIR)\$(FT_DLL) - - -# C compilers are unable to include 16-bit <windows.h> in ANSI mode. -# So we have a special rule for this file, to build it outside ANSI. -$(GDRIVER:.c=.obj): - $(CC) -c -o$* @&&| - $(CFLAGS) -A- $*.c -| - - -# Borland versions of make are unable to use the $** variable inside -# implicit rules (like .obj.exe:). The job have to be done by hand. :-( -ftzoom.exe: $(G1OBJ) ftzoom.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftzoom.obj $(G1OBJ) common.obj $(LIBDIR)\libttf.lib - -ftview.exe: $(GOBJ) ftview.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftview.obj $(GOBJ) common.obj $(LIBDIR)\libttf.lib - -ftstring.exe: $(GOBJ) ftstring.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftstring.obj $(GOBJ) common.obj $(LIBDIR)\libttf.lib - -ftstrtto.exe: $(GOBJ) ftstrtto.obj common.obj arabic.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftstrtto.obj $(GOBJ) common.obj arabic.obj \ - $(LIBDIR)\libttf.lib - -fttimer.exe: $(G1OBJ) fttimer.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) fttimer.obj $(G1OBJ) common.obj $(LIBDIR)\libttf.lib - -ftlint.exe: ftlint.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftlint.obj common.obj $(LIBDIR)\libttf.lib - -ftdump.exe: ftdump.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftdump.obj common.obj $(LIBDIR)\libttf.lib - -ftstrpnm.exe: ftstrpnm.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftstrpnm.obj common.obj $(LIBDIR)\libttf.lib - -ftsbit.exe: $(TDOBJ) ftsbit.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftsbit.obj textdisp.obj common.obj $(LIBDIR)\libttf.lib - -ftmetric.exe: $(TDOBJ) ftmetric.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftmetric.obj textdisp.obj common.obj $(LIBDIR)\libttf.lib - -fterror.exe: fterror.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) fterror.obj common.obj $(LIBDIR)\libttf.lib - - -clean: do_clean - cd $(LIBDIR) - make -f$(FT_MAKEFILE) clean - cd ..\test - -distclean: do_clean - cd $(LIBDIR) - make -f$(FT_MAKEFILE) distclean - cd ..\test - -del *.exe - -del *.dll - -do_clean: - -del *.obj - -del $(ARCH)\*.obj - -!include "$(ARCH)\depend.win" - -# end of Makefile diff --git a/Build/source/libs/freetype/freetype-1.5/test/arch/win16/Makefile.MS b/Build/source/libs/freetype/freetype-1.5/test/arch/win16/Makefile.MS deleted file mode 100644 index d9dd2d107a4..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/arch/win16/Makefile.MS +++ /dev/null @@ -1,155 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library and test programs for Microsoft C compilers -# for 16-bit Windows, large model, using QuickWin to display console -# outputs. It also works for Visual C++ 1.x 16-bits compiler, but -# you should instead use the Makefile customized for it, Makefile.VC. -# -# You will need NMAKE. -# -# -# Use this file while in the 'test' directory with the following statement: -# -# nmake /f arch\win16\Makefile.MS -# -# -# A debug version can be obtained with -# -# nmake DEBUG=1 /f arch\win16\Makefile.MS -# -# -# Copyright 1996-2001 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. - -ARCH = arch\win16 -FT_MAKEFILE = $(ARCH)\Makefile.MS -FT_MAKE = $(MAKE) /nologo - -CC = cl /nologo - -LIBDIR = ..\lib -INCDIRS = -I$(LIBDIR) -I$(LIBDIR)\$(ARCH) -I. -I$(LIBDIR)\extend - -!ifndef DEBUG -CFLAGS = /Ox /AL /Za /W2 /G2 $(INCDIRS) -LDFLAGS = /AL -!else -CFLAGS = /Zi /AL /Za /W2 /G2 $(INCDIRS) -LDFLAGS = /Zi /AL -!endif - -CFLAGS = $(CFLAGS) /GA /Mq -LDFLAGS = $(LDFLAGS) /GA /Mq - - -# Windows graphic driver -GDRIVER = $(ARCH)\gw_win16.c - -GSRC = display.c gmain.c blitter.c $(GDRIVER) - -GOBJ = $(GSRC:.c=.obj) - -SRC = arabic.c \ - common.c \ - textdisp.c \ - ftdump.c \ - fterror.c \ - ftlint.c \ - ftmetric.c \ - ftsbit.c \ - ftstring.c \ - ftstrpnm.c \ - ftstrtto.c \ - fttimer.c \ - ftview.c \ - ftzoom.c - -OBJ = $(SRC:.c=.obj) - - -.c.obj: - @$(CC) /c /Fo$* @<< - $(CFLAGS) $< -<< - -EXEFILES = ftdump.exe \ - fterror.exe \ - ftlint.exe \ - ftmetric.exe \ - ftsbit.exe \ - ftstring.exe \ - ftstrpnm.exe \ - ftstrtto.exe \ - fttimer.exe \ - ftview.exe \ - ftzoom.exe - -!ifndef DEBUG -# Skiped if DEBUG build -all: freetype $(EXEFILES) - -!endif - -debug: freetype_debug $(EXEFILES) - -freetype: - cd $(LIBDIR) - $(FT_MAKE) /f $(FT_MAKEFILE) all - cd ..\test - -freetype_debug: - cd $(LIBDIR) - $(FT_MAKE) /f $(FT_MAKEFILE) DEBUG=1 debug - cd ..\test - - -# C compilers are unable to include 16-bit <windows.h> in ANSI mode. -# So we have a special rule for this file, to build it outside ANSI. -$(GDRIVER:.c=.obj): - @$(CC) /c /Fo$* @<< - $(CFLAGS) /Ze $(GDRIVER) -<< - -.obj.exe: - $(CC) /Fe$* @<< - $(LDFLAGS) $** -<< - -ftzoom.exe: $(GOBJ) ftzoom.obj common.obj $(LIBDIR)\libttf.lib -ftview.exe: $(GOBJ) ftview.obj common.obj $(LIBDIR)\libttf.lib -ftstring.exe: $(GOBJ) ftstring.obj common.obj $(LIBDIR)\libttf.lib -ftstrtto.exe: $(GOBJ) ftstrtto.obj common.obj arabic.obj $(LIBDIR)\libttf.lib -fttimer.exe: $(GOBJ) fttimer.obj common.obj $(LIBDIR)\libttf.lib -ftlint.exe: ftlint.obj common.obj $(LIBDIR)\libttf.lib -ftdump.exe: ftdump.obj common.obj $(LIBDIR)\libttf.lib -ftstrpnm.exe: ftstrpnm.obj common.obj $(LIBDIR)\libttf.lib -ftsbit.exe: ftsbit.obj common.obj textdisp.obj $(LIBDIR)\libttf.lib -ftmetric.exe: ftmetric.obj common.obj textdisp.obj $(LIBDIR)\libttf.lib -fterror.exe: fterror.obj common.obj $(LIBDIR)\libttf.lib - - -clean: do_clean - cd $(LIBDIR) - $(FT_MAKE) /f $(FT_MAKEFILE) clean - cd ..\test - -distclean: do_clean - cd $(LIBDIR) - $(FT_MAKE) /f $(FT_MAKEFILE) distclean - cd ..\test - -del *.exe - -do_clean: - -del *.obj - -del $(ARCH)\*.obj - - -!include "$(ARCH)\depend.win" - -# end of Makefile.MS diff --git a/Build/source/libs/freetype/freetype-1.5/test/arch/win16/Makefile.VC b/Build/source/libs/freetype/freetype-1.5/test/arch/win16/Makefile.VC deleted file mode 100644 index 078c2ea3d8a..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/arch/win16/Makefile.VC +++ /dev/null @@ -1,197 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library and test programs for Microsoft Visual C++ 1.x -# and Microsoft C/C++ v.7.0 compilers for 16-bit Windows, large model, -# using QuickWin to display console outputs. -# -# You will need NMAKE. -# -# -# Use this file while in the 'test' directory with the following statement: -# -# nmake /f arch\win16\Makefile.VC -# -# A DLL version of the library can be built and then used with -# -# nmake DLL=1 /f arch\win16\Makefile.VC dll -# -# (do not forget to define DLL, otherwise the link phase will fail). -# -# -# Debug versions can be obtained with -# -# nmake DEBUG=1 /f arch\win16\Makefile.VC -# -# Special versions enabled to handle big fonts (with more than 16,384 -# glyphs) can be obtained with -# -# nmake BIGFONTS=1 /f arch\win16\Makefile.VC -# -# -# Copyright 1996-2001 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. - -ARCH = arch\win16 -FT_MAKEFILE = $(ARCH)\Makefile.VC -FT_MAKE = $(MAKE) /nologo -FT_DLL = ft15_16.dll - -CC = cl /nologo - -LIBDIR = ..\lib -INCDIRS = -I$(LIBDIR) -I$(LIBDIR)\$(ARCH) -I. -I$(LIBDIR)\extend - -# One can also consider using "set MSC_CMD_FLAGS=/Gr /Op- /Gy /YX". -# With Microsoft C/C++ 7.0, use /G2 instead of /G3. -!ifndef DEBUG -CFLAGS = /Ox /AL /Za /W2 /G3 $(INCDIRS) -LDFLAGS = /AL -!else -CFLAGS = /Zi /Ge /AL /Za /W2 /G3 $(INCDIRS) -LDFLAGS = /Zi /AL -!endif - -CFLAGS = $(CFLAGS) /Mq -LDFLAGS = $(LDFLAGS) /Mq - -!ifdef DLL -CFLAGS = $(CFLAGS) /DFREETYPE_DLL -!endif - - -# Windows graphic driver -GDRIVER = $(ARCH)\gw_win16.c - -GSRC = display.c gmain.c blitter.c $(GDRIVER) - -GOBJ = $(GSRC:.c=.obj) - -SRC = arabic.c \ - common.c \ - textdisp.c \ - ftdump.c \ - fterror.c \ - ftlint.c \ - ftmetric.c \ - ftsbit.c \ - ftstring.c \ - ftstrpnm.c \ - ftstrtto.c \ - fttimer.c \ - ftview.c \ - ftzoom.c - -OBJ = $(SRC:.c=.obj) - - -.c.obj: - @$(CC) /c /Fo$* @<< - $(CFLAGS) $< -<< - -EXEFILES = ftdump.exe \ - fterror.exe \ - ftlint.exe \ - ftmetric.exe \ - ftsbit.exe \ - ftstring.exe \ - ftstrpnm.exe \ - ftstrtto.exe \ - fttimer.exe \ - ftview.exe \ - ftzoom.exe - -!ifndef DEBUG -# Skiped if DEBUG build -all: freetype $(EXEFILES) - -dll: the_dll $(EXEFILES) - -!else -# Skipped if non-DEBUG build -default_target: debug -dll: the_debug_dll $(EXEFILES) - -!endif - -debug: freetype_debug $(EXEFILES) - -!ifdef BIGFONTS -MAKEBIG = BIGFONTS=1 -!endif - -freetype: - cd $(LIBDIR) - $(FT_MAKE) /f $(FT_MAKEFILE) $(MAKEBIG) all - cd ..\test - -freetype_debug: - cd $(LIBDIR) - $(FT_MAKE) /f $(FT_MAKEFILE) DEBUG=1 $(MAKEBIG) debug - cd ..\test - -the_dll: - cd $(LIBDIR) - $(FT_MAKE) /f $(FT_MAKEFILE) DLL=1 $(MAKEBIG) dll - cd ..\test - -copy $(LIBDIR)\$(FT_DLL) - -the_debug_dll: - cd $(LIBDIR) - $(FT_MAKE) /f $(FT_MAKEFILE) DEBUG=1 DLL=1 $(MAKEBIG) dll - cd ..\test - -copy $(LIBDIR)\$(FT_DLL) - - -# C compilers are unable to include 16-bit <windows.h> in ANSI mode. -# So we have a special rule for this file, to build it outside ANSI. -$(GDRIVER:.c=.obj): - @$(CC) /c /Fo$* @<< - $(CFLAGS) /Ze $(GDRIVER) -<< - -.obj.exe: - $(CC) /Fe$* @<< - $(LDFLAGS) $** -<< - -ftzoom.exe: $(GOBJ) ftzoom.obj common.obj $(LIBDIR)\libttf.lib -ftview.exe: $(GOBJ) ftview.obj common.obj $(LIBDIR)\libttf.lib -ftstring.exe: $(GOBJ) ftstring.obj common.obj $(LIBDIR)\libttf.lib -ftstrtto.exe: $(GOBJ) ftstrtto.obj common.obj arabic.obj $(LIBDIR)\libttf.lib -fttimer.exe: $(GOBJ) fttimer.obj common.obj $(LIBDIR)\libttf.lib -ftlint.exe: ftlint.obj common.obj $(LIBDIR)\libttf.lib -ftdump.exe: ftdump.obj common.obj $(LIBDIR)\libttf.lib -ftstrpnm.exe: ftstrpnm.obj common.obj $(LIBDIR)\libttf.lib -ftsbit.exe: ftsbit.obj common.obj textdisp.obj $(LIBDIR)\libttf.lib -ftmetric.exe: ftmetric.obj common.obj textdisp.obj $(LIBDIR)\libttf.lib -fterror.exe: fterror.obj common.obj $(LIBDIR)\libttf.lib - - -clean: do_clean - cd $(LIBDIR) - $(FT_MAKE) /f $(FT_MAKEFILE) clean - cd ..\test - -distclean: do_clean - cd $(LIBDIR) - $(FT_MAKE) /f $(FT_MAKEFILE) distclean - cd ..\test - -del *.exe - -del *.dll - -del *.pdb - -do_clean: - -del *.obj - -del $(ARCH)\*.obj - - -!include "$(ARCH)\depend.win" - -# end of Makefile.VC diff --git a/Build/source/libs/freetype/freetype-1.5/test/arch/win16/depend.win b/Build/source/libs/freetype/freetype-1.5/test/arch/win16/depend.win deleted file mode 100644 index facb75c19b5..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/arch/win16/depend.win +++ /dev/null @@ -1,78 +0,0 @@ -# This file is part of the FreeType project. -# Automatically generated, but you can customize to fit your needs. -# However, changes will be erased if not made in `makedep'... -# -# This dependency file to be used with various Windows compilers -# has been generated automatically with the script `makedep' on -# 2002-02-19. - -arabic.obj: arabic.c arabic.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\extend\ftxopen.h ..\lib\extend\ftxgdef.h \ - ..\lib\extend\ftxgsub.h ..\lib\extend\ftxgpos.h -blitter.obj: blitter.c blitter.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h -common.obj: common.c common.h -display.obj: display.c display.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h gmain.h -fdebug.obj: fdebug.c ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\tttypes.h ..\lib\ttconfig.h \ - ..\lib\arch\win16\ft_conf.h ..\lib\ttdebug.h \ - ..\lib\ttobjs.h ..\lib\ttengine.h \ - ..\lib\ttmutex.h ..\lib\ttcache.h \ - ..\lib\tttables.h ..\lib\ttcmap.h -ftdump.obj: ftdump.c common.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\extend\ftxcmap.h ..\lib\extend\ftxopen.h \ - ..\lib\extend\ftxgdef.h ..\lib\extend\ftxgsub.h \ - ..\lib\extend\ftxgpos.h ..\lib\extend\ftxsbit.h \ - ..\lib\ttobjs.h ..\lib\ttconfig.h \ - ..\lib\arch\win16\ft_conf.h ..\lib\ttengine.h \ - ..\lib\tttypes.h ..\lib\ttmutex.h \ - ..\lib\ttcache.h ..\lib\tttables.h \ - ..\lib\ttcmap.h ..\lib\ttmemory.h -fterror.obj: fterror.c ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\extend\ftxerr18.h \ - ..\lib\arch\win16\ft_conf.h -ftlint.obj: ftlint.c common.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\arch\win16\ft_conf.h -ftmetric.obj: ftmetric.c common.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\extend\ftxsbit.h textdisp.h \ - ..\lib\arch\win16\ft_conf.h -ftsbit.obj: ftsbit.c common.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\extend\ftxsbit.h textdisp.h \ - ..\lib\arch\win16\ft_conf.h -ftstring.obj: ftstring.c common.h display.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h gevents.h \ - gdriver.h gmain.h -ftstrpnm.obj: ftstrpnm.c common.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h -ftstrtto.obj: ftstrtto.c arabic.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\extend\ftxopen.h ..\lib\extend\ftxgdef.h \ - ..\lib\extend\ftxgsub.h ..\lib\extend\ftxgpos.h \ - blitter.h common.h display.h ..\lib\extend\ftxkern.h \ - ..\lib\extend\ftxsbit.h gdriver.h gevents.h gmain.h \ - ..\lib\ttmemory.h ..\lib\ttconfig.h \ - ..\lib\arch\win16\ft_conf.h ..\lib\tttypes.h -fttimer.obj: fttimer.c common.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h gdriver.h \ - gevents.h gmain.h -ftview.obj: ftview.c blitter.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h common.h \ - display.h ..\lib\extend\ftxsbit.h gdriver.h gevents.h \ - gmain.h -ftzoom.obj: ftzoom.c common.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\extend\ftxpost.h gdriver.h gevents.h gmain.h -gmain.obj: gmain.c gdriver.h gmain.h -textdisp.obj: textdisp.c textdisp.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h -!ifndef __MAKE__ -arch\win16\gw_win16.obj: arch\win16\gw_win16.c gdriver.h gevents.h gmain.h -!endif diff --git a/Build/source/libs/freetype/freetype-1.5/test/arch/win16/gw_win16.c b/Build/source/libs/freetype/freetype-1.5/test/arch/win16/gw_win16.c deleted file mode 100644 index 33332203a37..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/arch/win16/gw_win16.c +++ /dev/null @@ -1,431 +0,0 @@ -/******************************************************************* - * - * gw_win16.c graphics driver for 16-bit Windows platform. 0.1 - * - * This is the driver for displaying inside a window under 16-bit - * Microsoft Windows, used by the graphics utility of the - * FreeType test suite. - * - * Written by Antoine Leca. - * Copyright 1999-2001 by Antoine Leca, - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * Borrowing liberally from the other FreeType drivers. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - ******************************************************************/ - -#include <windows.h> /* should be #included before everything else */ - /* because it #defines NULL in a peculiar way */ - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include "gdriver.h" -#include "gevents.h" -#include "gmain.h" - - -/* The following #ifdef are used to define the following macros : */ -/* */ -/* - hInst : variable containing the handle of the current instance. */ -/* - hPrev : variable containing the handle of the previous instance. */ -/* */ - -/* ---- Microsoft C compilers support ------------------------------------ */ - -#if defined( M_I86 ) || defined( _M_I86 ) - -extern HINSTANCE _hInstance, _hPrevInstance; -#define hInst _hInstance -#define hPrev _hPrevInstance - -#endif - -/* ---- Borland C compiler support --------------------------------------- */ - -#ifdef __TURBOC__ - -#pragma option -A- - -extern HINSTANCE _hInstance, _hPrev; -#define hInst _hInstance -#define hPrev _hPrev - -#endif - - -#if !defined ( hInst ) || !defined ( hPrev ) -#error Your compiler is not (yet) supported. Check the source file! -#endif - -/* ---- Common initialisations ------------------------------------------- */ - -/* Size of the window. */ -#define WIN_WIDTH 640u -#define WIN_HEIGHT 400u -/* The values will be divided by 2 for gray-scale rendering. */ - -/* These values can be changed, but WIN_WIDTH should remain for now a */ -/* multiple of 32 to avoid padding issues. */ - -/* Also, to avoid 16-bit overflowing issues, the product */ -/* WIN_WIDTH * WIN_HEIGHT should not excess 512K for monochrome */ -/* rendering, and 256K for gray-scale rendering. */ - - - typedef struct _Translator - { - char key; - GEvent event_class; - int event_info; - } Translator; - -#define NUM_Translators 20 - - static const Translator trans[NUM_Translators] = - { - { (char)27, event_Quit, 0 }, - { 'q', event_Quit, 0 }, - - { 'x', event_Rotate_Glyph, -1 }, - { 'c', event_Rotate_Glyph, 1 }, - { 'v', event_Rotate_Glyph, -16 }, - { 'b', event_Rotate_Glyph, 16 }, - - { '{', event_Change_Glyph, -10000 }, - { '}', event_Change_Glyph, 10000 }, - { '(', event_Change_Glyph, -1000 }, - { ')', event_Change_Glyph, 1000 }, - { '9', event_Change_Glyph, -100 }, - { '0', event_Change_Glyph, 100 }, - { 'i', event_Change_Glyph, -10 }, - { 'o', event_Change_Glyph, 10 }, - { 'k', event_Change_Glyph, -1 }, - { 'l', event_Change_Glyph, 1 }, - - { '+', event_Scale_Glyph, 10 }, - { '-', event_Scale_Glyph, -10 }, - { 'u', event_Scale_Glyph, 1 }, - { 'j', event_Scale_Glyph, -1 } - }; - - /* handle of the window. */ - static HWND hwndGraphic; - - /* bitmap information */ - static LPBITMAPINFO pbmi; - static HBITMAP hbm; - - /* local event to pass on */ - static TEvent ourevent = { event_Quit, 0 }; - static int eventToProcess = 0; - - /* array defined in the test programs */ - extern char Header[]; - - -/* restores screen to its original state */ - -int Driver_Restore_Mode() - { - /* The graphical window has perhaps already destroyed itself */ - if ( hwndGraphic ) { - DestroyWindow ( hwndGraphic ); - PostMessage ( hwndGraphic, WM_QUIT, 0, 0 ); - } - - if ( pbmi ) free ( pbmi ); - - return 1; - } - - -/* - * set graphics mode - * and create the window class and the message handling. - */ - -/* Declarations of the Windows-specific functions that are below. */ -static BOOL RegisterTheClass ( void ); -static BOOL CreateTheWindow ( int width, int height ); - - -int Driver_Set_Graphics ( int mode ) - { - int i; - static const RGBQUAD gray_scale[5] = { - { 0xFF, 0xFF, 0xFF, 0 }, /* white */ - { 0xC0, 0xC0, 0xC0, 0 }, - { 0x80, 0x80, 0x80, 0 }, - { 0x40, 0x40, 0x40, 0 }, - { 0, 0, 0, 0 } }; /* black */ - - if( ! RegisterTheClass() ) return 0; /* if already running, fails. */ - - /* find some memory for the bitmap header */ - if ( (pbmi = malloc ( sizeof ( BITMAPINFO ) + sizeof ( RGBQUAD ) * 256 ) ) - /* 256 should really be 2 if not grayscale */ - == NULL ) - /* lack of memory; fails the process */ - return 0; - - /* initialize the header to appropriate values */ - memset( pbmi, 0, sizeof ( BITMAPINFO ) + sizeof ( RGBQUAD ) * 256 ); - - switch ( mode ) - { - case Graphics_Mode_Mono: - pbmi->bmiHeader.biBitCount = 1; - pbmi->bmiColors[0] = gray_scale[0]; - pbmi->bmiColors[1] = gray_scale[4]; - - vio_ScanLineWidth = WIN_WIDTH / 8; - vio_Width = WIN_WIDTH; - vio_Height = WIN_HEIGHT; - - break; - - case Graphics_Mode_Gray: - pbmi->bmiHeader.biBitCount = 8; - pbmi->bmiHeader.biClrUsed = 5; - - memcpy ( &pbmi->bmiColors[0], gray_scale, sizeof gray_scale ); - - vio_ScanLineWidth = WIN_WIDTH / 2; - vio_Width = WIN_WIDTH / 2; - vio_Height = WIN_HEIGHT/ 2; - - for ( i = 0; i < 5; ++i ) - gray_palette[i] = i; - - break; - - default: - - free ( pbmi ); - return 0; /* Unknown mode */ - } - - pbmi->bmiHeader.biSize = sizeof ( BITMAPINFOHEADER ); - pbmi->bmiHeader.biWidth = vio_Width; - pbmi->bmiHeader.biHeight = vio_Height; - pbmi->bmiHeader.biPlanes = 1; - - if ( (long) vio_Height * vio_ScanLineWidth > 0xFFE0ul ) - /* too big to work on 16-bit; fails the process */ - { - free ( pbmi ); - return 0; - } - - if( ! CreateTheWindow ( vio_Width, vio_Height ) ) - { - free ( pbmi ); - return 0; - } - - return 1; /* success even if the window was not built. */ - } - - -int Driver_Display_Bitmap ( char* buffer, int lines, int cols ) - { - HDC hDC; - - if ( cols * 8 != pbmi->bmiHeader.biWidth * pbmi->bmiHeader.biBitCount ) - pbmi->bmiHeader.biWidth = cols * 8 / pbmi->bmiHeader.biBitCount; - - hDC = GetDC ( hwndGraphic ); - SetDIBits ( hDC, hbm, 0, lines, buffer, pbmi, DIB_RGB_COLORS ); - ReleaseDC ( hwndGraphic, hDC ); - - ShowWindow( hwndGraphic, SW_SHOW ); - InvalidateRect ( hwndGraphic, NULL, FALSE ); - UpdateWindow ( hwndGraphic ); - - return 1; /* success */ - } - - -void Get_Event( TEvent* event ) - { - MSG msg; - - if ( hwndGraphic ) - { - SetWindowText ( hwndGraphic, Header ); - } - - do { - while ( PeekMessage( &msg, 0, 0, 0, PM_REMOVE ) ) { - TranslateMessage ( &msg ); - DispatchMessage ( &msg ); - } - if ( ! eventToProcess ) - WaitMessage(); - } while ( ! eventToProcess ); - - event->what = ourevent.what; - event->info = ourevent.info; - eventToProcess = 0; - return; - } - - -/* ---- Windows-specific stuff ------------------------------------------- */ - -LRESULT CALLBACK Message_Process( HWND, UINT, WPARAM, LPARAM ); - -static -BOOL RegisterTheClass ( void ) - { - WNDCLASS ourClass = { - /* UINT style */ 0, - /* WNDPROC lpfnWndProc */ Message_Process, - /* int cbClsExtra */ 0, - /* int cbWndExtra */ 0, - /* HANDLE hInstance */ 0, - /* HICON hIcon */ 0, - /* HCURSOR hCursor */ 0, - /* HBRUSH hbrBackground*/ 0, - /* LPCTSTR lpszMenuName */ NULL, - /* LPCTSTR lpszClassName*/ "FreeTypeTestGraphicDriver16" - }; - - if( hPrev ) - /* There is another instance of the same program. */ - /* No need to register the class. */ - return 1; - - ourClass.hInstance = hInst; - ourClass.hIcon = LoadIcon(0, IDI_APPLICATION); - ourClass.hCursor = LoadCursor(0, IDC_ARROW); - ourClass.hbrBackground= GetStockObject(BLACK_BRUSH); - - return RegisterClass(&ourClass) != 0; /* return False if it fails. */ - } - -static -BOOL CreateTheWindow ( int width, int height ) - { - if ( ! (hwndGraphic = CreateWindow( - /* LPCSTR lpszClassName; */ "FreeTypeTestGraphicDriver16", - /* LPCSTR lpszWindowName; */ "FreeType Test Graphic Driver", - /* DWORD dwStyle; */ WS_OVERLAPPED | WS_SYSMENU, - /* int x; */ CW_USEDEFAULT, - /* int y; */ CW_USEDEFAULT, - /* int nWidth; */ width + 2*GetSystemMetrics(SM_CXBORDER), - /* int nHeight; */ height+ GetSystemMetrics(SM_CYBORDER) - + GetSystemMetrics(SM_CYCAPTION), - /* HWND hwndParent; */ HWND_DESKTOP, - /* HMENU hmenu; */ 0, - /* HINSTANCE hinst; */ hInst, - /* void FAR* lpvParam; */ NULL)) - ) - /* creation failed... */ - return 0; - - return 1; - } - - /* Message processing for our Windows class */ -LRESULT CALLBACK Message_Process( HWND handle, UINT mess, - WPARAM wParam, LPARAM lParam ) - { - - switch( mess ) - { - case WM_DESTROY: - /* warn the main thread to quit if it didn't know */ - ourevent.what = event_Quit; - ourevent.info = 0; - eventToProcess = 1; - hwndGraphic = 0; - PostQuitMessage ( 0 ); - DeleteObject ( hbm ); - break; - - case WM_CREATE: - { - HDC hDC; - - hDC = GetDC ( handle ); - hbm = CreateDIBitmap ( - /* HDC hdc; handle of device context */ hDC, - /* BITMAPINFOHEADER FAR* lpbmih; addr.of header*/ &pbmi->bmiHeader, - /* DWORD dwInit; CBM_INIT to initialize bitmap */ 0, - /* const void FAR* lpvBits; address of values */ NULL, - /* BITMAPINFO FAR* lpbmi; addr.of bitmap data */ pbmi, - /* UINT fnColorUse; RGB or palette indices */ DIB_RGB_COLORS); - ReleaseDC ( handle, hDC ); - break; - } - - case WM_PAINT: - { - HDC hDC, memDC; - HANDLE oldbm; - PAINTSTRUCT ps; - - hDC = BeginPaint ( handle, &ps ); - memDC = CreateCompatibleDC(hDC); - oldbm = SelectObject(memDC, hbm); - BitBlt ( hDC, 0, 0, vio_Width, vio_Height, memDC, 0, 0, SRCCOPY); - ReleaseDC ( handle, hDC ); - SelectObject ( memDC, oldbm ); - DeleteObject ( memDC ); - EndPaint ( handle, &ps ); - } - - case WM_KEYDOWN: - switch ( wParam ) - { - case VK_ESCAPE: - ourevent.what = event_Quit; - ourevent.info = 0; - eventToProcess = 1; - break; - - case VK_F1: /* bring up help and about dialog window */ - break; - } - break; - - case WM_CHAR: - { - char c = wParam ; - int i; - - for ( i = 0; i < NUM_Translators; i++ ) - { - if ( c == trans[i].key ) - { - ourevent.what = trans[i].event_class; - ourevent.info = trans[i].event_info; - eventToProcess = 1; - return 0; - } - } - - /* unrecognized keystroke */ - ourevent.what = event_Keyboard; - ourevent.info = (int)c; - eventToProcess = 1; - } - break; - - default: - return DefWindowProc( handle, mess, wParam, lParam ); - } - - return 0; - } - -/* End */ diff --git a/Build/source/libs/freetype/freetype-1.5/test/arch/win16/makedep b/Build/source/libs/freetype/freetype-1.5/test/arch/win16/makedep deleted file mode 100755 index 6e8812cb07a..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/arch/win16/makedep +++ /dev/null @@ -1,43 +0,0 @@ -# makedep -# -# This shell script creates a dependency file necessary for older compilers -# on the Windows 16-bit platform. -# -# If you run this script under non-Windows operating systems, expect -# warnings that `windows.h' can't be found. -# -# Copyright 1996-2002 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. - -echo "\ -# This file is part of the FreeType project. -# Automatically generated, but you can customize to fit your needs. -# However, changes will be erased if not made in \`makedep'... -# -# This dependency file to be used with various Windows compilers -# has been generated automatically with the script \`makedep' on -# `date +%Y-%m-%d`. -" > depend.win - -(cd ../.. - gcc -MM -I../lib/arch/win16 -I../lib -I../lib/extend -I. \ - *.c | \ - sed -e "s/\.o:/.obj:/" -e "s:/:\\\\:g") >> depend.win - -echo "!ifndef __MAKE__" >> depend.win - -(cd ../.. - gcc -MM -I../lib/arch/win16 -I../lib -I../lib/extend -I. \ - -DhInst -DhPrev arch/win16/*.c | \ - sed -e "s/^\(.*\)\.o:/arch\\\\win16\\\\\1.obj:/" \ - -e "s:/:\\\\:g") >> depend.win - -echo "!endif" >> depend.win - -# eof diff --git a/Build/source/libs/freetype/freetype-1.5/test/arch/win32/Makefile.BC b/Build/source/libs/freetype/freetype-1.5/test/arch/win32/Makefile.BC deleted file mode 100644 index 7e6ddd46b2f..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/arch/win32/Makefile.BC +++ /dev/null @@ -1,207 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library and test programs for BC++ for Win32. -# -# Tested with Borland C++ v.4.02, 5.0, and Borland C++ builder 4. -# You will need Borland MAKE. -# -# -# Use this file while in the 'test' directory with the following statement: -# -# make -farch\win32\Makefile.BC -# -# -# A DLL version of the library can be built and then used with -# -# make -DDLL -farch/win16/Makefile.BC dll -# -# (do not forget to define DLL, otherwise the link phase will fail). -# -# -# A debug version can be obtained with -# -# make -DDEBUG -farch\win32\Makefile.BC -# -# -# Copyright 1996-2001 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. - -ARCH = arch\win32 -FT_MAKEFILE = $(ARCH)\Makefile.BC -FT_DLL = ft15_32.dll - -CC = bcc32 - -LIBDIR = ..\lib -INCDIRS = -I$(LIBDIR);$(LIBDIR)\$(ARCH);.;$(LIBDIR)\extend -SPURIOUS_WARNINGS = -w-nak -w-par -w-use -w-aus -w-stu -w-stv -w-cln -w-sig -w-pia -CFLAGS = -i64 $(INCDIRS) $(SPURIOUS_WARNINGS) - -!ifndef DEBUG -CFLAGS = $(CFLAGS) -O2 -A -LDFLAGS = -WC -!else -CFLAGS = $(CFLAGS) -v -LDFLAGS = -v -WC -!endif - -!ifdef DLL -CFLAGS = $(CFLAGS) -DFREETYPE_DLL -!endif - -# Windows graphic driver -GDRIVER = $(ARCH)\gw_win32.c - -DISPLAY = display.c - -G1SRC = gmain.c blitter.c $(GDRIVER) -GSRC = $(DISPLAY) $(G1SRC) - -GOBJ = $(GSRC:.c=.obj) -G1OBJ = $(G1SRC:.c=.obj) - -SRC = arabic.c \ - common.c \ - textdisp.c \ - ftdump.c \ - fterror.c \ - ftlint.c \ - ftmetric.c \ - ftsbit.c \ - ftstring.c \ - ftstrpnm.c \ - ftstrtto.c \ - fttimer.c \ - ftview.c \ - ftzoom.c - -OBJ = $(SRC:.c=.obj) - - -.c.obj: - $(CC) -c -o$* @&&| - $(CFLAGS) $< -| - -EXEFILES = ftdump.exe \ - fterror.exe \ - ftlint.exe \ - ftmetric.exe \ - ftsbit.exe \ - ftstring.exe \ - ftstrpnm.exe \ - ftstrtto.exe \ - fttimer.exe \ - ftview.exe \ - ftzoom.exe - -!ifndef DEBUG -# Skipped if DEBUG build -all: freetype $(EXEFILES) - -dll: the_dll $(EXEFILES) - -!else -# Skipped if non-DEBUG build -default_target: debug -dll: the_debug_dll $(EXEFILES) - -!endif - -debug: freetype_debug $(EXEFILES) - -freetype: - cd $(LIBDIR) - make -f$(FT_MAKEFILE) all - cd ..\test - -freetype_debug: - cd $(LIBDIR) - make -f$(FT_MAKEFILE) -DDEBUG debug - cd ..\test - -the_dll: - cd $(LIBDIR) - make -f$(FT_MAKEFILE) -DDLL dll - cd ..\test - -copy $(LIBDIR)\$(FT_DLL) - -the_debug_dll: - cd $(LIBDIR) - make -f$(FT_MAKEFILE) -DDEBUG -DDLL dll - cd ..\test - -copy $(LIBDIR)\$(FT_DLL) - - -# C compilers are unable to include <windows.h> in ANSI mode, -# because of the // comments... -# So we have a special rule for this file, to build it outside ANSI. -$(GDRIVER:.c=.obj): - $(CC) -c -o$* @&&| - $(CFLAGS) -A- $*.c -| - - -# Borland versions of make are unable to use the $** variable inside -# implicit rules (like .obj.exe:). The job have to be done by hand. :-( -ftzoom.exe: $(G1OBJ) ftzoom.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftzoom.obj $(G1OBJ) common.obj $(LIBDIR)\libttf.lib - -ftview.exe: $(GOBJ) ftview.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftview.obj $(GOBJ) common.obj $(LIBDIR)\libttf.lib - -ftstring.exe: $(GOBJ) ftstring.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftstring.obj $(GOBJ) common.obj $(LIBDIR)\libttf.lib - -ftstrtto.exe: $(GOBJ) ftstrtto.obj common.obj arabic.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftstrtto.obj $(GOBJ) common.obj arabic.obj \ - $(LIBDIR)\libttf.lib - -fttimer.exe: $(G1OBJ) fttimer.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) fttimer.obj $(G1OBJ) common.obj $(LIBDIR)\libttf.lib - -ftlint.exe: ftlint.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftlint.obj common.obj $(LIBDIR)\libttf.lib - -ftdump.exe: ftdump.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftdump.obj common.obj $(LIBDIR)\libttf.lib - -ftstrpnm.exe: ftstrpnm.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftstrpnm.obj common.obj $(LIBDIR)\libttf.lib - -ftsbit.exe: $(TDOBJ) ftsbit.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftsbit.obj textdisp.obj common.obj $(LIBDIR)\libttf.lib - -ftmetric.exe: $(TDOBJ) ftmetric.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftmetric.obj textdisp.obj common.obj $(LIBDIR)\libttf.lib - -fterror.exe: fterror.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) fterror.obj common.obj $(LIBDIR)\libttf.lib - - -clean: do_clean - cd $(LIBDIR) - make -f$(FT_MAKEFILE) clean - cd ..\test - -distclean: do_clean - cd $(LIBDIR) - make -f$(FT_MAKEFILE) distclean - cd ..\test - -del *.exe - -del *.dll - -do_clean: - -del *.obj - -del $(ARCH)\*.obj - -del *.tds - -!include "$(ARCH)\depend.win" - -# end of Makefile diff --git a/Build/source/libs/freetype/freetype-1.5/test/arch/win32/Makefile.CL b/Build/source/libs/freetype/freetype-1.5/test/arch/win32/Makefile.CL deleted file mode 100644 index 18d8477c3cf..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/arch/win32/Makefile.CL +++ /dev/null @@ -1,185 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library and test programs for Microsoft Visual C++. -# -# You will need NMAKE. -# -# -# Use this file while in the 'test' directory with the following statement: -# -# nmake /f arch\win32\Makefile.CL -# -# A DLL version of the library can be built and then used with -# -# nmake DLL=1 /f arch\win32\Makefile.CL dll -# -# (do not forget to define DLL, otherwise the link phase will fail). -# -# -# Debug versions can be obtained with -# -# nmake DEBUG=1 /f arch\win32\Makefile.CL -# -# -# Copyright 1996-2001 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. - -ARCH = arch\win32 -FT_MAKEFILE = $(ARCH)\Makefile.CL -FT_MAKE = $(MAKE) /nologo -FT_DLL = ft15_32.dll - -CC = cl /nologo - -LIBDIR = ..\lib -INCDIRS = -I$(LIBDIR) -I$(LIBDIR)\$(ARCH) -I. -I$(LIBDIR)\extend - -CFLAGS_ANSI = /Za -!ifndef DEBUG -CFLAGS = /Ox /W2 $(INCDIRS) -LDFLAGS = -!else -CFLAGS = /Zi /Ge /W2 $(INCDIRS) -LDFLAGS = /Zi -!endif - -!ifdef DLL -CFLAGS = $(CFLAGS) /DEXPORT_DEF=__declspec(dllexport) /DFREETYPE_DLL -!endif - - -# Windows graphic driver -GDRIVER = $(ARCH)\gw_win32.c - -GSRC = display.c gmain.c blitter.c $(GDRIVER) - -GOBJ = $(GSRC:.c=.obj) - -SRC = arabic.c \ - common.c \ - textdisp.c \ - ftdump.c \ - fterror.c \ - ftlint.c \ - ftmetric.c \ - ftsbit.c \ - ftstring.c \ - ftstrpnm.c \ - ftstrtto.c \ - fttimer.c \ - ftview.c \ - ftzoom.c - -OBJ = $(SRC:.c=.obj) - - -.c.obj: - @$(CC) /c /Fo$* @<< - $(CFLAGS) $(CFLAGS_ANSI) $< -<< - -EXEFILES = ftdump.exe \ - fterror.exe \ - ftlint.exe \ - ftmetric.exe \ - ftsbit.exe \ - ftstring.exe \ - ftstrpnm.exe \ - ftstrtto.exe \ - fttimer.exe \ - ftview.exe \ - ftzoom.exe - -!ifndef DEBUG -# Skiped if DEBUG build -all: freetype $(EXEFILES) - -dll: the_dll $(EXEFILES) - -!else -# Skipped if non-DEBUG build -default_target: debug -dll: the_debug_dll $(EXEFILES) - -!endif - -debug: freetype_debug $(EXEFILES) - -freetype: - cd $(LIBDIR) - $(FT_MAKE) /f $(FT_MAKEFILE) all - cd ..\test - -freetype_debug: - cd $(LIBDIR) - $(FT_MAKE) /f $(FT_MAKEFILE) DEBUG=1 debug - cd ..\test - -the_dll: - cd $(LIBDIR) - $(FT_MAKE) /f $(FT_MAKEFILE) DLL=1 dll - cd ..\test - -copy $(LIBDIR)\$(FT_DLL) - -the_debug_dll: - cd $(LIBDIR) - $(FT_MAKE) /f $(FT_MAKEFILE) DEBUG=1 DLL=1 dll - cd ..\test - -copy $(LIBDIR)\$(FT_DLL) - - -# C compilers are unable to include 32-bit <windows.h> in ANSI mode. -# So we have a special rule for this file, to build it outside ANSI. -$(GDRIVER:.c=.obj): - $(CC) /c /Fo$* @<< - $(CFLAGS) /Ze $(GDRIVER) -<< - -.obj.exe: - $(CC) /Fe$* @<< - $(LDFLAGS) $** GDI32.LIB USER32.LIB -<< - -ftzoom.exe: $(GOBJ) ftzoom.obj common.obj $(LIBDIR)\libttf.lib -ftview.exe: $(GOBJ) ftview.obj common.obj $(LIBDIR)\libttf.lib -ftstring.exe: $(GOBJ) ftstring.obj common.obj $(LIBDIR)\libttf.lib -ftstrtto.exe: $(GOBJ) ftstrtto.obj common.obj arabic.obj $(LIBDIR)\libttf.lib -fttimer.exe: $(GOBJ) fttimer.obj common.obj $(LIBDIR)\libttf.lib -ftlint.exe: ftlint.obj common.obj $(LIBDIR)\libttf.lib -ftdump.exe: ftdump.obj common.obj $(LIBDIR)\libttf.lib -ftstrpnm.exe: ftstrpnm.obj common.obj $(LIBDIR)\libttf.lib -ftsbit.exe: ftsbit.obj common.obj textdisp.obj $(LIBDIR)\libttf.lib -ftmetric.exe: ftmetric.obj common.obj textdisp.obj $(LIBDIR)\libttf.lib -fterror.exe: fterror.obj common.obj $(LIBDIR)\libttf.lib - - -clean: do_clean - cd $(LIBDIR) - $(FT_MAKE) /f $(FT_MAKEFILE) clean - cd ..\test - -distclean: do_clean - cd $(LIBDIR) - $(FT_MAKE) /f $(FT_MAKEFILE) distclean - cd ..\test - -del *.exe - -del *.dll - -del *.pdb - -do_clean: - -del *.obj - -del $(ARCH)\*.obj - -del *.ilk - -del *.pch - -del *.exp - - -!include "$(ARCH)\depend.win" - -# end of Makefile.CL diff --git a/Build/source/libs/freetype/freetype-1.5/test/arch/win32/Makefile.Min b/Build/source/libs/freetype/freetype-1.5/test/arch/win32/Makefile.Min deleted file mode 100644 index 3e0552c7942..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/arch/win32/Makefile.Min +++ /dev/null @@ -1,134 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library and test programs for MinGW32 gcc under Win9x. -# -# You will need a port of GNU make; the MingW32 port works. -# -# Use this file while in the 'test' directory with the following statements: -# -# make -f arch/win32/Makefile.min depend -# make -f arch/win32/Makefile.min -# -# -# Copyright 1996-2002 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. - -ARCH = arch/win32 -FT_MAKEFILE = $(ARCH)/Makefile.min - -CC = gcc - -LIBDIR = ../lib -INCDIRS = -I$(LIBDIR) -I$(LIBDIR)/$(ARCH) -I. -I$(LIBDIR)/extend - -ifdef DEBUG - -CFLAGS = -ansi -pedantic -Wall -O2 -g $(INCDIRS) -LDFLAGS = -g -luser32 -lgdi32 - -else - -CFLAGS = -ansi -pedantic -Wall -O2 -s $(INCDIRS) -LDFLAGS = -s -luser32 -lgdi32 - -endif - - -# graphic Windows driver -GDRIVER = $(ARCH)/gw_win32.c - -SRC = arabic.c \ - common.c \ - textdisp.c \ - ftdump.c \ - fterror.c \ - ftlint.c \ - ftmetric.c \ - ftsbit.c \ - ftstring.c \ - ftstrpnm.c \ - ftstrtto.c \ - fttimer.c \ - ftview.c \ - ftzoom.c - -GSRC = gmain.c display.c blitter.c $(GDRIVER) -GOBJ = $(GSRC:.c=.o) - - -%.o: %.c - $(CC) $(CFLAGS) -c -o $@ $< - - -%.exe: - $(CC) $(LDFLAGS) -o $@ $^ - - -EXEFILES = ftdump.exe \ - fterror.exe \ - ftlint.exe \ - ftmetric.exe \ - ftsbit.exe \ - ftstring.exe \ - ftstrpnm.exe \ - ftstrtto.exe \ - fttimer.exe \ - ftview.exe \ - ftzoom.exe - -.PHONY: all debug freetype freetype_debug \ - clean distclean do_clean depend - - -all: freetype $(EXEFILES) - -debug: freetype_debug $(EXEFILES) - -freetype: - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) all - -freetype_debug: - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) debug - -ftzoom.exe: $(GOBJ) ftzoom.o common.o $(LIBDIR)/libttf.a -ftview.exe: $(GOBJ) ftview.o common.o $(LIBDIR)/libttf.a -ftlint.exe: ftlint.o common.o $(LIBDIR)/libttf.a -ftdump.exe: ftdump.o common.o $(LIBDIR)/libttf.a -fterror.exe: fterror.o common.o $(LIBDIR)/libttf.a -ftstring.exe: $(GOBJ) ftstring.o common.o $(LIBDIR)/libttf.a -fttimer.exe: $(GOBJ) fttimer.o common.o $(LIBDIR)/libttf.a -ftstrpnm.exe: ftstrpnm.o common.o $(LIBDIR)/libttf.a -ftsbit.exe: ftsbit.o common.o textdisp.o $(LIBDIR)/libttf.a -ftmetric.exe: ftmetric.o common.o textdisp.o $(LIBDIR)/libttf.a -ftstrtto.exe: $(GOBJ) ftstrtto.o common.o arabic.o $(LIBDIR)/libttf.a - - -clean: do_clean - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) clean - -distclean: do_clean - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) distclean - -del dep.end - -del *.exe - -del core - -do_clean: - -del *.o - -del response - -del $(subst /,\,$(GDRIVER:.c=.o)) - -depend: $(SRC) $(GSRC) - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) depend - $(CC) -E -MM $(INCDIRS) $^ > dep.end - -ifeq (dep.end,$(wildcard dep.end)) - include dep.end -endif - -# end of Makefile.gcc diff --git a/Build/source/libs/freetype/freetype-1.5/test/arch/win32/Makefile.gcc b/Build/source/libs/freetype/freetype-1.5/test/arch/win32/Makefile.gcc deleted file mode 100644 index 58b7eb22f79..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/arch/win32/Makefile.gcc +++ /dev/null @@ -1,143 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library and test programs for gcc under Win32. -# -# You will need GNU make. -# -# Use this file while in the 'test' directory with the following statements: -# -# make -f arch/win32/Makefile.gcc depend -# make -f arch/win32/Makefile.gcc -# -# -# If you have the GNU gettext package installed, you can also try -# -# make -f arch/win32/Makefile.gcc HAVE_GETTEXT -# -# -# Copyright 1996-2002 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. - -ARCH = arch/win32 -FT_MAKEFILE = $(ARCH)/Makefile.gcc - -CC = gcc - -LIBDIR = ../lib -INCDIRS = -I$(LIBDIR) -I$(LIBDIR)/$(ARCH) -I. -I$(LIBDIR)/extend - -ifndef GETTEXT -GETTEXT=NO_GETTEXT -endif - -CFLAGS = -Wall -ansi -O2 -g $(INCDIRS) -# -D$(GETTEXT) -# CFLAGS = -ansi -Wall -O2 -s $(INCDIRS) -D$(GETTEXT) - - -# graphic Windows driver -GDRIVER = $(ARCH)/gw_win32.c - -SRC = arabic.c \ - common.c \ - textdisp.c \ - ftdump.c \ - fterror.c \ - ftlint.c \ - ftmetric.c \ - ftsbit.c \ - ftstring.c \ - ftstrpnm.c \ - ftstrtto.c \ - fttimer.c \ - ftview.c \ - ftzoom.c - -GSRC = gmain.c display.c blitter.c $(GDRIVER) -GOBJ = $(GSRC:.c=.o) - - -%.o: %.c - $(CC) $(CFLAGS) -c -o $@ $< - - -ifeq ($(GETTEXT),HAVE_GETTEXT) -%.exe: - $(CC) $(CFLAGS) -o $@ $^ -lintl -else -%.exe: - $(CC) $(CFLAGS) -o $@ $^ -luser32 -lgdi32 -endif - - -EXEFILES = ftdump.exe \ - fterror.exe \ - ftlint.exe \ - ftmetric.exe \ - ftsbit.exe \ - ftstring.exe \ - ftstrpnm.exe \ - ftstrtto.exe \ - fttimer.exe \ - ftview.exe \ - ftzoom.exe - -.PHONY: all debug freetype freetype_debug \ - clean distclean do_clean depend - - -all: freetype $(EXEFILES) - -debug: freetype_debug $(EXEFILES) - -HAVE_GETTEXT: - $(MAKE) -f $(FT_MAKEFILE) GETTEXT=HAVE_GETTEXT all - -freetype: - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) all - -freetype_debug: - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) debug - -ftzoom.exe: $(GOBJ) ftzoom.o common.o $(LIBDIR)/libttf.a -ftview.exe: $(GOBJ) ftview.o common.o $(LIBDIR)/libttf.a -ftlint.exe: ftlint.o common.o $(LIBDIR)/libttf.a -ftdump.exe: ftdump.o common.o $(LIBDIR)/libttf.a -fterror.exe: fterror.o common.o $(LIBDIR)/libttf.a -ftstring.exe: $(GOBJ) ftstring.o common.o $(LIBDIR)/libttf.a -fttimer.exe: $(GOBJ) fttimer.o common.o $(LIBDIR)/libttf.a -ftstrpnm.exe: ftstrpnm.o common.o $(LIBDIR)/libttf.a -ftsbit.exe: ftsbit.o common.o textdisp.o $(LIBDIR)/libttf.a -ftmetric.exe: ftmetric.o common.o textdisp.o $(LIBDIR)/libttf.a -ftstrtto.exe: $(GOBJ) ftstrtto.o common.o arabic.o $(LIBDIR)/libttf.a - - -clean: do_clean - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) clean - -distclean: do_clean - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) distclean - -del dep.end - -del *.exe - -del core - -do_clean: - -del *.o - -del response - -del $(GDRIVER:.c=.o) - -depend: $(SRC) $(GSRC) - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) depend - $(CC) -E -MM $(INCDIRS) $^ > dep.end - -ifeq (dep.end,$(wildcard dep.end)) - include dep.end -endif - -# end of Makefile.gcc diff --git a/Build/source/libs/freetype/freetype-1.5/test/arch/win32/depend.win b/Build/source/libs/freetype/freetype-1.5/test/arch/win32/depend.win deleted file mode 100644 index 193f4af6d31..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/arch/win32/depend.win +++ /dev/null @@ -1,78 +0,0 @@ -# This file is part of the FreeType project. -# Automatically generated, but you can customize to fit your needs. -# However, changes will be erased if not made in `makedep'... -# -# This dependency file to be used with various Windows compilers -# has been generated automatically with the script `makedep' on -# 2002-02-19. - -arabic.obj: arabic.c arabic.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\extend\ftxopen.h ..\lib\extend\ftxgdef.h \ - ..\lib\extend\ftxgsub.h ..\lib\extend\ftxgpos.h -blitter.obj: blitter.c blitter.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h -common.obj: common.c common.h -display.obj: display.c display.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h gmain.h -fdebug.obj: fdebug.c ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\tttypes.h ..\lib\ttconfig.h \ - ..\lib\arch\win32\ft_conf.h ..\lib\ttdebug.h \ - ..\lib\ttobjs.h ..\lib\ttengine.h \ - ..\lib\ttmutex.h ..\lib\ttcache.h \ - ..\lib\tttables.h ..\lib\ttcmap.h -ftdump.obj: ftdump.c common.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\extend\ftxcmap.h ..\lib\extend\ftxopen.h \ - ..\lib\extend\ftxgdef.h ..\lib\extend\ftxgsub.h \ - ..\lib\extend\ftxgpos.h ..\lib\extend\ftxsbit.h \ - ..\lib\ttobjs.h ..\lib\ttconfig.h \ - ..\lib\arch\win32\ft_conf.h ..\lib\ttengine.h \ - ..\lib\tttypes.h ..\lib\ttmutex.h \ - ..\lib\ttcache.h ..\lib\tttables.h \ - ..\lib\ttcmap.h ..\lib\ttmemory.h -fterror.obj: fterror.c ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\extend\ftxerr18.h \ - ..\lib\arch\win32\ft_conf.h -ftlint.obj: ftlint.c common.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\arch\win32\ft_conf.h -ftmetric.obj: ftmetric.c common.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\extend\ftxsbit.h textdisp.h \ - ..\lib\arch\win32\ft_conf.h -ftsbit.obj: ftsbit.c common.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\extend\ftxsbit.h textdisp.h \ - ..\lib\arch\win32\ft_conf.h -ftstring.obj: ftstring.c common.h display.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h gevents.h \ - gdriver.h gmain.h -ftstrpnm.obj: ftstrpnm.c common.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h -ftstrtto.obj: ftstrtto.c arabic.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\extend\ftxopen.h ..\lib\extend\ftxgdef.h \ - ..\lib\extend\ftxgsub.h ..\lib\extend\ftxgpos.h \ - blitter.h common.h display.h ..\lib\extend\ftxkern.h \ - ..\lib\extend\ftxsbit.h gdriver.h gevents.h gmain.h \ - ..\lib\ttmemory.h ..\lib\ttconfig.h \ - ..\lib\arch\win32\ft_conf.h ..\lib\tttypes.h -fttimer.obj: fttimer.c common.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h gdriver.h \ - gevents.h gmain.h -ftview.obj: ftview.c blitter.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h common.h \ - display.h ..\lib\extend\ftxsbit.h gdriver.h gevents.h \ - gmain.h -ftzoom.obj: ftzoom.c common.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\extend\ftxpost.h gdriver.h gevents.h gmain.h -gmain.obj: gmain.c gdriver.h gmain.h -textdisp.obj: textdisp.c textdisp.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h -!ifndef __MAKE__ -arch\win32\gw_win32.obj: arch\win32\gw_win32.c gdriver.h gevents.h gmain.h -!endif diff --git a/Build/source/libs/freetype/freetype-1.5/test/arch/win32/gw_win32.c b/Build/source/libs/freetype/freetype-1.5/test/arch/win32/gw_win32.c deleted file mode 100644 index e11c63ca1ff..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/arch/win32/gw_win32.c +++ /dev/null @@ -1,378 +0,0 @@ -/******************************************************************* - * - * gw_win32.c graphics driver for Win32 platform. 0.1 - * - * This is the driver for displaying inside a window under Win32, - * used by the graphics utility of the FreeType test suite. - * - * Written by Antoine Leca. - * Copyright 1999-2000 Antoine Leca, - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * Borrowing liberally from the other FreeType drivers. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - ******************************************************************/ - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#define WIN32_LEAN_AND_MEAN -#include <windows.h> - -#include "gdriver.h" -#include "gevents.h" -#include "gmain.h" - - -/* Size of the window. */ -#define WIN_WIDTH 640u -#define WIN_HEIGHT 450u - -/* These values can be changed, but WIN_WIDTH should remain for now a */ -/* multiple of 32 to avoid padding issues. */ - - - typedef struct _Translator - { - char key; - GEvent event_class; - int event_info; - } Translator; - -#define NUM_Translators 20 - - static const Translator trans[NUM_Translators] = - { - { (char)27, event_Quit, 0 }, - { 'q', event_Quit, 0 }, - - { 'x', event_Rotate_Glyph, -1 }, - { 'c', event_Rotate_Glyph, 1 }, - { 'v', event_Rotate_Glyph, -16 }, - { 'b', event_Rotate_Glyph, 16 }, - - { '{', event_Change_Glyph, -10000 }, - { '}', event_Change_Glyph, 10000 }, - { '(', event_Change_Glyph, -1000 }, - { ')', event_Change_Glyph, 1000 }, - { '9', event_Change_Glyph, -100 }, - { '0', event_Change_Glyph, 100 }, - { 'i', event_Change_Glyph, -10 }, - { 'o', event_Change_Glyph, 10 }, - { 'k', event_Change_Glyph, -1 }, - { 'l', event_Change_Glyph, 1 }, - - { '+', event_Scale_Glyph, 10 }, - { '-', event_Scale_Glyph, -10 }, - { 'u', event_Scale_Glyph, 1 }, - { 'j', event_Scale_Glyph, -1 } - }; - - /* handle of the window. */ - static HWND hwndGraphic; - - /* bitmap information */ - static LPBITMAPINFO pbmi; - static HBITMAP hbm; - - /* local event to pass on */ - static TEvent ourevent = { event_Quit, 0 }; - static int eventToProcess = 0; - - /* array defined in the test programs */ - extern char Header[]; - - -/* restores screen to its original state */ - -int Driver_Restore_Mode() - { - /* The graphical window has perhaps already destroyed itself */ - if ( hwndGraphic ) { - DestroyWindow ( hwndGraphic ); - PostMessage( hwndGraphic, WM_QUIT, 0, 0 ); - } - - if ( pbmi ) free ( pbmi ); - - return 1; - } - - -/* - * set graphics mode - * and create the window class and the message handling. - */ - -/* Declarations of the Windows-specific functions that are below. */ -static BOOL RegisterTheClass ( void ); -static BOOL CreateTheWindow ( int width, int height ); - - -int Driver_Set_Graphics ( int mode ) - { - int i; - static RGBQUAD gray_scale[5] = { - { 0xFF, 0xFF, 0xFF, 0 }, /* white */ - { 0xC0, 0xC0, 0xC0, 0 }, - { 0x80, 0x80, 0x80, 0 }, - { 0x40, 0x40, 0x40, 0 }, - { 0, 0, 0, 0 } }; /* black */ - - if( ! RegisterTheClass() ) return 0; /* if already running, fails. */ - - /* find some memory for the bitmap header */ - if ( (pbmi = malloc ( sizeof ( BITMAPINFO ) + sizeof ( RGBQUAD ) * 256 ) ) - /* 256 should really be 2 if not grayscale */ - == NULL ) - /* lack of memory; fails the process */ - return 0; - - /* initialize the header to appropriate values */ - memset( pbmi, 0, sizeof ( BITMAPINFO ) + sizeof ( RGBQUAD ) * 256 ); - - switch ( mode ) - { - case Graphics_Mode_Mono: - pbmi->bmiHeader.biBitCount = 1; - pbmi->bmiColors[0] = gray_scale[0]; - pbmi->bmiColors[1] = gray_scale[4]; - - vio_ScanLineWidth = WIN_WIDTH / 8; - vio_Width = WIN_WIDTH; - vio_Height = WIN_HEIGHT; - - break; - - case Graphics_Mode_Gray: - pbmi->bmiHeader.biBitCount = 8; - pbmi->bmiHeader.biClrUsed = 5; - - memcpy ( &pbmi->bmiColors[0], gray_scale, sizeof gray_scale ); - - vio_ScanLineWidth = WIN_WIDTH; - vio_Width = WIN_WIDTH; - vio_Height = WIN_HEIGHT; - - for ( i = 0; i < 5; ++i ) - gray_palette[i] = i; - - break; - - default: - free ( pbmi ); - return 0; /* Unknown mode */ - } - - pbmi->bmiHeader.biSize = sizeof ( BITMAPINFOHEADER ); - pbmi->bmiHeader.biWidth = vio_Width; - pbmi->bmiHeader.biHeight = vio_Height; - pbmi->bmiHeader.biPlanes = 1; - - if( ! CreateTheWindow(vio_Width, vio_Height) ) - { - free ( pbmi ); - return 0; - } - - return 1; /* success even if the window was not built. */ - } - - -int Driver_Display_Bitmap ( char* buffer, int lines, int cols ) - { - HDC hDC; - - if ( cols * 8 != pbmi->bmiHeader.biWidth * pbmi->bmiHeader.biBitCount ) - pbmi->bmiHeader.biWidth = cols * 8 / pbmi->bmiHeader.biBitCount; - - hDC = GetDC ( hwndGraphic ); - SetDIBits ( hDC, hbm, 0, lines, buffer, pbmi, DIB_RGB_COLORS ); - ReleaseDC ( hwndGraphic, hDC ); - - ShowWindow( hwndGraphic, SW_SHOW ); - InvalidateRect ( hwndGraphic, NULL, FALSE ); - UpdateWindow ( hwndGraphic ); - - return 1; /* success */ - } - - -void Get_Event( TEvent* event ) - { - MSG msg; - - if ( hwndGraphic ) - { - SetWindowText ( hwndGraphic, Header ); - } - - do { - while ( PeekMessage( &msg, 0, 0, 0, PM_REMOVE ) ) { - TranslateMessage ( &msg ); - DispatchMessage ( &msg ); - } - if ( ! eventToProcess ) - WaitMessage(); - } while ( ! eventToProcess ); - - event->what = ourevent.what; - event->info = ourevent.info; - eventToProcess = 0; - return; - } - - -/* ---- Windows-specific stuff ------------------------------------------- */ - -LRESULT CALLBACK Message_Process( HWND, UINT, WPARAM, LPARAM ); - -static -BOOL RegisterTheClass ( void ) - { - WNDCLASS ourClass = { - /* UINT style */ 0, - /* WNDPROC lpfnWndProc */ Message_Process, - /* int cbClsExtra */ 0, - /* int cbWndExtra */ 0, - /* HANDLE hInstance */ 0, - /* HICON hIcon */ 0, - /* HCURSOR hCursor */ 0, - /* HBRUSH hbrBackground*/ 0, - /* LPCTSTR lpszMenuName */ NULL, - /* LPCTSTR lpszClassName*/ "FreeTypeTestGraphicDriver" - }; - - ourClass.hInstance = GetModuleHandle( NULL ); - ourClass.hIcon = LoadIcon(0, IDI_APPLICATION); - ourClass.hCursor = LoadCursor(0, IDC_ARROW); - ourClass.hbrBackground= GetStockObject(BLACK_BRUSH); - - return RegisterClass(&ourClass) != 0; /* return False if it fails. */ - } - -static -BOOL CreateTheWindow ( int width, int height ) - { - - if ( ! (hwndGraphic = CreateWindow( - /* LPCSTR lpszClassName; */ "FreeTypeTestGraphicDriver", - /* LPCSTR lpszWindowName; */ "FreeType Test Graphic Driver", - /* DWORD dwStyle; */ WS_OVERLAPPED | WS_SYSMENU, - /* int x; */ CW_USEDEFAULT, - /* int y; */ CW_USEDEFAULT, - /* int nWidth; */ width + 2*GetSystemMetrics(SM_CXBORDER), - /* int nHeight; */ height+ GetSystemMetrics(SM_CYBORDER) - + GetSystemMetrics(SM_CYCAPTION), - /* HWND hwndParent; */ HWND_DESKTOP, - /* HMENU hmenu; */ 0, - /* HINSTANCE hinst; */ GetModuleHandle( NULL ), - /* void FAR* lpvParam; */ NULL)) - ) - /* creation failed... */ - return 0; - - return 1; - } - - /* Message processing for our Windows class */ -LRESULT CALLBACK Message_Process( HWND handle, UINT mess, - WPARAM wParam, LPARAM lParam ) - { - - switch( mess ) - { - case WM_DESTROY: - /* warn the main thread to quit if it didn't know */ - ourevent.what = event_Quit; - ourevent.info = 0; - eventToProcess = 1; - hwndGraphic = 0; - PostQuitMessage ( 0 ); - DeleteObject ( hbm ); - break; - - case WM_CREATE: - { - HDC hDC; - - hDC = GetDC ( handle ); - hbm = CreateDIBitmap ( - /* HDC hdc; handle of device context */ hDC, - /* BITMAPINFOHEADER FAR* lpbmih; addr.of header*/ &pbmi->bmiHeader, - /* DWORD dwInit; CBM_INIT to initialize bitmap */ 0, - /* const void FAR* lpvBits; address of values */ NULL, - /* BITMAPINFO FAR* lpbmi; addr.of bitmap data */ pbmi, - /* UINT fnColorUse; RGB or palette indices */ DIB_RGB_COLORS); - ReleaseDC ( handle, hDC ); - break; - } - - case WM_PAINT: - { - HDC hDC, memDC; - HANDLE oldbm; - PAINTSTRUCT ps; - - hDC = BeginPaint ( handle, &ps ); - memDC = CreateCompatibleDC(hDC); - oldbm = SelectObject(memDC, hbm); - BitBlt ( hDC, 0, 0, vio_Width, vio_Height, memDC, 0, 0, SRCCOPY); - ReleaseDC ( handle, hDC ); - SelectObject ( memDC, oldbm ); - DeleteObject ( memDC ); - EndPaint ( handle, &ps ); - } - - case WM_KEYDOWN: - switch ( wParam ) - { - case VK_ESCAPE: - ourevent.what = event_Quit; - ourevent.info = 0; - eventToProcess = 1; - break; - - case VK_F1: /* bring up help and about dialog window */ - break; - } - break; - - case WM_CHAR: - { - char c = wParam ; - int i; - - for ( i = 0; i < NUM_Translators; i++ ) - { - if ( c == trans[i].key ) - { - ourevent.what = trans[i].event_class; - ourevent.info = trans[i].event_info; - eventToProcess = 1; - return 0; - } - } - - /* unrecognized keystroke */ - ourevent.what = event_Keyboard; - ourevent.info = (int)c; - eventToProcess = 1; - } - break; - - default: - return DefWindowProc( handle, mess, wParam, lParam ); - } - - return 0; - } - -/* End */ diff --git a/Build/source/libs/freetype/freetype-1.5/test/arch/win32/makedep b/Build/source/libs/freetype/freetype-1.5/test/arch/win32/makedep deleted file mode 100755 index 7f3f19ffdc5..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/arch/win32/makedep +++ /dev/null @@ -1,42 +0,0 @@ -# makedep -# -# This shell script creates a dependency file necessary for some compilers -# on the Windows 32-bit platform. -# -# If you run this script under non-Windows operating systems, expect -# warnings that `windows.h' can't be found. -# -# Copyright 1996-2002 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. - -echo "\ -# This file is part of the FreeType project. -# Automatically generated, but you can customize to fit your needs. -# However, changes will be erased if not made in \`makedep'... -# -# This dependency file to be used with various Windows compilers -# has been generated automatically with the script \`makedep' on -# `date +%Y-%m-%d`. -" > depend.win - -(cd ../.. - gcc -MM -I../lib/arch/win32 -I../lib -I../lib/extend -I. *.c | \ - sed -e "s/\.o:/.obj:/" -e "s:/:\\\\:g") >> depend.win - -echo "!ifndef __MAKE__" >> depend.win - -(cd ../.. - gcc -MM -I../lib/arch/win32 -I../lib -I../lib/extend -I. \ - arch/win32/*.c | \ - sed -e "s/^\(.*\)\.o:/arch\\\\win32\\\\\1.obj:/" \ - -e "s:/:\\\\:g") >> depend.win - -echo "!endif" >> depend.win - -# eof diff --git a/Build/source/libs/freetype/freetype-1.5/test/blitter.c b/Build/source/libs/freetype/freetype-1.5/test/blitter.c deleted file mode 100644 index 66926e1ee46..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/blitter.c +++ /dev/null @@ -1,492 +0,0 @@ -/****************************************************************************/ -/* */ -/* The FreeType project -- a free and portable quality TrueType renderer. */ -/* */ -/* Copyright 1996-2000 by */ -/* D. Turner, R.Wilhelm, and W. Lemberg */ -/* */ -/* blitter.c: Support for blitting of bitmaps with various depth. */ -/* */ -/****************************************************************************/ - -#include "blitter.h" - - - typedef struct TBlitter_ - { - int width; /* width in pixels of the written area */ - int height; /* height in pixels of the written area */ - - int xread; /* x position of start point in read area */ - int yread; /* y position of start point in read area */ - - int xwrite; /* x position of start point in write area */ - int ywrite; /* y position of start point in write area */ - - int right_clip; /* amount of right clip */ - - char* read; /* top left corner of source map */ - char* write; /* top left corner of target map */ - - int read_line; /* byte increment to go down one row in read area */ - int write_line; /* byte increment to go down one row in write area */ - - TT_Raster_Map source; - TT_Raster_Map target; - - int source_depth; - int target_depth; - - } TBlitter; - - - static - int compute_clips( TBlitter* blit, - int x_offset, - int y_offset ) - { - int xmin, ymin, xmax, ymax, width, height, target_width; - - - /* perform clipping and setup variables */ - width = blit->source.width; - height = blit->source.rows; - - switch ( blit->source_depth ) - { - case 1: - width = (width + 7) & -8; - break; - - case 4: - width = (width + 1) & -2; - break; - } - - xmin = x_offset; - ymin = y_offset; - xmax = xmin + width-1; - ymax = ymin + height-1; - - /* clip if necessary */ - if ( width == 0 || height == 0 || - xmax < 0 || xmin >= blit->target.width || - ymax < 0 || ymin >= blit->target.rows ) - return 1; - - /* set up clipping and cursors */ - blit->yread = 0; - if ( ymin < 0 ) - { - blit->yread -= ymin; - height += ymin; - blit->ywrite = 0; - } - else - blit->ywrite = ymin; - - if ( ymax >= blit->target.rows ) - height -= ymax - blit->target.rows + 1; - - blit->xread = 0; - if ( xmin < 0 ) - { - blit->xread -= xmin; - width += xmin; - blit->xwrite = 0; - } - else - blit->xwrite = xmin; - - target_width = blit->target.width; - - switch ( blit->target_depth ) - { - case 1: - target_width = (target_width + 7) & -8; - break; - case 4: - target_width = (target_width + 1) & -2; - break; - } - - blit->right_clip = xmax - target_width + 1; - if ( blit->right_clip > 0 ) - width -= blit->right_clip; - else - blit->right_clip = 0; - - blit->width = width; - blit->height = height; - - /* set read and write to the top-left corner of the the read */ - /* and write area before clipping. */ - - blit->read = (char*)blit->source.bitmap; - blit->write = (char*)blit->target.bitmap; - - if ( blit->source.flow == TT_Flow_Up ) - { - blit->read_line = -blit->source.cols; - blit->read += (blit->source.rows-1) * blit->source.cols; - } - else - blit->read_line = blit->source.cols; - - if ( blit->target.flow == TT_Flow_Up ) - { - blit->write_line = -blit->target.cols; - blit->write += (blit->target.rows-1) * blit->target.cols; - } - else - blit->write_line = blit->target.cols; - - /* now go to the start line. Note that we do not move the */ - /* x position yet, as this is dependent on the pixel format */ - blit->read += blit->yread * blit->read_line; - blit->write += blit->ywrite * blit->write_line; - - return 0; - } - - -/**************************************************************************/ -/* */ -/* <Function> blit_bitmap_to_bitmap */ -/* */ -/**************************************************************************/ - - static - void blit_bitmap_to_bitmap( TBlitter* blit ) - { - int shift, left_clip, x, y; - unsigned char* read; - unsigned char* write; - - - left_clip = ( blit->xread > 0 ); - shift = ( blit->xwrite - blit->xread ) & 7; - - read = (unsigned char*)blit->read + (blit->xread >> 3); - write = (unsigned char*)blit->write + (blit->xwrite >> 3); - - if ( shift == 0 ) - { - y = blit->height; - do - { - unsigned char* _read = read; - unsigned char* _write = write; - - - x = blit->width; - - do - { - *_write++ |= *_read++; - x -= 8; - } while ( x > 0 ); - - read += blit->read_line; - write += blit->write_line; - y--; - } while ( y > 0 ); - } - else - { - int first, last, count; - - - first = blit->xwrite >> 3; - last = (blit->xwrite + blit->width-1) >> 3; - - count = last - first; - - if ( blit->right_clip ) - count++; - - y = blit->height; - - do - { - unsigned char* _read = read; - unsigned char* _write = write; - unsigned char old; - int shift2 = (8-shift); - - - if ( left_clip ) - old = (*_read++) << shift2; - else - old = 0; - - x = count; - while ( x > 0 ) - { - unsigned char val; - - - val = *_read++; - *_write++ |= ( (val >> shift) | old ); - old = val << shift2; - x--; - } - - if ( !blit->right_clip ) - *_write |= old; - - read += blit->read_line; - write += blit->write_line; - y--; - - } while ( y > 0 ); - } - } - - -/**************************************************************************/ -/* */ -/* <Function> blit_bitmap_to_pixmap8 */ -/* */ -/**************************************************************************/ - - static - void blit_bitmap_to_pixmap8( TBlitter* blit, - unsigned char color ) - { - int x, y; - unsigned int left_mask; - unsigned char* read; - unsigned char* write; - - - read = (unsigned char*)blit->read + (blit->xread >> 3); - write = (unsigned char*)blit->write + blit->xwrite; - - left_mask = 0x80 >> (blit->xread & 7); - - y = blit->height; - do - { - unsigned char* _read = read; - unsigned char* _write = write; - unsigned int mask = left_mask; - unsigned int val = 0; - - - x = blit->width; - do - { - if ( mask == 0x80 ) - val = *_read++; - - if ( val & mask ) - *_write = (unsigned char)color; - - mask >>= 1; - if ( mask == 0 ) - mask = 0x80; - - _write++; - x--; - } while ( x > 0 ); - - read += blit->read_line; - write += blit->write_line; - y--; - } while ( y > 0 ); - } - - -/**************************************************************************/ -/* */ -/* <Function> blit_bitmap_to_pixmap4 */ -/* */ -/**************************************************************************/ - - static - void blit_bitmap_to_pixmap4( TBlitter* blit, - unsigned char color ) - { - int x, y, phase; - unsigned int left_mask; - unsigned char* read; - unsigned char* write; - - - color = color & 15; - - read = (unsigned char*)blit->read + (blit->xread >> 3); - write = (unsigned char*)blit->write + (blit->xwrite >> 1); - - /* now begin blit */ - left_mask = 0x80 >> (blit->xread & 7); - phase = blit->xwrite & 1; - - y = blit->height; - do - { - unsigned char* _read = read; - unsigned char* _write = write; - unsigned int mask = left_mask; - int _phase = phase; - unsigned int val = 0; - - x = blit->width; - do - { - if ( mask == 0x80 ) - val = *_read++; - - if ( val & mask ) - { - if ( _phase ) - *_write = (*_write & 0xF0) | color; - else - *_write = (*_write & 0x0F) | (color << 4); - } - - mask >>= 1; - if ( mask == 0 ) - mask = 0x80; - - _write += _phase; - _phase ^= 1; - x--; - } while ( x > 0 ); - - read += blit->read_line; - write += blit->write_line; - y--; - } while ( y > 0 ); - } - - -/**************************************************************************/ -/* */ -/* <Function> blit_bitmap_to_pixmap16 */ -/* */ -/**************************************************************************/ - - static - void blit_bitmap_to_pixmap16( TBlitter* blit, - unsigned short color ) - { - int x, y; - unsigned int left_mask; - unsigned char* read; - unsigned short* write; - - - read = (unsigned char*)blit->read + (blit->xread >> 3); - write = (unsigned short*)(blit->write + blit->xwrite*2); - - left_mask = 0x80 >> (blit->xread & 7); - - y = blit->height; - do - { - unsigned char* _read = read; - unsigned short* _write = write; - unsigned int mask = left_mask; - unsigned int val = 0; - - x = blit->width; - do - { - if ( mask == 0x80 ) - val = *_read++; - - if ( val & mask ) - *_write = color; - - mask >>= 1; - if ( mask == 0 ) - mask = 0x80; - - _write++; - x--; - } while ( x > 0 ); - - read += blit->read_line; - write += blit->write_line; - y--; - } while ( y > 0 ); - } - - - /* <Function> */ - /* Blit_Bitmap */ - /* */ - /* <Description> */ - /* blit a source bitmap to a target bitmap or pixmap */ - /* */ - /* <Input> */ - /* target :: target bitmap or pixmap */ - /* source :: source bitmap (depth must be 1) */ - /* target_depth :: pixel bit depth of target map */ - /* x_offset :: horizontal offset of source in target */ - /* y_offset :: vertical offset of source in target */ - /* color :: color to use when blitting to color pixmap */ - /* */ - /* <Return> */ - /* error code. 0 means success */ - /* */ - /* <Note> */ - /* an error occurs when the target bit depth isn't supported, or */ - /* if the source's bit depth isn't 1. */ - /* */ - /* the offsets are relative to the top-left corner of the target */ - /* map. Positive y are downwards. */ - /* */ - extern - int Blit_Bitmap( TT_Raster_Map* target, - TT_Raster_Map* source, - int target_depth, - int x_offset, - int y_offset, - int color ) - { - TBlitter blit; - - - if ( !target || !source ) - return -1; - - blit.source = *source; - blit.target = *target; - blit.source_depth = 1; - blit.target_depth = target_depth; - - /* set up blitter and compute clipping. Return immediately if needed */ - if ( compute_clips( &blit, x_offset, y_offset ) ) - return 0; - - /* now perform the blit */ - switch ( target_depth ) - { - case 1: - blit_bitmap_to_bitmap( &blit ); - break; - - case 4: - blit_bitmap_to_pixmap4( &blit, (unsigned char)color ); - break; - - case 8: - blit_bitmap_to_pixmap8( &blit, (unsigned char)color ); - break; - - case 16: - blit_bitmap_to_pixmap16( &blit, (unsigned short)color ); - break; - - default: - return -2; - } - - return 0; - } - - -/* End */ diff --git a/Build/source/libs/freetype/freetype-1.5/test/blitter.h b/Build/source/libs/freetype/freetype-1.5/test/blitter.h deleted file mode 100644 index 9fe749afa34..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/blitter.h +++ /dev/null @@ -1,52 +0,0 @@ -/****************************************************************************/ -/* */ -/* The FreeType project -- a free and portable quality TrueType renderer. */ -/* */ -/* Copyright 1996-2001 by */ -/* D. Turner, R.Wilhelm, and W. Lemberg */ -/* */ -/* blitter.h: Support for blitting of bitmaps with various depth. */ -/* */ -/****************************************************************************/ - -#ifndef BLITTER_H -#define BLITTER_H - -#include "freetype.h" - - /* <Function> */ - /* Blit_Bitmap */ - /* */ - /* <Description> */ - /* blit a source bitmap to a target bitmap or pixmap */ - /* */ - /* <Input> */ - /* target :: target bitmap or pixmap */ - /* source :: source bitmap (depth must be 1) */ - /* target_depth :: pixel bit depth of target map */ - /* x_offset :: horizontal offset of source in target */ - /* y_offset :: vertical offset of source in target */ - /* color :: color to use when blitting to color pixmap */ - /* */ - /* <Return> */ - /* error code. 0 means success */ - /* */ - /* <Note> */ - /* an error occurs when the target bit depth isn't supported, or */ - /* if the source's bit depth isn't 1. */ - /* */ - /* the offsets are relative to the top-left corner of the target */ - /* map. Positive y are downwards. */ - /* */ - extern - int Blit_Bitmap( TT_Raster_Map* target, - TT_Raster_Map* source, - int target_depth, - int x_offset, - int y_offset, - int color ); - -#endif - - -/* End */ diff --git a/Build/source/libs/freetype/freetype-1.5/test/common.c b/Build/source/libs/freetype/freetype-1.5/test/common.c deleted file mode 100644 index 9976293dac0..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/common.c +++ /dev/null @@ -1,276 +0,0 @@ -/****************************************************************************/ -/* */ -/* The FreeType project -- a free and portable quality TrueType renderer. */ -/* */ -/* Copyright 1996-2001 by */ -/* D. Turner, R.Wilhelm, and W. Lemberg */ -/* */ -/* common.c: Various utility functions. */ -/* */ -/****************************************************************************/ - - -/* - * This is a cheap replacement for getopt() because that routine is not - * available on some platforms and behaves differently on other platforms. - * This code was written from scratch without looking at any other - * implementation. - * - * This code is hereby expressly placed in the public domain. - * mleisher@crl.nmsu.edu (Mark Leisher) - * 10 October 1997 - */ - -#ifndef lint -#ifdef __GNUC__ - static char rcsid[] __attribute__ ((unused)) = "$Id: common.c,v 1.16 2001/12/25 20:13:04 antoineL Exp $"; -#else - static char rcsid[] = "$Id: common.c,v 1.16 2001/12/25 20:13:04 antoineL Exp $"; -#endif -#endif - -#include <stdarg.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include "common.h" - - /* - * Externals visible to programs. - */ - - int ft_opterr = 1; - int ft_optind = 1; - char* ft_optarg; - - /* - * Internal variables that are used to detect when the global values - * need to be reset. - */ - - static int cmdac; -#ifdef __STDC__ - static const char* cmdname; - static char* const* cmdav; -#else - static char* cmdname; - static char** cmdav; -#endif - - - int -#ifdef __STDC__ - ft_getopt( int ac, char* const* av, const char* pat ) -#else - ft_getopt( ac, av, pat ) - int ac; - char** av; - char* pat; -#endif - { - int opt; -#ifdef __STDC__ - const char* p; - const char* pp; -#else - char* p; - char* pp; -#endif - - - /* - * If there is no pattern, indicate the parsing is done. - */ - if ( pat == 0 || *pat == 0 ) - return -1; - - /* - * Always reset the option argument to NULL. - */ - ft_optarg = 0; - - /* - * If the number of arguments or argument list do not match the last - * values seen, reset the internal pointers and the globals. - */ - if ( ac != cmdac || av != cmdav ) - { - ft_optind = 1; - cmdac = ac; - cmdav = av; - - /* - * Determine the command name in case it is needed for warning - * messages. - */ - for ( cmdname = 0, p = av[0]; *p; p++ ) - { - if ( *p == '/' || *p == '\\' ) - cmdname = p; - } - - /* - * Skip the path separator if the name was assigned. - */ - if ( cmdname ) - cmdname++; - else - cmdname = av[0]; - } - - /* - * If the next index is greater than or equal to the number of - * arguments, then the command line is done. - */ - if ( ft_optind >= ac ) - return -1; - - /* - * Test the next argument for one of three cases: - * 1. The next argument does not have an initial '-'. - * 2. The next argument is '-'. - * 3. The next argument is '--'. - * - * In either of these cases, command line processing is done. - */ - if ( av[ft_optind][0] != '-' || - strcmp( av[ft_optind], "-" ) == 0 || - strcmp( av[ft_optind], "--" ) == 0 ) - return -1; - - /* - * Point at the next command line argument and increment the - * command line index. - */ - p = av[ft_optind++]; - - /* - * Look for the first character of the command line option. - */ - for ( opt = *(p + 1), pp = pat; *pp && *pp != opt; pp++ ) - ; - - /* - * If nothing in the pattern was recognized, then issue a warning - * and return a '?'. - */ - if ( *pp == 0 ) - { - if ( ft_opterr ) - fprintf( stderr, "%s: illegal option -- %c\n", cmdname, opt ); - return '?'; - } - - /* - * If the option expects an argument, get it. - */ - if ( *(pp + 1) == ':' && (ft_optarg = av[ft_optind]) == 0 ) - { - /* - * If the option argument is NULL, issue a warning and return a '?'. - */ - if ( ft_opterr ) - fprintf( stderr, "%s: option requires an argument -- %c\n", - cmdname, opt ); - opt = '?'; - } - else if ( ft_optarg ) - /* - * Increment the option index past the argument. - */ - ft_optind++; - - /* - * Return the option character. - */ - return opt; - } - - -/****************************************************************************/ -/* */ -/* ft_basename(): */ -/* */ -/* a stupid but useful function... */ -/* */ -/* rewritten by DavidT to get rid of GPLed programs in the FreeType engine. */ -/* */ -/****************************************************************************/ - - char* -#ifdef __STDC__ - ft_basename( const char* name ) -#else - ft_basename( name ) - char* name; -#endif - { -#ifdef __STDC__ - const char* base; - const char* current; -#else - char* base; - char* current; -#endif - char c; - - - base = name; - current = name; - - c = *current; - - while ( c ) - { - if ( c == '/' || c == '\\' ) - base = current + 1; - - current++; - c = *current; - } - - return (char*)base; - } - -/****************************************************************************/ - - void -#ifdef __STDC__ - Panic( const char* fmt, ... ) -#else - Panic( fmt ) - const char* fmt; -#endif - { - va_list ap; - - - va_start( ap, fmt ); - vprintf( fmt, ap ); - va_end( ap ); - - exit( EXIT_FAILURE ); - } - -/****************************************************************************/ - - void -#ifdef __STDC__ - separator_line( FILE* out, const int length ) -#else - separator_line( out, length ) - FILE* out; - int length; -#endif - { - int i; - - - for ( i = 0; i < length; i++ ) - fputc( '-', out ); - fprintf( out, "\n\n" ); - } - - -/* End */ diff --git a/Build/source/libs/freetype/freetype-1.5/test/common.h b/Build/source/libs/freetype/freetype-1.5/test/common.h deleted file mode 100644 index 16e42416890..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/common.h +++ /dev/null @@ -1,81 +0,0 @@ -/****************************************************************************/ -/* */ -/* The FreeType project -- a free and portable quality TrueType renderer. */ -/* */ -/* Copyright 1996-2001 by */ -/* D. Turner, R.Wilhelm, and W. Lemberg */ -/* */ -/* common.h: Various utility functions. */ -/* */ -/****************************************************************************/ - -#ifndef COMMON_H -#define COMMON_H - -#include <stdio.h> - - -/* - * This is a cheap replacement for getopt() because that routine is not - * available on some platforms and behaves differently on other platforms. - * - * This code is hereby expressly placed in the public domain. - * mleisher@crl.nmsu.edu (Mark Leisher) - * 10 October 1997 - */ - -#ifdef __cplusplus - extern "C" { -#endif - - extern int ft_opterr; - extern int ft_optind; - extern char* ft_optarg; - - extern int ft_getopt( -#ifdef __STDC__ - int argc, - char* const* argv, - const char* pattern -#endif - ); - - -/****************************************************************************/ -/* */ -/* Stupid but useful functions... */ -/* */ -/* rewritten by DavidT to get rid of GPLed programs in the FreeType engine. */ - - - extern char* ft_basename( -#ifdef __STDC__ - const char* name -#endif - ); - - - /* print a message and exit */ - extern void Panic( -#ifdef __STDC__ - const char* fmt, ... -#endif - ); - - - extern void separator_line( -#ifdef __STDC__ - FILE* out, - const int length -#endif - ); - - -#ifdef __cplusplus - } -#endif - -#endif /* COMMON_H */ - - -/* End */ diff --git a/Build/source/libs/freetype/freetype-1.5/test/display.c b/Build/source/libs/freetype/freetype-1.5/test/display.c deleted file mode 100644 index 7711b33ccdc..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/display.c +++ /dev/null @@ -1,299 +0,0 @@ -/****************************************************************************/ -/* */ -/* The FreeType project -- a free and portable quality TrueType renderer. */ -/* */ -/* Copyright 1996-2000 by */ -/* D. Turner, R.Wilhelm, and W. Lemberg */ -/* */ -/* display.c: Display component used by all test programs. */ -/* */ -/* This file is used to display glyphs and strings in a target window */ -/* using the graphics drivers provided by gmain.c, gevents.h, etc. */ -/* */ -/* Its role is to be shared and heavely commented to let people understand */ -/* how we do the job... */ -/* */ -/****************************************************************************/ - -#include <stdlib.h> /* malloc() and free() */ -#include <string.h> /* memset() */ - -#include "display.h" -#include "freetype.h" -#include "gmain.h" - - /* The target bitmap or pixmap -- covering the full display window/screen */ - TT_Raster_Map Bit; - - /* A smaller intermediate bitmap used to render individual glyphs when */ - /* font smoothing mode is activated. It is then or-ed to `Bit'. */ - TT_Raster_Map Small_Bit; - -/* The magic of or-ing gray-levels: */ -/* */ -/* When gray-level mode (a.k.a. font-smoothing) is on, `Bit' is an 8-bit */ -/* pixmap of the size of the display window or screen. */ -/* */ -/* The gray-level palette to use for display is system-dependent, and */ -/* given by the "gray_palette" variable defined in 'gmain.c'. It is */ -/* set up by the graphics driver, and we cannot assume anything about its */ -/* values. */ -/* */ -/* The function TT_Get_Glyph_Pixmap() can use any palette to render each */ -/* individual glyph, however we'll later need to "or" the glyph to */ -/* the display pixmap `Bit' to be able to form strings of text by */ -/* juxtaposing several glyphs together. */ -/* */ -/* If we use the gray_palette directly, we'll encounter trouble doing */ -/* the "or". Example: */ -/* */ -/* Suppose that gray_palette = { 0, 32, 64, 128, 255 } */ -/* */ -/* Let's render a glyph with this palette and "or" it to */ -/* the `Bit' pixmap. If, by chance, we superpose two distinct non-zero */ -/* colors, we will get strange results, like 32+64 = 96, which isn't in */ -/* our gray palette! */ -/* */ -/* There are two ways to solve this problem: */ -/* */ -/* - perform a "slow or" where we check all possible combinations */ -/* and solve conflicts. */ -/* */ -/* - render all pixmaps using a special "virtual" palette that eases */ -/* the "oring" process, then convert the whole display pixmap to */ -/* "display" colors at once. */ -/* */ -/* We choose the second solution, of course; this means that: */ -/* */ -/* - the virtual palette used is simply = { 0, 1, 2, 3, 4 }, defined in */ -/* the variable "palette" below. The `Bit' and `Small_Bit' pixmaps will */ -/* always contain pixels within these values, with the exception of */ -/* post-render display, where `Bit' will be converted to display values */ -/* by the Convert_To_Display_Palette() function. */ -/* */ -/* - as or-ing values between 0 and 4 will give us values between */ -/* 0 and 7, we use a second palette, called "bounding_palette" */ -/* to maintain all values within the virtual palette. */ -/* */ -/* in effect bounding_palette = { 0, 1, 2, 3, 4, 4, 4, 4 } */ -/* */ -/* which means that (3|4) == 7 => 4 after bounding */ -/* */ - - /* the virtual palette */ - unsigned char virtual_palette[5] = { 0, 1, 2, 3, 4 }; - - /* Or-ing the possible palette values gets us from 0 to 7 */ - /* We must bound check these... */ - unsigned char bounded_palette[8] = { 0, 1, 2, 3, 4, 4, 4, 4 }; - - - /* Clears the Bit bitmap/pixmap */ - void Clear_Display( void ) - { - memset( Bit.bitmap, 0, Bit.size ); - } - - - /* Clears the Small_Bit pixmap */ - void Clear_Small( void ) - { - memset( Small_Bit.bitmap, 0, Small_Bit.size ); - } - - - /* Initialize the display bitmap named Bit */ - int Init_Display( int font_smoothing ) - { - Bit.rows = vio_Height; /* the whole window */ - Bit.width = vio_Width; - Bit.flow = TT_Flow_Up; - - if ( font_smoothing ) - Bit.cols = (Bit.width+3) & -4; /* must be 32-bits aligned */ - else - Bit.cols = (Bit.width+7) >> 3; - - Bit.size = (long)Bit.cols * Bit.rows; - - if ( Bit.bitmap ) - free( Bit.bitmap ); - Bit.bitmap = malloc( (int)Bit.size ); - if ( !Bit.bitmap ) - return -1; - - Clear_Display(); - return 0; - } - - - /* Convert the display pixmap from virtual to display palette */ - void Convert_To_Display_Palette( void ) - { - unsigned char* p; - long i; - - p = Bit.bitmap; - for ( i = 0; i < Bit.size; i++ ) - { - *p = gray_palette[(int)*p]; - p++; - } - } - - - /* Init Small Bitmap */ - int Init_Small( int x_ppem, int y_ppem ) - { - if ( Small_Bit.bitmap ) - free( Small_Bit.bitmap ); - - Small_Bit.rows = y_ppem + 32; - Small_Bit.width = x_ppem + 32; - Small_Bit.cols = ( Small_Bit.width+3 ) & -4; /* pad to 32-bits */ - Small_Bit.flow = TT_Flow_Up; - Small_Bit.size = (long)Small_Bit.rows * Small_Bit.cols; - - Small_Bit.bitmap = malloc( (int)Small_Bit.size ); - if ( Small_Bit.bitmap ) - return -1; - - Clear_Small(); - return 0; - } - - - /* Render a single glyph into the display bit/pixmap */ - /* */ - /* Note that in b/w mode, we simply render the glyph directly into */ - /* the display map, as the scan-line converter or-es the glyph into */ - /* the target bitmap. */ - /* */ - /* In gray mode, however, the glyph is first rendered indivdually in */ - /* the Small_Bit map, then 'or-ed' with bounding into the display */ - /* pixmap. */ - /* */ - - TT_Error Render_Single_Glyph( int font_smoothing, - TT_Glyph glyph, - int x_offset, - int y_offset ) - { - if ( !font_smoothing ) - return TT_Get_Glyph_Bitmap( glyph, &Bit, - (long)x_offset*64, (long)y_offset*64 ); - else - { - TT_Glyph_Metrics metrics; - - TT_Error error; - TT_F26Dot6 x, y, xmin, ymin, xmax, ymax; - int ioff, iread; - char *off, *read, *_off, *_read; - - - /* font-smoothing mode */ - - /* we begin by grid-fitting the bounding box */ - TT_Get_Glyph_Metrics( glyph, &metrics ); - - xmin = metrics.bbox.xMin & -64; - ymin = metrics.bbox.yMin & -64; - xmax = (metrics.bbox.xMax+63) & -64; - ymax = (metrics.bbox.yMax+63) & -64; - - /* now render the glyph in the small pixmap */ - - /* IMPORTANT NOTE: the offset parameters passed to the function */ - /* TT_Get_Glyph_Bitmap() must be integer pixel values, i.e., */ - /* multiples of 64. HINTING WILL BE RUINED IF THIS ISN'T THE CASE! */ - /* This is why we _did_ grid-fit the bounding box, especially xmin */ - /* and ymin. */ - - Clear_Small(); - error = TT_Get_Glyph_Pixmap( glyph, &Small_Bit, -xmin, -ymin ); - if ( error ) - return error; - - /* Blit-or the resulting small pixmap into the biggest one */ - /* We do that by hand, and provide also clipping. */ - - xmin = (xmin >> 6) + x_offset; - ymin = (ymin >> 6) + y_offset; - xmax = (xmax >> 6) + x_offset; - ymax = (ymax >> 6) + y_offset; - - /* Take care of comparing xmin and ymin with signed values! */ - /* This was the cause of strange misplacements when Bit.rows */ - /* was unsigned. */ - - if ( xmin >= (int)Bit.width || - ymin >= (int)Bit.rows || - xmax < 0 || - ymax < 0 ) - return TT_Err_Ok; /* nothing to do */ - - /* Note that the clipping check is performed _after_ rendering */ - /* the glyph in the small bitmap to let this function return */ - /* potential error codes for all glyphs, even hidden ones. */ - - /* In exotic glyphs, the bounding box may be larger than the */ - /* size of the small pixmap. Take care of that here. */ - - if ( xmax-xmin + 1 > Small_Bit.width ) - xmax = xmin + Small_Bit.width - 1; - - if ( ymax-ymin + 1 > Small_Bit.rows ) - ymax = ymin + Small_Bit.rows - 1; - - /* set up clipping and cursors */ - - iread = 0; - if ( ymin < 0 ) - { - iread -= ymin * Small_Bit.cols; - ioff = 0; - ymin = 0; - } - else - ioff = ymin * Bit.cols; - - if ( ymax >= Bit.rows ) - ymax = Bit.rows-1; - - if ( xmin < 0 ) - { - iread -= xmin; - xmin = 0; - } - else - ioff += xmin; - - if ( xmax >= Bit.width ) - xmax = Bit.width - 1; - - _read = (char*)Small_Bit.bitmap + iread; - _off = (char*)Bit.bitmap + ioff; - - for ( y = ymin; y <= ymax; y++ ) - { - read = _read; - off = _off; - - for ( x = xmin; x <= xmax; x++ ) - { - *off = bounded_palette[*off | *read]; - off++; - read++; - } - _read += Small_Bit.cols; - _off += Bit.cols; - } - - return TT_Err_Ok; - } - } - - - -/* End */ diff --git a/Build/source/libs/freetype/freetype-1.5/test/display.h b/Build/source/libs/freetype/freetype-1.5/test/display.h deleted file mode 100644 index d4c00f87df5..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/display.h +++ /dev/null @@ -1,73 +0,0 @@ -/****************************************************************************/ -/* */ -/* The FreeType project -- a free and portable quality TrueType renderer. */ -/* */ -/* Copyright 1996-2000 by */ -/* D. Turner, R.Wilhelm, and W. Lemberg */ -/* */ -/* display.h: Display component interface used by test programs */ -/* */ -/* This file is used to display glyphs and strings in a target window */ -/* using the graphics drivers provided by gmain.c, gevents.h, etc. */ -/* */ -/* Its role is to be shared and heavely commented to let people understand */ -/* how we do the job... */ -/* */ -/* See comments in display.c for a full description! */ -/* */ -/****************************************************************************/ - -#ifndef DISPLAY_H -#define DISPLAY_H - -#include "freetype.h" /* TT_Raster_Map */ - - /* The target bitmap or pixmap -- covering the full display window/screen */ - extern TT_Raster_Map Bit; - - /* A smaller intermediate bitmap used to render individual glyphs when */ - /* font smoothing mode is activated. It is then or-ed to `Bit'. */ - extern TT_Raster_Map Small_Bit; - - /* the virtual palette */ - extern unsigned char virtual_palette[5]; - - /* Or-ing the possible palette values gets us from 0 to 7 */ - /* We must bound check these... */ - extern unsigned char bounded_palette[8]; - - - /* Clears the Bit bitmap/pixmap */ - void Clear_Display( void ); - - /* Clears the Small_Bit pixmap */ - void Clear_Small( void ); - - /* Initialize the display bitmap named Bit */ - int Init_Display( int font_smoothing ); - - /* Initialize Small Bitmap */ - int Init_Small( int x_ppem, int y_ppem ); - - /* Convert the display pixmap from virtual to display palette */ - void Convert_To_Display_Palette( void ); - - /* Render a single glyph into the display bit/pixmap. */ - /* */ - /* Note that in b/w mode, we simply render the glyph directly into */ - /* the display map, as the scan-line converter or-es the glyph into */ - /* the target bitmap. */ - /* */ - /* In gray mode, however, the glyph is first rendered individually in */ - /* the Small_Bit map, then 'or-ed' with bounding into the display */ - /* pixmap. */ - /* */ - TT_Error Render_Single_Glyph( int font_smoothing, - TT_Glyph glyph, - int x_offset, - int y_offset ); - -#endif /* DISPLAY_H */ - - -/* End */ diff --git a/Build/source/libs/freetype/freetype-1.5/test/fdebug.c b/Build/source/libs/freetype/freetype-1.5/test/fdebug.c deleted file mode 100644 index f2abd1ec904..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/fdebug.c +++ /dev/null @@ -1,286 +0,0 @@ -/****************************************************************************} -{* *} -{* The FreeType project - a Free and Portable Quality TrueType Renderer. *} -{* *} -{* Copyright 1996-2001 by *} -{* D. Turner, R.Wilhelm, and W. Lemberg *} -{* *} -{* fdebug : A very simple TrueType bytecode debugger. *} -{* *} -{* NOTE : You must compile the interpreter with the DEBUG_INTERPRETER *} -{* macro defined in order to link this program! *} -{* *} -{****************************************************************************/ - -#include <math.h> /* libc ANSI */ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include "freetype.h" -#include "tttypes.h" -#include "ttdebug.h" -#include "ttobjs.h" - - -#ifdef UNIX -#ifndef HAVE_POSIX_TERMIOS -#include <sys/ioctl.h> -#include <termio.h> -#else -#ifndef HAVE_TCGETATTR -#define HAVE_TCGETATTR -#endif /* HAVE_TCGETATTR */ -#ifndef HAVE_TCSETATTR -#define HAVE_TCSETATTR -#endif /* HAVE_TCSETATTR */ -#include <termios.h> -#endif /* HAVE_POSIX_TERMIOS */ -#endif - - /* MAGIC: This variable is only defined in ttinterp.c if the */ - /* macro DEBUG_INTERPRETER is set. It specifies the code */ - /* range to debug. By default, it is TT_CodeRange_Glyph. */ - /* */ - extern - int debug_coderange; - - -#define Font_Buff_Size 256000 /* this buffer holds all */ - /* font specific data. */ - - TT_Engine engine; - TT_Face face; - TT_Instance instance; - TT_Glyph glyph; - TT_Error error; - - TT_Face_Properties properties; - - int num_glyphs; - int ptsize; - - Int Fail; - Int Num; - int mode = 2; - unsigned char autorun; - -/********************************************************************* - * - * Usage : print usage message - * - *********************************************************************/ - - static - void Usage( const char* execname ) - { - TT_Message( "fdebug: a simple TrueType bytecode debugger - part of the FreeType project\n" ); - TT_Message( "--------------------------------------------------------------------------\n\n"); - TT_Message( "Usage: %s glyphnum ppem fontname[.ttf]\n", execname ); - TT_Message( " or %s --cvt ppem fontname[.ttf]\n", execname ); - TT_Message( " or %s --font fontname[.ttf]\n\n", execname ); - exit( EXIT_FAILURE ); - } - - -/********************************************************************* - * - * Init_Keyboard : set the input file descriptor to char-by-char - * mode on Unix.. - * - *********************************************************************/ - -#ifdef UNIX - - struct termios old_termio; - - static - void Init_Keyboard( void ) - { - struct termios termio; - - -#ifndef HAVE_TCGETATTR - ioctl( 0, TCGETS, &old_termio ); -#else - tcgetattr( 0, &old_termio ); -#endif - - termio = old_termio; - - termio.c_lflag &= ~(ICANON+ECHO+ECHOE+ECHOK+ECHONL+ECHOKE); - -#ifndef HAVE_TCSETATTR - ioctl( 0, TCSETS, &termio ); -#else - tcsetattr( 0, TCSANOW, &termio ); -#endif - } - - static - void Reset_Keyboard( voi ) - { -#ifndef HAVE_TCSETATTR - ioctl( 0, TCSETS, &old_termio ); -#else - tcsetattr( 0, TCSANOW, &old_termio ); -#endif - - } - -#else - - static - void Init_Keyboard( void ) - { - } - - static - void Reset_Keyboard( voi ) - { - } - -#endif - - static - void Print_Banner( void ) - { - TT_Message( "fdebug - a simple TrueType bytecode debugger for FreeType\n" ); - TT_Message( "------------------------------------------------------------\n" ); - TT_Message( "type '?' for help - copyright 1996-2000 the FreeType Project\n\n" ); - } - - - static - void Error( const char* message, - const char* filename ) - { - static char tempstr[256]; - - sprintf( tempstr, "ERROR (%s): %s\n", filename, message ); - TT_Message( tempstr ); - - sprintf( tempstr, " code = 0x%04lx\n", error ); - TT_Message( tempstr ); - - Reset_Keyboard(); - exit( EXIT_FAILURE ); - } - - - static - void Init_Face( const char* filename ) - { - error = TT_Init_FreeType(&engine); - if (error) Error( "could not initialise FreeType", filename ); - - /* open face object */ - error = TT_Open_Face( engine, filename, &face ); - if (error) Error( "could not find or open file", filename ); - - /* get properties */ - TT_Get_Face_Properties( face, &properties ); - num_glyphs = properties.num_Glyphs; - - /* create instance */ - error = TT_New_Instance( face, &instance ); - if (error) Error( "could not create instance", filename ); - - error = TT_New_Glyph( face, &glyph ); - if (error) Error( "could not create glyph container", filename ); - - TT_Set_Instance_Resolutions( instance, 96, 96 ); - - error = TT_Set_Instance_CharSize( instance, ptsize << 6 ); - if (error) Error( "could not set text size", filename ); - } - - - int main( int argc, char** argv ) - { - int i; - char filename[128+4]; - char* execname; - - - execname = argv[0]; - if ( argc < 2 ) - Usage( execname ); - - if ( strcmp( argv[1], "--font" ) == 0 ) - { - debug_coderange = TT_CodeRange_Font; - mode = 0; - argc--; - argv++; - } - else if ( strcmp( argv[1], "--cvt" ) == 0 ) - { - debug_coderange = TT_CodeRange_Cvt; - argv++; - argc--; - mode = 1; - } - else if ( sscanf( argv[1], "%d", &Num ) == 1 ) - { - mode = 2; - argv++; - argc--; - } - else - Usage( execname ); - - /* read the point size for cvt and glyph modes */ - if (mode > 0) - { - if ( sscanf( argv[1], "%d", &ptsize ) != 1 ) - Usage( execname ); - argc--; - argv++; - } - - if ( argc != 2 ) - Usage(execname); - - i = strlen( argv[1] ); - while ( i > 0 && argv[1][i] != '\\' ) - { - if ( argv[1][i] == '.' ) - i = 0; - i--; - } - - filename[128] = 0; - - strncpy( filename, argv[1], 128 ); - if ( i >= 0 ) - strncpy( filename + strlen(filename), ".ttf", 4 ); - - Init_Keyboard(); - - if (mode == 2) - { - Init_Face( filename ); - Print_Banner(); - - error = TT_Load_Glyph( instance, glyph, Num, TTLOAD_DEFAULT ); - if (error) Error( "Error during bytecode execution", filename ); - } - else - { - Print_Banner(); - Init_Face( filename ); - } - - TT_Close_Face( face ); - TT_Done_FreeType(engine); - - Reset_Keyboard(); - - exit( EXIT_SUCCESS ); /* for safety reasons */ - - return 0; /* never reached */ - } - - -/* End */ diff --git a/Build/source/libs/freetype/freetype-1.5/test/ftdump.c b/Build/source/libs/freetype/freetype-1.5/test/ftdump.c deleted file mode 100644 index 2ff73dc4d4c..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/ftdump.c +++ /dev/null @@ -1,1146 +0,0 @@ -/****************************************************************************/ -/* */ -/* The FreeType project -- a free and portable quality TrueType renderer. */ -/* */ -/* Copyright 1996-2001 by */ -/* D. Turner, R.Wilhelm, and W. Lemberg */ -/* */ -/* ftdump: Simple TrueType font file resource profiler. */ -/* */ -/* This program dumps various properties of a given font file. */ -/* */ -/* */ -/* */ -/* NOTE: This is just a test program that is used to show off and */ -/* debug the current engine. */ -/* */ -/****************************************************************************/ - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include "common.h" -#include "freetype.h" -#include "ftxcmap.h" -#include "ftxopen.h" /* TrueType Open support */ -#include "ftxsbit.h" /* embedded bitmap support */ - -/* - * The following comment should be ignored. The "ttobjs.h" file does - * already include ft_conf.h. - * - * ------------------------------------------------------------------ - * - * IGNORE> Basically, an external program using FreeType shouldn't depend on an - * IGNORE> internal file of the FreeType library, especially not on ft_conf.h -- but - * IGNORE> to avoid another configure script which tests for the existence of the - * IGNORE> i18n stuff we include ft_conf.h here since we can be sure that our test - * IGNORE> programs use the same configuration options as the library itself. - */ - -#include "ttobjs.h" /* We're going to access internal tables directly */ -#include "ttmemory.h" /* We use FREE() to satisfy -DDEBUG_MEMORY */ - -#ifdef HAVE_LIBINTL_H - -#ifdef HAVE_LOCALE_H -#include <locale.h> -#endif - -#include "ftxerr18.h" -#include <libintl.h> -#else -#define gettext( x ) ( x ) -#endif - - - TT_Error error; - - TT_Engine engine; - TT_Face face; - TT_Instance instance; - TT_Glyph glyph; - - TT_Instance_Metrics imetrics; - TT_Outline outline; - TT_Glyph_Metrics metrics; - - TT_Face_Properties properties; - - int num_glyphs; - int ptsize; - - int Fail; - int Num; - - int flag_memory = 1; - int flag_names = 1; - int flag_encodings = 1; - int flag_cmap = 1; - int flag_sbits = 1; - int flag_ttopen = 1; - -#if defined( FREETYPE_DLL ) || defined( TT_CONFIG_OPTION_THREAD_SAFE ) - - /* If the library is linked as a DLL, TTMemory_Allocated() */ - /* (which is not exported) cannot be accessed. */ - /* In this case, some compilers report an error because */ - /* they try to link against a non-existing symbol. */ - /* */ - /* We thus avoid the external reference on these compilers. */ - - #define TTMemory_Allocated 0L - -#else - extern long TTMemory_Allocated; -#endif - - long org_memory, old_memory, cur_memory; - - const char* Apple_Encodings[33] = - { - "Roman", "Japanese", "Chinese", "Korean", "Arabic", "Hebrew", - "Greek", "Russian", "RSymbol", "Devanagari", "Gurmukhi", - "Gujarati", "Oriya", "Bengali", "Tamil", "Telugu", "Kannada", - "Malayalam", "Sinhalese", "Burmese", "Khmer", "Tai", "Laotian", - "Georgian", "Armenian", "Maldivian/Simplif. Chinese", "Tibetan", - "Mongolian", "Geez", "Slavic", "Vietnamese", "Sindhi", "Uninterpreted" - }; - - struct - { - long initial_overhead; - long face_object; - long glyph_object; - long first_instance; - long second_instance; - - } memory_footprint; - - - /* We ignore error message strings with this function */ - -#ifndef HAVE_LIBINTL_H - static char* - TT_ErrToString18( TT_Error error ) - { - static char temp[32]; - - - sprintf( temp, "0x%04lx", error ); - return temp; - } -#endif - - - void - Save_Memory( long* var ) - { - *var = TTMemory_Allocated - old_memory; - old_memory += *var; - } - -#define FOOTPRINT( field ) Save_Memory( &memory_footprint.field ) - - - static void - Print_Mem( long val, char* string ) - { - printf( "%6ld Bytes (%4ld kByte): %s\n", - val, - ( val + 1023L ) / 1024, - string ); - } - -#define PRINT_MEM( field, string ) \ - Print_Mem( memory_footprint.field, string ) - - - /* Print the memory footprint */ - - void - Print_Memory( void ) - { - /* create glyph */ - error = TT_New_Glyph( face, &glyph ); - if ( error ) - { - fprintf( stderr, gettext( "Could not create glyph container.\n" ) ); - goto Failure; - } - - FOOTPRINT( glyph_object ); - - /* create instance */ - error = TT_New_Instance( face, &instance ); - if ( error ) - { - fprintf( stderr, gettext( "Could not create instance.\n" ) ); - goto Failure; - } - - FOOTPRINT( first_instance ); - - error = TT_New_Instance( face, &instance ); - if ( error ) - { - fprintf( stderr, gettext( "Could not create second instance.\n" ) ); - goto Failure; - } - - FOOTPRINT( second_instance ); - - printf( gettext( "Memory footprint statistics:\n" ) ); - separator_line( stdout, 78 ); - - /* NOTE: In our current implementation, the face's execution */ - /* context object is created lazily with the first */ - /* instance. However, all later instances share the */ - /* the same context. */ - - PRINT_MEM( face_object, gettext( "face object" ) ); - PRINT_MEM( glyph_object, gettext( "glyph object" ) ); - PRINT_MEM( second_instance, gettext( "instance object" ) ); - - Print_Mem( memory_footprint.first_instance - - memory_footprint.second_instance, - gettext( "exec. context object" ) ); - - separator_line( stdout, 78 ); - - Print_Mem( memory_footprint.face_object + - memory_footprint.glyph_object + - memory_footprint.first_instance, - gettext( "total memory usage" ) ); - - printf( "\n" ); - - return; - - Failure: - fprintf( stderr, " " ); - Panic( gettext( "FreeType error message: %s\n" ), - TT_ErrToString18( error ) ); - } - - - static char name_buffer[257]; - static int name_len = 0; - - - static char* - LookUp_Name( int index ) - { - unsigned short i, n; - - unsigned short platform, encoding, language, id; - char* string; - unsigned short string_len; - - int j, found; - - - n = properties.num_Names; - - for ( i = 0; i < n; i++ ) - { - TT_Get_Name_ID( face, i, &platform, &encoding, &language, &id ); - TT_Get_Name_String( face, i, &string, &string_len ); - - if ( id == index ) - { - - /* The following code was inspired from Mark Leisher's */ - /* ttf2bdf package */ - - found = 0; - - /* Try to find a Microsoft English name */ - - if ( platform == 3 ) - for ( j = 1; j >= 0; j-- ) - if ( encoding == j ) /* Microsoft ? */ - if ( (language & 0x3FF) == 0x009 ) /* English language */ - { - found = 1; - break; - } - - if ( !found && platform == 0 && language == 0 ) - found = 1; - - /* Found a Unicode Name. */ - - if ( found ) - { - if ( string_len > 512 ) - string_len = 512; - - name_len = 0; - - for ( i = 1; i < string_len; i += 2 ) - name_buffer[name_len++] = string[i]; - - name_buffer[name_len] = '\0'; - - return name_buffer; - } - } - } - - /* Not found */ - return NULL; - } - - - static void - Print_Names( void ) - { - printf( gettext( "font name table entries\n" ) ); - separator_line( stdout, 78 ); - - if ( LookUp_Name( 4 ) ) - printf( "%s - ", name_buffer ); - - if ( LookUp_Name( 5 ) ) - printf( "%s\n\n", name_buffer ); - - if ( LookUp_Name( 6 ) ) - printf( gettext( "PostScript name: %s\n\n" ), name_buffer ); - - if ( LookUp_Name( 0 ) ) - printf( "%s\n\n", name_buffer ); - - if ( LookUp_Name( 7 ) ) - printf( name_buffer ); - - printf( "\n" ); - separator_line( stdout, 78 ); - } - - - static void - Print_Encodings( void ) - { - unsigned short n, i; - unsigned short platform, encoding; - char* platStr, *encoStr; - - char tempStr[128]; - - - printf( gettext( "character map encodings\n" ) ); - separator_line( stdout, 78 ); - - n = properties.num_CharMaps; - if ( n == 0 ) - { - printf( gettext( - "The file doesn't seem to have any encoding table.\n" ) ); - return; - } - - printf( gettext( "There are %hu encodings:\n\n" ), n ); - - for ( i = 0; i < n; i++ ) - { - TT_Get_CharMap_ID( face, i, &platform, &encoding ); - printf( gettext( "encoding %2u: " ), i ); - - platStr = encoStr = NULL; - - switch ( platform ) - { - case TT_PLATFORM_APPLE_UNICODE: - platStr = "Apple Unicode"; - switch ( encoding ) - { - case TT_APPLE_ID_DEFAULT: - encoStr = ""; - break; - - case TT_APPLE_ID_UNICODE_1_1: - encoStr = "(v.1.1)"; - break; - - case TT_APPLE_ID_ISO_10646: - encoStr = "(ISO 10646-1:1993)"; - break; - - case TT_APPLE_ID_UNICODE_2_0: - encoStr = "(v.2.0)"; - break; - - default: - sprintf( tempStr, gettext( "Unknown value %hu" ), encoding ); - encoStr = tempStr; - } - break; - - case TT_PLATFORM_MACINTOSH: - platStr = "Apple"; - if ( encoding > 32 ) - { - sprintf( tempStr, gettext( "Unknown value %hu" ), encoding ); - encoStr = tempStr; - } - else - encoStr = (char*)Apple_Encodings[encoding]; - break; - - case TT_PLATFORM_ISO: - platStr = "Iso"; - switch ( encoding ) - { - case TT_ISO_ID_7BIT_ASCII: - platStr = "Ascii"; - encoStr = "7-bit"; - break; - - case TT_ISO_ID_10646: - encoStr = "10646"; - break; - - case TT_ISO_ID_8859_1: - encoStr = "8859-1"; - break; - - default: - sprintf( tempStr, "%hu", encoding ); - encoStr = tempStr; - } - break; - - case TT_PLATFORM_MICROSOFT: - platStr = "Windows"; - switch ( encoding ) - { - case TT_MS_ID_SYMBOL_CS: - encoStr = "Symbol"; - break; - - case TT_MS_ID_UNICODE_CS: - encoStr = "Unicode"; - break; - - case TT_MS_ID_SJIS: - encoStr = "Shift-JIS"; - break; - - case TT_MS_ID_GB2312: - encoStr = "GB2312"; - break; - - case TT_MS_ID_BIG_5: - encoStr = "Big 5"; - break; - - case TT_MS_ID_WANSUNG: - encoStr = "WanSung"; - break; - - case TT_MS_ID_JOHAB: - encoStr = "Johab"; - break; - - case TT_MS_ID_UCS_4: - encoStr = "UCS-4"; - break; - - default: - sprintf( tempStr, gettext( "Unknown value %hu" ), encoding ); - encoStr = tempStr; - } - break; - - default: - sprintf( tempStr, "%hu - %hu", platform, encoding ); - platStr = gettext( "Unknown" ); - encoStr = tempStr; - } - - printf( "%s %s\n", platStr, encoStr ); - } - - printf( "\n" ); - separator_line( stdout, 78 ); - } - - - static void - Print_Cmap( void ) - { - TT_CharMap charmap; - TT_UShort glyph_index; - TT_Long char_index; - unsigned short n, i; - unsigned short platform, encoding; - - - printf( gettext( "ftxcmap test\n" ) ); - separator_line( stdout, 78 ); - - n = properties.num_CharMaps; - if ( n == 0 ) - { - printf( gettext( - "The file doesn't seem to have any encoding table.\n" ) ); - return; - } - - printf( gettext( "There are %hu encodings:\n\n" ), n ); - - for ( i = 0; i < n; i++ ) - { - - TT_Get_CharMap_ID( face, i, &platform, &encoding ); - printf( gettext( "encoding %2u:\n" ), i ); - - TT_Get_CharMap( face, i, &charmap); - - char_index = TT_CharMap_First( charmap, &glyph_index ); - printf( gettext( "first: glyph index %hu, character code 0x%lx\n" ), - glyph_index, char_index ); - - char_index = TT_CharMap_Next( charmap, char_index, &glyph_index ); - printf( gettext( "next: glyph index %hu, character code 0x%lx\n" ), - glyph_index, char_index ); - - char_index = TT_CharMap_Last( charmap, &glyph_index ); - printf( gettext( "last: glyph index %hu, character code 0x%lx\n" ), - glyph_index, char_index ); - } - - printf( "\n" ); - separator_line( stdout, 78 ); - } - - - static void - Print_SBits( void ) - { - TT_EBLC eblc; - TT_Error error; - - - error = TT_Get_Face_Bitmaps( face, &eblc ); - if ( error == TT_Err_Table_Missing ) - return; - if ( error ) - { - fprintf( stderr, gettext( - "Error while retrieving embedded bitmaps table.\n" ) ); - goto Failure; - } - - printf( gettext( "embedded bitmap table\n" ) ); - separator_line( stdout, 78 ); - - printf( gettext( " version of embedded bitmap table: 0x%lx\n" ), - eblc.version ); - printf( gettext( " number of embedded bitmap strikes: %lu\n" ), - eblc.num_strikes ); - - { - TT_SBit_Strike* strike = eblc.strikes; - int count = 0; - - - for ( ; count < eblc.num_strikes; count++, strike++ ) - { - printf( gettext( " bitmap strike %hu/%lu: " ), - count + 1, eblc.num_strikes ); - - printf( gettext( "%hux%hu pixels, %hu-bit depth, glyphs [%hu..%hu]\n" ), - strike->x_ppem, strike->y_ppem, strike->bit_depth, - strike->start_glyph, strike->end_glyph ); - { - TT_SBit_Range* range = strike->sbit_ranges; - TT_SBit_Range* limit = range + strike->num_ranges; - - - for ( ; range < limit; range++ ) - printf( gettext( " range format (%hu:%hu) glyphs %hu..%hu\n" ), - range->index_format, - range->image_format, - range->first_glyph, - range->last_glyph ); - } - } - } - printf( "\n" ); - separator_line( stdout, 78 ); - - return; - - Failure: - fprintf( stderr, " " ); - Panic( gettext( "FreeType error message: %s\n" ), - TT_ErrToString18( error ) ); - } - - -#define TAG2STRING( t, s ) s[0] = (char)(t >> 24), \ - s[1] = (char)(t >> 16), \ - s[2] = (char)(t >> 8), \ - s[3] = (char)(t ) - - - static void - Print_GSUB( void ) - { - TTO_GSUBHeader gsub; - TT_Error error; - - TT_UShort i; - TTO_Feature f; - TTO_Lookup* lo; - - TT_ULong *script_tag_list, *stl; - TT_ULong *language_tag_list, *ltl; - TT_ULong *feature_tag_list, *ftl; - - TT_UShort script_index, language_index, - feature_index, req_feature_index; - - char script_tag[4], language_tag[4], feature_tag[4]; - - - error = TT_Load_GSUB_Table( face, &gsub, NULL ); - if ( error == TT_Err_Table_Missing ) - return; - if ( error ) - { - fprintf( stderr, gettext( "Error while loading GSUB table.\n" ) ); - goto Failure; - } - - printf( gettext( "GSUB table\n" ) ); - separator_line( stdout, 78 ); - - error = TT_GSUB_Query_Scripts( &gsub, &script_tag_list ); - if ( error ) - { - fprintf( stderr, gettext( - "Error while querying GSUB script list.\n" ) ); - goto Failure; - } - - stl = script_tag_list; - for ( ; *stl; stl++ ) - { - TAG2STRING( *stl, script_tag ); - - error = TT_GSUB_Select_Script( &gsub, *stl, &script_index ); - if ( error ) - { - fprintf( stderr, gettext( - "Error while selecting GSUB script `%4.4s'.\n" ), - script_tag ); - goto Failure; - } - - printf( gettext( " script `%4.4s' (index %hu):\n" ), - script_tag, script_index ); - - error = TT_GSUB_Query_Features( &gsub, script_index, 0xFFFF, - &feature_tag_list ); - if ( error ) - { - fprintf( stderr, gettext( - "Error while querying GSUB default language system for script `%4.4s'.\n" ), - script_tag ); - goto Failure; - } - - printf( gettext( " default language system:\n" ) ); - - ftl = feature_tag_list; - for ( ; *ftl; ftl++ ) - { - TAG2STRING( *ftl, feature_tag ); - - error = TT_GSUB_Select_Feature( &gsub, *ftl, - script_index, 0xFFFF, - &feature_index ); - if ( error ) - { - fprintf( stderr, gettext( - "Error while selecting GSUB feature `%4.4s'\n" - "for default language system of script `%4.4s'.\n" ), - feature_tag, script_tag ); - goto Failure; - } - - printf( gettext( " feature `%4.4s' (index %hu; lookup " ), - feature_tag, feature_index ); - - f = gsub.FeatureList.FeatureRecord[feature_index].Feature; - - for ( i = 0; i < f.LookupListCount - 1; i++ ) - printf( "%hu, ", f.LookupListIndex[i] ); - printf( "%hu)\n", f.LookupListIndex[i] ); - } - FREE( feature_tag_list ); - - error = TT_GSUB_Query_Languages( &gsub, script_index, - &language_tag_list ); - if ( error ) - { - fprintf( stderr, gettext( - "Error while querying GSUB language list for script `%4.4s'.\n" ), - script_tag ); - goto Failure; - } - - ltl = language_tag_list; - for ( ; *ltl; ltl++ ) - { - TAG2STRING( *ltl, language_tag ); - - error = TT_GSUB_Select_Language( &gsub, *ltl, - script_index, - &language_index, - &req_feature_index ); - if ( error ) - { - fprintf( stderr, gettext( - "Error while selecting GSUB language `%4.4s' for script `%4.4s'.\n" ), - language_tag, script_tag ); - goto Failure; - } - - printf( gettext( " language `%4.4s' (index %hu):\n" ), - language_tag, language_index ); - - if ( req_feature_index != 0xFFFF ) - { - printf( gettext( " required feature index %hu (lookup " ), - req_feature_index ); - - f = gsub.FeatureList.FeatureRecord[req_feature_index].Feature; - - for ( i = 0; i < f.LookupListCount - 1; i++ ) - printf( "%hu, ", f.LookupListIndex[i] ); - printf( "%hu)\n", f.LookupListIndex[i] ); - } - - error = TT_GSUB_Query_Features( &gsub, script_index, language_index, - &feature_tag_list ); - if ( error ) - { - fprintf( stderr, gettext( - "Error while querying GSUB feature list\n" - "for script `%4.4s', language `%4.4s'.\n" ), - script_tag, language_tag ); - goto Failure; - } - - ftl = feature_tag_list; - for ( ; *ftl; ftl++ ) - { - TAG2STRING( *ftl, feature_tag ); - - error = TT_GSUB_Select_Feature( &gsub, *ftl, - script_index, language_index, - &feature_index ); - if ( error ) - { - fprintf( stderr, gettext( - "Error while selecting GSUB feature `%4.4s'\n" - "for script `%4.4s', language `%4.4s'.\n" ), - feature_tag, script_tag, language_tag ); - goto Failure; - } - - printf( gettext( " feature `%4.4s' (index %hu; lookup " ), - feature_tag, feature_index ); - - f = gsub.FeatureList.FeatureRecord[feature_index].Feature; - - for ( i = 0; i < f.LookupListCount - 1; i++ ) - printf( "%hu, ", f.LookupListIndex[i] ); - printf( "%hu)\n", f.LookupListIndex[i] ); - } - FREE( feature_tag_list ); - } - FREE( language_tag_list ); - } - FREE( script_tag_list ); - - printf( "\n" ); - - lo = gsub.LookupList.Lookup; - - printf( gettext( "Lookups:\n\n" ) ); - - for ( i = 0; i < gsub.LookupList.LookupCount; i++ ) - printf( gettext( " %hu: type %hu, flag 0x%x\n" ), - i, lo[i].LookupType, lo[i].LookupFlag ); - - printf( "\n" ); - separator_line( stdout, 78 ); - - return; - - Failure: - fprintf( stderr, " " ); - Panic( gettext( "FreeType error message: %s\n" ), - TT_ErrToString18( error ) ); - } - - - static void - Print_GPOS( void ) - { - TTO_GPOSHeader gpos; - TT_Error error; - - TT_UShort i; - TTO_Feature f; - TTO_Lookup* lo; - - TT_ULong *script_tag_list, *stl; - TT_ULong *language_tag_list, *ltl; - TT_ULong *feature_tag_list, *ftl; - - TT_UShort script_index, language_index, - feature_index, req_feature_index; - - char script_tag[4], language_tag[4], feature_tag[4]; - - - error = TT_Load_GPOS_Table( face, &gpos, NULL ); - if ( error == TT_Err_Table_Missing ) - return; - if ( error ) - { - fprintf( stderr, gettext( "Error while loading GPOS table.\n" ) ); - goto Failure; - } - - printf( gettext( "GPOS table\n" ) ); - separator_line( stdout, 78 ); - - error = TT_GPOS_Query_Scripts( &gpos, &script_tag_list ); - if ( error ) - { - fprintf( stderr, gettext( - "Error while querying GPOS script list.\n" ) ); - goto Failure; - } - - stl = script_tag_list; - for ( ; *stl; stl++ ) - { - TAG2STRING( *stl, script_tag ); - - error = TT_GPOS_Select_Script( &gpos, *stl, &script_index ); - if ( error ) - { - fprintf( stderr, gettext( - "Error while selecting GPOS script `%4.4s'.\n" ), - script_tag ); - goto Failure; - } - - printf( gettext( " script `%4.4s' (index %hu):\n" ), - script_tag, script_index ); - - error = TT_GPOS_Query_Features( &gpos, script_index, 0xFFFF, - &feature_tag_list ); - if ( error ) - { - fprintf( stderr, gettext( - "Error while querying GPOS default language system for script `%4.4s'.\n" ), - script_tag ); - goto Failure; - } - - printf( gettext( " default language system:\n" ) ); - - ftl = feature_tag_list; - for ( ; *ftl; ftl++ ) - { - TAG2STRING( *ftl, feature_tag ); - - error = TT_GPOS_Select_Feature( &gpos, *ftl, - script_index, 0xFFFF, - &feature_index ); - if ( error ) - { - fprintf( stderr, gettext( - "Error while selecting GPOS feature `%4.4s'\n" - "for default language system of script `%4.4s'.\n" ), - feature_tag, script_tag ); - goto Failure; - } - - printf( gettext( " feature `%4.4s' (index %hu; lookup " ), - feature_tag, feature_index ); - - f = gpos.FeatureList.FeatureRecord[feature_index].Feature; - - for ( i = 0; i < f.LookupListCount - 1; i++ ) - printf( "%hu, ", f.LookupListIndex[i] ); - printf( "%hu)\n", f.LookupListIndex[i] ); - } - FREE( feature_tag_list ); - - error = TT_GPOS_Query_Languages( &gpos, script_index, - &language_tag_list ); - if ( error ) - { - fprintf( stderr, gettext( - "Error while querying GPOS language list for script `%4.4s'.\n" ), - script_tag ); - goto Failure; - } - - ltl = language_tag_list; - for ( ; *ltl; ltl++ ) - { - TAG2STRING( *ltl, language_tag ); - - error = TT_GPOS_Select_Language( &gpos, *ltl, - script_index, - &language_index, - &req_feature_index ); - if ( error ) - { - fprintf( stderr, gettext( - "Error while selecting GPOS language `%4.4s' for script `%4.4s'.\n" ), - language_tag, script_tag ); - goto Failure; - } - - printf( gettext( " language `%4.4s' (index %hu):\n" ), - language_tag, language_index ); - - if ( req_feature_index != 0xFFFF ) - { - printf( gettext( " required feature index %hu (lookup " ), - req_feature_index ); - - f = gpos.FeatureList.FeatureRecord[req_feature_index].Feature; - - for ( i = 0; i < f.LookupListCount - 1; i++ ) - printf( "%hu, ", f.LookupListIndex[i] ); - printf( "%hu)\n", f.LookupListIndex[i] ); - } - - error = TT_GPOS_Query_Features( &gpos, script_index, language_index, - &feature_tag_list ); - if ( error ) - { - fprintf( stderr, gettext( - "Error while querying GPOS feature list\n" - "for script `%4.4s', language `%4.4s'.\n" ), - script_tag, language_tag ); - goto Failure; - } - - ftl = feature_tag_list; - for ( ; *ftl; ftl++ ) - { - TAG2STRING( *ftl, feature_tag ); - - error = TT_GPOS_Select_Feature( &gpos, *ftl, - script_index, language_index, - &feature_index ); - if ( error ) - { - fprintf( stderr, gettext( - "Error while selecting GPOS feature `%4.4s'\n" - "for script `%4.4s', language `%4.4s'.\n" ), - feature_tag, script_tag, language_tag ); - goto Failure; - } - - printf( gettext( " feature `%4.4s' (index %hu; lookup " ), - feature_tag, feature_index ); - - f = gpos.FeatureList.FeatureRecord[feature_index].Feature; - - for ( i = 0; i < f.LookupListCount - 1; i++ ) - printf( "%hu, ", f.LookupListIndex[i] ); - printf( "%hu)\n", f.LookupListIndex[i] ); - } - FREE( feature_tag_list ); - } - FREE( language_tag_list ); - } - FREE( script_tag_list ); - - printf( "\n" ); - - lo = gpos.LookupList.Lookup; - - printf( gettext( "Lookups:\n\n" ) ); - - for ( i = 0; i < gpos.LookupList.LookupCount; i++ ) - printf( gettext( " %hu: type %hu, flag 0x%x\n" ), - i, lo[i].LookupType, lo[i].LookupFlag ); - - printf( "\n" ); - separator_line( stdout, 78 ); - - return; - - Failure: - fprintf( stderr, " " ); - Panic( gettext( "FreeType error message: %s\n" ), - TT_ErrToString18( error ) ); - } - - - int - main( int argc, char** argv ) - { - int i; - char filename[128 + 4]; - char alt_filename[128 + 4]; - char* execname; - char* gt; - - -#ifdef HAVE_LIBINTL_H - setlocale( LC_ALL, "" ); - bindtextdomain( "freetype", LOCALEDIR ); - textdomain( "freetype" ); -#endif - - execname = argv[0]; - - if ( argc != 2 ) - { - gt = gettext( "ftdump: Simple TrueType Dumper -- part of the FreeType project" ); - fprintf( stderr, "%s\n", gt ); - separator_line( stderr, strlen( gt ) ); - - fprintf( stderr, gettext( "Usage: %s fontname[.ttf|.ttc]\n\n" ), - execname ); - - exit( EXIT_FAILURE ); - } - - i = strlen( argv[1] ); - while ( i > 0 && argv[1][i] != '\\' ) - { - if ( argv[1][i] == '.' ) - i = 0; - i--; - } - - filename[128] = '\0'; - alt_filename[128] = '\0'; - - strncpy( filename, argv[1], 128 ); - strncpy( alt_filename, argv[1], 128 ); - - if ( i >= 0 ) - { - strncpy( filename + strlen( filename ), ".ttf", 4 ); - strncpy( alt_filename + strlen( alt_filename ), ".ttc", 4 ); - } - - /* Initialize engine */ - - old_memory = 0; - - if ( (error = TT_Init_FreeType( &engine )) ) - { - fprintf( stderr, gettext( "Error while initializing engine.\n" ) ); - goto Failure; - } - - if ( (error = TT_Init_SBit_Extension( engine )) ) - { - fprintf( stderr, gettext( - "Error while initializing embedded bitmap extension.\n" ) ); - goto Failure; - } - - if ( (error = TT_Init_GSUB_Extension( engine )) ) - { - fprintf( stderr, gettext( - "Error while initializing GSUB extension.\n" ) ); - goto Failure; - } - - if ( (error = TT_Init_GPOS_Extension( engine )) ) - { - fprintf( stderr, gettext( - "Error while initializing GPOS extension.\n" ) ); - goto Failure; - } - - FOOTPRINT( initial_overhead ); - - /* Open and Load face */ - - error = TT_Open_Face( engine, filename, &face ); - if ( error == TT_Err_Could_Not_Open_File ) - { - strcpy( filename, alt_filename ); - error = TT_Open_Face( engine, alt_filename, &face ); - } - - if ( error == TT_Err_Could_Not_Open_File ) - Panic( gettext( "Could not find or open %s.\n" ), filename ); - if ( error ) - { - fprintf( stderr, gettext( "Error while opening %s.\n" ), filename ); - goto Failure; - } - - FOOTPRINT( face_object ); - - /* get face properties and allocate preload arrays */ - - TT_Get_Face_Properties( face, &properties ); - num_glyphs = properties.num_Glyphs; - - /* Now do various dumps */ - - if ( flag_names ) - Print_Names(); - - if ( flag_encodings ) - Print_Encodings(); - - if ( flag_cmap ) - Print_Cmap(); - - if ( flag_sbits ) - Print_SBits(); - - if ( flag_ttopen ) - { - Print_GSUB(); - Print_GPOS(); - } - -#ifndef FREETYPE_DLL /* the statistics are meaningless if we use a DLL. */ - if ( flag_memory ) - Print_Memory(); -#endif - - TT_Close_Face( face ); - TT_Done_FreeType( engine ); - - exit( EXIT_SUCCESS ); /* for safety reasons */ - - return 0; /* never reached */ - - Failure: - fprintf( stderr, " " ); - Panic( gettext( "FreeType error message: %s\n" ), - TT_ErrToString18( error ) ); - - return 0; /* never reached */ -} - - -/* End */ diff --git a/Build/source/libs/freetype/freetype-1.5/test/fterror.c b/Build/source/libs/freetype/freetype-1.5/test/fterror.c deleted file mode 100644 index 017654d562a..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/fterror.c +++ /dev/null @@ -1,107 +0,0 @@ -/****************************************************************************/ -/* */ -/* The FreeType project -- a free and portable quality TrueType renderer. */ -/* */ -/* Copyright 1996-2002 by E. Dieterich, A.Leca, */ -/* D. Turner, R.Wilhelm, and W. Lemberg */ -/* */ -/* fterror: test TT_ErrToString18 functionality. */ -/* */ -/* This program dumps locale-sensitive error messages. */ -/* */ -/****************************************************************************/ - -#include <stdio.h> -#include <stdlib.h> - -#include "freetype.h" -#include "ftxerr18.h" - -/* - * Basically, an external program using FreeType shouldn't depend on an - * internal file of the FreeType library, especially not on ft_conf.h -- but - * to avoid another configure script which tests for the existence of the - * i18n stuff we include ft_conf.h here since we can be sure that our test - * programs use the same configuration options as the library itself. - */ - -#include "ft_conf.h" - - -#ifdef HAVE_LIBINTL_H - -#ifdef HAVE_LOCALE_H -#include <locale.h> -#endif - -#include <libintl.h> - -#else /* HAVE_LIBINTL_H */ - -#define gettext( x ) ( x ) - -#endif /* HAVE_LIBINTL_H */ - - - static void - Usage( void ) - { - fprintf(stderr, gettext( "fterror: test TT_ErrToString18 functionality\n\n" ) ); - fprintf(stderr, gettext( " with an optional numerical argument, dumps the associated message.\n\n" ) ); - exit( EXIT_FAILURE ); - } - - - int - main( int argc, char** argv ) - { -#ifdef HAVE_LIBINTL_H - char* domain; - - - setlocale( LC_ALL, "" ); - bindtextdomain( "freetype", LOCALEDIR ); - domain = textdomain( "freetype" ); -#endif - - if( argc <= 1 ) - { - int i; -#if 0 - printf( "domain: %s\n", domain = textdomain( "" ) ); -#endif - printf( gettext( "Start of fterror.\n" ) ); - - for ( i = 0; i < 10; i++ ) - printf( "Code: %i, %s\n", i, TT_ErrToString18( i ) ); - -#if 0 - printf( "domain: %s\n", domain = textdomain( "" ) ); -#endif - printf( gettext( "End of fterror.\n" ) ); - } - else - { - int arg; - unsigned long cod; - char *end; - - - for ( arg = 1; arg < argc; ++arg ) - { - cod = strtoul(argv[arg], &end, 0); - - if( *end != '\0' || cod < 0 ) - Usage(); - printf( gettext( "Freetype error code 0x%04lX (%lu): %s\n" ), - cod, cod, TT_ErrToString18( cod ) ); - } - } - - exit( EXIT_SUCCESS ); /* for safety reasons */ - - return 0; /* never reached */ - } - - -/* End */ diff --git a/Build/source/libs/freetype/freetype-1.5/test/ftlint.c b/Build/source/libs/freetype/freetype-1.5/test/ftlint.c deleted file mode 100644 index ed240a5aea8..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/ftlint.c +++ /dev/null @@ -1,296 +0,0 @@ -/****************************************************************************/ -/* */ -/* The FreeType project -- a free and portable quality TrueType renderer. */ -/* */ -/* Copyright 1996-2000 by */ -/* D. Turner, R.Wilhelm, and W. Lemberg */ -/* */ -/* ftlint: a simple TrueType instruction tester. */ -/* */ -/* NOTE: This is just a test program that is used to show off and */ -/* debug the current engine. */ -/* */ -/****************************************************************************/ - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include "common.h" -#include "freetype.h" - -/* - * Basically, an external program using FreeType shouldn't depend on an - * internal file of the FreeType library, especially not on ft_conf.h -- but - * to avoid another configure script which tests for the existence of the - * i18n stuff we include ft_conf.h here since we can be sure that our test - * programs use the same configuration options as the library itself. - */ - -#include "ft_conf.h" - - -#ifdef HAVE_LIBINTL_H - -#ifdef HAVE_LOCALE_H -#include <locale.h> -#endif - -#include <libintl.h> -#include "ftxerr18.h" - -#else /* !HAVE_LIBINTL_H */ - -#define gettext( x ) ( x ) - - /* We ignore error message strings with this function */ - - static char* - TT_ErrToString18( TT_Error error ) - { - static char temp[32]; - - - sprintf( temp, "0x%04lx", error ); - return temp; - } - -#endif /* !HAVE_LIBINTL_H */ - - - TT_Error error; - - TT_Engine engine; - - TT_Face face; - TT_Instance instance; - TT_Glyph glyph; - - TT_Outline outline; - TT_Glyph_Metrics metrics; - - TT_Face_Properties properties; - - unsigned int num_glyphs; - int ptsize; - - int Fail; - int Num; - - - static TT_Error - LoadTrueTypeChar( int idx ) - { - return TT_Load_Glyph( instance, glyph, idx, TTLOAD_DEFAULT ); - } - - - static void - Usage( char* name ) - { - char* gt; - - - gt = gettext( "ftlint: Simple TrueType instruction tester -- part of the FreeType project" ); - fprintf( stderr, "%s\n", gt ); - separator_line( stderr, strlen( gt ) ); - - fprintf( stderr, gettext( - "Usage: %s ppem fontname[.ttf|.ttc] [fontname2..]\n\n" ), name ); - - exit( EXIT_FAILURE ); - } - - - int - main( int argc, char** argv ) - { - int i, file_index; - unsigned int id; - char filename[128 + 4]; - char alt_filename[128 + 4]; - char* execname; - char* fname; - - -#ifdef HAVE_LIBINTL_H - setlocale( LC_ALL, "" ); - bindtextdomain( "freetype", LOCALEDIR ); - textdomain( "freetype" ); -#endif - - execname = argv[0]; - - if ( argc < 3 ) - Usage( execname ); - - if ( sscanf( argv[1], "%d", &ptsize ) != 1 ) - Usage( execname ); - - /* Initialize engine */ - if ( (error = TT_Init_FreeType( &engine )) ) - { - fprintf( stderr, - gettext( "Error while initializing engine.\n" ) ); - goto Failure; - } - - /* Now check all files */ - for ( file_index = 2; file_index < argc; file_index++ ) - { - fname = argv[file_index]; - i = strlen( fname ); - while ( i > 0 && fname[i] != '\\' && fname[i] != '/' ) - { - if ( fname[i] == '.' ) - i = 0; - i--; - } - - filename[128] = '\0'; - alt_filename[128] = '\0'; - - strncpy( filename, fname, 128 ); - strncpy( alt_filename, fname, 128 ); - - if ( i >= 0 ) - { - strncpy( filename + strlen( filename ), ".ttf", 4 ); - strncpy( alt_filename + strlen( alt_filename ), ".ttc", 4 ); - } - - /* Load face */ - error = TT_Open_Face( engine, filename, &face ); - - if ( error == TT_Err_Could_Not_Open_File ) - { - strcpy( filename, alt_filename ); - error = TT_Open_Face( engine, alt_filename, &face ); - } - - i = strlen( filename ); - fname = filename; - - while ( i >= 0 ) - if ( filename[i] == '/' || filename[i] == '\\' ) - { - fname = filename + i + 1; - i = -1; - } - else - i--; - - fprintf( stderr, "%s: ", fname ); - - if ( error == TT_Err_Could_Not_Open_File ) - { - fprintf( stderr, gettext( "Could not find or open %s.\n" ), - filename ); - goto Fail_Face; - } - if ( error ) - { - fprintf( stderr, gettext( "Error while opening %s.\n" ), filename ); - goto Fail_Face; - } - - /* get face properties */ - - TT_Get_Face_Properties( face, &properties ); - num_glyphs = properties.num_Glyphs; - - /* create glyph */ - error = TT_New_Glyph( face, &glyph ); - if ( error ) - { - fprintf( stderr, - gettext( "Could not create glyph container.\n" ) ); - goto Fail_Glyph; - } - - /* create instance */ - error = TT_New_Instance( face, &instance ); - if ( error ) - { - fprintf( stderr, gettext( "Could not create instance.\n" ) ); - goto Fail_Instance; - } - - error = TT_Set_Instance_PixelSizes( instance, - ptsize, - ptsize, - ptsize*3/4 ); - if ( error ) - { - fprintf( stderr, - gettext( "Could not set point size to %d.\n" ), - ptsize ); - goto Fail_Set; - } - - Fail = 0; - - for ( id = 0; id < num_glyphs; id++ ) - { - if ( (error = LoadTrueTypeChar( id )) ) - { - if ( Fail < 10 ) - { - fprintf( stderr, !Fail ? gettext( "Error with\n " ) : " " ); - fprintf( stderr, gettext( "glyph %4u: %s\n" ), - id, TT_ErrToString18( error ) ); - } - Fail++; - } - } - - if ( Fail == 0 ) - fprintf( stderr, "OK.\n" ); - else - { - fprintf( stderr, " " ); - if ( Fail == 1 ) - fprintf( stderr, gettext( "1 fail.\n" ) ); - else - fprintf( stderr, gettext( "%d fails.\n" ), Fail ); - } - - /* hush complaints at the end of the loop */ - error = 0; - - Fail_Set: - TT_Done_Instance( instance ); - Fail_Instance: - TT_Done_Glyph( glyph ); - Fail_Glyph: - TT_Close_Face( face ); - Fail_Face: - ; - - - if ( error ) - { - fprintf( stderr, " " ); - fprintf( stderr, gettext( "FreeType error message: %s\n" ), - TT_ErrToString18( error ) ); - } - } - - TT_Done_FreeType( engine ); - - exit( EXIT_SUCCESS ); /* for safety reasons */ - - return 0; /* never reached */ - - Failure: - fprintf( stderr, " " ); - fprintf( stderr, gettext( "FreeType error message: %s\n" ), - TT_ErrToString18( error ) ); - - exit( EXIT_FAILURE ); - - return 0; /* never reached */ - } - - -/* End */ diff --git a/Build/source/libs/freetype/freetype-1.5/test/ftmetric.c b/Build/source/libs/freetype/freetype-1.5/test/ftmetric.c deleted file mode 100644 index 58c98e32fee..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/ftmetric.c +++ /dev/null @@ -1,399 +0,0 @@ -/****************************************************************************/ -/* */ -/* The FreeType project -- a free and portable quality TrueType renderer. */ -/* */ -/* Copyright 1999-2001 by */ -/* Yamano'uchi H. and W. Lemberg */ -/* */ -/* ftmetric: dump metrics and a glyph. */ -/* */ -/* NOTE: This is just a test program that is used to debug */ -/* the current engine. */ -/* */ -/****************************************************************************/ - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include "common.h" -#include "freetype.h" -#include "ftxsbit.h" - -#include "textdisp.h" - -/* - * Basically, an external program using FreeType shouldn't depend on an - * internal file of the FreeType library, especially not on ft_conf.h -- but - * to avoid another configure script which tests for the existence of the - * i18n stuff we include ft_conf.h here since we can be sure that our test - * programs use the same configuration options as the library itself. - */ - -#include "ft_conf.h" - - -#ifdef HAVE_LIBINTL_H - -#ifdef HAVE_LOCALE_H -#include <locale.h> -#endif - -#include <libintl.h> -#include "ftxerr18.h" - -#else /* !HAVE_LIBINTL_H */ - -#define gettext( x ) ( x ) - - /* We ignore error message strings with this function */ - - static char* - TT_ErrToString18( TT_Error error ) - { - static char temp[32]; - - - sprintf( temp, "0x%04lx", error ); - return temp; - } - -#endif /* !HAVE_LIBINTL_H */ - - static void - usage( char* execname ) - { - char* gt; - - - fprintf( stderr, "\n" ); - gt = gettext( "ftmetric: Simple TTF metrics/glyph dumper -- part of the FreeType project" ); - fprintf( stderr, "%s\n", gt ); - separator_line( stderr, strlen( gt ) ); - fprintf( stderr, gettext( - "Usage: %s [options below] point fontname[.ttf|.ttc]\n" - "\n" - " -B show sbit's metrics (default: none)\n" - " -c C use C'th font index of TrueType collection (default: 0)\n" - " -i index glyph index (default: 0)\n" - " -r R use resolution R dpi (default: 72)\n" - "\n" ), execname ); - - exit( EXIT_FAILURE ); - } - - - static void - Show_Metrics( TT_Big_Glyph_Metrics metrics, - char* title ) - { - int show_advance = 1; - - - printf("%s: xMin %d, xMax %d, yMin %d, yMax %d", - title, - (int)(metrics.bbox.xMin / 64), - (int)(metrics.bbox.xMax / 64), - (int)(metrics.bbox.yMin / 64), - (int)(metrics.bbox.yMax / 64)); - - - if ( show_advance ) - printf( ", advance width %d", (int)(metrics.horiAdvance / 64) ); - - printf("\n"); - return; - } - - - int - main( int argc, char** argv ) - { - int i, orig_ptsize, file; - char filename[128 + 4]; - char alt_filename[128 + 4]; - char* execname; - int option; - - int ptsize; - int num_Faces = 0; - int glyph_index = 0; - int load_flags = TTLOAD_DEFAULT; - - int force_sbit = 0; - - TT_Engine engine; - - TT_Face face; - TT_Instance instance; - TT_Glyph glyph; - - TT_Raster_Map map; - - TT_Big_Glyph_Metrics metrics; - TT_Face_Properties properties; - TT_Instance_Metrics imetrics; - - TT_EBLC eblc; - TT_SBit_Image* bitmap = NULL; - - TT_Error error; - - - int res = 72; - -#ifdef HAVE_LIBINTL_H - setlocale( LC_ALL, "" ); - bindtextdomain( "freetype", LOCALEDIR ); - textdomain( "freetype" ); -#endif - - execname = ft_basename( argv[0] ); - - while ( 1 ) - { - option = ft_getopt( argc, argv, "c:r:i:B" ); - - if ( option == -1 ) - break; - - switch ( option ) - { - case 'r': - res = atoi( ft_optarg ); - if ( res < 1 ) - usage( execname ); - break; - - case 'c': - num_Faces = atoi( ft_optarg ); - if ( num_Faces < 0 ) - usage( execname ); - break; - - case 'i': - glyph_index = atoi( ft_optarg ); - if ( glyph_index < 0 ) - usage( execname ); - break; - - case 'B': - force_sbit = 1; - break; - - default: - usage( execname ); - break; - } - } - - argc -= ft_optind; - argv += ft_optind; - - if ( argc <= 1 ) - usage( execname ); - - if ( sscanf( argv[0], "%d", &orig_ptsize ) != 1 ) - orig_ptsize = 64; - - file = 1; - - ptsize = orig_ptsize; - - i = strlen( argv[file] ); - while ( i > 0 && argv[file][i] != '\\' && argv[file][i] != '/' ) - { - if ( argv[file][i] == '.' ) - i = 0; - i--; - } - - filename[128] = '\0'; - alt_filename[128] = '\0'; - - strncpy( filename, argv[file], 128 ); - strncpy( alt_filename, argv[file], 128 ); - - if ( i >= 0 ) - { - strncpy( filename + strlen( filename ), ".ttf", 4 ); - strncpy( alt_filename + strlen( alt_filename ), ".ttc", 4 ); - } - - /* Initialize engine */ - - error = TT_Init_FreeType( &engine ); - if ( error ) - { - fprintf( stderr, gettext( "Error while initializing engine.\n" ) ); - goto Failure; - } - - error = TT_Init_SBit_Extension( engine ); - if ( error ) - { - fprintf( stderr, gettext( - "Error while initializing embedded bitmap extension.\n" ) ); - goto Failure; - } - - /* Load face */ - - error = TT_Open_Face( engine, filename, &face ); - - if ( error == TT_Err_Could_Not_Open_File ) - { - strcpy( filename, alt_filename ); - error = TT_Open_Face( engine, alt_filename, &face ); - } - - if ( error == TT_Err_Could_Not_Open_File ) - Panic( gettext( "Could not find or open %s.\n" ), filename ); - if ( error ) - { - fprintf( stderr, gettext( "Error while opening %s.\n" ), - filename ); - goto Failure; - } - - TT_Get_Face_Properties( face, &properties ); - - printf( gettext( "There are %d fonts in this collection.\n" ), - (int)(properties.num_Faces) ); - - if ( num_Faces >= properties.num_Faces ) - Panic( gettext( - "There is no collection with index %d in this font file.\n" ), - num_Faces ); - - TT_Close_Face( face ); - - error = TT_Open_Collection( engine, filename, num_Faces, &face ); - - /* get face properties and eblc */ - - TT_Get_Face_Properties( face, &properties ); - if ( force_sbit ) - { - error = TT_Get_Face_Bitmaps( face, &eblc ); - if ( error == TT_Err_Table_Missing ) - Panic( gettext( "There is no embedded bitmap data in the font.\n" ) ); - if ( error ) - { - fprintf( stderr, gettext( - "Error while retrieving embedded bitmaps table.\n" ) ); - goto Failure; - } - } - - /* create glyph */ - - error = TT_New_Glyph( face, &glyph ); - if ( error ) - { - fprintf( stderr, gettext( "Could not create glyph container.\n" ) ); - goto Failure; - } - - /* create instance */ - - error = TT_New_Instance( face, &instance ); - if ( error ) - { - fprintf( stderr, gettext( "Could not create instance.\n" ) ); - goto Failure; - } - - error = TT_Set_Instance_Resolutions( instance, res, res ); - if ( error ) - { - fprintf( stderr, gettext( "Could not set device resolutions.\n" ) ); - goto Failure; - } - - error = TT_Set_Instance_CharSize( instance, ptsize*64 ); - if ( error ) - { - fprintf( stderr, gettext( "Could not reset instance.\n" ) ); - goto Failure; - } - - TT_Get_Instance_Metrics( instance, &imetrics ); - - printf( gettext( "Instance metrics: ppemX %d, ppemY %d\n" ), - imetrics.x_ppem, - imetrics.y_ppem ); - - if ( force_sbit ) - { - error = TT_New_SBit_Image( &bitmap ); - if ( error ) - { - fprintf( stderr, gettext( - "Could not allocate glyph bitmap container.\n" ) ); - goto Failure; - } - - error = TT_Load_Glyph_Bitmap( face, instance, glyph_index, bitmap ); - if ( error ) - { - fprintf( stderr, gettext( - "Can't load bitmap for glyph %d.\n" ), glyph_index ); - goto Failure; - } - - Show_Metrics( bitmap->metrics, "SBit's metrics" ); - - printf( "SBit glyph:\n" ); - Show_Single_Glyph( &bitmap->map ); - } - else - { - TT_Load_Glyph( instance, glyph, glyph_index, load_flags ); - TT_Get_Glyph_Big_Metrics( glyph, &metrics ); - - map.width = ( metrics.bbox.xMax - metrics.bbox.xMin ) / 64; - map.rows = ( metrics.bbox.yMax - metrics.bbox.yMin ) / 64; - map.cols = ( map.width + 7 ) / 8; - map.size = map.cols * map.rows; - map.bitmap = malloc( map.size ); - map.flow = TT_Flow_Down; - - memset( map.bitmap, 0, map.size ); - - error = TT_Get_Glyph_Bitmap( glyph, &map, - -metrics.bbox.xMin, - -metrics.bbox.yMin ); - - Show_Metrics( metrics, gettext( "Outline's metrics" ) ); - - printf( gettext( "Outline glyph\n" ) ); - Show_Single_Glyph( &map ); - } - - free( map.bitmap ); - - if ( bitmap ) - TT_Done_SBit_Image( bitmap ); - - TT_Done_Instance( instance ); - TT_Done_Glyph( glyph ); - TT_Close_Face( face ); - TT_Done_FreeType( engine ); - - exit( EXIT_SUCCESS ); /* for safety reasons */ - - return 0; /* never reached */ - - Failure: - fprintf( stderr, " " ); - fprintf( stderr, gettext( "FreeType error message: %s\n" ), - TT_ErrToString18( error ) ); - - exit( EXIT_FAILURE ); - - return 0; /* never reached */ - } - - -/* End */ diff --git a/Build/source/libs/freetype/freetype-1.5/test/ftsbit.c b/Build/source/libs/freetype/freetype-1.5/test/ftsbit.c deleted file mode 100644 index be3af357d0d..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/ftsbit.c +++ /dev/null @@ -1,295 +0,0 @@ -/****************************************************************************/ -/* */ -/* The FreeType project -- a free and portable quality TrueType renderer. */ -/* */ -/* Copyright 1996-2001 by */ -/* D. Turner, R.Wilhelm, and W. Lemberg */ -/* */ -/* ftsbit: a _very_ simple embedded bitmap dumper for FreeType 1.x. */ -/* */ -/* NOTE: This is just a test program that is used to show off and */ -/* debug the current engine. */ -/* */ -/****************************************************************************/ - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include "common.h" -#include "freetype.h" -#include "ftxsbit.h" - -#include "textdisp.h" - -/* - * Basically, an external program using FreeType shouldn't depend on an - * internal file of the FreeType library, especially not on ft_conf.h -- but - * to avoid another configure script which tests for the existence of the - * i18n stuff we include ft_conf.h here since we can be sure that our test - * programs use the same configuration options as the library itself. - */ - -#include "ft_conf.h" - - -#ifdef HAVE_LIBINTL_H - -#ifdef HAVE_LOCALE_H -#include <locale.h> -#endif - -#include <libintl.h> -#include "ftxerr18.h" - -#else /* !HAVE_LIBINTL_H */ - -#define gettext( x ) ( x ) - - /* We ignore error message strings with this function */ - - static char* TT_ErrToString18( TT_Error error ) - { - static char temp[32]; - - - sprintf( temp, "0x%04lx", error ); - return temp; - } - -#endif /* !HAVE_LIBINTL_H */ - - - TT_Error error; - - TT_Engine engine; - - TT_Face face; - TT_Instance instance; - TT_Glyph glyph; - - TT_Outline outline; - TT_Glyph_Metrics metrics; - - TT_Face_Properties properties; - TT_EBLC eblc; - TT_SBit_Image* bitmap; - - unsigned int num_glyphs; - int ptsize; - - int Fail; - int Num; - - - static void Usage( char* name ) - { - char* gt; - - - gt = gettext( "ftsbit: Simple TrueType `sbit' dumper -- part of the FreeType project" ); - fprintf( stderr, "%s\n", gt ); - separator_line( stderr, strlen( gt ) ); - - fprintf( stderr, gettext( - "Usage: %s ppem fontname[.ttf|.ttc] glyph_index [glyph_index2..]\n\n" ), name ); - - exit( EXIT_FAILURE ); - } - - - int main( int argc, char** argv ) - { - int i; - char filename[128 + 4]; - char alt_filename[128 + 4]; - char* execname; - char* fname; - - -#ifdef HAVE_LIBINTL_H - setlocale( LC_ALL, "" ); - bindtextdomain( "freetype", LOCALEDIR ); - textdomain( "freetype" ); -#endif - - execname = argv[0]; - - if ( argc < 3 ) - Usage( execname ); - - if ( sscanf( argv[1], "%d", &ptsize ) != 1 ) - Usage( execname ); - - /* Initialize engine */ - if ( (error = TT_Init_FreeType( &engine )) ) - { - fprintf( stderr, gettext( "Error while initializing engine.\n" ) ); - goto Failure; - } - - if ( (error = TT_Init_SBit_Extension( engine )) ) - { - fprintf( stderr, gettext( - "Error while initializing embedded bitmap extension.\n" ) ); - goto Failure; - } - - /* Now check all files */ - fname = argv[2]; - i = strlen( fname ); - while ( i > 0 && fname[i] != '\\' && fname[i] != '/' ) - { - if ( fname[i] == '.' ) - i = 0; - i--; - } - - filename[128] = '\0'; - alt_filename[128] = '\0'; - - strncpy( filename, fname, 128 ); - strncpy( alt_filename, fname, 128 ); - - if ( i >= 0 ) - { - strncpy( filename + strlen( filename ), ".ttf", 4 ); - strncpy( alt_filename + strlen( alt_filename ), ".ttc", 4 ); - } - - /* Load face */ - error = TT_Open_Face( engine, filename, &face ); - if ( error == TT_Err_Could_Not_Open_File ) - { - strcpy( filename, alt_filename ); - error = TT_Open_Face( engine, alt_filename, &face ); - } - - i = strlen( filename ); - fname = filename; - - while ( i >= 0 ) - if ( filename[i] == '/' || filename[i] == '\\' ) - { - fname = filename + i + 1; - i = -1; - } - else - i--; - - if ( error ) - { - fprintf( stderr, gettext( "Could not find or open %s.\n" ), - filename ); - goto Failure; - } - if ( error ) - { - fprintf( stderr, gettext( "Error while opening %s.\n" ), filename ); - goto Failure; - } - - /* get face properties */ - TT_Get_Face_Properties( face, &properties ); - num_glyphs = properties.num_Glyphs; - - error = TT_Get_Face_Bitmaps( face, &eblc ); - if ( error == TT_Err_Table_Missing ) - { - fprintf( stderr, gettext( - "Could not find embedded bitmaps in this font.\n" ) ); - goto Failure; - } - if ( error ) - { - fprintf( stderr, gettext( - "Error while loading embedded bitmaps.\n" ) ); - goto Failure; - } - - /* create instance */ - error = TT_New_Instance( face, &instance ); - if ( error ) - { - fprintf( stderr, gettext( "Could not create instance.\n" ) ); - goto Failure; - } - - error = TT_Set_Instance_PixelSizes( instance, - ptsize, - ptsize, - ptsize*3/4 ); - if ( error ) - { - fprintf( stderr, - gettext( "Could not set point size to %d.\n" ), - ptsize ); - goto Failure; - } - - error = TT_New_SBit_Image( &bitmap ); - if ( error ) - { - fprintf( stderr, gettext( - "Could not allocate glyph bitmap container.\n" ) ); - goto Failure; - } - - for ( i = 3; i < argc; i++ ) - { - unsigned short glyph_index; - - - /* we use %i to allow the prefixes `0x' and `0' */ - if ( sscanf( argv[i], "%hi", &glyph_index ) != 1 ) - Usage( execname ); - - error = TT_Load_Glyph_Bitmap( face, instance, glyph_index, bitmap ); - - if ( error == TT_Err_Invalid_Glyph_Index ) - { - fprintf( stderr, gettext( - " no bitmap for glyph %d.\n" ), glyph_index ); - continue; - } - if ( error ) - { - fprintf( stderr, gettext( - "Can't load bitmap for glyph %d.\n" ), glyph_index ); - goto Failure; - } - - /* Dump the resulting bitmap */ - { - printf( gettext( "glyph index %d = %dx%d pixels, " ), - glyph_index, bitmap->map.rows, bitmap->map.width ); - - printf( gettext( "advance = %ld, minBearing = [%ld,%ld]\n" ), - (long)(bitmap->metrics.horiAdvance / 64), - (long)(bitmap->metrics.horiBearingX / 64), - (long)(bitmap->metrics.horiBearingY / 64)); - - Show_Single_Glyph( &bitmap->map ); - } - } - - TT_Done_SBit_Image( bitmap ); - TT_Close_Face( face ); - TT_Done_FreeType( engine ); - - exit( EXIT_SUCCESS ); /* for safety reasons */ - - return 0; /* never reached */ - - Failure: - fprintf( stderr, " " ); - fprintf( stderr, gettext( "FreeType error message: %s\n" ), - TT_ErrToString18( error ) ); - - exit( EXIT_FAILURE ); - - return 0; /* never reached */ - } - - -/* End */ diff --git a/Build/source/libs/freetype/freetype-1.5/test/ftstring.c b/Build/source/libs/freetype/freetype-1.5/test/ftstring.c deleted file mode 100644 index b60e81187e8..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/ftstring.c +++ /dev/null @@ -1,484 +0,0 @@ -/****************************************************************************/ -/* */ -/* The FreeType project -- a free and portable quality TrueType renderer. */ -/* */ -/* Copyright 1996-2001 by */ -/* D. Turner, R.Wilhelm, and W. Lemberg */ -/* */ -/* ftstring: Making string text from individual glyph information. */ -/* */ -/* Keys: */ -/* */ -/* + : fast scale up */ -/* - : fast scale down */ -/* u : fine scale down */ -/* j : fine scale up */ -/* */ -/* h : toggle hinting */ -/* */ -/* ESC : exit */ -/* */ -/* */ -/* NOTE: This is just a test program that is used to show off and */ -/* debug the current engine. */ -/* */ -/****************************************************************************/ - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include "common.h" -#include "display.h" -#include "freetype.h" - -#include "gevents.h" -#include "gdriver.h" -#include "gmain.h" - -#define Pi 3.1415926535 - -#define MAXPTSIZE 500 /* dtp */ -#define Center_X ( Bit.width / 2 ) /* dtp */ -#define Center_Y ( Bit.rows / 2 ) /* dtp */ - - TT_Engine engine; - - TT_Face face; - TT_Instance instance; - TT_Glyph glyph; - TT_CharMap char_map; - - TT_Glyph_Metrics metrics; - TT_Face_Properties properties; - TT_Instance_Metrics imetrics; - - int num_glyphs; - - int ptsize; - int hinted; - - char Header[128]; - int Fail; - int Num; - - int gray_render; - - short glyph_code[128]; - int num_codes; - - -/* Convert an ASCII string to a string of glyph indexes. */ -/* */ -/* IMPORTANT NOTE: */ -/* */ -/* There is no portable way to convert from any system's char. code */ -/* to Unicode. This function simply takes a char. string as argument */ -/* and "interprets" each character as a Unicode char. index with no */ -/* further check. */ -/* */ -/* This mapping is only valid for the ASCII character set (i.e., */ -/* codes 32 to 127); all other codes (like accentuated characters) */ -/* will produce more or less random results, depending on the system */ -/* being run. */ - - static void CharToUnicode( char* source ) - { - unsigned short i, n; - unsigned short platform, encoding; - - /* First, look for a Unicode charmap */ - - n = properties.num_CharMaps; - - for ( i = 0; i < n; i++ ) - { - TT_Get_CharMap_ID( face, i, &platform, &encoding ); - if ( (platform == 3 && encoding == 1 ) || - (platform == 0 && encoding == 0 ) ) - { - TT_Get_CharMap( face, i, &char_map ); - i = n + 1; - } - } - - if ( i == n ) - Panic( "Sorry, but this font doesn't contain any Unicode mapping table\n" ); - - for ( n = 0; n < 128 && source[n]; n++ ) -#if 1 - glyph_code[n] = TT_Char_Index( char_map, (short)source[n] ); -#else - /* Note, if you have a function, say ToUnicode(), to convert from */ - /* char codes to Unicode, use the following line instead: */ - - glyph_code[n] = TT_Char_Index( char_map, ToUnicode( source[n] ) ); -#endif - - num_codes = n; - } - - - static TT_Error Reset_Scale( int pointSize ) - { - TT_Error error; - - - if ( (error = TT_Set_Instance_PointSize( instance, pointSize )) ) - { - RestoreScreen(); - fprintf( stderr, "Error = 0x%x.\n", (unsigned)error ); - Panic( "Could not reset instance.\n" ); - } - - TT_Get_Instance_Metrics( instance, &imetrics ); - - /* now re-allocates the small bitmap */ - if ( gray_render ) - { - Init_Small( imetrics.x_ppem, imetrics.y_ppem ); - Clear_Small(); - } - - return TT_Err_Ok; - } - - - static TT_Error LoadTrueTypeChar( int idx, int hint ) - { - int flags; - - - flags = TTLOAD_SCALE_GLYPH; - if ( hint ) - flags |= TTLOAD_HINT_GLYPH; - - return TT_Load_Glyph( instance, glyph, idx, flags ); - } - - - static TT_Error Render_All( void ) - { - TT_F26Dot6 x, y, z, minx, miny, maxx, maxy; - int i; - - TT_Error error; - - - /* On the first pass, we compute the compound bounding box */ - - x = y = 0; - - minx = miny = maxx = maxy = 0; - - for ( i = 0; i < num_codes; i++ ) - { - if ( !(error = LoadTrueTypeChar( glyph_code[i], hinted )) ) - { - TT_Get_Glyph_Metrics( glyph, &metrics ); - - z = x + metrics.bbox.xMin; - if ( minx > z ) - minx = z; - - z = x + metrics.bbox.xMax; - if ( maxx < z ) - maxx = z; - - z = y + metrics.bbox.yMin; - if ( miny > z ) - miny = z; - - z = y + metrics.bbox.yMax; - if ( maxy < z ) - maxy = z; - - x += metrics.advance & -64; - } - else - Fail++; - } - - /* We now center the bbox inside the target bitmap */ - - minx = ( minx & -64 ) >> 6; - miny = ( miny & -64 ) >> 6; - - maxx = ( (maxx+63) & -64 ) >> 6; - maxy = ( (maxy+63) & -64 ) >> 6; - - maxx -= minx; - maxy -= miny; - - minx = (Bit.width - maxx)/2; - miny = (Bit.rows + miny)/2; - - maxx += minx; - maxy += maxy; - - /* On the second pass, we render each glyph to its centered position. */ - /* This is slow, because we reload each glyph to render it! */ - - x = minx; - y = miny; - - for ( i = 0; i < num_codes; i++ ) - { - if ( !(error = LoadTrueTypeChar( glyph_code[i], hinted )) ) - { - TT_Get_Glyph_Metrics( glyph, &metrics ); - - Render_Single_Glyph( gray_render, glyph, (int)x, (int)y ); - - x += metrics.advance/64; - } - } - - return TT_Err_Ok; - } - - - static int Process_Event( TEvent* event ) - { - switch ( event->what ) - { - case event_Quit: /* ESC or q */ - return 0; - - case event_Keyboard: - if ( event->info == 'h' ) /* Toggle hinting */ - hinted = !hinted; - break; - - case event_Rotate_Glyph: - break; - - case event_Scale_Glyph: - ptsize += event->info; - if ( ptsize < 1 ) ptsize = 1; - if ( ptsize > MAXPTSIZE ) ptsize = MAXPTSIZE; - break; - - case event_Change_Glyph: - break; - } - - return 1; - } - - - static void usage( char* execname ) - { - fprintf( stderr, - "\n" - "ftstring: simple String Test Display -- part of the FreeType project\n" - "--------------------------------------------------------------------\n" - "\n" - "Usage: %s [options below] ppem fontname[.ttf|.ttc] [string]\n", - execname ); - fprintf( stderr, - "\n" - " -g gray-level rendering (default: none)\n" - " -r R use resolution R dpi (default: 96)\n" - "\n" ); - - exit( EXIT_FAILURE ); - } - - - int main( int argc, char** argv ) - { - int i, old_ptsize, orig_ptsize, file; - int XisSetup = 0; - char filename[128 + 4]; - char alt_filename[128 + 4]; - char* execname; - int option; - int res = 96; - - TT_Error error; - TEvent event; - - - execname = ft_basename( argv[0] ); - - while ( 1 ) - { - option = ft_getopt( argc, argv, "gr:" ); - - if ( option == -1 ) - break; - - switch ( option ) - { - case 'g': - gray_render = 1; - break; - - case 'r': - res = atoi( ft_optarg ); - if ( res < 1 ) - usage( execname ); - break; - - default: - usage( execname ); - break; - } - } - - argc -= ft_optind; - argv += ft_optind; - - if ( argc <= 1 ) - usage( execname ); - - if ( sscanf( argv[0], "%d", &orig_ptsize ) != 1 ) - orig_ptsize = 64; - - file = 1; - - /* Initialize engine */ - - if ( (error = TT_Init_FreeType( &engine )) ) - Panic( "Error while initializing engine, code = 0x%x.\n", error ); - - ptsize = orig_ptsize; - hinted = 1; - - i = strlen( argv[file] ); - while ( i > 0 && argv[file][i] != '\\' && argv[file][i] != '/' ) - { - if ( argv[file][i] == '.' ) - i = 0; - i--; - } - - filename[128] = '\0'; - alt_filename[128] = '\0'; - - strncpy( filename, argv[file], 128 ); - strncpy( alt_filename, argv[file], 128 ); - - if ( i >= 0 ) - { - strncpy( filename + strlen( filename ), ".ttf", 4 ); - strncpy( alt_filename + strlen( alt_filename ), ".ttc", 4 ); - } - - /* Load face */ - - error = TT_Open_Face( engine, filename, &face ); - - if ( error == TT_Err_Could_Not_Open_File ) - { - strcpy( filename, alt_filename ); - error = TT_Open_Face( engine, alt_filename, &face ); - } - - if ( error == TT_Err_Could_Not_Open_File ) - Panic( "Could not find/open %s.\n", filename ); - else if (error) - Panic( "Error while opening %s, error code = 0x%x.\n", - filename, error ); - - /* get face properties and allocate preload arrays */ - - TT_Get_Face_Properties( face, &properties ); - - num_glyphs = properties.num_Glyphs; - - /* create glyph */ - - error = TT_New_Glyph( face, &glyph ); - if ( error ) - Panic( "Could not create glyph container.\n" ); - - /* create instance */ - - error = TT_New_Instance( face, &instance ); - if ( error ) - Panic( "Could not create instance for %s.\n", filename ); - - error = TT_Set_Instance_Resolutions( instance, res, res ); - if ( error ) - Panic( "Could not set device resolutions." ); - - if ( !XisSetup ) - { - XisSetup = 1; - - if ( gray_render ) - { - if ( !SetGraphScreen( Graphics_Mode_Gray ) ) - Panic( "Could not set up grayscale graphics mode.\n" ); - - TT_Set_Raster_Gray_Palette( engine, virtual_palette ); - } - else - { - if ( !SetGraphScreen( Graphics_Mode_Mono ) ) - Panic( "Could not set up mono graphics mode.\n" ); - } - } - - Init_Display( gray_render ); - - Reset_Scale( ptsize ); - - old_ptsize = ptsize; - - Fail = 0; - Num = 0; - - CharToUnicode( ( argv[2] ? argv[2] : - "The quick brown fox jumps over the lazy dog" ) ); - - for ( ;; ) - { - Clear_Display(); - Render_All(); - if ( gray_render ) - Convert_To_Display_Palette(); - - sprintf( Header, "%s: ptsize: %4d hinting: %s", - ft_basename( filename ), ptsize, - hinted ? "on" : "off" ); - - Display_Bitmap_On_Screen( Bit.bitmap, Bit.rows, Bit.cols ); - -#ifndef X11 -#ifndef OS2 - Print_XY( 0, 0, Header ); -#endif -#endif - - Get_Event( &event ); - if ( !( Process_Event( &event ) ) ) - goto End; - - if ( ptsize != old_ptsize ) - { - if ( Reset_Scale( ptsize ) ) - Panic( "Could not resize font.\n" ); - - old_ptsize = ptsize; - } - } - - End: - RestoreScreen(); - - TT_Close_Face( face ); - TT_Done_FreeType( engine ); - - printf( "Execution completed successfully.\n" ); - printf( "Fails = %d.\n", Fail ); - - exit( EXIT_SUCCESS ); /* for safety reasons */ - - return 0; /* never reached */ -} - - -/* End */ diff --git a/Build/source/libs/freetype/freetype-1.5/test/ftstrpnm.c b/Build/source/libs/freetype/freetype-1.5/test/ftstrpnm.c deleted file mode 100644 index 73b42ea1c1e..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/ftstrpnm.c +++ /dev/null @@ -1,534 +0,0 @@ -/****************************************************************************/ -/* */ -/* The FreeType project -- a free and portable quality TrueType renderer. */ -/* */ -/* Copyright 1996-2001 by */ -/* D. Turner, R.Wilhelm, and W. Lemberg */ -/* */ -/* ftstrpnm: convert text to image (in PGM or PBM format) */ -/* */ -/* NOTE: This is just a test program that is used to show off and */ -/* debug the current engine. */ -/* */ -/****************************************************************************/ - -#define PROGNAME "ftstrpnm" - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include "common.h" -#include "freetype.h" - -#define TT_VALID( handle ) ( ( handle ).z != NULL ) - - - /* Global variables */ - - TT_Engine engine; - TT_Face face; - TT_Instance instance; - - TT_Face_Properties properties; - - TT_Raster_Map bit; - TT_Raster_Map small_bit; /* used when font-smoothing is enabled */ - - int pnm_width, pnm_height; - int pnm_x_shift, pnm_y_shift; - - - /* Loaded glyphs for all characters */ - - TT_Glyph *glyphs = NULL; - - - /* Options */ - - int dpi = 96; - int ptsize = 12; - int hinted = 1; - int smooth = 0; - int border = 0; - - /* color for text in RGB format */ - unsigned short int textclr[3] = { 0, 0, 0 }; - - /* raster map management */ - - static void Init_Raster_Map( TT_Raster_Map* bit, int width, int height ) - { - bit->rows = height; - bit->width = ( width + 3 ) & -4; - bit->flow = TT_Flow_Down; - - if ( smooth ) - { - bit->cols = bit->width; - bit->size = bit->rows * bit->width; - } - else - { - bit->cols = ( bit->width + 7 ) / 8; /* convert to # of bytes */ - bit->size = bit->rows * bit->cols; /* number of bytes in buffer */ - } - - bit->bitmap = (void *) malloc( bit->size ); - if ( !bit->bitmap ) - Panic( "Not enough memory to allocate bitmap!\n" ); - } - - - static void Done_Raster_Map( TT_Raster_Map *bit ) - { - free( bit->bitmap ); - bit->bitmap = NULL; - } - - - static void Clear_Raster_Map( TT_Raster_Map* bit ) - { - memset( bit->bitmap, 0, bit->size ); - } - - - static void Blit_Or( TT_Raster_Map* dst, TT_Raster_Map* src, - int x_off, int y_off ) - { - int x, y; - int x1, x2, y1, y2; - char *s, *d; - - - /* clipping */ - - x1 = x_off < 0 ? -x_off : 0; - y1 = y_off < 0 ? -y_off : 0; - - x2 = (int)dst->cols - x_off; - if ( x2 > src->cols ) - x2 = src->cols; - - y2 = (int)dst->rows - y_off; - if ( y2 > src->rows ) - y2 = src->rows; - - if ( x1 >= x2 ) - return; - - /* do the real work now */ - - for ( y = y1; y < y2; ++y ) - { - s = ( (char*)src->bitmap ) + y * src->cols + x1; - d = ( (char*)dst->bitmap ) + ( y + y_off ) * dst->cols + x1 + x_off; - - for ( x = x1; x < x2; ++x ) - *d++ |= *s++; - } - } - - - static void Dump_Raster_Map( TT_Raster_Map* bit, FILE* file ) - { - /* kudos for this code snippet go to Norman Walsh */ - - char* bmap; - int i, j; - unsigned short int colors[3][5]; - - bmap = (char *)bit->bitmap; - - if ( smooth ) /* anti-aliasing */ - { - fprintf( file, "P6\n%d %d\n255\n", pnm_width, pnm_height ); - - /* calculate colors for anti-aliasing */ - for (i = 0; i < 3; i++ ) - for (j = 0; j < 5; j++) - colors[i][j] = (255 - textclr[i]) * j / 4 + textclr[i]; - - for ( i = 0; i < bit->size; i++ ) /* iterate pixels */ - bmap[i] = bmap[i] > 4 ? 0 : 4 - bmap[i]; - - for ( i = pnm_height; i > 0; i--, bmap += bit->cols ) - for ( j = 0; j < pnm_width; j++ ) - fprintf( file, "%c%c%c", colors[0][(unsigned int) bmap[j]],\ - colors[1][(unsigned int) bmap[j]],\ - colors[2][(unsigned int) bmap[j]]); - } - else /* no anti-aliasing */ - { - fprintf( file, "P6\n%d %d\n255\n", pnm_width, pnm_height ); - - for ( i = 0; i < pnm_height; i++, bmap += bit->cols ) /* iterate rows */ - for ( j = 0; j < pnm_width; j++ ) /* iterate bits(=columns) in row */ - if ( bmap[j / 8] >> ( 7 - j % 8 ) & 1 ) /* bit set? */ - fprintf( file, "%c%c%c", textclr[0], textclr[1], textclr[2] ); - else - fprintf( file, "%c%c%c", 255, 255, 255 ); - } - fflush( file ); - } - - - /* glyph management */ - - static void Load_Glyphs( char* txt, int txtlen ) - { - unsigned short i, n, code, load_flags; - unsigned short num_glyphs = 0, no_cmap = 0; - unsigned short platform, encoding; - TT_Error error; - TT_CharMap char_map; - - - /* First, look for a Unicode charmap */ - - n = properties.num_CharMaps; - - for ( i = 0; i < n; i++ ) - { - TT_Get_CharMap_ID( face, i, &platform, &encoding ); - if ( (platform == 3 && encoding == 1 ) || - (platform == 0 && encoding == 0 ) ) - { - TT_Get_CharMap( face, i, &char_map ); - break; - } - } - - if ( i == n ) - { - TT_Face_Properties properties; - - - TT_Get_Face_Properties( face, &properties ); - - no_cmap = 1; - num_glyphs = properties.num_Glyphs; - } - - - /* Second, allocate the array */ - - glyphs = (TT_Glyph*)malloc( 256 * sizeof ( TT_Glyph ) ); - memset( glyphs, 0, 256 * sizeof ( TT_Glyph ) ); - - /* Finally, load the glyphs you need */ - - load_flags = TTLOAD_SCALE_GLYPH; - if ( hinted ) - load_flags |= TTLOAD_HINT_GLYPH; - - for ( i = 0; i < txtlen; ++i ) - { - unsigned char j = txt[i]; - - - if ( TT_VALID( glyphs[j] ) ) - continue; - - if ( no_cmap ) - { - code = (j - ' ' + 1) < 0 ? 0 : (j - ' ' + 1); - if ( code >= num_glyphs ) - code = 0; - } - else - code = TT_Char_Index( char_map, j ); - - (void)( - ( error = TT_New_Glyph( face, &glyphs[j] ) ) || - ( error = TT_Load_Glyph( instance, glyphs[j], code, load_flags ) ) - ); - - if ( error ) - Panic( "Cannot allocate and load glyph: error 0x%x.\n", error ); - } - } - - - static void Done_Glyphs( void ) - { - int i; - - - if ( !glyphs ) - return; - - for ( i = 0; i < 256; ++i ) - TT_Done_Glyph( glyphs[i] ); - - free( glyphs ); - - glyphs = NULL; - } - - - /* face & instance management */ - - static void Init_Face( const char* filename ) - { - TT_Error error; - - - /* load the typeface */ - - error = TT_Open_Face( engine, filename, &face ); - if ( error ) - { - if ( error == TT_Err_Could_Not_Open_File ) - Panic( "Could not find/open %s.\n", filename ); - else - Panic( "Error while opening %s, error code = 0x%x.\n", - filename, error ); - } - - TT_Get_Face_Properties( face, &properties ); - - /* create and initialize instance */ - - (void) ( - ( error = TT_New_Instance( face, &instance ) ) || - ( error = TT_Set_Instance_Resolutions( instance, dpi, dpi ) ) || - ( error = TT_Set_Instance_PointSize( instance, ptsize ) ) - ); - - if ( error ) - Panic( "Could not create and initialize instance: error 0x%x.\n", - error ); - } - - - static void Done_Face( void ) - { - TT_Done_Instance( instance ); - TT_Close_Face( face ); - } - - - /* rasterization stuff */ - - static void Init_Raster_Areas( const char* txt, int txtlen ) - { - int i, upm, ascent, descent; - TT_Face_Properties properties; - TT_Instance_Metrics imetrics; - TT_Glyph_Metrics gmetrics; - - - /* allocate the large bitmap */ - - TT_Get_Face_Properties( face, &properties ); - TT_Get_Instance_Metrics( instance, &imetrics ); - - upm = properties.header->Units_Per_EM; - ascent = ( properties.horizontal->Ascender * imetrics.y_ppem ) / upm; - descent = ( properties.horizontal->Descender * imetrics.y_ppem ) / upm; - - pnm_width = 2 * border; - pnm_height = 2 * border + ascent - descent; - - for ( i = 0; i < txtlen; ++i ) - { - unsigned char j = txt[i]; - - - if ( !TT_VALID( glyphs[j] ) ) - continue; - - TT_Get_Glyph_Metrics( glyphs[j], &gmetrics ); - pnm_width += gmetrics.advance / 64; - } - - Init_Raster_Map( &bit, pnm_width, pnm_height ); - Clear_Raster_Map( &bit ); - - pnm_x_shift = border; - pnm_y_shift = border - descent; - - /* allocate the small bitmap if you need it */ - - if ( smooth ) - Init_Raster_Map( &small_bit, imetrics.x_ppem + 32, pnm_height ); - } - - - static void Done_Raster_Areas( void ) - { - Done_Raster_Map( &bit ); - if ( smooth ) - Done_Raster_Map( &small_bit ); - } - - - static void Render_Glyph( TT_Glyph glyph, - int x_off, int y_off, - TT_Glyph_Metrics* gmetrics ) - { - if ( !smooth ) - TT_Get_Glyph_Bitmap( glyph, &bit, x_off * 64L, y_off * 64L); - else - { - TT_F26Dot6 xmin, ymin, xmax, ymax; - - - /* grid-fit the bounding box */ - - xmin = gmetrics->bbox.xMin & -64; - ymin = gmetrics->bbox.yMin & -64; - xmax = (gmetrics->bbox.xMax + 63) & -64; - ymax = (gmetrics->bbox.yMax + 63) & -64; - - /* now render the glyph in the small pixmap */ - /* and blit-or the resulting small pixmap into the biggest one */ - - Clear_Raster_Map( &small_bit ); - TT_Get_Glyph_Pixmap( glyph, &small_bit, -xmin, -ymin ); - Blit_Or( &bit, &small_bit, xmin/64 + x_off, -ymin/64 - y_off ); - } - } - - - static void Render_All_Glyphs( char* txt, int txtlen ) - { - int i; - TT_F26Dot6 x, y, adjx; - TT_Glyph_Metrics gmetrics; - - - x = pnm_x_shift; - y = pnm_y_shift; - - for ( i = 0; i < txtlen; i++ ) - { - unsigned char j = txt[i]; - - if ( !TT_VALID( glyphs[j] ) ) - continue; - - TT_Get_Glyph_Metrics( glyphs[j], &gmetrics ); - - adjx = x; /* ??? lsb */ - Render_Glyph( glyphs[j], adjx, y, &gmetrics ); - - x += gmetrics.advance / 64; - } - } - - - static void usage( void ) - { - printf( "\n" ); - printf( "%s: simple text to image converter -- part of the FreeType project\n", PROGNAME ); - printf( "\n" ); - printf( "Usage: %s [options below] filename [string]\n", PROGNAME ); - printf( "\n" ); - printf( " -g gray-level rendering (default: off)\n" ); - printf( " -h hinting off (default: on)\n" ); - printf( " -r X resolution X dpi (default: 96)\n" ); - printf( " -p X pointsize X pt (default: 12)\n" ); - printf( " -b X border X pixels wide (default: 0)\n" ); - printf( " -c X textcolor X in RRGGBB hexadecimal format (default: 00000 (=black))\n" ); - printf( "\n" ); - - exit( EXIT_FAILURE ); - } - - - int main( int argc, char** argv ) - { - int option, txtlen; - long int hexvalue; - char *txt, *filename; - TT_Error error; - - - /* Parse options */ - - while ( 1 ) - { - option = ft_getopt( argc, argv, "ghr:p:b:c:" ); - - if ( option == -1 ) - break; - - switch ( option ) - { - case 'g': - smooth = 1; - break; - case 'h': - hinted = 0; - break; - case 'r': - dpi = atoi( ft_optarg ); - break; - case 'p': - ptsize = atoi( ft_optarg ); - break; - case 'b': - border = atoi( ft_optarg ); - break; - case 'c': - sscanf( ft_optarg, "%lx", &hexvalue ); - textclr[0] = hexvalue>>16 & 0xFF; - textclr[1] = hexvalue>> 8 & 0xFF; - textclr[2] = hexvalue>> 0 & 0xFF; - break; - - default: - usage(); - break; - } - } - - argc -= ft_optind; - argv += ft_optind; - - if ( argc <= 0 || argc > 2 || dpi <= 0 || ptsize <= 0 || border < 0 ) - usage(); - - filename = argv[0]; - - if ( argc > 1 ) - txt = argv[1]; - else - txt = "The quick brown fox jumps over the lazy dog"; - - txtlen = strlen( txt ); - - /* Initialize engine and other stuff */ - - error = TT_Init_FreeType( &engine ); - if ( error ) - Panic( "Error while initializing engine, code = 0x%x.\n", error ); - - Init_Face( filename ); - Load_Glyphs( txt, txtlen ); - Init_Raster_Areas( txt, txtlen ); - - /* Do the real work now */ - - Render_All_Glyphs( txt, txtlen ); - Dump_Raster_Map( &bit, stdout ); - - /* Clean up */ - - Done_Raster_Areas(); - Done_Glyphs(); - Done_Face(); - - /* That's all, folks! */ - - TT_Done_FreeType( engine ); - - exit( EXIT_SUCCESS ); /* for safety reasons */ - - return 0; /* never reached */ -} - - -/* End */ diff --git a/Build/source/libs/freetype/freetype-1.5/test/ftstrtto.c b/Build/source/libs/freetype/freetype-1.5/test/ftstrtto.c deleted file mode 100644 index 823632ddbd9..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/ftstrtto.c +++ /dev/null @@ -1,1476 +0,0 @@ -/****************************************************************************/ -/* */ -/* The FreeType project -- a free and portable quality TrueType renderer. */ -/* */ -/* Copyright 1996-2001 by */ -/* D. Turner, R.Wilhelm, and W. Lemberg */ -/* */ -/* ftstrtto: Making string text from individual glyph information, using */ -/* TrueType Open features. */ -/* */ -/* Keys: */ -/* */ -/* + : fast scale up */ -/* - : fast scale down */ -/* u : fine scale down */ -/* j : fine scale up */ -/* */ -/* h : toggle hinting */ -/* K : toggle kerning */ -/* B : toggle sbit */ -/* S : toggle GSUB */ -/* P : toggle GPOS */ -/* */ -/* q : */ -/* ESC : exit */ -/* */ -/* */ -/* NOTE: This is just a test program that is used to show off and */ -/* debug the current engine. */ -/* */ -/****************************************************************************/ - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include "arabic.h" -#include "blitter.h" -#include "common.h" -#include "display.h" - -#include "freetype.h" -#include "ftxkern.h" -#include "ftxopen.h" -#include "ftxsbit.h" - -#include "gdriver.h" -#include "gevents.h" -#include "gmain.h" - -/* we want to use FREE() to make a compilation with DEBUG_MEMORY happy */ - -#include "ttmemory.h" - -#define MAXPTSIZE 500 /* dtp */ -#define Center_X ( Bit.width / 2 ) /* dtp */ -#define Center_Y ( Bit.rows / 2 ) /* dtp */ - -#define FEATURE_init MAKE_TT_TAG( 'i', 'n', 'i', 't' ) -#define FEATURE_medi MAKE_TT_TAG( 'm', 'e', 'd', 'i' ) -#define FEATURE_fina MAKE_TT_TAG( 'f', 'i', 'n', 'a' ) -#define FEATURE_isol MAKE_TT_TAG( 'i', 's', 'o', 'l' ) - - - char Header[128]; - - TT_Engine engine; - TT_Face face; - TT_Instance instance; - TT_Glyph glyph; - TT_CharMap char_map; - TT_Kerning directory; - - TTO_GSUBHeader gsub_; - TTO_GSUBHeader* gsub; - TTO_GPOSHeader gpos_; - TTO_GPOSHeader* gpos; - TTO_GDEFHeader gdef_; - TTO_GDEFHeader* gdef; - - TT_Big_Glyph_Metrics metrics; - TT_Outline outline; - TT_Face_Properties face_properties; - TT_Instance_Metrics imetrics; - - TT_SBit_Image* sbit; - - int pt_size; - int ttc_index; - TT_Bool hinted; - TT_Bool gray_render; - TT_Bool r2l; - TT_Bool vertical; - - TT_Bool has_kern; - TT_Bool use_kern; - TT_Bool has_gdef; - TT_Bool has_gsub; - TT_Bool use_gsub; - TT_Bool has_gpos; - TT_Bool use_gpos; - TT_Bool has_sbit; - TT_Bool use_sbit; - TT_Bool glyph_has_sbit; - - TT_Bool default_language_system; - - int Fail; - - char* char_string; - - TT_UShort glyph_code_array[129]; - TT_ULong char_code[128]; - TT_UShort properties[128]; - - TT_UShort* glyph_code; - int num_glyphs; - - TT_ULong script_tag; - char* script_tag_string; - TT_UShort gsub_script_index; - TT_UShort gpos_script_index; - - TT_ULong language_tag; - char* language_tag_string; - TT_UShort gsub_language_index; - TT_UShort gpos_language_index; - TT_UShort gsub_req_feature_index = 0xFFFF; - TT_UShort gpos_req_feature_index = 0xFFFF; - - TT_ULong* feature_tags; - char** feature_tag_strings; - TT_UShort* gsub_feature_indices; - TT_UShort* gpos_feature_indices; - int num_features; - - - static void Select_CMap( void ) - { - TT_UShort i, n; - TT_UShort platform, encoding; - - - n = face_properties.num_CharMaps; - - /* try pid/eid (3,10) before (3,1) */ - - for ( i = 0; i < n; i++ ) - { - TT_Get_CharMap_ID( face, i, &platform, &encoding ); - if ( platform == 3 && encoding == 10 ) - { - TT_Get_CharMap( face, i, &char_map ); - break; - } - } - - if ( i == n ) - { - for ( i = 0; i < n; i++ ) - { - TT_Get_CharMap_ID( face, i, &platform, &encoding ); - if ( platform == 3 && encoding == 1 ) - { - TT_Get_CharMap( face, i, &char_map ); - break; - } - } - } - - /* we try only pid/eid (0,0) if no (3,1) map is found -- many Windows - fonts have only rudimentary (0,0) support. */ - - if ( i == n ) - { - for ( i = 0; i < n; i++ ) - { - TT_Get_CharMap_ID( face, i, &platform, &encoding ); - if ( platform == 0 && encoding == 0 ) - { - TT_Get_CharMap( face, i, &char_map ); - break; - } - } - - if ( i == n ) - Panic( "Sorry, but this font doesn't contain" - " any Unicode mapping table.\n" ); - } - } - - - /* Convert a Latin 1 string to a string of glyph indexes. */ - /* */ - /* IMPORTANT NOTE: */ - /* */ - /* There is no portable way to convert from any system's char. code */ - /* to Unicode. This function simply takes a char. string as argument */ - /* and `interprets' each character as a Unicode char. index with no */ - /* further check. */ - /* */ - /* We interpret the command line string as Unicode with the high byte */ - /* set to zero. This is equivalent to Latin-1. */ - - static void Latin1Char_To_Glyph( char* source ) - { - TT_UShort n; - - - glyph_code = glyph_code_array + 1; /* we want to make glyph_code[-1] */ - glyph_code[-1] = 0; /* possible. */ - - for ( n = 0; n < 128 && source[n]; n++ ) - { - char_code[n] = (TT_ULong)( (unsigned char)source[n] ); - glyph_code[n] = TT_Char_Index( char_map, char_code[n] ); - } - - num_glyphs = n; - } - - - static void UTF8Char_To_Glyph( char* source ) - { - TT_UShort in, out, in_code; - TT_ULong out_code; - TT_UShort count, limit; - - - glyph_code = glyph_code_array + 1; /* we want to make glyph_code[-1] */ - glyph_code[-1] = 0; /* possible. */ - - for ( in = out = 0, count = limit = 1, in_code = out_code = 0; - in < 128 && source[in]; in++ ) - { - in_code = (TT_UShort)( (unsigned char)source[in] ); - - if ( in_code >= 0xC0 ) - { - limit = 1; - count = 1; - - if ( in_code < 0xE0 ) /* U+0080 - U+07FF */ - { - limit = 2; - out_code = in_code & 0x1F; - } - else if ( in_code < 0xF0 ) /* U+0800 - U+FFFF */ - { - limit = 3; - out_code = in_code & 0x0F; - } - else if ( in_code < 0xF8 ) /* U+10000 - U+1FFFFF */ - { - limit = 4; - out_code = in_code & 0x07; - } - continue; - } - else if ( in_code >= 0x80 ) - { - count++; - - if ( count <= limit ) - { - out_code <<= 6; - out_code += in_code & 0x3F; - } - if ( count != limit ) - continue; - } - else - out_code = in_code; - - char_code[out] = out_code; - glyph_code[out++] = TT_Char_Index( char_map, out_code ); - } - - num_glyphs = out; - } - - - static TT_Error Reset_Scale( int pointSize ) - { - TT_Error error; - - - error = TT_Set_Instance_CharSize( instance, pointSize * 64L ); - if ( error ) - { - RestoreScreen(); - Panic( "Could not reset instance, code = 0x%x.\n", error ); - } - - TT_Get_Instance_Metrics( instance, &imetrics ); - - /* now re-allocate the small bitmap */ - if ( gray_render ) - { - Init_Small( imetrics.x_ppem, imetrics.y_ppem ); - Clear_Small(); - } - - return TT_Err_Ok; - } - - - static TT_Error Load_TrueType_Char( TT_UShort idx, - TT_Bool hint ) - { - int flags; - TT_Error error; - - - glyph_has_sbit = 0; - - error = TT_Load_Glyph_Bitmap( face, instance, idx, sbit ); - if ( error == TT_Err_Ok ) - { - has_sbit = 1; - glyph_has_sbit = 1; - } - - if ( glyph_has_sbit && use_sbit ) - return TT_Err_Ok; - - flags = TTLOAD_SCALE_GLYPH; - if ( hint ) - flags |= TTLOAD_HINT_GLYPH; - - return TT_Load_Glyph( instance, glyph, idx, flags ); - } - - - static TT_Error Get_Kern_Values( TT_UShort idx, - TT_Pos* x, - TT_Pos* y ) - { - TT_UShort i; - TT_Kern_Subtable table; - TT_Kern_0_Pair* pairs_0; - - TT_UShort min, max, new_min, new_max, middle; - TT_Long target_idx, current_idx; - - - *x = 0; - *y = 0; - - for ( i = 0; i < directory.nTables; i++ ) - { - table = directory.tables[i]; - - /* handle only horizontal kerning tables */ - - if ( table.coverage & 0x0001 ) - { - switch ( table.format ) - { - case 0: - pairs_0 = table.t.kern0.pairs; - target_idx = ( glyph_code[idx - 1] << 16 ) + glyph_code[idx]; - - /* binary search */ - - new_min = 0; - new_max = table.t.kern0.nPairs - 1; - - do - { - min = new_min; - max = new_max; - middle = max - ( ( max - min ) >> 1 ); - - current_idx = ( pairs_0[middle].left << 16 ) + - pairs_0[middle].right; - - if ( target_idx == current_idx ) - { - *x += pairs_0[middle].value; - break; - } - else if ( target_idx < current_idx ) - { - if ( middle == min ) - break; - new_max = middle - 1; - } - else - { - if ( middle == max ) - break; - new_min = middle + 1; - } - } while ( min < max ); - - break; - - /* we currently ignore format 2 kerning tables */ - - case 2: - break; - } - } - } - - /* scaling */ - - *x = *x * imetrics.x_scale / 0x10000; - *y = *y * imetrics.y_scale / 0x10000; - - return TT_Err_Ok; - } - - - /* for testing purposes, we always select the last available alternate - glyph, not using the `data' field. */ - - static TT_UShort alternate_function( TT_ULong pos, - TT_UShort glyphID, - TT_UShort num_alternates, - TT_UShort* alternates, - void* data ) - { - return num_alternates - 1; - } - - - static TT_Error Render_All( void ) - { - TT_Pos x, y, z, min_x, min_y, max_x, max_y; - TT_Pos kern_x, kern_y; - TT_Pos back_x, back_y; - TT_Pos* X; - TT_Pos* Y; - int i, n, back; - TT_UShort* gc; - TT_UShort glyph_property = 0; - - TT_Error error; - - TTO_GSUB_String in, out; - TTO_GPOS_Data* gd = NULL; - TTO_GPOS_Data* curr_gd; - TTO_GPOS_Data empty_gd = {0, 0, 0, 0, 0, 0}; - - - /* On the first pass, we compute the compound bounding box */ - - x = y = 0; - kern_x = kern_y = 0; - min_x = min_y = max_x = max_y = 0; - - in.length = num_glyphs; - in.pos = 0; - in.string = glyph_code; - in.properties = properties; - in.components = NULL; - in.ligIDs = NULL; - - out.pos = 0; - out.allocated = 0; - out.string = NULL; - out.properties = NULL; - out.components = NULL; - out.ligIDs = NULL; - - if ( has_gsub && use_gsub ) - { - error = TT_GSUB_Apply_String( gsub, &in, &out ); - if ( error && error != TTO_Err_Not_Covered ) - return error; - } - else - out = in; - - if ( has_gpos && use_gpos ) - { - error = TT_GPOS_Apply_String( instance, glyph, gpos, - hinted ? TTLOAD_HINT_GLYPH : 0, - &out, &gd, 0, r2l ); - if ( error && error != TTO_Err_Not_Covered ) - return error; - } - - n = out.length; - gc = out.string; - - /* we save the glyph positions for future reference as needed - for mark glyphs attached to base glyphs in TTO_GPOS_Data */ - - X = (TT_Pos*)malloc( n * sizeof ( TT_Pos ) ); - Y = (TT_Pos*)malloc( n * sizeof ( TT_Pos ) ); - if ( !X || !Y ) - Panic( "Can't allocate position arrays.\n" ); - - has_sbit = 0; - curr_gd = &empty_gd; - - for ( i = 0; i < n; i++ ) - { - X[i] = x; - Y[i] = y; - - error = Load_TrueType_Char( gc[i], hinted ); - if ( error == TT_Err_Ok ) - { - if ( glyph_has_sbit && use_sbit ) - metrics = sbit->metrics; - else - TT_Get_Glyph_Big_Metrics( glyph, &metrics ); - if ( has_kern && use_kern ) - Get_Kern_Values( i, &kern_x, &kern_y ); - - if ( gd ) - { - curr_gd = &gd[i]; - - /* search the base glyph */ - - back_x = gd[i].x_pos; - back_y = gd[i].y_pos; - back = i - gd[i].back; - - while ( gd[back].back ) - { - back_x += gd[back].x_pos; - back_y += gd[back].y_pos; - back -= gd[back].back; - } - } - else - { - back_x = back_y = 0; - back = i; - } - - z = X[back] + metrics.bbox.xMin + kern_x + back_x; - if ( min_x > z ) - min_x = z; - - z = X[back] + metrics.bbox.xMax + kern_x + back_x; - if ( max_x < z ) - max_x = z; - - z = Y[back] + metrics.bbox.yMin + kern_y + back_y; - if ( min_y > z ) - min_y = z; - - z = Y[back] + metrics.bbox.yMax + kern_y + back_y; - if ( max_y < z ) - max_y = z; - - if ( has_gdef ) - { - error = TT_GDEF_Get_Glyph_Property( gdef, gc[i], &glyph_property ); - if ( error ) - return error; - } - - /* advance only if it is not a mark glyph */ - - if ( !( glyph_property & TTO_MARK ) ) - { - if ( vertical ) - y += kern_y + curr_gd->y_advance + - ( curr_gd->new_advance ? 0 : metrics.vertAdvance ); - else - x += kern_x + curr_gd->x_advance + - ( curr_gd->new_advance ? 0 : metrics.horiAdvance ); - } - } - else - Fail++; - } - - /* We now center the bbox inside the target bitmap */ - - min_x = min_x & -64; - min_y = min_y & -64; - - max_x = ( max_x + 63 ) & -64; - max_y = ( max_y + 63 ) & -64; - - max_x -= min_x; - max_y -= min_y; - - min_x = ( ( Bit.width << 6 ) - max_x ) / 2; - min_y = ( ( Bit.rows << 6 ) - max_y ) / 2; - - max_x += min_x; - max_y += min_y; - - /* On the second pass, we render each glyph to its centered position. */ - /* This is slow, because we reload each glyph to render it! Using a */ - /* cache (for glyphs, metrics, properties, and kern values) could */ - /* speed this up significantly in real applications. */ - - x = vertical ? min_x : ( r2l ? max_x : min_x ); - y = vertical ? ( r2l ? min_y : max_y ) : min_y; - - for ( i = 0; i < n; i++ ) - { - error = Load_TrueType_Char( gc[i], hinted ); - if ( error == TT_Err_Ok ) - { - if ( glyph_has_sbit && use_sbit ) - metrics = sbit->metrics; - else - TT_Get_Glyph_Big_Metrics( glyph, &metrics ); - if ( has_kern && use_kern ) - Get_Kern_Values( i, &kern_x, &kern_y ); - - if ( gd ) - curr_gd = &gd[i]; - - if ( has_gdef ) - (void)TT_GDEF_Get_Glyph_Property( gdef, gc[i], &glyph_property ); - - if ( !( glyph_property & TTO_MARK ) ) - { - if ( r2l ) - { - if ( vertical ) - y += curr_gd->y_advance + - ( curr_gd->new_advance ? 0 : metrics.vertAdvance ); - else - x -= curr_gd->x_advance + - ( curr_gd->new_advance ? 0 : metrics.horiAdvance ); - } - else - { - if ( vertical ) - y -= kern_y; - else - x += kern_x; - } - } - - /* We must specify the upper left corner of the bitmap, but the - lower left corner for the outline. Another complication is that - Blit_Bitmap() assumes that increasing y values means moving - downwards. - - For vertical layout, the origin of the horizontal and vertical - bearings of embedded bitmaps is the top, thus we shift the - outline glyphs down. - - Now we finally round all values to integer pixels. */ - - if ( glyph_has_sbit && use_sbit ) - { - if ( !curr_gd->back ) - { - X[i] = ( ( ( x + curr_gd->x_pos + - vertical ? metrics.vertBearingX : - metrics.horiBearingX ) - + 32 ) & -64 ) >> 6; - Y[i] = Bit.rows - - ( ( ( ( y + curr_gd->y_pos + - vertical ? metrics.vertBearingY : - metrics.horiBearingY ) - + 32 ) & -64 ) >> 6 ); - Blit_Bitmap( &Bit, - &sbit->map, - gray_render ? 8 : 1, - X[i], Y[i], gray_palette[4] ); - } - else - { - /* search the base glyph */ - - back_x = gd[i].x_pos; - back_y = gd[i].y_pos; - back = i - gd[i].back; - - while ( gd[back].back ) - { - back_x += gd[back].x_pos; - back_y += gd[back].y_pos; - back -= gd[back].back; - } - - Blit_Bitmap( &Bit, - &sbit->map, - gray_render ? 8 : 1, - X[back] + ( ( ( back_x + 32 ) & -64 ) >> 6 ), - Y[back] + ( ( ( back_y + 32 ) & -64 ) >> 6 ), - gray_palette[4] ); - } - } - else - { - if ( !curr_gd->back ) - { - X[i] = ( ( x + curr_gd->x_pos + 32 ) & -64 ) >> 6; - Y[i] = ( ( y + curr_gd->y_pos - - ( vertical ? - metrics.vertBearingY + metrics.bbox.yMax : - 0 ) - + 32 ) & -64 ) >> 6; - Render_Single_Glyph( gray_render, - glyph, - X[i], Y[i] ); - } - else - { - /* search the base glyph */ - - back_x = gd[i].x_pos; - back_y = gd[i].y_pos; - back = i - gd[i].back; - - while ( gd[back].back ) - { - back_x += gd[back].x_pos; - back_y += gd[back].y_pos; - back -= gd[back].back; - } - - Render_Single_Glyph( - gray_render, - glyph, - X[back] + ( ( ( back_x + 32 ) & -64 ) >> 6 ), - Y[back] + ( ( ( back_y + 32 ) & -64 ) >> 6 ) ); - } - } - - if ( !( glyph_property & TTO_MARK ) ) - { - if ( r2l ) - { - if ( vertical ) - y += kern_y; - else - x -= kern_x; - } - else - { - if ( vertical ) - y -= curr_gd->y_advance + - ( curr_gd->new_advance ? 0 : metrics.vertAdvance ); - else - x += curr_gd->x_advance + - ( curr_gd->new_advance ? 0 : metrics.horiAdvance ); - } - } - } - } - - if ( has_gsub && use_gsub ) - { - if ( out.string ) { - FREE( out.string ); - FREE( out.components ); - FREE( out.ligIDs ); - } - if ( out.properties ) - FREE( out.properties ); - } - - if ( has_gpos && use_gpos ) - FREE( gd ); - - return TT_Err_Ok; - } - - - static int Process_Event( TEvent* event ) - { - switch ( event->what ) - { - case event_Quit: /* ESC or q */ - return 0; - - case event_Keyboard: - if ( event->info == 'h' ) /* Toggle hinting */ - hinted = !hinted; - else if ( event->info == 'K' ) /* Toggle kerning */ - use_kern = !use_kern; - else if ( event->info == 'B' ) /* Toggle sbit */ - use_sbit = !use_sbit; - else if ( event->info == 'S' ) /* Toggle gsub */ - use_gsub = !use_gsub; - else if ( event->info == 'P' ) /* Toggle gpos */ - use_gpos = !use_gpos; - break; - - case event_Rotate_Glyph: - break; - - case event_Scale_Glyph: - pt_size += event->info; - if ( pt_size < 1 ) pt_size = 1; - if ( pt_size > MAXPTSIZE ) pt_size = MAXPTSIZE; - break; - - case event_Change_Glyph: - break; - } - - return 1; - } - - - static void Usage( char* execname ) - { - fprintf( stderr, - "\n" - "ftstrtto: TrueType Open String Test Display -- part of the FreeType project\n" - "---------------------------------------------------------------------------\n" - "\n" - "Usage: %s [options below] ptsize fontname[.ttf|.ttc] [string|-]\n" - "\n" - " -c C use font with index C in TrueType collection (default: 0)\n" - " -f F use feature F (can be specified more than once)\n" - " -g gray-level rendering\n" - " -l L use language L\n" - " -r R use resolution R dpi (default: 96)\n" - " -s S use script S\n" - " -u interpret input data as UTF8-encoded\n" - " -v display string vertically\n" - " -x display string from right to left\n" - "\n" - " F, L, and S must be specified as 4-character tags.\n" - " Specifying only F and S selects default language system of S.\n" - " Specifying only L and S selects the req. feature of L only (if any).\n" - "\n" - " If `-' is specified as input string, stdin is read instead.\n" - "\n", execname ); - - exit( EXIT_FAILURE ); - } - - - static TT_ULong Make_Tag( char* tag_string ) - { - char t1 = ' ', t2 = ' ', t3 = ' ', t4 = ' '; - - - if ( !tag_string ) - return 0; - - t1 = tag_string[0]; - if ( tag_string[1] ) - t2 = tag_string[1]; - if ( tag_string[2] ) - t3 = tag_string[2]; - if ( tag_string[3] ) - t4 = tag_string[3]; - - return MAKE_TT_TAG( t1, t2, t3, t4 ); - } - - - int main( int argc, - char** argv ) - { - int i, old_pt_size, orig_pt_size, file; - - int graphics_initialized = 0; - - char filename[128 + 4]; - char alt_filename[128 + 4]; - char* execname; - - int option; - int res = 96; - int utf8 = 0; - - TT_Error error; - TEvent event; - - - execname = argv[0]; - - while ( 1 ) - { - option = ft_getopt( argc, argv, "c:f:gl:r:s:uvx" ); - - if ( option == -1 ) - break; - - switch ( option ) - { - case 'c': - ttc_index = atoi( ft_optarg ); - if ( ttc_index < 0 ) - Usage( execname ); - break; - - case 'f': - num_features++; - feature_tag_strings = (char**) - realloc( feature_tag_strings, - num_features * sizeof ( char* ) ); - feature_tags = (TT_ULong*) - realloc( feature_tags, - num_features * sizeof ( TT_ULong ) ); - if ( !feature_tag_strings || !feature_tags ) - Panic( "Can't allocate feature tag arrays.\n" ); - - feature_tag_strings[num_features - 1] = ft_optarg; - if ( !(feature_tags[num_features - 1] = Make_Tag( ft_optarg ) ) ) - Usage( execname ); - break; - - case 'g': - gray_render = 1; - break; - - case 'l': - language_tag_string = ft_optarg; - if ( !(language_tag = Make_Tag( ft_optarg ) ) ) - Usage( execname ); - break; - - case 'r': - res = atoi( ft_optarg ); - if ( res < 1 ) - Usage( execname ); - break; - - case 's': - script_tag_string = ft_optarg; - if ( !(script_tag = Make_Tag( ft_optarg ) ) ) - Usage( execname ); - break; - - case 'u': - utf8 = 1; - break; - - case 'v': - vertical = 1; - break; - - case 'x': - r2l = 1; - break; - - default: - Usage( execname ); - break; - } - } - - argc -= ft_optind; - argv += ft_optind; - - if ( argc <= 1 ) - Usage( execname ); - - if ( sscanf( argv[0], "%d", &orig_pt_size ) != 1 ) - orig_pt_size = 64; - - file = 1; - - /* Initialize engine */ - - error = TT_Init_FreeType( &engine ); - if ( error ) - Panic( "Error while initializing engine, code = 0x%x.\n", error ); - - error = TT_Init_Kerning_Extension( engine ); - if ( error ) - Panic( "Error while initializing kerning extension, code = 0x%x.\n", - error ); - - error = TT_Init_SBit_Extension( engine ); - if ( error ) - Panic( "Error while initializing sbit extension, code = 0x%x.\n", - error ); - - error = TT_Init_GDEF_Extension( engine ); - if ( error ) - Panic( "Error while initializing GDEF extension, code = 0x%x.\n", - error ); - - error = TT_Init_GSUB_Extension( engine ); - if ( error ) - Panic( "Error while initializing GSUB extension, code = 0x%x.\n", - error ); - - error = TT_Init_GPOS_Extension( engine ); - if ( error ) - Panic( "Error while initializing GPOS extension, code = 0x%x.\n", - error ); - - pt_size = orig_pt_size; - hinted = 1; - use_gsub = 1; - use_gpos = 1; - use_kern = 1; - use_sbit = 1; - - i = strlen( argv[file] ); - while ( i > 0 && argv[file][i] != '\\' && argv[file][i] != '/' ) - { - if ( argv[file][i] == '.' ) - i = 0; - i--; - } - - filename[128] = '\0'; - alt_filename[128] = '\0'; - - strncpy( filename, argv[file], 128 ); - strncpy( alt_filename, argv[file], 128 ); - - if ( i >= 0 ) - { - strncpy( filename + strlen( filename ), ".ttf", 4 ); - strncpy( alt_filename + strlen( alt_filename ), ".ttc", 4 ); - } - - /* Load face */ - - error = TT_Open_Face( engine, filename, &face ); - if ( error == TT_Err_Could_Not_Open_File ) - { - strcpy( filename, alt_filename ); - error = TT_Open_Face( engine, alt_filename, &face ); - } - if ( error == TT_Err_Could_Not_Open_File ) - Panic( "Could not find/open `%s'.\n", filename ); - else if ( error ) - Panic( "Error while opening `%s', code = 0x%x.\n", - filename, error ); - - /* get face properties and allocate preload arrays */ - - TT_Get_Face_Properties( face, &face_properties ); - - /* open font in collection */ - - if ( ttc_index >= face_properties.num_Faces ) - Panic( "There is no collection with index %d in this font file.\n", - ttc_index ); - - TT_Close_Face( face ); - - error = TT_Open_Collection( engine, filename, ttc_index, &face ); - if ( error ) - Panic( "Error while opening collection %d in `%s', code = 0x%x.\n", - ttc_index, filename, error ); - - /* create glyph object */ - - error = TT_New_Glyph( face, &glyph ); - if ( error ) - Panic( "Could not create glyph container, code = 0x%x.\n", error ); - - /* create sbit slot */ - - error = TT_New_SBit_Image( &sbit ); - if ( error ) - Panic( "Could not create sbit slot, code = 0x%x.\n" , error); - - /* create instance */ - - error = TT_New_Instance( face, &instance ); - if ( error ) - Panic( "Could not create instance for `%s', code = 0x%x.\n", - filename, error ); - - error = TT_Set_Instance_Resolutions( instance, res, res ); - if ( error ) - Panic( "Could not set device resolutions, code = 0x%x.\n", error ); - - error = TT_Get_Kerning_Directory( face, &directory ); - if ( error ) - Panic( "Could not get kerning directory, code = 0x%x.\n", error ); - - /* load all kerning tables */ - - for ( i = 0; i < directory.nTables; i++ ) - { - error = TT_Load_Kerning_Table( face, i ); - if ( error ) - Panic( "Could not load kerning table, code = 0x%x.\n", error ); - } - - if ( directory.nTables ) - has_kern = 1; - - Select_CMap(); - - /* GDEF support */ - - gdef = &gdef_; - - error = TT_Load_GDEF_Table( face, gdef ); - if ( !error ) - has_gdef = 1; - else if ( error != TT_Err_Table_Missing ) - Panic( "Error while loading GDEF table, code = 0x%x.\n", error ); - - /* we assign glyph properties in case no GDEF table is available */ - - if ( !has_gdef ) - { - Build_Arabic_Glyph_Properties( char_map, face_properties.num_Glyphs, - &gdef ); - if ( gdef ) - has_gdef = 1; - } - - /* GSUB and GPOS support */ - - gsub = &gsub_; - gpos = &gpos_; - - error = TT_Load_GSUB_Table( face, gsub, gdef ); - if ( !error ) - { - if ( script_tag && feature_tags ) - has_gsub = 1; - if ( script_tag && language_tag ) - has_gsub = 1; - } - else if ( error != TT_Err_Table_Missing ) - Panic( "Error while loading GSUB table, code = 0x%x.\n", error ); - - error = TT_Load_GPOS_Table( face, gpos, gdef ); - if ( !error ) - { - if ( script_tag && feature_tags ) - has_gpos = 1; - if ( script_tag && language_tag ) - has_gpos = 1; - } - else if ( error != TT_Err_Table_Missing ) - Panic( "Error while loading GPOS table, code = 0x%x.\n", error ); - - TT_GSUB_Clear_Features( gsub ); - TT_GPOS_Clear_Features( gpos ); - - if ( ( has_gsub || has_gpos ) && !language_tag ) - default_language_system = 1; - - /* we allocate one element more to always have a non-zero value - for malloc */ - gsub_feature_indices = (TT_UShort*) - malloc( ( num_features + 1 ) * - sizeof ( TT_UShort ) ); - gpos_feature_indices = (TT_UShort*) - malloc( ( num_features + 1 ) * - sizeof ( TT_UShort ) ); - if ( !gsub_feature_indices || !gpos_feature_indices ) - Panic( "Can't allocate feature index arrays.\n" ); - - if ( has_gsub ) - { - error = TT_GSUB_Select_Script( gsub, - script_tag, - &gsub_script_index ); - if ( error ) - { - gsub_script_index = 0xFFFF; - goto try_gpos; - } - - if ( default_language_system ) - { - for ( i = 0; i < num_features; i++ ) - { - error = TT_GSUB_Select_Feature( gsub, - feature_tags[i], - gsub_script_index, 0xFFFF, - &gsub_feature_indices[i] ); - if ( error ) - gsub_feature_indices[i] = 0xFFFF; - } - } - else - { - error = TT_GSUB_Select_Language( gsub, - language_tag, - gsub_script_index, - &gsub_language_index, - &gsub_req_feature_index ); - if ( error ) - { - gsub_language_index = 0xFFFF; - goto try_gpos; - } - - for ( i = 0; i < num_features; i++ ) - { - error = TT_GSUB_Select_Feature( gsub, - feature_tags[i], - gsub_script_index, - gsub_language_index, - &gsub_feature_indices[i] ); - if ( error ) - gsub_feature_indices[i] = 0xFFFF; - } - } - - if ( gsub_req_feature_index != 0xFFFF ) - TT_GSUB_Add_Feature( gsub, gsub_req_feature_index, ALL_GLYPHS ); - else if ( !num_features ) - has_gsub = 0; - - for ( i = 0; i < num_features; i++ ) - { - if ( gsub_feature_indices[i] != 0xFFFF ) - { - if ( feature_tags[i] == FEATURE_init ) - TT_GSUB_Add_Feature( gsub, gsub_feature_indices[i], initial ); - else if ( feature_tags[i] == FEATURE_medi ) - TT_GSUB_Add_Feature( gsub, gsub_feature_indices[i], medial ); - else if ( feature_tags[i] == FEATURE_fina ) - TT_GSUB_Add_Feature( gsub, gsub_feature_indices[i], final ); - else if ( feature_tags[i] == FEATURE_isol ) - TT_GSUB_Add_Feature( gsub, gsub_feature_indices[i], isolated ); - else - TT_GSUB_Add_Feature( gsub, gsub_feature_indices[i], ALL_GLYPHS ); - } - } - - TT_GSUB_Register_Alternate_Function( gsub, alternate_function, NULL ); - } - - try_gpos: - - if ( has_gpos ) - { - error = TT_GPOS_Select_Script( gpos, - script_tag, - &gpos_script_index ); - if ( error ) - { - gpos_script_index = 0xFFFF; - goto check; - } - - if ( default_language_system ) - { - for ( i = 0; i < num_features; i++ ) - { - error = TT_GPOS_Select_Feature( gpos, - feature_tags[i], - gpos_script_index, 0xFFFF, - &gpos_feature_indices[i] ); - if ( error ) - gpos_feature_indices[i] = 0xFFFF; - } - } - else - { - error = TT_GPOS_Select_Language( gpos, - language_tag, - gpos_script_index, - &gpos_language_index, - &gpos_req_feature_index ); - if ( error ) - { - gpos_language_index = 0xFFFF; - goto check; - } - - for ( i = 0; i < num_features; i++ ) - { - error = TT_GPOS_Select_Feature( gpos, - feature_tags[i], - gpos_script_index, - gpos_language_index, - &gpos_feature_indices[i] ); - if ( error ) - gpos_feature_indices[i] = 0xFFFF; - } - } - - if ( gpos_req_feature_index != 0xFFFF ) - TT_GPOS_Add_Feature( gpos, gpos_req_feature_index, ALL_GLYPHS ); - else if ( !num_features ) - has_gpos = 0; - - for ( i = 0; i < num_features; i++ ) - { - if ( gpos_feature_indices[i] != 0xFFFF ) - { - if ( feature_tags[i] == FEATURE_init ) - TT_GPOS_Add_Feature( gpos, gpos_feature_indices[i], initial ); - else if ( feature_tags[i] == FEATURE_medi ) - TT_GPOS_Add_Feature( gpos, gpos_feature_indices[i], medial ); - else if ( feature_tags[i] == FEATURE_fina ) - TT_GPOS_Add_Feature( gpos, gpos_feature_indices[i], final ); - else if ( feature_tags[i] == FEATURE_isol ) - TT_GPOS_Add_Feature( gpos, gpos_feature_indices[i], isolated ); - else - TT_GPOS_Add_Feature( gpos, gpos_feature_indices[i], ALL_GLYPHS ); - } - } - } - - check: - - if ( has_gsub || has_gpos ) - { - if ( gsub_script_index == 0xFFFF && gpos_script_index == 0xFFFF ) - Panic( "Requested script `%-4.4s' not found.\n", - script_tag_string ); - - if ( default_language_system ) - { - for ( i = 0; i < num_features; i++ ) - { - if ( gsub_feature_indices[i] == 0xFFFF && - gpos_feature_indices[i] == 0xFFFF ) - Panic( "Requested feature `%-4.4s'\n" - "for default language system of script `%-4.4s' not found.\n", - feature_tag_strings[i], script_tag_string ); - } - } - else - { - if ( gsub_language_index == 0xFFFF && gpos_language_index == 0xFFFF ) - Panic( "Requested language `%-4.4s'\n" - "for script `%-4.4s' not found.\n", - language_tag_string, script_tag_string ); - - for ( i = 0; i < num_features; i++ ) - { - if ( gsub_feature_indices[i] == 0xFFFF && - gpos_feature_indices[i] == 0xFFFF ) - Panic( "Requested feature `%-4.4s'\n" - "for script `%-4.4s', language `%-4.4s' not found.\n", - feature_tag_strings[i], script_tag_string, - language_tag_string ); - } - } - } - - if ( !graphics_initialized ) - { - graphics_initialized = 1; - - if ( gray_render ) - { - if ( !SetGraphScreen( Graphics_Mode_Gray ) ) - Panic( "Could not set up grayscale graphics mode.\n" ); - - TT_Set_Raster_Gray_Palette( engine, virtual_palette ); - } - else - { - if ( !SetGraphScreen( Graphics_Mode_Mono ) ) - Panic( "Could not set up mono graphics mode.\n" ); - } - } - - Init_Display( gray_render ); - - Reset_Scale( pt_size ); - - old_pt_size = pt_size; - - Fail = 0; - - /* get string to display, if any */ - - if ( argv[2] ) - { - if ( argv[2][0] == '-' ) - { - int ch; - char* p; - - - char_string = (char*)malloc( 128 * sizeof ( char ) ); - if ( !char_string || !gpos_feature_indices ) - Panic( "Can't allocate character string.\n" ); - p = char_string; - - for ( i = 0; i < 128; i++ ) - { - ch = getchar(); - if ( ch == '\n' || ch == EOF ) - { - *p = '\0'; - break; - } - - *p++ = (char)ch; - } - - *p = '\0'; - } - else - char_string = argv[2]; - } - else - char_string = "The quick brown fox jumps over the lazy dog"; - - if ( utf8 ) - UTF8Char_To_Glyph( char_string ); - else - Latin1Char_To_Glyph( char_string ); - - /* we assign Arabic script features (e.g. `initial' or `final') */ - - Assign_Arabic_Properties( char_code, properties, num_glyphs ); - - /* the main loop */ - - for ( ;; ) - { - int key; - - - Clear_Display(); - - error = Render_All(); - if ( error ) - Panic( "Error while rendering string, code = 0x%x.\n", error ); - - if ( gray_render ) - Convert_To_Display_Palette(); - - sprintf( Header, - "%s: %ddpi, %dpt, %dppem hinting: %s%s%s%s%s%s%s%s%s", - ft_basename( filename ), - res, - pt_size, - imetrics.x_ppem, - hinted ? "on" : "off", - has_kern ? " kerning: " : "", - has_kern ? ( use_kern ? "on" : "off" ) : "", - has_sbit ? " sbit: " : "", - has_sbit ? ( use_sbit ? "on" : "off" ) : "", - has_gsub ? " GSUB: " : "", - has_gsub ? ( use_gsub ? "on" : "off" ) : "", - has_gpos ? " GPOS: " : "", - has_gpos ? ( use_gpos ? "on" : "off" ) : "" ); - - Display_Bitmap_On_Screen( Bit.bitmap, Bit.rows, Bit.cols ); - -#ifndef X11 -#ifndef OS2 - Print_XY( 0, 0, Header ); -#endif -#endif - - Get_Event( &event ); - if ( !( key = Process_Event( &event ) ) ) - goto Fin; - - if ( pt_size != old_pt_size ) - { - if ( Reset_Scale( pt_size ) ) - Panic( "Could not resize font.\n" ); - - old_pt_size = pt_size; - } - } - - Fin: - RestoreScreen(); - - TT_Done_SBit_Image( sbit ); - TT_Close_Face( face ); - TT_Done_FreeType( engine ); - - printf( "Execution completed successfully.\n" ); - printf( "Fails = %d.\n", Fail ); - - exit( EXIT_SUCCESS ); /* for safety reasons */ - - return 0; /* never reached */ -} - - -/* End */ diff --git a/Build/source/libs/freetype/freetype-1.5/test/fttimer.c b/Build/source/libs/freetype/freetype-1.5/test/fttimer.c deleted file mode 100644 index c1e3b9156b5..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/fttimer.c +++ /dev/null @@ -1,455 +0,0 @@ -/****************************************************************************/ -/* */ -/* The FreeType project - a Free and Portable Quality TrueType Renderer. */ -/* */ -/* Copyright 1996-2001 by */ -/* D. Turner, R.Wilhelm, and W. Lemberg */ -/* */ -/* fttimer: A simple performance benchmark. Now with graylevel rendering */ -/* with the '-g' option. */ -/* */ -/* Be aware that the timer program benchmarks different things */ -/* in each release of the FreeType library. Thus, performance */ -/* should only be compared between similar release numbers. */ -/* */ -/* */ -/* NOTE: This is just a test program that is used to show off and */ -/* debug the current engine. In no way does it shows the final */ -/* high-level interface that client applications will use. */ -/* */ -/****************************************************************************/ - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include "common.h" -#include "freetype.h" - -#include "gdriver.h" -#include "gevents.h" -#include "gmain.h" - -#ifndef __USE_MISC -#define __USE_MISC /* MkLinux needs this to get a definition of - CLOCKS_PER_SEC */ -#endif - -#include <time.h> /* for clock() */ - -/* SunOS 4.1.* does not define CLOCKS_PER_SEC, so include <sys/param.h> */ -/* to get the HZ macro which is the equivalent. */ -#if defined(__sun__) && !defined(SVR4) && !defined(__SVR4) -#include <sys/param.h> -#define CLOCKS_PER_SEC HZ -#endif - -#define MAX_GLYPHS 512 /* Maximum number of glyphs rendered at one time */ - - char Header[128]; - - TT_Error error; - - TT_Engine engine; - TT_Face face; - TT_Instance instance; - TT_Glyph glyph; - - TT_Outline outline; - TT_Glyph_Metrics metrics; - - TT_Face_Properties properties; - - TT_F26Dot6* cur_x; - TT_F26Dot6* cur_y; - - unsigned short* cur_endContour; - unsigned char* cur_touch; - - TT_Outline outlines[MAX_GLYPHS]; - - int num_glyphs; - int tab_glyphs; - int cur_glyph; - int cur_point; - unsigned short cur_contour; - - extern TT_Raster_Map Bit; - - int Fail; - int Num; - - short visual; /* display glyphs while rendering */ - short gray_render; /* smooth fonts with gray levels */ - - - static void Clear_Buffer( void ); - - -/*******************************************************************/ -/* */ -/* Get_Time: */ -/* */ -/* Returns the current time in milliseconds. */ -/* */ -/*******************************************************************/ - - long Get_Time( void ) - { - return clock() * 1000 / CLOCKS_PER_SEC; - } - - -/*******************************************************************/ -/* */ -/* Init_Engine: */ -/* */ -/* Allocates bitmap, render pool and other structs... */ -/* */ -/*******************************************************************/ - - void Init_Engine( void ) - { - Bit.rows = vio_Height; /* The whole window */ - Bit.width = vio_Width; - - if ( gray_render ) - { - Bit.cols = Bit.width; - Bit.flow = TT_Flow_Up; - Bit.size = Bit.rows * Bit.width; - } - else - { - Bit.cols = (Bit.width + 7) / 8; /* convert to # of bytes */ - Bit.flow = TT_Flow_Up; - Bit.size = Bit.rows * Bit.cols; /* number of bytes in buffer */ - } - - Bit.bitmap = (void*)malloc( Bit.size ); - if ( !Bit.bitmap ) - Panic( "ERROR: not enough memory to allocate bitmap!\n" ); - - Clear_Buffer(); - } - - -/*******************************************************************/ -/* */ -/* Clear_Buffer: */ -/* */ -/* Clears current bitmap. */ -/* */ -/*******************************************************************/ - - static void Clear_Buffer( void ) - { - if ( gray_render ) - memset( Bit.bitmap, gray_palette[0], Bit.size ); - else - memset( Bit.bitmap, 0, Bit.size ); - } - - -/*******************************************************************/ -/* */ -/* LoadTrueTypeChar: */ -/* */ -/* Loads a glyph into memory. */ -/* */ -/*******************************************************************/ - - TT_Error LoadTrueTypeChar( int idx ) - { - error = TT_Load_Glyph( instance, glyph, idx, TTLOAD_DEFAULT ); - if ( error ) - return error; - - TT_Get_Glyph_Outline( glyph, &outline ); - - outline.second_pass = 0; - outline.high_precision = 0; - outline.dropout_mode = 0; - - /* debugging */ -#if 0 - if ( idx == 0 && !visual ) - { - printf( "points = %d\n", outline.points ); - for ( j = 0; j < outline.points; j++ ) - printf( "%02x (%01hx,%01hx)\n", - j, outline.xCoord[j], outline.yCoord[j] ); - printf( "\n" ); - } -#endif - - /* create a new outline */ - TT_New_Outline( outline.n_points, - outline.n_contours, - &outlines[cur_glyph] ); - - /* copy the glyph outline into it */ - outline.high_precision = 0; - outline.second_pass = 0; - TT_Copy_Outline( &outline, &outlines[cur_glyph] ); - - /* translate it */ - TT_Translate_Outline( &outlines[cur_glyph], - vio_Width * 16, - vio_Height * 16 ); - cur_glyph++; - - return TT_Err_Ok; - } - - -/*******************************************************************/ -/* */ -/* ConvertRaster: */ -/* */ -/* Performs scan conversion. */ -/* */ -/*******************************************************************/ - - TT_Error ConvertRaster( int index ) - { - outlines[index].second_pass = 0; - outlines[index].high_precision = 0; - - if ( gray_render ) - return TT_Get_Outline_Pixmap( engine, &outlines[index], &Bit ); - else - return TT_Get_Outline_Bitmap( engine, &outlines[index], &Bit ); - } - - - int main( int argc, char** argv ) - { - int i, total, mode, base, rendered_glyphs; - char filename[128 + 4]; - char alt_filename[128 + 4]; - char* execname; - - long t, t0, tz0; - - - execname = argv[0]; - - gray_render = 0; - visual = 0; - - while ( argc > 1 && argv[1][0] == '-' ) - { - switch ( argv[1][1] ) - { - case 'g': - gray_render = 1; - break; - - case 'v': - visual = 1; - break; - - default: - Panic( "Unknown argument '%s'!\n", argv[1] ); - } - argc--; - argv++; - } - - if ( argc != 2 ) - { - fprintf( stderr, "fttimer: simple performance timer -- part of the FreeType project\n" ); - fprintf( stderr,"-----------------------------------------------------------------\n\n" ); - fprintf( stderr,"Usage: %s [-g] [-v] fontname[.ttf|.ttc]\n\n", execname ); - fprintf( stderr," where '-g' asks for gray-levels rendering\n" ); - fprintf( stderr," '-v' displays while rendering (slower)\n" ); - - exit( EXIT_FAILURE ); - } - - i = strlen( argv[1] ); - while ( i > 0 && argv[1][i] != '\\' ) - { - if ( argv[1][i] == '.' ) - i = 0; - i--; - } - - filename[128] = '\0'; - alt_filename[128] = '\0'; - - strncpy( filename, argv[1], 128 ); - strncpy( alt_filename, argv[1], 128 ); - - if ( i >= 0 ) - { - strncpy( filename + strlen( filename ), ".ttf", 4 ); - strncpy( alt_filename + strlen( alt_filename ), ".ttc", 4 ); - } - - /* Initialize engine */ - - if ( (error = TT_Init_FreeType( &engine )) ) - Panic( "Error while initializing engine, code = 0x%x.\n", error ); - - /* Load face */ - - error = TT_Open_Face( engine, filename, &face ); - - if ( error == TT_Err_Could_Not_Open_File ) - { - strcpy( filename, alt_filename ); - error = TT_Open_Face( engine, alt_filename, &face ); - } - - if ( error == TT_Err_Could_Not_Open_File ) - Panic( "Could not find/open %s.\n", filename ); - else if ( error ) - Panic( "Error while opening %s, error code = 0x%x.\n", - filename, error ); - - /* get face properties and allocate preload arrays */ - - TT_Get_Face_Properties( face, &properties ); - - num_glyphs = properties.num_Glyphs; - - tab_glyphs = MAX_GLYPHS; - if ( tab_glyphs > num_glyphs ) - tab_glyphs = num_glyphs; - - /* create glyph */ - - error = TT_New_Glyph( face, &glyph ); - if ( error ) - Panic( "Could not create glyph container.\n" ); - - /* create instance */ - - error = TT_New_Instance( face, &instance ); - if ( error ) - Panic( "Could not create instance for %s.\n", filename ); - - error = TT_Set_Instance_CharSize( instance, 400*64 ); - if ( error ) - Panic( "Could not reset instance for %s.\n", filename ); - - if ( gray_render ) - mode = Graphics_Mode_Gray; - else - mode = Graphics_Mode_Mono; - - if ( visual ) - { - if ( !SetGraphScreen( mode ) ) - Panic( "Could not set graphics mode.\n" ); - TT_Set_Raster_Gray_Palette( engine, gray_palette ); - } - else - { - /* This is the default bitmap size used */ - vio_Width = 640; - vio_Height = 450; - } - - Init_Engine(); - - Num = 0; - Fail = 0; - - total = num_glyphs; - base = 0; - - rendered_glyphs = 0; - - t0 = 0; /* Initial time */ - - tz0 = Get_Time(); - - while ( total > 0 ) - { - /* First, preload 'tab_glyphs' in memory */ - - cur_glyph = 0; - cur_point = 0; - cur_contour = 0; - - printf( "loading %d glyphs", tab_glyphs ); - - for ( Num = 0; Num < tab_glyphs; Num++ ) - { - error = LoadTrueTypeChar( base + Num ); - if ( error ) - Fail++; - - total--; - } - - base += tab_glyphs; - - if ( tab_glyphs > total ) - tab_glyphs = total; - - printf( ", rendering... " ); - - /* Now, render the loaded glyphs */ - - t = Get_Time(); - - for ( Num = 0; Num < cur_glyph; Num++ ) - { - if ( (error = ConvertRaster( Num )) ) - Fail++; - else - { - rendered_glyphs ++; - - if ( visual ) - { - sprintf( Header, "Glyph: %5d", Num ); - Display_Bitmap_On_Screen( Bit.bitmap, Bit.rows, Bit.cols ); - - Clear_Buffer(); - } - } - } - - t = Get_Time() - t; - if ( t < 0 ) - t += 100L * 60 * 60; - - printf( " = %f s\n", (double)t / 1000 ); - t0 += t; - - /* Now free all loaded outlines */ - for ( Num = 0; Num < cur_glyph; Num++ ) - TT_Done_Outline( &outlines[Num] ); - } - - tz0 = Get_Time() - tz0; - - if ( visual ) - RestoreScreen(); - - TT_Close_Face( face ); - - printf( "\n" ); - printf( "rendered glyphs = %d\n", rendered_glyphs ); - printf( "render time = %f s\n", (double)t0 / 1000 ); - printf( "fails = %d\n", Fail ); - printf( "average glyphs/s = %f\n", - (double)rendered_glyphs / t0 * 1000 ); - - printf( "total timing = %f s\n", (double)tz0 / 1000 ); - printf( "Fails = %d\n", Fail ); - - TT_Done_FreeType( engine ); - - exit( EXIT_SUCCESS ); /* for safety reasons */ - - return 0; /* never reached */ - } - - -/* End */ diff --git a/Build/source/libs/freetype/freetype-1.5/test/ftview.c b/Build/source/libs/freetype/freetype-1.5/test/ftview.c deleted file mode 100644 index 71ca0d87a28..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/ftview.c +++ /dev/null @@ -1,539 +0,0 @@ -/****************************************************************************/ -/* */ -/* The FreeType project -- a free and portable quality TrueType renderer. */ -/* */ -/* Copyright 1996-2001 by */ -/* D. Turner, R.Wilhelm, and W. Lemberg */ -/* */ -/* ftview: A simple font viewer. Supports hinting and grayscaling. */ -/* */ -/* */ -/* Keys: */ -/* */ -/* x : fine counter-clockwise rotation */ -/* c : fine clockwise rotation */ -/* */ -/* v : fast counter-clockwise rotation */ -/* b : fast clockwise rotation */ -/* */ -/* + : fast scale up */ -/* - : fast scale down */ -/* u : fine scale down */ -/* j : fine scale up */ -/* */ -/* l : go to next glyph */ -/* k : go to previous glyph */ -/* */ -/* o : go to tenth next glyph */ -/* i : go to tenth previous glyph */ -/* */ -/* 0 : go to hundredth next glyph */ -/* 9 : go to hundredth previous glyph */ -/* */ -/* ) : go to 1000th next glyph */ -/* ( : go to 1000th previous glyph */ -/* */ -/* } : go to 10000th next glyph */ -/* { : go to 10000th previous glyph */ -/* */ -/* n : go to next (or last) .ttf file */ -/* p : go to previous (or first) .ttf file */ -/* */ -/* h : toggle hinting */ -/* */ -/* B : toggle sbit */ -/* */ -/* ESC : exit */ -/* */ -/* */ -/* NOTE: This is just a test program that is used to show off and */ -/* debug the current engine. */ -/* */ -/****************************************************************************/ - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include "blitter.h" -#include "common.h" -#include "display.h" -#include "freetype.h" -#include "ftxsbit.h" - -#include "gdriver.h" -#include "gevents.h" -#include "gmain.h" - -#define Pi 3.1415926535 - -#define MAXPTSIZE 500 /* dtp */ -#define Center_X ( Bit.width / 2 ) /* dtp */ -#define Center_Y ( Bit.rows / 2 ) /* dtp */ - -/* - * If Ignore_Err_Not_SBit is not defined, - * "Fail" increase when the glyph does not have sbit and - * sbit_flag is 1. - */ -#define Ignore_Err_Not_SBit 1 - - TT_Engine engine; - - TT_Face face; - TT_Instance instance; - TT_Glyph glyph; - - TT_Big_Glyph_Metrics metrics; - TT_Outline outline; - TT_Face_Properties properties; - TT_Instance_Metrics imetrics; - - TT_SBit_Image* sbit; - - int num_glyphs; - - int ptsize; - int hinted; - - char Header[128]; - - int Rotation; - int Fail; - int Num; - - int gray_render; - unsigned int sbit_flag; /* 0 if to display outlines - * 1 if to use embedded bitmaps - * 2 if to show sbit and outline glyphs - */ - - int glyph_has_sbit; - - - - static TT_Error Reset_Scale( int pointSize ) - { - TT_Error error; - TT_SBit_Strike strike; - - - if ( (error = TT_Set_Instance_PointSize( instance, pointSize )) ) - { - RestoreScreen(); - fprintf( stderr, "Error = 0x%x.\n", (unsigned)error ); - Panic( "Could not reset instance.\n" ); - } - TT_Get_Instance_Metrics( instance, &imetrics ); - - /* now re-allocates the small bitmap */ - if ( gray_render ) - { - Init_Small( imetrics.x_ppem, imetrics.y_ppem ); - Clear_Small(); - } - - if ( TT_Get_SBit_Strike( face, instance, &strike ) ) - glyph_has_sbit = 0; - else - glyph_has_sbit = 1; - - return TT_Err_Ok; - } - - - static TT_Error LoadTrueTypeChar( int idx, int hint ) - { - int flags; - - - flags = TTLOAD_SCALE_GLYPH; - if ( hint ) - flags |= TTLOAD_HINT_GLYPH; - - return TT_Load_Glyph( instance, glyph, idx, flags ); - } - - - static TT_Error Render_All( int first_glyph, int ptsize ) - { - TT_F26Dot6 start_x, start_y, step_y, x, y; - int i; - - TT_Error error = 0; - - - start_x = 4; - start_y = vio_Height - ( ( ptsize * 96 + 36 ) / 72 + 10 ); - - step_y = imetrics.y_ppem + 10; - - x = start_x; - y = start_y; - - i = first_glyph; - - while ( i < num_glyphs ) - { - if ( ( glyph_has_sbit ) && - ( ( sbit_flag + 1 ) & 2 ) && - !(error = TT_Load_Glyph_Bitmap( face, instance, i, sbit )) ) - { - Blit_Bitmap( &Bit, - &sbit->map, - gray_render ? 8 : 1, - (int)x + (int)(sbit->metrics.horiBearingX/64), - Bit.rows - (int)y - (int)(sbit->metrics.horiBearingY/64), - gray_palette[4] ); - metrics = sbit->metrics; - goto Step; - } - - if ( ( ( !glyph_has_sbit ) || - ( ( sbit_flag + 1 ) & 1 ) ) && - !(error = LoadTrueTypeChar( i, hinted )) ) - { - TT_Get_Glyph_Outline( glyph, &outline ); - TT_Get_Glyph_Big_Metrics( glyph, &metrics ); - - Render_Single_Glyph( gray_render, glyph, (int)x, (int)y ); - } - else - { -#ifdef Ignore_Err_Not_SBit - if (!(( glyph_has_sbit ) && - ( sbit_flag == 1 ) && - ( error == TT_Err_Invalid_Glyph_Index ))) -#endif - Fail++; - } - Step: - x += ( metrics.horiAdvance / 64 ) + 1; - - if ( x + imetrics.x_ppem > vio_Width ) - { - x = start_x; - y -= step_y; - - if ( y < 10 ) - return TT_Err_Ok; - } - i++; - } - return TT_Err_Ok; - } - - - static int Process_Event( TEvent* event ) - { - switch ( event->what ) - { - case event_Quit: /* ESC or q */ - return 0; - - case event_Keyboard: - if ( event->info == 'n' ) /* Next file */ - return 'n'; - if ( event->info == 'p' ) /* Previous file */ - return 'p'; - if ( event->info == 'h' ) /* Toggle hinting */ - hinted = !hinted; - if ( ( event->info == 'B' ) && ( glyph_has_sbit ) ) /* Toggle sbit */ - sbit_flag = ( sbit_flag + 1 ) % 3; - break; - - case event_Rotate_Glyph: - Rotation = ( Rotation + event->info ) & 1023; - break; - - case event_Scale_Glyph: - ptsize += event->info; - if ( ptsize < 1 ) ptsize = 1; - if ( ptsize > MAXPTSIZE ) ptsize = MAXPTSIZE; - break; - - case event_Change_Glyph: - Num += event->info; - if ( Num < 0 ) Num = 0; - if ( Num >= num_glyphs ) Num = num_glyphs - 1; - break; - } - - return 1; - } - - - static void usage( char* execname ) - { - fprintf( stderr, - "\n" - "ftview: simple TrueType interpreter tester -- part of the FreeType project\n" - "--------------------------------------------------------------------------\n" - "\n" - "Usage: %s [options below] ppem fontname[.ttf|.ttc] ...\n", - execname ); - fprintf( stderr, - "\n" - " -g gray-level rendering (default: none)\n" - " -r R use resolution R dpi (default: 96)\n" - " -B use embedded bitmaps (default: none)\n" - "\n" ); - - exit( EXIT_FAILURE ); - } - - - int main( int argc, char** argv ) - { - int i, old_ptsize, orig_ptsize, file; - int XisSetup = 0; - char filename[128 + 4]; - char alt_filename[128 + 4]; - char* execname; - int option; - int res = 96; - - TT_Error error; - TEvent event; - - TT_EBLC eblc_table; - - - execname = ft_basename( argv[0] ); - - while ( 1 ) - { - option = ft_getopt( argc, argv, "gr:B" ); - - if ( option == -1 ) - break; - - switch ( option ) - { - case 'g': - gray_render = 1; - sbit_flag = 0; - break; - - case 'r': - res = atoi( ft_optarg ); - if ( res < 1 ) - usage( execname ); - break; - - case 'B': - if (!gray_render) -#if 0 - sbit_flag = 1; -#else - sbit_flag = 2; -#endif - break; - - default: - usage( execname ); - break; - } - } - - argc -= ft_optind; - argv += ft_optind; - - if ( argc <= 1 ) - usage( execname ); - - if ( sscanf( argv[0], "%d", &orig_ptsize ) != 1 ) - orig_ptsize = 64; - - file = 1; - - /* Initialize engine */ - - if ( (error = TT_Init_FreeType( &engine )) ) - Panic( "Error while initializing engine, code = 0x%x.\n", error ); - - if ( (error = TT_Init_SBit_Extension( engine )) ) - Panic( "Error while initializing sbit extention, code = 0x%x.\n", error ); - - NewFile: - ptsize = orig_ptsize; - hinted = 1; - - i = strlen( argv[file] ); - while ( i > 0 && argv[file][i] != '\\' && argv[file][i] != '/' ) - { - if ( argv[file][i] == '.' ) - i = 0; - i--; - } - - filename[128] = '\0'; - alt_filename[128] = '\0'; - - strncpy( filename, argv[file], 128 ); - strncpy( alt_filename, argv[file], 128 ); - - if ( i >= 0 ) - { - strncpy( filename + strlen( filename ), ".ttf", 4 ); - strncpy( alt_filename + strlen( alt_filename ), ".ttc", 4 ); - } - - /* Load face */ - - error = TT_Open_Face( engine, filename, &face ); - - if ( error == TT_Err_Could_Not_Open_File ) - { - strcpy( filename, alt_filename ); - error = TT_Open_Face( engine, alt_filename, &face ); - } - - if ( error == TT_Err_Could_Not_Open_File ) - Panic( "Could not find/open %s.\n", filename ); - else if ( error ) - Panic( "Error while opening %s, error code = 0x%x.\n", - filename, error ); - - /* get face properties and allocate preload arrays */ - - TT_Get_Face_Properties( face, &properties ); - - num_glyphs = properties.num_Glyphs; - - glyph_has_sbit = 0; - - error = TT_Get_Face_Bitmaps( face, &eblc_table ); - if ( error == TT_Err_Ok ) - glyph_has_sbit = 1; - if ( sbit_flag && !glyph_has_sbit ) - Panic( "%s does not have embedded bitmap glyphs.\n", filename ); - - /* create glyph */ - - error = TT_New_Glyph( face, &glyph ); - if ( error ) - Panic( "Could not create glyph container.\n" ); - - error = TT_New_SBit_Image( &sbit ); - if ( error ) - Panic( "Could not create sbit slot.\n" ); - - /* create instance */ - - error = TT_New_Instance( face, &instance ); - if ( error ) - Panic( "Could not create instance for %s.\n", filename ); - - error = TT_Set_Instance_Resolutions( instance, res, res ); - if ( error ) - Panic( "Could not set device resolutions." ); - - if ( !XisSetup ) - { - XisSetup = 1; - - if ( gray_render ) - { - if ( !SetGraphScreen( Graphics_Mode_Gray ) ) - Panic( "Could not set up grayscale graphics mode.\n" ); - - TT_Set_Raster_Gray_Palette( engine, virtual_palette ); - } - else - { - if ( !SetGraphScreen( Graphics_Mode_Mono ) ) - Panic( "Could not set up mono graphics mode.\n" ); - } - } - - Init_Display( gray_render ); - - Reset_Scale( ptsize ); - - old_ptsize = ptsize; - - Fail = 0; - Num = 0; - - for ( ;; ) - { - int key; - char* sbit_string; - static char* sbit_messages[4] = - { "off", "on", " if available", "NONE" }; - - sbit_string = sbit_messages[3]; - if ( glyph_has_sbit ) - { - if (sbit_flag >= 0 && sbit_flag < 3) - sbit_string = sbit_messages[sbit_flag]; - } - - Clear_Display(); - Render_All( Num, ptsize ); - if ( gray_render ) - Convert_To_Display_Palette(); - - sprintf( Header, "%s: Glyph: %4d ptsize: %4d hinting: %s sbit: %s", - ft_basename( filename ), Num, ptsize, - hinted ? "on" : "off", - sbit_string ); - Display_Bitmap_On_Screen( Bit.bitmap, Bit.rows, Bit.cols ); - -#ifndef X11 -#ifndef OS2 - Print_XY( 0, 0, Header ); -#endif -#endif - - Get_Event( &event ); - if ( !( key = Process_Event( &event ) ) ) - goto End; - - if ( key == 'n' ) - { - TT_Close_Face( face ); - - if ( file < argc - 1 ) - file++; - - goto NewFile; - } - - if ( key == 'p' ) - { - TT_Close_Face( face ); - - if ( file > 1 ) - file--; - - goto NewFile; - } - - if ( ptsize != old_ptsize ) - { - if ( Reset_Scale( ptsize ) ) - Panic( "Could not resize font.\n" ); - - old_ptsize = ptsize; - } - } - - End: - RestoreScreen(); - - TT_Done_SBit_Image( sbit ); - TT_Close_Face( face ); - TT_Done_FreeType( engine ); - - printf( "Execution completed successfully.\n" ); - printf( "Fails = %d\n", Fail ); - - exit( EXIT_SUCCESS ); /* for safety reasons */ - - return 0; /* never reached */ -} - - -/* End */ diff --git a/Build/source/libs/freetype/freetype-1.5/test/ftzoom.c b/Build/source/libs/freetype/freetype-1.5/test/ftzoom.c deleted file mode 100644 index 228f8895610..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/ftzoom.c +++ /dev/null @@ -1,682 +0,0 @@ -/****************************************************************************/ -/* */ -/* The FreeType project - a free and portable quality TrueType renderer. */ -/* */ -/* Copyright 1996-2001 by */ -/* D. Turner, R.Wilhelm, and W. Lemberg */ -/* */ -/* ftzoom : A simple glyph viewer. Now supports graylevel rendering */ -/* with the '-g' option. */ -/* */ -/* Use `-p <platformID>' together with `-e <encodingID>' to */ -/* select a cmap. */ -/* */ -/* Keys: */ -/* */ -/* x : fine counter_clockwise rotation */ -/* c : fine clockwise rotation */ -/* */ -/* v : fast counter_clockwise rotation */ -/* b : fast clockwise rotation */ -/* */ -/* + : fast scale up */ -/* - : fast scale down */ -/* u : fine scale down */ -/* j : fine scale up */ -/* */ -/* l : go to next glyph */ -/* k : go to previous glyph */ -/* */ -/* o : go to tenth next glyph */ -/* i : go to tenth previous glyph */ -/* */ -/* 0 : go to hundredth next glyph */ -/* 9 : go to hundredth previous glyph */ -/* */ -/* ) : go to 1000th next glyph */ -/* ( : go to 1000th previous glyph */ -/* */ -/* } : go to 10000th next glyph */ -/* { : go to 10000th previous glyph */ -/* */ -/* q : */ -/* ESC : exit */ -/* */ -/* */ -/* NOTE 1: This is just a test program that is used to show off and */ -/* debug the current engine. In no way does it show the final */ -/* high-level interface that client applications will use. */ -/* */ -/* NOTE 2: The `post' engine is used to display the PS glyph names. */ -/* Use the `-n' switch if you don't want that. */ -/* */ -/****************************************************************************/ - -#include <math.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include "common.h" -#include "freetype.h" -#include "ftxpost.h" - -#include "gdriver.h" -#include "gevents.h" -#include "gmain.h" - -#ifdef DEBUG_LEVEL_TRACE -#include "ttdebug.h" -#endif - - -#define Pi 3.1415926535 - -#define MAXPTSIZE 5000 /* dtp */ - - char Header[128]; - - TT_Engine engine; - TT_Face face; - TT_Instance instance; - TT_Glyph glyph; - TT_CharMap char_map; - - TT_Glyph_Metrics metrics; - TT_Outline outline; - TT_Face_Properties properties; - TT_Instance_Metrics imetrics; - - int num_glyphs; - int xcenter_upem; - int ycenter_upem; - int units_per_em; - - int ptsize; - int old_ptsize; - int rotation; - int old_rotation; - - TT_Matrix matrix; - TT_Matrix zoom_matrix; - int apply_matrix; - int xcenter; - int ycenter; - int xoffset; - int yoffset; - - extern TT_Raster_Map Bit; - - int Fail; - int Num; - int Code; - - int gray_render = 0; - int hinted = 1; - int use_cmap = 0; - int zoom_factor = 1; - int grid = 0; - int use_post = 1; - - char palette[5] = { 0, 1, 2, 3, 4 }; - - - static void ClearData( void ) - { - if ( gray_render ) - memset( Bit.bitmap, gray_palette[0], Bit.size ); - else - memset( Bit.bitmap, 0, Bit.size ); - } - - - void Init_Raster_Area( void ) - { - Bit.rows = vio_Height; /* The whole window */ - Bit.width = vio_Width; - Bit.flow = TT_Flow_Up; - - if ( gray_render ) - { - Bit.cols = Bit.width; - Bit.size = Bit.rows * Bit.width; - } - else - { - Bit.cols = ( Bit.width + 7 ) / 8; /* convert to # of bytes */ - Bit.size = Bit.rows * Bit.cols; /* number of bytes in buffer */ - } - - Bit.bitmap = (void*)malloc( (int)Bit.size ); - if ( !Bit.bitmap ) - Panic( "Not enough memory to allocate bitmap!\n" ); - - ClearData(); - } - - - static TT_Error Reset_PtSize( int pointSize ) - { - TT_Error error; - - - if ( (error = TT_Set_Instance_PointSize( instance, pointSize )) ) - { - RestoreScreen(); - printf( "Error = 0x%x.\n", (int)error ); - Panic( "Could not reset instance.\n" ); - } - - TT_Get_Instance_Metrics( instance, &imetrics ); - - xcenter = imetrics.x_ppem * xcenter_upem / units_per_em / 4; - ycenter = imetrics.y_ppem * ycenter_upem / units_per_em / 4; - - xoffset = vio_Width/2 - xcenter; - yoffset = vio_Height/2 - ycenter; - - return TT_Err_Ok; - } - - - static TT_Error Reset_Rotation( int rotation ) - { - if ( rotation ) - { - float angle; - - - TT_Set_Instance_Transform_Flags( instance, 1, 0 ); - - angle = rotation * Pi / 512; - - matrix.xx = (TT_Fixed)(cos( angle ) * (1L<<16)); - matrix.xy = (TT_Fixed)(sin( angle ) * (1L<<16)); - matrix.yx = -matrix.xy; - matrix.yy = matrix.xx; - - apply_matrix = 1; - } - else - apply_matrix = 0; - - if ( zoom_factor != 1 ) - { - zoom_matrix.xx = zoom_matrix.yy = zoom_factor * (1L<<16); - zoom_matrix.xy = zoom_matrix.yx = 0; - } - - return TT_Err_Ok; - } - - - static TT_Error LoadTrueTypeChar( int idx, int hint ) - { - TT_Error error; - int flags; - - - flags = TTLOAD_SCALE_GLYPH; - if ( hint ) - flags |= TTLOAD_HINT_GLYPH; - - error = TT_Load_Glyph( instance, glyph, idx, flags ); - if ( error ) - return error; - - if ( apply_matrix || zoom_factor != 1 ) - { - TT_Get_Glyph_Outline( glyph, &outline ); - TT_Translate_Outline( &outline, -xcenter*64L, -ycenter*64L ); - if ( apply_matrix ) - TT_Transform_Outline( &outline, &matrix ); - if ( zoom_factor != 1 ) - TT_Transform_Outline( &outline, &zoom_matrix ); - TT_Translate_Outline( &outline, xcenter*64L, ycenter*64L ); - } - - return error; - } - - - static TT_Error ConvertRaster( void ) - { - if ( gray_render ) - return TT_Get_Glyph_Pixmap( glyph, &Bit, xoffset*64L, yoffset*64L ); - else - return TT_Get_Glyph_Bitmap( glyph, &Bit, xoffset*64L, yoffset*64L ); - } - - - static void DrawGrid( void ) - { - char *bmap, mask; - int x, y, shift, toggle; - - - bmap = (char *)Bit.bitmap; - - for ( y = 0; y < Bit.rows; ++y ) - { - if ( ( y - xoffset ) % zoom_factor == 0 ) - { - if ( gray_render ) - for ( x = y & 1; x < Bit.cols; x += 2 ) - bmap[x] = 4 - bmap[x]; - else { - mask = y & 1 ? 0x55 : 0xAA; - for ( x = 0; x < Bit.cols; ++x ) - bmap[x] ^= mask; - } - } - else - { - toggle = y & 1; - - if ( gray_render ) - { - for ( x = xoffset % zoom_factor; x < Bit.cols; x += zoom_factor ) - if ( ( x & 1 ) == toggle ) - bmap[x] = 4 - bmap[x]; - } - else - { - /* tricky business */ - shift = xoffset % zoom_factor; - for ( x = 0; x < Bit.cols; ++x ) - { - for ( mask = 0; shift < 8; shift += zoom_factor ) - if ( ( shift & 1 ) == toggle ) - mask |= 0x80 >> shift; - bmap[x] ^= mask; - shift -= 8; - } - } - } - bmap += Bit.cols; - } - } - - - static int Process_Event( TEvent* event ) - { - switch ( event->what ) - { - case event_Quit: /* ESC or q */ - return 0; - - case event_Keyboard: - if ( event->info == 'h' ) /* Toggle hinting */ - hinted = !hinted; - break; - - case event_Rotate_Glyph: - rotation = ( rotation + event->info ) & 1023; - break; - - case event_Scale_Glyph: - ptsize += event->info; - if ( ptsize < 1 ) - ptsize = 1; - if ( ptsize > MAXPTSIZE / zoom_factor ) - ptsize = MAXPTSIZE / zoom_factor; - break; - - case event_Change_Glyph: - if ( use_cmap ) - { - if ( event->info < 0 ) - { - if ( Code > -event->info ) - Code += event->info; - else - Code = 0; - - for ( ; Code >= 0; Code-- ) - { - Num = TT_Char_Index( char_map, Code ); - if ( Num > 0 ) - break; - } - } - else - { - if ( Code < 65536 - event->info - 1 ) - Code += event->info; - else - Code = 65536 - 1; - - for ( ; Code < 65536; Code++ ) - { - Num = TT_Char_Index( char_map, Code ); - if ( Num > 0 ) - break; - } - } - } - else - { - if ( event->info < 0 ) - { - if ( Num > -event->info ) - Num += event->info; - else - Num = 0; - } - else - { - if ( Num < num_glyphs - event->info - 1 ) - Num += event->info; - else - Num = num_glyphs - 1; - } - } - break; - } - - return 1; - } - - - void usage( char* execname ) - { - printf( "\n" ); - printf( "ftzoom: simple TrueType glyph viewer -- part of the FreeType project\n" ); - printf( "--------------------------------------------------------------------\n" ); - printf( "\n" ); - printf( "Usage: %s [options below] fontname[.ttf|.ttc]\n", execname ); - printf( "\n" ); - printf( " -g gray-level rendering (default: none)\n" ); - printf( " -r R use resolution R dpi (default: 96)\n" ); - printf( " -z Z Z:1 magnification (default: 1:1)\n" ); - printf( " -p id platform id (default: none)\n" ); - printf( " -e id encoding id (default: none)\n" ); - printf( " -n don't use the `post' table\n" ); - printf( " If either -p or -e is not set, no cmap will be used.\n" ); - printf( "\n" ); - - exit( EXIT_FAILURE ); - } - - - /* stack check dtp */ - - int main( int argc, char** argv ) - { - int i; - int platform = -1, encoding = -1; - char filename[128 + 4]; - char alt_filename[128 + 4]; - char* execname; - int option; - int res = 96; - TT_Error error; - TT_Post post; - - TEvent event; - - - execname = argv[0]; - gray_render = 0; - - -#ifdef DEBUG_LEVEL_TRACE - - set_tt_trace_levels( trace_raster, 7 ); - set_tt_trace_levels( trace_gload, 7 ); - -#endif - - - while ( 1 ) - { - option = ft_getopt( argc, argv, "e:gnp:r:z:" ); - - if ( option == -1 ) - break; - - switch ( option ) - { - case 'e': - encoding = atoi( ft_optarg ); - break; - - case 'g': - gray_render = 1; - break; - - case 'n': - use_post = 0; - break; - - case 'p': - platform = atoi( ft_optarg ); - break; - - case 'r': - res = atoi( ft_optarg ); - if ( res < 1 ) - usage( execname ); - break; - - case 'z': - zoom_factor = atoi( ft_optarg ); - if ( zoom_factor < 1 || zoom_factor > 16 ) - usage( execname ); - if ( zoom_factor > 4 ) - grid = 1; - break; - - default: - usage( execname ); - break; - } - } - - if ( ft_optind == argc ) - usage( execname ); - - i = strlen( argv[ft_optind] ); - while ( i > 0 && argv[ft_optind][i] != '\\' && argv[ft_optind][i] != '/' ) - { - if ( argv[ft_optind][i] == '.' ) - i = 0; - i--; - } - - filename[128] = '\0'; - alt_filename[128] = '\0'; - - strncpy( filename, argv[ft_optind], 128 ); - strncpy( alt_filename, argv[ft_optind], 128 ); - - if ( i >= 0 ) - { - strncpy( filename + strlen( filename ), ".ttf", 4 ); - strncpy( alt_filename + strlen( alt_filename ), ".ttc", 4 ); - } - - if ( platform >= 0 || encoding >= 0 ) - use_cmap = 1; - - /* Initialization */ - TT_Init_FreeType( &engine ); - - /* Initialization of the post extension */ - if ( use_post ) - TT_Init_Post_Extension( engine ); - - /* Load face */ - - error = TT_Open_Face( engine, filename, &face ); - - if ( error == TT_Err_Could_Not_Open_File ) - { - strcpy( filename, alt_filename ); - error = TT_Open_Face( engine, alt_filename, &face ); - } - - if ( error == TT_Err_Could_Not_Open_File ) - Panic( "Could not find/open %s.\n", filename ); - else if ( error ) - Panic( "Error while opening %s, error code = 0x%x.\n", - filename, error ); - - /* get face properties and allocate preload arrays */ - - TT_Get_Face_Properties( face, &properties ); - - num_glyphs = properties.num_Glyphs; - xcenter_upem = (properties.header->xMax - properties.header->xMin) / 2; - ycenter_upem = (properties.header->yMax - properties.header->yMin) / 2; - units_per_em = properties.header->Units_Per_EM; - - /* load full post table */ - if ( use_post ) - { - error = TT_Load_PS_Names( face, &post ); - if ( error ) - Panic( "Could not load PS names.\n" ); - } - - /* create glyph */ - - error = TT_New_Glyph( face, &glyph ); - if ( error ) - Panic( "Could not create glyph container.\n" ); - - /* create instance */ - - error = TT_New_Instance( face, &instance ); - if ( error ) - Panic( "Could not create instance for %s.\n", filename ); - - error = TT_Set_Instance_Resolutions( instance, res, res ); - if ( error ) - Panic( "Could not set device resolutions." ); - - if ( gray_render ) - { - if ( !SetGraphScreen( Graphics_Mode_Gray ) ) - Panic( "Could not set up grayscale graphics mode.\n" ); - - TT_Set_Raster_Gray_Palette( engine, gray_palette ); - } - else - { - if ( !SetGraphScreen( Graphics_Mode_Mono ) ) - Panic( "Could not set up mono graphics mode.\n" ); - } - - Init_Raster_Area(); - - old_ptsize = ptsize = 150 / zoom_factor; - old_rotation = rotation = 0; - - Reset_PtSize ( ptsize ); - Reset_Rotation( rotation ); - - if ( use_cmap ) - { - unsigned short num_cmap; - unsigned short cmap_plat; - unsigned short cmap_enc; - - - num_cmap = properties.num_CharMaps; - for ( i = 0; i < num_cmap; i++ ) - { - error = TT_Get_CharMap_ID( face, i, &cmap_plat, &cmap_enc ); - if ( error ) - Panic( "Cannot query cmap, error = 0x%x.\n", error ); - if ( cmap_plat == platform && cmap_enc == encoding ) - break; - } - - if ( i == num_cmap ) - Panic( "Invalid platform and/or encoding ID.\n" ); - - error = TT_Get_CharMap( face, i, &char_map ); - if ( error ) - Panic( "Cannot load cmap, error = 0x%x.\n", error ); - - num_glyphs = (1L << 16) - 1; - } - - Code = 0; - Num = 0; - Fail = 0; - - for ( ;; ) - { - char *glyphname; - - - glyphname = NULL; - - ClearData(); - - if ( ptsize != old_ptsize ) - { - Reset_PtSize( ptsize ); - old_ptsize = ptsize; - } - - if ( rotation != old_rotation ) - { - Reset_Rotation( rotation ); - old_rotation = rotation; - } - - if ( (error = LoadTrueTypeChar( Num, hinted )) == TT_Err_Ok ) - { - ConvertRaster(); - if ( grid ) - DrawGrid(); - - if ( use_post ) - (void)TT_Get_PS_Name(face, Num, &glyphname); - - if ( use_cmap ) - sprintf( Header, "\"%s\": index = %3d, code = 0x%x, hinting = %s", - use_post ? glyphname : "", Num, Code, - hinted ? "ON" : "OFF" ); - else - sprintf( Header, "\"%s\": index = %3d, hinting = %s", - use_post ? glyphname : "", Num, hinted ? "ON" : "OFF" ); - } - else { - Fail++; - sprintf( Header, "\"%s\": index = %3d, hinting = %s (ERROR 0x%lx)", - glyphname ? glyphname : "", Num, - hinted ? "ON" : "OFF", error ); - } - - Display_Bitmap_On_Screen( Bit.bitmap, Bit.rows, Bit.cols ); - -#ifndef X11 -#ifndef OS2 - Print_XY( 0, 0, Header ); -#endif -#endif - - Get_Event( &event ); - if ( !Process_Event( &event ) ) goto End; - } - - End: - - RestoreScreen(); - - TT_Close_Face( face ); - TT_Done_FreeType( engine ); - - printf( "Fails = %d.\n", Fail ); - - exit( EXIT_SUCCESS ); /* for safety reasons */ - - return 0; /* never reached */ - } - - -/* End */ diff --git a/Build/source/libs/freetype/freetype-1.5/test/gdriver.h b/Build/source/libs/freetype/freetype-1.5/test/gdriver.h deleted file mode 100644 index e57ffbc0342..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/gdriver.h +++ /dev/null @@ -1,55 +0,0 @@ -/******************************************************************* - * - * gdriver.h : Graphics utility driver generic interface 1.1 - * - * Generic interface for all drivers of the graphics utility used - * by the FreeType test programs. - * - * Copyright 1996-2000 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - ******************************************************************/ - -#ifndef GDRIVER_H -#define GDRIVER_H - - /* Note that we now support an event based model, even with */ - /* full-screen modes. It is the responsability of the driver */ - /* to map its events to the TEvent structure when called */ - /* through Get_Event. */ - - /* The event classes are defined in the file 'gevents.h' included */ - /* by the test programs, not by the graphics utility. */ - - typedef struct _TEvent - { - int what; /* event class */ - int info; /* event parameter */ - } TEvent; - - - /* Get last event. In full-screen modes, a keystroke must be */ - /* translated to an event class with a parameter. */ - void Get_Event( TEvent* event ); - - /* A call to this function must set the graphics mode, the Vio */ - /* variable, as well as the values vio_ScanLineWidth, vio_Width */ - /* and vio_Height. */ - int Driver_Set_Graphics( int mode ); - - /* Restore previous mode or release display buffer/window */ - int Driver_Restore_Mode( void ); - - /* display bitmap on screen */ - int Driver_Display_Bitmap( char* buffer, int line, int col ); - -#endif /* GDRIVER_H */ - - -/* End */ diff --git a/Build/source/libs/freetype/freetype-1.5/test/gevents.h b/Build/source/libs/freetype/freetype-1.5/test/gevents.h deleted file mode 100644 index 8f7f977a451..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/gevents.h +++ /dev/null @@ -1,43 +0,0 @@ -/******************************************************************* - * - * gevents.h test programs events definition 1.1 - * - * This file defines the events used by the FreeType test programs - * It is _not_ included by 'gmain.c'. This file is also used by the - * drivers to translate their own events in GEvents. - * - * Not a very good design, but we're not rewriting X... - * - * Copyright 1996-2000 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - ******************************************************************/ - -#ifndef GEVENTS_H -#define GEVENTS_H - - typedef enum _GEvent - { - event_None, - event_Quit, /* Quit program */ - - event_Keyboard, /* unknown keystroke */ - - event_Change_Glyph, - event_Rotate_Glyph, - event_Scale_Glyph, - - event_Change_ScanType, - event_Change_Instructions - } GEvent; - -#endif /* GEVENTS_H */ - - -/* End */ diff --git a/Build/source/libs/freetype/freetype-1.5/test/gmain.c b/Build/source/libs/freetype/freetype-1.5/test/gmain.c deleted file mode 100644 index f8eefc7aef3..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/gmain.c +++ /dev/null @@ -1,475 +0,0 @@ -/******************************************************************* - * - * gmain.c graphics utility main body 1.1 - * - * This file defines a common implementation of the graphics - * utility used by the FreeType test programs. It relies on - * system-specific drivers, like 'gfs_os.c', which interface is - * described in the file 'gdriver.h'. - * - * Copyright 1996-2000 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - ******************************************************************/ - -#include "gdriver.h" -#include "gmain.h" - -#ifndef FAILURE -#define FAILURE 0 -#endif - -#ifndef SUCCESS -#define SUCCESS 1 -#endif - - char* Vio; /* pointer to VRAM or display buffer */ - - int vio_ScanLineWidth; /* scan line width in bytes */ - - int vio_Width; - int vio_Height; - - int gcursor_x = 0; - int gcursor_y = 0; - - int gwindow_width = 0; - int gwindow_height = 0; - - unsigned char gray_palette[5]; - - - typedef void TFunction_Print_8x8_Char( int x, - int y, - unsigned char c ); - - TFunction_Print_8x8_Char* Print_8x8_Char; - - /* font characters */ - - unsigned char font_8x8[2048] = - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x7E, 0x81, 0xA5, 0x81, 0xBD, 0x99, 0x81, 0x7E, - 0x7E, 0xFF, 0xDB, 0xFF, 0xC3, 0xE7, 0xFF, 0x7E, - 0x6C, 0xFE, 0xFE, 0xFE, 0x7C, 0x38, 0x10, 0x00, - 0x10, 0x38, 0x7C, 0xFE, 0x7C, 0x38, 0x10, 0x00, - 0x38, 0x7C, 0x38, 0xFE, 0xFE, 0x92, 0x10, 0x7C, - 0x00, 0x10, 0x38, 0x7C, 0xFE, 0x7C, 0x38, 0x7C, - 0x00, 0x00, 0x18, 0x3C, 0x3C, 0x18, 0x00, 0x00, - 0xFF, 0xFF, 0xE7, 0xC3, 0xC3, 0xE7, 0xFF, 0xFF, - 0x00, 0x3C, 0x66, 0x42, 0x42, 0x66, 0x3C, 0x00, - 0xFF, 0xC3, 0x99, 0xBD, 0xBD, 0x99, 0xC3, 0xFF, - 0x0F, 0x07, 0x0F, 0x7D, 0xCC, 0xCC, 0xCC, 0x78, - 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x7E, 0x18, - 0x3F, 0x33, 0x3F, 0x30, 0x30, 0x70, 0xF0, 0xE0, - 0x7F, 0x63, 0x7F, 0x63, 0x63, 0x67, 0xE6, 0xC0, - 0x99, 0x5A, 0x3C, 0xE7, 0xE7, 0x3C, 0x5A, 0x99, - 0x80, 0xE0, 0xF8, 0xFE, 0xF8, 0xE0, 0x80, 0x00, - 0x02, 0x0E, 0x3E, 0xFE, 0x3E, 0x0E, 0x02, 0x00, - 0x18, 0x3C, 0x7E, 0x18, 0x18, 0x7E, 0x3C, 0x18, - 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x66, 0x00, - 0x7F, 0xDB, 0xDB, 0x7B, 0x1B, 0x1B, 0x1B, 0x00, - 0x3E, 0x63, 0x38, 0x6C, 0x6C, 0x38, 0x86, 0xFC, - 0x00, 0x00, 0x00, 0x00, 0x7E, 0x7E, 0x7E, 0x00, - 0x18, 0x3C, 0x7E, 0x18, 0x7E, 0x3C, 0x18, 0xFF, - 0x18, 0x3C, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x00, - 0x18, 0x18, 0x18, 0x18, 0x7E, 0x3C, 0x18, 0x00, - 0x00, 0x18, 0x0C, 0xFE, 0x0C, 0x18, 0x00, 0x00, - 0x00, 0x30, 0x60, 0xFE, 0x60, 0x30, 0x00, 0x00, - 0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xFE, 0x00, 0x00, - 0x00, 0x24, 0x66, 0xFF, 0x66, 0x24, 0x00, 0x00, - 0x00, 0x18, 0x3C, 0x7E, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0x7E, 0x3C, 0x18, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x18, 0x3C, 0x3C, 0x18, 0x18, 0x00, 0x18, 0x00, - 0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x6C, 0x6C, 0xFE, 0x6C, 0xFE, 0x6C, 0x6C, 0x00, - 0x18, 0x7E, 0xC0, 0x7C, 0x06, 0xFC, 0x18, 0x00, - 0x00, 0xC6, 0xCC, 0x18, 0x30, 0x66, 0xC6, 0x00, - 0x38, 0x6C, 0x38, 0x76, 0xDC, 0xCC, 0x76, 0x00, - 0x30, 0x30, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x18, 0x30, 0x60, 0x60, 0x60, 0x30, 0x18, 0x00, - 0x60, 0x30, 0x18, 0x18, 0x18, 0x30, 0x60, 0x00, - 0x00, 0x66, 0x3C, 0xFF, 0x3C, 0x66, 0x00, 0x00, - 0x00, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30, - 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, - 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC0, 0x80, 0x00, - 0x7C, 0xCE, 0xDE, 0xF6, 0xE6, 0xC6, 0x7C, 0x00, - 0x30, 0x70, 0x30, 0x30, 0x30, 0x30, 0xFC, 0x00, - 0x78, 0xCC, 0x0C, 0x38, 0x60, 0xCC, 0xFC, 0x00, - 0x78, 0xCC, 0x0C, 0x38, 0x0C, 0xCC, 0x78, 0x00, - 0x1C, 0x3C, 0x6C, 0xCC, 0xFE, 0x0C, 0x1E, 0x00, - 0xFC, 0xC0, 0xF8, 0x0C, 0x0C, 0xCC, 0x78, 0x00, - 0x38, 0x60, 0xC0, 0xF8, 0xCC, 0xCC, 0x78, 0x00, - 0xFC, 0xCC, 0x0C, 0x18, 0x30, 0x30, 0x30, 0x00, - 0x78, 0xCC, 0xCC, 0x78, 0xCC, 0xCC, 0x78, 0x00, - 0x78, 0xCC, 0xCC, 0x7C, 0x0C, 0x18, 0x70, 0x00, - 0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x00, - 0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x30, - 0x18, 0x30, 0x60, 0xC0, 0x60, 0x30, 0x18, 0x00, - 0x00, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x00, 0x00, - 0x60, 0x30, 0x18, 0x0C, 0x18, 0x30, 0x60, 0x00, - 0x3C, 0x66, 0x0C, 0x18, 0x18, 0x00, 0x18, 0x00, - 0x7C, 0xC6, 0xDE, 0xDE, 0xDC, 0xC0, 0x7C, 0x00, - 0x30, 0x78, 0xCC, 0xCC, 0xFC, 0xCC, 0xCC, 0x00, - 0xFC, 0x66, 0x66, 0x7C, 0x66, 0x66, 0xFC, 0x00, - 0x3C, 0x66, 0xC0, 0xC0, 0xC0, 0x66, 0x3C, 0x00, - 0xF8, 0x6C, 0x66, 0x66, 0x66, 0x6C, 0xF8, 0x00, - 0xFE, 0x62, 0x68, 0x78, 0x68, 0x62, 0xFE, 0x00, - 0xFE, 0x62, 0x68, 0x78, 0x68, 0x60, 0xF0, 0x00, - 0x3C, 0x66, 0xC0, 0xC0, 0xCE, 0x66, 0x3A, 0x00, - 0xCC, 0xCC, 0xCC, 0xFC, 0xCC, 0xCC, 0xCC, 0x00, - 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00, - 0x1E, 0x0C, 0x0C, 0x0C, 0xCC, 0xCC, 0x78, 0x00, - 0xE6, 0x66, 0x6C, 0x78, 0x6C, 0x66, 0xE6, 0x00, - 0xF0, 0x60, 0x60, 0x60, 0x62, 0x66, 0xFE, 0x00, - 0xC6, 0xEE, 0xFE, 0xFE, 0xD6, 0xC6, 0xC6, 0x00, - 0xC6, 0xE6, 0xF6, 0xDE, 0xCE, 0xC6, 0xC6, 0x00, - 0x38, 0x6C, 0xC6, 0xC6, 0xC6, 0x6C, 0x38, 0x00, - 0xFC, 0x66, 0x66, 0x7C, 0x60, 0x60, 0xF0, 0x00, - 0x7C, 0xC6, 0xC6, 0xC6, 0xD6, 0x7C, 0x0E, 0x00, - 0xFC, 0x66, 0x66, 0x7C, 0x6C, 0x66, 0xE6, 0x00, - 0x7C, 0xC6, 0xE0, 0x78, 0x0E, 0xC6, 0x7C, 0x00, - 0xFC, 0xB4, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00, - 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xFC, 0x00, - 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x78, 0x30, 0x00, - 0xC6, 0xC6, 0xC6, 0xC6, 0xD6, 0xFE, 0x6C, 0x00, - 0xC6, 0xC6, 0x6C, 0x38, 0x6C, 0xC6, 0xC6, 0x00, - 0xCC, 0xCC, 0xCC, 0x78, 0x30, 0x30, 0x78, 0x00, - 0xFE, 0xC6, 0x8C, 0x18, 0x32, 0x66, 0xFE, 0x00, - 0x78, 0x60, 0x60, 0x60, 0x60, 0x60, 0x78, 0x00, - 0xC0, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x02, 0x00, - 0x78, 0x18, 0x18, 0x18, 0x18, 0x18, 0x78, 0x00, - 0x10, 0x38, 0x6C, 0xC6, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, - 0x30, 0x30, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00, - 0xE0, 0x60, 0x60, 0x7C, 0x66, 0x66, 0xDC, 0x00, - 0x00, 0x00, 0x78, 0xCC, 0xC0, 0xCC, 0x78, 0x00, - 0x1C, 0x0C, 0x0C, 0x7C, 0xCC, 0xCC, 0x76, 0x00, - 0x00, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00, - 0x38, 0x6C, 0x64, 0xF0, 0x60, 0x60, 0xF0, 0x00, - 0x00, 0x00, 0x76, 0xCC, 0xCC, 0x7C, 0x0C, 0xF8, - 0xE0, 0x60, 0x6C, 0x76, 0x66, 0x66, 0xE6, 0x00, - 0x30, 0x00, 0x70, 0x30, 0x30, 0x30, 0x78, 0x00, - 0x0C, 0x00, 0x1C, 0x0C, 0x0C, 0xCC, 0xCC, 0x78, - 0xE0, 0x60, 0x66, 0x6C, 0x78, 0x6C, 0xE6, 0x00, - 0x70, 0x30, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00, - 0x00, 0x00, 0xCC, 0xFE, 0xFE, 0xD6, 0xD6, 0x00, - 0x00, 0x00, 0xB8, 0xCC, 0xCC, 0xCC, 0xCC, 0x00, - 0x00, 0x00, 0x78, 0xCC, 0xCC, 0xCC, 0x78, 0x00, - 0x00, 0x00, 0xDC, 0x66, 0x66, 0x7C, 0x60, 0xF0, - 0x00, 0x00, 0x76, 0xCC, 0xCC, 0x7C, 0x0C, 0x1E, - 0x00, 0x00, 0xDC, 0x76, 0x62, 0x60, 0xF0, 0x00, - 0x00, 0x00, 0x7C, 0xC0, 0x70, 0x1C, 0xF8, 0x00, - 0x10, 0x30, 0xFC, 0x30, 0x30, 0x34, 0x18, 0x00, - 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00, - 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0x78, 0x30, 0x00, - 0x00, 0x00, 0xC6, 0xC6, 0xD6, 0xFE, 0x6C, 0x00, - 0x00, 0x00, 0xC6, 0x6C, 0x38, 0x6C, 0xC6, 0x00, - 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0x7C, 0x0C, 0xF8, - 0x00, 0x00, 0xFC, 0x98, 0x30, 0x64, 0xFC, 0x00, - 0x1C, 0x30, 0x30, 0xE0, 0x30, 0x30, 0x1C, 0x00, - 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x00, - 0xE0, 0x30, 0x30, 0x1C, 0x30, 0x30, 0xE0, 0x00, - 0x76, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x38, 0x6C, 0xC6, 0xC6, 0xFE, 0x00, - 0x7C, 0xC6, 0xC0, 0xC6, 0x7C, 0x0C, 0x06, 0x7C, - 0x00, 0xCC, 0x00, 0xCC, 0xCC, 0xCC, 0x76, 0x00, - 0x1C, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00, - 0x7E, 0x81, 0x3C, 0x06, 0x3E, 0x66, 0x3B, 0x00, - 0xCC, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00, - 0xE0, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00, - 0x30, 0x30, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00, - 0x00, 0x00, 0x7C, 0xC6, 0xC0, 0x78, 0x0C, 0x38, - 0x7E, 0x81, 0x3C, 0x66, 0x7E, 0x60, 0x3C, 0x00, - 0xCC, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00, - 0xE0, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00, - 0xCC, 0x00, 0x70, 0x30, 0x30, 0x30, 0x78, 0x00, - 0x7C, 0x82, 0x38, 0x18, 0x18, 0x18, 0x3C, 0x00, - 0xE0, 0x00, 0x70, 0x30, 0x30, 0x30, 0x78, 0x00, - 0xC6, 0x10, 0x7C, 0xC6, 0xFE, 0xC6, 0xC6, 0x00, - 0x30, 0x30, 0x00, 0x78, 0xCC, 0xFC, 0xCC, 0x00, - 0x1C, 0x00, 0xFC, 0x60, 0x78, 0x60, 0xFC, 0x00, - 0x00, 0x00, 0x7F, 0x0C, 0x7F, 0xCC, 0x7F, 0x00, - 0x3E, 0x6C, 0xCC, 0xFE, 0xCC, 0xCC, 0xCE, 0x00, - 0x78, 0x84, 0x00, 0x78, 0xCC, 0xCC, 0x78, 0x00, - 0x00, 0xCC, 0x00, 0x78, 0xCC, 0xCC, 0x78, 0x00, - 0x00, 0xE0, 0x00, 0x78, 0xCC, 0xCC, 0x78, 0x00, - 0x78, 0x84, 0x00, 0xCC, 0xCC, 0xCC, 0x76, 0x00, - 0x00, 0xE0, 0x00, 0xCC, 0xCC, 0xCC, 0x76, 0x00, - 0x00, 0xCC, 0x00, 0xCC, 0xCC, 0x7C, 0x0C, 0xF8, - 0xC3, 0x18, 0x3C, 0x66, 0x66, 0x3C, 0x18, 0x00, - 0xCC, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0x78, 0x00, - 0x18, 0x18, 0x7E, 0xC0, 0xC0, 0x7E, 0x18, 0x18, - 0x38, 0x6C, 0x64, 0xF0, 0x60, 0xE6, 0xFC, 0x00, - 0xCC, 0xCC, 0x78, 0x30, 0xFC, 0x30, 0xFC, 0x30, - 0xF8, 0xCC, 0xCC, 0xFA, 0xC6, 0xCF, 0xC6, 0xC3, - 0x0E, 0x1B, 0x18, 0x3C, 0x18, 0x18, 0xD8, 0x70, - 0x1C, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00, - 0x38, 0x00, 0x70, 0x30, 0x30, 0x30, 0x78, 0x00, - 0x00, 0x1C, 0x00, 0x78, 0xCC, 0xCC, 0x78, 0x00, - 0x00, 0x1C, 0x00, 0xCC, 0xCC, 0xCC, 0x76, 0x00, - 0x00, 0xF8, 0x00, 0xB8, 0xCC, 0xCC, 0xCC, 0x00, - 0xFC, 0x00, 0xCC, 0xEC, 0xFC, 0xDC, 0xCC, 0x00, - 0x3C, 0x6C, 0x6C, 0x3E, 0x00, 0x7E, 0x00, 0x00, - 0x38, 0x6C, 0x6C, 0x38, 0x00, 0x7C, 0x00, 0x00, - 0x18, 0x00, 0x18, 0x18, 0x30, 0x66, 0x3C, 0x00, - 0x00, 0x00, 0x00, 0xFC, 0xC0, 0xC0, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xFC, 0x0C, 0x0C, 0x00, 0x00, - 0xC6, 0xCC, 0xD8, 0x36, 0x6B, 0xC2, 0x84, 0x0F, - 0xC3, 0xC6, 0xCC, 0xDB, 0x37, 0x6D, 0xCF, 0x03, - 0x18, 0x00, 0x18, 0x18, 0x3C, 0x3C, 0x18, 0x00, - 0x00, 0x33, 0x66, 0xCC, 0x66, 0x33, 0x00, 0x00, - 0x00, 0xCC, 0x66, 0x33, 0x66, 0xCC, 0x00, 0x00, - 0x22, 0x88, 0x22, 0x88, 0x22, 0x88, 0x22, 0x88, - 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, - 0xDB, 0xF6, 0xDB, 0x6F, 0xDB, 0x7E, 0xD7, 0xED, - 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0xF8, 0x18, 0x18, 0x18, - 0x18, 0x18, 0xF8, 0x18, 0xF8, 0x18, 0x18, 0x18, - 0x36, 0x36, 0x36, 0x36, 0xF6, 0x36, 0x36, 0x36, - 0x00, 0x00, 0x00, 0x00, 0xFE, 0x36, 0x36, 0x36, - 0x00, 0x00, 0xF8, 0x18, 0xF8, 0x18, 0x18, 0x18, - 0x36, 0x36, 0xF6, 0x06, 0xF6, 0x36, 0x36, 0x36, - 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, - 0x00, 0x00, 0xFE, 0x06, 0xF6, 0x36, 0x36, 0x36, - 0x36, 0x36, 0xF6, 0x06, 0xFE, 0x00, 0x00, 0x00, - 0x36, 0x36, 0x36, 0x36, 0xFE, 0x00, 0x00, 0x00, - 0x18, 0x18, 0xF8, 0x18, 0xF8, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xF8, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0x1F, 0x00, 0x00, 0x00, - 0x18, 0x18, 0x18, 0x18, 0xFF, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xFF, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0x1F, 0x18, 0x18, 0x18, - 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, - 0x18, 0x18, 0x18, 0x18, 0xFF, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x1F, 0x18, 0x1F, 0x18, 0x18, 0x18, - 0x36, 0x36, 0x36, 0x36, 0x37, 0x36, 0x36, 0x36, - 0x36, 0x36, 0x37, 0x30, 0x3F, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x3F, 0x30, 0x37, 0x36, 0x36, 0x36, - 0x36, 0x36, 0xF7, 0x00, 0xFF, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0x00, 0xF7, 0x36, 0x36, 0x36, - 0x36, 0x36, 0x37, 0x30, 0x37, 0x36, 0x36, 0x36, - 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, - 0x36, 0x36, 0xF7, 0x00, 0xF7, 0x36, 0x36, 0x36, - 0x18, 0x18, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, - 0x36, 0x36, 0x36, 0x36, 0xFF, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x18, 0x18, 0x18, - 0x00, 0x00, 0x00, 0x00, 0xFF, 0x36, 0x36, 0x36, - 0x36, 0x36, 0x36, 0x36, 0x3F, 0x00, 0x00, 0x00, - 0x18, 0x18, 0x1F, 0x18, 0x1F, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x1F, 0x18, 0x1F, 0x18, 0x18, 0x18, - 0x00, 0x00, 0x00, 0x00, 0x3F, 0x36, 0x36, 0x36, - 0x36, 0x36, 0x36, 0x36, 0xFF, 0x36, 0x36, 0x36, - 0x18, 0x18, 0xFF, 0x18, 0xFF, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0xF8, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x1F, 0x18, 0x18, 0x18, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, - 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, - 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, - 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x76, 0xDC, 0xC8, 0xDC, 0x76, 0x00, - 0x00, 0x78, 0xCC, 0xF8, 0xCC, 0xF8, 0xC0, 0xC0, - 0x00, 0xFC, 0xCC, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, - 0x00, 0x00, 0xFE, 0x6C, 0x6C, 0x6C, 0x6C, 0x00, - 0xFC, 0xCC, 0x60, 0x30, 0x60, 0xCC, 0xFC, 0x00, - 0x00, 0x00, 0x7E, 0xD8, 0xD8, 0xD8, 0x70, 0x00, - 0x00, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x60, 0xC0, - 0x00, 0x76, 0xDC, 0x18, 0x18, 0x18, 0x18, 0x00, - 0xFC, 0x30, 0x78, 0xCC, 0xCC, 0x78, 0x30, 0xFC, - 0x38, 0x6C, 0xC6, 0xFE, 0xC6, 0x6C, 0x38, 0x00, - 0x38, 0x6C, 0xC6, 0xC6, 0x6C, 0x6C, 0xEE, 0x00, - 0x1C, 0x30, 0x18, 0x7C, 0xCC, 0xCC, 0x78, 0x00, - 0x00, 0x00, 0x7E, 0xDB, 0xDB, 0x7E, 0x00, 0x00, - 0x06, 0x0C, 0x7E, 0xDB, 0xDB, 0x7E, 0x60, 0xC0, - 0x38, 0x60, 0xC0, 0xF8, 0xC0, 0x60, 0x38, 0x00, - 0x78, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x00, - 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x00, - 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x7E, 0x00, - 0x60, 0x30, 0x18, 0x30, 0x60, 0x00, 0xFC, 0x00, - 0x18, 0x30, 0x60, 0x30, 0x18, 0x00, 0xFC, 0x00, - 0x0E, 0x1B, 0x1B, 0x18, 0x18, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0x18, 0xD8, 0xD8, 0x70, - 0x18, 0x18, 0x00, 0x7E, 0x00, 0x18, 0x18, 0x00, - 0x00, 0x76, 0xDC, 0x00, 0x76, 0xDC, 0x00, 0x00, - 0x38, 0x6C, 0x6C, 0x38, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x0F, 0x0C, 0x0C, 0x0C, 0xEC, 0x6C, 0x3C, 0x1C, - 0x58, 0x6C, 0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00, - 0x70, 0x98, 0x30, 0x60, 0xF8, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x3C, 0x3C, 0x3C, 0x3C, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - }; - - - void Print_8x8_Mono( int x, int y, unsigned char c ) - { - int offset, i; - unsigned char* bitm; - - if ( !Vio ) - return; - - offset = x + y * vio_ScanLineWidth * 8; - bitm = font_8x8 + (int)c * 8; - - for ( i = 0; i < 8; i++ ) - { - Vio[offset] = *bitm; - bitm++; - offset += vio_ScanLineWidth; - } - } - - - void Print_8x8_Gray( int x, int y, unsigned char c ) - { - int offset, i, bit; - unsigned char* bitm; - - if ( !Vio ) - return; - - offset = x * 8 + y * vio_ScanLineWidth * 8; - bitm = font_8x8 + (int)c * 8; - - for ( i = 0; i < 8; i++ ) - { - bit = 0x80; - while ( bit > 0 ) - { - if ( bit & *bitm ) - Vio[offset] = (char)0x0f; - else - Vio[offset] = 0x00; - - bit >>= 1; - offset++; - } - offset += vio_ScanLineWidth - 8; - bitm++; - } - } - - - int SetGraphScreen( int mode ) - { - gcursor_x = 0; - gcursor_y = 0; - - switch( mode ) - { - case Graphics_Mode_Mono: - if ( !Driver_Set_Graphics( mode ) ) - return FAILURE; - - gwindow_width = vio_ScanLineWidth; - gwindow_height = vio_Height / 8; - - Print_8x8_Char = Print_8x8_Mono; - break; - - case Graphics_Mode_Gray: - if ( !Driver_Set_Graphics( mode ) ) - return FAILURE; - - gwindow_width = vio_ScanLineWidth / 8; - gwindow_height = vio_Height / 8; - - Print_8x8_Char = Print_8x8_Gray; - break; - - default: - /* Invalid function call */ - return FAILURE; - } - - return SUCCESS; - } - - - /* restore previous (or text) video mode */ - - int RestoreScreen( void ) - { - gcursor_x = 0; - gcursor_y = 0; - gwindow_height = 0; - gwindow_height = 0; - - return Driver_Restore_Mode(); - } - - - void Display_Bitmap_On_Screen( char* buffer, int line, int col ) - { - Driver_Display_Bitmap( buffer, line, col ); - } - - - void Goto_XY( int x, int y ) - { - gcursor_x = x; - gcursor_y = y; - } - - - void Print_Str( char* string ) - { - if ( !string ) return; - - while ( *string ) - { - switch ( *string ) - { - case '\n': - gcursor_x = 0; - gcursor_y++; - if ( gcursor_y > gwindow_height ) gcursor_y = 0; - break; - - default: - (*Print_8x8_Char)( gcursor_x, gcursor_y, *string ); - - gcursor_x++; - - if ( gcursor_x >= gwindow_width ) - { - gcursor_x = 0; - gcursor_y++; - - if ( gcursor_y >= gwindow_height ) gcursor_y = 0; - } - } - string++; - } - } - - - void Print_XY( int x, int y, char* string ) - { - Goto_XY( x, y ); - Print_Str( string ); - } - - - - - - - - - -/* End */ diff --git a/Build/source/libs/freetype/freetype-1.5/test/gmain.h b/Build/source/libs/freetype/freetype-1.5/test/gmain.h deleted file mode 100644 index 3b40440b672..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/gmain.h +++ /dev/null @@ -1,71 +0,0 @@ -/******************************************************************* - * - * gmain.h graphics utility main interface 1.1 - * - * This file defines a common interface, implemented in the body - * file 'gmain.c'. It relies on system dependent driver files, - * like 'gfs_os.c', whose interface is described in 'gdriver.h'. - * - * Copyright 1996-2001 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - ******************************************************************/ - -#ifndef GMAIN_H -#define GMAIN_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* Graphics mode definitions */ - -#define Graphics_Mode_Mono 1 /* monochrome graphics mode */ -#define Graphics_Mode_Gray 2 /* 8-bit palette graphics mode */ - - extern char* Vio; /* Pointer to VRAM or display buffer */ - - extern int vio_ScanLineWidth; /* Scan Line width in bytes */ - - extern int vio_Width; - extern int vio_Height; - - extern unsigned char gray_palette[5]; /* standard gray_palette */ - - - /* set a graphics mode, chosen from the Graphics_Mode_xxx list */ - int SetGraphScreen( int mode ); - - /* restore previous (or text) video mode */ - int RestoreScreen( void ); - - /* display a bitmap of 'line' lines, and 'col' columns (each */ - /* column made of 8 bits) */ - void Display_Bitmap_On_Screen( char* buffer, int line, int col ); - - void Goto_XY( int x, int y ); - - - extern int gcursor_x; - extern int gcursor_y; - - extern int gwindow_width; - extern int gwindow_height; - - void Print_Str( char* string ); - void Print_XY ( int x, int y, char* string ); - -#ifdef __cplusplus -} -#endif - -#endif /* GMAIN_H */ - - -/* End */ diff --git a/Build/source/libs/freetype/freetype-1.5/test/textdisp.c b/Build/source/libs/freetype/freetype-1.5/test/textdisp.c deleted file mode 100644 index c6ac8df860f..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/textdisp.c +++ /dev/null @@ -1,47 +0,0 @@ -/****************************************************************************/ -/* */ -/* The FreeType project -- a free and portable quality TrueType renderer. */ -/* */ -/* Copyright 1996-2001 by */ -/* D. Turner, R.Wilhelm, and W. Lemberg */ -/* */ -/* textdisp.c: Text-mode display component used by some test programs. */ -/* */ -/* This file is used to display glyphs using only text, with ' ' and '*'. */ -/* */ -/****************************************************************************/ - -#include <stdio.h> - -#include "textdisp.h" - - void - Show_Single_Glyph( const TT_Raster_Map* map ) - { - int y; - - unsigned char* line = map->bitmap; - - - for ( y = 0; y < map->rows; y++, line += map->cols ) - { - unsigned char* ptr = line; - int x; - unsigned char mask = 0x80; - - - for ( x = 0; x < map->width; x++ ) - { - printf( "%c", (ptr[0] & mask) ? '*' : '.' ); - mask >>= 1; - if ( mask == 0 ) - { - mask = 0x80; - ptr++; - } - } - printf( "\n" ); - } - } - -/* End */ diff --git a/Build/source/libs/freetype/freetype-1.5/test/textdisp.h b/Build/source/libs/freetype/freetype-1.5/test/textdisp.h deleted file mode 100644 index 829fc164804..00000000000 --- a/Build/source/libs/freetype/freetype-1.5/test/textdisp.h +++ /dev/null @@ -1,32 +0,0 @@ -/****************************************************************************/ -/* */ -/* The FreeType project -- a free and portable quality TrueType renderer. */ -/* */ -/* Copyright 1996-2001 by */ -/* D. Turner, R.Wilhelm, and W. Lemberg */ -/* */ -/* textdisp.h: Text-mode display component used by some test programs. */ -/* */ -/* This file is used to display glyphs using only text, with ' ' and '*'. */ -/* */ -/****************************************************************************/ - -#ifndef TEXTDISP_H -#define TEXTDISP_H - -#include "freetype.h" /* TT_Raster_Map */ - -#ifdef __cplusplus - extern "C" { -#endif - - void Show_Single_Glyph( const TT_Raster_Map* map ); - -#ifdef __cplusplus - } -#endif - -#endif /* TEXTDISP_H */ - - -/* End */ |