fonts-ocr-b-0.2~dfsg1/000077500000000000000000000000001275507450000146345ustar00rootroot00000000000000fonts-ocr-b-0.2~dfsg1/Makefile.am000066400000000000000000000230001275507450000166630ustar00rootroot00000000000000## Process this file with automake to produce Makefile.in # # Makefile source for OCR fonts # # This file (Makefile.am) is released to the public domain by its author, # Matthew Skala, but be aware that the generated Makefile may be subject # to claims by the Free Software Foundation or others. # # 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. # # Matthew Skala # http://ansuz.sooke.bc.ca/ # mskala@ansuz.sooke.bc.ca # ############################################################################ # BASIC AUTOTOOLS STUFF ACLOCAL_AMFLAGS = -I m4 @SET_MAKE@ @INC_AMINCLUDE@ mvp:=$(if $(VPATH),$(VPATH),.) empty:= space:=$(empty) $(empty) comma:=, percent=% ############################################################################ # SILENT BUILD BLINKENLIGHTS TSU_V_REDIR=$(if $(AM_V_at),>& /dev/null) if COND_COLOUR ECHO_ANSI=echo -e ansi_default=\e[0m ansi_red=\e[31m ansi_green=\e[32m ansi_yellow=\e[33m ansi_blue=\e[34m ansi_magenta=\e[35m ansi_cyan=\e[36m ansi_pink=\e[35;1m ansi_white=\e[37;1m ansi_cleareol=\e[K ansi_clearescaped=\033\[K ansi_home=\e[1G am__@andt@v_CC_0=@echo -e "$(ansi_default)$(ansi_cleareol) CC " $@; am__@andt@v_CCLD_0=@echo -e "$(ansi_default)$(ansi_cleareol) CCLD " $@; am__@andt@v_GEN_0=@echo -e "$(ansi_default)$(ansi_cleareol) GEN " $@; else ECHO_ANSI=echo ansi_default= ansi_red= ansi_green= ansi_yellow= ansi_blue= ansi_magenta= ansi_cyan= ansi_pink= ansi_white= ansi_cleareol= ansi_clearescaped= ansi_home= endif TSU_V_CP =$(TSU_V_CP_$(V)) TSU_V_CP_=$(TSU_V_CP_$(AM_DEFAULT_VERBOSITY)) TSU_V_CP_0=@$(ECHO_ANSI) \ "$(ansi_cleareol) $(ansi_default)CP$(ansi_default) " $@; TSU_V_MT1=$(TSU_V_MT1_$(V)) TSU_V_MT1_=$(TSU_V_MT1_$(AM_DEFAULT_VERBOSITY)) TSU_V_MT1_0=$(ECHO_ANSI) \ "$(ansi_cleareol) $(ansi_blue)MT1$(ansi_default) " $@; TSU_V_NAPERL=$(TSU_V_NAPERL_$(V)) TSU_V_NAPERL_=$(TSU_V_NAPERL_$(AM_DEFAULT_VERBOSITY)) TSU_V_NAPERL_0=$(ECHO_ANSI) \ "$(ansi_cleareol) $(ansi_magenta)PERL$(ansi_default) " $@; TSU_V_OTF=$(TSU_V_OTF_$(V)) TSU_V_OTF_=$(TSU_V_OTF_$(AM_DEFAULT_VERBOSITY)) TSU_V_OTF_0=$(ECHO_ANSI) \ "$(ansi_cleareol) $(ansi_cyan)OTF$(ansi_default) " $@; TSU_V_RMO=$(TSU_V_RMO_$(V)) TSU_V_RMO_=$(TSU_V_RMO_$(AM_DEFAULT_VERBOSITY)) TSU_V_RMO_0=$(ECHO_ANSI) \ "$(ansi_cleareol) $(ansi_cyan)RMO$(ansi_default) " $@; TSU_V_TEX=$(TSU_V_TEX_$(V)) TSU_V_TEX_=$(TSU_V_TEX_$(AM_DEFAULT_VERBOSITY)) TSU_V_TEX_0=@$(ECHO_ANSI) \ "$(ansi_cleareol) $(ansi_green)TEX$(ansi_default) " $@; TSU_V_TEXL=$(TSU_V_TEXL_$(V)) TSU_V_TEXL_=$(TSU_V_TEXL_$(AM_DEFAULT_VERBOSITY)) TSU_V_TEXL_0=$(ECHO_ANSI) \ "$(ansi_cleareol) $(ansi_green)TEX$(ansi_default) " "$@($$I)"; ############################################################################ # CONDITIONAL OPTIONS if COND_DOCS MAYBE_DOCS=ocr.pdf endif if COND_EXPECT expect_start= $(if $(AM_V_at),$(EXPECT) -c \ 'log_user 0 ; spawn -noecho sh -c ") expect_end= $(if $(AM_V_at), " ; \ expect -timeout -1 \ -re "\n! " {exit 1} \ -re "PROGRESS:(\[^\n\]*)\n" \ {puts -nonewline \ "$(ansi_clearescaped)$$expect_out(1,string)\r"; \ flush stdout;exp_continue} \ eof' ) else expect_end=$(TSU_V_REDIR) endif ############################################################################ # FILENAMES FOR AUTOTOOLS # we need a "built source" to make jobserver mode work, for stupid reasons BUILT_SOURCES=Makefile # QVFG and FPEVCGF are DIST and SCRIPTS in ROT13, to keep Automake # from recognizing them STANDALONE_QVFG:=fntbase.mp EXTRA_DIST:= \ $(if $(filter $(distdir),$(top_distdir)),$(STANDALONE_QVFG)) \ $(wildcard $(mvp)/*.mp) \ ocr.tex ocra.fea ocrb.fea STANDALONE_FPEVCGF:=mp2pf dist_noinst_SCRIPTS:= \ $(if $(filter $(distdir),$(top_distdir)),$(STANDALONE_FPEVCGF)) \ ocra-no.pe ocra-yes.pe ocrb-no.pe ocrb-yes.pe ocrbnames.pe rmo.pe dist_pdf_DATA = $(MAYBE_DOCS) dist_otf_DATA = OCRA.otf \ OCRB.otf OCRBE.otf OCRBF.otf OCRBL.otf OCRBS.otf OCRBX.otf dist_ttf_DATA = OCRA.ttf \ OCRB.ttf OCRBE.ttf OCRBF.ttf OCRBL.ttf OCRBS.ttf OCRBX.ttf dist_type1_DATA = OCRA.pfb \ OCRB.pfb OCRBE.pfb OCRBF.pfb OCRBL.pfb OCRBS.pfb OCRBX.pfb dist_afm_DATA = $(patsubst %.pfb,%.afm,$(dist_type1_DATA)) ############################################################################ # MAKE CLEAN MOSTLYCLEANFILES = \ *.afm *.otf *.pfb *.rmo *.ttf \ ocr.aux ocr.log ocr.out ocr.pdf DISTCLEANFILES = \ aminclude.am ffaetest.pe ############################################################################ # POSTSCRIPT FONTS %.pfb: %.mp \ mp2pf @T1ASM@ \ fntbase.mp $(AM_V_at)$(TSU_V_MT1) \ $(MKDIR_P) $*.tmp ; \ $(LN_S) -f $(realpath $(mvp))/*.mp $*.tmp/ ; \ $(LN_S) -f $(realpath .)/*.mp $*.tmp/ ; \ (cd $*.tmp ; $(expect_start)$(MPOST) $*.mp$(expect_end) ) ; \ if $(GREP) -q '^! ' $*.tmp/$*.log ; then exit 1 ; fi ; \ $(TSU_V_NAPERL) \ $(PERL) -CSD $(mvp)/mp2pf $*.tmp/$* $(TSU_V_REDIR) ; \ (cd $*.tmp ; $(realpath @T1ASM@) -b $*.p $*.pfb ) ; \ if test -r $*.tmp/$*.pfb \ && $(GREP) -q 'output files\? written' $*.tmp/$*.log; then \ mv -f $*.tmp/$*.pfb . ; \ else \ echo "ERROR BUILDING" $@ ; \ exit 1 ; \ fi ; \ if test "x$(KEEPTMP)" = "x" ; then \ rm -rf $*.tmp ; \ fi msk-ocra10.pfb: msk-ocra10.mp msk-ocra.mp msk-ocrb10.pfb: msk-ocrb10.mp msk-ocrbdef.mp msk-ocrbmac.mp msk-ocrb10efg.pfb: msk-ocrb10efg.mp msk-ocrbdef.mp msk-ocrbmac.mp msk-ocrb10ebg.pfb: msk-ocrb10ebg.mp msk-ocrbdef.mp msk-ocrbmac.mp msk-ocrb10ffg.pfb: msk-ocrb10ffg.mp msk-ocrbdef.mp msk-ocrbmac.mp msk-ocrb10fbg.pfb: msk-ocrb10fbg.mp msk-ocrbdef.mp msk-ocrbmac.mp msk-ocrb10g.pfb: msk-ocrb10g.mp msk-ocrbdef.mp msk-ocrbmac.mp msk-ocrb10l.pfb: msk-ocrb10l.mp msk-ocrbdef.mp msk-ocrbmac.mp msk-ocrb10s.pfb: msk-ocrb10s.mp msk-ocrbdef.mp msk-ocrbmac.mp msk-ocrb10xfg.pfb: msk-ocrb10xfg.mp msk-ocrbdef.mp msk-ocrbmac.mp msk-ocrb10xbg.pfb: msk-ocrb10xbg.mp msk-ocrbdef.mp msk-ocrbmac.mp %.rmo: %.pfb rmo.pe $(AM_V_at)$(TSU_V_RMO)$(FONTFORGE) $(mvp)/rmo.pe $*.pfb $(TSU_V_REDIR) $(AM_V_at)touch $*.rmo msk-ocra10.rmo: msk-ocra10.pfb msk-ocrb10.rmo: msk-ocrb10.pfb msk-ocrb10ebg.rmo: msk-ocrb10ebg.pfb msk-ocrb10efg.rmo: msk-ocrb10efg.pfb msk-ocrb10fbg.rmo: msk-ocrb10fbg.pfb msk-ocrb10ffg.rmo: msk-ocrb10ffg.pfb msk-ocrb10l.rmo: msk-ocrb10l.pfb msk-ocrb10s.rmo: msk-ocrb10s.pfb msk-ocrb10xbg.rmo: msk-ocrb10xbg.pfb msk-ocrb10xfg.rmo: msk-ocrb10xfg.pfb ############################################################################ # FONTS OCRA.pfb OCRA.afm OCRA.ttf OCRA.otf: msk-ocra10.rmo \ ocra-@ae_arg_okay@.pe ocra.fea $(AM_V_at)$(TSU_V_OTF)$(FONTFORGE) \ $(mvp)/ocra-@ae_arg_okay@.pe \ $(mvp)/ocra.fea $(TSU_V_REDIR) OCRB.pfb OCRB.afm OCRB.ttf OCRB.otf: \ msk-ocrb10.rmo ocrb-@ae_arg_okay@.pe ocrbnames.pe ocrb.fea $(AM_V_at)$(TSU_V_OTF)$(FONTFORGE) \ $(mvp)/ocrb-@ae_arg_okay@.pe '' '' "Regular" 0 \ $(mvp)/ocrb.fea $(TSU_V_REDIR) OCRBE.pfb OCRBE.afm OCRBE.ttf OCRBE.otf: \ msk-ocrb10efg.rmo msk-ocrb10ebg.rmo \ ocrb-@ae_arg_okay@.pe ocrbnames.pe ocrb.fea $(AM_V_at)$(TSU_V_OTF)$(FONTFORGE) \ $(mvp)/ocrb-@ae_arg_okay@.pe 'e' 'E' "Inverted Sharp" 1 \ $(mvp)/ocrb.fea $(TSU_V_REDIR) OCRBF.pfb OCRBF.afm OCRBF.ttf OCRBF.otf: \ msk-ocrb10ffg.rmo msk-ocrb10fbg.rmo \ ocrb-@ae_arg_okay@.pe ocrbnames.pe ocrb.fea $(AM_V_at)$(TSU_V_OTF)$(FONTFORGE) \ $(mvp)/ocrb-@ae_arg_okay@.pe 'f' 'F' "Outline" 1 \ $(mvp)/ocrb.fea $(TSU_V_REDIR) OCRBG.pfb OCRBG.afm OCRBG.ttf OCRBG.otf: \ msk-ocrb10g.rmo ocrb-@ae_arg_okay@.pe ocrbnames.pe ocrb.fea $(AM_V_at)$(TSU_V_OTF)$(FONTFORGE) \ $(mvp)/ocrb-@ae_arg_okay@.pe 'g' 'G' "Slanted Outline" 0 \ $(mvp)/ocrb.fea $(TSU_V_REDIR) OCRBL.pfb OCRBL.afm OCRBL.ttf OCRBL.otf: \ msk-ocrb10l.rmo ocrb-@ae_arg_okay@.pe ocrbnames.pe ocrb.fea $(AM_V_at)$(TSU_V_OTF)$(FONTFORGE) \ $(mvp)/ocrb-@ae_arg_okay@.pe 'l' 'L' "Slanted" 0 \ $(mvp)/ocrb.fea $(TSU_V_REDIR) OCRBS.pfb OCRBS.afm OCRBS.ttf OCRBS.otf: \ msk-ocrb10s.rmo ocrb-@ae_arg_okay@.pe ocrbnames.pe ocrb.fea $(AM_V_at)$(TSU_V_OTF)$(FONTFORGE) \ $(mvp)/ocrb-@ae_arg_okay@.pe 's' 'S' "Sharp" 0 \ $(mvp)/ocrb.fea $(TSU_V_REDIR) OCRBX.pfb OCRBX.afm OCRBX.ttf OCRBX.otf: \ msk-ocrb10xfg.rmo msk-ocrb10xbg.rmo \ ocrb-@ae_arg_okay@.pe ocrbnames.pe ocrb.fea $(AM_V_at)$(TSU_V_OTF)$(FONTFORGE) \ $(mvp)/ocrb-@ae_arg_okay@.pe 'x' 'X' "Inverted" 1 \ $(mvp)/ocrb.fea $(TSU_V_REDIR) ############################################################################ # PDF DOCUMENTATION ocr.pdf: OCRA.otf OCRB.otf ocr.tex $(AM_V_at)$(TSU_V_TEX)$(expect_start)$(XELATEX) $(mvp)/ocr$(expect_end) ############################################################################ # TESTING TESTS = $(dist_otf_DATA) $(dist_ttf_DATA) $(dist_type1_DATA) LOG_COMPILER = fontlint ############################################################################ # PARASITE BUILD if COND_PARASITE fntbase.mp: ../mp/fntbase.mp $(TSU_V_CP) cp $< $@ m4/ax_add_am_macro.m4: ../m4/ax_add_am_macro.m4 $(TSU_V_CP) cp $< $@ m4/ax_am_jobserver.m4: ../m4/ax_am_jobserver.m4 $(TSU_V_CP) cp $< $@ m4/ax_am_macros.m4: ../m4/ax_am_macros.m4 $(TSU_V_CP) cp $< $@ m4/ax_append_to_file.m4: ../m4/ax_append_to_file.m4 $(TSU_V_CP) cp $< $@ m4/ax_check_gnu_make.m4: ../m4/ax_check_gnu_make.m4 $(TSU_V_CP) cp $< $@ m4/ax_count_cpus.m4: ../m4/ax_count_cpus.m4 $(TSU_V_CP) cp $< $@ m4/ax_file_escapes.m4: ../m4/ax_file_escapes.m4 $(TSU_V_CP) cp $< $@ m4/ax_print_to_file.m4: ../m4/ax_print_to_file.m4 $(TSU_V_CP) cp $< $@ mp2pf: ../tools/mp2pf $(TSU_V_CP) cp $< $@ endif fonts-ocr-b-0.2~dfsg1/Makefile.in000066400000000000000000001211631275507450000167050ustar00rootroot00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 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@ # # Makefile source for OCR fonts # # This file (Makefile.am) is released to the public domain by its author, # Matthew Skala, but be aware that the generated Makefile may be subject # to claims by the Free Software Foundation or others. # # 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. # # Matthew Skala # http://ansuz.sooke.bc.ca/ # mskala@ansuz.sooke.bc.ca # ############################################################################ # BASIC AUTOTOOLS STUFF VPATH = @srcdir@ 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 = : subdir = . DIST_COMMON = $(am__configure_deps) $(am__dist_pdf_DATA_DIST) \ $(dist_afm_DATA) $(dist_noinst_SCRIPTS) $(dist_otf_DATA) \ $(dist_ttf_DATA) $(dist_type1_DATA) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(top_srcdir)/configure install-sh \ missing ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_add_am_macro.m4 \ $(top_srcdir)/m4/ax_am_jobserver.m4 \ $(top_srcdir)/m4/ax_am_macros.m4 \ $(top_srcdir)/m4/ax_append_to_file.m4 \ $(top_srcdir)/m4/ax_check_gnu_make.m4 \ $(top_srcdir)/m4/ax_count_cpus.m4 \ $(top_srcdir)/m4/ax_file_escapes.m4 \ $(top_srcdir)/m4/ax_print_to_file.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 = SCRIPTS = $(dist_noinst_SCRIPTS) AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(afmdir)" "$(DESTDIR)$(otfdir)" \ "$(DESTDIR)$(pdfdir)" "$(DESTDIR)$(ttfdir)" \ "$(DESTDIR)$(type1dir)" am__dist_pdf_DATA_DIST = ocr.pdf DATA = $(dist_afm_DATA) $(dist_otf_DATA) $(dist_pdf_DATA) \ $(dist_ttf_DATA) $(dist_type1_DATA) # If stdout is a non-dumb tty, use colors. If test -t is not supported, # then this fails; a conservative approach. Of course do not redirect # stdout here, just stderr. am__tty_colors = \ red=; grn=; lgn=; blu=; std=; \ test "X$(AM_COLOR_TESTS)" != Xno \ && test "X$$TERM" != Xdumb \ && { test "X$(AM_COLOR_TESTS)" = Xalways || test -t 1 2>/dev/null; } \ && { \ red=''; \ grn=''; \ lgn=''; \ blu=''; \ std=''; \ } # Restructured Text title and section. am__rst_title = sed 's/.*/ & /;h;s/./=/g;p;x;p;g;p;s/.*//' am__rst_section = sed 'p;s/./=/g;p;g' # Put stdin (possibly several lines separated by ". ") in a box. am__text_box = $(AWK) '{ \ n = split($$0, lines, "\\. "); max = 0; \ for (i = 1; i <= n; ++i) \ if (max < length(lines[i])) \ max = length(lines[i]); \ for (i = 0; i < max; ++i) line = line "="; \ print line; \ for (i = 1; i <= n; ++i) if (lines[i]) print lines[i];\ print line; \ }' # Solaris 10 'make', and several other traditional 'make' implementations, # pass "-e" to $(SHELL). This contradicts POSIX. Work around the problem # by disabling -e (using the XSI extension "set +e") if it's set. am__sh_e_setup = case $$- in *e*) set +e;; esac # To be inserted before the command running the test. Creates the # directory for the log if needed. Stores in $dir the directory # containing $f, in $tst the test, in $log the log, and passes # TESTS_ENVIRONMENT. Save and restore TERM around use of # TESTS_ENVIRONMENT, in case that unsets it. am__check_pre = \ $(am__sh_e_setup); \ $(am__vpath_adj_setup) $(am__vpath_adj) \ srcdir=$(srcdir); export srcdir; \ rm -f $@-t; \ trap 'st=$$?; rm -f '\''$(abs_builddir)/$@-t'\''; (exit $$st); exit $$st' \ 1 2 13 15; \ am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`; \ test "x$$am__odir" = x. || $(MKDIR_P) "$$am__odir" || exit $$?; \ if test -f "./$$f"; then dir=./; \ elif test -f "$$f"; then dir=; \ else dir="$(srcdir)/"; fi; \ tst=$$dir$$f; log='$@'; __SAVED_TERM=$$TERM; \ $(TESTS_ENVIRONMENT) RECHECK_LOGS = $(TEST_LOGS) AM_RECURSIVE_TARGETS = check check-html recheck recheck-html TEST_SUITE_LOG = test-suite.log TEST_SUITE_HTML = $(TEST_SUITE_LOG:.log=.html) TEST_EXTENSIONS = .test LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) am__test_logs1 = $(TESTS:=.log) TEST_LOGS = $(am__test_logs1:.test.log=.log) TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ $(TEST_LOG_FLAGS) TEST_LOGS_TMP = $(TEST_LOGS:.log=.log-t) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ { test ! -d "$(distdir)" \ || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr "$(distdir)"; }; } GZIP_ENV = --best DIST_ARCHIVES = $(distdir).zip distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMINCLUDE = @AMINCLUDE@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXPECT = @EXPECT@ FONTFORGE = @FONTFORGE@ GREP = @GREP@ INC_AMINCLUDE = @INC_AMINCLUDE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MPOST = @MPOST@ 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@ PERL = @PERL@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ T1ASM = @T1ASM@ VERSION = @VERSION@ XDVIPDFMX = @XDVIPDFMX@ XELATEX = @XELATEX@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ae_arg_okay = @ae_arg_okay@ afmdir = @afmdir@ am__leading_dot = @am__leading_dot@ am__tar = @am__tar@ am__untar = @am__untar@ andt = @andt@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ enable_docs = @enable_docs@ exec_prefix = @exec_prefix@ fontdir = @fontdir@ host_alias = @host_alias@ htmldir = @htmldir@ ifGNUmake = @ifGNUmake@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ otfdir = @otfdir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ release_date = @release_date@ 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@ ttfdir = @ttfdir@ type1dir = @type1dir@ ACLOCAL_AMFLAGS = -I m4 mvp := $(if $(VPATH),$(VPATH),.) empty := space := $(empty) $(empty) comma := , percent = % ############################################################################ # SILENT BUILD BLINKENLIGHTS TSU_V_REDIR = $(if $(AM_V_at),>& /dev/null) @COND_COLOUR_FALSE@ECHO_ANSI = echo @COND_COLOUR_TRUE@ECHO_ANSI = echo -e @COND_COLOUR_FALSE@ansi_default = @COND_COLOUR_TRUE@ansi_default = \e[0m @COND_COLOUR_FALSE@ansi_red = @COND_COLOUR_TRUE@ansi_red = \e[31m @COND_COLOUR_FALSE@ansi_green = @COND_COLOUR_TRUE@ansi_green = \e[32m @COND_COLOUR_FALSE@ansi_yellow = @COND_COLOUR_TRUE@ansi_yellow = \e[33m @COND_COLOUR_FALSE@ansi_blue = @COND_COLOUR_TRUE@ansi_blue = \e[34m @COND_COLOUR_FALSE@ansi_magenta = @COND_COLOUR_TRUE@ansi_magenta = \e[35m @COND_COLOUR_FALSE@ansi_cyan = @COND_COLOUR_TRUE@ansi_cyan = \e[36m @COND_COLOUR_FALSE@ansi_pink = @COND_COLOUR_TRUE@ansi_pink = \e[35;1m @COND_COLOUR_FALSE@ansi_white = @COND_COLOUR_TRUE@ansi_white = \e[37;1m @COND_COLOUR_FALSE@ansi_cleareol = @COND_COLOUR_TRUE@ansi_cleareol = \e[K @COND_COLOUR_FALSE@ansi_clearescaped = @COND_COLOUR_TRUE@ansi_clearescaped = \033\[K @COND_COLOUR_FALSE@ansi_home = @COND_COLOUR_TRUE@ansi_home = \e[1G @COND_COLOUR_TRUE@am__@andt@v_CC_0 = @echo -e "$(ansi_default)$(ansi_cleareol) CC " $@; @COND_COLOUR_TRUE@am__@andt@v_CCLD_0 = @echo -e "$(ansi_default)$(ansi_cleareol) CCLD " $@; @COND_COLOUR_TRUE@am__@andt@v_GEN_0 = @echo -e "$(ansi_default)$(ansi_cleareol) GEN " $@; TSU_V_CP = $(TSU_V_CP_$(V)) TSU_V_CP_ = $(TSU_V_CP_$(AM_DEFAULT_VERBOSITY)) TSU_V_CP_0 = @$(ECHO_ANSI) \ "$(ansi_cleareol) $(ansi_default)CP$(ansi_default) " $@; TSU_V_MT1 = $(TSU_V_MT1_$(V)) TSU_V_MT1_ = $(TSU_V_MT1_$(AM_DEFAULT_VERBOSITY)) TSU_V_MT1_0 = $(ECHO_ANSI) \ "$(ansi_cleareol) $(ansi_blue)MT1$(ansi_default) " $@; TSU_V_NAPERL = $(TSU_V_NAPERL_$(V)) TSU_V_NAPERL_ = $(TSU_V_NAPERL_$(AM_DEFAULT_VERBOSITY)) TSU_V_NAPERL_0 = $(ECHO_ANSI) \ "$(ansi_cleareol) $(ansi_magenta)PERL$(ansi_default) " $@; TSU_V_OTF = $(TSU_V_OTF_$(V)) TSU_V_OTF_ = $(TSU_V_OTF_$(AM_DEFAULT_VERBOSITY)) TSU_V_OTF_0 = $(ECHO_ANSI) \ "$(ansi_cleareol) $(ansi_cyan)OTF$(ansi_default) " $@; TSU_V_RMO = $(TSU_V_RMO_$(V)) TSU_V_RMO_ = $(TSU_V_RMO_$(AM_DEFAULT_VERBOSITY)) TSU_V_RMO_0 = $(ECHO_ANSI) \ "$(ansi_cleareol) $(ansi_cyan)RMO$(ansi_default) " $@; TSU_V_TEX = $(TSU_V_TEX_$(V)) TSU_V_TEX_ = $(TSU_V_TEX_$(AM_DEFAULT_VERBOSITY)) TSU_V_TEX_0 = @$(ECHO_ANSI) \ "$(ansi_cleareol) $(ansi_green)TEX$(ansi_default) " $@; TSU_V_TEXL = $(TSU_V_TEXL_$(V)) TSU_V_TEXL_ = $(TSU_V_TEXL_$(AM_DEFAULT_VERBOSITY)) TSU_V_TEXL_0 = $(ECHO_ANSI) \ "$(ansi_cleareol) $(ansi_green)TEX$(ansi_default) " "$@($$I)"; ############################################################################ # CONDITIONAL OPTIONS @COND_DOCS_TRUE@MAYBE_DOCS = ocr.pdf @COND_EXPECT_TRUE@expect_start = $(if $(AM_V_at),$(EXPECT) -c \ @COND_EXPECT_TRUE@ 'log_user 0 ; spawn -noecho sh -c ") @COND_EXPECT_FALSE@expect_end = $(TSU_V_REDIR) @COND_EXPECT_TRUE@expect_end = $(if $(AM_V_at), " ; \ @COND_EXPECT_TRUE@ expect -timeout -1 \ @COND_EXPECT_TRUE@ -re "\n! " {exit 1} \ @COND_EXPECT_TRUE@ -re "PROGRESS:(\[^\n\]*)\n" \ @COND_EXPECT_TRUE@ {puts -nonewline \ @COND_EXPECT_TRUE@ "$(ansi_clearescaped)$$expect_out(1,string)\r"; \ @COND_EXPECT_TRUE@ flush stdout;exp_continue} \ @COND_EXPECT_TRUE@ eof' ) ############################################################################ # FILENAMES FOR AUTOTOOLS # we need a "built source" to make jobserver mode work, for stupid reasons BUILT_SOURCES = Makefile # QVFG and FPEVCGF are DIST and SCRIPTS in ROT13, to keep Automake # from recognizing them STANDALONE_QVFG := fntbase.mp EXTRA_DIST := \ $(if $(filter $(distdir),$(top_distdir)),$(STANDALONE_QVFG)) \ $(wildcard $(mvp)/*.mp) \ ocr.tex ocra.fea ocrb.fea STANDALONE_FPEVCGF := mp2pf dist_noinst_SCRIPTS := \ $(if $(filter $(distdir),$(top_distdir)),$(STANDALONE_FPEVCGF)) \ ocra-no.pe ocra-yes.pe ocrb-no.pe ocrb-yes.pe ocrbnames.pe rmo.pe dist_pdf_DATA = $(MAYBE_DOCS) dist_otf_DATA = OCRA.otf \ OCRB.otf OCRBE.otf OCRBF.otf OCRBL.otf OCRBS.otf OCRBX.otf dist_ttf_DATA = OCRA.ttf \ OCRB.ttf OCRBE.ttf OCRBF.ttf OCRBL.ttf OCRBS.ttf OCRBX.ttf dist_type1_DATA = OCRA.pfb \ OCRB.pfb OCRBE.pfb OCRBF.pfb OCRBL.pfb OCRBS.pfb OCRBX.pfb dist_afm_DATA = $(patsubst %.pfb,%.afm,$(dist_type1_DATA)) ############################################################################ # MAKE CLEAN MOSTLYCLEANFILES = \ *.afm *.otf *.pfb *.rmo *.ttf \ ocr.aux ocr.log ocr.out ocr.pdf DISTCLEANFILES = \ aminclude.am ffaetest.pe ############################################################################ # TESTING TESTS = $(dist_otf_DATA) $(dist_ttf_DATA) $(dist_type1_DATA) LOG_COMPILER = fontlint all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: .SUFFIXES: .html .log .test am--refresh: @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.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; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): install-dist_afmDATA: $(dist_afm_DATA) @$(NORMAL_INSTALL) test -z "$(afmdir)" || $(MKDIR_P) "$(DESTDIR)$(afmdir)" @list='$(dist_afm_DATA)'; test -n "$(afmdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(afmdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(afmdir)" || exit $$?; \ done uninstall-dist_afmDATA: @$(NORMAL_UNINSTALL) @list='$(dist_afm_DATA)'; test -n "$(afmdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(afmdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(afmdir)" && rm -f $$files install-dist_otfDATA: $(dist_otf_DATA) @$(NORMAL_INSTALL) test -z "$(otfdir)" || $(MKDIR_P) "$(DESTDIR)$(otfdir)" @list='$(dist_otf_DATA)'; test -n "$(otfdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(otfdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(otfdir)" || exit $$?; \ done uninstall-dist_otfDATA: @$(NORMAL_UNINSTALL) @list='$(dist_otf_DATA)'; test -n "$(otfdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(otfdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(otfdir)" && rm -f $$files install-dist_pdfDATA: $(dist_pdf_DATA) @$(NORMAL_INSTALL) test -z "$(pdfdir)" || $(MKDIR_P) "$(DESTDIR)$(pdfdir)" @list='$(dist_pdf_DATA)'; test -n "$(pdfdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pdfdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(pdfdir)" || exit $$?; \ done uninstall-dist_pdfDATA: @$(NORMAL_UNINSTALL) @list='$(dist_pdf_DATA)'; test -n "$(pdfdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(pdfdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(pdfdir)" && rm -f $$files install-dist_ttfDATA: $(dist_ttf_DATA) @$(NORMAL_INSTALL) test -z "$(ttfdir)" || $(MKDIR_P) "$(DESTDIR)$(ttfdir)" @list='$(dist_ttf_DATA)'; test -n "$(ttfdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(ttfdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(ttfdir)" || exit $$?; \ done uninstall-dist_ttfDATA: @$(NORMAL_UNINSTALL) @list='$(dist_ttf_DATA)'; test -n "$(ttfdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(ttfdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(ttfdir)" && rm -f $$files install-dist_type1DATA: $(dist_type1_DATA) @$(NORMAL_INSTALL) test -z "$(type1dir)" || $(MKDIR_P) "$(DESTDIR)$(type1dir)" @list='$(dist_type1_DATA)'; test -n "$(type1dir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(type1dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(type1dir)" || exit $$?; \ done uninstall-dist_type1DATA: @$(NORMAL_UNINSTALL) @list='$(dist_type1_DATA)'; test -n "$(type1dir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(type1dir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(type1dir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: # To be appended to the command running the test. Handle the stdout # and stderr redirection, and catch the exit status. am__check_post = \ >$@-t 2>&1; \ estatus=$$?; \ if test -n '$(DISABLE_HARD_ERRORS)' \ && test $$estatus -eq 99; then \ estatus=1; \ fi; \ TERM=$$__SAVED_TERM; export TERM; \ $(am__tty_colors); \ xfailed=PASS; \ case " $(XFAIL_TESTS) " in \ *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ xfailed=XFAIL;; \ esac; \ case $$estatus:$$xfailed in \ 0:XFAIL) col=$$red; res=XPASS;; \ 0:*) col=$$grn; res=PASS ;; \ 77:*) col=$$blu; res=SKIP ;; \ 99:*) col=$$red; res=FAIL ;; \ *:XFAIL) col=$$lgn; res=XFAIL;; \ *:*) col=$$red; res=FAIL ;; \ esac; \ echo "$${col}$$res$${std}: $$f"; \ echo "$$res: $$f (exit: $$estatus)" | \ $(am__rst_section) >$@; \ cat $@-t >>$@; \ rm -f $@-t $(TEST_SUITE_LOG): $(TEST_LOGS) @$(am__sh_e_setup); \ list='$(TEST_LOGS)'; \ results=`for f in $$list; do \ read line < $$f && echo "$$line" || echo FAIL; \ done`; \ all=`echo "$$results" | sed '/^$$/d' | wc -l | sed -e 's/^[ ]*//'`; \ fail=`echo "$$results" | grep -c '^FAIL'`; \ pass=`echo "$$results" | grep -c '^PASS'`; \ skip=`echo "$$results" | grep -c '^SKIP'`; \ xfail=`echo "$$results" | grep -c '^XFAIL'`; \ xpass=`echo "$$results" | grep -c '^XPASS'`; \ failures=`expr $$fail + $$xpass`; \ all=`expr $$all - $$skip`; \ if test "$$all" -eq 1; then tests=test; All=; \ else tests=tests; All="All "; fi; \ case fail=$$fail:xpass=$$xpass:xfail=$$xfail in \ fail=0:xpass=0:xfail=0) \ msg="$$All$$all $$tests passed. "; \ exit=true;; \ fail=0:xpass=0:xfail=*) \ msg="$$All$$all $$tests behaved as expected"; \ if test "$$xfail" -eq 1; then xfailures=failure; \ else xfailures=failures; fi; \ msg="$$msg ($$xfail expected $$xfailures). "; \ exit=true;; \ fail=*:xpass=0:xfail=*) \ msg="$$fail of $$all $$tests failed. "; \ exit=false;; \ fail=*:xpass=*:xfail=*) \ msg="$$failures of $$all $$tests did not behave as expected"; \ if test "$$xpass" -eq 1; then xpasses=pass; \ else xpasses=passes; fi; \ msg="$$msg ($$xpass unexpected $$xpasses). "; \ exit=false;; \ *) \ echo >&2 "incorrect case"; exit 4;; \ esac; \ if test "$$skip" -ne 0; then \ if test "$$skip" -eq 1; then \ msg="$$msg($$skip test was not run). "; \ else \ msg="$$msg($$skip tests were not run). "; \ fi; \ fi; \ { \ echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ $(am__rst_title); \ echo "$$msg"; \ echo; \ echo ".. contents:: :depth: 2"; \ echo; \ for f in $$list; do \ read line < $$f; \ case $$line in \ PASS:*|XFAIL:*);; \ *) echo; cat $$f;; \ esac; \ done; \ } >$(TEST_SUITE_LOG).tmp; \ mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ if test "$$failures" -ne 0; then \ msg="$${msg}See $(subdir)/$(TEST_SUITE_LOG). "; \ if test -n "$(PACKAGE_BUGREPORT)"; then \ msg="$${msg}Please report to $(PACKAGE_BUGREPORT). "; \ fi; \ fi; \ test x"$$VERBOSE" = x || $$exit || cat $(TEST_SUITE_LOG); \ $(am__tty_colors); \ if $$exit; then \ echo $(ECHO_N) "$$grn$(ECHO_C)"; \ else \ echo $(ECHO_N) "$$red$(ECHO_C)"; \ fi; \ echo "$$msg" | $(am__text_box); \ echo $(ECHO_N) "$$std$(ECHO_C)"; \ $$exit # Run all the tests. check-TESTS: @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @list='$(TEST_LOGS)'; \ list=`for f in $$list; do \ test .log = $$f || echo $$f; \ done | tr '\012\015' ' '`; \ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$list" .log.html: @list='$(RST2HTML) $$RST2HTML rst2html rst2html.py'; \ for r2h in $$list; do \ if ($$r2h --version) >/dev/null 2>&1; then \ R2H=$$r2h; \ fi; \ done; \ if test -z "$$R2H"; then \ echo >&2 "cannot find rst2html, cannot create $@"; \ exit 2; \ fi; \ $$R2H $< >$@.tmp @mv $@.tmp $@ # Be sure to run check first, and then to convert the result. # Beware of concurrent executions. Run "check" not "check-TESTS", as # check-SCRIPTS and other dependencies are rebuilt by the former only. # And expect check to fail. check-html: @if $(MAKE) $(AM_MAKEFLAGS) check; then \ rv=0; else rv=$$?; \ fi; \ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_HTML) || exit 4; \ exit $$rv recheck recheck-html: @target=`echo $@ | sed 's,^re,,'`; \ list='$(TEST_LOGS)'; \ list=`for f in $$list; do \ test -f $$f || continue; \ if read line < $$f; then \ case $$line in FAIL*|XPASS*) echo $$f;; esac; \ else echo $$f; fi; \ done | tr '\012\015' ' '`; \ $(MAKE) $(AM_MAKEFLAGS) $$target AM_MAKEFLAGS='$(AM_MAKEFLAGS) TEST_LOGS="'"$$list"'"' OCRA.otf.log: OCRA.otf @p='OCRA.otf'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post) OCRB.otf.log: OCRB.otf @p='OCRB.otf'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post) OCRBE.otf.log: OCRBE.otf @p='OCRBE.otf'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post) OCRBF.otf.log: OCRBF.otf @p='OCRBF.otf'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post) OCRBL.otf.log: OCRBL.otf @p='OCRBL.otf'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post) OCRBS.otf.log: OCRBS.otf @p='OCRBS.otf'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post) OCRBX.otf.log: OCRBX.otf @p='OCRBX.otf'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post) OCRA.ttf.log: OCRA.ttf @p='OCRA.ttf'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post) OCRB.ttf.log: OCRB.ttf @p='OCRB.ttf'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post) OCRBE.ttf.log: OCRBE.ttf @p='OCRBE.ttf'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post) OCRBF.ttf.log: OCRBF.ttf @p='OCRBF.ttf'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post) OCRBL.ttf.log: OCRBL.ttf @p='OCRBL.ttf'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post) OCRBS.ttf.log: OCRBS.ttf @p='OCRBS.ttf'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post) OCRBX.ttf.log: OCRBX.ttf @p='OCRBX.ttf'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post) OCRA.pfb.log: OCRA.pfb @p='OCRA.pfb'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post) OCRB.pfb.log: OCRB.pfb @p='OCRB.pfb'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post) OCRBE.pfb.log: OCRBE.pfb @p='OCRBE.pfb'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post) OCRBF.pfb.log: OCRBF.pfb @p='OCRBF.pfb'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post) OCRBL.pfb.log: OCRBL.pfb @p='OCRBL.pfb'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post) OCRBS.pfb.log: OCRBS.pfb @p='OCRBS.pfb'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post) OCRBX.pfb.log: OCRBX.pfb @p='OCRBX.pfb'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post) .test.log: @p='$<'; $(am__check_pre) $(TEST_LOG_COMPILE) "$$tst" $(am__check_post) 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 -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__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-lzma: distdir tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma $(am__remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__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.lzma*) \ lzma -dc $(distdir).tar.lzma | $(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 a+w $(distdir) mkdir $(distdir)/_build mkdir $(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" \ $(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__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: @$(am__cd) '$(distuninstallcheck_dir)' \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { 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 $(MAKE) $(AM_MAKEFLAGS) check-TESTS check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-am all-am: Makefile $(SCRIPTS) $(DATA) installdirs: for dir in "$(DESTDIR)$(afmdir)" "$(DESTDIR)$(otfdir)" "$(DESTDIR)$(pdfdir)" "$(DESTDIR)$(ttfdir)" "$(DESTDIR)$(type1dir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) 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: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) -test -z "$(TEST_LOGS_TMP)" || rm -f $(TEST_LOGS_TMP) -test -z "$(TEST_SUITE_HTML)" || rm -f $(TEST_SUITE_HTML) -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) clean-generic: 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) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) clean: clean-am clean-am: clean-generic 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-dist_afmDATA install-dist_otfDATA \ install-dist_pdfDATA install-dist_ttfDATA \ install-dist_type1DATA 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: uninstall-dist_afmDATA uninstall-dist_otfDATA \ uninstall-dist_pdfDATA uninstall-dist_ttfDATA \ uninstall-dist_type1DATA .MAKE: all check check-am check-html install install-am install-strip \ recheck recheck-html .PHONY: all all-am am--refresh check check-TESTS check-am check-html \ clean clean-generic dist dist-all dist-bzip2 dist-gzip \ dist-lzma 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-dist_afmDATA install-dist_otfDATA install-dist_pdfDATA \ install-dist_ttfDATA install-dist_type1DATA 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 recheck recheck-html \ uninstall uninstall-am uninstall-dist_afmDATA \ uninstall-dist_otfDATA uninstall-dist_pdfDATA \ uninstall-dist_ttfDATA uninstall-dist_type1DATA @SET_MAKE@ @INC_AMINCLUDE@ ############################################################################ # POSTSCRIPT FONTS %.pfb: %.mp \ mp2pf @T1ASM@ \ fntbase.mp $(AM_V_at)$(TSU_V_MT1) \ $(MKDIR_P) $*.tmp ; \ $(LN_S) -f $(realpath $(mvp))/*.mp $*.tmp/ ; \ $(LN_S) -f $(realpath .)/*.mp $*.tmp/ ; \ (cd $*.tmp ; $(expect_start)$(MPOST) $*.mp$(expect_end) ) ; \ if $(GREP) -q '^! ' $*.tmp/$*.log ; then exit 1 ; fi ; \ $(TSU_V_NAPERL) \ $(PERL) -CSD $(mvp)/mp2pf $*.tmp/$* $(TSU_V_REDIR) ; \ (cd $*.tmp ; $(realpath @T1ASM@) -b $*.p $*.pfb ) ; \ if test -r $*.tmp/$*.pfb \ && $(GREP) -q 'output files\? written' $*.tmp/$*.log; then \ mv -f $*.tmp/$*.pfb . ; \ else \ echo "ERROR BUILDING" $@ ; \ exit 1 ; \ fi ; \ if test "x$(KEEPTMP)" = "x" ; then \ rm -rf $*.tmp ; \ fi msk-ocra10.pfb: msk-ocra10.mp msk-ocra.mp msk-ocrb10.pfb: msk-ocrb10.mp msk-ocrbdef.mp msk-ocrbmac.mp msk-ocrb10efg.pfb: msk-ocrb10efg.mp msk-ocrbdef.mp msk-ocrbmac.mp msk-ocrb10ebg.pfb: msk-ocrb10ebg.mp msk-ocrbdef.mp msk-ocrbmac.mp msk-ocrb10ffg.pfb: msk-ocrb10ffg.mp msk-ocrbdef.mp msk-ocrbmac.mp msk-ocrb10fbg.pfb: msk-ocrb10fbg.mp msk-ocrbdef.mp msk-ocrbmac.mp msk-ocrb10g.pfb: msk-ocrb10g.mp msk-ocrbdef.mp msk-ocrbmac.mp msk-ocrb10l.pfb: msk-ocrb10l.mp msk-ocrbdef.mp msk-ocrbmac.mp msk-ocrb10s.pfb: msk-ocrb10s.mp msk-ocrbdef.mp msk-ocrbmac.mp msk-ocrb10xfg.pfb: msk-ocrb10xfg.mp msk-ocrbdef.mp msk-ocrbmac.mp msk-ocrb10xbg.pfb: msk-ocrb10xbg.mp msk-ocrbdef.mp msk-ocrbmac.mp %.rmo: %.pfb rmo.pe $(AM_V_at)$(TSU_V_RMO)$(FONTFORGE) $(mvp)/rmo.pe $*.pfb $(TSU_V_REDIR) $(AM_V_at)touch $*.rmo msk-ocra10.rmo: msk-ocra10.pfb msk-ocrb10.rmo: msk-ocrb10.pfb msk-ocrb10ebg.rmo: msk-ocrb10ebg.pfb msk-ocrb10efg.rmo: msk-ocrb10efg.pfb msk-ocrb10fbg.rmo: msk-ocrb10fbg.pfb msk-ocrb10ffg.rmo: msk-ocrb10ffg.pfb msk-ocrb10l.rmo: msk-ocrb10l.pfb msk-ocrb10s.rmo: msk-ocrb10s.pfb msk-ocrb10xbg.rmo: msk-ocrb10xbg.pfb msk-ocrb10xfg.rmo: msk-ocrb10xfg.pfb ############################################################################ # FONTS OCRA.pfb OCRA.afm OCRA.ttf OCRA.otf: msk-ocra10.rmo \ ocra-@ae_arg_okay@.pe ocra.fea $(AM_V_at)$(TSU_V_OTF)$(FONTFORGE) \ $(mvp)/ocra-@ae_arg_okay@.pe \ $(mvp)/ocra.fea $(TSU_V_REDIR) OCRB.pfb OCRB.afm OCRB.ttf OCRB.otf: \ msk-ocrb10.rmo ocrb-@ae_arg_okay@.pe ocrbnames.pe ocrb.fea $(AM_V_at)$(TSU_V_OTF)$(FONTFORGE) \ $(mvp)/ocrb-@ae_arg_okay@.pe '' '' "Regular" 0 \ $(mvp)/ocrb.fea $(TSU_V_REDIR) OCRBE.pfb OCRBE.afm OCRBE.ttf OCRBE.otf: \ msk-ocrb10efg.rmo msk-ocrb10ebg.rmo \ ocrb-@ae_arg_okay@.pe ocrbnames.pe ocrb.fea $(AM_V_at)$(TSU_V_OTF)$(FONTFORGE) \ $(mvp)/ocrb-@ae_arg_okay@.pe 'e' 'E' "Inverted Sharp" 1 \ $(mvp)/ocrb.fea $(TSU_V_REDIR) OCRBF.pfb OCRBF.afm OCRBF.ttf OCRBF.otf: \ msk-ocrb10ffg.rmo msk-ocrb10fbg.rmo \ ocrb-@ae_arg_okay@.pe ocrbnames.pe ocrb.fea $(AM_V_at)$(TSU_V_OTF)$(FONTFORGE) \ $(mvp)/ocrb-@ae_arg_okay@.pe 'f' 'F' "Outline" 1 \ $(mvp)/ocrb.fea $(TSU_V_REDIR) OCRBG.pfb OCRBG.afm OCRBG.ttf OCRBG.otf: \ msk-ocrb10g.rmo ocrb-@ae_arg_okay@.pe ocrbnames.pe ocrb.fea $(AM_V_at)$(TSU_V_OTF)$(FONTFORGE) \ $(mvp)/ocrb-@ae_arg_okay@.pe 'g' 'G' "Slanted Outline" 0 \ $(mvp)/ocrb.fea $(TSU_V_REDIR) OCRBL.pfb OCRBL.afm OCRBL.ttf OCRBL.otf: \ msk-ocrb10l.rmo ocrb-@ae_arg_okay@.pe ocrbnames.pe ocrb.fea $(AM_V_at)$(TSU_V_OTF)$(FONTFORGE) \ $(mvp)/ocrb-@ae_arg_okay@.pe 'l' 'L' "Slanted" 0 \ $(mvp)/ocrb.fea $(TSU_V_REDIR) OCRBS.pfb OCRBS.afm OCRBS.ttf OCRBS.otf: \ msk-ocrb10s.rmo ocrb-@ae_arg_okay@.pe ocrbnames.pe ocrb.fea $(AM_V_at)$(TSU_V_OTF)$(FONTFORGE) \ $(mvp)/ocrb-@ae_arg_okay@.pe 's' 'S' "Sharp" 0 \ $(mvp)/ocrb.fea $(TSU_V_REDIR) OCRBX.pfb OCRBX.afm OCRBX.ttf OCRBX.otf: \ msk-ocrb10xfg.rmo msk-ocrb10xbg.rmo \ ocrb-@ae_arg_okay@.pe ocrbnames.pe ocrb.fea $(AM_V_at)$(TSU_V_OTF)$(FONTFORGE) \ $(mvp)/ocrb-@ae_arg_okay@.pe 'x' 'X' "Inverted" 1 \ $(mvp)/ocrb.fea $(TSU_V_REDIR) ############################################################################ # PDF DOCUMENTATION ocr.pdf: OCRA.otf OCRB.otf ocr.tex $(AM_V_at)$(TSU_V_TEX)$(expect_start)$(XELATEX) $(mvp)/ocr$(expect_end) ############################################################################ # PARASITE BUILD @COND_PARASITE_TRUE@fntbase.mp: ../mp/fntbase.mp @COND_PARASITE_TRUE@ $(TSU_V_CP) cp $< $@ @COND_PARASITE_TRUE@m4/ax_add_am_macro.m4: ../m4/ax_add_am_macro.m4 @COND_PARASITE_TRUE@ $(TSU_V_CP) cp $< $@ @COND_PARASITE_TRUE@m4/ax_am_jobserver.m4: ../m4/ax_am_jobserver.m4 @COND_PARASITE_TRUE@ $(TSU_V_CP) cp $< $@ @COND_PARASITE_TRUE@m4/ax_am_macros.m4: ../m4/ax_am_macros.m4 @COND_PARASITE_TRUE@ $(TSU_V_CP) cp $< $@ @COND_PARASITE_TRUE@m4/ax_append_to_file.m4: ../m4/ax_append_to_file.m4 @COND_PARASITE_TRUE@ $(TSU_V_CP) cp $< $@ @COND_PARASITE_TRUE@m4/ax_check_gnu_make.m4: ../m4/ax_check_gnu_make.m4 @COND_PARASITE_TRUE@ $(TSU_V_CP) cp $< $@ @COND_PARASITE_TRUE@m4/ax_count_cpus.m4: ../m4/ax_count_cpus.m4 @COND_PARASITE_TRUE@ $(TSU_V_CP) cp $< $@ @COND_PARASITE_TRUE@m4/ax_file_escapes.m4: ../m4/ax_file_escapes.m4 @COND_PARASITE_TRUE@ $(TSU_V_CP) cp $< $@ @COND_PARASITE_TRUE@m4/ax_print_to_file.m4: ../m4/ax_print_to_file.m4 @COND_PARASITE_TRUE@ $(TSU_V_CP) cp $< $@ @COND_PARASITE_TRUE@mp2pf: ../tools/mp2pf @COND_PARASITE_TRUE@ $(TSU_V_CP) cp $< $@ # 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: fonts-ocr-b-0.2~dfsg1/aclocal.m4000066400000000000000000000614021275507450000164770ustar00rootroot00000000000000# generated automatically by aclocal 1.11.1 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2007, 2008, 2009 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_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],, [m4_warning([this file was generated for autoconf 2.68. 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, 2003, 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. # 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.11' 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.11.1], [], [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.11.1])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, 2003, 2005 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_COND_IF -*- Autoconf -*- # Copyright (C) 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. # serial 1 # _AM_COND_IF # _AM_COND_ELSE # _AM_COND_ENDIF # -------------- # These macros are only used for tracing. m4_define([_AM_COND_IF]) m4_define([_AM_COND_ELSE]) m4_define([_AM_COND_ENDIF]) # AM_COND_IF(COND, [IF-TRUE], [IF-FALSE]) # --------------------------------------- # If the shell condition matching COND is true, execute IF-TRUE, # otherwise execute IF-FALSE. Allow automake to learn about conditional # instantiating macros (the AC_CONFIG_FOOS). AC_DEFUN([AM_COND_IF], [m4_ifndef([_AM_COND_VALUE_$1], [m4_fatal([$0: no such condition "$1"])])dnl _AM_COND_IF([$1])dnl if _AM_COND_VALUE_$1; then m4_default([$2], [:]) m4_ifval([$3], [_AM_COND_ELSE([$1])dnl else $3 ])dnl _AM_COND_ENDIF([$1])dnl fi[]dnl ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 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. # serial 9 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl ifelse([$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])]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2008, 2009 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. # serial 16 # 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. # 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.62])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], [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], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, [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([AM_PROG_MKDIR_P])dnl # 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)], [define([AC_PROG_CC], defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES(OBJC)], [define([AC_PROG_OBJC], defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl ]) _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl dnl The `parallel-tests' driver may need to know about EXEEXT, so add the dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro dnl 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 ]) 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, 2003, 2005, 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. # 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, 2005 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. # serial 2 # 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])]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 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. # serial 6 # 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 supports --run. # If it does, 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 --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN([`missing' script is too old or missing]) fi ]) # Copyright (C) 2003, 2004, 2005, 2006 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_MKDIR_P # --------------- # Check for `mkdir -p'. AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.60])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, dnl while keeping a definition of mkdir_p for backward compatibility. dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of dnl Makefile.ins that do not define MKDIR_P, so we do our own dnl adjustment using top_builddir (which is defined more often than dnl MKDIR_P). AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl case $mkdir_p in [[\\/$]]* | ?:[[\\/]]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 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. # serial 4 # _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])]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 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. # serial 5 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # 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 ( 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 rm -f conftest.file 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 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)]) # Copyright (C) 2009 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. # serial 1 # 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], [ --enable-silent-rules less verbose build output (undo: `make V=1') --disable-silent-rules verbose build output (undo: `make V=0')]) 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 AC_SUBST([AM_DEFAULT_VERBOSITY])dnl AM_BACKSLASH='\' AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) # Copyright (C) 2001, 2003, 2005 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, 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. # serial 2 # _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, 2005 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. # serial 2 # _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. AM_MISSING_PROG([AMTAR], [tar]) m4_if([$1], [v7], [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' _am_tools=${am_cv_prog_tar_$1-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and # Solaris sh will not grok spaces in the rhs of `-'. 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 /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/ax_add_am_macro.m4]) m4_include([m4/ax_am_jobserver.m4]) m4_include([m4/ax_am_macros.m4]) m4_include([m4/ax_append_to_file.m4]) m4_include([m4/ax_check_gnu_make.m4]) m4_include([m4/ax_count_cpus.m4]) m4_include([m4/ax_file_escapes.m4]) m4_include([m4/ax_print_to_file.m4]) fonts-ocr-b-0.2~dfsg1/configure000077500000000000000000003470411275507450000165540ustar00rootroot00000000000000#! /bin/sh # From configure.ac Id: configure.ac 1723 2012-09-26 21:06:32Z mskala . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.68 for OCR 0.2. # # Report bugs to . # # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software # Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. # # public domain ## -------------------- ## ## 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 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" 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 test \$(( 1 + 1 )) = 2 || 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 : # 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 export CONFIG_SHELL 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+"$@"} 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 $0: mskala@ansuz.sooke.bc.ca about your system, including $0: any error possibly output before this message. Then $0: install a modern shell, or manually run the script $0: under such a shell if you do 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_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; } # 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 -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 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='mkdir -p "$as_dir"' 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'" test -n "$DJDIR" || exec 7<&0 &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='OCR' PACKAGE_TARNAME='ocr' PACKAGE_VERSION='0.2' PACKAGE_STRING='OCR 0.2' PACKAGE_BUGREPORT='mskala@ansuz.sooke.bc.ca' PACKAGE_URL='http://tsukurimashou.sourceforge.jp/' ac_unique_file="msk-ocra.mp" ac_subst_vars='LTLIBOBJS LIBOBJS andt ae_arg_okay enable_docs COND_DOCS_FALSE COND_DOCS_TRUE COND_COLOUR_FALSE COND_COLOUR_TRUE INC_AMINCLUDE AMINCLUDE EGREP COND_PARASITE_FALSE COND_PARASITE_TRUE XELATEX XDVIPDFMX T1ASM PERL MPOST ifGNUmake FONTFORGE COND_EXPECT_FALSE COND_EXPECT_TRUE EXPECT LN_S GREP release_date AM_BACKSLASH AM_DEFAULT_VERBOSITY 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 afmdir type1dir ttfdir otfdir fontdir 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_jobserver enable_colour_build enable_color_build enable_docs ' ac_precious_vars='build_alias host_alias target_alias EXPECT FONTFORGE MPOST PERL T1ASM XDVIPDFMX XELATEX' # 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' fontdir='${datarootdir}/fonts' otfdir='${fontdir}/OTF' ttfdir='${fontdir}/TTF' type1dir='${fontdir}/type1' afmdir='${fontdir}/afm' 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 ;; # Deleted bindir option -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 ;; # Deleted datadir option -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 ;; # Deleted dvidir option -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 ;; # Deleted exec-prefix option -fontdir | --fontdir | --fontdi | --fontd | --font | --fon | --fo | --f) ac_prev=fontdir ;; -fontdir=* | --fontdir=* | --fontdi=* | --fontd=* | --font=* | --fon=* | --fo=* | --f=*) fontdir=$ac_optarg ;; # Deleted obsolete gas option -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 ;; # Deleted htmldir option # Deleted includedir option # Deleted infodir option # Deleted libdir option # Deleted libexecdir option # Deleted localedir option # Deleted localstatedir option # Deleted mandir option # Deleted obsolete nfp option -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 ;; # Deleted oldincludedir option -afmdir | --afmdir | --afmdi | --afmd | --afm) ac_prev=afmdir ;; -afmdir=* | --afmdir=* | --afmdi=* | --afmd=* | --afm=*) afmdir=$ac_optarg ;; -type1dir | --type1dir | --type1di | --type1d | --type1 | --type | --typ | --ty) ac_prev=type1dir ;; -type1dir=* | --type1dir=* | --type1di=* | --type1d=* | --type1=* | --type=* | --typ=* | --ty=*) type1dir=$ac_optarg ;; -ttfdir | --ttfdir | --ttfdi | --ttfd | --ttf | --tt) ac_prev=ttfdir ;; -ttfdir=* | --ttfdir=* | --ttfdi=* | --ttfd=* | --ttf=* | --tt=*) ttfdir=$ac_optarg ;; -otfdir | --otfdir | --otfdi | --otfd | --otf | --ot) ac_prev=otfdir ;; -otfdir=* | --otfdir=* | --otfdi=* | --otfd=* | --otf=* | --ot=*) otfdir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; # Deleted program-prefix option # Deleted program-suffix option # Deleted program-transform-name option -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; # Deleted psdir option -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; # Deleted sbindir option # Deleted sharedstatedir option -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 ;; # Deleted sysconfdir option -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 ;; # Deleted obsolete -x option # Deleted x-includes option # Deleted x-libraries option -*) 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 prefix datarootdir fontdir otfdir ttfdir type1dir afmdir \ \ docdir pdfdir \ 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 $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_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 OCR 0.2. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some useful variables. Defaults 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 files in PREFIX [$ac_default_prefix] --datarootdir=DIR read-only data root [PREFIX/share] --fontdir=DIR fonts [DATAROOTDIR/fonts] --otfdir=DIR OpenType fonts [FONTDIR/OTF] --ttfdir=DIR TrueType fonts [FONTDIR/TTF] --type1dir=DIR Postscript Type 1 fonts [FONTDIR/type1] --afmdir=DIR Adobe Font Metrics [FONTDIR/afm] --docdir=DIR documentation root [DATAROOTDIR/doc/ocr] --pdfdir=DIR pdf documentation [DOCDIR] _ACEOF cat <<\_ACEOF _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of OCR 0.2:";; esac cat <<\_ACEOF Optional Features and Packages: --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] --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --enable-silent-rules less verbose build output (undo: `make V=1') --disable-silent-rules verbose build output (undo: `make V=0') --enable-jobserver[=no/yes/#] use up to # make jobs, yes=CPUs+1 [yes] --disable-colour-build turn off ANSI colour in build scripts --disable-docs turn off PDF documentation Some influential environment variables: EXPECT Expect FONTFORGE Fontforge MPOST MetaPost PERL Perl T1ASM t1asm XDVIPDFMX xdvipdfmx XELATEX XeLaTeX 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 . OCR home page: . _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 OCR configure 0.2 generated by GNU Autoconf 2.68 Copyright (C) 2010 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. public domain _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## 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 OCR $as_me 0.2, which was generated by GNU Autoconf 2.68. 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 . "$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_fn_error $? "cannot find install-sh, install.sh, or shtool in . \"$srcdir\"/." "$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.11' # 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 { 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 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; } # Just in case sleep 1 echo timestamp > conftest.file # 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 ( 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 rm -f conftest.file 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 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; } # 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 --run true"; then am_missing_run="$MISSING --run " 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 { 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:${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 { 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:${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 { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$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; } mkdir_p="$MKDIR_P" case $mkdir_p in [\\/$]* | ?:[\\/]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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_BACKSLASH='\' 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='ocr' VERSION='0.2' 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"} # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. AMTAR=${AMTAR-"${am_missing_run}tar"} am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' release_date="September 27, 2012" # 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_BACKSLASH='\' # ############################################################################ # # Checks for programs. # { $as_echo "$as_me:${as_lineno-$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 ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then 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 as_fn_arith $ac_count + 1 && ac_count=$as_val 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 if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$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:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 $as_echo "no, using $LN_S" >&6; } fi { $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 # Extract the first word of "autoconf", so it can be a program name with args. set dummy autoconf; 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_path_AUTOCONF+:} false; then : $as_echo_n "(cached) " >&6 else case $AUTOCONF in [\\/]* | ?:[\\/]*) ac_cv_path_AUTOCONF="$AUTOCONF" # 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_AUTOCONF="$as_dir/$ac_word$ac_exec_ext" $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 ;; esac fi AUTOCONF=$ac_cv_path_AUTOCONF if test -n "$AUTOCONF"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AUTOCONF" >&5 $as_echo "$AUTOCONF" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "automake", so it can be a program name with args. set dummy automake; 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_path_AUTOMAKE+:} false; then : $as_echo_n "(cached) " >&6 else case $AUTOMAKE in [\\/]* | ?:[\\/]*) ac_cv_path_AUTOMAKE="$AUTOMAKE" # 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_AUTOMAKE="$as_dir/$ac_word$ac_exec_ext" $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 ;; esac fi AUTOMAKE=$ac_cv_path_AUTOMAKE if test -n "$AUTOMAKE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AUTOMAKE" >&5 $as_echo "$AUTOMAKE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "expect", so it can be a program name with args. set dummy expect; 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_path_EXPECT+:} false; then : $as_echo_n "(cached) " >&6 else case $EXPECT in [\\/]* | ?:[\\/]*) ac_cv_path_EXPECT="$EXPECT" # 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_EXPECT="$as_dir/$ac_word$ac_exec_ext" $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 ;; esac fi EXPECT=$ac_cv_path_EXPECT if test -n "$EXPECT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $EXPECT" >&5 $as_echo "$EXPECT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test '!' "x$EXPECT" = "x"; then COND_EXPECT_TRUE= COND_EXPECT_FALSE='#' else COND_EXPECT_TRUE='#' COND_EXPECT_FALSE= fi # Extract the first word of "fontforge", so it can be a program name with args. set dummy fontforge; 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_path_FONTFORGE+:} false; then : $as_echo_n "(cached) " >&6 else case $FONTFORGE in [\\/]* | ?:[\\/]*) ac_cv_path_FONTFORGE="$FONTFORGE" # 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_FONTFORGE="$as_dir/$ac_word$ac_exec_ext" $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 ;; esac fi FONTFORGE=$ac_cv_path_FONTFORGE if test -n "$FONTFORGE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FONTFORGE" >&5 $as_echo "$FONTFORGE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU make" >&5 $as_echo_n "checking for GNU make... " >&6; } if ${_cv_gnu_make_command+:} false; then : $as_echo_n "(cached) " >&6 else _cv_gnu_make_command='' ; for a in "$MAKE" make gmake gnumake ; do if test -z "$a" ; then continue ; fi ; if ( sh -c "$a --version" 2> /dev/null | grep GNU 2>&1 > /dev/null ) ; then _cv_gnu_make_command=$a ; break; fi done ; fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_cv_gnu_make_command" >&5 $as_echo "$_cv_gnu_make_command" >&6; } ; if test "x$_cv_gnu_make_command" != "x" ; then ifGNUmake='' ; else ifGNUmake='#' ; { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"Not found\"" >&5 $as_echo "\"Not found\"" >&6; }; fi # Extract the first word of "mpost", so it can be a program name with args. set dummy mpost; 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_path_MPOST+:} false; then : $as_echo_n "(cached) " >&6 else case $MPOST in [\\/]* | ?:[\\/]*) ac_cv_path_MPOST="$MPOST" # 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_MPOST="$as_dir/$ac_word$ac_exec_ext" $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 ;; esac fi MPOST=$ac_cv_path_MPOST if test -n "$MPOST"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MPOST" >&5 $as_echo "$MPOST" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "perl", so it can be a program name with args. set dummy perl; 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_path_PERL+:} false; then : $as_echo_n "(cached) " >&6 else case $PERL in [\\/]* | ?:[\\/]*) ac_cv_path_PERL="$PERL" # 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_PERL="$as_dir/$ac_word$ac_exec_ext" $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 ;; esac fi PERL=$ac_cv_path_PERL if test -n "$PERL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5 $as_echo "$PERL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "xdvipdfmx", so it can be a program name with args. set dummy xdvipdfmx; 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_path_XDVIPDFMX+:} false; then : $as_echo_n "(cached) " >&6 else case $XDVIPDFMX in [\\/]* | ?:[\\/]*) ac_cv_path_XDVIPDFMX="$XDVIPDFMX" # 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_XDVIPDFMX="$as_dir/$ac_word$ac_exec_ext" $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 ;; esac fi XDVIPDFMX=$ac_cv_path_XDVIPDFMX if test -n "$XDVIPDFMX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XDVIPDFMX" >&5 $as_echo "$XDVIPDFMX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "xelatex", so it can be a program name with args. set dummy xelatex; 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_path_XELATEX+:} false; then : $as_echo_n "(cached) " >&6 else case $XELATEX in [\\/]* | ?:[\\/]*) ac_cv_path_XELATEX="$XELATEX" # 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_XELATEX="$as_dir/$ac_word$ac_exec_ext" $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 ;; esac fi XELATEX=$ac_cv_path_XELATEX if test -n "$XELATEX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XELATEX" >&5 $as_echo "$XELATEX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # ############################################################################ # # Check for parasite build # { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are building as a parasite" >&5 $as_echo_n "checking whether we are building as a parasite... " >&6; } if grep Tsukurimashou ../Makefile > /dev/null 2> /dev/null; then COND_PARASITE_TRUE= COND_PARASITE_FALSE='#' else COND_PARASITE_TRUE='#' COND_PARASITE_FALSE= fi if grep Tsukurimashou ../Makefile > /dev/null 2> /dev/null; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } T1ASM=../t1asm/t1asm else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # Extract the first word of "t1asm", so it can be a program name with args. set dummy t1asm; 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_path_T1ASM+:} false; then : $as_echo_n "(cached) " >&6 else case $T1ASM in [\\/]* | ?:[\\/]*) ac_cv_path_T1ASM="$T1ASM" # 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_T1ASM="$as_dir/$ac_word$ac_exec_ext" $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 ;; esac fi T1ASM=$ac_cv_path_T1ASM if test -n "$T1ASM"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $T1ASM" >&5 $as_echo "$T1ASM" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi # ############################################################################ # # Checks for system services # { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long file names" >&5 $as_echo_n "checking for long file names... " >&6; } if ${ac_cv_sys_long_file_names+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_sys_long_file_names=yes # Test for long file names in all the places we know might matter: # . the current directory, where building will happen # $prefix/lib where we will be installing things # $exec_prefix/lib likewise # $TMPDIR if set, where it might want to write temporary files # /tmp where it might want to write temporary files # /var/tmp likewise # /usr/tmp likewise for ac_dir in . "$TMPDIR" /tmp /var/tmp /usr/tmp "$prefix/lib" "$exec_prefix/lib"; do # Skip $TMPDIR if it is empty or bogus, and skip $exec_prefix/lib # in the usual case where exec_prefix is '${prefix}'. case $ac_dir in #( . | /* | ?:[\\/]*) ;; #( *) continue;; esac test -w "$ac_dir/." || continue # It is less confusing to not echo anything here. ac_xdir=$ac_dir/cf$$ (umask 077 && mkdir "$ac_xdir" 2>/dev/null) || continue ac_tf1=$ac_xdir/conftest9012345 ac_tf2=$ac_xdir/conftest9012346 touch "$ac_tf1" 2>/dev/null && test -f "$ac_tf1" && test ! -f "$ac_tf2" || ac_cv_sys_long_file_names=no rm -f -r "$ac_xdir" 2>/dev/null test $ac_cv_sys_long_file_names = no && break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_long_file_names" >&5 $as_echo "$ac_cv_sys_long_file_names" >&6; } if test $ac_cv_sys_long_file_names = yes; then $as_echo "#define HAVE_LONG_FILE_NAMES 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if ${ac_cv_path_EGREP+:} false; 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 if test -z "$EGREP"; then 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 as_fn_arith $ac_count + 1 && ac_count=$as_val 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 if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking the number of available CPUs" >&5 $as_echo_n "checking the number of available CPUs... " >&6; } CPU_COUNT="0" #On MacOS if test -x /usr/sbin/sysctl -a `/sbin/sysctl -a 2>/dev/null| grep -c hw.cpu`; then CPU_COUNT=`/usr/sbin/sysctl -n hw.ncpu` fi #On Linux if test "x$CPU_COUNT" = "x0" -a -e /proc/cpuinfo; then CPU_COUNT=`$EGREP -c '^processor' /proc/cpuinfo` fi if test "x$CPU_COUNT" = "x0"; then CPU_COUNT="1" { $as_echo "$as_me:${as_lineno-$LINENO}: result: unable to detect (assuming 1) " >&5 $as_echo "unable to detect (assuming 1) " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPU_COUNT " >&5 $as_echo "$CPU_COUNT " >&6; } fi AX_DOLLAR="\$" AX_SRB="\\135" AX_SLB="\\133" AX_BS="\\\\" AX_DQ="\"" { $as_echo "$as_me:${as_lineno-$LINENO}: adding automake macro support" >&5 $as_echo "$as_me: adding automake macro support" >&6;} AMINCLUDE="aminclude.am" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $AMINCLUDE" >&5 $as_echo "$as_me: creating $AMINCLUDE" >&6;} AMINCLUDE_TIME=`date` printf " # generated automatically by configure from AX_AUTOMAKE_MACROS # on $AMINCLUDE_TIME " > "$AMINCLUDE" INC_AMINCLUDE="include \$(top_builddir)/$AMINCLUDE" # Check whether --enable-jobserver was given. if test "${enable_jobserver+set}" = set; then : enableval=$enable_jobserver; else enable_jobserver=yes fi if test "x$enable_jobserver" = "xyes"; then : enable_jobserver=$CPU_COUNT ((enable_jobserver++)) fi if test "x$enable_jobserver" != "xno"; then : printf "AM_MAKEFLAGS += \$(if \$(filter -j\$(percent),\$(MAKEFLAGS)),,-j$enable_jobserver ) " >> "$AMINCLUDE" fi # ############################################################################ # # User-settable options # # Define user options # # Check whether --enable-colour-build was given. if test "${enable_colour_build+set}" = set; then : enableval=$enable_colour_build; else enable_colour_build=yes fi # Check whether --enable-color-build was given. if test "${enable_color_build+set}" = set; then : enableval=$enable_color_build; else enable_color_build=yes fi # Check whether --enable-docs was given. if test "${enable_docs+set}" = set; then : enableval=$enable_docs; else enable_docs=yes fi # # Process user options # tsu_colour=yes if test "x$enable_colour_build" = "xyes"; then : else tsu_colour=no fi if test "x$enable_color_build" = "xyes"; then : else tsu_colour=no fi if test '!' "$tsu_colour" = no; then COND_COLOUR_TRUE= COND_COLOUR_FALSE='#' else COND_COLOUR_TRUE='#' COND_COLOUR_FALSE= fi # if test '!' "$enable_docs" = no; then COND_DOCS_TRUE= COND_DOCS_FALSE='#' else COND_DOCS_TRUE='#' COND_DOCS_FALSE= fi # # if test "x$prefix" = "xNONE"; then : prefix="$ac_default_prefix" fi # if test "x$enable_silent_rules" = "x"; then : enable_silent_rules=yes AM_DEFAULT_VERBOSITY=0 fi # { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether FontForge accepts AddExtrema(1)" >&5 $as_echo_n "checking whether FontForge accepts AddExtrema(1)... " >&6; } echo '#!/usr/local/bin/fontforge' > ffaetest.pe echo 'New();AddExtrema(1);' >> ffaetest.pe if $FONTFORGE ffaetest.pe >& /dev/null; then : ae_arg_okay=yes else ae_arg_okay=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ae_arg_okay" >&5 $as_echo "$ae_arg_okay" >&6; } # ############################################################################ # # Generate output # 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 if test -z "${COND_EXPECT_TRUE}" && test -z "${COND_EXPECT_FALSE}"; then as_fn_error $? "conditional \"COND_EXPECT\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${COND_PARASITE_TRUE}" && test -z "${COND_PARASITE_FALSE}"; then as_fn_error $? "conditional \"COND_PARASITE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${COND_COLOUR_TRUE}" && test -z "${COND_COLOUR_FALSE}"; then as_fn_error $? "conditional \"COND_COLOUR\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${COND_DOCS_TRUE}" && test -z "${COND_DOCS_FALSE}"; then as_fn_error $? "conditional \"COND_DOCS\" 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 -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 else as_ln_s='cp -p' 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 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 ## ----------------------------------- ## ## 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 OCR $as_me 0.2, which was generated by GNU Autoconf 2.68. 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" _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 Report bugs to . OCR home page: ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ OCR config.status 0.2 configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\" Copyright (C) 2010 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 _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 "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 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` 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 ' >$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 " 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 ;; 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 fonts-ocr-b-0.2~dfsg1/configure.ac000066400000000000000000000224011275507450000171210ustar00rootroot00000000000000# -*- Autoconf -*- # Process this file with autoconf to produce a configure script. # # # Configuration source for OCR fonts # # This file (configure.ac) is released to the public domain by its author, # Matthew Skala, but be aware that the generated configure script may be # subject to claims by the Free Software Foundation or others. # # 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. # # Matthew Skala # http://ansuz.sooke.bc.ca/ # mskala@ansuz.sooke.bc.ca # # ############################################################################ # # Override Autoconf's argument parsing - must be done here, # before AC_INIT has a chance to run # # General macro for editing a definition m4_define([TSUKU_DEFINITION_SUBST], [m4_define([$1], m4_bpatsubst(m4_dquote(m4_defn([$1])), [$2], [$3]))]) # Delete an option from the argument parser m4_define([TSUKU_DELETE_CMDLINE_OPTION], [TSUKU_DEFINITION_SUBST([_AC_INIT_PARSE_ARGS], [\ -$1[^)]*)\ .*;;\ -$1=\*[^)]*)\ .*;;\ ], [\ # Deleted $1 option\ ]) TSUKU_DEFINITION_SUBST([_AC_INIT_PARSE_ARGS], [\ -$1[^)]*)\ # Obsolete.*\ .*;;\ ], [\ # Deleted obsolete $1 option\ ]) ]) # exec-prefix is special because it's an install dir option without "dir" TSUKU_DELETE_CMDLINE_OPTION([exec-prefix]) TSUKU_DEFINITION_SUBST([_AC_INIT_PARSE_ARGS], [for ac_var in\([^#]*\)\bexec_prefix\b], [for ac_var in\1]) # Delete unwanted non-install-dir options TSUKU_DELETE_CMDLINE_OPTION([gas]) TSUKU_DELETE_CMDLINE_OPTION([nfp]) TSUKU_DELETE_CMDLINE_OPTION([program-prefix]) TSUKU_DELETE_CMDLINE_OPTION([program-suffix]) TSUKU_DELETE_CMDLINE_OPTION([program-transform-name]) # may as well do this now - removes some processing and a help stanza AC_DEFUN([AC_ARG_PROGRAM],[]) TSUKU_DELETE_CMDLINE_OPTION([-x]) TSUKU_DELETE_CMDLINE_OPTION([x-includes]) TSUKU_DELETE_CMDLINE_OPTION([x-libraries]) # Delete an install dir option from both parser and help m4_define([TSUKU_DELETE_INSTDIR_OPTION], [TSUKU_DELETE_CMDLINE_OPTION([$1dir]) TSUKU_DEFINITION_SUBST([_AC_INIT_PARSE_ARGS], [for ac_var in\([^#]*\).\b$1dir\b], [for ac_var in\1]) TSUKU_DEFINITION_SUBST([_AC_INIT_HELP], [ --$1dir=DIR.*\ ], [])]) # Delete nearly all of the default install dirs TSUKU_DELETE_INSTDIR_OPTION([bin]) TSUKU_DELETE_INSTDIR_OPTION([data]) TSUKU_DELETE_INSTDIR_OPTION([dvi]) TSUKU_DELETE_INSTDIR_OPTION([html]) TSUKU_DELETE_INSTDIR_OPTION([include]) TSUKU_DELETE_INSTDIR_OPTION([info]) TSUKU_DELETE_INSTDIR_OPTION([lib]) TSUKU_DELETE_INSTDIR_OPTION([libexec]) TSUKU_DELETE_INSTDIR_OPTION([info]) TSUKU_DELETE_INSTDIR_OPTION([locale]) TSUKU_DELETE_INSTDIR_OPTION([localstate]) TSUKU_DELETE_INSTDIR_OPTION([man]) TSUKU_DELETE_INSTDIR_OPTION([oldinclude]) TSUKU_DELETE_INSTDIR_OPTION([ps]) TSUKU_DELETE_INSTDIR_OPTION([sbin]) TSUKU_DELETE_INSTDIR_OPTION([sharedstate]) TSUKU_DELETE_INSTDIR_OPTION([sysconf]) # generate a "case" pattern matching chunk # TSUKU_CASE_PATTERN_CHUNK(option,shortest,before,after) m4_define([TSUKU_CASE_PATTERN_CHUNK], [$3$1$4[]m4_if([$1],[$2],[], [TSUKU_CASE_PATTERN_CHUNK(m4_substr($1,0,m4_eval(m4_len($1)-1)), [$2],[$3],[$4])])]) # Add a new installation directory # TSUKU_ADD_INSTDIR_OPTION(dirname,under,default,help,abbrev,casebefore) m4_define([TSUKU_ADD_INSTDIR_OPTION], [TSUKU_DEFINITION_SUBST([_AC_INIT_PARSE_ARGS], [AC_SUBST(\[$2\].*)dnl\ ], [\&AC_SUBST([$1dir],['${$2}/$3'])dnl\ ]) TSUKU_DEFINITION_SUBST([_AC_INIT_HELP], [\ \(.*--$2=.*\)\ ], m4_expand([\ \1\ AS_HELP_STRING([--$1dir=DIR],m4_expand([$4 @<:@m4_toupper([$2])/$3@:>@]))\ ])) TSUKU_DEFINITION_SUBST([_AC_INIT_PARSE_ARGS], [\ \(.*$6.*\)\ ], [\ -$1dir[]TSUKU_CASE_PATTERN_CHUNK([$1dir],[$5],[ | --],[])@:}@ ac_prev=$1dir ;; -$1dir=*TSUKU_CASE_PATTERN_CHUNK([$1dir],[$5],[ | --],[=*])@:}@ $1dir=$ac_optarg ;;\ \ \1\ ]) TSUKU_DEFINITION_SUBST([_AC_INIT_PARSE_ARGS], [for ac_var in\([^#]*.\b$2\)\b], [for ac_var in\1 $1dir])]) # Add our new directories TSUKU_ADD_INSTDIR_OPTION([font],[datarootdir],[fonts],[fonts], [f],[obsolete gas option]) TSUKU_ADD_INSTDIR_OPTION([afm],[fontdir],[afm], [Adobe Font Metrics], [afm],[ --prefix ]) TSUKU_ADD_INSTDIR_OPTION([type1],[fontdir],[type1], [Postscript Type 1 fonts], [ty],[ --prefix ]) TSUKU_ADD_INSTDIR_OPTION([ttf],[fontdir],[TTF], [TrueType fonts], [tt],[ --prefix ]) TSUKU_ADD_INSTDIR_OPTION([otf],[fontdir],[OTF], [OpenType fonts], [ot],[ --prefix ]) # Reduce the ridiculous verbosity of Autoconf's help message TSUKU_DEFINITION_SUBST([_AC_INIT_HELP], [ to adapt to many kinds of systems],[]) TSUKU_DEFINITION_SUBST([_AC_INIT_HELP], [of some of the useful variables], [of some useful variables]) TSUKU_DEFINITION_SUBST([_AC_INIT_HELP], [Defaults for the options are specified in brackets], [Defaults are specified in brackets]) TSUKU_DEFINITION_SUBST([_AC_INIT_HELP], [\barch.*-independent \b], []) TSUKU_DEFINITION_SUBST([_AC_INIT_HELP], [\ .*(\[--exec-prefix=EPREFIX.*\ .*\])\(.\)[^:]*\ Fine tuning of the installation directories:\ ], [\1\ ]) # ############################################################################ # # Autoconf initialization # AC_PREREQ([2.63]) AC_INIT([OCR], [0.2], [mskala@ansuz.sooke.bc.ca], [ocr], [[http://tsukurimashou.sourceforge.jp/]]) AC_PRESERVE_HELP_ORDER AC_CONFIG_AUX_DIR([.]) AM_INIT_AUTOMAKE([foreign color-tests dist-zip no-dist-gzip parallel-tests silent-rules]) AC_CONFIG_SRCDIR([msk-ocra.mp]) AC_CONFIG_MACRO_DIR([m4]) AC_REVISION([$Id: configure.ac 1723 2012-09-26 21:06:32Z mskala $]) AC_COPYRIGHT([public domain]) AC_SUBST([release_date],["September 27, 2012"]) AM_SILENT_RULES # ############################################################################ # # Checks for programs. # AC_PROG_GREP AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_MAKE_SET AC_PROG_MKDIR_P AC_PATH_PROG([AUTOCONF],[autoconf]) AC_PATH_PROG([AUTOMAKE],[automake]) AC_ARG_VAR([EXPECT],[Expect]) AC_PATH_PROG([EXPECT],[expect]) AM_CONDITIONAL([COND_EXPECT],[test '!' "x$EXPECT" = "x"]) AC_ARG_VAR([FONTFORGE],[Fontforge]) AC_PATH_PROG([FONTFORGE],[fontforge]) AX_CHECK_GNU_MAKE AC_ARG_VAR([MPOST],[MetaPost]) AC_PATH_PROG([MPOST],[mpost]) AC_ARG_VAR([PERL],[Perl]) AC_PATH_PROG([PERL],[perl]) AC_ARG_VAR([T1ASM],[t1asm]) AC_ARG_VAR([XDVIPDFMX],[xdvipdfmx]) AC_PATH_PROG([XDVIPDFMX],[xdvipdfmx]) AC_ARG_VAR([XELATEX],[XeLaTeX]) AC_PATH_PROG([XELATEX],[xelatex]) # ############################################################################ # # Check for parasite build # AC_MSG_CHECKING([whether we are building as a parasite]) AM_CONDITIONAL([COND_PARASITE], [grep Tsukurimashou ../Makefile > /dev/null 2> /dev/null]) AM_COND_IF([COND_PARASITE], [AC_MSG_RESULT([yes]) T1ASM=../t1asm/t1asm], [AC_MSG_RESULT([no]) AC_PATH_PROG([T1ASM],[t1asm]) ]) AC_SUBST([T1ASM]) # ############################################################################ # # Checks for system services # AC_SYS_LONG_FILE_NAMES AX_AM_JOBSERVER # ############################################################################ # # User-settable options # # Define user options # AC_ARG_ENABLE([colour-build], [AS_HELP_STRING([--disable-colour-build], [turn off ANSI colour in build scripts])], [], [enable_colour_build=yes]) AC_ARG_ENABLE([color-build],[dnl],[],[enable_color_build=yes]) AC_ARG_ENABLE([docs], [AS_HELP_STRING([--disable-docs], [turn off PDF documentation])], [], [enable_docs=yes]) # # Process user options # tsu_colour=yes AS_IF([test "x$enable_colour_build" = "xyes"], [],[tsu_colour=no]) AS_IF([test "x$enable_color_build" = "xyes"], [],[tsu_colour=no]) AM_CONDITIONAL([COND_COLOUR],[test '!' "$tsu_colour" = no]) # AM_CONDITIONAL([COND_DOCS],[test '!' "$enable_docs" = no]) AC_SUBST([enable_docs]) # # AS_IF([test "x$prefix" = "xNONE"],[prefix="$ac_default_prefix"]) # AS_IF([test "x$enable_silent_rules" = "x"], [enable_silent_rules=yes AM_DEFAULT_VERBOSITY=0]) # AC_MSG_CHECKING([whether FontForge accepts AddExtrema(1)]) echo '#!/usr/local/bin/fontforge' > ffaetest.pe echo 'New();AddExtrema(1);' >> ffaetest.pe AS_IF([$FONTFORGE ffaetest.pe >& /dev/null], [ae_arg_okay=yes],[ae_arg_okay=no]) AC_SUBST([ae_arg_okay]) AC_MSG_RESULT([$ae_arg_okay]) # ############################################################################ # # Generate output # AC_SUBST([andt],[]) AC_CONFIG_FILES([Makefile]) AC_OUTPUT fonts-ocr-b-0.2~dfsg1/fntbase.mp000066400000000000000000002230021275507450000166130ustar00rootroot00000000000000% % Tsukurimashou "font base" macros % % THIS FILE IS PUBLIC DOMAIN NOTWITHSTANDING THE COPYRIGHT ON THE % OVERALL TSUKURIMASHOU PACKAGE % % This file is based on the files "fontbase.mp" and "plain_ex.mp" from the % METATYPE1 package version 0.55. Those files contain no copyright-related % notices of their own, but the README for METATYPE1 version 0.55 contains % the following notices (in English and Polish; the slashes are verbatim % from the original and presumably are some convention for expressing % non-ASCII Polish letters in the ASCII file): % % This is METATYPE1 package -- a tool for creating Type 1 fonts using % METAPOST. The package belongs to public domain (no copyrights, % copylefts, copyups, copydowns, etc.). % Version: 0.55 (16.09.2009; a tentative version, released along with % the sources of the Latin Modern fonts ver. 2.003) % Author: JNS team % % To jest pakiet METATYPE1 -- narz/edzie do tworzenia font/ow Type 1 % za pomoc/a systemu METAPOST. Pakiet stanowi dobro wsp/olne % (/zadnych copyright/ow, copyleft/ow, copyup/ow, copydown/ow, etc.). % Wersja: 0.55 (16.09.2009 -- wersja opublikowana wraz z wersj/a % /xr/od/low/a 2.003 pakietu font/ow Latin Modern) % Autorstwo: JNS team % % Although I assert my general right to claim copyright on work of my own % that draws from public domain source materials, I nonetheless am releasing % this file to the public domain in an effort to maintain the spirit of the % JNS team's release above. % % 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. % % Matthew Skala % mskala@ansuz.sooke.bc.ca % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % GENERAL LIBRARY FUNCTIONS % inclusion lock written explicitly so as not to depend on preintro.mp if known already_included.fntbase: endinput; fi; boolean already_included.fntbase; already_included.fntbase:=true; % gobble a text argument def killtext text t = enddef; % absent from older versions of plain.mf % Knuthian tradition unit definitions mm#=2.84528; pt#=1; dd#=1.07001; bp#=1.00375; cm#=28.45276; pc#=12; cc#=12.84010; in#=72.27; % numeric functions vardef tand primary a = sind(a)/cosd(a) enddef; vardef cotd primary a = cosd(a)/sind(a) enddef; vardef signum primary x = if x>0: 1 elseif x<0: -1 else: 0 fi enddef; primarydef w dotnorm z = begingroup save w_, z_, lw_, lz_; pair w_, z_; lw_=abs(w); w_:=w if lw_>0: /lw_ fi; lz_=abs(z); z_:=z if lz_>0: /lz_ fi; (xpart w_ * xpart z_ + ypart w_ * ypart z_) endgroup enddef; % expand "decimal" to cover some other data types let ori_decimal=decimal; def decimal primary n = ( if path n: for i_=0 upto length(n)-1: if i_>0: & " " & fi decimal(point i_ of n) & " " & decimal(postcontrol i_ of n) & " " & decimal(precontrol i_+1 of n) & " " & decimal(point i_+1 of n) endfor elseif color n: ori_decimal(redpart(n)) & " " & ori_decimal(greenpart(n)) & " " & ori_decimal(bluepart(n)) elseif pair n: ori_decimal(xpart(n)) & " " & ori_decimal(ypart(n)) else: ori_decimal(n) fi ) enddef; % The definition of |postdir| and |predir| given below is % based on the following observation, being the consequence % of l'H\^opital's rule: consider a~B\'ezier segment % |a .. controls b and c .. d|; normally, the vector $\vec{ab}$ % determines the ``post'' direction at node~$a$; if $b$ % coincides with $a$, then the vector $\vec{ac}$ determines % the direction; if also $c$ coincides coincides with~$a$, % then the last resort is the vector $\vec{ad}$; if even $d$ % coincides with~$a$, the B\'ezier segment is degenerated, % and can be removed (a~similar argumentation can be provided % for the ``pre'' direction at node~$d$). % Previous, insufficiently robust definitions: % |vardef predir expr t of p = (point t of p)-(precontrol t of p) enddef;| % |vardef postdir expr t of p = (postcontrol t of p)-(point t of p) enddef;| % |vardef udir expr t of p = unitvector(direction t of p) enddef;| % New, more general definitions: vardef gendir expr t of p = predir t of p + postdir t of p % |direction|-compatible definition enddef; vardef predir expr t of p = save a_,b_,c_,d_,s_,t_; pair a_,b_,c_,d_; path s_; t_:=t; if not cycle p: if t<0: t_:=0; elseif t>length(p): t_:=length(p); fi fi s_=subpath (ceiling t_-1,t_) of p; a_=point 0 of s_; b_=postcontrol 0 of s_; % |b_<>postcontrol t-1 of p| for |t=0| c_=precontrol 1 of s_; d_=point 1 of s_; if d_<>c_: d_-c_ elseif d_<>b_: d_-b_ elseif d_<>a_: d_-a_ else: (0,0) fi enddef; vardef postdir expr t of p = save a_,b_,c_,d_,s_,t_; pair a_,b_,c_,d_; path s_; t_:=t; if not cycle p: if t<0: t_:=0; elseif t>length(p): t_:=length(p); fi fi s_=subpath (t_,floor t_+1) of p; a_=point 0 of s_; b_=postcontrol 0 of s_; c_=precontrol 1 of s_; % |c_<>precontrol t+1 of p| for |t=length p| d_=point 1 of s_; if a_<>b_: b_-a_ elseif a_<>c_: c_-a_ elseif a_<>d_: d_-a_ else: (0,0) fi enddef; % Definitions related to ``pre-'' and ``post-'' vardef udir expr t of p = unitvector(gendir t of p) enddef; vardef upredir expr t of p = unitvector(predir t of p) enddef; vardef upostdir expr t of p = unitvector(postdir t of p) enddef; vardef pos_subpath expr z of p = if not cycle p: subpath z of p else: if xpart(z)<=ypart(z): subpath z of p else: subpath (xpart(z),ypart(z)+length(p)) of p fi fi enddef; vardef posttension expr t of p = % ``The \MF{}book'', ex. 14.15 save q_; path q_; q_=point t of p {direction t of p} .. {direction t+1 of p} point t+1 of p; length(postcontrol 0 of q_ - point 0 of q_)/ length(postcontrol t of p - point t of p)% doesn't work for ``straight lines'' enddef; vardef pretension expr t of p = % ditto save q_; path q_; q_=point t-1 of p {direction t-1 of p} .. {direction t of p} point t of p; length(precontrol 1 of q_ - point 1 of q_)/ length(precontrol t of p - point t of p)% doesn't work for ``straight lines'' enddef; % The two macros below, |path_eq| and |inside| macros, might have been % primitives. The macro |path_eq| is obvious; |a inside b| returns true % if the bounding box of |a| is inside the bounding box of |b|, which % may be misleading; think, for example of: % |fullcircle inside unitsquare shifted (-1/2,-1/2) scaled .9 rotated 45|. % For most curves occuring in fonts, however, one can safely infere % that if |a inside b| holds, then |a| is inside |b|. vardef path_eq(expr a,b)= save i_,l_,r_; boolean r_; r_:=(length(a)=length(b)) and (cycle a= cycle b); if r_: i_:=0; l_:=length(a) if cycle a: -1 fi; forever: r_:=(point i_ of a = point i_ of b); exitif not r_; r_:=(precontrol i_ of a = precontrol i_ of b); exitif not r_; r_:=(postcontrol i_ of a = postcontrol i_ of b); exitif not r_; exitif incr i_>l_; endfor fi r_ enddef; tertiarydef a inside b = if path a: % |and path b| (xpart llcorner b < xpart llcorner a) and (xpart urcorner b > xpart urcorner a) and (ypart llcorner b < ypart llcorner a) and (ypart urcorner b > ypart urcorner a) else: % |numeric a and pair b| (a>=xpart b) and (a<=ypart b) fi enddef; % The macro |&&| is to be used instead of the |&| operator if the respective % ends of paths coincide only approximately; using |..| instead would add % unwanted tiny B\'ezier segments. The macro is somewhat ``left-handed,'' % i.e., it does not consider the expression that follow the macro, therefore, % it can be used before the `|cycle|' command; if the argument |p| of the % macro |amp_amp_| is a |pair|, it is just ignored which may be % considered hardly intuitive. def && = amp_amp_ whatever enddef; tertiarydef p amp_amp_ q = if not pair p: (subpath(0,length(p)-1) of p) .. controls (postcontrol length(p)-1 of p) and (precontrol length(p) of p) .. fi enddef; vardef extrapolate expr t of b = % |t| pair, |b| B\'ezier segment clearxy; Casteljau(xpart(t)) = point 0 of b; Casteljau(1/3[xpart(t),ypart(t)]) = point 1/3 of b; Casteljau(2/3[xpart(t),ypart(t)]) = point 2/3 of b; Casteljau(ypart(t)) = point 1 of b; z0 .. controls z1 and z2 .. z3 enddef; def Casteljau(expr t) = t[t[t[z0,z1], t[z1,z2] ], t[t[z1,z2], t[z2,z3] ] ] enddef; vardef elongation_to_times(expr ea,eb) = % negative parameter values are admissible; they are meant for |pen_stroke| (if ea<0: - fi 1/(abs(ea)+1), eb/(abs(eb)+1)) enddef; % A~numerical function `|point_line_dist|' takes as a~parameter % three |pair| expressions and returns a~(signed) value of the distance % of the first parameter from the line defined by the other two. % It is referred to in the `|is_line|' function. vardef point_line_dist(expr a,b,c) = clearxy; save d_; d_=sqrt(length(b-c)); z0=a/d_; z1=b/d_; z2=c/d_; (x2-x1)*(y1-y0)-(x1-x0)*(y2-y1) enddef; % The idea of calculation of a turning angle % between two vectors, employed in the definition of the function % `turn_ang,' is based on the following observation: vardef turn_ang(expr za,zb) = if (abs(za)>=1/1000) and (abs(zb)>=1/1000): % |eps| may be not enough angle(unitvector(za) zscaled (unitvector(zb) reflectedabout (origin,right))) else: whatever fi enddef; % A~Boolean function `|is_line|' checks whether a~given B\'ezier segment % is a~straight line. For large segments (fonts) it makes sense to specify % a~numerical parameter |is_line_off>=0|; it defines a~maximal acceptable % distance of the control points of a~B\'ezier arc from its secant % (which corresponds to the distance between the arc and the secant % circa |3/4is_line_off| for a symmetric, inflexionless arcs). vardef is_line(expr B) = save r_; boolean r_; if known is_line_off: save a_; a_=length((point 1 of B)-(point 0 of B)); r_=(-a_+arclength(B))<=(a_/infinity); if r_: r_:=(is_line_off>=abs(point_line_dist( postcontrol 0 of B, point 0 of B, point 1 of B))) and (is_line_off>=abs(point_line_dist( precontrol 1 of B, point 0 of B, point 1 of B))); fi else: % backward compatibility save a_,b_,c_,d_; a_=length((point 1 of B)-(point 0 of B)); b_=length((postcontrol 0 of B)-(point 0 of B)); c_=length((precontrol 1 of B)-(postcontrol 0 of B)); d_=length((point 1 of B)-(precontrol 1 of B)); r_=(-a_+b_+c_+d_ <= a_/infinity); fi r_ enddef; % Abbreviations for a few simple yet useful phrases def xyscaled primary p = xscaled xpart(p) yscaled ypart(p) enddef; def yxscaled primary p = yscaled xpart(p) xscaled ypart(p) enddef; % The macro |insert_nodes| inserts additional nodes at given non-integer % non-repeating times~|t| into a given path |p|. % The code would be a bit longer without `|arclength|' and `|arctime|.' % The macro can be useful in some cases in the context of finding % the envelopes of pen-stroked paths (avoiding inflection % points---see below). vardef insert_nodes(expr p)(text t) = save j_, p_, s_, t_; path p_; p_:=p; t_:=0; for i_:=t: if round(i_)<>i_: % ignore integer times t_[incr t_]=arclength(subpath(0,i_ mod length(p_)) of p_); fi endfor for i_:=1 upto t_: s_:=arctime t_[i_] of p_; if abs(round(s_)-s_)>eps: % ignore repeating times; is |eps| OK? p_:=(subpath (0, s_) of p_) && (subpath (s_,length p_) of p_) if cycle p_: & cycle fi; fi endfor; p_ enddef; % get rid of degeneracies def regenerate(expr p) = begingroup save q; path q; for t=1 step 1 until length p: if abs((point t of p)-(point (t-1) of p))>3: if unknown q: q:=subpath (t-1,t) of p; elseif length(q)=1: q:=(point 0 of q).. controls (postcontrol 0 of q) and (precontrol 1 of q).. (0.5[point 1 of q,point t-1 of p]).. controls (postcontrol t-1 of p) and (precontrol t of p).. (point t of p); else: q:=(subpath (0,length(q)-1) of q).. controls (postcontrol length(q)-1 of q) and (precontrol length(q) of q).. (0.5[point length(q) of q,point t-1 of p]).. controls (postcontrol t-1 of p) and (precontrol t of p).. (point t of p); fi; fi; endfor; if cycle p: q:=subpath (0,length(q)-1) of q.. controls (postcontrol length(q)-1 of q) and (precontrol length(q) of q).. cycle; fi; q endgroup enddef; % like Fill, but doesn't complain about turning number def dangerousFill text glist = begingroup save h_; path h_; for g_:=glist: h_:=g_ start.default; % JMN's suggestion if glyph_usage div store = 1: % storing glyph_stored.glyph_name[incr glyph_stored.glyph_name.num]=h_; fi glyph_list[incr glyph_list.num]:=round_node_values(h_ italicized); update_glyph_bb(glyph_list[glyph_list.num]); endfor; endgroup enddef; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % PREFIX AND SUFFIX HANDLING % A method, entangled a bit and not particularly robust, of testing whether % a parameter is a {\it string\/} expression or a {\it suffix}. % (Remark: |is_suffix((a))| or |is_suffix(a+b)| returns |true|; % |is_suffix(((a)))| causes \MP{} to report an error). vardef is_suffix(text suffix_or_not_suffix) = save the_suffix_; string the_suffix_; is_suffix_ suffix_or_not_suffix; the_suffix_<>"" enddef; def is_suffix_ suffix $ = the_suffix_:= str $; killtext enddef; % suffix munging def store_prec_obj = store_prec_obj_ whatever enddef; primarydef a store_prec_obj_ b = hide(def prec_obj = a enddef) enddef; % primarydef a sub b = % if path a: (pos_subpath b of a) elseif string a: (substring b of a) fi % enddef; def node = store_prec_obj node_ enddef; vardef node_@# primary a = if str @#="x": xpart(point a of prec_obj) elseif str @#="y": ypart(point a of prec_obj) elseif str @#="": point a of prec_obj else: errhelp "The operator `node' works only with `x', `y' or an empty suffixes."; errmessage "PX: improper usage of `node'"; fi enddef; def first suffix $ = if str $="at": % moves the first point of a path to a specified location store_prec_obj prec_obj shifted -(point 0 of prec_obj) shifted else: node$(0) fi enddef; def last suffix $ = if str $="at": % moves the last point of a path to a specified location store_prec_obj prec_obj shifted -(point if cycle prec_obj: 0 else: infinity fi of prec_obj) shifted else: node$(if cycle prec_obj: 0 else: infinity fi) fi enddef; % Neat macros excerpted from John D. Hobby's boxes.mp macro package % Find the length of the prefix of string |s| for which |cond| is true for % each character |c| of the prefix vardef genericize_prefix(expr s)(text cond) = save i_, c_; string c_; i_ = 0; forever: c_ := substring (i_,i_+1) of s; exitunless cond; exitif incr i_=length s; endfor i_ enddef; % Take a string returned by the |str| operator and return the same string % with explicit numeric subscripts replaced by generic subscript symbols []: vardef genericize(expr s) = save res_, s_, l_; string res_, s_; res_=""; % result so far s_ =s; % left to process forever: exitif s_=""; l_:=genericize_prefix(s_, (c_<>"[") and ((c_<"0") or (c_>"9"))); res_:=res_ & substring (0,l_) of s_; s_:=substring (l_,infinity) of s_; if s_<>"": res_ := res_ & "[]"; l_ :=if s_>="[": 1+genericize_prefix(s_, c_<>"]") else: genericize_prefix(s_, (c_=".") or ("0"<=c_) and (c_<="9")) fi; s_:=substring(l_,infinity) of s_; fi endfor res_ enddef; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % A MODULE THAT FINDS AN ENVELOPE OF A PATH DRAWN WITH A PEN % The following macros approximate the envelope of an elliptical or a razor % pen. The exact solution is impossible---in general, the envelope is not % a B\'ezier curve, therefore some heuristics is, in general, unavoidable. % We assumed that the backbone of a figure is such that % the envelope does not form loops at smoothly joined nodes. Moreover, % all B\'ezier segments appearing in the process {\bf should not} % contain inflection points (the reason for this limitation is the % method of finding an approximation of a pen envelope). If the latter % condition is not fulfilled, one may expect weird results (see the usage % of the |...| operator in the code of |pen_stroke_edge|). % We assume that slanting should not distort a pen. Therefore, if % a glyph is to be slanted {\it after\/} expanding a stroke, which % usually is the case, the envelope should be constructed with % an {\it unslanted pen}. Macros |slant_stroke|, |unslant_stroke|, % and |unslant_angle| are devised to facilitate handling this % situation. These macros refer to the variable |slant_stroke_val|; % it should be assigned a definite value prior to expanding stroke. def slant_stroke = if known slant_stroke_val: slanted slant_stroke_val fi enddef; def unslant_stroke = if known slant_stroke_val: slanted -slant_stroke_val fi enddef; vardef unslant_angle(expr a) = angle(dir(a) unslant_stroke) enddef; % Macro |fix_nib| returns a path. If |y_diam| parameter % is~0, a ``razor'' pen (a segment) is returned, otherwise it is % an approximation of an ellipse. We do our best to avoid unnecessary % nodes, hence the approximation is somewhat complicated; another reason % for the complication is that interpolation and affine transformations % do not commute, therefore the appropriate nodes are found for % the untransformed pen, and only then the pen is transformed. % {\it Note\/}: So far, there is no explicit relation between a built-in % \MP{} pen mechanism and the |fix_nib| operation, in particular, % |beginfig| does not alter the setting of |default_nib|. Needs rethinking. vardef fix_nib(expr x_diam, y_diam, rot_angle) = if (x_diam<>0) and (y_diam<>0): fix_elliptic_nib(x_diam, y_diam, rot_angle) elseif (x_diam<>0) and (y_diam=0): fix_razor_nib(x_diam, rot_angle) elseif (x_diam=0) and (y_diam<>0): fix_razor_nib(y_diam, rot_angle+90) else: errhelp "I'll use the default pen, but I'd suggest to cancel the job."; errmessage "PX: the null pen is not alowed"; default_nib fi enddef; vardef fix_razor_nib(expr x_diam, rot_angle) = ((-1/2x_diam,0)--(1/2x_diam,0)) rotated rot_angle unslant_stroke enddef; vardef fix_elliptic_nib(expr x_diam, y_diam, rot_angle) = save p_; path p_; % construct a temporary ellipse: p_:=fullcircle xscaled x_diam yscaled y_diam rotated rot_angle unslant_stroke; % construct an elliptic pen path having % 4 or, if necessary (heuristic), 6 nodes: (for d=up unslant_stroke, left, if (y_diam/x_diam<1/2) and (abs(rot_angle mod 90)>5): left rotated rot_angle unslant_stroke, fi down unslant_stroke, right, if (y_diam/x_diam<1/2) and (abs(rot_angle mod 90)>5): right rotated rot_angle unslant_stroke fi: (point(directiontime d of p_) of fullcircle) {direction (directiontime d of p_) of fullcircle}... endfor cycle) xscaled x_diam yscaled y_diam rotated rot_angle unslant_stroke enddef; % Arcs of a pen shorter than |ignore_nib_limit| will be joined together % to form larger ones. Remember to adjust the parameter |ignore_nib_limit| % if the size of |default_nib| is significantly changed. newinternal ignore_nib_limit; ignore_nib_limit:=5; path default_nib; default_nib:=fix_nib(50,50,0); % hundred times as large as a default plain pen newinternal default_elongation, default_join, default_cap; default_elongation:=1/2; default_join:=1; % 0 -- tip, default elongation used % 1 -- pen join, default elongation ignored % 2 -- tip, default elongation ignored, elongation=0 used default_cap:=1; % 0 -- cut 90 rel % 1 -- pen end % |tangent_point|, |pen_join|, |pen_stroke_edge_|, and |pen_stroke_edge| % are auxiliary macros, exploited by the main macro, i.e., |pen_stroke|. vardef tangent_point(expr d,nib) = % |d| -- direction of pen movement save a_; point if cycle nib: (directiontime d of nib) else: hide (a_:=turn_ang(d,(point 1 of nib)-(point 0 of nib))) if abs(a_ mod 180)<.1: 1/2 % emergency elseif a_<0: 0 else: 1 fi fi of nib enddef; vardef pen_join(expr a,b,c,nib)= % deleting superfluous nodes is based on the |arclength| operation % which, obviously, is not preserved after slanting, but let's hope % it does not matter (too much) save t_, m_, m__, ta_, tb_, p_; path p_; m_:=infinity; % will be the minimal length of |nib|'s segment for t_:=0 upto 1/2length(nib)-1: m__:=arclength(subpath(t_,t_+1) of nib); if m__ignore_nib_limit: for i_:=0,0: p_:=reverse p_; % short segments may appear at both ends if length(p_)>1: % optimization if arclength(subpath (0,1) of p_)<1/4ignore_nib_limit: % cf. the comment concerning |1/4ignore_nib_limit| in % |pen_stroke_edge| below p_:=(point 0 of p_) .. controls (postcontrol 1 of p_) and (precontrol 2 of p_) .. subpath (2,infinity) of p_; fi fi endfor else: p_:=(point 0 of p_){a}...{b}(point length(p_) of p_); fi else: % razor nib p_:=tangent_point(a,p_)--tangent_point(b,p_); fi p_ enddef; % The finding of a~pen envelope for a~given B\'ezier segment, % defined by nodes |a|, |b|, |c|, and |d|, begins with % the placing the pen at the ends of the B\'ezier segment % (i.e., at the points |a|, |d|) and finding the corresponding points % |a'| and |d'| where the pen outline is parrallel to the direction % of the original path at these points. Then, the outline is constructed. % For |pen_stroke_method=0| (default), the envelope segment is constructed % by setting the beginning and final directions (optionally, the direction % at a given node can be ignored); for |pen_stroke_method=1| or~2 % an alternative (more elaborate) procedure is involved which explicitly % computes control nodes |b'| and |c'| of the resulting path basing on % a~heuristic assumption that % |length(b'-a')/length(b-a)|~$\approx$ % |length(c'-d')/length(c-d)|~$\approx$ % |length(a'-d')/length(a-d)|.\break % The default method never produce concave edges because the operator |...| % is used always; the alternative methods employs the operator % |force_convex_edge| instead; for |pen_stroke_method=1| the convex edges % are forced (i.e, inflexion points are being removed), % for |pen_stroke_method=2| no forcing of convex edges takes place. vardef extrapoline expr t of B = % the result may be not a single segment save l_, t_; (t_.a,t_.b)=t; % |0<=ta_0: ((point 0 of B) - l_.a*(upostdir 0 of B))-- fi B if t_.b<1: -- ((point 1 of B) + l_.b*(upredir 1 of B)) fi enddef; vardef force_convex_edge(expr za, zb, zc, zd) = save a_, b_, c_, d_, z_; a_:=length(zd-za); b_:=length(zb-za); c_:=length(zc-zb); d_:=length(zd-zc); if (-a_+b_+c_+d_ > a_/infinity): if pen_stroke_method=2: za .. controls zb and zc .. zd else: if (a_>0.01) and (b_>0.01) and (c_>0.01) and (d_>0.01): % no degeneration... a_:=signum((za-zd) rotated -90 dotnorm (zb-za)); b_:=signum((zb-za) rotated -90 dotnorm (zc-zb)); c_:=signum((zc-zb) rotated -90 dotnorm (zd-zc)); d_:=signum((zd-zc) rotated -90 dotnorm (za-zd)); if ((a_<>b_) or (b_<>c_)) and (a_=d_): numeric b_, c_; pair z_; z_=b_[za,zb]=c_[zd,zc]; za .. controls if b_<1: z_ else: zb fi and if c_<1: z_ else: zc fi .. zd else: za .. controls zb and zc .. zd fi else: za .. controls zb and zc .. zd fi fi else: za -- zd fi enddef; vardef pen_stroke_edge_(expr b,b_nib,e_nib) = % |b| -- B\'ezier segment save pa_,pb_,qa_,qb_,ra_,rb_,sa_,sb_; pair pa_,pb_,qa_,qb_,ra_,rb_,sa_,sb_; pa_=point 0 of b; ra_=(postcontrol 0 of b)-pa_; sa_=postdir 0 of b; pb_=point 1 of b; rb_=(precontrol 1 of b)-pb_; sb_=predir 1 of b; qa_=pa_ + tangent_point(sa_, b_nib); qb_=pb_ + tangent_point(sb_, e_nib); if pen_stroke_method=0: qa_ {sa_} ... {sb_} qb_ elseif (pen_stroke_method=1) or (pen_stroke_method=2): save lp_,lq_; lp_=length(pb_-pa_); lq_=length(qb_-qa_); if 2lp_1 else: false fi: save t_; (t_.a,t_.b)=e_[i_] intersectiontimes e_[i__]; if t_.a>0: e_[i_]:=subpath (0,t_.a) of e_[i_]; e_[i__]:=subpath (t_.b,1) of e_[i__]; elseif known local_tip_@#(i__): save tx_, ty_, b_, b__, ei_, ei__; path ei_, ei__, ei_[], ei__[]; (tx_,ty_)=local_tip_@#(i__); ei_:=if is_line(e_[i_]): (point 0 of e_[i_])-- (1/abs(tx_))[point 0 of e_[i_], point 1 of e_[i_] ] elseif tx_<0: hide(b_:=1) extrapoline (0,abs(tx_)) of e_[i_] else: extrapolate (0,abs(tx_)) of e_[i_] fi; ei__:=if is_line(e_[i__]): (1/(1-abs(ty_)))[point 1 of e_[i__], point 0 of e_[i__] ] -- point 1 of e_[i__] elseif ty_<0: hide(b__:=1) extrapoline (abs(ty_),1) of e_[i__] else: extrapolate (abs(ty_),1) of e_[i__] fi; % clumsy HEURESIS (choosing an optimal intersection point, if there are % more intersections): save t_; (t_.a1,length(ei__)-t_.b1)=ei_ intersectiontimes reverse ei__; if t_.a1>0: ei_1:=if (known b_) and (t_.a1>1): force_convex_edge(point 0 of e_[i_], postcontrol 0 of e_[i_], precontrol 1 of e_[i_], point t_.a1 of ei_) else: subpath (0,t_.a1) of ei_ fi; ei__1:=if (known b__) and (t_.b1<1): force_convex_edge(point t_.b1 of ei__, postcontrol 0 of e_[i__], precontrol 1 of e_[i__], point 1 of e_[i__]) else: subpath (t_.b1,infinity) of ei__ fi; (length(ei_)-t_.a2,t_.b2)=reverse ei_ intersectiontimes ei__; if length((t_.a1,t_.b1)-(t_.a2,t_.b2))>eps: ei_2:=if (known b_) and (t_.a2>1): force_convex_edge(point 0 of e_[i_], postcontrol 0 of e_[i_], precontrol 1 of e_[i_], point t_.a2 of ei_) else: subpath (0,t_.a2) of ei_ fi; ei__2:=if (known b__) and (t_.b2<1): force_convex_edge(point t_.b2 of ei__, postcontrol 0 of e_[i__], precontrol 1 of e_[i__], point 1 of e_[i__]) else: subpath (t_.b2,infinity) of ei__ fi; if arclength(ei_1)+arclength(ei__1) > arclength(ei_2)+arclength(ei__2): ei_1:=ei_2; ei__1:=ei__2; fi fi e_[i_]:=ei_1; e_[i__]:=ei__1; fi fi fi endfor for i_:=0 upto l_-1: hide(i__:=(i_-1) mod l_) if cycle p or (i_>0): if length((point 1 of e_[i__])-(point 0 of e_[i_]))>1/4ignore_nib_limit: % the constant |1/4ignore_nib_limit| plays a similar role % to that of the |SNAP_TO_NODE| variable in pf2mt1.awk (point 1 of e_[i__]) if known local_tip_@#(i_): -- else: && pen_join(predir 1 of e_[i__],postdir 0 of e_[i_],point i_ of p, local_nib_@#(i_)) && fi fi fi % reconstruct |e_[i_]| (possibly ignoring direction(s)): (point 0 of e_[i_]) if is_line(e_[i_]): % the using of |--| circumvents \MF{}//\MP{} instable behaviour: % the operator |...| may cause that a control point and a node % (nearly) coincide (note that this is feature, not a bug); % thus, it is advisable for |pen_stroke_method=0|; supposedly, % it is also adequate for |pen_stroke_method=1|: -- else: if pen_stroke_method=0: if not ignore_dir_(i_): {postdir 0 of e_[i_]} fi ... if not ignore_dir_(i_+1): {predir 1 of e_[i_]} fi elseif (pen_stroke_method=1) or (pen_stroke_method=2): .. controls (postcontrol 0 of e_[i_]) and (precontrol 1 of e_[i_]) .. fi fi endfor if cycle p: cycle else: (point 1 of e_[l_-1]) fi enddef; newinternal pen_stroke_method; % Macro |pen_stroke| performs an operation known as ``expanding stroke''; % we'll call the result of the operation a ``pen envelope'' (for % a given path). The macro has one optional parameter, |opts| (|text|), % and two obligatory ones: input path~|p| (|expr|) % and a |result| (|suffix|). A user has an access to subpaths of the % envelope, namely: |result.r| is the right edge of the envelope, % |result.l|---its left edge, |result.b|---is a fragment of the pen outline % joining left and right edge of the envelope at the beginning % node of the path, |result.e|---is a similar fragment at the ending % node of the path (see the picture below). If the path~|p| % is cyclic, then |result.e| and |result.b| are undefined, % otherwise the variable |result| contains additionally the complete % expanded stroke. % For finding an envelope, a default path (|default_nib|, returned % by |fix_nib|) is used except nodes for which the parameter |opts| % sets another pen. Mastering the usage of the parameter |opts| allows % a user to achieve nontrivial effects. The parameter |opts| is a list % (space-separated or semicolon-separated) of the following % operators: (1)~|nib|, (2)~|cut|, (3)~|tip|, and (4)~|ignore_directions|. % Ad 1. The macro |nib| has two parameters: % |nib|(pen)(list_of_nodes), where ``pen'' is a path returned by % macro |fix_nib|, and ``list_of_nodes'' contains comma-separated numbers % (times) of the nodes of the path~|p| at which a given pen is to be % used. If needed, the outline is complemented at corner nodes % with a fragment of a pen path. Such a join corresponds to the setting % |linejoin:=rounded| in \MP{}. If the path~|p| is non-cyclic, % its ends are also complemented with appropriate fragments of a pen path % (the setting |linecap:=rounded|). Such a method of joining is also applied % by |pen_stroke| to nodes not mentioned in the parameter |opts|. % The result of the following statement % \LINE{\descriptioncomments % |pen_stroke(nib(default_nib xyscaled (1,2))(infinity))(p)(q)| % \unskip} % \descriptioncomments % that changes the pen at the last node of the path, % is shown in the following picture: % \LINE{\epsfbox{\illusname.110}} % Ad 2. The call of the macro |cut| has the form: |cut|(angle, % pen)(list_of_nodes) or |cut|(pen,~angle)(list_of_nodes), % where ``pen'' and ``list_of_nodes'' are defined as % previously. The pen parameter can be omitted which means using a default % pen (|default_nib|). The macro replaces a default pen with a special % ``razor'' pen at specified nodes. More precisely, it is a projection of a % given pen in the direction of the path~|p| at a given node onto a % straight line going through this node under the angle specified in the % respective parameter of the macro. Uf\/f\/f\dots\ The angle of the straight % line can be defined either absolutly (with respect to the axis~|x|) % or---by adding a prefix `|rel|'---relatively to the direction of the path % at a given node. From the point of view of a user, the result of the % macro |cut| is ``cutting'' the expanded stroke with a straight % line. This operation is particularly useful at the ends of a path and % corresponds to the setting |linecap:=butt| in \MP{}, except that in \MP{} % one cannot specify angles. The result of the statement % \LINE{\descriptioncomments % |pen_stroke(cut(45)(0)| % |cut(default_nib xyscaled (1,2), rel 90)(infinity))(p)(q)| % \unskip} % \descriptioncomments % that cuts both ends and, moreover, changes a pen % at the ending node is shown in the figure below % (at the beginning node, the absolute angle of 45 degrees is specified, % at the ending one---the relative angle of 90~degrees): % Ad 3. The call of the macro |tip| has the form |tip|(pen, % pre_elongate, post_elongate)(list_of_nodes), where ``pen'' % and ``list_of_nodes'' have the same meaning as previously. % In particular, a pen can be omitted. At corner nodes % specified in the list of nodes, the consecutive elements of the outline % are not joined with an appropriate subpath of a pen; instead, they % are elongated (extrapolated) until they intersect. This process corresponds % (roughly) to the \MP{} setting |linejoin:=mitered|: % The illustration above is the result of the following call % of the macro |pen_stroke| (the macro |tip| is invoked with default % settings, only the number of a node is specified): % |pen_stroke(tip()(3))(p)(q); draw q;| % The optional parameters |pre_elongation| and |post_elongation| define how % far the consecutive edges (segments) should be elongated in order to make % them intersect each other (the measure is the time). If one parameter is % omitted, both will receive the same value; if both are omitted, a~default % value, |(0.5,0.5)| (it corresponds to elongation by circa 50\%), will be % used. The precise meaning of the pre- and post-elongation is defined as % follows: for a~given pre-edge |e1|, post-edge |e2|, pre-elongation |v1| % and post-elongation |v2|, the paths % |extrapolate (0, 1/(1+v1) of e1| and % |extrapolate (v2/(1+v2), 1) of e2| are computed % (i.e., for the default elongation: |extrapolate (0, 2/3) of s1| % and |extrapolate (1/3, 1) of s2|, respectively). % If elongated curves do not intersect, the terminal nodes % of the consecutive segments are joined with a~straight line. The latter % property can be used to obtain a~result corresponding to the \MP{} setting % |linejoin:=beveled|: it suffices to apply a~null elongation, i.e., % |tip|(0)(list_of_nodes). Changing the first (empty) parameter % of the |tip| macro in the previous example would yield the following % result: % Ad 4. The macro |ignore_directions| has a different character. It is % invoked with one parameter being a comma-separated list of nodes: % |ignore_directions|(list_of_nodes). The numbers {\it must be\/} followed % by sufixes |l| or |r|. The macro causes that, at specified nodes, % the direction of the outline is not forced to be parallel to the direction % of the path~|p| (which is the default); instead, the direction is % calculated by \MP{}. Suffixes determine whether the direction % is not to be forced at the right (|r|) or the left~(|l|) edge (with % respect to the direction of the path~|p|). This heuristic % trick can be used to improve the appearence of the outline % if the ``inner'' part of the envelope has too tight arcs. %% The examples of the usage of this macro can be found in the \MP{} version %% of D.~E.~Knuth's `logo' font (letters `P'~and~,S'). vardef pen_stroke(text opts)(expr p)(suffix result) = forsuffixes $=,r,l,b,e: if not path result$: scantokens("path " & genericize(str result$)); fi endfor save a_, a__, d_, i_, k_, n_, p_, z_, norm_, norml_, normr_, normlr_, fix_opts_, ignore_dir_, ignore_dir__, local_nib_, local_nib__, local_tip_, default_tip_, local_tip__, % internal all, rel, last, nib, cut, tip, ignore_directions, current_node; % exported numeric ignore_dir__[\\]; pair default_tip_, local_tip__[\\]; path local_nib__[\\]; pair a_, d_, z_[\\]; path p_; %% xpart norm_ norml_ normr_ normlr_ vardef norm_ primary n = if cycle p: n mod last else: if n<0: 0 elseif n>last: last else: n fi fi enddef; vardef norml_ primary n = -norm_ n -1 enddef; vardef normr_ primary n = norm_ n +1 enddef; vardef normlr_@# primary i= if str @#="l": -norm_(last-i)-1 else: i+1 fi enddef; last=length(p); vardef rel primary a = angle((gendir current_node of p) slant_stroke)+a enddef; def all = hide(% locally we use the prefix rather than postfix noitation; % a trick due to the |suffix| parameter of the |allcont_| macro vardef l primary n = (norml_ n,0) enddef; vardef r primary n = (normr_ n,0) enddef) allcont_ enddef; def allcont_ suffix $ = $0 for i_:=1 upto last if cycle p: -1 fi: , $i_ endfor enddef; vardef fixopts_(suffix optname)(text nodes) text val = %% intersectiontimes lcont_ rcont_ save l, r, lcont_, rcont_; def l = lcont_ whatever enddef; primarydef a lcont_ b = (norml_ a,0) enddef; def r = rcont_ whatever enddef; primarydef a rcont_ b = (normr_ a,0) enddef; for n_:=nodes: if numeric n_: current_node:=norm_ n_; optname[norml_ n_]:=optname[normr_ n_] else: current_node:=abs(xpart n_)-1; % the inverse of both |norml_| and |normr_| optname[xpart(n_)] fi :=val; % |val| may depend on |current_node| endfor enddef; def nib(text nib_)(text nodes) = % nib and node list fixopts_(local_nib__)(nodes) begingroup p_:=default_nib; for k_:=nib_: p_:=k_; endfor \\ p_ endgroup; enddef; def cut(text nib_and_ang)(text nodes) = % angle, nib and node list fixopts_(local_nib__)(nodes) begingroup p_:=default_nib; for k_:=nib_and_ang: if numeric k_: a_:=dir(unslant_angle(k_)); else: p_:=k_; fi endfor d_:=gendir current_node of p; z_1:=whatever*a_=tangent_point(d_,p_)+whatever*d_; z_2:=whatever*a_=tangent_point(-d_,p_)+whatever*d_; z_1--z_2 endgroup; enddef; def tip(text nib_and_lim)(text nodes)= % limit(s) and node list i_:=0; for n_:=nib_and_lim: if numeric n_: i_[incr i_]:=n_; fi endfor fixopts_(local_tip__)(nodes) elongation_to_times(if i_=0: default_elongation, default_elongation elseif i_=1: i_1, i_1 else: i_1, i_2 fi); fixopts_(local_nib__)(nodes) begingroup p_:=default_nib; for k_:=nib_and_lim: if path k_: p_:=k_; fi endfor \\ p_ endgroup; enddef; def ignore_directions(text nodes) = % node list fixopts_(ignore_dir__)(nodes) 1; enddef; if default_cap=0: if not cycle p: cut(rel 90)(0,last); fi elseif default_cap=1: % do nothing else: errhelp "Admissible values are 0, 1; continue, I'll use the value 1."; errmessage "PX: improper `default_cap' value ("&decimal(default_cap)&")"; fi opts; if default_join=0: default_tip_:=elongation_to_times(default_elongation, default_elongation); elseif default_join=1: % no tip setting, do nothing elseif default_join=2: default_tip_:=(1,0); % |(1,0)=elongation_to_times(0,0)| else: errhelp "Admissible values are 0, 1, 2; continue, I'll use the value 1."; errmessage "PX: improper `default_join' value ("&decimal(default_join)&")"; fi vardef ignore_dir_@#(expr i) = known ignore_dir__[normlr_@# i] enddef; vardef local_tip_@#(expr i) = if known local_tip__[normlr_@# i]: local_tip__[normlr_@# i] else: default_tip_ fi enddef; vardef local_nib_@#(expr i) = if known local_nib__[normlr_@# i]: local_nib__[normlr_@# i] else: default_nib fi enddef; result.r:=pen_stroke_edge.r(p); result.l:=pen_stroke_edge.l(reverse p); if not cycle p: result.b:=pen_cap(predir infinity of result.l,postdir 0 of result.r, -postdir 0 of p,point 0 of p,local_nib_.l(last),local_nib_.r(0)); result.e:=pen_cap(predir infinity of result.r,postdir 0 of result.l, predir last of p,point last of p,local_nib_.r(last), local_nib_.l(0)); result:=result.r && result.e && result.l && result.b && cycle; fi enddef; vardef pen_cap(expr a,b,c,p,niba,nibb)= if path_eq(niba,nibb): pen_join(a,b,p,niba) else: pen_join(a,c rotated 90,p,niba)--pen_join(c rotated 90,b,p,nibb) fi enddef; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % POSTSCRIPT FONT GENERATION % Note that this has been stripped down a lot from the METATYPE1 % original code; most of the stuff for hinting, ligature tables, % METAFONT-style proof generation, and so on has been removed % because it's irrelevant to Tsukurimashou. vardef pfi_file = jobname & ".pfi" enddef; vardef pic_file = "piclist" enddef; vardef dim_file = jobname & ".dim" enddef; errorstopmode; warningcheck:=-1; ignore:=whatever; process:=0; utilize:=1; store:=2; % constants for introducing let semicolon_=; ; % stores original meaning of a semicolon newinternal tracingdimens; % if |tracingdimens>0| then |dim_file| is generated def write_special = % additional info to be processed by AWK special "%GLYNFO: " & enddef; vardef mtone_glyph_pfx = "MT1: glyph " & str glyph_name & ": " enddef; def mtone_message = message mtone_glyph_pfx & enddef; % Macro write_tex provides contact with the % outer world. The macro contains the information about EPSes that is % used for proofing and assembling the font; must be consistent with % the definitions contained in the files `mpform.sty' and `mp2pf.awk'. vardef write_tex(expr name, num) = write "\EPSNAMEandNUMBER{" & name & "}{" & decimal(num) & "}" to pic_file & ".tex" enddef; % The following macros are related to the operation of slanting. % In particular, they enable to keep a fixed width of a stem % after slanting. vardef slant_ang = % should be rather called ``local_slant_angle'' slang \\ if known glyph_slanting.glyph_name: * glyph_slanting.glyph_name fi enddef; vardef slant_val = tand(slant_ang) enddef; vardef slant_preadjust(expr slope, slang) = % |if sind(angle(slope))=0: 1 else:| % | abs(sind(angle(slope))/sind(angle(cotd(angle(slope))+tand(slang),1)))| % |fi| % Correction of stem size taking into account its slope and a slant angle; % nice formula, isn't it? Much simpler than the previous one, yet equivalent: length(unitvector(slope) slanted tand(slang)) enddef; vardef slant_stroke_val = slant_val enddef; % compatibility with plain_ex.mp vardef stem_corr (expr slope) = slant_preadjust(slope, slant_ang) enddef; def italicized = % fairly complex operation if slang<>0: if known glyph_slanting.glyph_name: if glyph_slanting.glyph_name=0: shifted (math_axis*tand(slang),0) fi fi shifted (italic_shift*tand(slang),0) % re-positioning slanted slant_val % and slanting fi enddef; primarydef b || c = whatever*b + c*stem_corr(b)*unitvector(b rotated 90) enddef; primarydef c /\ b = % A variant of the |leg| procedure that iteratively counteracts slant % deformation; as with |leg|, given: |c| -- hypotenuse (vector) of % a right-angled triangle, |b| -- the length of one of its legs; % result: the other leg of the triangle (vector), if slant_ang=0: (c leg b) else: begingroup save b_, b__, n_; b_:=b__:=b; n_:=10; forever: b_:=b*stem_corr(c leg b_); exitif (abs(b_-b__)<.01) or (n_<=0); b__:=b_; n_:=n_-1; endfor if (abs(b_-b__)>=.01): errhelp "The result is likely to be weird."; errmessage mtone_glyph_pfx & "iteration hasn't converged"; fi c leg b_ endgroup fi enddef; % Obsolete? vardef rib(expr t,p,r) text u = % |u| is either empty or a vector save k_; pair k_; for i_:=u: k_:=u; endfor if unknown k_: k_=((udir t of p) rotated 90); fi (point t of p) + r * k_ * stem_corr(k_ rotated 90) enddef; % The operation {\it compose_path\/} is useful in \MP{} programs % automatically generated from PFB sources (pf2mt1 utility). Suffixes % $a$ and $b$ of control nodes stand for `after' and `before', respectively; % The operation {\it compose_path\/} makes use of the operation % {\it compose_segment\/} that serves for constructing non-cyclic % paths. Undefined nodes are ignored. vardef compose_segment@#(expr m,n) = % |m<=n|, not checked if unknown inside_compose_path_: save idx_, n_; n_:=-1; fi save n__; n__=n_+1; for i_:=m upto n: if known @#[i_]: idx_[incr(n_)]=i_; fi endfor for i_:=n__ upto n_-1: @#[idx_[i_]] .. controls @#[idx_[i_]] if known @#[idx_[i_]]a: a fi and @#[idx_[i_+1]] if known @#[idx_[i_+1]]b: b fi .. endfor @#[idx_[n_]] enddef; vardef compose_path@#(expr n) = save inside_compose_path_, idx_, n_; n_:=-1; inside_compose_path_:=1; compose_segment@#(0,n) if @#[idx_[0]]=@#[idx_[n_]]: & else: -- fi \\ cycle enddef; % Basic macros for building character glyphs: vardef round_node_values(expr p) = save d_; % candidates for Flex -- no checking for ``straightlinessness'' for t_=0 upto length(p)-1: if round(point t_ of p)=round(point t_+1 of p): hide(mtone_message "degenerated bezier " & ", length=" & decimal(length(p)) & " " & ", time=" & decimal(t_) & " "; show p) else: round(point t_ of p).. if if known d_[t_] or known d_[t_+1]: false else: is_line(subpath (t_,t_+1) of p) fi: controls round(point t_ of p) and round(point t_+1 of p) else: controls round(postcontrol t_ of p) and round(precontrol t_+1 of p) fi .. fi endfor round(point length(p) of p) \\ if cycle p: & cycle fi enddef; primarydef a start b = if cycle a: if b=default: default_start_(a) else: ((subpath (b,length(a)+b) of a) & cycle) fi else: a fi enddef; newinternal default; default:=infinity; vardef default_start_(expr p) = save i_,j_,pi_,pj_; pair pi_,pj_; j_:=0; pj_:=point j_ of p; for i_=1 upto length(p): pi_:=point i_ of p; if (xpart(pi_)>xpart(pj_)) or (xpart(pi_)=xpart(pj_)) and (ypart(pi_)1: errhelp "The result is likely to be weird."; errmessage mtone_glyph_pfx & "strange turning number in Fill, " & decimal(turningnumber h_); fi if glyph_usage div store = 1: % storing glyph_stored.glyph_name[incr glyph_stored.glyph_name.num]=h_; fi glyph_list[incr glyph_list.num]:=round_node_values(h_ italicized); update_glyph_bb(glyph_list[glyph_list.num]); endfor; endgroup enddef; def unFill text glist = begingroup save h_; path h_; for g_:=glist: h_:=g_ start.default; % JMN's suggestion if turningnumber h_<>-1: errhelp "The result is likely to be weird."; errmessage mtone_glyph_pfx & "strange turning number in unFill, " & decimal(turningnumber h_); fi if glyph_usage div store = 1: % storing glyph_stored.glyph_name[incr glyph_stored.glyph_name.num]=h_; fi glyph_list[incr glyph_list.num]:=round_node_values(h_ italicized); endfor; endgroup enddef; def fix_hsbw (expr xr,ml,mr) = glyph_shift:=round(ml); % shift = left margin glyph_width:=round(xr+ml+mr); % declared width plus margins if glyph_usage div store = 1: % storing glyph_shift.glyph_name:=glyph_shift; glyph_width.glyph_name:=glyph_width; fi enddef; def fix_exact_hsbw(expr xr,ml,mr) = glyph_shift:=round(ml); % shift = left margin glyph_width:=xr+ml+mr; % declared width plus margins if glyph_usage div store = 1: % storing glyph_shift.glyph_name:=glyph_shift; glyph_width.glyph_name:=glyph_width; fi enddef; % Macros below set PostScript and \TeX{} units; a trick with `\#' % in {\it tfm\_units\/} proves useful in achieving compatibility % with the Knuthian fonts (e.g., it is employed in {\it logo\/} font). % Old versions of {\it tfm\_units\/} and {\it ps\_units\/} are less % accurate, but are kept because of backward compatibility reasons. vardef tfm_units(text x) = save #; if known (x#): x# else: x/(1000/designsize) fi enddef; vardef old_tfm_units(text x) = save #; if known (x#): x# else: x/1000*designsize fi enddef; vardef ps_units(expr x) = x*(1000/designsize) enddef; vardef old_ps_units(expr x) = x/designsize*1000 enddef; def define_ps_units(text t) = forsuffixes $:=t: $:=ps_units($.#); endfor enddef; def define_whole_ps_units(text t) = forsuffixes $:=t: $:=round(ps_units($.#)); endfor enddef; def define_even_ps_units(text t) = forsuffixes $:=t: $:=2round(1/2ps_units($.#)); endfor enddef; % In general, all objects are supposed to be drawn by the % {\bf endglyph} macro, i.e., all drawing operations are deferred. % The same concerns labelling, which necessitates redefinition % of labelling macros. def label_(suffix pos)(expr s,z, dot_or_not) = % should be more complex if overlapping labels are to be avoided enddef; string label_defaultfont; label_defaultfont:="cmr10"; newinternal label_defaultscale; label_defaultscale:=magstep 5; % If the {\it project\/} variable is assigned value greater than~0, % proofing mode is assumed; the following macros display then % the details of the construction of glyphs for proofing purposes. % The larger value of the variable {\it project}, the more details % are visualised. def local_drawoptions (text t) = % to be used within a group, see below % \begingroup \def\\#1{{\it#1}}% local: no underscore hacks save _op_; drawoptions(t); % \endgroup enddef; def update_glyph_bb(expr p) = if unknown glyph_llx: glyph_llx:=xpart(llcorner(p)); glyph_lly:=ypart(llcorner(p)); glyph_urx:=xpart(urcorner(p)); glyph_ury:=ypart(urcorner(p)); else: if xpart(llcorner(p))glyph_urx: glyph_urx:=xpart(urcorner(p)); fi if ypart(urcorner(p))>glyph_ury: glyph_ury:=ypart(urcorner(p)); fi fi enddef; string stencil_dir; def ship_glyphs = begingroup local_drawoptions(); for g_:=1 upto glyph_list.num: if turningnumber glyph_list[g_]>0: fill else: unfill fi glyph_list[g_] shifted (glyph_shift,0); endfor endgroup enddef; newinternal show_stroke_size; show_stroke_size:=1.5; color show_stroke_color; show_stroke_color:=red; color label_dot_color, label_text_color; label_dot_color:=.8white; label_text_color:=black; newinternal label_dot_size; label_dot_size:=3bp; % Begin and end of the definitions of a character glyph: def begin_skip = let endglyph = fi; let ; = end_skip semicolon_ if false: enddef; def end_skip = let ; = semicolon_ semicolon_ let endglyph = endglyph_; enddef; def uni_name(text name) = % name is either a suffix or a string expression if is_suffix(name): name else: scantokens("_" & name) fi enddef; def glyph_name_ext = enddef; def beginglyph(text name) = % def glyph_name = uni_name(name) glyph_name_ext enddef; % to use in |endglyph| numeric glyph_usage; glyph_usage:=glyph_usage.glyph_name; if unknown glyph_usage: expandafter begin_skip fi string ps_name; ps_name:=glyph_ps_name.glyph_name; if unknown ps_name: errhelp "Use macro `introduce' or `assign_name' prior to `beginglyph.'"; errmessage "MT1: PS name not assigned to " & str glyph_name; fi if name_used(glyph_name): errhelp "Proceed if you wish, I'll use the second glyph description."; errmessage "MT1: double output: name " & (str glyph_name); fi if glyph_usage mod store = 1: % utilizing mark_name_used(glyph_name); fi numeric glyph_code, glyph_num; glyph_code:=name_to_code(glyph_name); if glyph_code<0: glyph_num:=500-decr(min_glyph_code); else: glyph_num:=100+glyph_code; if glyph_code>max_glyph_code: max_glyph_code:=glyph_code; fi fi % beginfig(glyph_num) if glyph_usage mod store = 1: % utilizing write_special "NAME " & ps_name & " " & decimal(glyph_code); % mpform.sty and mp2pf.awk interface % |write_tex(glyph_name, glyph_num);| write_tex(ps_name, glyph_num); fi; glyph_list.num:=label_list.num:=0; path glyph_list[\\]; picture label_list[\\]; pair label_list.dot[\\]; numeric glyph_llx, glyph_lly, glyph_urx, glyph_ury; numeric bitmap_scale; pair bitmap_offset; numeric glyph_shift, glyph_width, glyph_axis; save glyph; hstem_list.num:=vstem_list.num:=hstem_list.cov:=vstem_list.cov:=0; pair hstem_list[\\], vstem_list[\\]; path hstem_list_segms[\\], vstem_list_segms[\\]; numeric old_hinting_scheme, new_hinting_scheme; if glyph_usage div store = 1: % storing if not path glyph_stored.glyph_name[0]: % glyph_name may contain digits scantokens("path " & genericize(str glyph_stored.glyph_name) & "[]"); scantokens("pair " & genericize(str hstem_stored.glyph_name) & "[]"); scantokens("path " & genericize(str hstem_stored_segms.glyph_name) & "[]"); scantokens("pair " & genericize(str vstem_stored.glyph_name) & "[]"); scantokens("path " & genericize(str vstem_stored_segms.glyph_name) & "[]"); fi glyph_stored.glyph_name.num:=0; hstem_stored.glyph_name.num:=0; vstem_stored.glyph_name.num:=0; fi scantokens extra_beginglyph; enddef; picture endglyph_picture; def endglyph = scantokens extra_endglyph; % usually, |currentpicture=nullpicture|, but if not (i.e., some % extra objects have been drawn), the picture must be shifted: endglyph_picture:=currentpicture shifted (glyph_shift,0); currentpicture:=nullpicture; if known glyph_axis: % actually, used only with stored chars glyph_axis.glyph_name:=glyph_axis; fi % fix char dimensions and write them to TFM and/or |dim_file| % independently of |glyph_usage| (|dim_file|) % fix_tfm_data(glyph_urx+glyph_shift, glyph_ury); if glyph_usage mod store = 1: % utilizing write_special "HSBW * " & decimal(glyph_width); write_special "BEGINCHAR"; ship_glyphs; endfig; else: endgroup; % ends figure without shipping it out fi enddef; let endglyph_=endglyph; string extra_beginglyph, extra_endglyph; extra_beginglyph=extra_endglyph=""; % Additional macros vardef fix_name_list text t = string name_list[]; numeric name_list.num; name_list.num:=0; save , ; let , = fix_name_list_; fix_name_list_ t enddef; def fix_name_list_ suffix name = ; % important semicolon! if str name<>"": fix_name_list_s_ name else: fix_name_list_e_ "_" & fi enddef; def fix_name_list_s_ suffix s_name = fix_name_list_e_ (str s_name) enddef; def fix_name_list_e_ expr e_name = % name is expected to be of the string type name_list[incr name_list.num]=e_name enddef; def introduce suffix name = if str name="": introduce_ elseif (substring (0,1) of str name)<>"_": introduce_ name else: introduce__ name fi enddef; def introduce_ expr name = % name is expected to be a string expression introduce__ scantokens("_" & name) enddef; vardef introduce__@#(expr usage, slanting)(text stencil) = if (unknown process_selected or known process_selected@#) and known usage and unknown ignore_selected@#: glyph_usage@#:=usage; % |ignore=whatever|, |process=0|, |utilize=1|, |store=2| if unknown glyph_ps_name@#: % set default: assign_name @# (substring (1,infinity) of (str @#)); fi glyph_slanting@#:=slanting; % ignore |slant_ang| if |0|; use |slant_ang| otherwise % |stencil| can be either string (recommended) or suffix (with default % extension |".eps"| -- obsolete), hence some trickery below save r_; string r_; for i_:=stencil: if string i_: r_:=i_; fi endfor if unknown r_: forsuffixes i_:=stencil: r_:= str i_; endfor if r_<>"": r_:=r_ & ".eps"; fi fi if r_<>"": if not string glyph_stencil@#: scantokens("string " & genericize(str glyph_stencil@#)); fi glyph_stencil@# = r_; fi fi enddef; vardef assign_name@#(expr ps_name) = if not string glyph_ps_name @#: scantokens("string " & genericize(str glyph_ps_name@#)); fi glyph_ps_name@#:=ps_name; enddef; def standard_introduce(expr name) = introduce name (utilize+store)(1)(); enddef; vardef name_to_code(text name) = save res_, name_; string name_; name_:=substring (1,infinity) of str uni_name(name); res_=-1; for i:=0 upto 255: % 1-to-1 coding presumed if known code_to_name_[i]: if code_to_name_[i]=name_: res_:=i; fi fi exitif res_>-1; endfor res_ enddef; def encode(text name)(expr glyph_code)= if (glyph_code<0) or (glyph_code>255): errhelp "The code must be within the range 0..255."; errmessage "MT1: improper code " & decimal(glyph_code) & " (`encode' ignored)"; elseif known code_to_name_[glyph_code]: errhelp "A given code can be assigned only to one name (obviously)."; errmessage "MT1: repeated code for " & code_to_name_[glyph_code] & " (" & decimal(glyph_code) & "; `encode' ignored)"; else: code_to_name_[glyph_code]:=substring (1,infinity) of str uni_name(name); fi enddef; string code_to_name_[\\]; vardef name_used(text name) = save res_, name_; boolean res_; string name_; name_:=substring (1,infinity) of str uni_name(name); res_:=false; for i:=1 upto max_name_used: res_:=(name_used_[i]=name_); exitif res_; endfor res_ enddef; def mark_name_used(text name)= name_used_[incr max_name_used]:=substring (1,infinity) of str uni_name(name); enddef; string name_used_[\\]; newinternal max_name_used; vardef string_date = if day<10: "0" & fi decimal(day) & "." & if month<10: "0" & fi decimal(month) & "." & decimal(year) enddef; def set_pfi (suffix kind) (expr val) = if known val: if (numeric val) or (string val) or (boolean val): if (numeric val) and (not numeric pf_info_set.kind): scantokens ("numeric " & genericize(str pf_info_set.kind)); elseif (string val) and (not string pf_info_set.kind): scantokens ("string " & genericize(str pf_info_set.kind)); elseif (boolean val) and (not boolean pf_info_set.kind): scantokens ("boolean " & genericize(str pf_info_set.kind)); fi pf_info_set.kind:=val; write str kind & " : " & if string val: val elseif numeric val: decimal(val) elseif boolean val: if val: "true" else: "false" fi fi to pfi_file; else: errhelp "Proceed, I'll just ignore the setting."; errmessage "MT1: pf_info keys can only be of numeric, string " & "and boolean type"; fi fi enddef; def pf_info_version expr v = set_pfi(VERSION,v); enddef; def pf_info_creationdate text t = begingroup save k_; k_:=0; for t_:=t: k_:=k_+1; set_pfi(CREATION_DATE, t_); exitif k_=1; endfor if k_=0: set_pfi(CREATION_DATE, string_date); fi endgroup enddef; def pf_info_fontname text t = begingroup save k_; k_:=0; for t_:=t: k_:=k_+1; if k_=1: set_pfi(FONT_NAME, t_); fi if k_=2: set_pfi(FULL_NAME, t_); fi exitif k_=2; endfor if k_=1: set_pfi(FULL_NAME, pf_info_set.FONT_NAME); fi endgroup enddef; def pf_info_author expr v = set_pfi(AUTHOR,v); enddef; % There is `much ado about nothing,' i.e., about the sign of descender: % in a PFB file in an `ADL' comment, descender is positive, while in an AFM % in a `Descender' comment -- negative; we will distinguish between % the two, the more so as `ADL' comment is not mentioned in % in the Adobe documentation {\it Adobe Type~1 Font Format}. def pf_info_ascender expr v = ascender:=v; set_pfi(ASCENDER,v); enddef; def pf_info_descender expr v = descender:=v; set_pfi(DESCENDER,v); enddef; def pf_info_adl text t = begingroup save k_; k_:=0; for t_:=t: k_:=k_+1; if (k_=1) and known t_: adl_ascender:=t_; set_pfi(ADL_ASCENDER,t_); fi if (k_=2) and known t_: adl_descender:=t_; set_pfi(ADL_DESCENDER,t_); fi if (k_=3) and known t_: adl_lineskip:=t_; set_pfi(ADL_LINESKIP,t_); fi exitif k_=3; endfor endgroup enddef; def pf_info_underline text t = begingroup save k_; k_:=0; for t_:=t: k_:=k_+1; if k_=1: set_pfi(UNDERLINE_POSITION,t_); fi if k_=2: set_pfi(UNDERLINE_THICKNESS,t_); fi exitif k_=2; endfor endgroup enddef; def pf_info_pfm text t = % parameters: name, bold (0 or 1), italic (0 or 1), char set; % each of them can be either known or unknown or "*" (which means unknown); % the last parameter can be either numeric or string representation of % a valid Perl numeric value (e.g., "0xFF" means 255). begingroup save k_; k_:=0; for t_:=t: k_:=k_+1; if (k_=1) and known t_: set_pfi(PFM_NAME,t_); fi if (k_=2) and known t_: set_pfi(PFM_BOLD,t_); fi if (k_=3) and known t_: set_pfi(PFM_ITALIC,t_); fi if (k_=4) and known t_: set_pfi(PFM_CHARSET,t_); fi exitif k_=4; endfor endgroup enddef; def pf_info_fixedpitch expr v = set_pfi(FIXED_PITCH,v); enddef; def pf_info_capheight expr v = uc_height:=v; set_pfi(CAPHEIGHT,v); enddef; def pf_info_weight expr v = set_pfi(WEIGHT,v); enddef; def pf_info_stdvstem expr v = set_pfi(STDVW,v); enddef; def pf_info_stdhstem expr v = set_pfi(STDHW,v); enddef; def pf_info_forcebold expr v = set_pfi(FORCE_BOLD,v); enddef; % TeX-related font info (fontdimens and headerbytes): def pf_info_fontdimen text t = % exceptionally, TFM units expected begingroup save i_, k_, b_; boolean b_; k_:=0; if true for t_:=t: hide(k_:=k_+1) and known t_ endfor and (k_<=3): k_:=0; for t_:=t: k_:=k_+1; if k_=1: i_:=t_; % |b| means ``we are ready to override (possibly) the previous value % of a font parameter unless we are inside |complete_tfm_info| and % then we want to set only a `virgin' value.'' b_:=unknown completing_tfm_info or unknown pf_info_set.FONT_DIMEN[i_]; fi if b_ and (k_=2): set_pfi(FONT_DIMEN[i_],t_); fontdimen i_: t_; fi if b_ and (k_=3): set_pfi(DIMEN_NAME[i_],t_); fi endfor if b_ and (k_=2): set_pfi(DIMEN_NAME[i_],"(unknown fontdimen name)"); fi else: errhelp "Proceed, I'll just ignore TFM fontdimen settings."; errmessage "MT1: invalid TFM fontdimen data"; fi endgroup enddef; def pf_info_headerbyte text t = begingroup save i_, k_; k_:=0; if true for t_:=t: hide(k_:=k_+1) and known t_ endfor and (k_=2): k_:=0; for t_:=t: k_:=k_+1; if k_=1: i_:=t_; fi if k_=2: set_pfi(HEADER_BYTE[i_],if numeric t_: decimal(t_) else: t_ fi); if i_=9: % encoding scheme, e.g., |"TEX TEXT"| headerbyte 9: BCPL_string(t_,40); fi if i_=49: % font family, e.g., |"CMR"| headerbyte 49: BCPL_string(t_,20); fi if i_=72: % family member number, which should be between 0 and 255 headerbyte 72: t_; fi fi endfor else: errhelp "Proceed, I'll just ignore TFM headerbyte settings."; errmessage "MT1: invalid TFM headerbyte data"; fi endgroup enddef; def pf_info_designsize expr v = % |designsize| is special designsize:=v; set_pfi(DESIGN_SIZE,decimal(v) & " (in points)"); enddef; def pf_info_italicangle expr v = begingroup save tfm_units; vardef tfm_units(text x) = c enddef; slang:=v; set_pfi(ITALIC_ANGLE,-v); pf_info_fontdimen 1, if known slant: slant else: tand(slang) fi, "(slant)"; endgroup enddef; def pf_info_space text t = % three in one begingroup save k_; k_:=0; for t_:=t: k_:=k_+1; if (designsize<>0) and known t_: if k_=1: space:=t_; pf_info_fontdimen 2, tfm_units(space), "(space)"; elseif k_=2: space_stretch:=t_; pf_info_fontdimen 3, tfm_units(space_stretch), "(space stretch)"; elseif k_=3: space_shrink:=t_; pf_info_fontdimen 4, tfm_units(space_shrink), "(space shrink)"; fi fi exitif k_=3; endfor endgroup enddef; def pf_info_normal_space text t = begingroup save k_; k_:=0; if true for t_:=t: hide(k_:=k_+1) endfor and (k_<=2): k_:=0; for t_:=t: k_:=k_+1; if (k_=1) and known t_: space:=t_; fi if (k_=2) and known t_: % |t_| is expected to be in TFM units pf_info_fontdimen 2, t_, "(space)"; fi endfor if (k_=1) and (designsize<>0) and known space: pf_info_fontdimen 2, tfm_units(space), "(space)"; fi fi endgroup enddef; def pf_info_space_stretch text t = begingroup save k_; k_:=0; if true for t_:=t: hide(k_:=k_+1) endfor and (k_<=2): k_:=0; for t_:=t: k_:=k_+1; if (k_=1) and known t_: space_stretch:=t_; fi if (k_=2) and known t_: % |t_| is expected to be in TFM units pf_info_fontdimen 3, t_, "(space stretch)"; fi endfor if (k_=1) and (designsize<>0) and known space_stretch: pf_info_fontdimen 3, tfm_units(space_stretch), "(space stretch)"; fi fi endgroup enddef; def pf_info_space_shrink text t = begingroup save k_; k_:=0; if true for t_:=t: hide(k_:=k_+1) endfor and (k_<=2): k_:=0; for t_:=t: k_:=k_+1; if (k_=1) and known t_: space_shrink:=t_; fi if (k_=2) and known t_: % |t_| is expected to be in TFM units pf_info_fontdimen 4, t_, "(space shrink)"; fi endfor if (k_=1) and (designsize<>0) and known space_shrink: pf_info_fontdimen 4, tfm_units(space_shrink), "(space shrink)"; fi fi endgroup enddef; def pf_info_xheight text t = begingroup save k_; k_:=0; if true for t_:=t: hide(k_:=k_+1) endfor and (k_<=2): k_:=0; for t_:=t: k_:=k_+1; if (k_=1) and known t_: lc_height:=t_; set_pfi(XHEIGHT, t_); fi if (k_=2) and known t_: % |t_| is expected to be in TFM units pf_info_fontdimen 5, t_, "(xheight)"; fi endfor if (k_=1) and (designsize<>0) and known lc_height: pf_info_fontdimen 5, tfm_units(lc_height), "(xheight)"; fi fi endgroup enddef; def pf_info_quad text t = begingroup save k_; k_:=0; if true for t_:=t: hide(k_:=k_+1) endfor and (k_<=2): k_:=0; for t_:=t: k_:=k_+1; if (k_=1) and known t_: quad:=t_; fi if (k_=2) and known t_: % |t_| is expected to be in TFM units pf_info_fontdimen 6, t_, "(quad)"; fi endfor if (k_=1) and (designsize<>0) and known quad: pf_info_fontdimen 6, tfm_units(quad), "(quad)"; fi fi endgroup enddef; def pf_info_extra_space text t = begingroup save k_; k_:=0; if true for t_:=t: hide(k_:=k_+1) endfor and (k_<=2): k_:=0; for t_:=t: k_:=k_+1; if (k_=1) and known t_: extra_space:=t_; fi if (k_=2) and known t_: % |t_| is expected to be in TFM units pf_info_fontdimen 7, t_, "(extra space)"; fi endfor if (k_=1) and (designsize<>0) and known extra_space: pf_info_fontdimen 7, tfm_units(extra_space), "(extra space)"; fi fi endgroup enddef; def pf_info_encoding text t = begingroup save k_; k_:=0; for t_:=t: k_:=k_+1; if (k_=1) and known t_: if t_<>"": set_pfi(ENCODING_SCHEME, t_); fi fi if (k_=2) and known t_: if t_<>"": pf_info_headerbyte 9, t_; fi fi if (k_=3) and known t_: if t_<>"": set_pfi(ENCODING_NAME, t_); fi fi exitif k_=3; endfor if (k_=1) and known pf_info_set.ENCODING_SCHEME % upward compatibility and unknown pf_info_set.HEADER_BYTE9: pf_info_headerbyte 9, pf_info_set.ENCODING_SCHEME; fi endgroup enddef; def pf_info_familyname text t = begingroup save k_; k_:=0; for t_:=t: k_:=k_+1; if k_=1: set_pfi(FAMILY_NAME, t_); fi if k_=2: pf_info_headerbyte 49, t_; fi exitif k_=2; endfor if k_=1: pf_info_headerbyte 49, pf_info_set.FAMILY_NAME; fi endgroup enddef; % bluezz forever... newinternal blue_fuzz, blue_scale, blue_shift; blue_fuzz:=0; % Adobe Type 1 Font Format, p. 41 blue_scale:=0.0454545; blue_shift:=7; % it is advisable to avoid typso whenever possible: def show_compose expr x = show_compose_ :=x; enddef; def show_fills expr x = show_fills_ :=x; enddef; def show_strokes expr x = show_strokes_ :=x; enddef; def show_paths expr x = show_paths_ :=x; enddef; def show_labels expr x = show_labels_ :=x; enddef; def show_boxes expr x = show_boxes_ :=x; enddef; def show_stems expr x = show_stems_ :=x; enddef; def show_stencils expr x = show_stencils_ :=x; enddef; string extra_beginfont, extra_endfont; extra_beginfont=extra_endfont=""; def beginfont = min_glyph_code=max_glyph_code=0; complete_param_setting; scantokens extra_beginfont; enddef; def complete_param_setting = if designsize=0: designsize:=10; fi if unknown space: space:=333; fi if unknown space_stretch: space_stretch:=round(1/2space); fi if unknown space_shrink: space_shrink:=round(1/3space); fi if unknown extra_space: extra_space:=round(1/3space); fi if unknown quad: quad:=1000; fi if unknown slang: if known slant: % compatibility with the Old Tradition... slang:=angle(1, slant); else: slang:=0; fi fi if unknown uc_height: uc_height:=750; fi if unknown lc_height: lc_height:=400; fi if unknown italic_shift: italic_shift:=-40; fi % used to be |-100| if unknown depth: depth:=-250; fi if unknown ascender: ascender:=uc_height; fi if unknown descender: descender:=depth; fi if unknown adl_ascender: adl_ascender:=uc_height; fi if unknown adl_descender: adl_descender:=-depth; fi if unknown adl_lineskip: adl_lineskip:=0; fi if unknown top_line: top_line:=adl_ascender+1/2adl_lineskip; fi if unknown bot_line: bot_line:=-(adl_descender+1/2adl_lineskip); fi if unknown math_axis: math_axis:=250; fi if unknown math_rule: math_rule:=40; fi begingroup save rth_, pt_, subs_, desc_depth_, fig_height_, asc_height_; rth_:=math_rule; pt_:=100; % math symbol font parameters (defaults excerpted from cmsy10) subs_:=7/10; desc_depth_:=70/36pt_; fig_height_:=232/36pt_; asc_height_:=250/36pt_; if unknown num_one: num_one:=math_axis+3.51rth_+54/36pt_+subs_*desc_depth_; fi if unknown num_two: num_two:=math_axis+1.51rth_+30/36pt_; fi if unknown num_three: num_three:=math_axis+1.51rth_+48/36pt_; fi if unknown denom_one: denom_one:=3.51rth_+subs_*fig_height_+124/36pt_-math_axis; fi if unknown denom_two: denom_two:=1.51rth_+subs_*fig_height_+30/36pt_-math_axis; fi if unknown sup_one: sup_one:=8.99pt_-subs_*asc_height_; fi if unknown sup_two: sup_two:=8.49pt_-subs_*asc_height_; fi if unknown sup_three: sup_three:=104/36pt_; fi if unknown sub_one: sub_one:=54/36pt_; fi if unknown sub_two: sub_two:=-8.49pt_+2subs_*asc_height_+3.1rth_; fi if unknown sup_drop: sup_drop:=subs_*asc_height_-36/36pt_; fi if unknown sub_drop: sub_drop:=18/36pt_; fi if unknown delim_one: delim_one:=23.9pt_; fi if unknown delim_two: delim_two:=10.1pt_; fi % math extension font parameters (defaults excerpted from cmex10) if unknown big_op_spacing_one: big_op_spacing_one:=40/36pt_; fi; if unknown big_op_spacing_two: big_op_spacing_two:=60/36pt_; fi; if unknown big_op_spacing_three: big_op_spacing_three:=72/36pt_; fi; if unknown big_op_spacing_four: big_op_spacing_four:=216/36pt_; fi; if unknown big_op_spacing_five: big_op_spacing_five:=36/36pt_; fi; endgroup; enddef; def endfont = scantokens extra_endfont; complete_pf_info; complete_tfm_info; scantokens "end"; enddef; def complete_pf_info = if unknown pf_info_set.DESIGN_SIZE: pf_info_designsize designsize; fi if unknown pf_info_set.VERSION: pf_info_version "0.000"; fi if unknown pf_info_set.AUTHOR: pf_info_author "Unknown"; fi if unknown pf_info_set.CREATION_DATE: pf_info_creationdate; fi if unknown pf_info_set.FAMILY_NAME: pf_info_familyname "Untitled"; fi if unknown pf_info_set.FONT_NAME: pf_info_fontname "Untitled"; fi if unknown pf_info_set.ASCENDER: pf_info_ascender ascender; fi if unknown pf_info_set.DESCENDER: pf_info_descender descender; fi if unknown pf_info_set.ADL_ASCENDER: pf_info_adl adl_ascender, whatever, whatever; fi if unknown pf_info_set.ADL_DESCENDER: pf_info_adl whatever, adl_descender, whatever; fi if unknown pf_info_set.ADL_LINESKIP: pf_info_adl whatever, whatever, adl_lineskip; fi if unknown pf_info_set.UNDERLINE_POSITION: pf_info_underline -200, whatever; fi if unknown pf_info_set.UNDERLINE_THICKNESS: pf_info_underline whatever, math_rule; fi if unknown pf_info_set.ITALIC_ANGLE: pf_info_italicangle slang; fi if unknown pf_info_set.FIXED_PITCH: pf_info_fixedpitch false; fi if unknown pf_info_set.CAPHEIGHT: pf_info_capheight uc_height; fi if unknown pf_info_set.XHEIGHT: pf_info_xheight lc_height; fi if unknown pf_info_set.WEIGHT: pf_info_weight "Normal"; fi if unknown pf_info_set.STDVW: fi % just ignore if unknown pf_info_set.STDHW: fi % just ignore if unknown pf_info_set.FORCE_BOLD: pf_info_forcebold false; fi if unknown pf_info_set.ENCODING_SCHEME: pf_info_encoding "FontSpecific", whatever; fi if unknown pf_info_set.HEADER_BYTE9: pf_info_encoding whatever, "UNSPECIFIED"; fi if unknown pf_info_set.BLUE_VALUES: set_pfi(BLUE_VALUES, ""); fi if unknown pf_info_set.OTHER_BLUES: fi % just ignore if unknown pf_info_set.BLUE_FUZZ: set_pfi(BLUE_FUZZ, blue_fuzz); fi if unknown pf_info_set.BLUE_SCALE: set_pfi(BLUE_SCALE, blue_scale); fi if unknown pf_info_set.BLUE_SHIFT: set_pfi(BLUE_SHIFT, blue_shift); fi % for those who like smart (implicit) systems: if unknown no_implicit_spaces: if not name_used("space"): if unknown glyph_usage._space: introduce _space (utilize)(0)(); fi; if (name_to_code("space")<0) and (unknown code_to_name_32): encode("space") (32); fi beginglyph(_space) fix_hsbw(space,0,0); endglyph; fi if not name_used("nbspace"): if unknown glyph_usage._nbspace: introduce _nbspace (utilize)(0)(); fi; % beginglyph(_nbspace) fix_hsbw(space,0,0); endglyph; % normal space width fi fi enddef; def complete_tfm_info = % complete fontdimen info: % |designsize| is expected to be known % |slant| dimen has already been set; |xheight| dimen -- not necessarily, % but |pf_info_set.XHEIGHT| is known: completing_tfm_info:=1; pf_info_xheight whatever, if known lc_height#: lc_height# else: tfm_units(pf_info_set.XHEIGHT) fi; pf_info_normal_space space if known space#: , space# fi; pf_info_space_stretch space_stretch if known space_stretch#: , space_stretch# fi; pf_info_space_shrink space_shrink if known space_shrink#: , space_shrink# fi; pf_info_quad quad if known quad#: , quad# fi; pf_info_extra_space extra_space if known extra_space#: , extra_space# fi; font_math_rule math_rule; font_math_axis math_axis; % complete header info: pf_info_headerbyte 72, max(0, 254 - round 2designsize); completing_tfm_info:=whatever; enddef; def BCPL_string(expr s,n)= % string |s| becomes an |n|-byte BCPL string for l:=if length(s)>=n: n-1 else: length(s) fi: l for k:=1 upto l: , substring (k-1,k) of s endfor for k:=l+2 upto n: , 0 endfor endfor enddef; % The Old Tradition... def font_size expr x = designsize:=x enddef; def font_slant expr x = fontdimen 1: x enddef; def font_normal_space expr x = fontdimen 2: x enddef; def font_normal_stretch expr x = fontdimen 3: x enddef; def font_normal_shrink expr x = fontdimen 4: x enddef; def font_x_height expr x = fontdimen 5: x enddef; def font_quad expr x = fontdimen 6: x enddef; def font_extra_space expr x = fontdimen 7: x enddef; % A New Tradition... def def_font_param (suffix param_name)(expr param_num, param_desc) = def param_name text x = begingroup save #; % cf. the definition of |tfm_units| if (known x#) or ((designsize<>0) and known x): pf_info_fontdimen param_num, tfm_units(x), "(" & param_desc & ")"; fi endgroup enddef; enddef; def_font_param (font_math_rule, 8, "math rule"); def_font_param (font_math_axis, 22, "math axis"); % symbol fonts def_font_param (font_num_one, 8, "num1"); def_font_param (font_num_two, 9, "num2"); def_font_param (font_num_three, 10, "num3"); def_font_param (font_denom_one, 11, "denom1"); def_font_param (font_denom_two, 12, "denom2"); def_font_param (font_sup_one, 13, "sup1"); def_font_param (font_sup_two, 14, "sup2"); def_font_param (font_sup_three, 15, "sup3"); def_font_param (font_sub_one, 16, "sub1"); def_font_param (font_sub_two, 17, "sub2"); def_font_param (font_sup_drop, 18, "sup_drop"); def_font_param (font_sub_drop, 19, "sub_drop"); def_font_param (font_delim_one, 20, "delim1"); def_font_param (font_delim_two, 21, "delim2"); % extension fonts def_font_param (font_big_op_spacing_one, 9, "big_op_spacing1"); def_font_param (font_big_op_spacing_two, 10, "big_op_spacing2"); def_font_param (font_big_op_spacing_three, 11, "big_op_spacing3"); def_font_param (font_big_op_spacing_four, 12, "big_op_spacing4"); def_font_param (font_big_op_spacing_five, 13, "big_op_spacing5"); endinput fonts-ocr-b-0.2~dfsg1/install-sh000077500000000000000000000325371275507450000166520ustar00rootroot00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2009-04-28.21; # 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 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 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 trap '(exit $?); exit' 1 2 13 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 starting with `-'. 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 # Protect names starting with `-'. case $dst in -*) dst=./$dst;; esac # 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-writeable 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 -z "$d" && 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: fonts-ocr-b-0.2~dfsg1/m4/000077500000000000000000000000001275507450000151545ustar00rootroot00000000000000fonts-ocr-b-0.2~dfsg1/m4/ax_add_am_macro.m4000066400000000000000000000016011275507450000204720ustar00rootroot00000000000000# =========================================================================== # http://www.gnu.org/software/autoconf-archive/ax_add_am_macro.html # =========================================================================== # # SYNOPSIS # # AX_ADD_AM_MACRO([RULE]) # # DESCRIPTION # # Adds the specified rule to $AMINCLUDE. This macro will only work # properly with implementations of Make which allow include statements. # See also AX_ADD_AM_MACRO_STATIC. # # LICENSE # # Copyright (c) 2009 Tom Howard # # Copying and distribution of this file, with or without modification, are # permitted in any medium without royalty provided the copyright notice # and this notice are preserved. This file is offered as-is, without any # warranty. #serial 9 AC_DEFUN([AX_ADD_AM_MACRO],[ AC_REQUIRE([AX_AM_MACROS]) AX_APPEND_TO_FILE([$AMINCLUDE],[$1]) ]) fonts-ocr-b-0.2~dfsg1/m4/ax_am_jobserver.m4000066400000000000000000000044151275507450000205700ustar00rootroot00000000000000# =========================================================================== # http://www.gnu.org/software/autoconf-archive/ax_am_jobserver.html # =========================================================================== # # SYNOPSIS # # AX_AM_JOBSERVER([default_value]) # # DESCRIPTION # # Enables the use of make's jobserver for the purpose of parallel building # by passing the -j option to make. # # The option --enable-jobserver is added to configure which can accept a # yes, no, or an integer. The integer is the number of separate jobs to # allow. If 'yes' is given, then the is assumed to be one more than the # number of CPUs (determined through AX_COUNT_CPUS). If the value of no is # given, then the jobserver is disabled. The default value is given by the # first argument of the macro, or 'yes' if the argument is omitted. # # This macro makes use of AX_AM_MACROS, so you must add the following line # # @INC_AMINCLUDE@ # # to your Makefile.am files. # # MODIFIED # # By Matthew Skala, , 24 September 2012, to # make the -j flag conditional, removing a "-jN forced in submake" # warning when used in nested packages. This probably requires GNU Make, # but that was likely required already. It also requires a variable named # percent, because literal percent signs seem to break things here. # # LICENSE # # Copyright (c) 2008 Michael Paul Bailey # # Copying and distribution of this file, with or without modification, are # permitted in any medium without royalty provided the copyright notice # and this notice are preserved. This file is offered as-is, without any # warranty. #serial 8 AC_DEFUN([AX_AM_JOBSERVER], [ AC_REQUIRE([AX_COUNT_CPUS]) AC_REQUIRE([AX_AM_MACROS]) AC_ARG_ENABLE( jobserver, [ --enable-jobserver@<:@=no/yes/@%:@@:>@ use up to @%:@ make jobs, yes=CPUs+1 @<:@m4_ifval([$1],[$1],[yes])@:>@],, [enable_jobserver=m4_ifval([$1],[$1],[yes])]) AS_IF([test "x$enable_jobserver" = "xyes"], [enable_jobserver=$CPU_COUNT ((enable_jobserver++))]) m4_pattern_allow(AM_MAKEFLAGS) AS_IF([test "x$enable_jobserver" != "xno"], [AX_ADD_AM_MACRO([AM_MAKEFLAGS += \$(if \$(filter -j\$(percent),\$(MAKEFLAGS)),,-j$enable_jobserver ) ])]) ]) fonts-ocr-b-0.2~dfsg1/m4/ax_am_macros.m4000066400000000000000000000022271275507450000200520ustar00rootroot00000000000000# =========================================================================== # http://www.gnu.org/software/autoconf-archive/ax_am_macros.html # =========================================================================== # # SYNOPSIS # # AX_AM_MACROS # # DESCRIPTION # # Adds support for macros that create Make rules. You must manually add # the following line # # @INC_AMINCLUDE@ # # to your Makefile.in (or Makefile.am if you use Automake) files. # # LICENSE # # Copyright (c) 2009 Tom Howard # # Copying and distribution of this file, with or without modification, are # permitted in any medium without royalty provided the copyright notice # and this notice are preserved. This file is offered as-is, without any # warranty. #serial 9 AC_DEFUN([AX_AM_MACROS], [ AC_MSG_NOTICE([adding automake macro support]) AMINCLUDE="aminclude.am" AC_SUBST(AMINCLUDE) AC_MSG_NOTICE([creating $AMINCLUDE]) AMINCLUDE_TIME=`date` AX_PRINT_TO_FILE([$AMINCLUDE],[[ # generated automatically by configure from AX_AUTOMAKE_MACROS # on $AMINCLUDE_TIME ]]) INC_AMINCLUDE="include \$(top_builddir)/$AMINCLUDE" AC_SUBST(INC_AMINCLUDE) ]) fonts-ocr-b-0.2~dfsg1/m4/ax_append_to_file.m4000066400000000000000000000013751275507450000210640ustar00rootroot00000000000000# =========================================================================== # http://www.gnu.org/software/autoconf-archive/ax_append_to_file.html # =========================================================================== # # SYNOPSIS # # AX_APPEND_TO_FILE([FILE],[DATA]) # # DESCRIPTION # # Appends the specified data to the specified file. # # LICENSE # # Copyright (c) 2008 Tom Howard # # Copying and distribution of this file, with or without modification, are # permitted in any medium without royalty provided the copyright notice # and this notice are preserved. This file is offered as-is, without any # warranty. #serial 7 AC_DEFUN([AX_APPEND_TO_FILE],[ AC_REQUIRE([AX_FILE_ESCAPES]) printf "$2" >> "$1" ]) fonts-ocr-b-0.2~dfsg1/m4/ax_check_gnu_make.m4000066400000000000000000000054111275507450000210320ustar00rootroot00000000000000# =========================================================================== # http://www.gnu.org/software/autoconf-archive/ax_check_gnu_make.html # =========================================================================== # # SYNOPSIS # # AX_CHECK_GNU_MAKE() # # DESCRIPTION # # This macro searches for a GNU version of make. If a match is found, the # makefile variable `ifGNUmake' is set to the empty string, otherwise it # is set to "#". This is useful for including a special features in a # Makefile, which cannot be handled by other versions of make. The # variable _cv_gnu_make_command is set to the command to invoke GNU make # if it exists, the empty string otherwise. # # Here is an example of its use: # # Makefile.in might contain: # # # A failsafe way of putting a dependency rule into a makefile # $(DEPEND): # $(CC) -MM $(srcdir)/*.c > $(DEPEND) # # @ifGNUmake@ ifeq ($(DEPEND),$(wildcard $(DEPEND))) # @ifGNUmake@ include $(DEPEND) # @ifGNUmake@ endif # # Then configure.in would normally contain: # # AX_CHECK_GNU_MAKE() # AC_OUTPUT(Makefile) # # Then perhaps to cause gnu make to override any other make, we could do # something like this (note that GNU make always looks for GNUmakefile # first): # # if ! test x$_cv_gnu_make_command = x ; then # mv Makefile GNUmakefile # echo .DEFAULT: > Makefile ; # echo \ $_cv_gnu_make_command \$@ >> Makefile; # fi # # Then, if any (well almost any) other make is called, and GNU make also # exists, then the other make wraps the GNU make. # # LICENSE # # Copyright (c) 2008 John Darrington # # Copying and distribution of this file, with or without modification, are # permitted in any medium without royalty provided the copyright notice # and this notice are preserved. This file is offered as-is, without any # warranty. #serial 7 AC_DEFUN([AX_CHECK_GNU_MAKE], [ AC_CACHE_CHECK( for GNU make,_cv_gnu_make_command, _cv_gnu_make_command='' ; dnl Search all the common names for GNU make for a in "$MAKE" make gmake gnumake ; do if test -z "$a" ; then continue ; fi ; if ( sh -c "$a --version" 2> /dev/null | grep GNU 2>&1 > /dev/null ) ; then _cv_gnu_make_command=$a ; break; fi done ; ) ; dnl If there was a GNU version, then set @ifGNUmake@ to the empty string, '#' otherwise if test "x$_cv_gnu_make_command" != "x" ; then ifGNUmake='' ; else ifGNUmake='#' ; AC_MSG_RESULT("Not found"); fi AC_SUBST(ifGNUmake) ] ) fonts-ocr-b-0.2~dfsg1/m4/ax_count_cpus.m4000066400000000000000000000026671275507450000203030ustar00rootroot00000000000000# =========================================================================== # http://www.gnu.org/software/autoconf-archive/ax_count_cpus.html # =========================================================================== # # SYNOPSIS # # AX_COUNT_CPUS # # DESCRIPTION # # Attempt to count the number of processors present on the machine. If the # detection fails, then a value of 1 is assumed. # # The value is placed in the CPU_COUNT variable. # # LICENSE # # Copyright (c) 2008 Michael Paul Bailey # Copyright (c) 2008 Christophe Tournayre # # Copying and distribution of this file, with or without modification, are # permitted in any medium without royalty provided the copyright notice # and this notice are preserved. This file is offered as-is, without any # warranty. #serial 8 AC_DEFUN([AX_COUNT_CPUS], [ AC_REQUIRE([AC_PROG_EGREP]) AC_MSG_CHECKING(the number of available CPUs) CPU_COUNT="0" #On MacOS if test -x /usr/sbin/sysctl -a `/sbin/sysctl -a 2>/dev/null| grep -c hw.cpu`; then CPU_COUNT=`/usr/sbin/sysctl -n hw.ncpu` fi #On Linux if test "x$CPU_COUNT" = "x0" -a -e /proc/cpuinfo; then CPU_COUNT=`$EGREP -c '^processor' /proc/cpuinfo` fi if test "x$CPU_COUNT" = "x0"; then CPU_COUNT="1" AC_MSG_RESULT( [unable to detect (assuming 1)] ) else AC_MSG_RESULT( $CPU_COUNT ) fi ]) fonts-ocr-b-0.2~dfsg1/m4/ax_file_escapes.m4000066400000000000000000000013731275507450000205340ustar00rootroot00000000000000# =========================================================================== # http://www.gnu.org/software/autoconf-archive/ax_file_escapes.html # =========================================================================== # # SYNOPSIS # # AX_FILE_ESCAPES # # DESCRIPTION # # Writes the specified data to the specified file. # # LICENSE # # Copyright (c) 2008 Tom Howard # # Copying and distribution of this file, with or without modification, are # permitted in any medium without royalty provided the copyright notice # and this notice are preserved. This file is offered as-is, without any # warranty. #serial 7 AC_DEFUN([AX_FILE_ESCAPES],[ AX_DOLLAR="\$" AX_SRB="\\135" AX_SLB="\\133" AX_BS="\\\\" AX_DQ="\"" ]) fonts-ocr-b-0.2~dfsg1/m4/ax_print_to_file.m4000066400000000000000000000013701275507450000207440ustar00rootroot00000000000000# =========================================================================== # http://www.gnu.org/software/autoconf-archive/ax_print_to_file.html # =========================================================================== # # SYNOPSIS # # AX_PRINT_TO_FILE([FILE],[DATA]) # # DESCRIPTION # # Writes the specified data to the specified file. # # LICENSE # # Copyright (c) 2008 Tom Howard # # Copying and distribution of this file, with or without modification, are # permitted in any medium without royalty provided the copyright notice # and this notice are preserved. This file is offered as-is, without any # warranty. #serial 7 AC_DEFUN([AX_PRINT_TO_FILE],[ AC_REQUIRE([AX_FILE_ESCAPES]) printf "$2" > "$1" ]) fonts-ocr-b-0.2~dfsg1/missing000077500000000000000000000262331275507450000162410ustar00rootroot00000000000000#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2009-04-28.21; # UTC # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, # 2008, 2009 Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 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, 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 . # 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. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' sed_minuso='s/.* -o \([^ ]*\).*/\1/p' # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case $1 in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' autom4te touch the output file, or create a stub one automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and \`g' are ignored when checking the name. Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # normalize program name to check for. program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). This is about non-GNU programs, so use $1 not # $program. case $1 in lex*|yacc*) # Not GNU programs, they don't have --version. ;; tar*) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case $program in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case $f in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te*) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison*|yacc*) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.h fi ;; esac fi if test ! -f y.tab.h; then echo >y.tab.h fi if test ! -f y.tab.c; then echo 'main() { return 0; }' >y.tab.c fi ;; lex*|flex*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if test ! -f lex.yy.c; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit $? fi ;; makeinfo*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n ' /^@setfilename/{ s/.* \([^ ]*\) *$/\1/ p q }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; tar*) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case $firstarg in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case $firstarg in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # 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: fonts-ocr-b-0.2~dfsg1/mp2pf000077500000000000000000000356421275507450000156200ustar00rootroot00000000000000#!/usr/bin/perl # # METAPOST to Type 1 converter # # THIS FILE IS PUBLIC DOMAIN NOTWITHSTANDING THE COPYRIGHT ON THE # OVERALL TSUKURIMASHOU PACKAGE # # This file is based on the file "mp2pf.awk" from the METATYPE1 package, # version 0.55. It is a manual translation by Matthew Skala from the # original Awk into Perl, with a lot of features irrelevant to the # Tsukurimashou project (namely hinting, kerning, ligatures, and AFM # files) removed to improve maintainability. # # The mp2pf.awk file contains no copyright-related notices of its own, but # the README for METATYPE1 version 0.55 contains the following notices (in # English and Polish; the slashes are verbatim from the original and # presumably are some convention for expressing non-ASCII Polish letters in # the ASCII file): # # This is METATYPE1 package -- a tool for creating Type 1 fonts using # METAPOST. The package belongs to public domain (no copyrights, # copylefts, copyups, copydowns, etc.). # Version: 0.55 (16.09.2009; a tentative version, released along with # the sources of the Latin Modern fonts ver. 2.003) # Author: JNS team # # To jest pakiet METATYPE1 -- narz/edzie do tworzenia font/ow Type 1 # za pomoc/a systemu METAPOST. Pakiet stanowi dobro wsp/olne # (/zadnych copyright/ow, copyleft/ow, copyup/ow, copydown/ow, etc.). # Wersja: 0.55 (16.09.2009 -- wersja opublikowana wraz z wersj/a # /xr/od/low/a 2.003 pakietu font/ow Latin Modern) # Autorstwo: JNS team # # Although I assert my general right to claim copyright on work of my own # that draws from public domain source materials, I nonetheless am releasing # this file to the public domain in an effort to maintain the spirit of the # JNS team's release above. # # The Adobe copyright notice in the Postscript template code below # refers only to certain boilerplate required by the file format; it # applies to no other part of this file and falls under the "scĆØnes # Ć  faire" doctrine in jurisdictions where that is relevant. # # 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. # # Matthew Skala # mskala@ansuz.sooke.bc.ca # ######################################################################## # header from the Awk version (much of this is now irrelevant due to # deleted code): # THIS FILE BELONGS TO THE METATYPE1 PACKAGE # # It is an AWK script that does the main job of convertion from # METAPOST output to (raw) Type 1 format # History: # 20.04.2006: 0.40, another bug fixed in set_hint (a[5] and a[6] # used to be used instead of a[7] and a[8], respectively). # 24.03.2006: ver. 0.39, a bug fixed in setting vstems using the old scheme # (hsb was not taken into account); local variable `k' # introduced in `find_stem3' # 13-20.11.2005: ver. 0.385 adaptation to the new hinting scheme -- cont. # global hints are not collected (needed by old interpreters); # BJ: hit replacement corrected (param. stemx added in # hint_clash; clear_hint doest not touch triple stem data); # 26.10.2005: adaptation to the new hinting scheme -- cont. (20.5->-20.5) # 15.10.2005: beginnig of the adaptation to the new hinting scheme # 09.07.2005: ver. 0.38, adaptation to the possibility of writing # implicit encodings (like StandardEncoding) and # to the handling of (optional) CharSet by afm2pfm # 15.02.2005: ver. 0.37, doubled kerns and ligatures silently ignored by # default; they can be reported on demand by setting the # parameter NQ (Non-Quiet; newly introduced) to a `true' value; # messages prefixed with `MP2PF:' # 18.09.2004: ver. 0.36, awk script no longer cares for fontdimen names # 29.04.2003: ver. 0.35, a bug in gawk circumvented (in clear_hints) # 18.01.2003: ver. 0.34, normal round function introduced; old one # renamed to fround (forced round); no more mess due # ADL comment in PFB and Ascender and Descender ones in AFM; # again fun. rational: superfluously robust ;-) # 06.01.2003: ver. 0.33, fun. rational: unlikely case included (as a comment) # 03.01.2003: ver. 0.32, fontdimens and headerbytes handled # 31.07.2002: banner added # 14.07.2002: comment (question) added in `pickup_stem' # 22.09.2001: ver. 0.31 (remarks moved to an informal readme.his file) # 26.01.2001: an empty set of KPX pairs admitted # 14.01.2001: functions rational and approx added ######################################################################## # General utility functions # Find a string describing a rational approximation of a real number # Awk version was apparently based on "code kindly sent us by # Berthold K. P. Horn" sub rational { my($x,$nlimit,$dlimit)=@_; my($p0,$q0,$p1,$q1,$p2,$q2,$s,$ds); # handle zero, negative, and large return '0 1' if $x==0; return '-'.&rational(-$x,$nlimit,$dlimit) if $x<0.0; return &round($x) if $x>$nlimit; # loop over guesses until the numerator and denominator are too large $p0=0; $q0=1; $p1=1; $q1=0; $s=$x; while (1) { # check for loop termination with best guess if ((int($s)!=0) && (($p1>($nlimit-$p0)/int($s)) || ($q1>($dlimit-$q0)/int($s)))) { $p2=$p1; $q2=$q1; last; } # try a new guess, terminate if we're lucky and it's exact $p2=$p0+int($s)*$p1; $q2=$q0+int($s)*$q1; last if $p2/$q2==$x; $ds=$s-int($s); last if $ds==0; $p0=$p1; $q0=$q1; $p1=$p2; $q1=$q2; $s=1/$ds; } return "$p2 $q2"; } # abs() is built-in in Perl and doesn't need to be defined as a function sub min { return $_[0]<$_[1]?$_[0]:$_[1]; } sub max { return $_[0]>$_[1]?$_[0]:$_[1]; } sub round { return $_[0]>=0?int($_[0]+0.5):-int(-$_[0]+0.5); } # "forced round" - round to nearest int, but complain about it sub fround { my($x)=@_; if ($x!=int($x)) { &mess("MP2PF: WRONG ROUNDING IN METAPOST $x IN $name"); return $x>=0?int($x+0.5):-int(-$x+0.5); } else { return $x; } } # sort space-separated words; we use Perl's instead of the Awk # version's homemade bubble sort sub trivial_sort { return join(' ',sort { $a <=> $b } split(' ',$_[0])); } # write an error message - /dev/tty and log file stuff removed sub mess { print STDERR $_[0]."\n"; } ######################################################################## # Functions that generate Postscript code # Generate Postscript code for a rational approximation sub approx { my($x)=@_; my($r,$a,$b); # Awk version says: # "32767 is a limit due to old (DOS?) implementations of t1utils" $r=&rational($x,32767,32767); ($a,$b)=split(' ',$r); return $b==1?$a:"$r div"; } sub make_lineto { my($dx,$dy)=@_; if (($dx!=0) || ($dy!=0)) { if ($dx==0) {&store_pfb("\t".&fround($dy).' vlineto');} elsif ($dy==0) {&store_pfb("\t".&fround($dx).' hlineto');} else {&store_pfb("\t".&fround($dx).' '.&fround($dy).' rlineto');} } } sub make_moveto { my($dx,$dy)=@_; if (($dx!=0) || ($dy!=0)) { if ($dx==0) {&store_pfb("\t".&fround($dy).' vmoveto');} elsif ($dy==0) {&store_pfb("\t".&fround($dx).' hmoveto');} else {&store_pfb("\t".&fround($dx).' '.&fround($dy).' rmoveto');} } } sub make_curveto { my($dx1,$dy1,$dx2,$dy2,$dx3,$dy3)=@_; if (($dx1+$dx2+$dx3!=0) || ($dy1+$dy2+$dy3!=0)) { if (($dy1==0) && ($dx3==0)) { &store_pfb("\t".&fround($dx1).' '.&fround($dx2).' ' .&fround($dy2).' '.&fround($dy3).' hvcurveto'); } elsif (($dx1==0) && ($dy3==0)) { &store_pfb("\t".&fround($dy1).' '.&fround($dx2).' ' .&fround($dy2).' '.&fround($dx3).' vhcurveto'); } else { &store_pfb("\t".&fround($dx1).' '.&fround($dy1).' '.&fround($dx2).' ' .&fround($dy2).' '.&fround($dx3).' '.&fround($dy3).' rrcurveto'); } } } ######################################################################## # Other functions # extract static data from what was pfcommon.dat sub get_data_files { my($s,$key,$a); @PFB_PRO=split(/\n/,<) { chomp; s/\s+$//; if (/^(.*?) +: *(.*?)$/) { $font_data{$1}=$2; } else { &mess('MP2PF: IMPROPER FONT INFO FILE'); } } close(FD); } sub store_pfb { push @pfb_text,$_[0]; } sub flush_pfb { my($s,$i,$n); open(PFB,">$PFB"); foreach $n (0..$#PFB_PRO) { $_=$PFB_PRO[$n]; foreach $i (keys %font_data) { while (/^(.*)##$i##(.*)$/) { if ($font_data{$i} eq '') { $_=''; } else { $_=$1.$font_data{$i}.$2; } } } $_='' if /##OTHER_BLUES##/; if (/##ENCODING_DATA##/) { if ($font_data{'ENCODING_NAME'} ne '') { $_='/Encoding '.$font_data{'ENCODING_NAME'}.' def'; } else { $_="/Encoding 256 array\n" ."0 1 255 {1 index exch /.notdef put} for\n"; foreach $i (0..255) { if (exists $enc_name[$i]) { $_.="dup $i/$enc_name[$i] put\n"; } } $_.='readonly def'; } } s/##FONT_BOUNDING_BOX##/$mllx $mlly $murx $mury/; if (/##STDHW##/) { if ($stdhw==0) { $_=''; } else { s/##STDHW##/$stdhw/; } } if (/##STDVW##/) { if ($stdvw==0) { $_=''; } else { s/##STVHW##/$stdvw/; } } if (/##STEMSNAPH##/) { if ($stdhw==0) { $_=''; } else { s/##STEMSNAPH##/&tab2str($stemsnaph)/e; } } if (/##STEMSNAPV##/) { if ($stdvw==0) { $_=''; } else { s/##STEMSNAPV##/&tab2str($stemsnapv)/e; } } s/##NUMBER_OF_SUBRS##/2+$subrs_base+$#subrs/e; $_='' if /##SUBROUTINES##/; s/##NUMBER_OF_CHARSTRINGS##/$num_enc_chars+$num_oth_chars+1/e; if (/(##[^#]+##)/) { mess("MP2PF: EXTRA TAG: $1"); } print PFB "$_\n" if $_ ne ''; } foreach (@pfb_text) { print PFB "$_\n" if $_ ne ''; } foreach (@PFB_TRA) { print PFB "$_\n" if $_ ne ''; } close(PFB); } ######################################################################## # Main program $tsuversion='UNKNOWN'; open(MAKEFILE,'Makefile'); while () { $tsuversion=$1 if /^VERSION\s*=\s*(\S+)/; } close(MAKEFILE); &mess("This is mp2pf from Tsukurimashou $tsuversion " .'(converts MP EPSes to PS Type 1 fonts)'); $NAME=shift; if ($NAME eq '') { &mess('MP2PF: NAME MUST NOT BE EMPTY'); exit(1); } $AFM="$NAME.afm"; $PFB="$NAME.p"; $FD="$NAME.pfi"; $KD="$NAME.kpx"; $PL='piclist.tex'; $PL=$1.$PL if $NAME=~m!^(.*/)!; $max_font_dimen=99; $max_header_byte=99; $mllx=10000; $mlly=10000; $murx=-10000; $mury=-10000; &get_data_files; # dominant stems chosen manually have the highest priority: $vstem_stat{$font_data{'STDVW'}}=10000 if defined $font_data{'STDVW'}; $hstem_stat{$font_data{'STDHW'}}=10000 if defined $font_data{'STDHW'}; # standard empty subr has number 3==subrs_base-1 $subrs_base=4; $xsubrs{''}=-1; # the following code must be consistent with tsufb.mp open(PL,$PL); while () { chomp; if (/EPSNAMEandNumber\{.*?\}\{([0-9]+)\}/i) { push @file,"$NAME.$1"; } } close(PL); foreach $curr_file (@file) { open(CURR_FILE,$curr_file); while () { @F=split(/\s+/,$_); if (/%%BoundingBox:/) { print STDERR "#" if ($n++)%4==0; $name=''; $code=0; $hsb=0; $width=0; $x0=0; $y0=0; # sentinels $curr_path=0; $acc_path=0; $hsb=$F[1]; $llx=$F[1]; $lly=$F[2]; $urx=$F[3]; $ury=$F[4]; $mllx=$llx if $mllx>$llx; $mlly=$lly if $mlly>$lly; $murx=$urx if $murx<$urx; $mury=$ury if $mury<$ury; } if (/^%GLYNFO:/) { if ($F[1] eq 'NAME') {$name=$F[2]; $code=$F[3];} if ($F[1] eq 'HSBW') { $width=$F[3]; $x0=$hsb; $y0=0; } if ($F[1] eq 'ACC') {$acc_path=$F[2];} if ($F[1] eq 'BEGINCHAR') { &store_pfb("/$name {\n\t".&fround($hsb).' '.&approx($width).' hsbw'); if ($code>=0) { $num_enc_chars++; $enc_name[$code]=$name; } else { $num_oth_chars++; } } } if (/lineto/) { &make_lineto($F[0]-$x0,$F[1]-$y0); $x0=$F[0]; $y0=$F[1] } elsif (/curveto/) { &make_curveto($F[0]-$x0,$F[1]-$y0,$F[2]-$F[0],$F[3]-$F[1], $F[4]-$F[2],$F[5]-$F[3]); $x0=$F[4]; $y0=$F[5]; } elsif (/moveto/) { &make_moveto($F[1]-$x0,$F[2]-$y0); $x0=$F[1]; $y0=$F[2]; $x_path0=$x0; $y_path0=$y0; } if (/closepath/) { if (($x0!=$x_path0) || ($y0!=$y_path0)) { # closing with implicit `lineto' &store_pfb("\tclosepath"); } } if (/showpage/) { &store_pfb("\tendchar\n\t} ND"); } } close(CURR_FILE); } print STDERR "\n"; &flush_pfb; fonts-ocr-b-0.2~dfsg1/msk-ocrb10.mp000066400000000000000000000017311275507450000170520ustar00rootroot00000000000000% % Modified by Matthew Skala, March 2011, to make it MetaType1 compatible % % This is OCRB10_mf (the normal OCRB-B) % Copyright 1995, 2010 Norbert Schwarz % You may freely use, modify and/or distribute this file, without limitation. input fntbase.mp; % font_identifier:="OCRB"; font_size:=10pt#; designsize:=10pt#; %%%%%%%%%%%%%%%%%%%%%%%%% font parameters %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% sharpedges := 0; % 0 -> rounded edges | 1 -> sharp edges globalslant := 0; % slant factor (typical zero or 0.2) lightfactor := 0; % (typical 0.6 for outlined characters) negativ := 0; % 0 -> normal | 1 -> white characters % on dark background extraline := 0; % 0 -> normal %%%%%%% do the job %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% input msk-ocrbmac.mp; input msk-ocrbdef.mp; for kkk:=0 step 1 until 144 : makechar kkk; endfor end. fonts-ocr-b-0.2~dfsg1/msk-ocrb10ebg.mp000066400000000000000000000017411275507450000175310ustar00rootroot00000000000000% % Modified by Matthew Skala, March 2011, to make it MetaType1 compatible % % This is OCRB10E_mf (sharp edges + negativ) % Copyright 1995, 2010 Norbert Schwarz % You may freely use, modify and/or distribute this file, without limitation. input fntbase.mp; % font_identifier:="OCRB10E"; font_size:=10pt#; designsize:=10pt#; %%%%%%%%%%%%%%%%%%%%%%%%% font parameters %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% sharpedges := 1; % 0 -> rounded edges | 1 -> sharp edges globalslant := 0; % slant factor (typical zero or 0.2) lightfactor := 0; % (typical 0.6 for outlined characters) negativ := 1; % 0 -> normal | 1 -> white characters % on dark background extraline := 0; % 0 -> normal %%%%%%% do the job %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% input msk-ocrbmac.mp; input msk-ocrbdef.mp; for kkk:=0 step 1 until 144 : makechar kkk; endfor end. fonts-ocr-b-0.2~dfsg1/msk-ocrb10efg.mp000066400000000000000000000017411275507450000175350ustar00rootroot00000000000000% % Modified by Matthew Skala, March 2011, to make it MetaType1 compatible % % This is OCRB10E_mf (sharp edges + negativ) % Copyright 1995, 2010 Norbert Schwarz % You may freely use, modify and/or distribute this file, without limitation. input fntbase.mp; % font_identifier:="OCRB10E"; font_size:=10pt#; designsize:=10pt#; %%%%%%%%%%%%%%%%%%%%%%%%% font parameters %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% sharpedges := 1; % 0 -> rounded edges | 1 -> sharp edges globalslant := 0; % slant factor (typical zero or 0.2) lightfactor := 0; % (typical 0.6 for outlined characters) negativ := 0; % 0 -> normal | 1 -> white characters % on dark background extraline := 0; % 0 -> normal %%%%%%% do the job %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% input msk-ocrbmac.mp; input msk-ocrbdef.mp; for kkk:=0 step 1 until 144 : makechar kkk; endfor end. fonts-ocr-b-0.2~dfsg1/msk-ocrb10fbg.mp000066400000000000000000000017201275507450000175270ustar00rootroot00000000000000% % Modified by Matthew Skala, March 2011, to make it MetaType1 compatible % % This is OCRB10F_mf (outline) % Copyright 1995, 2010 Norbert Schwarz % You may freely use, modify and/or distribute this file, without limitation. input fntbase.mp; % font_identifier:="OCRB10F"; font_size:=10pt#; designsize:=10pt#; %%%%%%%%%%%%%%%%%%%%%%%%% font parameters %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% sharpedges := 0; % 0 -> rounded edges | 1 -> sharp edges globalslant := 0; % slant factor (typical zero or 0.2) lightfactor := 0; % (typical 0.6 for outlined characters) negativ := 0; % 0 -> normal | 1 -> white characters % on dark background extraline := 0; % 0 -> normal %%%%%%% do the job %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% input msk-ocrbmac.mp; input msk-ocrbdef.mp; for kkk:=0 step 1 until 144 : makechar kkk; endfor end. fonts-ocr-b-0.2~dfsg1/msk-ocrb10ffg.mp000066400000000000000000000017231275507450000175360ustar00rootroot00000000000000% % Modified by Matthew Skala, March 2011, to make it MetaType1 compatible % % This is OCRB10F_mf (outline) % Copyright 1995, 2010 Norbert Schwarz % You may freely use, modify and/or distribute this file, without limitation. input fntbase.mp; % font_identifier:="OCRB10F"; font_size:=10pt#; designsize:=10pt#; %%%%%%%%%%%%%%%%%%%%%%%%% font parameters %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% sharpedges := 0; % 0 -> rounded edges | 1 -> sharp edges globalslant := 0; % slant factor (typical zero or 0.2) lightfactor := 0.60; % (typical 0.6 for outlined characters) negativ := 0; % 0 -> normal | 1 -> white characters % on dark background extraline := 0; % 0 -> normal %%%%%%% do the job %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% input msk-ocrbmac.mp; input msk-ocrbdef.mp; for kkk:=0 step 1 until 144 : makechar kkk; endfor end. fonts-ocr-b-0.2~dfsg1/msk-ocrb10g.mp000066400000000000000000000017331275507450000172230ustar00rootroot00000000000000% % Modified by Matthew Skala, March 2011, to make it MetaType1 compatible % % This is OCRB10G_mf (outline,slanted) % Copyright 1995, 2010 Norbert Schwarz % You may freely use, modify and/or distribute this file, without limitation. input fntbase.mp; % font_identifier:="OCRB10G"; font_size:=10pt#; designsize:=10pt#; %%%%%%%%%%%%%%%%%%%%%%%%% font parameters %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% sharpedges := 0; % 0 -> rounded edges | 1 -> sharp edges globalslant := 0.2; % slant factor (typical zero or 0.2) lightfactor := 0.60; % (typical 0.6 for outlined characters) negativ := 0; % 0 -> normal | 1 -> white characters % on dark background extraline := 0; % 0 -> normal %%%%%%% do the job %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% input msk-ocrbmac.mp; input msk-ocrbdef.mp; for kkk:=0 step 1 until 144 : makechar kkk; endfor end. fonts-ocr-b-0.2~dfsg1/msk-ocrb10l.mp000066400000000000000000000017231275507450000172270ustar00rootroot00000000000000% % Modified by Matthew Skala, March 2011, to make it MetaType1 compatible % % This is OCRB10l_mf (slanted) % Copyright 1995, 2010 Norbert Schwarz % You may freely use, modify and/or distribute this file, without limitation. input fntbase.mp; % font_identifier:="OCRB10L"; font_size:=10pt#; designsize:=10pt#; %%%%%%%%%%%%%%%%%%%%%%%%% font parameters %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% sharpedges := 0; % 0 -> rounded edges | 1 -> sharp edges globalslant := 0.2; % slant factor (typical zero or 0.2) lightfactor := 0; % (typical 0.6 for outlined characters) negativ := 0; % 0 -> normal | 1 -> white characters % on dark background extraline := 0; % 0 -> normal %%%%%%% do the job %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% input msk-ocrbmac.mp; input msk-ocrbdef.mp; for kkk:=0 step 1 until 144 : makechar kkk; endfor end. fonts-ocr-b-0.2~dfsg1/msk-ocrb10s.mp000066400000000000000000000017271275507450000172420ustar00rootroot00000000000000% % Modified by Matthew Skala, March 2011, to make it MetaType1 compatible % % This is OCRB10S_mf (sharp edges) % Copyright 1995, 2010 Norbert Schwarz % You may freely use, modify and/or distribute this file, without limitation. input fntbase.mp; % font_identifier:="OCRB10S"; font_size:=10pt#; designsize:=10pt#; %%%%%%%%%%%%%%%%%%%%%%%%% font parameters %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% sharpedges := 1; % 0 -> rounded edges | 1 -> sharp edges globalslant := 0; % slant factor (typical zero or 0.2) lightfactor := 0; % (typical 0.6 for outlined characters) negativ := 0; % 0 -> normal | 1 -> white characters % on dark background extraline := 0; % 0 -> normal %%%%%%% do the job %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% input msk-ocrbmac.mp; input msk-ocrbdef.mp; for kkk:=0 step 1 until 144 : makechar kkk; endfor end. fonts-ocr-b-0.2~dfsg1/msk-ocrb10xbg.mp000066400000000000000000000017321275507450000175540ustar00rootroot00000000000000% % Modified by Matthew Skala, March 2011, to make it MetaType1 compatible % % This is OCRB10x_mf (negativ normal) % Copyright 1995, 2010 Norbert Schwarz % You may freely use, modify and/or distribute this file, without limitation. input fntbase.mp; % font_identifier:="OCRB10X"; font_size:=10pt#; designsize:=10pt#; %%%%%%%%%%%%%%%%%%%%%%%%% font parameters %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% sharpedges := 0; % 0 -> rounded edges | 1 -> sharp edges globalslant := 0; % slant factor (typical zero or 0.2) lightfactor := 0; % (typical 0.6 for outlined characters) negativ := 1; % 0 -> normal | 1 -> white characters % on dark background extraline := 0; % 0 -> normal %%%%%%% do the job %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% input msk-ocrbmac.mp; input msk-ocrbdef.mp; for kkk:=0 step 1 until 144 : makechar kkk; endfor end. fonts-ocr-b-0.2~dfsg1/msk-ocrb10xfg.mp000066400000000000000000000017321275507450000175600ustar00rootroot00000000000000% % Modified by Matthew Skala, March 2011, to make it MetaType1 compatible % % This is OCRB10x_mf (negativ normal) % Copyright 1995, 2010 Norbert Schwarz % You may freely use, modify and/or distribute this file, without limitation. input fntbase.mp; % font_identifier:="OCRB10X"; font_size:=10pt#; designsize:=10pt#; %%%%%%%%%%%%%%%%%%%%%%%%% font parameters %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% sharpedges := 0; % 0 -> rounded edges | 1 -> sharp edges globalslant := 0; % slant factor (typical zero or 0.2) lightfactor := 0; % (typical 0.6 for outlined characters) negativ := 0; % 0 -> normal | 1 -> white characters % on dark background extraline := 0; % 0 -> normal %%%%%%% do the job %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% input msk-ocrbmac.mp; input msk-ocrbdef.mp; for kkk:=0 step 1 until 144 : makechar kkk; endfor end. fonts-ocr-b-0.2~dfsg1/msk-ocrbdef.mp000066400000000000000000001015511275507450000173710ustar00rootroot00000000000000% % Modified by Matthew Skala, March 2011, to make it MetaType1 compatible % % ocrbdef.mf % Copyright 1995, 2010 Norbert Schwarz % You may freely use, modify and/or distribute this file, without limitation. % % Korrekturstand % % % 27.10.1985 char 127 (kuenstlich nach unten gesetzt) Tuetelchen % % %--- Gamma --- o.s[0][1] := (-3,0.9)--(-3,11.6)--(3.5,11.6)--(3.5,9.5); o.i[0]:=1 ; o.m[0] := 0.9; %--- Delta --- o.s[1][1] := (-3,0.7)--(0,11.5)--(3,0.7)--cycle; o.i[1 ]:=1 ; o.m[1] := 0.7; %--- Theta --- o.s[2][1] := (0,11.75)..(-3,9)..(-3.45,6.2)..(-2.8,3)..(0,0.65){right}.. (2.8,3)..(3.45,6.2)..(3,9)..cycle; o.s[2][2] := (-1,6.2)--(1,6.2); o.i[2 ]:=2 ; o.m[2] := 0.65; %--- Lambda --- o.s[3][1] := (-2.5,0.7)--(0,11.5)--(2.5,0.7); o.s[3][1]:=subpath (0.05,1.95) of o.s[3][1]; o.s[3][2] := (-3,0.7)--(-2,0.7); o.s[3][3] := (3,0.7)--(2,0.7); o.i[3 ]:=3 ; o.m[3] := 0.7; %--- Xi --- o.s[4][1] := (3.3,0.9)--(-3.3,0.9); o.s[4][2] := (-2.25,6.4)--(2.25,6.4); o.s[4][3] := (-3.3,11.4)--(3.3,11.4); o.i[4 ]:=3 ; o.m[4] := 0.9; %--- Pi --- o.s[5][1] := (-3,0.7)--(-3,11.6); o.s[5][2] := (3,0.7)--(3,11.6); o.s[5][3] := (-3.5,11.6)--(3.5,11.6); o.i[5 ]:=3 ; o.m[5] := 0.7; %--- Sigma --- if sharpedges>0: o.s[6][1] := (3.3,1.4)--(3.3,0.9); o.s[6][2] := (3.3,0.9)--(-2.7,0.9)--(-0.75,6.15)-- (-2.7,11.4)--(3.3,11.4); o.s[6][3] := (3.3,11.4)--(3.3,10.9); o.i[6 ]:=3 ; o.m[6] := 0.9; else: o.s[6][1] := (3.3,1.4)--(3.3,0.9)--(-2.7,0.9)--(-0.75,6.15)-- (-2.7,11.4)--(3.3,11.4)--(3.3,10.9); o.i[6 ]:=1 ; o.m[6] := 0.9; fi; %--- gamma --- o.s[7][1] := (-2.75,10)..(-1.25,11)..{down}(0,9)--(0,0.65); o.s[7][2] := (0,9){up}..(1.25,11)..(2.75,10); o.i[ 7]:=2 ; o.m[7] := 0.65; %--- phi --- o.s[8][1] := (0,8.65){left}..(-2,8.05)..(-3,6.9)..(-3.5,4.6){down}.. (-3,2.35)..(-2,1.2)..(-1,0.73)..(0,0.6){right}.. (1,0.73)..(2,1.2)..(3,2.35)..(3.5,4.6){up}.. (3,6.9)..(2,8.05)..cycle; o.s[8][2] := (0,-1.5)--(0,10.75); o.s[8][3] := (-0.5,-1.5)--(0.5,-1.5); o.s[8][4] := (-0.5,10.75)--(0.5,10.75); o.i[8 ]:=4 ; o.m[8] := -1.5; %--- psi --- o.s[9][1] := (-2.75,10)..(-2.6,7.5)..(-2.4,5)..(-2,2.5)..(0,0.6).. (2,2.5)..(2.4,5)..(2.6,7.5)..(2.75,10); o.s[9][2] := (0,-1)--(0,10.25); o.i[9 ]:=2 ; o.m[9] := -1; %--- Omega --- o.s[10][1] := (-2,0.6)--(-1.5,0.6); o.s[10][2] := (-1.5,0.6)..(-3.3,8.3)..(-3.5,10)..(-2.5,12.5)..(0,13.5).. (2.5,12.5)..(3.5,10)..(3.3,8.3)--(1.5,0.6); if sharpedges>0: o.s[10][2]:=subpath (0.095,7.895) of o.s[10][2]; fi; o.s[10][3] := (1.5,0.6)--(2,0.6); o.i[10]:=3 ; o.m[10] := 0.6; %--- Pfeil nach oben --- o.s[11][1] := (0,0.7)--(0,10.4); o.s[11][2] := (-2.5,8.9)--(0,11.4); o.s[11][3] := (0,11.4)--(2.5,8.9); o.i[11]:=3 ; o.m[11] := 0.7; %--- Pfeil nach unten --- o.s[12][1] := (0,1.3)--(0,11.4); o.s[12][2] := (-2.5,3.2)--(0,0.7)--(2.5,3.2); o.i[12]:=2 ; o.m[12] := 0.7; %--- ' --- o.s[13][1] := (0,9.65)--(0,11.15); o.i[13]:=1 ; o.m[13] := 9.65; %--- umgedrehtes ! --- o.s[14][1] := (0,-3)--(0,3.85); o.s[14][2] := (-0.4,6.9)--(0.4,6.9); o.s[14][3] := (0.4,6.9)--(0.4,6.1)--(-0.4,6.1)--(-0.4,6.9); o.i[14]:=3 ; o.m[14] := -3; %--- umgedrehtes ? --- o.s[15][1] := (3,-0.5)..(2.4,-2.15)..(0.8,-2.95)..(0.3,-3).. (-0.4,-2.95)..(-1.3,-2.65)..(-2.1,-1.95)..(-2.4,-1.35).. (-2.5,-0.75)..(-2.3,0.55)..(-1.4,1.65)..(-0.3,2.7).. {up}(0,3.55)--(0,5); o.s[15][2] := (-0.4,8.95)--(-0.4,8.15); o.s[15][3] := (-0.4,8.15)--(0.4, 8.15)--(0.4,8.95)--(-0.4,8.95); o.i[15]:=3 ; o.m[15] := -3; %--- i ohne punkt --- o.s[16][1] := (-2.3,8.3)--(0.85,8.3)--(0.85,0.65); o.i[16]:=1 ; o.m[16] := 0.65; %--- j ohne punkt --- o.s[17][1] := (-1.8,8.3)--(0.75,8.3)--(0.75,1){down}..(0.5,-1)..(0,-1.7).. (-1,-2.25)..(-2.8,-2.25){left}; o.i[17]:=1 ; o.m[17] := -2.25; %--- accent acute --- o.s[18][1] := (0,9.65)--(-0.95,11.15); o.i[18]:=1 ; o.m[18] := 9.65; %--- accent grave --- o.s[19][1] := (0,9.65)--(0.95,11.15); o.i[19]:=1 ; o.m[19] := 9.65; %--- umgedrehtes ^ --- o.s[20][1] := (0,11.7)--(-3.5,15.55)--(0,10.3)--(3.5,15.55)--cycle; o.i[20]:=1 ; o.m[20] := 10.3; %--- irgendwas --- o.s[21][1] := (-3.5,15.55)..(0,12.3)..(3.5,15.55); o.i[21]:=1 ; o.m[21] := 12.3; %--- Querstrich oben --- o.s[22][1] := (-3.25,10.25)--(3.25,10.25); o.i[22]:=1 ; o.m[22] := 10.25; %--- Punkt oben --- o.s[23][1] := (-0.4,9.2)--(-0.4,10); o.s[23][2] := (-0.4,10)--(0.4,10)--(0.4,9.2)--(-0.4,9.2); o.i[23]:=2 ; o.m[23] := 9.2; %--- cedille --- o.s[24][1] := (-0.2,0.2)--(-0.2,-1.5); o.s[24][2] := (-0.2,-1.5)..(1.65,-3.25)..(-0.2,-5); o.i[24]:=2 ; o.m[24] := -5; %--- sz --- o.s[25][1] := (-3.1,0.65)--(-3.1,8){up}..(-3,10)..(-2.2,11.78)..(-1,12.5).. {right}(0,12.6){right}..(1,12.5)..(2.2,11.9)..(3,10.6).. (3.1,9.9)..(2.7,8.4)..(0.7,7.15)--(0.7,6.85)..(2.1,6.5).. (3.1,5.5)..(3.5,3.8)..(3.3,2.4)..(2.5,1.2)..(1.3,0.75); o.i[25]:=1 ; o.m[25] := 0.65; %--- ae ligature --- o.s[26][1] := ((-2.45,7.8)..(0,8.65){right}..(2.05,8)..(2.85,6)..(2.85,5)-- (2.85,0.65)) shifted (-2.85,0); o.s[26][2] := ((2.85,5.05){left}..(0,5)..(-2,4.6)..(-3,3.7).. (-3.25,2.7){down}..(-3,1.8)..(-1,0.6)..(1,1.15)..(2,2.05).. (2.85,3.25)) shifted (-2.85,0); o.s[26][2]:=subpath (0,8.84) of o.s[26][2]; o.s[26][3] := ((-3.25,5)--(3.25,5){up}..(3.2,5.5)..(3,6.6)..(2,8.1).. (1,8.55)..(0,8.65)..(-1,8.5)..(-2,7.9)..(-3,6.4).. (-3.25,4.8){down}..(-3,3)..(-2,1.35)..(-1,0.8)..(0,0.6).. (1,0.65)..(2,1)..(2.35,1.3)) shifted (3.25,0); o.i[26]:=3 ; o.m[26] := 0.6; %--- oe ligature --- o.s[27][1] := ((0,8.65){left}..(-2,8.05)..(-3,6.9)..(-3.5,4.6){down}.. (-3,2.35)..(-2,1.2)..(-1,0.73)..(0,0.6){right}.. (1,0.73)..(2,1.2)..(3,2.35)..(3.5,4.6){up}.. (3,6.9)..(2,8.05)..cycle) shifted (-3.5,0); o.s[27][2] := ((-3.25,5)--(3.25,5){up}..(3.2,5.5)..(3,6.6)..(2,8.1).. (1,8.55)..(0,8.65)..(-1,8.5)..(-2,7.9)..(-3,6.4).. (-3.25,4.8){down}..(-3,3)..(-2,1.35)..(-1,0.8)..(0,0.6).. (1,0.65)..(2,1)..(2.35,1.3)) shifted (3.25,0); o.i[27]:= 2 ; o.m[27] := 0.6; %--- durchgestrichenes o --- o.s[28][1] := (0,8.65){left}..(-2,8.05)..(-3,6.9)..(-3.5,4.6){down}.. (-3,2.35)..(-2,1.2)..(-1,0.73)..(0,0.6){right}.. (1,0.73)..(2,1.2)..(3,2.35)..(3.5,4.6){up}.. (3,6.9)..(2,8.05)..cycle; o.s[28][2] := (-4.25,-0.4)--(4.25,9.65); o.i[28]:=2 ; o.m[28] := -0.4; %--- AE ligature --- o.s[29][1] := ((-3.4,0.7)--(-0.6,11.5)) shifted (-3,0); o.s[29][2] := ((0.6,11.5)--(3.4,0.7)) shifted (-3,0); o.s[29][3] := ((2.45,4.35)--(-2.45,4.35)) shifted (-3,0); o.s[29][3]:=subpath (0.07,0.93) of o.s[29][3]; o.s[29][4] := (6,0.9)--(-0.5,0.9); o.s[29][2]:=(point 0.03 of o.s[29][2])-- (o.s[29][2] intersectionpoint o.s[29][4])-- (point 0 of o.s[29][4]); o.s[29][4] := (-4,11.45)--(6,11.45); o.s[29][1]:=(point 0 of o.s[29][1])-- (o.s[29][1] intersectionpoint o.s[29][4])--(point infinity of o.s[29][4]); o.s[29][4] := (-0.8,6.4)--(6,6.4); o.i[29]:=4 ; o.m[29] := 0.7; %--- OE ligature --- o.s[30][1] := (((0,11.75)..(-3,9)..(-3.45,6.2)..(-2.8,3)..(0,0.65){right}.. (2.8,3)..(3.45,6.2)..(3,9)..cycle)) shifted (-3.45,0); o.s[30][2] := ((3.3,0.9)--(-2.7,0.9)) shifted (2.7,0); o.s[30][3] := ((-2.7,0.9)--(-2.7,11.4)) shifted (2.7,0); o.s[30][4] := ((-2.7,11.4)--(3.3,11.4)) shifted (2.7,0); o.s[30][5] := ((-2.7,6.4)--(2.45,6.4)) shifted (2.7,0); o.i[30]:=5 ; o.m[30] := 0.65; %--- durchgestrichenes O --- o.s[31][1] := (0,11.75)..(-3,9)..(-3.45,6.2)..(-2.8,3)..(0,0.65){right}.. (2.8,3)..(3.45,6.2)..(3,9)..cycle; o.s[31][2] := (-3.95,-0.35)--(3.95,12.75); o.i[31]:=2 ; o.m[31] := -0.35; %-------- blank ---- o.i[32]:=0 ; o.m[32] := 2; %--- ! --- o.s[33][1] := (0,5.75)--(0,12.6); o.s[33][2] := (-0.4,0.4)--(0.4,0.4); o.s[33][3] := (0.4,0.4)--(0.4,-0.4)--(-0.4,-0.4)--(-0.4,0.4); o.i[33]:=3 ; o.m[33] := -0.4; %--- " --- o.s[34][1] := (-1.65,11.3)--(-1.65,12.6); o.s[34][2] := (1.65,11.3)--(1.65,12.6); o.i[34]:=2 ; o.m[34] := 11.3; %--- # --- o.s[35][1] := (-3.35,0.65)--(-0.65,12.65); o.s[35][2] := (0.65,0.65)--(3.35,12.65); o.s[35][3] := (-3.5,4.45)--(3.15,4.45); o.s[35][4] := (-3.15,8.95)--(3.5,8.95); o.i[35]:=4 ; o.m[35] := 0.65; %--- $ --- o.s[36][1] := (0,0.7)--(0,12.6); o.s[36][2] := (-3.5,3.1)..(-2.5,2)..(-1,1.65)..(0,1.6)..(1.1,1.7).. (2.7,2.4)..(3.5,4.1)..(3.1,5.3)..(2.25,6)..(0,6.85).. (-2.2,7.6)..(-3.3,8.6)..(-3.45,9.4)..(-3.1,10.5)..(-1.9,11.4).. (0,11.7)..(1.5,11.5)..(3.1,10.3); o.i[36]:=2 ; o.m[36] := 0.7; %--- % --- o.s[37][1] := (-3.5,0.75)--(3.5,12.55); o.s[37][2] := (-2.1,9.35)..(-3.1,9.8)..(-3.5,11)..(-3.2,12.1)..(-2.1,12.65).. (-1,12.1)..(-0.7,11)..(-1.1,9.8)..cycle; o.s[37][3] := o.s[37][2] shifted (4.2,-8.7); o.i[37]:=3 ; o.m[37] := -0.1; %--- & --- o.s[38][1] := (3.5,5.4)..(3.4,4.2)..(2.8,2.5)..(2,1.5)..(0.3,0.7).. (-0.5,0.65)..(-2.3,1.1)..(-3,1.8)..(-3.5,3.6)..(-3.3,4.8).. (-2.6,5.9)..(-1.4,7)..(-0.1,8)..(1.2,9.2)..(1.8,10.2).. (1.95,10.9)..(1.7,11.7)..(1.1,12.3)..(-0.4,12.65).. (-1.5,12.5)..(-2.6,11.7)..(-3,10.3)..(-2.9,9.5)..(-2.6,8.7).. (-1.5,7)..(3.05,0.7); o.i[38]:=1 ; o.m[38] := 0.65; %--- ' --- o.s[39][1] := (0.65,12.6)--(0.3,7.65)--(-0.3,7.65)--(-0.65,12.6)--cycle; o.i[39]:=1 ; o.m[39] := 7.65; if lightfactor>0: o.s[39][2] := (0,12)--(0,8); o.i[39]:=2; fi; %--- ( --- o.s[40][1] := (2.3,0.65)..(0.4,2.4)..(-0.7,4.4)..(-1,6.6)..(-0.7,8.8).. (-0.2,10)..(0.5,11)..(2.3,12.65); o.i[40]:=1 ; o.m[40] := 0.65; %--- ) --- o.s[41][1] := (-2.3,0.65)..(-0.4,2.4)..(0.7,4.4)..(1,6.6)..(0.7,8.8).. (0.2,10)..(-0.5,11)..(-2.3,12.65); o.i[41]:=1 ; o.m[41] := 0.65; %--- * --- o.s[42][1] := (-3.5,7.8)--(0,6.65)--(0,10.5); o.s[42][2] := (-2.3,3.55)--(0,6.65)--(3.5,7.8); o.s[42][3] := (2.3,3.55)--(0.6,6.5); o.i[42]:=3 ; o.m[42] := 3.55; %--- + --- o.s[43][1] := (-3.5,6.65)--(3.5,6.65); o.s[43][2] := (0,2.65)--(0,10.65); o.i[43]:=2 ; o.m[43] := 2.65; %--- , --- o.s[44][1] := (0.3,2.75)--(2.25,2.75)--(2.25,2.2)--(-2.2,-2.35)-- (-2.7,-2.35)--cycle; o.i[44]:=1 ; o.m[44] := -2.35; if lightfactor>0: o.s[44][2] := (1.5,2.7)--(-2,-2); o.i[44]:=2; fi; %--- - --- o.s[45][1] := (3.5,6.4)--(-3.5,6.4)--(-3.5,6.9)--(3.5,6.9)--cycle; o.i[45]:=1 ; o.m[45] := 6.4; %--- . --- o.s[46][1] := (-1.25,0.7)--(-1.25,2.4)--(1.25,2.4)--(1.25,0.7)--cycle; o.i[46]:=1 ; o.m[46] := 0.7; if lightfactor>0: o.s[46][2] := (-1.2,1.55)--(1.2,1.55); o.i[46]:=2; fi; %--- / --- o.s[47][1] := (-2.45,0.65)--(2.45,12.65); o.i[47]:=1 ; o.m[47] := 0.65; %---- Ziffer 0 ---- o.s[48][1] := (0,0.65)..(1,0.7)..(3.5,6){up}..(1,12.6).. (0,12.65){left}..(-1,12.6)..(-3.5,6){down}.. (-1,0.7)..cycle; o.s[48][1]:=insert_nodes(o.s[48][1])(1.5,2.5,5.5,6.5); o.i[48]:=1 ; o.m[48] := 0.65; %---- Ziffer 1 ---- o.s[49][1] := (0.75,0.7)--(0.75,12.6)--(0.2,12.6)--(-2.95,9.9); o.i[49]:=1 ; o.m[49] := 0.7; %---- Ziffer 2 ---- o.s[50][1] := (3.15,0.9)--(-3,0.9){up}..(-2.85,3).. (0,6.075)..(2.4,8)..(3.05,9.8){up}..(2.8,11).. (1,12.5)..(0,12.65){left}..(-1,12.6)..(-3.2,11.75); o.i[50]:=1 ; o.m[50] := 0.9; %---- Ziffer 3 ---- o.s[51][1] := (-3.5,1.2)..(-0.8,0.65)..(0,0.7)..(2.6,2)..(3.35,4).. (2.8,6)..(0.48787,7.40285).. (-1.1,7.6)--(2.9,11.8)--(2.9,12.4)-- (-3.45,12.4); o.i[51]:=1 ; o.m[51] := 0.65; %---- Ziffer 4 ---- o.s[52][1] := (0.3,12.6)--(-3.5,4.5)--(-3.5,3.75)--(3.5,3.75); o.s[52][2] := (1.7,0.7)--(1.7,6.65); o.i[52]:=2 ; o.m[52] := 0.7; %---- Ziffer 5 ---- o.s[53][1] := (-3.05,0.65){right}..(1.6,2)..(2.4,3)..(2.8,4.5){up}.. (2,6.95)..(0,7.95)..(-1.5,8.1){left}..(-2.7,8.05)-- (-2.45,12.4)--(2.7,12.4); o.i[53]:=1 ; o.m[53] := 0.65; %---- Ziffer 6 ---- o.s[54][1] := (1.3,12.6)..(0,11.2)..(-2.4,8)..(-3.3,6).. (-3.5,4){down}..(-2.9,2)..(-1.7,1).. (0,0.65){right}..(1.7,1)..(2.9,2)..(3.5,4){up}.. ( 3.1,6)..(2,7.15)..(0,7.65)..(-2.2,7)..(-3.4,5)..(-3.5,4); if sharpedges>0: o.s[54][2]:=(subpath(4,16) of o.s[54][1])&cycle; o.s[54][1]:=subpath (0,14) of o.s[54][1]; o.i[54]:=2 ; else: o.i[54]:=1 ; fi; o.m[54] := 0.65; %---- Ziffer 7 ---- o.s[55][1] := (-1.3,0.7){up}..(0,6.5)..(2.6,10)..{up}(3.5,12.39) --(3.5,12.4)--(-3.5,12.4); o.i[55]:=1 ; o.m[55] := 0.7; %---- Ziffer 8 ---- o.s[56][1] := (0,0.65){right}..(1,0.725)..(3.5,3.5){up}.. (2,6.2)..(0,7.45)..(-2.4,9)..(-2.9,10.5){up}.. (-2.1,12)..(0,12.65){right}..(2.1,12).. (2.9,10.5){down}..(2.4,9)..(0,7.45)..(-2,6.2).. (-3.5,3.5){down}..(-1,0.725)..cycle; o.i[56]:=1 ; o.m[56] := 0.65; %---- Ziffer 9 ---- o.s[57][1] := (-1.3,0.7)..(2.2,5)..(3.5,9){up}.. (3.05,11)..(0,12.65){left}..(-3.5,9){down}.. (-1.75,6)..(0,5.65){right}..(2.7,6.5)..(3.5,9){up}; if sharpedges>0: o.s[57][2]:=(subpath(2,9) of o.s[57][1])&cycle; o.s[57][1]:=subpath (0,7.9) of o.s[57][1]; o.i[57]:=2 ; else: o.i[57]:=1 ; fi; o.m[57] := 0.7; %--- : --- o.s[58][1] := (-0.95,1.3)--(-0.95,2.1)--(0.95,2.1)--(0.95,0.7)--(-0.95,0.7)--(-0.95,1.5); o.s[58][2] := (-0.95,7.65)--(-0.95,8.45)--(0.95,8.45)--(0.95,7.05)--(-0.95,7.05)--(-0.95,7.85); o.i[58]:=2 ; o.m[58] := 0.7; if lightfactor>0: o.s[58][3] := (-0.9,1.4)--(0.9,1.4); o.s[58][4] := (-0.9,7.75)--(0.9,7.75); o.i[58]:=4; fi; %--- ; --- o.s[59][1] := (-0.6,2.15)--(1.35,2.15)--(1.35,2.14)--(-2,-2.25)-- (-2.75,-2.25)--cycle; o.s[59][2] := (1.3,8.45)--(1.3,7.05)--(-0.6,7.05)--(-0.6,8.45)--cycle; o.i[59]:=2 ; o.m[59] := -2.25; if lightfactor>0: o.s[59][3] := (-2.4,-2.2)--(0.7,2.1); o.s[59][4] := (-0.5,7.75)--(1.2,7.75); o.i[59]:=4; fi; %--- < --- o.s[60][1] := (3.5,2)--(-3.5,6.65)--(3.5,11.3); o.i[60]:=1 ; o.m[60] := 2; %--- = --- o.s[61][1] := (-3.5,8.65)--(3.5,8.65); o.s[61][2] := (-3.5,4.65)--(3.5,4.65); o.i[61]:=2 ; o.m[61] := 4.65; %--- > --- o.s[62][1] := (-3.5,2)--(3.5,6.65)--(-3.5,11.3); o.i[62]:=1 ; o.m[62] := 2; %--- ? --- o.s[63][1] := (-3,9.15)..(-2.4,10.8)..(-0.8,11.6)..(-0.3,11.65).. (0.4,11.6)..(1.3,11.3)..(2.1,10.6)..(2.4,10)..(2.5,9.4).. (2.1,8.1)..(1.4,7)..(0.3,5.95)..{down}(0,5.1); o.s[63][2] := (-0.4,-0.3)--(-0.4,0.5); o.s[63][3] := (-0.4,0.5)--(0.4,0.5)--(0.4,-0.3)--(-0.4,-0.3); o.i[63]:=3 ; o.m[63] := -0.3; %--- @ --- o.s[64][1] := (0.4,6.45)--(0.4,2.2)..(0.1,1.6)..(-0.9,0.7)..(-1.8,0.55).. (-2.8,0.9)..(-3.4,2.1)..(-3.5,3.4)..(-3.4,4.8)..(-3,6).. (-1.9,6.5)..(-1.05,6.3)..(0.4,4.8)--(0.4,3){down}..(0.5,1.6).. (1.1,0.7)..(1.8,0.55)..(2.8,0.99)..(3.4,2.1)..{up}(3.5,4)-- (3.5,6){up}..(3.4,8)..(3,9.7)..(2.2,10.9)..(1,11.55).. (-0.2,11.7)..(-1.2,11.6)..(-2.6,11)..(-3.45,9.5); o.i[64]:=1 ; o.m[64] := 0.7; %--- A --- o.s[65][1] := (-3.4,0.7)--(-0.6,11.5)--(0.6,11.5)--(3.4,0.7); o.s[65][2] := (2.45,4.35)--(-2.45,4.35); o.s[65][2] := subpath (0.07,0.93) of o.s[65][2]; o.i[65]:=2 ; o.m[65] := 0.7; %--- B --- o.s[66][1] := (-3.5,0.9)--(-3.5,11.4); o.s[66][2] := (-3.5,11.4)--(-0.5,11.4){right}..(2,11).. (3.25,9)..(2.4,7)..{left}(0,6.4)--(-3.5,6.4); o.s[66][3] := (-3.5,6.4)-- (0,6.4){right}..(2.3,5.9)..(3.5,3.7)..(2.5,1.6).. {left}(-0.5,0.9)--(-3.5,0.9); o.i[66]:=3 ; o.m[66] := 0.9; %--- C --- o.s[67][1] := (2.7,2.2)..(1.9,1)..(0.6,0.65)..(-1,1.1)..(-2.2,2.9).. (-2.5,4.2)..(-2.65,6)..(-2.5,8.2)..(-2,9.9).. (-0.8,11.3)..(0.5,11.65)..(2,11.2)..(2.7,10.1); o.i[67]:=1 ; o.m[67] := 0.65; %--- D --- if sharpedges>0: o.s[68][1] := (-2.6,0.95)--(-2.6,11.35); else: o.s[68][1] := (-2.6,0.9)--(-2.6,11.4); fi; o.s[68][2] := (-2.6,11.4){right}..(-0.8,11.2)..(0.6,10.5).. (2,9.1)..(2.7,7.8)..(3.05,5.8)..(2.8,4.2)..(2,2.7).. (0.8,1.6)..(-0.8,1)..{left}(-2.6,0.9); o.i[68]:= 2 ; o.m[68] := 0.9; %--- E --- o.s[69][1] := (3.3,0.9)--(-2.7,0.9); o.s[69][2] := (-2.7,0.9)--(-2.7,11.4); o.s[69][3] := (-2.7,11.4)--(3.3,11.4); o.s[69][4] := (-2.7,6.4)--(2.45,6.4); o.i[69]:=4 ; o.m[69] := 0.9; %--- F --- o.s[70][1] := (-1.8,0.7)--(-1.8,11.4); o.s[70][2] := (-1.8,11.4)--(3,11.4); o.s[70][3] := (-1.8,6.4)--(2.2,6.4); o.i[70]:=3 ; o.m[70] := 0.7; %--- G --- o.s[71][1] := (3.05,10.45)..(1,11.6)..(0,11.6)..(-2,10.6)..(-3.2,8).. (-3.3,6)..(-2.8,3)..(-2,1.6)..(0,0.65)..(2,0.8)..(3.2,1.3)-- (3.2,5.75)--(0.35,5.75); o.i[71]:=1 ; o.m[71] := 0.65; %--- H --- o.s[72][1] := (-3,0.7)--(-3,11.6); o.s[72][2] := (3,0.7)--(3,11.6); o.s[72][3] := (-3,6.3)--(3,6.3); o.i[72]:=3 ; o.m[72] := 0.7; %--- I --- o.s[73][1] := (-2.5,0.9)--(2.5,0.9); o.s[73][2] := (-2.15,11.4)--(2.15,11.4); o.s[73][3] := (0,0.9)--(0,11.4); o.i[73]:=3 ; o.m[73] := 0.9; %--- J --- o.s[74][1] := (-3.15,3.35)..(-3,2)..(-2,0.9)..(0,0.8)..(1,1.6)..(1.35,3)-- (1.35,11.6); o.i[74]:= 1 ; o.m[74] := 0.8; %--- K --- o.s[75][1] := (-3.25,0.7)--(-3.25,11.6); o.s[75][2] := (3.5,0.7)--(-2,6.4)--(3.1,11.6); o.i[75]:=2 ; o.m[75] := 0.7; if lightfactor>0: o.s[75][3] := (-3.2,6.4)--(-1.9,6.4); o.i[75]:=3; fi; %--- L --- o.s[76][1] := (-3,11.6)--(-3,0.9); o.s[76][2] := (-3,0.9)--(3.5,0.9); o.i[76]:=2 ; o.m[76] := 0.9; %--- M --- o.s[77][1] := (-3.5,0.7)--(-3.5,11.6)--(-2.15,11.6)--(0,4.5)-- (2.15,11.6)--(3.5,11.6)--(3.5,0.7); o.i[77]:=1 ; o.m[77] := 0.7; %--- N --- o.s[78][1] := (-3.25,0.7)--(-3.25,11.6)--(-2.6,11.6)-- (2.6,0.7)--(3.25,0.7)--(3.25,11.6); o.i[78]:=1 ; o.m[78] := 0.7; %--- O --- o.s[79][1] := (0,11.75)..(-3,9)..(-3.45,6.2)..(-2.8,3)..(0,0.65){right}.. (2.8,3)..(3.45,6.2)..(3,9)..cycle; o.i[79]:=1 ; o.m[79] := 0.65; %--- P --- o.s[80][1] := (-3,5.9)--(0,5.9){right}..(3,7)..(3.5,8.5)..(3,10.3).. (2,11.1)..{left}(0,11.4)--(-3,11.4)--(-3,0.7); o.i[80]:=1 ; o.m[80] := 0.7; %--- Q --- o.s[81][1] := (-0.3,11.65)..(-2,11)..(-3,9.6)..(-3.4,8)..(-3.4,7).. (-3,3.5)..(-1,1.55)..(0,1.45)..(1,1.75)..(2.65,4)..(3,6).. (2.9,8)..(2,10.4)..(1,11.35)..cycle; o.s[81][2] := (-0.15,5.4)..(3.5,0.7); o.i[81]:=2 ; o.m[81] := 1.55; %--- R --- o.s[82][1] := (-2.8,0.7)--(-2.8,11.4)--(0,11.4)..(2,10.8)..(3,9.5){down}.. (2,6.5)..(0,5.9){left}..(-2.8,5.9); o.s[82][2] := (0.1,5.9)--(3.1,0.7); o.s[82][2]:=subpath (0.07,1) of o.s[82][2]; o.i[82]:=2 ; o.m[82] := 0.7; %--- S --- o.s[83][1] := (-2.9,2.8)..(-2,1.2)..(0.4,0.65)..(1,0.8)..(2,1.3).. (2.9,3.3){up}..(2.6,4.6)..(1,5.9)..(-1,6.9)..(-2.4,8).. (-2.8,9.4){up}..(-2,10.95)..(-1,11.5)..(0,11.65)..(1,11.55).. (2,11.05)..(2.75,9.9); o.i[83]:=1 ; o.m[83] := 0.65; %--- T --- o.s[84][1] := (0,0.7)--(0,11.4); o.s[84][2] := (-3.5,11.4)--(3.5,11.4); o.i[84]:=2 ; o.m[84] := 0.7; %--- U --- o.s[85][1] := (-3.25,11.6)--(-3.25,3.7){down}..(-2,1.15)..(0,0.65){right}.. (2,1.15)..{up}(3.25,3.7)--(3.25,11.6); o.i[85]:=1 ; o.m[85] := 0.65; %--- V --- o.s[86][1] := (-3.5,11.6)--(-0.6,0.7)--(0.6,0.7)--(3.5,11.6); o.i[86]:=1 ; o.m[86] := 0.7; %--- W --- o.s[87][1] := (-3.5,11.6)..(-3.4,9)..(-3.1,5)..(-2.4,0.7)--(-1.9,0.7)-- (-0.15,6.75)--(0.15,6.75)--(1.9,0.9)--(2.4,0.7)..(3.1,5).. (3.4,9)..(3.5,11.6); o.i[87]:=1 ; o.m[87] := 0.7; %--- X --- o.s[88][1] := (-3.05,11.6)--(-0.1,6.3)--(-3.15,0.7); o.s[88][2] := (3.05,11.6)--(0.1,6.3)--(3.15,0.7); o.i[88]:=2 ; o.m[88] := 0.7; %--- Y --- o.s[89][1] := (0,0.7)--(0,5.8)--(-3.1,11.6); o.s[89][2] := (3.1,11.6)--(0,5.8)--(0,4); o.i[89]:=2 ; o.m[89] := 0.7; %--- Z --- o.s[90][1] := (3,0.9)--(-3,0.9)--(2.4,11.4)--(-2.95,11.4); o.i[90]:=1 ; o.m[90] := 0.9; %--- [ --- o.s[91][1] := (3.2,0.65)--(-1.8,0.65)--(-1.8,12.65)--(3.2,12.65); o.i[91]:=1 ; o.m[91] := 0.65; %--- backslash --- o.s[92][1] := (2.45,0.65)--(-2.45,12.65); o.i[92]:=1 ; o.m[92] := 0.65; %--- ] --- o.s[93][1] := (-3.2,0.65)--(1.8,0.65)--(1.8,12.65)--(-3.2,12.65); o.i[93]:=1 ; o.m[93] := 0.65; %--- ^ --- o.s[94][1] := (0,11.5)--(0,11)--(-3.5,7.3)--(0,12.55)--(3.5,7.3)--(0,11); o.i[94]:=1 ; o.m[94] := 7.3; if lightfactor>0: o.s[94][2] := (0,12.45)--(0,11.1); o.i[94]:=2; fi; %--- _ --- o.s[95][1] := (-3.5,-3.25)--(-3.5,-2.75)--(3.5,-2.75)--(3.5,-3.25)--cycle; o.i[95]:=1 ; o.m[95] := -3.25; %--- ` --- o.s[96][1] := (0,11.1)--(-0.95,12.6); o.i[96]:=1 ; o.m[96] := 11.1; %--- a --- o.s[97][1] := (-2.45,7.8)..(0,8.65){right}..(2.05,8)..(2.85,6)..(2.85,5)-- (2.85,0.65); o.s[97][2] := (2.85,5.05){left}..(0,5)..(-2,4.6)..(-3,3.7).. (-3.25,2.7){down}..(-3,1.8)..(-1,0.6)..(1,1.15)..(2,2.05).. (2.85,3.25); if sharpedges>0: o.s[97][2]:=subpath (0.05,8.5) of o.s[97][2]; fi; o.i[97]:=2 ; o.m[97] := 0.65; %--- b --- o.s[98][1] := (-3.3,0.65)--(-3.3,12.65); o.s[98][2] := (-3.3,5.9)..(-2,7.65)..(-1,8.3)..(0,8.55)..(1,8.45)..(2,8.05).. (3,7)..(3.5,5)..(3.45,4)..(3,2.2)..(2,1.1)..(0,0.6).. (-2,1.5)..(-3.3,3.4); if sharpedges>0: o.s[98][2]:=subpath (0.4,12.6) of o.s[98][2]; fi; o.i[98]:=2 ; o.m[98] := 0.65; %--- c --- o.s[99][1] := (2.7,2.2)..(2,1.1)..(1,0.65)..(0,0.6)..(-1,0.9)..(-2,1.9).. (-2.4,3)..(-2.55,4.8){up}..(-2.4,6.3)..(-2,7.3)..(-1,8.25).. (0,8.5)..(1,8.5)..(2.2,8)..(2.6,7.3); o.i[99]:=1 ; o.m[99] := 0.6; %--- d --- o.s[100][1]:= (3.3,0.65)--(3.3,12.65); o.s[100][2]:= (3.3,5.9)..(2,7.7)..(1,8.3)..(0,8.55)..(-1,8.45)..(-2,8).. (-3,7)..(-3.5,4.7){down}..(-3,2.2)..(-2,1.1)..(-1,0.7).. (0,0.6)..(1,0.85)..(2,1.5)..(2.7,2.2)..(3.3,3.4); if sharpedges>0: o.s[100][2]:=subpath (0.4,14.3) of o.s[100][2]; fi; o.i[100]:= 2 ; o.m[100] := 0.65; %--- e --- o.s[101][1]:= (-3,5)--(3.25,5){up}..(3.2,5.5)..(3,6.6)..(2,8.1).. (1,8.55)..(0,8.65)..(-1,8.5)..(-2,7.9)..(-3,6.4).. (-3.25,4.8){down}..(-3,3)..(-2,1.35)..(-1,0.8)..(0,0.6).. (1,0.65)..(2,1)..(2.35,1.3); o.i[101]:= 1 ; o.m[101] := 0.6; %--- f --- o.s[102][1]:= (0,0.65)--(-0.1,9.5){up}..(0,10.9)..(0.75,12)..(2,12.5).. (2.85,12.6){right}; o.s[102][2]:= (-2.9,8.45)--(2.9,8.45); o.i[102]:=2 ; o.m[102] := 0.65; %--- g --- o.s[103][1]:= (3.05,8.5)--(3.05,1)..(2.8,-1)..(2,-2)..(1,-2.35)..(0,-2.45).. (-1,-2.4)..(-2,-2.2)..(-2.8,-1.4); o.s[103][2]:= (3.05,5.7)..(2,7.5)..(1,8.3)..(0,8.55)..(-2,8.1).. (-3,7)..(-3.45,4.7){down}..(-3,2.8)..(-2,1.6)..(-1,1.25).. (-0.5,1.2){right}..(0,1.25)..(1,1.55)..(2,2.4)..(3.05,3.85); if sharpedges>0: o.s[103][2]:=subpath (0.5,13.5) of o.s[103][2]; fi; o.i[103]:= 2 ; o.m[103] := -2.45; %--- h --- o.s[104][1]:= (-2.75,0.65)--(-2.75,12.65); o.s[104][2]:= (-2.75,5.95)..(-2.1,7)..(-1,8.1)..(0,8.5)..(0.6,8.55){right}.. (2,8.05)..(2.6,7)..(2.75,5){down}..(2.75,0.65); if sharpedges>0: o.s[104][2]:=subpath (0.6,8) of o.s[104][2]; fi; o.i[104]:=2 ; o.m[104] := 0.65; %--- i --- o.s[105][1]:= (0.1,11.85)--(0.9,11.85)--(0.9,12.65)--(0.1,12.65)-- (0.1,11.85); o.s[105][2]:= (-2.3,8.3)--(0.85,8.3)--(0.85,0.65); o.i[105]:=2 ; o.m[105] := 0.65; %--- j --- o.s[106][1]:= (0.1,11.85)--(0.9,11.85)--(0.9,12.65)--(0.1,12.65)-- (0.1,11.85); o.s[106][2]:= (-1.8,8.3)--(0.75,8.3)--(0.75,1){down}..(0.5,-1)..(0,-1.7).. (-1,-2.25)..tension 2..(-2.8,-2.25); o.i[106]:=2 ; o.m[106] := -2.25; %--- k --- o.s[107][1]:= (-2.45,0.65)--(-2.45,12.65); o.s[107][2]:= (-2.3,5.15)--(-1.15,5.15); o.s[107][3]:= (2.5,8.5)--(-1.15,5.15)--(3.05,0.65); o.i[107]:=3 ; o.m[107] := 0.65; %--- l --- o.s[108][1]:= (-0.95,12.65)..(-1,8)..(-1.05,4)..(-1,3)..(-0.5,1.6).. (0,1.15)..(1,0.8)..(2.5,0.75){right}; o.i[108]:=1 ; o.m[108] := 0.75; %--- m --- o.s[109][1]:= (-3.5,0.65)--(-3.5,8.5); o.s[109][2]:= (-3.5,5.6)..(-3,7.3)..(-2,8.4)..(-1.4,8.55){right}.. (-0.5,8.2)..(0,7)..(0,6){down}..(0,0.65); o.s[109][3]:= (0,5.6)..(0.5,7.3)..(1,8)..(2.1,8.55){right}..(3,8.2).. (3.5,7)..(3.5,6){down}..(3.5,0.65); if sharpedges>0: o.s[109][2]:=subpath (0.7,infinity) of o.s[109][2]; o.s[109][3]:=subpath (0.7,infinity) of o.s[109][3]; fi; o.i[109]:=3 ; o.m[109] := 0.65; %--- n --- o.s[110][1]:= (-3.25,0.65)--(-3.25,8.5); o.s[110][2]:= (-3.25,5.5)..(-2,7.45)..(-1,8.2)..(0,8.5)..(0.5,8.55){right}.. (1,8.5)..(2,8.2)..(3,7)..(3.25,5){down}..(3.25,0.65); if sharpedges>0: o.s[110][2]:=subpath (0.5,infinity) of o.s[110][2]; fi; o.i[110]:=2 ; o.m[110] := 0.65; %--- o --- o.s[111][1]:= (0,8.65){left}..(-2,8.05)..(-3,6.9)..(-3.5,4.6){down}.. (-3,2.35)..(-2,1.2)..(-1,0.73)..(0,0.6){right}.. (1,0.73).. (2,1.2)..(3,2.35)..(3.5,4.6){up}..(3,6.9)..(2,8.05)..cycle; o.i[111]:=1 ; o.m[111] := 0.6; %--- p --- o.s[112][1]:= (-3.3,-2.35)--(-3.3,8.5); o.s[112][2]:= (-3.3,5.85)..(-2,7.65)..(-1,8.3)..(0,8.55)..(1,8.45).. (2,8.05)..(3,7)..(3.5,4.5){down}..(3.3,3)..(2,1.1).. (1,0.7)..(0,0.6)..(-1,0.85)..(-2,1.5)..(-3,2.8)..(-3.3,3.4); if sharpedges>0: o.s[112][2]:=subpath (0.4,13.9) of o.s[112][2]; fi; o.i[112]:=2 ; o.m[112] := -2.35; %--- q --- o.s[113][1]:= (3.3,-2.35)--(3.3,8.5); o.s[113][2]:= (3.3,5.85)..(2,7.65)..(1,8.3)..(0,8.55)..(-1,8.45)..(-2,8.05).. (-3,7)..(-3.5,4.5){down}..(-3,2.2)..(-2,1.1)..(-1,0.7).. (0,0.6)..(1,0.85)..(2,1.5)..(3.3,3.4); if sharpedges>0: o.s[113][2]:=subpath (0.4,13.6) of o.s[113][2]; fi; o.i[113]:=2 ; o.m[113] := -2.35; %--- r --- o.s[114][1]:= (-1.9,0.65)--(-1.9,8.5); o.s[114][2]:= (-1.9,4.7)..(-1,7.15)..(0,8.2)..(1,8.5)..(1.5,8.55){right}.. (2,8.5)..(3.2,7); if sharpedges>0: o.s[114][2]:=subpath (0.4,infinity) of o.s[114][2]; fi; o.i[114]:= 2 ; o.m[114] := 0.65; %--- s --- o.s[115][1]:= (-2.8,1.7)..(-2,0.95)..(-1,0.65)..(0,0.6)..(1,0.7)..(2,1.05).. (2.8,2)..(2.9,2.6){up}..(2.5,3.7)..(2,4.05)..(1,4.4).. (0,4.67)..(-1,4.95)..(-2,5.4)..(-2.5,6)..(-2.7,6.8){up}.. (-2.4,7.8)..(-2,8.2)..(0,8.65).. (0.5,8.64).. % (1,8.6)..(1.4,8.50)..(1.8,8.4)..(2,8.3)..(2.3,8).. (2.55,7.4){(2.5,-9.5)}; o.i[115]:=1 ; o.m[115] := 0.6; %--- t --- o.s[116][1]:= (-3.25,8.35)--(2.45,8.35); o.s[116][2]:= (-1,11){down}..(-1.05,8)..(-1.1,5)..(-1.1,3.5).. (-1,2)..(-0.5,1.1)..(0,0.8)..(1,0.65)..(2.45,1); o.i[116]:=2 ; o.m[116] := 0.65; %--- u --- o.s[117][1]:= (-3.25,8.5)--(-3.25,4.5){down}..(-3.1,2.5)..(-2.6,1.5).. (-1.6,0.8)..(-0.5,0.6)..(0.4,0.7)..(1.1,1)..(1.8,1.5).. (2.5,2.3)..(3.25,3.8); o.s[117][2]:= (3.25,0.65)--(3.25,8.5); if sharpedges>0: o.s[117][1]:=subpath (0,9.5) of o.s[117][1]; fi; o.i[117]:= 2 ; o.m[117] := 0.6; %--- v --- o.s[118][1]:= (-3.45,8.5)--(-0.65,0.65)--(0.65,0.65)--(3.45,8.5); o.i[118]:=1 ; o.m[118] := 0.65; %--- w --- o.s[119][1]:= (-3.45,8.5)--(-2.5,0.65)--(-1.65,0.65)--(-0.4,4.9)-- (0.4,4.9)--(1.65,0.65)--(2.5,0.65)--(3.45,8.5); o.i[119]:= 1 ; o.m[119] := 0.65; %--- x --- o.s[120][1]:= (-2.9,0.65)--(-0.1,4.65)--(-2.7,8.5); o.s[120][2]:= (2.9,0.65)--(0.1,4.65)--(2.7,8.5); o.i[120]:=2 ; o.m[120] := 0.65; %--- y --- o.s[121][1]:= (-3.5,-2.3)..(-2.45,-2.1)..(-2,-1.6)--(3.5,8.5); o.s[121][2]:= (-3.5,8.5)--(0.1,2.3); o.s[121][2]:=subpath (0,0.94) of o.s[121][2]; o.i[121]:=2 ; o.m[121] := -2.3; %--- z--- o.s[122][1]:= (-2.75,8.3)--(2.65,8.3)--(2.65,7.6)--(-2.9,1.45)-- (-2.9,0.85)--(3.05,0.85); o.i[122]:=1 ; o.m[122] := 0.85; %--- { --- o.s[123][1]:= (3.5,0.65){left}..(0.6,1)..(-0.25,2)..{up}(-0.5,4){up}.. (-1.125,6)..{left}(-3.5,6.65); o.s[123][2]:= (-3.5,6.65){right}..(-1,7.4).. {up}(-0.5,9.5){up}..(0,11.7)..(1.2,12.5)..{right}(3.5,12.65); o.i[123]:=2 ; o.m[123] := 0.65; %--- | --- o.s[124][1]:= (0,-1.95)--(0,12.65); o.i[124]:=1 ; o.m[124] := -1.95; %--- } --- o.s[125][1]:= (-3.5,0.65){right}..(-0.6,1)..(0.25,2)..{up}(0.5,4){up}.. (1.125,6)..{right}(3.5,6.65); o.s[125][2]:= (3.5,6.65){left}..(1,7.4).. {up}(0.5,9.5){up}..(-0,11.7)..(-1.2,12.5)..{left}(-3.5,12.65); o.s[125][2]:=subpath (0.02,infinity) of o.s[125][2]; o.i[125]:= 2 ; o.m[125] := 0.65; %--- ~ --- o.s[126][1]:= (-3.25,10.45)..(-1.5,11.75)..(0,11)..(1.5,10.25)..(3.25,11.55); o.i[126]:=1 ; o.m[126] := 10.25; %--- "a-Striche --- %o.s[127][1]:= (-1.5,10.65)--(-1.5,11.65); o.s[127][1]:= (-1.5, 5.65)--(-1.5, 6.65); %o.s[127][2]:= (1.5,10.65)--(1.5,11.65); o.s[127][2]:= (1.5, 5.65)--(1.5, 6.65); o.i[127]:=2 ; o.m[127] := 5.65; %--- "a --- o.s[128][1]:= (-1.5,10.65)--(-1.5,11.65); o.s[128][2]:= (1.5,10.65)--(1.5,11.65); o.s[128][3]:= (-2.45,7.8)..(0,8.65){right}..(2.05,8)..(2.85,6)..(2.85,5)-- (2.85,0.65); o.s[128][4]:= (2.85,5.05){left}..(0,5)..(-2,4.6)..(-3,3.7).. (-3.25,2.7){down}..(-3,1.8)..(-1,0.6)..(1,1.15)..(2,2.05).. (2.85,3.25); if sharpedges>0: o.s[128][4]:=subpath (0.05,8.5) of o.s[128][4]; fi; o.i[128]:=4 ; o.m[128] := 0.6; %--- "o --- o.s[129][1]:= o.s[128][1]; o.s[129][2]:= o.s[128][2]; o.s[129][3]:= (0,8.65){left}..(-2,8.05)..(-3,6.9)..(-3.5,4.6){down}.. (-3,2.35)..(-2,1.2)..(-1,0.73)..(0,0.6){right}.. (1,0.73).. (2,1.2)..(3,2.35)..(3.5,4.6){up}..(3,6.9)..(2,8.05)..cycle; o.i[129]:=3 ; o.m[129] := 0.6; %--- "u --- o.s[130][1]:= o.s[128][1]; o.s[130][2]:= o.s[128][2]; o.s[130][3]:= (-3.25,8.5)--(-3.25,4.5){down}..(-3.1,2.5)..(-2.6,1.5).. (-1.6,0.8)..(-0.5,0.6)..(0.4,0.7)..(1.1,1)..(1.8,1.5).. (2.5,2.3)..(3.25,3.8); o.s[130][4]:= (3.25,0.65)--(3.25,8.5); if sharpedges>0: o.s[130][3]:=subpath (0,9.5) of o.s[130][3]; fi; o.i[130]:=4 ; o.m[130] := 0.6; %--- "A --- o.s[131][1]:= (-3.5,11.65)--(-3.5,12.65); o.s[131][2]:= (3.5,11.65)--(3.5,12.65); o.s[131][3]:= (-3.45,0.7)--(-0.2,11.6)--(0.2,11.6)--(3.45,0.7); o.s[131][4]:= (-2.65,3.55)--(2.65,3.35); % ??? this looks weird o.s[131][4]:=subpath (0.1,0.9) of o.s[131][4]; o.i[131]:=4 ; o.m[131] := 0.7; %--- "O --- o.s[132][1]:= (-3.5,11.65)--(-3.5,12.65); o.s[132][2]:= (3.5,11.65)--(3.5,12.65); o.s[132][3]:= (0,0.65)..(-1.8,1.3)..(-2.8,2.6)..(-3.2,3.8)..(-3.35,5.3).. (-3.1,7.2)..(-2.3,8.8)..(-0.9,9.8)..(0,9.95)..(0.9,9.8).. (2.3,8.8)..(3.1,7.2)..(3.35,5.3)..(3.2,3.8)..(2.8,2.6).. (1.8,1.3)..cycle; o.i[132]:=3 ; o.m[132] := 0.65; %--- "U --- o.s[133][1]:= (-3.5,12.65)--(-2.6,12.65); o.s[133][2]:= (3.5,12.65)--(2.6,12.65); o.s[133][3]:= (-3.5,9.4)--(-3.5,5){down}..(-3.3,2.9)..(-2.8,1.8).. (-1.2,0.8)..(0,0.65)..(1.2,0.8)..(2.8,1.8)..(3.3,2.9).. {up}(3.5,5)--(3.5,9.4); o.i[133]:=3 ; o.m[133] := 0.65; %--- section sign --- o.s[134][1]:= (2.85,11.1)..(2,12.2)..(0.9,12.6)..(0.2,12.65).. (-0.9,12.55)..(-2,12.1)..(-2.6,11.5)..(-2.9,10.4).. (-2.7,9.5)..(-2,8.8)..(-1.1,8.5)..(-0.3,8.4)..(0.8,8.3).. (2.2,8)..(3,7.4)..(3.3,6.5)..(3.2,5.9)..(2.8,5.25)..(2,4.65); o.s[134][2]:= (-1.9,8.75)..(-3,7.8)..(-3.35,6.8)..(-3.1,6)..(-2.2,5.3).. (-0.65,5)..(0.7,4.9)..(2,4.65)..(2.75,4.2)..(3.2,3.5).. (3.3,2.9)..(3.1,2)..(2.4,1.2)..(1.8,0.9)..(0.2,0.65).. (-0.8,0.7)..(-1.9,1)..(-3.2,2.4); if sharpedges>0: o.s[134][1]:=subpath (0,17.5) of o.s[134][1]; o.s[134][2]:=subpath (0.5,infinity) of o.s[134][2]; fi; o.i[134]:=2 ; o.m[134] := 0.65; %--- currency symbol --- o.s[135][1]:= (-3.5,3.15)--(-2.08,4.57); o.s[135][2]:= (-3.5,10.15)--(-2.08,8.73); o.s[135][3]:= (3.5,10.15)--(2.08,8.73); o.s[135][4]:= (3.5,3.15)--(2.08,4.57); o.s[135][5]:= (2.9,6.65)..(0,3.75)..(-2.9,6.65)..(0,9.55)..cycle; o.i[135]:=5 ; o.m[135] := 3.15; %--- senkrechter Strich links --- o.s[136][1]:= (-5.35,-1.25)--(-5.35,11.25); o.i[136]:=1 ; o.m[136] := -1.25; %--- weitere Anfuehrungszeichen --- o.s[137][1]:= (-2.15,12.6)--(-2.65,8.75)--(-2.65,12.6)--cycle; o.s[137][2]:= (2.85,12.6)--(2.45,8.75)--(2.45,12.6)--cycle; o.i[137]:=2 ; o.m[137] := 8.75; fonts-ocr-b-0.2~dfsg1/msk-ocrbmac.mp000066400000000000000000000370251275507450000173770ustar00rootroot00000000000000% % Modified by Matthew Skala, March 2011, to make it MetaType1 compatible % %%%%%%%%%%%%%%%%% Endehandlung nach Zeichenbestimmung %%%%%%%%%%%%%%%%%%%%%% % % Copyright 1995, 2010 Norbert Schwarz % You may freely use, modify, and/or distribute this file, without limitation. % % Dies wird am Ende jeden Zeichens v o r "endchar ausgefuehrt. % % Dort koennen globale Design-Entscheidungen durch evtl. % Mehrfachausgaben realisiert wdrden. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % the next several routines are added by Matthew Skala beginfont; proofing:=0; pf_info_quad 1000; pf_info_space 723, 0, 0; pf_info_familyname "OCRA"; pf_info_fixedpitch true; pf_info_capheight 800; pf_info_xheight 585; pf_info_ascender 800; pf_info_descender 200; def ocrdraw(expr dp) = begingroup save g,h,ng,mh,oldnib; path g,h,ng,oldnib; oldnib:=default_nib; mh:=if lightfactor>0: lightfactor else: 1 fi; default_nib:=default_nib scaled mh; if cycle dp: if sharpedges=0: ng:=(subpath (0.4,length(dp)) of dp)--(subpath (0,0.6) of dp); pen_stroke()(ng)(g); dangerousFill g; else: g:=sharp_stroke_cycle(dp,ocrb.penwidth*scalefak*mh/2); if (xpart ((urcorner g)-(llcorner g))>50) and (ypart ((urcorner g)-(llcorner g))>50): dangerousFill g; fi; g:=sharp_stroke_cycle(reverse dp,ocrb.penwidth*scalefak*mh/2); if (xpart ((urcorner g)-(llcorner g))>50) and (ypart ((urcorner g)-(llcorner g))>50): dangerousFill g; fi; fi; else: if sharpedges=0: pen_stroke()(dp)(g); else: g:=sharp_stroke_path(dp,ocrb.penwidth*scalefak*mh/2); fi; dangerousFill g; fi; default_nib:=oldnib; endgroup; enddef; def ocrdrawdot(expr pt) = dangerousFill (default_nib shifted pt); enddef; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Okay, I just can't get pen_stroke working to my satisfaction in the % "sharp corners" case. Here's an all-new replacement for it. vardef sharp_stroke_path(expr pathtostroke,strokeradius) = begingroup % set up variables save x,y,rval,sf; path rval; boolean sf; % compute first points numeric x[],y[]; z0=point 0 of pathtostroke; z1=postcontrol 0 of pathtostroke; z2=strokeradius*(z1-z0)/abs(z0-z1); z3=z0-z2+(z2 rotated 90); z4=z0-z2+(z2 rotated -90); rval=z4--z3; % compute other points sf:=true; for i=0 upto length pathtostroke: numeric x[],y[]; z0=point i of pathtostroke; if i=0: z0=0.5[z1,z2]; else: z1=precontrol i of pathtostroke; fi; if i=length pathtostroke: z0=0.5[z1,z2]; else: z2=postcontrol i of pathtostroke; fi; z3=(z0-z1)/abs(z0-z1); z4=(z2-z0)/abs(z2-z0); if (z3 dotprod z4)>0.95: % curve z5=strokeradius*(z3+z4)/2; z6=z0+(z5 rotated -90); z7=z0+(z5 rotated 90); rval:=z6{-z5}..if sf: {curl 1}rval{curl 1} else: rval fi..{z5}z7; sf:=false; else: % corner z6=z0+strokeradius*(z3 rotated -90)+whatever*z3; z6=z0+strokeradius*(z4 rotated -90)+whatever*z4; z7=z0+strokeradius*(z3 rotated 90)+whatever*z3; z7=z0+strokeradius*(z4 rotated 90)+whatever*z4; if (z3 dotprod z4)<-0.6: if (z3 dotprod (z4 rotated 90))<0: % cut off, turning to left z8=z0+strokeradius*(z3 rotated -90); z9=z0+strokeradius*(z4 rotated -90); if sf: rval:=z9--z8--rval; else: rval:=z9--z8..rval; fi; if (z3 dotprod z4)>-0.9: rval:=rval--z7; fi; else: % cut off, turning to right z8=z0+strokeradius*(z3 rotated 90); z9=z0+strokeradius*(z4 rotated 90); if (z3 dotprod z4)>-0.9: rval:=z6--rval; fi; if sf: rval:=rval--z8--z9; else: rval:=rval..z8--z9; fi; fi; else: rval:=z6{curl 1}.. if sf: {curl 1}rval{curl 1} else: rval fi.. {curl 1}z7; fi; sf:=true; fi; endfor; % compute last points numeric x[],y[]; z3=point infinity of pathtostroke; z4=precontrol infinity of pathtostroke; z5=strokeradius*(z4-z3)/abs(z4-z3); z1=z3-z5+(z5 rotated 90); z2=z3-z5+(z5 rotated -90); rval:=z1{curl 1}.. if sf: {curl 1}rval{curl 1} else: rval fi.. {curl 1}z2--cycle; % return the result reverse rval endgroup enddef; vardef sharp_stroke_cycle(expr pathtostroke,strokeradius) = begingroup % set up variables save x,y,rval,sf,ssf; path rval; boolean sf,ssf; % figure out whether last point is sharp numeric x[],y[]; z0=point 0 of pathtostroke; z1=postcontrol 0 of pathtostroke; z2=precontrol 0 of pathtostroke; z3=(z1-z0)/abs(z1-z0); z4=(z0-z2)/abs(z0-z2); sf:=(z3 dotprod z4)<0.95; ssf:=sf; % compute other points for i=0 upto (length pathtostroke)-1: numeric x[],y[]; z0=point i of pathtostroke; z1=precontrol i of pathtostroke; z2=postcontrol i of pathtostroke; z3=(z0-z1)/abs(z0-z1); z4=(z2-z0)/abs(z2-z0); if (z3 dotprod z4)>0.95: % curve z5=strokeradius*(z3+z4)/2; z6=z0+(z5 rotated -90); z7=z0+(z5 rotated 90); if (i>0): rval:=if sf: rval{curl 1} else: rval fi..{z5}z7; else: rval:=z7; fi; sf:=false; else: % corner z6=z0+strokeradius*(z3 rotated -90)+whatever*z3; z6=z0+strokeradius*(z4 rotated -90)+whatever*z4; z7=z0+strokeradius*(z3 rotated 90)+whatever*z3; z7=z0+strokeradius*(z4 rotated 90)+whatever*z4; if (z3 dotprod z4)<-0.6: if (z3 dotprod (z4 rotated 90))<0: % cut off, turning to left z8=z0+strokeradius*(z3 rotated -90); z9=z0+strokeradius*(z4 rotated -90); if (z3 dotprod z4)>-0.9: if (i>0): rval:=if sf: rval{curl 1} else: rval fi..{curl 1}z7; else: rval:=z7; fi; fi; else: % cut off, turning to right z8=z0+strokeradius*(z3 rotated 90); z9=z0+strokeradius*(z4 rotated 90); if (i>0): rval:=if sf: rval{curl 1} else: rval fi..{curl 1}z8--z9; else: rval:=z8--z9; fi; fi; else: if (i>0): rval:=if sf: rval{curl 1} else: rval fi..{curl 1}z7; else: rval:=z7; fi; fi; sf:=true; fi; endfor; % compute last points rval:=rval if sf: {curl 1} fi .. if ssf: {curl 1} fi cycle; if ssf: rval:=(point 0 of rval)--(subpath (1,length(rval)-1) of rval)--cycle; else: rval:=(point 0 of rval)..(subpath (1,length(rval)-1) of rval)..cycle; fi; % return the result reverse rval endgroup enddef; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % beginning of code by Norbert Schwarz (though some modifications were % applied to this too) path penxy; picture bild; picture bildb; path negpath; def dofinishing = % prule; % Rule in xheight-- Hoehe for j:=1 step 1 until subchar: firstpath:= firstpathcount[j]; lastpath := lastpathcount[j]; % message "path "&decimal j ; % message " from "&decimal firstpath; % message " to "&decimal lastpath ; if j > 1 : penxy := default_nib; if known penrand : default_nib := default_nib scaled penrand; fi cullit; undrawallpath; % if sharpedges>0: cullit; shutedges -1; fi default_nib :=penxy; cullit; fi drawallpath; % if globalslant>0 : "with slant"; fi if sharpedges>0 : % "with sharp edges"; % shutedges 1; fi % if hohl>0 : % "'hohl'"; % cullit; % default_nib:=fix_nib(hohl,hohl,0); % undrawallpath; % cullit; % if sharpedges>0 : shutedges -1 ; fi % cullit; % fi if extraline>0 : % " with extraline"; default_nib:=fix_nib(extraline,extraline,0); drawallpath; % if sharpedges>0 : shutedges 1; fi fi endfor if negativ > 0: % cullit; bild:=currentpicture; clearit; negpath:= (-0.5*SYMBWIDTH/scalefak ,-0.35maxy)-- ( 0.5*SYMBWIDTH/scalefak ,-0.35maxy)-- ( 0.5*SYMBWIDTH/scalefak , 1.2maxy)-- (-0.5*SYMBWIDTH/scalefak , 1.2maxy)--cycle; % (-0.5*SYMBWIDTH/scalefak ,-0.35maxy)..cycle; negpath:=negpath shifted (shiftfak,0) scaled scalefak; if known glyph_llx: negpath:=(min(glyph_llx-10,xpart llcorner negpath), min(glyph_lly-10,ypart llcorner negpath))-- (max(glyph_urx+10,xpart urcorner negpath), min(glyph_lly-10,ypart llcorner negpath))-- (max(glyph_urx+10,xpart urcorner negpath), max(glyph_ury+10,ypart urcorner negpath))-- (min(glyph_llx-10,xpart llcorner negpath), max(glyph_ury+10,ypart urcorner negpath))--cycle; fi; dangerousFill negpath; % cullit; bildb := currentpicture; clearit; % currentpicture := bildb-bild; % cullit; % showit; fi clearallpath; enddef; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %def comment text x= % for k:=0 step 29 until (length x)+ 28 : % special " 9"&substring(k,k+29) of(x&" ") ; % numspecial 0;numspecial 0; endfor enddef; def corrwidth expr x= charwd:=x/pt; w:=x; h:=w; enddef; def prule = proofrule((0,0.5capheight),(capheight,0.5capheight)); proofrule((0,0.25capheight),(capheight,0.25capheight)); proofrule((0,0.75capheight),(capheight,0.75capheight)); proofrule((0.25capheight,0),(0.25capheight,capheight)); proofrule((0.75capheight,0),(0.75capheight,capheight)); proofrule(( 0.5capheight,0),(0.5capheight,capheight));enddef; sheight := 0.75 xheight; vardef make@#= if (length str@#) = 1: charcode:=ASCII str @#; else: charcode:=0; fi "Generierung: "&str@#; encode(str@#) (charcode); standard_introduce(str@#); beginglyph(str@#); char@#; fix_hsbw(10pt#,0,0); endglyph; enddef; path allpath[]; def clearallpath = subchar := 1; firstpathcount[subchar]:=0; lastpathcount[subchar]:=-1; pathcount:=-1; enddef; def nextsubchar = subchar := subchar+1; firstpathcount[subchar]:=pathcount+1; lastpathcount[subchar]:=pathcount; enddef; clearallpath; path shutpen; path unitpath; def shutedges expr www = unitpath := (-0.5,-0.5)--(0.5,-0.5)--(0.5,0.5)--(-0.5,0.5)..cycle; shutwidth := abs pen_lft + pen_rt; for i:=firstpath step 1 until lastpath: if cycle allpath[i]: else: shutpen:= unitpath scaled shutwidth rotated (angle(direction 0 of allpath[i])) slanted globalslant ; dangerousFill (shutpen scaled www shifted ((point 0 of allpath[i]) slanted globalslant)); shutpen:= unitpath scaled shutwidth rotated (angle (direction infinity of allpath[i])) slanted globalslant ; dangerousFill (shutpen scaled www shifted ((point infinity of allpath[i]) slanted globalslant)); fi endfor enddef; def savepath text p = pathcount:=pathcount+1; lastpathcount[subchar]:=pathcount; allpath[pathcount]:=p; enddef; def drawallpath = if globalslant=0: for i:=firstpath step 1 until lastpath: ocrdraw(allpath[i]); endfor else: for i:=firstpath step 1 until lastpath: ocrdraw (allpath[i] slanted globalslant); endfor fi enddef; def undrawallpath = if globalslant=0: for i:=firstpath step 1 until lastpath: ocrdraw(allpath[i]); endfor else: for i:=firstpath step 1 until lastpath: ocrdraw (allpath[i] slanted globalslant); endfor fi enddef; %===================================================================== %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$%%%%% %%%%%%%%%%%%%% Makros und Konstanten zum Font O C R B %%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % ========== % mm := (1000u/10pt) * (72.27pt/1in) * (1in/25.4mm) * 1mm; % small correction to make widths exactly 500 units mm := (7227/25.4)*1.004*(10pt#/designsize); designfaktor := designsize*0.1; capheight := 12.275*mm*designfaktor; % Hoehe von "E" unskaliert xheight := 0.5*capheight * designfaktor; % SYMBWIDTH := 2.54mm*designfaktor; % 10 Zeichen je inch scalefak := mm*2.28/11.4*designfaktor; % ================================ path o.s[][]; ocrb.penwidth := 1.75; % Strichstaerke ocrb.width := 7 + ocrb.penwidth; path my_defaultpen; my_defaultpen :=fullcircle scaled (ocrb.penwidth*scalefak); maxy := 12.6 + 0.5ocrb.penwidth; %shiftfak := 0.5maxy; shiftfak := (0.5SYMBWIDTH)/scalefak; path xpath; %------- font dimensionen ptscale := 1/pt; font_x_height (8.5+0.5ocrb.penwidth)*scalefak / pt * designfaktor; font_slant globalslant ; font_normal_space 1.0 * SYMBWIDTH * ptscale; font_normal_stretch 0.0 * SYMBWIDTH * ptscale; font_normal_shrink 0.0 * SYMBWIDTH * ptscale; font_quad 2.0 * SYMBWIDTH * ptscale; font_extra_space 1.0 * SYMBWIDTH * ptscale; %============= Ligaturtabelle fuer Umlaute ==================== ligtable "a" : oct"042" =: oct"200"; ligtable "o" : oct"042" =: oct"201"; ligtable "u" : oct"042" =: oct"202"; ligtable "A" : oct"042" =: oct"203"; ligtable "O" : oct"042" =: oct"204"; ligtable "U" : oct"042" =: oct"205"; %=============================================================== def makechar expr charnumber = if known o.i[charnumber] : encode("char"&decimal charnumber) (charnumber); standard_introduce("char"&decimal charnumber); beginglyph("char"&decimal charnumber); default_nib:=my_defaultpen; kx := 0; for i:=1 step 1 until o.i[charnumber]: if known o.s[charnumber][i] : xpath :=(o.s[charnumber][i] shifted (shiftfak,0) ) scaled scalefak; savepath xpath; for k:=0 step 1 until (length xpath): kx:=kx+1; z[kx] = point k of xpath; endfor fi endfor if proofing>0 : labels(0,1,2,3,4,5,6,7,8,9); labels(10,11,12,13,14,15,16,17,18,19); labels(20,21,22,23,24,25,26,27,28,29); labels(30,31,32,33,34,35,36,37,38,39); fi dofinishing; %corrwidth capheight; corrwidth SYMBWIDTH; % Tiefe korrigieren if known o.m[charnumber]: if (o.m[charnumber]-(0.5*ocrb.penwidth))< 0: chardp := ((o.m[charnumber]-(0.5*ocrb.penwidth)) * scalefak ) / pt; d :=round (chardp*pt); fi fi fix_hsbw(723,0,0); endglyph; else: message "unknown character referenced in makechar"; fi enddef; body_height#:=11.5*scalefak; asc_height#:= 11.5*scalefak; cap_height#:= 11.5*scalefak; fig_height#:= 12.6*scalefak; x_height#:= 8.5*scalefak; math_axis#:= 8.5*scalefak; hohl := lightfactor * ocrb.penwidth * scalefak; % 0<= lightfactor < 1 fonts-ocr-b-0.2~dfsg1/ocr.tex000066400000000000000000000276371275507450000161600ustar00rootroot00000000000000\documentclass{article} \usepackage{fontspec} \usepackage[margin=1.25in,top=0.85in]{geometry} \usepackage{wrapfig} \usepackage{xltxtra} \usepackage{hyperref} \defaultfontfeatures{WordSpace={1,0,0},PunctuationSpace={3}} \setlength{\parindent}{0pt} \setlength{\parskip}{\baselineskip} \raggedright \title{OCR-A and OCR-B fonts\\version 0.2} \author{Matthew Skala} \date{September 27, 2012} \begin{document} \setmainfont{OCRB.otf} \setmonofont{OCRB.otf} \maketitle \section{Introduction} In the mid-2000s I had a reason to need the fonts "OCR A" and "OCR B," and I found it much more difficult than it should have been to obtain copies and get them working with my software. There are commercial versions on the market; but these fonts, being defined in and required by public standards documents, really ought to be available in the free world. There were free versions available but only in the semi-obsolete MetaFont format, designed to produce bitmap output for use with TeX\@. I ended up getting a bunch of conversion and tracing software and semi-manually converting the fonts to TrueType format. The results were just barely good enough for my own purposes; but I posted them on my Web site anyway just in case they might be of use to others. It turns out that in the years since then, those fonts have been among the most-requested resources on my Web site. Dozens if not hundreds of people have downloaded them and used them - and suffered the consequences of the crummy conversion job, and complained about the bad encoding, and so on. In the time since then I've also learned a lot more about how fonts work, and have designed a few of my own. I'm no longer thrilled to have my name on the old, poor-quality converted OCR fonts; and with my improved knowledge, I'm now in a position to write better ones. This package contains those better fonts. More work still needs to be done, but it's already a significant improvement on the older packages. Each font is provided in three ready-made forms: PostScript (.pfb and .afm files), TrueType (.ttf files), and OpenType (.otf files). Almost any computer typesetting or word processing system should be able to read at least one of these formats. OpenType is probably best if you have a choice. Please note that by definition these fonts have limited glyph sets - and if you actually want to use these fonts for OCR applications (their original purpose) then you should be very careful about which glyphs you use, because both typefaces have been extended by others (not me) to contain nonstandard glyphs beyond the official ones. Similarly, this package contains some nonstandard styles for OCR B (italic, reverse video, and outline) which may be visually appealing but are probably not appropriate for actual OCR use. Please note that although the Metafont definitions for both OCR A and OCR B purport to support "optical size," they actually just scale the outlines linearly for the different sizes, so when converting to a scaleable format there's no point treating the different sizes separately. My email address is \url{mailto:mskala@ansuz.sooke.bc.ca}~. As of this version, this package has become part of the Tsukurimashou Project at \url{http://tsukurimashou.sourceforge.jp/}~. That is a bilingual page, English and Japanese; you can select the other one in the upper right corner if your browser's language preferences are misconfigured. All bug reports and feature and support requests for these OCR fonts should be filed in the Tsukurimashou Project's ticket tracker, with the component set to "Parasite font packages." \setmainfont{OCRA.otf} \setmonofont{OCRA.otf} \section{OCR A} Text in this section of this document is set in OCR A; the other sections are OCR B. OCR A is the standard font for the human-readable ISBN printed above the bar code on most books. It has an old-fashioned computerish feel, evoking the mythos of "big iron" data processing for which it was originally designed. The version in this package originates with ANSI Standard X3.17-1977, approved January 20, 1977. Tor Lillqvist of the Technical Research Centre of Finland created a Metafont definition and added some semi-official characters for writing Nordic languages, based on an appendix of the standard. There is a "bang path" email address (no longer routable on the vast majority of Internet email systems) for Lillqvist in the source code comments, but little other information about this stage of the font's development is available to me. Richard B. Wales of UCLA picked up the project in 1988 and his copyright assertion and notes are in the code comments as well. It is not clear to me how much of the original content of the font actually belongs to Wales. In his copyright notice he states that the font may be used freely, but cannot be distributed for profit (see the notices at the start of msk-ocra.mp for details). I released an earlier version in 2006 but that is now obsolete; the present version is newly derived in 2011 from the Wales version. I make no copyright claim on it myself. The Metafont package I worked from is available at \url{http://www.ctan.org/tex-archive/fonts/ocr-a}~. This font includes alternate versions for some characters. The alternates are available in the OpenType version via the "stylistic set" and "all alternates" features. In each case I have let the default versions of the characters be the ones that were default in the Wales version; in some cases those are actually the more recently revised versions of the glyphs. See the source code or experiment with the OpenType features for more information. The alternates should also be available through the TrueType and PostScript versions, but I can't comment on exactly how to access them. \setmainfont{OCRB.otf} \setmonofont{OCRB.otf} \section{OCR B} OCR B is the standard font for the human-readable number printed along the bottom edge of a UPC/EAN bar code. That means that a standard book, if it's really using the correct fonts, needs both OCR A and OCR B in its bar code block. Many UPC codes do not actually use OCR B, however; often they fudge it with Courier, Helvetica, or even Arial. Unlike the ISBN (which is human-readable but meant to also be machine-readable), the number along the bottom of the bar code is only for human beings, and a computer would only scan the bars themselves. The version in this package descends from a set of Metafont definitions by Norbert Schwarz of Ruhr-Universitaet Bochum, bearing dates ranging from 1986 to 2010. He originally distributed it under a "non-commercial use only" restriction but has since released it for unrestricted use and distribution. See the README file for more details. The Metafont definitions include a number of variants for things like "sharp ends" and "reverse video." It's not clear how valuable those alternate fonts are; they aren't suitable for actual OCR use, and there are some problems in the outlines (for instance, with poor overlapping of sharp-ended strokes) that make them less than optimal for human use too. Making the alternate versions work with MetaType1 is going to require a fair bit of effort working around bugs in MetaType1 and Fontforge, as well as correcting the problems in the originals; I plan to do that eventually, but it's not done in this version. Just as with the OCR A font, there are alternate glyphs for a few characters. In the OpenType version, these are available through the "stylistic set" and "all alternates" features. The current version of the Schwarz package is available from CTAN at this address: \url{http://www.ctan.org/tex-archive/fonts/ocr-b} There is also a package by Zdenˇ\hspace{-0.1in}ek Wagner that is similar in general nature to this one: \url{http://www.ctan.org/tex-archive/fonts/ocr-b-outline} Like my earlier package, Wagner's was derived by tracing the outlines from the Metafont originals in a semi-automated way. The fonts in my current package are probably cleaner. \section{Compiling the fonts} Note that the binary font files are included in the package. Most users will have no reason to recompile them, and can safely ignore this section. As of this version, this package builds using a stripped-down version of MetaType1 with some bugs fixed, inherited from the Tsukurimashou Project. The relevant code is bundled with this package, and (where applicable) relicensed to public domain. MetaType1 is no longer a dependency; Perl, Metapost (which should be included in a standard TeX distribution) and t1asm (part of the t1utils package) are now dependencies. FontForge is a dependency. Recompiling this document will also require XeLaTeX (which should be included in a standard TeX distribution); and there are additional considerations relevant to the test suite, for which see the "Testing the fonts" section below. Having "expect" is recommended but not required. This package includes a standard GNU Autotools build system; if you have the prerequisites, it should work by running "./configure" followed by "make". If you turn off the default feature that hides them, the compilation process will produce a large number of error messages; most of these are associated with bugs in Fontforge's spline geometry code, and are unavoidable. The build system supports a "make install" target; however, you might not want to use it, because it will install all the different styles and formats of the fonts and quite possibly install them in places other than where you expect. Most users will probably only want one format and a limited selection of styles, and would be better served by manually copying the files they want after building. Note that all the finished fonts intended for installation and use have filenames starting with capitalized "OCR"; there are intermediate Postscript files created during the build under names that start with lowercase "msk-ocr," but those are lacking important metadata and should not be installed and used directly. Most of the Metapost source code files in this package have had their names changed by prefixing "msk-"; that is to prevent a collision with the filenames used by the original TeX packages. If, like me, you try to compile these fonts on a system that also has the original TeX packages installed, there would otherwise be a danger of getting the original MetaFont files mixed with these Metapost files in a way that would cause it to fail. I couldn't figure out how to force Metapost to really use a specified pathname instead of going through TeX's filename search; it appears to strip off all specified path information. \section{Testing the fonts} The build system supports a "make check" target, which will run FontForge's "fontlint" program on all the installable fonts. This is a very demanding test. It will report a failure on anything that FontForge's developers (and even though I have sometimes been credited as one of these, I do not take responsibility for this point) think is against the rules or even vaguely questionable. Most fontlint validation errors are harmless in actual practice; so if you run "make check" and see nothing but red, Don't Panic. At the very least, "make check" will almost certainly fail if your fonts were built with a version of FontForge that did not support my proposed optional argument to AddExtrema(); and as of this writing the only version of FontForge that supports that is the one in my Github fork at \url{https://github.com/mskala/fontforge}~. The issue, for those interested, is that FontForge's "add extrema" operation has several different operating modes, including one that adds all possible extrema and one that only adds them in cases where it's considered "safe" to do so. The scripting language by default can only invoke the "safe" version; but fontlint demands all extrema whether safe or not, so without a patched version that makes the other modes available to the scripting language, it's not possible for scripts to generate fonts that can pass fontlint. Please do not report validation errors as bugs if you are not using the version of FontForge from my Github fork. \end{document} fonts-ocr-b-0.2~dfsg1/ocra-no.pe000066400000000000000000000014101275507450000165140ustar00rootroot00000000000000#!/usr/local/bin/fontforge # # Fontforge script for OCR A # # This file is released to the public domain by its author, Matthew Skala. Open("msk-ocra10.pfb"); SetFontNames("OCRA","OCRA","OCR A","Regular","Matthew Skala (2011-12); based on code by Richard B. Wales (1988-89) and Tor Lillqvist","2"); SelectAll();SetWidth(723); SelectAll();RoundToCluster(2,2); SelectAll();RoundToInt(); SelectAll();Simplify(212,3); SelectAll();AddExtrema(); SelectAll();RoundToInt(); SelectAll();CorrectDirection(); SelectAll();CanonicalStart(); SelectAll();CanonicalContours(); SelectAll();AutoHint(); SelectAll();AutoCounter(); MergeFeature($1); Generate("OCRA.pfb"); Generate("OCRA.otf"); SetFontOrder(2); SelectAll();AutoHint(); SelectAll();AutoCounter(); Generate("OCRA.ttf"); Quit(0); fonts-ocr-b-0.2~dfsg1/ocra-yes.pe000066400000000000000000000014111275507450000167010ustar00rootroot00000000000000#!/usr/local/bin/fontforge # # Fontforge script for OCR A # # This file is released to the public domain by its author, Matthew Skala. Open("msk-ocra10.pfb"); SetFontNames("OCRA","OCRA","OCR A","Regular","Matthew Skala (2011-12); based on code by Richard B. Wales (1988-89) and Tor Lillqvist","2"); SelectAll();SetWidth(723); SelectAll();RoundToCluster(2,2); SelectAll();RoundToInt(); SelectAll();Simplify(212,3); SelectAll();AddExtrema(1); SelectAll();RoundToInt(); SelectAll();CorrectDirection(); SelectAll();CanonicalStart(); SelectAll();CanonicalContours(); SelectAll();AutoHint(); SelectAll();AutoCounter(); MergeFeature($1); Generate("OCRA.pfb"); Generate("OCRA.otf"); SetFontOrder(2); SelectAll();AutoHint(); SelectAll();AutoCounter(); Generate("OCRA.ttf"); Quit(0); fonts-ocr-b-0.2~dfsg1/ocra.fea000066400000000000000000000014221275507450000162340ustar00rootroot00000000000000languagesystem DFLT dflt; languagesystem latn dflt; feature aalt { sub period from [period period.alt]; sub question from [question question.alt]; sub quotesingle from [quotesingle quotesingle.alt]; sub comma from [comma comma.alt]; sub hyphen from [hyphen hyphen.alt]; } aalt; feature ss01 { featureNames { name "Alternate period"; }; sub period by period.alt; } ss01; feature ss02 { featureNames { name "Alternate question mark"; }; sub question by question.alt; } ss02; feature ss03 { featureNames { name "Alternate apostrophe"; }; sub quotesingle by quotesingle.alt; } ss03; feature ss04 { featureNames { name "Alternate comma"; }; sub comma by comma.alt; } ss04; feature ss05 { featureNames { name "Alternate hyphen"; }; sub hyphen by hyphen.alt; } ss05; fonts-ocr-b-0.2~dfsg1/ocrb-no.pe000066400000000000000000000023361275507450000165250ustar00rootroot00000000000000#!/usr/local/bin/fontforge # # Fontforge script for OCR B # # This file is released to the public domain by its author, Matthew Skala. # $1 = terse name, lc # $2 = terse name, uc # $3 = human-style name # $4 = if set, do background/foreground subtraction # $5 = feature file to attach if (Strtol($4)>0) Open("msk-ocrb10"+$1+"bg.pfb"); SelectAll();Copy(); Open("msk-ocrb10"+$1+"fg.pfb"); SelectAll();PasteInto();CorrectDirection(); else Open("msk-ocrb10"+$1+".pfb"); endif SetFontNames("OCRB"+$2,"OCRB","OCR B "+$3,"Regular","Matthew Skala (2011-12); based on code by Norbert Schwarz (1986, 2011)","2"); SelectAll();SetWidth(723); "ocrbnames.pe"(); #if (Strtol($4)>0) # Select("AE");Cut(); # Select("OE");Cut(); # Select("ae");Cut(); # Select("oe");Cut(); #endif SelectAll();RoundToCluster(2,2); SelectAll();RoundToInt(); SelectAll();Simplify(212,3); SelectAll();AddExtrema(); SelectAll();RoundToInt(); SelectAll();CorrectDirection(); SelectAll();CanonicalStart(); SelectAll();CanonicalContours(); SelectAll();AutoHint(); SelectAll();AutoCounter(); MergeFeature($5); Generate("OCRB"+$2+".pfb"); Generate("OCRB"+$2+".otf"); SetFontOrder(2); SelectAll();AutoHint(); SelectAll();AutoCounter(); Generate("OCRB"+$2+".ttf"); Quit(0); fonts-ocr-b-0.2~dfsg1/ocrb-yes.pe000066400000000000000000000023341275507450000167070ustar00rootroot00000000000000#!/usr/local/bin/fontforge # # Fontforge script for OCR B # # This file is released to the public domain by its author, Matthew Skala. # $1 = terse name, lc # $2 = terse name, uc # $3 = human-style name # $4 = if set, do background/foreground subtraction # $5 = feature file to attach if (Strtol($4)>0) Open("msk-ocrb10"+$1+"bg.pfb"); SelectAll();Copy(); Open("msk-ocrb10"+$1+"fg.pfb"); SelectAll();PasteInto();CorrectDirection(); else Open("msk-ocrb10"+$1+".pfb"); endif SetFontNames("OCRB"+$2,"OCRB","OCR B "+$3,"Regular","Matthew Skala (2011); based on code by Norbert Schwarz (1986, 2011)","2"); SelectAll();SetWidth(723); "ocrbnames.pe"(); #if (Strtol($4)>0) # Select("AE");Cut(); # Select("OE");Cut(); # Select("ae");Cut(); # Select("oe");Cut(); #endif SelectAll();RoundToCluster(2,2); SelectAll();RoundToInt(); SelectAll();Simplify(212,3); SelectAll();AddExtrema(1); SelectAll();RoundToInt(); SelectAll();CorrectDirection(); SelectAll();CanonicalStart(); SelectAll();CanonicalContours(); SelectAll();AutoHint(); SelectAll();AutoCounter(); MergeFeature($5); Generate("OCRB"+$2+".pfb"); Generate("OCRB"+$2+".otf"); SetFontOrder(2); SelectAll();AutoHint(); SelectAll();AutoCounter(); Generate("OCRB"+$2+".ttf"); Quit(0); fonts-ocr-b-0.2~dfsg1/ocrb.fea000066400000000000000000000012111275507450000162310ustar00rootroot00000000000000languagesystem DFLT dflt; languagesystem latn dflt; feature aalt { sub grave from [grave grave.alt]; sub quotedbl from [quotedbl quotedbl.alt]; sub quotesingle from [quotesingle quotesingle.alt]; sub bar from [bar bar.alt]; } aalt; feature ss01 { featureNames { name "Alternate grave accent"; }; sub grave by grave.alt; } ss01; feature ss02 { featureNames { name "Alternate double quote"; }; sub quotedbl by quotedbl.alt; } ss02; feature ss03 { featureNames { name "Alternate apostrophe"; }; sub quotesingle by quotesingle.alt; } ss03; feature ss04 { featureNames { name "Alternate vertical bar"; }; sub bar by bar.alt; } ss04; fonts-ocr-b-0.2~dfsg1/ocrbnames.pe000066400000000000000000000134761275507450000171460ustar00rootroot00000000000000#!/usr/local/bin/fontforge # # Fontforge script to assign glyph names to OCR B # # This file is released to the public domain by its author, Matthew Skala. Select("char0");SetGlyphName("Gamma"); Select("char1");SetGlyphName("Delta"); Select("char2");SetGlyphName("Theta"); Select("char3");SetGlyphName("Lambda"); Select("char4");SetGlyphName("Xi"); Select("char5");SetGlyphName("Pi"); Select("char6");SetGlyphName("Sigma"); Select("char7");SetGlyphName("Upsilon"); Select("char8");SetGlyphName("Phi"); Select("char9");SetGlyphName("Psi"); Select("char10");SetGlyphName("Omega"); Select("char11");SetGlyphName("arrowup"); Select("char12");SetGlyphName("arrowdown"); Select("char13");SetGlyphName("quotesingle.alt"); Select("char14");SetGlyphName("exclamdown"); Select("char15");SetGlyphName("questiondown"); Select("char16");SetGlyphName("dotlessi"); Select("char17");SetGlyphName("dotlessj"); Select("char18");SetGlyphName("grave.alt"); Select("char19");SetGlyphName("acute"); Select("char20");SetGlyphName("caron"); Select("char21");SetGlyphName("breve"); Select("char22");SetGlyphName("macron"); Select("char23");SetGlyphName("dotaccent"); Select("char24");SetGlyphName("cedilla"); Select("char25");SetGlyphName("germandbls"); Select("char26");SetGlyphName("ae"); Select("char27");SetGlyphName("oe"); Select("char28");SetGlyphName("oslash"); Select("char29");SetGlyphName("AE"); Select("char30");SetGlyphName("OE"); Select("char31");SetGlyphName("Oslash"); Select("char32");SetGlyphName("space"); Select("char33");SetGlyphName("exclam"); Select("char34");SetGlyphName("quotedbl.alt"); Select("char35");SetGlyphName("numbersign"); Select("char36");SetGlyphName("dollar"); Select("char37");SetGlyphName("percent"); Select("char38");SetGlyphName("ampersand"); Select("char39");SetGlyphName("quotesingle"); Select("char40");SetGlyphName("parenleft"); Select("char41");SetGlyphName("parenright"); Select("char42");SetGlyphName("asterisk"); Select("char43");SetGlyphName("plus"); Select("char44");SetGlyphName("comma"); Select("char45");SetGlyphName("hyphen"); Select("char46");SetGlyphName("period"); Select("char47");SetGlyphName("slash"); Select("char48");SetGlyphName("zero"); Select("char49");SetGlyphName("one"); Select("char50");SetGlyphName("two"); Select("char51");SetGlyphName("three"); Select("char52");SetGlyphName("four"); Select("char53");SetGlyphName("five"); Select("char54");SetGlyphName("six"); Select("char55");SetGlyphName("seven"); Select("char56");SetGlyphName("eight"); Select("char57");SetGlyphName("nine"); Select("char58");SetGlyphName("colon"); Select("char59");SetGlyphName("semicolon"); Select("char60");SetGlyphName("less"); Select("char61");SetGlyphName("equal"); Select("char62");SetGlyphName("greater"); Select("char63");SetGlyphName("question"); Select("char64");SetGlyphName("at"); Select("char65");SetGlyphName("A"); Select("char66");SetGlyphName("B"); Select("char67");SetGlyphName("C"); Select("char68");SetGlyphName("D"); Select("char69");SetGlyphName("E"); Select("char70");SetGlyphName("F"); Select("char71");SetGlyphName("G"); Select("char72");SetGlyphName("H"); Select("char73");SetGlyphName("I"); Select("char74");SetGlyphName("J"); Select("char75");SetGlyphName("K"); Select("char76");SetGlyphName("L"); Select("char77");SetGlyphName("M"); Select("char78");SetGlyphName("N"); Select("char79");SetGlyphName("O"); Select("char80");SetGlyphName("P"); Select("char81");SetGlyphName("Q"); Select("char82");SetGlyphName("R"); Select("char83");SetGlyphName("S"); Select("char84");SetGlyphName("T"); Select("char85");SetGlyphName("U"); Select("char86");SetGlyphName("V"); Select("char87");SetGlyphName("W"); Select("char88");SetGlyphName("X"); Select("char89");SetGlyphName("Y"); Select("char90");SetGlyphName("Z"); Select("char91");SetGlyphName("bracketleft"); Select("char92");SetGlyphName("backslash"); Select("char93");SetGlyphName("bracketright"); Select("char94");SetGlyphName("circumflex"); Select("char95");SetGlyphName("underscore"); Select("char96");SetGlyphName("grave"); Select("char97");SetGlyphName("a"); Select("char98");SetGlyphName("b"); Select("char99");SetGlyphName("c"); Select("char100");SetGlyphName("d"); Select("char101");SetGlyphName("e"); Select("char102");SetGlyphName("f"); Select("char103");SetGlyphName("g"); Select("char104");SetGlyphName("h"); Select("char105");SetGlyphName("i"); Select("char106");SetGlyphName("j"); Select("char107");SetGlyphName("k"); Select("char108");SetGlyphName("l"); Select("char109");SetGlyphName("m"); Select("char110");SetGlyphName("n"); Select("char111");SetGlyphName("o"); Select("char112");SetGlyphName("p"); Select("char113");SetGlyphName("q"); Select("char114");SetGlyphName("r"); Select("char115");SetGlyphName("s"); Select("char116");SetGlyphName("t"); Select("char117");SetGlyphName("u"); Select("char118");SetGlyphName("v"); Select("char119");SetGlyphName("w"); Select("char120");SetGlyphName("x"); Select("char121");SetGlyphName("y"); Select("char122");SetGlyphName("z"); Select("char123");SetGlyphName("braceleft"); Select("char124");SetGlyphName("bar"); Select("char125");SetGlyphName("braceright"); Select("char126");SetGlyphName("tilde"); # Norbert Schwarz's source code says that char127 is " "a-Striche ". # According to Wiktionary, Striche is the plural of Strich, meaning # "streetwalker's district". Since Unicode doesn't have a code point # for that (yet), I am encoding it as "spacing umlaut" even though its # vertical position seems strange. Select("char127");SetGlyphName("dieresis"); Select("char128");SetGlyphName("adieresis"); Select("char129");SetGlyphName("odieresis"); Select("char130");SetGlyphName("udieresis"); Select("char131");SetGlyphName("Adieresis"); Select("char132");SetGlyphName("Odieresis"); Select("char133");SetGlyphName("Udieresis"); Select("char134");SetGlyphName("section"); Select("char135");SetGlyphName("currency"); Select("char136");SetGlyphName("bar.alt"); Select("char137");SetGlyphName("quotedbl"); fonts-ocr-b-0.2~dfsg1/rmo.pe000066400000000000000000000002711275507450000157570ustar00rootroot00000000000000#!/usr/local/bin/fontforge # # Overlap removal script # Open($1); SelectAll(); RoundToCluster(2,2); RoundToInt(); Simplify(212,3); FindIntersections(); RemoveOverlap(); Generate($1);