-LilyPond è il tipografo musicale del progetto GNU. Questo programma
-puo' stampare delle belle partiture a partire da un documento di
-definizioni musicali. Puo' anche creare meccaniche rappresentazioni
-della partitura in un documento in formato MIDI. Le caratteristiche del
+LilyPond è il tipografo musicale del progetto GNU. Questo programma
+può stampare delle belle partiture a partire da un documento di
+definizioni musicali. Può anche creare meccaniche rappresentazioni
+della partitura in un documento in formato MIDI. Le caratteristiche del
programma includono pentagrammi multipli, segni di divisione, chiavi,
tasti, parole, versatile linguaggio di definizione, cadenze, legature,
acciaccature, terzine, segni di formattazione, estrazione delle
-parte. è compresa una seria completa di caratteri musicali.
+parte. È compresa una seria completa di caratteri musicali.
DEFINEMACRO(pic)(1)(url(ARG1)(DOEXPAND(docdir)/pictures/DOEXPAND(outdir)/ARG1.png
))
+DEFINEMACRO(beginbold)(0)(whenhtml(htmlcommand(<font size=4><strong>)))
+DEFINEMACRO(endbold)(0)(whenhtml(htmlcommand(</strong><font size=3>)))
+redef(htmlnewfile)(0)()
+setchapterstring()
-nsect(LilyPond -- The GNU Project Music Typesetter)
+nchapter(LilyPond -- The GNU Project Music Typesetter)
includefile(../BLURB.in)(url(italiano)(DOEXPAND(docdir)/DOEXPAND(outdir)/COPERTINA.html))(url(nederlands)(DOEXPAND(docdir)/DOEXPAND(outdir)/FLAPTEKST.html))
nl()
\relative c'' { \key es; r8 [c16 b] [c8 g] [as c16 b] [c8 d] | g,4 }
))
-nsubsect()
+
+nsect()
Hmm, this is what it said yesterday too. I just want to know
url(What's new)(DOEXPAND(docdir)/DOEXPAND(outdir)/NEWS.html) today and
-then COMMENT(
-url(Download)(ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/development/lilypond-@TOPLEVEL_VERSION@.tar.gz)
-LilyPond. perhaps lily/VERSION, i.e. without my-patch-level would be
-best...
-)url(Download)(ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/development/lilypond-@TOPLEVEL_VERSION@.tar.gz)
+then url(Download)(ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/development/lilypond-@TOPLEVEL_VERSION@.tar.gz)
LilyPond.
+nl()
Or get the latest url(patch)(DOEXPAND(depth)/DOEXPAND(outdir)/lilypond-@TOPLEVEL_VERSION@.diff.gz).
-nsubsect(Introduction)
-
+nsubsect(Webmaster's Disclaimer)
These pages were entirely created from the LilyPond package-sources.
Sorry for poor look they have: we want to be hacking at LilyPond, and
of LilyPond, specifically, this page was made from LilyPond
@TOPLEVEL_VERSION@.tar.gz
-nsect(Sites)
-description(
-dit(lurl(http://www.cs.uu.nl/people/hanwen/lilypond/))Han-Wen's site.
-dit(lurl(http://www.xs4all.nl/~jantien/lilypond/))Jan's site.
-dit(lurl(http://www.realtime.net/~daboys/lilypond/))Jeff's Windows NT Distribution site.
+nsect(Preview)
+
+itemize(
+beginbold()
+it()url(Examples)(DOEXPAND(depth)/input/DOEXPAND(outdir)/index.html):
+endbold()
+ simple pieces, tests and bugs. MIDI, PNG (gif replacement), PostScript, and Source.
+beginbold()
+it()url(Music in Mutopia)(DOEXPAND(depth)/mutopia/DOEXPAND(outdir)/index.html):
+endbold()
+ LilyPond handling real music. MIDI, view PNG (gif replacement), PostScript, and Source.
)
+nsect(Documentation)
-nsubsubsect(Mirrors)
-description(
-dit(lurl(http://sca.uwaterloo.ca/lilypond/))
- Eric Praetzel was kind enough to provide a mirror of both the website
- and the ftp site.
+itemize(
+it()url(Tutorial)(DOEXPAND(docdir)/tex/DOEXPAND(outdir)/tutorial.html)
+it()url(FAQ)(DOEXPAND(docdir)/DOEXPAND(outdir)/faq.html)
+it()url(Reference Manual)(DOEXPAND(docdir)/tex/DOEXPAND(outdir)/refman.html)
+it()url(Mailing Lists)(DOEXPAND(docdir)/DOEXPAND(outdir)/mail.html)
+it()url(All of the LilyPond documentation)(DOEXPAND(docdir)/DOEXPAND(outdir)/index.html)
+it()url(The DOC++ documentation of the C++ sources.)(DOEXPAND(depth)/docxx/index.html)
)
-nsubsect(Examples)
+nsect(Sites)
itemize(
-it()url(short examples of what LilyPond can do: MIDI, PS, .png and input.)
-(DOEXPAND(depth)/input/DOEXPAND(outdir)/index.html)
-it()url(examples of what LilyPond can do with real music: MIDI, PS, .png and input)(DOEXPAND(depth)/mutopia/DOEXPAND(outdir)/index.html)
+it()lurl(http://www.cs.uu.nl/people/hanwen/lilypond/) Han-Wen's site
+it()lurl(http://www.xs4all.nl/~jantien/lilypond/) Jan's site
+it()lurl(http://www.realtime.net/~daboys/lilypond/) Jeff's Windows NT Distribution site
)
-nsubsect(NEWS)
+nsubsect(Mirrors)
+description(
+dit(lurl(http://sca.uwaterloo.ca/lilypond/))
+ Eric Praetzel was kind enough to provide a mirror of both the website
+ and the ftp site.
+)
+
+nsect(NEWS)
This is what the latest version brings:
verb(
top_of_NEWS
)
-Go get it at lurl(ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/development/)
-
-nsubsect(Documentation)
-
+beginbold()
+Go get it at
itemize(
-it()url(All of the LilyPond documentation.)(DOEXPAND(docdir)/DOEXPAND(outdir)/index.html)
-it()url(The DOC++ documentation of the C++ sources.)(DOEXPAND(depth)/docxx/index.html)
+it()lurl(ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/development/)
+endbold()
+it()lurl(ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/RedHat/RPMS/) RedHat binary
+it()lurl(ftp://ftp.debian.org/pub/debian/dists/unstable/main/binary-i386/tex) Debian binary
+it()lurl(http://www.realtime.net/~daboys/lilypond/) Windows NT binary
)
@COUNTER_REF@
BUGS:
+
* gallina barlines.
* latex bla.tex broken (titles / \lilyfooter stuff?)
- * acc placement: \score { \notes \key G; \transpose\notes { a b c } }
-
- * --safe: disallow backslashes, disallow \include.
-
* msgfmt -o check?
* \breathmark TeX macro
portato= \script { "portato" 0 -1 0 1 0 }
+STUFF
+
+ * move option processing out of gh_enter
+
+ * check out GCC signatures?
+
* Align_element::padding ?
* uniformise property names.
* make engraver hacking robust.
+ * --safe: disallow backslashes, disallow \include.
+
* use streambufs and iostream
to provide IO handling for TeX stream, mudela stream, data-file.
* zip target for binary windows dist (JBR)
- * text continuations
-
* revise documentation
* abbrev -> tremolo
- junk _ for lyrics.
- abstract grammar.
- * install TeX stuff into tex/generic directory.
-
* percussion note heads
* mi2mu empty staffs.
* Flower types:
- A decent scalar type
- - String hash
- - Pointer hash
* binsearch/hash for identifiers
IDEAS
-
* Output data structures of Mudela in XML/SGML.
* create libmudela, or liblily_frontend
* move MIDI stuff (including Quantization) to a ANSI C libmidi library.
* use an embedded language: Python, Scheme
- for:
+ for:
- Score_elems
- Translators
* caching breakpoints
- * breath marks
-
* used fixedpoint arithmetic for min. energy.
* move towards incremental algorithms.
# include an empty path component for the system wide includes.
MFINPUTS="@datadir@/mf:"${MFINPUTS:=":"}
-TEXINPUTS="@datadir@/tex:"${TEXINPUTS:=":"}
+TEXINPUTS="@datadir@/tex:@datadir@/ps:"${TEXINPUTS:=":"}
+
GUILE_LOAD_PATH="@datadir@/scm:$GUILE_LOAD_PATH"
export GUILE_LOAD_PATH LILYINCLUDE MFINPUTS TEXINPUTS GS_LIB GS_FONTPATH
fi
LILYINCLUDE=$LILYPOND_SOURCEDIR/init:$LILYPOND_SOURCEDIR/input:$LILYPOND_SOURCEDIR/mf/out
MFINPUTS=$MFINPUTS:$LILYPOND_SOURCEDIR/mf
- TEXINPUTS=$TEXINPUTS:$LILYPOND_SOURCEDIR/mf/out
+ TEXINPUTS=$TEXINPUTS:$LILYPOND_SOURCEDIR/mf/out:$LILYPOND_SOURCEDIR/ps:$LILYPOND_SOURCEDIR/tex
export LILYINCLUDE MFINPUTS TEXINPUTS
GS_LIB=$HOME/usr/src/lilypond/ps
GS_FONTPATH=$HOME/usr/src/lilypond/mf/out
cat <<EOF
LILYINCLUDE=$LILYPOND_SOURCEDIR/init:$LILYPOND_SOURCEDIR/mf/out
MFINPUTS=\$MFINPUTS:\$LILYPOND_SOURCEDIR/mf
- TEXINPUTS=\$TEXINPUTS:\$LILYPOND_SOURCEDIR/mf/out
+ TEXINPUTS=$TEXINPUTS:$LILYPOND_SOURCEDIR/mf/out:$LILYPOND_SOURCEDIR/ps:$LILYPOND_SOURCEDIR/tex
export LILYINCLUDE MFINPUTS TEXINPUTS
EOF
-#! /bin/sh
-
-ac_help="$ac_help
- --with-gtkmm-prefix=PREFIX
- Prefix where GTK-- is installed (optional)"
-# Check whether --with-gtkmm-prefix or --without-gtkmm-prefix was given.
-if test "${with_gtkmm_prefix+set}" = set; then
- withval="$with_gtkmm_prefix"
- gtkmm_config_prefix="$withval"
-else
- gtkmm_config_prefix=""
-fi
-
-ac_help="$ac_help
- --with-gtkmm-exec-prefix=PREFIX
- Exec prefix where GTK-- is installed (optional)"
-# Check whether --with-gtkmm-exec-prefix or --without-gtkmm-exec-prefix was given.
-if test "${with_gtkmm_exec_prefix+set}" = set; then
- withval="$with_gtkmm_exec_prefix"
- gtkmm_config_exec_prefix="$withval"
-else
- gtkmm_config_exec_prefix=""
-fi
-
-ac_help="$ac_help
- --disable-gtkmmtest Do not try to compile and run a test GTK-- program"
-# Check whether --enable-gtkmmtest or --disable-gtkmmtest was given.
-if test "${enable_gtkmmtest+set}" = set; then
- enableval="$enable_gtkmmtest"
- :
-else
- enable_gtkmmtest=yes
-fi
-
-
- if test x$gtkmm_config_exec_prefix != x ; then
- gtkmm_config_args="$gtkmm_config_args --exec-prefix=$gtkmm_config_exec_prefix"
- if test x${GTKMM_CONFIG+set} != xset ; then
- GTKMM_CONFIG=$gtkmm_config_exec_prefix/bin/gtkmm-config
- fi
- fi
- if test x$gtkmm_config_prefix != x ; then
- gtkmm_config_args="$gtkmm_config_args --prefix=$gtkmm_config_prefix"
- if test x${GTKMM_CONFIG+set} != xset ; then
- GTKMM_CONFIG=$gtkmm_config_prefix/bin/gtkmm-config
- fi
- fi
-
-
-
-
-# Configure paths for GTK--DRAW
-# Derek Quinn Wyatt 98-08-21 (adapted from Jan Nieuwenhuizen's code)
-
-
-
-# Guess values for system-dependent variables and create Makefiles.
-# Generated automatically using autoconf version 2.12
-# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
-#
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-
-# Defaults:
-ac_help=
-ac_default_prefix=/usr/local
-# Any additions from configure.in:
-ac_help="$ac_help
- enable-config=FILE put configure settings in config-FILE.make"
-ac_help="$ac_help
- enable-checking set runtime checks (assert calls). Default: on"
-ac_help="$ac_help
- enable-optimise use maximal speed optimisations. Default: off"
-ac_help="$ac_help
- enable-profiling compile with gprof support. Default: off"
-ac_help="$ac_help
- enable-debugging set debug info. Default: on"
-ac_help="$ac_help
- enable-mingw-prefix=DIR set the mingw32 directory (standalone windows32 exes)"
-ac_help="$ac_help
- enable-printing turn on debug printing. Default: off"
-ac_help="$ac_help
- with-localedir=LOCALE use LOCALE as locale dir. Default: PREFIX/share/locale "
-ac_help="$ac_help
- with-lang=LANG use LANG as language to emit messages"
-
-# Initialize some variables set by options.
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-build=NONE
-cache_file=./config.cache
-exec_prefix=NONE
-host=NONE
-no_create=
-nonopt=NONE
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-target=NONE
-verbose=
-x_includes=NONE
-x_libraries=NONE
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datadir='${prefix}/share'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-libdir='${exec_prefix}/lib'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
-
-# Initialize some other variables.
-subdirs=
-MFLAGS= MAKEFLAGS=
-# Maximum number of lines to put in a shell here document.
-ac_max_here_lines=12
-
-ac_prev=
-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=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
- *) ac_optarg= ;;
- esac
-
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
- case "$ac_option" in
-
- -bindir | --bindir | --bindi | --bind | --bin | --bi)
- ac_prev=bindir ;;
- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
- bindir="$ac_optarg" ;;
-
- -build | --build | --buil | --bui | --bu)
- ac_prev=build ;;
- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
- build="$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" ;;
-
- -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
- ac_prev=datadir ;;
- -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
- | --da=*)
- datadir="$ac_optarg" ;;
-
- -disable-* | --disable-*)
- ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
- { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
- fi
- ac_feature=`echo $ac_feature| sed 's/-/_/g'`
- eval "enable_${ac_feature}=no" ;;
-
- -enable-* | --enable-*)
- ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
- { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
- fi
- ac_feature=`echo $ac_feature| sed 's/-/_/g'`
- case "$ac_option" in
- *=*) ;;
- *) ac_optarg=yes ;;
- esac
- eval "enable_${ac_feature}='$ac_optarg'" ;;
-
- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
- | --exec | --exe | --ex)
- ac_prev=exec_prefix ;;
- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
- | --exec=* | --exe=* | --ex=*)
- exec_prefix="$ac_optarg" ;;
-
- -gas | --gas | --ga | --g)
- # Obsolete; use --with-gas.
- with_gas=yes ;;
-
- -help | --help | --hel | --he)
- # 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 << EOF
-Usage: configure [options] [host]
-Options: [defaults in brackets after descriptions]
-Configuration:
- --cache-file=FILE cache test results in FILE
- --help print this message
- --no-create do not create output files
- --quiet, --silent do not print \`checking...' messages
- --version print the version of autoconf that created configure
-Directory and file names:
- --prefix=PREFIX install architecture-independent files in PREFIX
- [$ac_default_prefix]
- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
- [same as prefix]
- --bindir=DIR user executables in DIR [EPREFIX/bin]
- --sbindir=DIR system admin executables in DIR [EPREFIX/sbin]
- --libexecdir=DIR program executables in DIR [EPREFIX/libexec]
- --datadir=DIR read-only architecture-independent data in DIR
- [PREFIX/share]
- --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc]
- --sharedstatedir=DIR modifiable architecture-independent data in DIR
- [PREFIX/com]
- --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var]
- --libdir=DIR object code libraries in DIR [EPREFIX/lib]
- --includedir=DIR C header files in DIR [PREFIX/include]
- --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include]
- --infodir=DIR info documentation in DIR [PREFIX/info]
- --mandir=DIR man documentation in DIR [PREFIX/man]
- --srcdir=DIR find the sources in DIR [configure dir or ..]
- --program-prefix=PREFIX prepend PREFIX to installed program names
- --program-suffix=SUFFIX append SUFFIX to installed program names
- --program-transform-name=PROGRAM
- run sed PROGRAM on installed program names
-EOF
- cat << EOF
-Host type:
- --build=BUILD configure for building on BUILD [BUILD=HOST]
- --host=HOST configure for HOST [guessed]
- --target=TARGET configure for TARGET [TARGET=HOST]
-Features and packages:
- --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)
- --x-includes=DIR X include files are in DIR
- --x-libraries=DIR X library files are in DIR
-EOF
- if test -n "$ac_help"; then
- echo "--enable and --with options recognized:$ac_help"
- fi
- exit 0 ;;
-
- -host | --host | --hos | --ho)
- ac_prev=host ;;
- -host=* | --host=* | --hos=* | --ho=*)
- host="$ac_optarg" ;;
-
- -includedir | --includedir | --includedi | --included | --include \
- | --includ | --inclu | --incl | --inc)
- ac_prev=includedir ;;
- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
- | --includ=* | --inclu=* | --incl=* | --inc=*)
- includedir="$ac_optarg" ;;
-
- -infodir | --infodir | --infodi | --infod | --info | --inf)
- ac_prev=infodir ;;
- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
- infodir="$ac_optarg" ;;
-
- -libdir | --libdir | --libdi | --libd)
- ac_prev=libdir ;;
- -libdir=* | --libdir=* | --libdi=* | --libd=*)
- libdir="$ac_optarg" ;;
-
- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
- | --libexe | --libex | --libe)
- ac_prev=libexecdir ;;
- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
- | --libexe=* | --libex=* | --libe=*)
- libexecdir="$ac_optarg" ;;
-
- -localstatedir | --localstatedir | --localstatedi | --localstated \
- | --localstate | --localstat | --localsta | --localst \
- | --locals | --local | --loca | --loc | --lo)
- ac_prev=localstatedir ;;
- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
- | --localstate=* | --localstat=* | --localsta=* | --localst=* \
- | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
- localstatedir="$ac_optarg" ;;
-
- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
- ac_prev=mandir ;;
- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
- mandir="$ac_optarg" ;;
-
- -nfp | --nfp | --nf)
- # Obsolete; use --without-fp.
- with_fp=no ;;
-
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c)
- no_create=yes ;;
-
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
- no_recursion=yes ;;
-
- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
- | --oldin | --oldi | --old | --ol | --o)
- ac_prev=oldincludedir ;;
- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
- oldincludedir="$ac_optarg" ;;
-
- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
- ac_prev=prefix ;;
- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
- prefix="$ac_optarg" ;;
-
- -program-prefix | --program-prefix | --program-prefi | --program-pref \
- | --program-pre | --program-pr | --program-p)
- ac_prev=program_prefix ;;
- -program-prefix=* | --program-prefix=* | --program-prefi=* \
- | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
- program_prefix="$ac_optarg" ;;
-
- -program-suffix | --program-suffix | --program-suffi | --program-suff \
- | --program-suf | --program-su | --program-s)
- ac_prev=program_suffix ;;
- -program-suffix=* | --program-suffix=* | --program-suffi=* \
- | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
- program_suffix="$ac_optarg" ;;
-
- -program-transform-name | --program-transform-name \
- | --program-transform-nam | --program-transform-na \
- | --program-transform-n | --program-transform- \
- | --program-transform | --program-transfor \
- | --program-transfo | --program-transf \
- | --program-trans | --program-tran \
- | --progr-tra | --program-tr | --program-t)
- ac_prev=program_transform_name ;;
- -program-transform-name=* | --program-transform-name=* \
- | --program-transform-nam=* | --program-transform-na=* \
- | --program-transform-n=* | --program-transform-=* \
- | --program-transform=* | --program-transfor=* \
- | --program-transfo=* | --program-transf=* \
- | --program-trans=* | --program-tran=* \
- | --progr-tra=* | --program-tr=* | --program-t=*)
- program_transform_name="$ac_optarg" ;;
-
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- silent=yes ;;
-
- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
- ac_prev=sbindir ;;
- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
- | --sbi=* | --sb=*)
- sbindir="$ac_optarg" ;;
-
- -sharedstatedir | --sharedstatedir | --sharedstatedi \
- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
- | --sharedst | --shareds | --shared | --share | --shar \
- | --sha | --sh)
- ac_prev=sharedstatedir ;;
- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
- | --sha=* | --sh=*)
- sharedstatedir="$ac_optarg" ;;
-
- -site | --site | --sit)
- ac_prev=site ;;
- -site=* | --site=* | --sit=*)
- site="$ac_optarg" ;;
-
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- srcdir="$ac_optarg" ;;
-
- -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
- | --syscon | --sysco | --sysc | --sys | --sy)
- ac_prev=sysconfdir ;;
- -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
- | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
- sysconfdir="$ac_optarg" ;;
-
- -target | --target | --targe | --targ | --tar | --ta | --t)
- ac_prev=target ;;
- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
- target="$ac_optarg" ;;
-
- -v | -verbose | --verbose | --verbos | --verbo | --verb)
- verbose=yes ;;
-
- -version | --version | --versio | --versi | --vers)
- echo "configure generated by autoconf version 2.12"
- exit 0 ;;
-
- -with-* | --with-*)
- ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
- { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
- fi
- ac_package=`echo $ac_package| sed 's/-/_/g'`
- case "$ac_option" in
- *=*) ;;
- *) ac_optarg=yes ;;
- esac
- eval "with_${ac_package}='$ac_optarg'" ;;
-
- -without-* | --without-*)
- ac_package=`echo $ac_option|sed -e 's/-*without-//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
- { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
- fi
- ac_package=`echo $ac_package| sed 's/-/_/g'`
- eval "with_${ac_package}=no" ;;
-
- --x)
- # Obsolete; use --with-x.
- with_x=yes ;;
-
- -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
- | --x-incl | --x-inc | --x-in | --x-i)
- ac_prev=x_includes ;;
- -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
- | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
- x_includes="$ac_optarg" ;;
-
- -x-libraries | --x-libraries | --x-librarie | --x-librari \
- | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
- ac_prev=x_libraries ;;
- -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
- | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
- x_libraries="$ac_optarg" ;;
-
- -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
- ;;
-
- *)
- if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
- echo "configure: warning: $ac_option: invalid host type" 1>&2
- fi
- if test "x$nonopt" != xNONE; then
- { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
- fi
- nonopt="$ac_option"
- ;;
-
- esac
-done
-
-if test -n "$ac_prev"; then
- { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
-fi
-
-trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
-
-# File descriptor usage:
-# 0 standard input
-# 1 file creation
-# 2 errors and warnings
-# 3 some systems may open it to /dev/tty
-# 4 used on the Kubota Titan
-# 6 checking for... messages and results
-# 5 compiler messages saved in config.log
-if test "$silent" = yes; then
- exec 6>/dev/null
-else
- exec 6>&1
-fi
-exec 5>./config.log
-
-echo "\
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-" 1>&5
-
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Also quote any args containing shell metacharacters.
-ac_configure_args=
-for ac_arg
-do
- case "$ac_arg" in
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c) ;;
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
- *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
- ac_configure_args="$ac_configure_args '$ac_arg'" ;;
- *) ac_configure_args="$ac_configure_args $ac_arg" ;;
- esac
-done
-
-# NLS nuisances.
-# Only set these to C if already set. These must not be set unconditionally
-# because not all systems understand e.g. LANG=C (notably SCO).
-# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
-# Non-C LC_CTYPE values break the ctype check.
-if test "${LANG+set}" = set; then LANG=C; export LANG; fi
-if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
-if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
-if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -rf conftest* confdefs.h
-# AIX cpp loses on an empty file, so make sure it contains at least a newline.
-echo > confdefs.h
-
-# A filename unique to this package, relative to the directory that
-# configure is in, which we can look for to find out if srcdir is correct.
-ac_unique_file=make/lilypond.lsm.in
-
-# 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 its parent.
- ac_prog=$0
- ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
- test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
- 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
- if test "$ac_srcdir_defaulted" = yes; then
- { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
- else
- { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
- fi
-fi
-srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
-
-# Prefer explicitly selected file to automatically selected ones.
-if test -z "$CONFIG_SITE"; then
- if test "x$prefix" != xNONE; then
- CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
- else
- CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
- fi
-fi
-for ac_site_file in $CONFIG_SITE; do
- if test -r "$ac_site_file"; then
- echo "loading site script $ac_site_file"
- . "$ac_site_file"
- fi
-done
-
-if test -r "$cache_file"; then
- echo "loading cache $cache_file"
- . $cache_file
-else
- echo "creating cache $cache_file"
- > $cache_file
-fi
-
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
- # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
- if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
- ac_n= ac_c='
-' ac_t=' '
- else
- ac_n=-n ac_c= ac_t=
- fi
-else
- ac_n= ac_c='\c' ac_t=
-fi
-
-
-
-
-# Bootstrap StepMake configure
-
-
- . $srcdir/VERSION
- FULL_VERSION=$MAJOR_VERSION.$MINOR_VERSION.$PATCH_LEVEL
- if test x$MY_PATCH_LEVEL != x; then
- FULL_VERSION=$FULL_VERSION.$MY_PATCH_LEVEL
- fi
-
- # urg: don't "fix" this: irix doesn't know about [:lower:] and [:upper:]
- PACKAGE=`echo $PACKAGE_NAME | tr '[a-z]' '[A-Z]'`
- package=`echo $PACKAGE_NAME | tr '[A-Z]' '[a-z]'`
-
- # No versioning on directory names of sub-packages
- # urg, urg
- stepmake=${datadir}/stepmake
- presome=${prefix}
- if test "$prefix" = "NONE"; then
- presome=${ac_default_prefix}
- fi
- stepmake=`echo ${stepmake} | sed "s!\\\${prefix}!$presome!"`
-
- if test "x$PACKAGE" = "xSTEPMAKE"; then
- echo Stepmake package!
- (cd stepmake; rm -f stepmake; ln -s ../stepmake .)
- (cd stepmake; rm -f bin; ln -s ../bin .)
- ac_aux_dir=
-for ac_dir in bin $srcdir/bin; 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
- fi
-done
-if test -z "$ac_aux_dir"; then
- { echo "configure: error: can not find install-sh or install.sh in bin $srcdir/bin" 1>&2; exit 1; }
-fi
-ac_config_guess=$ac_aux_dir/config.guess
-ac_config_sub=$ac_aux_dir/config.sub
-ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
-
- stepmake=stepmake
- else
- echo Package: $PACKAGE
- # Check for installed stepmake
- if test -d $stepmake; then
- echo Using installed stepmake: $stepmake
- else
- stepmake='$(depth)'/stepmake
- echo Using local stepmake: $datadir/stepmake not found
- fi
- ac_aux_dir=
-for ac_dir in \
- $HOME/usr/local/share/stepmake/bin\
- $HOME/usr/local/lib/stepmake/bin\
- $HOME/usr/share/stepmake/bin\
- $HOME/usr/lib/stepmake/bin\
- /usr/local/share/stepmake/bin\
- /usr/local/lib/stepmake/bin\
- /usr/share/stepmake/bin\
- /usr/lib/stepmake/bin\
- stepmake/bin\
- $srcdir/\
- $HOME/usr/local/share/stepmake/bin\
- $HOME/usr/local/lib/stepmake/bin\
- $HOME/usr/share/stepmake/bin\
- $HOME/usr/lib/stepmake/bin\
- /usr/local/share/stepmake/bin\
- /usr/local/lib/stepmake/bin\
- /usr/share/stepmake/bin\
- /usr/lib/stepmake/bin\
- stepmake/bin\
- ; 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
- fi
-done
-if test -z "$ac_aux_dir"; then
- { echo "configure: error: can not find install-sh or install.sh in \
- $HOME/usr/local/share/stepmake/bin\
- $HOME/usr/local/lib/stepmake/bin\
- $HOME/usr/share/stepmake/bin\
- $HOME/usr/lib/stepmake/bin\
- /usr/local/share/stepmake/bin\
- /usr/local/lib/stepmake/bin\
- /usr/share/stepmake/bin\
- /usr/lib/stepmake/bin\
- stepmake/bin\
- $srcdir/\
- $HOME/usr/local/share/stepmake/bin\
- $HOME/usr/local/lib/stepmake/bin\
- $HOME/usr/share/stepmake/bin\
- $HOME/usr/lib/stepmake/bin\
- /usr/local/share/stepmake/bin\
- /usr/local/lib/stepmake/bin\
- /usr/share/stepmake/bin\
- /usr/lib/stepmake/bin\
- stepmake/bin\
- " 1>&2; exit 1; }
-fi
-ac_config_guess=$ac_aux_dir/config.guess
-ac_config_sub=$ac_aux_dir/config.sub
-ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
-
- fi
-
-
-
-
-
- cat >> confdefs.h <<EOF
-#define PACKAGE "${PACKAGE_NAME}"
-EOF
-
- cat >> confdefs.h <<EOF
-#define TOPLEVEL_VERSION "${FULL_VERSION}"
-EOF
-
-
- package_depth=`dirname $cache_file`
-
-
- AUTOGENERATE="This file was automatically generated by configure"
-
- absolute_builddir="`pwd`"
-
-
- STATE_VECTOR=`ls make/STATE-VECTOR 2>/dev/null`
- if test "x$STATE_VECTOR" != "x"; then
- STATE_VECTOR="\$(depth)/$STATE_VECTOR"
- fi
-
-
- CONFIGSUFFIX=
- # Check whether --enable-config or --disable-config was given.
-if test "${enable_config+set}" = set; then
- enableval="$enable_config"
- CONFIGSUFFIX=$enableval
-fi
-
-
- if test "$CONFIGSUFFIX" != "" ; then
- CONFIGFILE=config-$CONFIGSUFFIX
- else
- CONFIGFILE=config
- fi
-
-
-
-# Make sure we can run config.sub.
-if $ac_config_sub sun4 >/dev/null 2>&1; then :
-else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
-fi
-
-echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:761: checking host system type" >&5
-
-host_alias=$host
-case "$host_alias" in
-NONE)
- case $nonopt in
- NONE)
- if host_alias=`$ac_config_guess`; then :
- else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
- fi ;;
- *) host_alias=$nonopt ;;
- esac ;;
-esac
-
-host=`$ac_config_sub $host_alias`
-host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-echo "$ac_t""$host" 1>&6
-
- for ac_prog in make
-do
-# Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:786: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_MAKE'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$MAKE"; then
- ac_cv_prog_MAKE="$MAKE" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_MAKE="$ac_prog"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-MAKE="$ac_cv_prog_MAKE"
-if test -n "$MAKE"; then
- echo "$ac_t""$MAKE" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-test -n "$MAKE" && break
-done
-test -n "$MAKE" || MAKE="error"
-
- for ac_prog in find
-do
-# Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:820: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_FIND'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$FIND"; then
- ac_cv_prog_FIND="$FIND" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_FIND="$ac_prog"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-FIND="$ac_cv_prog_FIND"
-if test -n "$FIND"; then
- echo "$ac_t""$FIND" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-test -n "$FIND" && break
-done
-test -n "$FIND" || FIND="error"
-
-
-
-
- for ac_prog in tar
-do
-# Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:857: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_TAR'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$TAR"; then
- ac_cv_prog_TAR="$TAR" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_TAR="$ac_prog"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-TAR="$ac_cv_prog_TAR"
-if test -n "$TAR"; then
- echo "$ac_t""$TAR" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-test -n "$TAR" && break
-done
-test -n "$TAR" || TAR="error"
-
- for ac_prog in bash
-do
-# Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:891: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_BASH'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$BASH"; then
- ac_cv_prog_BASH="$BASH" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_BASH="$ac_prog"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-BASH="$ac_cv_prog_BASH"
-if test -n "$BASH"; then
- echo "$ac_t""$BASH" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-test -n "$BASH" && break
-done
-test -n "$BASH" || BASH="/bin/sh"
-
-
- # Extract the first word of "${PYTHON:-python}", so it can be a program name with args.
-set dummy ${PYTHON:-python}; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:924: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_path_PYTHON'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- case "$PYTHON" in
- /*)
- ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path.
- ;;
- *)
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_path_PYTHON="$ac_dir/$ac_word"
- break
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_path_PYTHON" && ac_cv_path_PYTHON="-echo no python"
- ;;
-esac
-fi
-PYTHON="$ac_cv_path_PYTHON"
-if test -n "$PYTHON"; then
- echo "$ac_t""$PYTHON" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-
-
-
- result="`echo \"$MAKE\" | grep echo`"
- if test "x$MAKE" = "xerror" -o "x$result" != "x"; then
-
- echo "configure: warning: can\'t find GNU make. You should install GNU make" 1>&2
- warn_b=yes
-
- fi
-
- if test $MAKE != "error" ; then
- $MAKE -v| grep GNU > /dev/null
- if test "$?" = 1
- then
-
- echo "configure: warning: Please install *GNU* make" 1>&2
- warn_b=yes
-
- fi
- fi
-
-
- result="`echo \"$PYTHON\" | grep echo`"
- if test "x$PYTHON" = "xerror" -o "x$result" != "x"; then
-
- echo "configure: warning: can\'t find python. You should install Python" 1>&2
- warn_b=yes
-
- fi
-
-
- if test "x$OSTYPE" = "xcygwin32" || test "x$OSTYPE" = "xWindows_NT"; then
- LN=cp # hard link does not work under cygnus-nt
- LN_S=cp # symbolic link does not work for native nt
- ZIP="zip -r -9" #
- DOTEXE=.exe
- DIRSEP='\\'
- PATHSEP=';'
- INSTALL="\$(SHELL) \$(stepdir)/../bin/install-dot-exe.sh -c"
- else
- DIRSEP='/'
- PATHSEP=':'
- LN=ln
- LN_S='ln -s'
- ZIP="zip -r -9"
- INSTALL="\$(SHELL) \$(stepdir)/../bin/install-sh -c"
- fi
-
-
-
-
-
- cat >> confdefs.h <<EOF
-#define DIRSEP '${DIRSEP}'
-EOF
-
- cat >> confdefs.h <<EOF
-#define PATHSEP '${PATHSEP}'
-EOF
-
-
-
-
-
-
- if test "$datadir" = "\${prefix}/share"; then
- datadir='${prefix}/share/'$package
- fi
- DIR_DATADIR=${datadir}
- presome=${prefix}
- if test "$prefix" = "NONE"; then
- presome=${ac_default_prefix}
- fi
- DIR_DATADIR=`echo ${DIR_DATADIR} | sed "s!\\\${prefix}!$presome!"`
-
-
- cat >> confdefs.h <<EOF
-#define DIR_DATADIR "${DIR_DATADIR}"
-EOF
-
-
-
-
-# For all packages except the StepMake package itself
-subdirs="stepmake"
-
-
-# Uncomment the configuration options your package needs.
-
- # -O is necessary to get inlining
- OPTIMIZE=""
- CXXFLAGS=${CXXFLAGS:-""}
- CFLAGS=${CFLAGS:-""}
- checking_b=yes
- optimise_b=no
- profile_b=no
- debug_b=yes
-
- # Check whether --enable-checking or --disable-checking was given.
-if test "${enable_checking+set}" = set; then
- enableval="$enable_checking"
- checking_b=$enableval
-fi
-
-
- # actually, the default is: tja='-O' to get inlining...
- # off='' --jcn
-
- #actually, that sucks.
- # tja looks like a typo. Default is optimisation off. --hwn
-
- # Check whether --enable-optimise or --disable-optimise was given.
-if test "${enable_optimise+set}" = set; then
- enableval="$enable_optimise"
- optimise_b=$enableval
-fi
-
-
- # Check whether --enable-profiling or --disable-profiling was given.
-if test "${enable_profiling+set}" = set; then
- enableval="$enable_profiling"
- profile_b=$enableval
-fi
-
-
- # Check whether --enable-debugging or --disable-debugging was given.
-if test "${enable_debugging+set}" = set; then
- enableval="$enable_debugging"
- debug_b=$enableval
-fi
-
-
- # Check whether --enable-mingw-prefix or --disable-mingw-prefix was given.
-if test "${enable_mingw_prefix+set}" = set; then
- enableval="$enable_mingw_prefix"
- MINGWPREFIX=$enableval
-else
- MINGWPREFIX=no
-fi
-
-
- if test "$printing_b" = no; then
- # ugh
- cat >> confdefs.h <<\EOF
-#define NPRINT 1
-EOF
-
- DEFINES="$DEFINES -DNPRINT"
- fi
-
- if test "$checking_b" = no; then
- # ugh
- cat >> confdefs.h <<\EOF
-#define NDEBUG 1
-EOF
-
- DEFINES="$DEFINES -DNDEBUG"
- fi
-
- if test "$optimise_b" = yes; then
- OPTIMIZE="-O2 -finline-functions"
- fi
-
- if test "$optimise_b" = no; then
- OPTIMIZE=""
- fi
-
- if test $profile_b = yes; then
- EXTRA_LIBES="-pg"
- OPTIMIZE="$OPTIMIZE -pg"
- fi
-
- if test $debug_b = yes; then
- OPTIMIZE="$OPTIMIZE -g"
- fi
-
- # however, C++ support in mingw32 v 0.1.4 is still flaky
- if test x$MINGWPREFIX != xno; then
- ICFLAGS="-I$MINGWPREFIX/include"
- ILDFLAGS="-$MINGWPREFIX/lib"
- fi
-
- # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1140: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_CC="gcc"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
- echo "$ac_t""$CC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1169: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- ac_prog_rejected=no
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
- fi
- ac_cv_prog_CC="cc"
- break
- fi
- done
- IFS="$ac_save_ifs"
-if test $ac_prog_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $ac_cv_prog_CC
- shift
- if test $# -gt 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same basename, so the bogon will be chosen
- # first if we set CC to just the basename; use the full file name.
- shift
- set dummy "$ac_dir/$ac_word" "$@"
- shift
- ac_cv_prog_CC="$@"
- fi
-fi
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
- echo "$ac_t""$CC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
- test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
-fi
-
-echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1217: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
-
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-cat > conftest.$ac_ext <<EOF
-#line 1227 "configure"
-#include "confdefs.h"
-main(){return(0);}
-EOF
-if { (eval echo configure:1231: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
- ac_cv_prog_cc_works=yes
- # If we can't run a trivial program, we are probably using a cross compiler.
- if (./conftest; exit) 2>/dev/null; then
- ac_cv_prog_cc_cross=no
- else
- ac_cv_prog_cc_cross=yes
- fi
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- ac_cv_prog_cc_works=no
-fi
-rm -fr conftest*
-
-echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
-if test $ac_cv_prog_cc_works = no; then
- { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
-fi
-echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:1251: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
-echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
-cross_compiling=$ac_cv_prog_cc_cross
-
-echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:1256: checking whether we are using GNU C" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.c <<EOF
-#ifdef __GNUC__
- yes;
-#endif
-EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1265: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
- ac_cv_prog_gcc=yes
-else
- ac_cv_prog_gcc=no
-fi
-fi
-
-echo "$ac_t""$ac_cv_prog_gcc" 1>&6
-
-if test $ac_cv_prog_gcc = yes; then
- GCC=yes
- ac_test_CFLAGS="${CFLAGS+set}"
- ac_save_CFLAGS="$CFLAGS"
- CFLAGS=
- echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1280: checking whether ${CC-cc} accepts -g" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- echo 'void f(){}' > conftest.c
-if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
- ac_cv_prog_cc_g=yes
-else
- ac_cv_prog_cc_g=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
- if test "$ac_test_CFLAGS" = set; then
- CFLAGS="$ac_save_CFLAGS"
- elif test $ac_cv_prog_cc_g = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-O2"
- fi
-else
- GCC=
- test "${CFLAGS+set}" = set || CFLAGS="-g"
-fi
-
- LD='$(CC)'
-
-
- CPPFLAGS=${CPPFLAGS:-""}
-
-
-
-
-
-
-
-# AC_HAVE_HEADERS(limits.h malloc.h string.h unistd.h values.h)
-
-printing_b=no
-# Check whether --enable-printing or --disable-printing was given.
-if test "${enable_printing+set}" = set; then
- enableval="$enable_printing"
- printing_b=$enableval
-fi
-
-
-if test "$optimise_b" = yes; then
- DEFINES="$DEFINES -DSTRING_UTILS_INLINED"
- cat >> confdefs.h <<\EOF
-#define STRINGS_UTILS_INLINED 1
-EOF
-
-fi
-
-echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6
-echo "configure:1337: checking how to run the C++ preprocessor" >&5
-if test -z "$CXXCPP"; then
-if eval "test \"`echo '$''{'ac_cv_prog_CXXCPP'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_ext=C
-# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CXX-g++} -o conftest $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cxx_cross
- CXXCPP="${CXX-g++} -E"
- cat > conftest.$ac_ext <<EOF
-#line 1350 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1355: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
-if test -z "$ac_err"; then
- :
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- CXXCPP=/lib/cpp
-fi
-rm -f conftest*
- ac_cv_prog_CXXCPP="$CXXCPP"
-fi
-fi
-CXXCPP="$ac_cv_prog_CXXCPP"
-echo "$ac_t""$CXXCPP" 1>&6
-
-
- ac_ext=C
-# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CXX-g++} -o conftest $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cxx_cross
-
- for ac_prog in $CCC c++ g++ gcc CC cxx cc++
-do
-# Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1386: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$CXX"; then
- ac_cv_prog_CXX="$CXX" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_CXX="$ac_prog"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-CXX="$ac_cv_prog_CXX"
-if test -n "$CXX"; then
- echo "$ac_t""$CXX" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-test -n "$CXX" && break
-done
-test -n "$CXX" || CXX="gcc"
-
-
-echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1417: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5
-
-ac_ext=C
-# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CXX-g++} -o conftest $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cxx_cross
-
-cat > conftest.$ac_ext <<EOF
-#line 1427 "configure"
-#include "confdefs.h"
-main(){return(0);}
-EOF
-if { (eval echo configure:1431: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
- ac_cv_prog_cxx_works=yes
- # If we can't run a trivial program, we are probably using a cross compiler.
- if (./conftest; exit) 2>/dev/null; then
- ac_cv_prog_cxx_cross=no
- else
- ac_cv_prog_cxx_cross=yes
- fi
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- ac_cv_prog_cxx_works=no
-fi
-rm -fr conftest*
-
-echo "$ac_t""$ac_cv_prog_cxx_works" 1>&6
-if test $ac_cv_prog_cxx_works = no; then
- { echo "configure: error: installation or configuration problem: C++ compiler cannot create executables." 1>&2; exit 1; }
-fi
-echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:1451: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5
-echo "$ac_t""$ac_cv_prog_cxx_cross" 1>&6
-cross_compiling=$ac_cv_prog_cxx_cross
-
-echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6
-echo "configure:1456: checking whether we are using GNU C++" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.C <<EOF
-#ifdef __GNUC__
- yes;
-#endif
-EOF
-if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1465: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
- ac_cv_prog_gxx=yes
-else
- ac_cv_prog_gxx=no
-fi
-fi
-
-echo "$ac_t""$ac_cv_prog_gxx" 1>&6
-
-if test $ac_cv_prog_gxx = yes; then
- GXX=yes
- ac_test_CXXFLAGS="${CXXFLAGS+set}"
- ac_save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS=
- echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6
-echo "configure:1480: checking whether ${CXX-g++} accepts -g" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- echo 'void f(){}' > conftest.cc
-if test -z "`${CXX-g++} -g -c conftest.cc 2>&1`"; then
- ac_cv_prog_cxx_g=yes
-else
- ac_cv_prog_cxx_g=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ac_cv_prog_cxx_g" 1>&6
- if test "$ac_test_CXXFLAGS" = set; then
- CXXFLAGS="$ac_save_CXXFLAGS"
- elif test $ac_cv_prog_cxx_g = yes; then
- CXXFLAGS="-g -O2"
- else
- CXXFLAGS="-O2"
- fi
-else
- GXX=
- test "${CXXFLAGS+set}" = set || CXXFLAGS="-g"
-fi
-
-
- ac_safe=`echo "FlexLexer.h" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for FlexLexer.h""... $ac_c" 1>&6
-echo "configure:1510: checking for FlexLexer.h" >&5
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1515 "configure"
-#include "confdefs.h"
-#include <FlexLexer.h>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1520: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
-if test -z "$ac_err"; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- true
-else
- echo "$ac_t""no" 1>&6
-
- echo "configure: warning: can"\'"t find flex header. Please install Flex headers correctly" 1>&2
- warn_b=yes
-
-fi
-
-
- CPPFLAGS="$CPPFLAGS $DEFINES"
- CXXFLAGS="$CXXFLAGS $OPTIMIZE"
- LDFLAGS=$EXTRA_LIBES
-
-
-
- LD='$(CXX)'
-
-
-
- # ugh autoconf
- if $CXX --version | grep '2\.[78]' > /dev/null ||
- $CXX --version | grep 'egcs' > /dev/null
- then
- true
- else
-
- echo "configure: warning: can\'t find g++ 2.7" 1>&2
- warn_b=yes
-
- fi
-
-
- echo $ac_n "checking whether explicit instantiation is needed""... $ac_c" 1>&6
-echo "configure:1570: checking whether explicit instantiation is needed" >&5
-if eval "test \"`echo '$''{'lily_cv_need_explicit_instantiation'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1575 "configure"
-#include "confdefs.h"
-
- template <class T> struct foo { static int baz; };
- template <class T> int foo<T>::baz = 1;
-
-int main() {
- return foo<int>::baz;
-; return 0; }
-EOF
-if { (eval echo configure:1585: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
- rm -rf conftest*
- lily_cv_need_explicit_instantiation=no
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- lily_cv_need_explicit_instantiation=yes
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$lily_cv_need_explicit_instantiation" 1>&6
- if test x"$lily_cv_need_explicit_instantiation"x = x"yes"x; then
- cat >> confdefs.h <<\EOF
-#define NEED_EXPLICIT_INSTANTIATION 1
-EOF
-
- fi
-
-
- # ugh, automake: we want (and check for) bison
- for ac_prog in 'bison -y' byacc
-do
-# Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1612: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$YACC"; then
- ac_cv_prog_YACC="$YACC" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_YACC="$ac_prog"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-YACC="$ac_cv_prog_YACC"
-if test -n "$YACC"; then
- echo "$ac_t""$YACC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-test -n "$YACC" && break
-done
-test -n "$YACC" || YACC="yacc"
-
- # ugh, automake: we want (and check for) flex
- # AC_PROG_LEX
- # urg: automake 1.3: hope this doesn't break 1.2 ac_cv_pro_lex_root hack...
-
- # AC_DECL_YYTEXT
- # ugh, ugh
- ac_cv_prog_lex_root=lex.yy
-
- for ac_prog in bison
-do
-# Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1654: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_BISON'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$BISON"; then
- ac_cv_prog_BISON="$BISON" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_BISON="$ac_prog"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-BISON="$ac_cv_prog_BISON"
-if test -n "$BISON"; then
- echo "$ac_t""$BISON" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-test -n "$BISON" && break
-done
-test -n "$BISON" || BISON="error"
-
- for ac_prog in flex
-do
-# Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1688: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_FLEX'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$FLEX"; then
- ac_cv_prog_FLEX="$FLEX" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_FLEX="$ac_prog"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-FLEX="$ac_cv_prog_FLEX"
-if test -n "$FLEX"; then
- echo "$ac_t""$FLEX" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-test -n "$FLEX" && break
-done
-test -n "$FLEX" || FLEX="error"
-
-
- result="`echo \"$BISON\" | grep echo`"
- if test "x$BISON" = "xerror" -o "x$result" != "x"; then
-
- echo "configure: warning: can\'t find bison. Please install Bison" 1>&2
- warn_b=yes
-
- fi
-
-
- result="`echo \"$FLEX\" | grep echo`"
- if test "x$FLEX" = "xerror" -o "x$result" != "x"; then
-
- echo "configure: warning: can\'t find flex. Please install Flex" 1>&2
- warn_b=yes
-
- fi
-
-
- if test $BISON != "error"; then
- bison_version=`$BISON --version| sed 's/^.*version 1.//g' `
- if test $bison_version -lt 25; then
-
- echo "configure: warning: Your bison is a bit old (1.$bison_version). You might have to install 1.25" 1>&2
- warn_b=yes
-
- fi
- fi
-
-
-
-
-
- for ac_prog in ar
-do
-# Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1755: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$AR"; then
- ac_cv_prog_AR="$AR" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_AR="$ac_prog"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-AR="$ac_cv_prog_AR"
-if test -n "$AR"; then
- echo "$ac_t""$AR" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-test -n "$AR" && break
-done
-test -n "$AR" || AR="error"
-
- # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1787: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$RANLIB"; then
- ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_RANLIB="ranlib"
- break
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":"
-fi
-fi
-RANLIB="$ac_cv_prog_RANLIB"
-if test -n "$RANLIB"; then
- echo "$ac_t""$RANLIB" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-
-
-
-# AC_STEPMAKE_LIBTOOL
-
- lang=English
- ALL_LINGUAS="en nl"
-
- # with/enable ??
- # Check whether --with-localedir or --without-localedir was given.
-if test "${with_localedir+set}" = set; then
- withval="$with_localedir"
- localedir=$with_localedir
-else
- localedir='${prefix}/share/locale'
-fi
-
-
- # Check whether --with-lang or --without-lang was given.
-if test "${with_lang+set}" = set; then
- withval="$with_lang"
- language=$with_lang
-else
- language=English
-fi
-
-
- echo $ac_n "checking language""... $ac_c" 1>&6
-echo "configure:1842: checking language" >&5
- case "$language" in
- En* | en* | Am* | am* | US* | us*)
- lang=English;;
- NL | nl | Du* | du* | Ned* | ned*)
- lang=Dutch;;
- "")
- lang=English;;
- *)
- lang=unknown;;
- esac
- echo "$ac_t""$lang" 1>&6
-
- if test "$lang" = "unknown" ; then
-
- echo "configure: warning: $language not supported; available are: $ALL_LINGUAS" 1>&2
- warn_b=yes
-
- fi
-
-
-
- DIR_LOCALEDIR=${localedir}
- presome=${prefix}
- if test "$prefix" = "NONE"; then
- presome=${ac_default_prefix}
- fi
- DIR_LOCALEDIR=`echo ${DIR_LOCALEDIR} | sed "s!\\\${prefix}!$presome!"`
-
-
- cat >> confdefs.h <<EOF
-#define DIR_LOCALEDIR "${DIR_LOCALEDIR}"
-EOF
-
-
- echo $ac_n "checking for gettext in -lintl""... $ac_c" 1>&6
-echo "configure:1878: checking for gettext in -lintl" >&5
-ac_lib_var=`echo intl'_'gettext | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lintl $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 1886 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char gettext();
-
-int main() {
-gettext()
-; return 0; }
-EOF
-if { (eval echo configure:1900: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_lib=HAVE_LIB`echo intl | sed -e 's/[^a-zA-Z0-9_]/_/g' \
- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- LIBS="-lintl $LIBS"
-
-else
- echo "$ac_t""no" 1>&6
-fi
-
- for ac_func in gettext
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:1930: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1935 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:1961: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-
-
- # AC_CHECK_PROGS(MSGFMT, msgfmt, -echo no msgfmt)
- for ac_prog in msgfmt
-do
-# Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1993: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_MSGFMT'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$MSGFMT"; then
- ac_cv_prog_MSGFMT="$MSGFMT" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_MSGFMT="$ac_prog"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-MSGFMT="$ac_cv_prog_MSGFMT"
-if test -n "$MSGFMT"; then
- echo "$ac_t""$MSGFMT" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-test -n "$MSGFMT" && break
-done
-test -n "$MSGFMT" || MSGFMT="\$(SHELL) \$(step-bindir)/fake-msgfmt.sh "
-
- echo $ac_n "checking whether msgfmt accepts -o""... $ac_c" 1>&6
-echo "configure:2023: checking whether msgfmt accepts -o" >&5
- msgfmt_output="`msgfmt -o bla 2>&1 | grep usage`"
- if test "$msgfmt_output" = ""; then
- echo "$ac_t""yes" 1>&6
- else
- # urg
- MSGFMT="\$(SHELL) \$(step-bindir)/fake-msgfmt.sh"
- echo "$ac_t""no" 1>&6
-
- echo "configure: warning: please install msgfmt from GNU gettext" 1>&2
- warn_b=yes
-
- fi
- if test ! -n "$MSGFMT"; then
-
- echo "configure: warning: please install msgfmt from GNU gettext" 1>&2
- warn_b=yes
-
- fi
-
-
- # urg, never know what names these teTeX guys will think up
- for ac_prog in mf
-do
-# Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2050: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_METAFONT'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$METAFONT"; then
- ac_cv_prog_METAFONT="$METAFONT" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_METAFONT="$ac_prog"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-METAFONT="$ac_cv_prog_METAFONT"
-if test -n "$METAFONT"; then
- echo "$ac_t""$METAFONT" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-test -n "$METAFONT" && break
-done
-test -n "$METAFONT" || METAFONT="no"
-
- if test "x$METAFONT" = "xno"; then
- for ac_prog in mfont
-do
-# Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2085: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_MFONT'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$MFONT"; then
- ac_cv_prog_MFONT="$MFONT" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_MFONT="$ac_prog"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-MFONT="$ac_cv_prog_MFONT"
-if test -n "$MFONT"; then
- echo "$ac_t""$MFONT" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-test -n "$MFONT" && break
-done
-test -n "$MFONT" || MFONT="-echo no mf or mfont"
-
- METAFONT=$MFONT
- fi
-
- for ac_prog in mp
-do
-# Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2122: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_METAPOST'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$METAPOST"; then
- ac_cv_prog_METAPOST="$METAPOST" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_METAPOST="$ac_prog"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-METAPOST="$ac_cv_prog_METAPOST"
-if test -n "$METAPOST"; then
- echo "$ac_t""$METAPOST" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-test -n "$METAPOST" && break
-done
-test -n "$METAPOST" || METAPOST="no"
-
- if test "x$METAPOST" = "xno"; then
- for ac_prog in mpost
-do
-# Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2157: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_MPOST'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$MPOST"; then
- ac_cv_prog_MPOST="$MPOST" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_MPOST="$ac_prog"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-MPOST="$ac_cv_prog_MPOST"
-if test -n "$MPOST"; then
- echo "$ac_t""$MPOST" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-test -n "$MPOST" && break
-done
-test -n "$MPOST" || MPOST="-echo no mp or mpost"
-
- METAPOST=$MPOST
- fi
-
-
-
-
-# AC_STEPMAKE_TEXMF_DIRS
-
- if test "x$YODL" = "x"; then
- for ac_prog in striproff
-do
-# Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2200: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_STRIPROFF'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$STRIPROFF"; then
- ac_cv_prog_STRIPROFF="$STRIPROFF" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_STRIPROFF="$ac_prog"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-STRIPROFF="$ac_cv_prog_STRIPROFF"
-if test -n "$STRIPROFF"; then
- echo "$ac_t""$STRIPROFF" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-test -n "$STRIPROFF" && break
-done
-test -n "$STRIPROFF" || STRIPROFF="-echo no striproff"
-
- for ac_prog in yodl
-do
-# Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2234: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_YODL'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$YODL"; then
- ac_cv_prog_YODL="$YODL" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_YODL="$ac_prog"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-YODL="$ac_cv_prog_YODL"
-if test -n "$YODL"; then
- echo "$ac_t""$YODL" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-test -n "$YODL" && break
-done
-test -n "$YODL" || YODL="-echo no yodl"
-
- for ac_prog in yodl2html
-do
-# Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2268: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_YODL2HTML'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$YODL2HTML"; then
- ac_cv_prog_YODL2HTML="$YODL2HTML" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_YODL2HTML="$ac_prog"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-YODL2HTML="$ac_cv_prog_YODL2HTML"
-if test -n "$YODL2HTML"; then
- echo "$ac_t""$YODL2HTML" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-test -n "$YODL2HTML" && break
-done
-test -n "$YODL2HTML" || YODL2HTML="-echo no yodl"
-
- for ac_prog in yodl2latex
-do
-# Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2302: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_YODL2LATEX'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$YODL2LATEX"; then
- ac_cv_prog_YODL2LATEX="$YODL2LATEX" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_YODL2LATEX="$ac_prog"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-YODL2LATEX="$ac_cv_prog_YODL2LATEX"
-if test -n "$YODL2LATEX"; then
- echo "$ac_t""$YODL2LATEX" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-test -n "$YODL2LATEX" && break
-done
-
- for ac_prog in yodl2man
-do
-# Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2335: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_YODL2MAN'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$YODL2MAN"; then
- ac_cv_prog_YODL2MAN="$YODL2MAN" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_YODL2MAN="$ac_prog"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-YODL2MAN="$ac_cv_prog_YODL2MAN"
-if test -n "$YODL2MAN"; then
- echo "$ac_t""$YODL2MAN" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-test -n "$YODL2MAN" && break
-done
-test -n "$YODL2MAN" || YODL2MAN="-echo no yodl"
-
- for ac_prog in yodl2msless
-do
-# Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2369: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_YODL2MSLESS'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$YODL2MSLESS"; then
- ac_cv_prog_YODL2MSLESS="$YODL2MSLESS" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_YODL2MSLESS="$ac_prog"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-YODL2MSLESS="$ac_cv_prog_YODL2MSLESS"
-if test -n "$YODL2MSLESS"; then
- echo "$ac_t""$YODL2MSLESS" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-test -n "$YODL2MSLESS" && break
-done
-test -n "$YODL2MSLESS" || YODL2MSLESS="-echo no yodl"
-
- for ac_prog in yodl2texinfo
-do
-# Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2403: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_YODL2TEXINFO'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$YODL2TEXINFO"; then
- ac_cv_prog_YODL2TEXINFO="$YODL2TEXINFO" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_YODL2TEXINFO="$ac_prog"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-YODL2TEXINFO="$ac_cv_prog_YODL2TEXINFO"
-if test -n "$YODL2TEXINFO"; then
- echo "$ac_t""$YODL2TEXINFO" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-test -n "$YODL2TEXINFO" && break
-done
-test -n "$YODL2TEXINFO" || YODL2TEXINFO="-echo no yodl"
-
- for ac_prog in yodl2txt
-do
-# Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2437: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_YODL2TXT'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$YODL2TXT"; then
- ac_cv_prog_YODL2TXT="$YODL2TXT" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_YODL2TXT="$ac_prog"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-YODL2TXT="$ac_cv_prog_YODL2TXT"
-if test -n "$YODL2TXT"; then
- echo "$ac_t""$YODL2TXT" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-test -n "$YODL2TXT" && break
-done
-test -n "$YODL2TXT" || YODL2TXT="-echo no yodl"
-
- YODL2LESS_DIR='$(bindir)/'
- else
-
-
-
-
-
-
-
-
-
- export STRIPROFF YODL YODL2HTML YODL2LATEX YODL2MAN YODL2MSLESS YODL2TEXINFO YODL2TXT
- fi
- if test "x$YODL" = "-echo no yodl"; then
-
- echo "configure: warning: Did not find YODL (Yodl is Yet Oneother Document Language, see http://www.cs.uu.nl/~hanwen/yodl)" 1>&2
- warn_b=yes
-
- fi
-
-
- # urg, must check for different functions in libguile
- # to force new check iso reading from cache
- echo $ac_n "checking for scm_shell in -lguile""... $ac_c" 1>&6
-echo "configure:2490: checking for scm_shell in -lguile" >&5
-ac_lib_var=`echo guile'_'scm_shell | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lguile $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 2498 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char scm_shell();
-
-int main() {
-scm_shell()
-; return 0; }
-EOF
-if { (eval echo configure:2512: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- \
- LIBS="-lguile $LIBS" cat >> confdefs.h <<\EOF
-#define HAVE_LIBGUILE 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-\
- echo $ac_n "checking for readline in -lreadline""... $ac_c" 1>&6
-echo "configure:2536: checking for readline in -lreadline" >&5
-ac_lib_var=`echo readline'_'readline | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lreadline $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 2544 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char readline();
-
-int main() {
-readline()
-; return 0; }
-EOF
-if { (eval echo configure:2558: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_lib=HAVE_LIB`echo readline | sed -e 's/^a-zA-Z0-9_/_/g' \
- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- LIBS="-lreadline $LIBS"
-
-else
- echo "$ac_t""no" 1>&6
-fi
- \
- echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
-echo "configure:2586: checking for dlopen in -ldl" >&5
-ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-ldl $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 2594 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char dlopen();
-
-int main() {
-dlopen()
-; return 0; }
-EOF
-if { (eval echo configure:2608: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_lib=HAVE_LIB`echo dl | sed -e 's/^a-zA-Z0-9_/_/g' \
- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- LIBS="-ldl $LIBS"
-
-else
- echo "$ac_t""no" 1>&6
-fi
- \
- echo $ac_n "checking for socket in -lsocket""... $ac_c" 1>&6
-echo "configure:2636: checking for socket in -lsocket" >&5
-ac_lib_var=`echo socket'_'socket | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lsocket $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 2644 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char socket();
-
-int main() {
-socket()
-; return 0; }
-EOF
-if { (eval echo configure:2658: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_lib=HAVE_LIB`echo socket | sed -e 's/^a-zA-Z0-9_/_/g' \
- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- LIBS="-lsocket $LIBS"
-
-else
- echo "$ac_t""no" 1>&6
-fi
-\
- echo $ac_n "checking for tgetent in -ltermcap""... $ac_c" 1>&6
-echo "configure:2686: checking for tgetent in -ltermcap" >&5
-ac_lib_var=`echo termcap'_'tgetent | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-ltermcap $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 2694 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char tgetent();
-
-int main() {
-tgetent()
-; return 0; }
-EOF
-if { (eval echo configure:2708: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_lib=HAVE_LIB`echo termcap | sed -e 's/^a-zA-Z0-9_/_/g' \
- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- LIBS="-ltermcap $LIBS"
-
-else
- echo "$ac_t""no" 1>&6
-fi
-\
- echo $ac_n "checking for fabs in -lm""... $ac_c" 1>&6
-echo "configure:2736: checking for fabs in -lm" >&5
-ac_lib_var=`echo m'_'fabs | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lm $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 2744 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char fabs();
-
-int main() {
-fabs()
-; return 0; }
-EOF
-if { (eval echo configure:2758: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_lib=HAVE_LIB`echo m | sed -e 's/^a-zA-Z0-9_/_/g' \
- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- LIBS="-lm $LIBS"
-
-else
- echo "$ac_t""no" 1>&6
-fi
-\
- echo $ac_n "checking for scm_boot_guile in -lguile""... $ac_c" 1>&6
-echo "configure:2786: checking for scm_boot_guile in -lguile" >&5
-ac_lib_var=`echo guile'_'scm_boot_guile | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lguile $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 2794 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char scm_boot_guile();
-
-int main() {
-scm_boot_guile()
-; return 0; }
-EOF
-if { (eval echo configure:2808: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_lib=HAVE_LIB`echo guile | sed -e 's/^a-zA-Z0-9_/_/g' \
- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- LIBS="-lguile $LIBS"
-
-else
- echo "$ac_t""no" 1>&6
-fi
-\
-
-fi
-
-
-
-
-echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6
-echo "configure:2842: checking for 8-bit clean memcmp" >&5
-if eval "test \"`echo '$''{'ac_cv_func_memcmp_clean'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$cross_compiling" = yes; then
- ac_cv_func_memcmp_clean=no
-else
- cat > conftest.$ac_ext <<EOF
-#line 2850 "configure"
-#include "confdefs.h"
-#ifdef __cplusplus
-extern "C" void exit(int);
-#endif
-
-main()
-{
- char c0 = 0x40, c1 = 0x80, c2 = 0x81;
- exit(memcmp(&c0, &c2, 1) < 0 && memcmp(&c1, &c2, 1) < 0 ? 0 : 1);
-}
-
-EOF
-if { (eval echo configure:2863: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
-then
- ac_cv_func_memcmp_clean=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- ac_cv_func_memcmp_clean=no
-fi
-rm -fr conftest*
-fi
-
-fi
-
-echo "$ac_t""$ac_cv_func_memcmp_clean" 1>&6
-test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.o"
-
-echo $ac_n "checking for vprintf""... $ac_c" 1>&6
-echo "configure:2881: checking for vprintf" >&5
-if eval "test \"`echo '$''{'ac_cv_func_vprintf'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 2886 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char vprintf(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char vprintf();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_vprintf) || defined (__stub___vprintf)
-choke me
-#else
-vprintf();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:2912: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
- rm -rf conftest*
- eval "ac_cv_func_vprintf=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_vprintf=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'vprintf`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- cat >> confdefs.h <<\EOF
-#define HAVE_VPRINTF 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-
-if test "$ac_cv_func_vprintf" != yes; then
-echo $ac_n "checking for _doprnt""... $ac_c" 1>&6
-echo "configure:2936: checking for _doprnt" >&5
-if eval "test \"`echo '$''{'ac_cv_func__doprnt'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 2941 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char _doprnt(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char _doprnt();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub__doprnt) || defined (__stub____doprnt)
-choke me
-#else
-_doprnt();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:2967: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
- rm -rf conftest*
- eval "ac_cv_func__doprnt=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func__doprnt=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'_doprnt`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- cat >> confdefs.h <<\EOF
-#define HAVE_DOPRNT 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-
-fi
-
-for ac_func in memmem snprintf vsnprintf gettext
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2994: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 2999 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:3025: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-
-cat >> confdefs.h <<EOF
-#define TOPLEVEL_VERSION "${FULL_VERSION}"
-EOF
-
-cat >> confdefs.h <<EOF
-#define FLOWER_VERSION "${FULL_FLOWER_VERSION}"
-EOF
-
-
-for ac_prog in makeinfo
-do
-# Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3064: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_MAKEINFO'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$MAKEINFO"; then
- ac_cv_prog_MAKEINFO="$MAKEINFO" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_MAKEINFO="$ac_prog"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-MAKEINFO="$ac_cv_prog_MAKEINFO"
-if test -n "$MAKEINFO"; then
- echo "$ac_t""$MAKEINFO" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-test -n "$MAKEINFO" && break
-done
-test -n "$MAKEINFO" || MAKEINFO="error"
-
-
- result="`echo \"$YODL2TEXINFO\" | grep echo`"
- if test "x$YODL2TEXINFO" = "xerror" -o "x$result" != "x"; then
-
- echo "configure: warning: can\'t find yodl. You should install Yodl 1.30.2 or better" 1>&2
- warn_b=yes
-
- fi
-
-
-
- trap '' 1 2 15
-cat > confcache <<\EOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs. It is not useful on other systems.
-# If it contains results you don't want to keep, you may remove or edit it.
-#
-# By default, configure uses ./config.cache as the cache file,
-# creating it if it does not exist already. You can give configure
-# the --cache-file=FILE option to use a different cache file; that is
-# what configure does when it calls configure scripts in
-# subdirectories, so they share the cache.
-# Giving --cache-file=/dev/null disables caching, for debugging configure.
-# config.status only pays attention to the cache file if you give it the
-# --recheck option to rerun configure.
-#
-EOF
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, don't put newlines in cache variables' values.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(set) 2>&1 |
- case `(ac_space=' '; set) 2>&1` in
- *ac_space=\ *)
- # `set' does not quote correctly, so add quotes (double-quote substitution
- # turns \\\\ into \\, and sed turns \\ into \).
- sed -n \
- -e "s/'/'\\\\''/g" \
- -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
- ;;
- *)
- # `set' quotes correctly as required by POSIX, so do not add quotes.
- sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
- ;;
- esac >> confcache
-if cmp -s $cache_file confcache; then
- :
-else
- if test -w $cache_file; then
- echo "updating cache $cache_file"
- cat confcache > $cache_file
- else
- echo "not updating unwritable cache $cache_file"
- fi
-fi
-rm -f confcache
-
-trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-# Any assignment to VPATH causes Sun make to only execute
-# the first set of double-colon rules, so remove it if not needed.
-# If there is a colon in the path, we need to keep it.
-if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d'
-fi
-
-trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
-
-DEFS=-DHAVE_CONFIG_H
-
-# Without the "./", some shells look in PATH for config.status.
-: ${CONFIG_STATUS=./config.status}
-
-echo creating $CONFIG_STATUS
-rm -f $CONFIG_STATUS
-cat > $CONFIG_STATUS <<EOF
-#! /bin/sh
-# Generated automatically by configure.
-# Run this file to recreate the current configuration.
-# This directory was configured as follows,
-# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-#
-# $0 $ac_configure_args
-#
-# Compiler output produced by configure, useful for debugging
-# configure, is in ./config.log if it exists.
-
-ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
-for ac_option
-do
- case "\$ac_option" in
- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
- echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
- exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
- -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
- echo "$CONFIG_STATUS generated by autoconf version 2.12"
- exit 0 ;;
- -help | --help | --hel | --he | --h)
- echo "\$ac_cs_usage"; exit 0 ;;
- *) echo "\$ac_cs_usage"; exit 1 ;;
- esac
-done
-
-ac_given_srcdir=$srcdir
-
-trap 'rm -fr `echo "$CONFIGFILE.make:config.make.in $CONFIGFILE.h:config.hh.in" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
-EOF
-cat >> $CONFIG_STATUS <<EOF
-
-# Protect against being on the right side of a sed subst in config.status.
-sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
- s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
-$ac_vpsub
-$extrasub
-s%@CFLAGS@%$CFLAGS%g
-s%@CPPFLAGS@%$CPPFLAGS%g
-s%@CXXFLAGS@%$CXXFLAGS%g
-s%@DEFS@%$DEFS%g
-s%@LDFLAGS@%$LDFLAGS%g
-s%@LIBS@%$LIBS%g
-s%@exec_prefix@%$exec_prefix%g
-s%@prefix@%$prefix%g
-s%@program_transform_name@%$program_transform_name%g
-s%@bindir@%$bindir%g
-s%@sbindir@%$sbindir%g
-s%@libexecdir@%$libexecdir%g
-s%@datadir@%$datadir%g
-s%@sysconfdir@%$sysconfdir%g
-s%@sharedstatedir@%$sharedstatedir%g
-s%@localstatedir@%$localstatedir%g
-s%@libdir@%$libdir%g
-s%@includedir@%$includedir%g
-s%@oldincludedir@%$oldincludedir%g
-s%@infodir@%$infodir%g
-s%@mandir@%$mandir%g
-s%@stepmake@%$stepmake%g
-s%@package@%$package%g
-s%@PACKAGE@%$PACKAGE%g
-s%@PACKAGE_NAME@%$PACKAGE_NAME%g
-s%@package_depth@%$package_depth%g
-s%@AUTOGENERATE@%$AUTOGENERATE%g
-s%@absolute_builddir@%$absolute_builddir%g
-s%@STATE_VECTOR@%$STATE_VECTOR%g
-s%@CONFIGSUFFIX@%$CONFIGSUFFIX%g
-s%@host@%$host%g
-s%@host_alias@%$host_alias%g
-s%@host_cpu@%$host_cpu%g
-s%@host_vendor@%$host_vendor%g
-s%@host_os@%$host_os%g
-s%@MAKE@%$MAKE%g
-s%@FIND@%$FIND%g
-s%@TAR@%$TAR%g
-s%@BASH@%$BASH%g
-s%@PYTHON@%$PYTHON%g
-s%@DOTEXE@%$DOTEXE%g
-s%@ZIP@%$ZIP%g
-s%@LN@%$LN%g
-s%@LN_S@%$LN_S%g
-s%@INSTALL@%$INSTALL%g
-s%@PATHSEP@%$PATHSEP%g
-s%@DIRSEP@%$DIRSEP%g
-s%@DIR_DATADIR@%$DIR_DATADIR%g
-s%@subdirs@%$subdirs%g
-s%@CC@%$CC%g
-s%@LD@%$LD%g
-s%@ICFLAGS@%$ICFLAGS%g
-s%@ILDFLAGS@%$ILDFLAGS%g
-s%@DEFINES@%$DEFINES%g
-s%@EXTRA_LIBES@%$EXTRA_LIBES%g
-s%@CXX@%$CXX%g
-s%@CXXCPP@%$CXXCPP%g
-s%@YACC@%$YACC%g
-s%@BISON@%$BISON%g
-s%@FLEX@%$FLEX%g
-s%@AR@%$AR%g
-s%@RANLIB@%$RANLIB%g
-s%@localedir@%$localedir%g
-s%@DIR_LOCALEDIR@%$DIR_LOCALEDIR%g
-s%@MSGFMT@%$MSGFMT%g
-s%@METAFONT@%$METAFONT%g
-s%@MFONT@%$MFONT%g
-s%@METAPOST@%$METAPOST%g
-s%@MPOST@%$MPOST%g
-s%@STRIPROFF@%$STRIPROFF%g
-s%@YODL@%$YODL%g
-s%@YODL2HTML@%$YODL2HTML%g
-s%@YODL2LATEX@%$YODL2LATEX%g
-s%@YODL2MAN@%$YODL2MAN%g
-s%@YODL2MSLESS@%$YODL2MSLESS%g
-s%@YODL2TEXINFO@%$YODL2TEXINFO%g
-s%@YODL2TXT@%$YODL2TXT%g
-s%@YODL2LESS_DIR@%$YODL2LESS_DIR%g
-s%@LIBOBJS@%$LIBOBJS%g
-s%@MAKEINFO@%$MAKEINFO%g
-
-CEOF
-EOF
-
-cat >> $CONFIG_STATUS <<\EOF
-
-# Split the substitutions into bite-sized pieces for seds with
-# small command number limits, like on Digital OSF/1 and HP-UX.
-ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
-ac_file=1 # Number of current file.
-ac_beg=1 # First line for current file.
-ac_end=$ac_max_sed_cmds # Line after last line for current file.
-ac_more_lines=:
-ac_sed_cmds=""
-while $ac_more_lines; do
- if test $ac_beg -gt 1; then
- sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
- else
- sed "${ac_end}q" conftest.subs > conftest.s$ac_file
- fi
- if test ! -s conftest.s$ac_file; then
- ac_more_lines=false
- rm -f conftest.s$ac_file
- else
- if test -z "$ac_sed_cmds"; then
- ac_sed_cmds="sed -f conftest.s$ac_file"
- else
- ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
- fi
- ac_file=`expr $ac_file + 1`
- ac_beg=$ac_end
- ac_end=`expr $ac_end + $ac_max_sed_cmds`
- fi
-done
-if test -z "$ac_sed_cmds"; then
- ac_sed_cmds=cat
-fi
-EOF
-
-cat >> $CONFIG_STATUS <<EOF
-
-CONFIG_FILES=\${CONFIG_FILES-"$CONFIGFILE.make:config.make.in"}
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
- case "$ac_file" in
- *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
- ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
- *) ac_file_in="${ac_file}.in" ;;
- esac
-
- # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
-
- # Remove last slash and all that follows it. Not all systems have dirname.
- ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
- if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
- # The file is in a subdirectory.
- test ! -d "$ac_dir" && mkdir "$ac_dir"
- ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
- # A "../" for each directory in $ac_dir_suffix.
- ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
- else
- ac_dir_suffix= ac_dots=
- fi
-
- case "$ac_given_srcdir" in
- .) srcdir=.
- if test -z "$ac_dots"; then top_srcdir=.
- else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
- /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
- *) # Relative path.
- srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
- top_srcdir="$ac_dots$ac_given_srcdir" ;;
- esac
-
-
- echo creating "$ac_file"
- rm -f "$ac_file"
- configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
- case "$ac_file" in
- *Makefile*) ac_comsub="1i\\
-# $configure_input" ;;
- *) ac_comsub= ;;
- esac
-
- ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
- sed -e "$ac_comsub
-s%@configure_input@%$configure_input%g
-s%@srcdir@%$srcdir%g
-s%@top_srcdir@%$top_srcdir%g
-" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
-fi; done
-rm -f conftest.s*
-
-# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
-# NAME is the cpp macro being defined and VALUE is the value it is being given.
-#
-# ac_d sets the value in "#define NAME VALUE" lines.
-ac_dA='s%^\([ ]*\)#\([ ]*define[ ][ ]*\)'
-ac_dB='\([ ][ ]*\)[^ ]*%\1#\2'
-ac_dC='\3'
-ac_dD='%g'
-# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
-ac_uA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
-ac_uB='\([ ]\)%\1#\2define\3'
-ac_uC=' '
-ac_uD='\4%g'
-# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
-ac_eA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
-ac_eB='$%\1#\2define\3'
-ac_eC=' '
-ac_eD='%g'
-
-if test "${CONFIG_HEADERS+set}" != set; then
-EOF
-cat >> $CONFIG_STATUS <<EOF
- CONFIG_HEADERS="$CONFIGFILE.h:config.hh.in"
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-fi
-for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then
- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
- case "$ac_file" in
- *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
- ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
- *) ac_file_in="${ac_file}.in" ;;
- esac
-
- echo creating $ac_file
-
- rm -f conftest.frag conftest.in conftest.out
- ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
- cat $ac_file_inputs > conftest.in
-
-EOF
-
-# Transform confdefs.h into a sed script conftest.vals that substitutes
-# the proper values into config.h.in to produce config.h. And first:
-# Protect against being on the right side of a sed subst in config.status.
-# Protect against being in an unquoted here document in config.status.
-rm -f conftest.vals
-cat > conftest.hdr <<\EOF
-s/[\\&%]/\\&/g
-s%[\\$`]%\\&%g
-s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp
-s%ac_d%ac_u%gp
-s%ac_u%ac_e%gp
-EOF
-sed -n -f conftest.hdr confdefs.h > conftest.vals
-rm -f conftest.hdr
-
-# This sed command replaces #undef with comments. This is necessary, for
-# example, in the case of _POSIX_SOURCE, which is predefined and required
-# on some systems where configure will not decide to define it.
-cat >> conftest.vals <<\EOF
-s%^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */%
-EOF
-
-# Break up conftest.vals because some shells have a limit on
-# the size of here documents, and old seds have small limits too.
-
-rm -f conftest.tail
-while :
-do
- ac_lines=`grep -c . conftest.vals`
- # grep -c gives empty output for an empty file on some AIX systems.
- if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi
- # Write a limited-size here document to conftest.frag.
- echo ' cat > conftest.frag <<CEOF' >> $CONFIG_STATUS
- sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS
- echo 'CEOF
- sed -f conftest.frag conftest.in > conftest.out
- rm -f conftest.in
- mv conftest.out conftest.in
-' >> $CONFIG_STATUS
- sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail
- rm -f conftest.vals
- mv conftest.tail conftest.vals
-done
-rm -f conftest.vals
-
-cat >> $CONFIG_STATUS <<\EOF
- rm -f conftest.frag conftest.h
- echo "/* $ac_file. Generated automatically by configure. */" > conftest.h
- cat conftest.in >> conftest.h
- rm -f conftest.in
- if cmp -s $ac_file conftest.h 2>/dev/null; then
- echo "$ac_file is unchanged"
- rm -f conftest.h
- else
- # Remove last slash and all that follows it. Not all systems have dirname.
- ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
- if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
- # The file is in a subdirectory.
- test ! -d "$ac_dir" && mkdir "$ac_dir"
- fi
- rm -f $ac_file
- mv conftest.h $ac_file
- fi
-fi; done
-
-EOF
-cat >> $CONFIG_STATUS <<EOF
-
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-
-exit 0
-EOF
-chmod +x $CONFIG_STATUS
-rm -fr confdefs* $ac_clean_files
-test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
-
-if test "$no_recursion" != yes; then
-
- # Remove --cache-file and --srcdir arguments so they do not pile up.
- ac_sub_configure_args=
- ac_prev=
- for ac_arg in $ac_configure_args; do
- if test -n "$ac_prev"; then
- ac_prev=
- continue
- fi
- case "$ac_arg" in
- -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=*)
- ;;
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- ;;
- *) ac_sub_configure_args="$ac_sub_configure_args $ac_arg" ;;
- esac
- done
-
- for ac_config_dir in stepmake; do
-
- # Do not complain, so a configure script can configure whichever
- # parts of a large source tree are present.
- if test ! -d $srcdir/$ac_config_dir; then
- continue
- fi
-
- echo configuring in $ac_config_dir
-
- case "$srcdir" in
- .) ;;
- *)
- if test -d ./$ac_config_dir || mkdir ./$ac_config_dir; then :;
- else
- { echo "configure: error: can not create `pwd`/$ac_config_dir" 1>&2; exit 1; }
- fi
- ;;
- esac
-
- ac_popdir=`pwd`
- cd $ac_config_dir
-
- # A "../" for each directory in /$ac_config_dir.
- ac_dots=`echo $ac_config_dir|sed -e 's%^\./%%' -e 's%[^/]$%&/%' -e 's%[^/]*/%../%g'`
-
- case "$srcdir" in
- .) # No --srcdir option. We are building in place.
- ac_sub_srcdir=$srcdir ;;
- /*) # Absolute path.
- ac_sub_srcdir=$srcdir/$ac_config_dir ;;
- *) # Relative path.
- ac_sub_srcdir=$ac_dots$srcdir/$ac_config_dir ;;
- esac
-
- # Check for guested configure; otherwise get Cygnus style configure.
- if test -f $ac_sub_srcdir/configure; then
- ac_sub_configure=$ac_sub_srcdir/configure
- elif test -f $ac_sub_srcdir/configure.in; then
- ac_sub_configure=$ac_configure
- else
- echo "configure: warning: no configuration information is in $ac_config_dir" 1>&2
- ac_sub_configure=
- fi
-
- # The recursion is here.
- if test -n "$ac_sub_configure"; then
-
- # Make the cache file name correct relative to the subdirectory.
- case "$cache_file" in
- /*) ac_sub_cache_file=$cache_file ;;
- *) # Relative path.
- ac_sub_cache_file="$ac_dots$cache_file" ;;
- esac
-
- echo "running ${CONFIG_SHELL-/bin/sh} $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_sub_srcdir"
- # The eval makes quoting arguments work.
- if eval ${CONFIG_SHELL-/bin/sh} $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_sub_srcdir
- then :
- else
- { echo "configure: error: $ac_sub_configure failed for $ac_config_dir" 1>&2; exit 1; }
- fi
- fi
-
- cd $ac_popdir
- done
-fi
-
-
- rm -f GNUmakefile
- cp make/toplevel.make.in ./GNUmakefile
- chmod 444 GNUmakefile
-
-
AC_STEPMAKE_YODL
AC_STEPMAKE_GUILE
+CXXFLAGS="$CXXFLAGS -fhandle-signatures"
+
dnl should check out -print
dnl huh?
dnl AC_CHECK_SEARCH_RESULT($FIND, find, Please use --enable-tex-dir)
Warning: contents are unspecified */
void set_size (int s)
{
- if (s >= max_) remax (s);
+ if (s > max_) remax (s);
size_ = s;
}
Sorry for the silly naming */
template <class T>
class P {
- /**
- Set contents to a copy of #t_l#
- */
- void copy (T const*t_l);
- T* t_p;
+ /**
+ Set contents to a copy of #t_l#
+ */
+ void copy (T const*t_l);
+ T* t_p;
/**
junk contents and set to 0
*/
- void junk();
+ void junk();
public:
- P(P const &src);
- /**
+ P(P const &src);
+ /**
Remove the pointer, and return it.
*/
- T *get_p() { T*p = t_p; t_p=0; return p; }
- /**
+ T *get_p() { T*p = t_p; t_p=0; return p; }
+ /**
return the pointer
*/
- T *get_l() { return t_p; }
+ T *get_l() { return t_p; }
- T const *get_C() const { return t_p; }
- /**
+ T const *get_C() const { return t_p; }
+ /**
copy the contents of pointer, and return it
*/
- T *copy_p() const;
- /**
+ T *copy_p() const;
+ /**
swallow new_p, and set contents t new_p
*/
- void set_p (T *new_p);
- /**
+ void set_p (T *new_p);
+ /**
junk contents, and copy contents of t_l
*/
- void set_l (T const *t_C);
+ void set_l (T const *t_C);
- P &operator =(P const &);
- ~P();
- P() { t_p = 0; }
- //P(T *p) { t_p = p; }
+ P &operator =(P const &);
+ ~P();
+ P() { t_p = 0; }
+ //P(T *p) { t_p = p; }
- T *operator ->() { return t_p; }
- operator T *() { return t_p; }
- const T *operator ->() const { return t_p ; }
- T &operator *() { return *t_p; }
- T const &operator *() const { return *t_p; }
- operator const T *() const { return t_p; }
+ T *operator ->() { return t_p; }
+ operator T *() { return t_p; }
+ const T *operator ->() const { return t_p ; }
+ T &operator *() { return *t_p; }
+ T const &operator *() const { return *t_p; }
+ operator const T *() const { return t_p; }
};
#endif // POINTER_HH
P<T>::set_p (T * np)
{
if (np == t_p)
- return;
+ return;
delete t_p;
t_p = np;
P<T>::set_l (T const * l_C)
{
if (t_p == l_C)
- return;
+ return;
junk();
copy (l_C);
#include <typeinfo>
#include "stdlib.h" // size_t
-/** Declare the classes name as a static and virtual function.
- The static_name() can *not* be inlined (this might have the effect that
- s->name() != S::static_name (). Overlapping strings need not be merged in C++
- */
-#define DECLARE_MY_RUNTIME_TYPEINFO \
-virtual char const *name() const{ return static_name (); }\
-static char const *static_name()
-
-
-#if 0
- /*
- oops. before() has nothing to do with inheritance
- */
-inline bool operator > (type_info const &a1, type_info const &a2)
-{
- return a2.before (a1);
-}
-
-inline bool operator < (type_info const &a1, type_info const &a2)
-{
- return a1.before (a2);
-}
-
-inline bool operator <= (type_info const &a1, type_info const &a2)
-{
- return a1 == a2 || a1 < a2;
-}
-
-inline bool operator >= (type_info const &a1, type_info const &a2)
-{
- return a1 == a2 || a1 > a2;
-}
-#endif
-
-#define IMPLEMENT_STATIC_NAME(c)\
- char const *c::static_name() { return #c; }
-
- /*
- size_t c::static_class_size () { return sizeof (c); }
- */
-
-#define VIRTUAL_COPY_CONS(T, R)\
- virtual R *clone() const { return new T(*this); }
+#define classname(class_ptr) demangle_classname(typeid(*(class_ptr)).name())
-#define DECLARE_VIRTUAL_COPY_CONS(T, R)\
- virtual R *clone() const
+const char *
+demangle_classname (const char*);
-#define IMPLEMENT_VIRTUAL_COPY_CONS(T, R)\
- R *T::clone() const { return new T(*this); }\
+/**
-
-#define IMPLEMENT_IS_TYPE_B(D)\
- IMPLEMENT_STATIC_NAME(D)
+ Virtual copy constructor. Make up for C++'s lack of a standard
+ clone() function. Uses a typeof hack. Usage:
-/*
- bool D::static_is_type_b (const char *s)\
-{\
- return s == static_name();\
-}*/
-
-#define IMPLEMENT_IS_TYPE_B1(D, B)\
- IMPLEMENT_STATIC_NAME(D)
-/*
- bool D::static_is_type_b (const char *s)\
-{\
- return s == static_name() || B::static_is_type_b (s);\
-}
-*/
-
-#define IMPLEMENT_IS_TYPE_B2(D, BA, BB)\
- IMPLEMENT_STATIC_NAME(D)
-
-/*
-
- bool D::static_is_type_b (const char *s)\
-{\
- return s == static_name() || BA::static_is_type_b (s) || BB::static_is_type_b (s);\
-}
-*/
+ class Foo : Baseclass {
+ VIRTUAL_COPY_CONS(Baseclass);
+ };
+
+ */
+#define VIRTUAL_COPY_CONS(base) virtual base *clone () const { return new typeof(*this) (*this); }
#endif
--- /dev/null
+
+
+
+/*#include <typeinfo>
+
+signature S
+{
+ int foo ();
+ int bar (int);
+};
+*/
+
+#include <ctype.h>
+#include "virtual-methods.hh"
+
+
+const char *
+demangle_classname (char const *s)
+{
+ while (isdigit (*s))
+ s++;
+ return s;
+}
\consists "Rest_engraver";
\consists "Dot_column_engraver";
\consists "Stem_engraver";
- \consists "Plet_engraver";
+% \consists "Plet_engraver";
\consists "Beam_engraver";
\consists "Abbreviation_beam_engraver";
\consists "Multi_measure_rest_engraver";
\name LyricVoice ;
\consists "Separating_line_group_engraver";
\consists "Lyric_engraver";
+ \consists "Extender_engraver";
\consists "Beam_req_swallow_translator";
\consists "Plet_swallow_engraver";
}
\accepts "Voice";
};
+% huh, Score should do HaraKiri, not Part yes?
OrchestralPartStaffContext = \translator {
- \HaraKiriStaffContext
+% \HaraKiriStaffContext
+ \StaffContext
barColumnPriority = "0";
marginBreakPriority = "-4";
\consists "Mark_engraver";
\consists "Bar_number_engraver";
};
+% where to put HaraKiri here?
OrchestralScoreContext= \translator {
\type Score_engraver;
\name Score;
; all preparations from ps,tex to scm
;;; library funtions
+(define
+ (xnumbers->string l)
+ (string-append
+ (map (lambda (n) (string-append (number->string n ) " ")) l)))
+
(define
(numbers->string l)
(apply string-append
(let ((n (inexact->exact x)))
(number->string n radix)))
-(define
- (number->dim-tex x)
- (string-append
- (number->string (chop-decimal x)) "pt "))
(define
(control->string c)
(string-append (number->string (car c)) " ")
(string-append (number->string (cadr c)) " ")))
+;;;;;;;; TeX
+; (define (tex action)
+
+(define
+ (beam-tex width slope thick)
+ (embedded-ps-tex (beam-ps width slope thick)))
+
+(define
+ (bracket-tex h)
+ (embedded-ps-tex (bracket-ps h)))
+
+(define
+ (dashed-slur-tex thick dash l)
+ (embedded-ps-tex (dashed-slur-ps thick dash l)))
+
+(define
+ (crescendo-tex w h cont)
+ (embedded-ps-tex (crescendo-ps w h cont)))
+
+(define
+ (decrescendo-tex w h cont)
+ (embedded-ps-tex (decrescendo-ps w h cont)))
+
(define
(embedded-ps-tex s)
(string-append "\\embeddedps{" s "}"))
+
(define
- (invoke-char-ps s i)
- (string-append
- "(\\" (inexact->string i 8) ") " s " " ))
+ (end-output-tex)
+ "\n\\EndLilyPondOutput")
(define
- (invoke-char-tex s i)
+ (empty-tex)
+ "%\n\\empty%\n")
+
+(define
+ (experimental-on-tex) "\\turnOnExperimentalFeatures")
+
+(define
+ (extender o h)
+ ((invoke-output o "invoke-dim1") "extender" h))
+
+(define
+ (font-switch-tex i)
+ (string-append
+ "\\" (font i) "\n"))
+
+(define
+ (font-def-tex i s)
+ (string-append
+ "\\font" (font-switch-tex i) "=" s "\n"))
+
+(define
+ (generalmeter-tex num den)
(string-append
- "\n\\" s "{" (inexact->string i 10) "}" ))
+ "\\generalmeter{" (number->string (inexact->exact num)) "}{" (number->string (inexact->exact den)) "}"))
+
+(define
+ (header-end-tex) "\\turnOnPostScript")
(define
- (invoke-dim1-ps s d)
+ (header-tex creator generate)
(string-append
- (number->string d) " " s ))
+ "%created by: " creator generate "\n"))
+
+(define
+ (invoke-char-tex s i)
+ (string-append
+ "\n\\" s "{" (inexact->string i 10) "}" ))
(define
(invoke-dim1-tex s d)
"\n\\" s "{" (number->dim-tex d) "}"))
(define
- (invoke-output o s)
- (eval-string (string-append s "-" o)))
+ (lily-def-tex key val)
+ (string-append
+ "\\def\\" key "{" val "}\n"))
-;;; output definitions
+(define
+ (number->dim-tex x)
+ (string-append
+ (number->string (chop-decimal x)) "pt "))
(define
- (beam o width slope thick)
- ((invoke-output o "beam") width slope thick))
+ (placebox-tex x y s)
+ (string-append
+ "\\placebox{"
+ (number->dim-tex y) "}{" (number->dim-tex x) "}{" s "}"))
(define
- (beam-ps width slope thick)
- (string-append
- (numbers->string (list width slope thick)) " draw_beam " ))
+ (rulesym-tex h w)
+ (string-append
+ "\\vrule height " (number->dim-tex (/ h 2))
+ " depth " (number->dim-tex (/ h 2))
+ " width " (number->dim-tex w)
+ )
+ )
(define
- (beam-tex width slope thick)
- (embedded-ps-tex (beam-ps width slope thick)))
+ (slur-tex l)
+ (embedded-ps-tex (slur-ps l)))
(define
- (bracket o h)
- ((invoke-output o "bracket") h))
+ (start-line-tex)
+ (string-append
+ "\\hbox{%\n")
+ )
(define
- (bracket-ps h)
- (invoke-dim1-ps "draw_bracket" h))
+ (stem-tex kern width height depth)
+ (string-append
+ "\\kern" (number->dim-tex kern)
+ "\\vrule width " (number->dim-tex width)
+ "depth " (number->dim-tex depth)
+ "height " (number->dim-tex height) " "))
(define
- (bracket-tex h)
- (embedded-ps-tex (bracket-ps h)))
+ (stop-line-tex)
+ "}\\interscoreline")
+
+(define
+ (text-tex f s)
+ (string-append "\\set" f "{" s "}"))
+
+
+
+;;;;;;;;;;;; PS
(define
- (char o n)
- ((invoke-output o "invoke-char") "show" n))
+ (beam-ps width slope thick)
+ (string-append
+ (numbers->string (list width slope thick)) " draw_beam " ))
(define
- (dashed-slur o thick dash l)
- ((invoke-output o "dashed-slur") thick dash l))
+ (bracket-ps h)
+ (invoke-dim1-ps "draw_bracket" h))
+
+(define
+ (crescendo-ps w h cont)
+ (string-append
+ (numbers->string (list w h (inexact->exact cont)))
+ "draw_crescendo"))
(define
(dashed-slur-ps thick dash l)
" ] 0 draw_dashed_slur"))
(define
- (dashed-slur-tex thick dash l)
- (embedded-ps-tex (dashed-slur-ps thick dash l)))
+ (decrescendo-ps w h cont)
+ (string-append
+ (numbers->string (list w h (inexact->exact cont)))
+ "draw_decrescendo"))
(define
- (doublebar o h)
- ((invoke-output o "invoke-dim1") "doublebar" h))
+ (empty-ps)
+ "\n empty\n")
(define
- (empty o)
- ((invoke-output o "empty")))
+ (end-output-ps)
+ "\nshowpage\n")
+
+(define
+ (experimental-on-ps) "")
(define
- (empty-ps)
- "\n empty\n")
+ (font-def-ps i s)
+ (string-append
+ "\n/" (font i) " {/"
+ (substring s 0 (- (string-length s) 4))
+ " findfont 12 scalefont setfont} bind def\n"))
(define
- (empty-tex)
- "%\n\\empty%\n")
+ (font-switch-ps i)
+ (string-append (font i) " "))
(define
- (emptybar o h) (empty o))
+ (generalmeter-ps num den)
+ (string-append (number->string (inexact->exact num)) " " (number->string (inexact->exact den)) " generalmeter "))
+
+(define
+ (header-end-ps) "")
+(define
+ (lily-def-ps key val)
+ (string-append
+ "/" key " {" val "} bind def\n"))
(define
- (end-output o)
- ((invoke-output o "end-output")))
+ (header-ps creator generate)
+ (string-append
+ "%!PS-Adobe-3.0\n"
+ "%%Creator: " creator generate "\n"))
(define
- (end-output-ps)
- "\nshowpage\n")
+ (invoke-char-ps s i)
+ (string-append
+ "(\\" (inexact->string i 8) ") " s " " ))
(define
- (end-output-tex)
- "\n\\EndLilyPondOutput")
+ (invoke-dim1-ps s d)
+ (string-append
+ (number->string d) " " s ))
(define
- (experimental-on o)
- ((invoke-output o "experimental-on")))
+ (placebox-ps x y s)
+ (string-append
+ (number->string x) " " (number->string y) " {" s "} placebox "))
-(define
- (experimental-on-ps) "")
+(define
+ (rulesym-ps x y)
+ (string-append
+ (number->string x) " "
+ (number->string y) " "
+ "rulesym"))
+
+(define
+ (slur-ps l)
+ (string-append
+ (apply string-append (map control->string l))
+ " draw_slur"))
+
+(define
+ (start-line-ps)
+ "\nstart_line {\n")
+
+(define
+ (stem-ps kern width height depth)
+ (string-append (numbers->string (list kern width height depth))
+ "draw_stem" ))
+
+(define
+ (stop-line-ps)
+ "}\nstop_line\n")
(define
- (experimental-on-tex) "\\turnOnExperimentalFeatures")
+ (text-ps f s)
+ (string-append "(" s ") set" f " "))
+
+
+;;; output definitions
+
+(define
+ (beam o width slope thick)
+ ((invoke-output o "beam") width slope thick))
+
+(define
+ (bracket o h)
+ ((invoke-output o "bracket") h))
+
+(define
+ (char o n)
+ ((invoke-output o "invoke-char") "show" n))
+
+(define
+ (crescendo o w h cont)
+ ((invoke-output o "crescendo") w h cont))
+
+(define
+ (dashed-slur o thick dash l)
+ ((invoke-output o "dashed-slur") thick dash l))
+
+(define
+ (decrescendo o w h cont)
+ ((invoke-output o "decrescendo") w h cont))
+
+(define
+ (doublebar o h)
+ ((invoke-output o "invoke-dim1") "doublebar" h))
+
+(define
+ (empty o)
+ ((invoke-output o "empty")))
+
+(define
+ (emptybar o h) (empty o))
+
+(define
+ (end-output o)
+ ((invoke-output o "end-output")))
+
+(define
+ (experimental-on o)
+ ((invoke-output o "experimental-on")))
(define
(fatdoublebar o h)
(font-def o i s)
((invoke-output o "font-def") i s))
-(define
- (font-def-ps i s)
- (string-append
- "\n/" (font i) " {/"
- (substring s 0 (- (string-length s) 4))
- " findfont 12 scalefont setfont} bind def\n"))
-
-(define
- (font-def-tex i s)
- (string-append
- "\\font" (font-switch-tex i) "=" s "\n"))
-
(define
(font-switch o i)
((invoke-output o "font-switch") i))
-(define
- (font-switch-ps i)
- (string-append (font i) " "))
-
-(define
- (font-switch-tex i)
- (string-append
- "\\" (font i) "\n"))
-
(define
(generalmeter o num den)
((invoke-output o "generalmeter") num den))
-(define
- (generalmeter-ps num den)
- (string-append (number->string (inexact->exact num)) " " (number->string (inexact->exact den)) " generalmeter "))
-
-(define
- (generalmeter-tex num den)
- (string-append
- "\\generalmeter{" (number->string (inexact->exact num)) "}{" (number->string (inexact->exact den)) "}"))
-
(define
(header o creator generate)
((invoke-output o "header") creator generate))
-(define
- (header-ps creator generate)
- (string-append
- "%!PS-Adobe-3.0\n"
- "%%Creator: " creator generate "\n"))
-
-(define
- (header-tex creator generate)
- (string-append
- "%created by: " creator generate "\n"))
-
(define
(header-end o)
((invoke-output o "header-end")))
(define
- (header-end-ps) "")
-
-(define
- (header-end-tex) "\\turnOnPostScript")
+ (invoke-output o s)
+ (eval-string (string-append s "-" o)))
(define
(lily-def o key val)
((invoke-output o "lily-def") key val))
-(define
- (lily-def-ps key val)
- (string-append
- "/" key " {" val "} bind def\n"))
-
-(define
- (lily-def-tex key val)
- (string-append
- "\\def\\" key "{" val "}\n"))
-
(define
(maatstreep o h)
((invoke-output o "invoke-dim1") "maatstreep" h))
(placebox o x y b)
((invoke-output o "placebox") x y (b o)))
-(define
- (placebox-ps x y s)
- (string-append
- (number->string x) " " (number->string y) " {" s "} placebox "))
-
-(define
- (placebox-tex x y s)
- (string-append
- "\\placebox{"
- (number->dim-tex y) "}{" (number->dim-tex x) "}{" s "}"))
-
(define
(repeatbar o h)
((invoke-output o "invoke-dim1") "repeatbar" h))
(rulesym o x y)
((invoke-output o "rulesym") x y))
-(define
- (rulesym-ps x y)
- (string-append
- (number->string x) " "
- (number->string y) " "
- "rulesym"))
-
-(define
- (rulesym-tex x y)
- (string-append
- "\\rulesym{" (number->dim-tex x) "}{" (number->dim-tex y) "}"))
-
(define
(setbold o s)
((invoke-output o "text") "bold" s))
((invoke-output o "slur") l))
(define
- (slur-ps l)
+ (tuplet o dx dy dir)
+ ((invoke-output o "tuplet") dx dy dir))
+
+(define
+ (tuplet-ps dx dy dir)
(string-append
- (apply string-append (map control->string l))
- " draw_slur"))
+ (numbers->string (list dx dy (inexact->exact dir)))
+ "draw_tuplet"))
(define
- (slur-tex l)
- (embedded-ps-tex (slur-ps l)))
+ (tuplet-tex dx dy dir)
+ (embedded-ps-tex (tuplet-ps dx dy dir)))
(define
(stem o kern width height depth)
((invoke-output o "stem") kern width height depth))
-(define
- (stem-ps kern width height depth)
- (string-append (numbers->string (list kern width height depth))
- "draw_stem" ))
-(define
- (stem-tex kern width height depth)
- (string-append
- "\\kern" (number->dim-tex kern)
- "\\vrule width " (number->dim-tex width)
- "depth " (number->dim-tex depth)
- "height " (number->dim-tex height) " "))
(define
(start-line o)
((invoke-output o "start-line")))
-(define
- (start-line-ps)
- "\nstart_line {\n")
-
-(define
- (start-line-tex)
- (string-append
- "\\hbox{%\n")
- )
-
-
(define
(startbar o h)
((invoke-output o "invoke-dim1") "startbar" h))
(startrepeat o h)
((invoke-output o "invoke-dim1") "startrepeat" h))
+
(define
(stop-line o)
((invoke-output o "stop-line")))
-(define
- (stop-line-ps)
- "}\nstop_line\n")
-
-(define
- (stop-line-tex)
- "}\\interscoreline")
(define
(stoprepeat o h)
((invoke-output o "invoke-dim1") "stoprepeat" h))
-(define
- (text-ps f s)
- (string-append "(" s ") set" f " "))
-
-(define
- (text-tex f s)
- (string-append "\\set" f "{" s "}"))
-
-
%part-paper.ly
\paper {
+ \translator { \OrchestralPartStaffContext }
+ \translator { \ScoreContext skipBars = 1; }
% for simple testing only!
% castingalgorithm = \Wordwrap; % lots faster on my 486 -- jcn
-Score = \translator {
- \type Score_engraver;
-
- \consists "Timing_engraver";
- \consists "Bar_column_engraver";
- \consists "Bar_number_engraver";
- \consists "Mark_engraver";
- \consists "Span_score_bar_engraver";
- \consists "Score_priority_engraver";
- \consists "Priority_horizontal_align_engraver";
- \consists "Vertical_align_engraver";
-
- \accepts "StaffGroup";
- \accepts "Staff";
- \accepts "RhythmicStaff";
- \accepts "Lyrics";
- \accepts "GrandStaff";
- SkipBars = "1";
-}
- \include "bar-numbering.ly";
}
"param" = \table {
"brace" "pianobrace" 1 0.0\pt 0.0\pt 32.0\pt 80.0\pt
"bracket" "staffbracket" 1 0.0\pt 4.0\pt 16.0\pt 128.0\pt
+ "extender" "extender" 1 0.0\pt 0.0\pt 1.0\pt 160.0\pt
"time_signature" "generalmeter" 2 0.0\pt 10.0\pt -8.0\pt 8.0\pt
"rule" "rulesym" 2
"stem" "stem" 2
% dims ignored for this table
"param" = \table {
"bracket" "staffbracket" 1 0.0\pt 0.0\pt 20.0\pt 160.0\pt
+ "extender" "extender" 1 0.0\pt 0.0\pt 1.0\pt 160.0\pt
"rule" "rulesym" 2
"brace" "pianobrace" 1 0.0\pt 0.0\pt 40.0\pt 100.0\pt
"time_signature" "generalmeter" 2 0.0\pt 10.0\pt -5.0\pt 5.0\pt
SUBDIRS=test bugs
-examples=example-3 twinkle-pop praeludium-fuga-E twinkle
+examples=example-3 twinkle-pop praeludium-fuga-E twinkle star-spangled-banner
flexamples=example-1 example-2
LOCALSTEPMAKE_TEMPLATES=mutopia
--- /dev/null
+%{
+Converted from star.mup with the aid of mup-to-ly.py
+http://www.Arkkra.com/doc/star.html
+http://www.Arkkra.com/doc/star.ps
+%}
+\header{
+title="The Star Spangled Banner";
+subtitle="(United States of America's National Anthem)";
+poet="Text by Francis Scott Key";
+composer="J. S. Smith";
+arranger="Arranged by William J. Krauss";
+enteredby="jcn";
+copyright="public domain";
+}
+
+$staff1_voice_1 = \notes {
+ [a8.()fis16] d4 fis4 a4 d'2 [fis'8. e'16] d'4 fis4 gis4 a2 [a8 a8]
+ fis'4. e'8 d'4 cis'2 [b8. cis'16] d'4 d'4 a4 fis4 d4 [a8. fis16]
+ fis4 d4 [fis'8. fis'16] fis'4 g'4 a'4 a'2 [g'8 fis'8] e'4 fis'4
+ g'4 g'2 g'4 fis'4. e'8 d'4 cis'2 [b8. cis'16] d'4 fis4 gis4 a2 a4
+ d'4 d'4 [d'8()cis'8] b4 b4 b4 e'4 [g'8 ()fis'8] [e'8()d'8]
+ d'4~cis'4 [a8. a16] d'4.~e'8 [fis'8 g'8] a'2 [d'8 e'8] fis'4. g'8
+ e'4 d'2 s4
+}
+
+$staff1_voice_2 = \notes {
+ [a8.()fis16] a,4 d4 e4 d4~fis4 [fis8. fis16] fis4 d4 d4 cis2 [e8
+ e8] a4. a8 a4 a2 [a8. a16] a4 a4 a4 fis4 d4 [a8. fis16] fis4 d4 r4
+ a4 a4 d'4 d'2 [a8 a8] cis'4 cis'4 cis'4 cis'2 a4 a4. a8 a4 a2 [a8.
+ a16] d4 d4 d4 cis2 e4 fis4 e4 d4 d4 d4 dis4 g4 [g8()dis8] e4 e2
+ [e8. e16] d4.~a8 [a8 a8] a2 [g8 g8] a4. a8 g4 fis2 s4
+}
+
+$staff2_voice_1 = \notes {
+ r4 fis4 a4 a4 b2 [cis'8. cis'16] b4 b4 b4 a2 [cis'8 cis'8] d'4.
+ cis'8 d'4 e'2 [e'8. e'16] d'4 d'4 a4 fis4 d4 r4 fis4 d4 r4 d4 e4
+ fis4 fis'2 [e'8 d'8] e'4 e'4 e'4 e'2 cis'4 d'4. cis'8 d'4 e'2
+ [e'8. e'16] a4 a4 e4 e2 cis'4 a4 a4 a4 g4 g4 b4 b4 b4 b4 a2
+ [cis'8. cis'16] a4.~cis'8 [d'8 d'8] d'2 [d'8 d'8] d'4. d'8 cis'4
+ a2 s4
+}
+
+$staff2_voice_2 = \notes {
+ r4 d4 d4 cis4 b,2 [ais,8. ais,16] b,4 b,4 e4 a,2 [a8 a8] d4. e8
+ [fis8 g8] a2 [g8. g16] fis4 fis4 a4 fis4 d4 r4 fis4 d4 r4 d4 d4 d4
+ d2 [d8 d8] a4 a4 a4 a2 a,4 d4. e8 [fis8 g8] a2 [g8. g16] fis4 d4
+ e4 a,2 a4 d4 e4 fis4 g4 g4 fis4 e4 [e8()fis8] [g8()gis8] a2 [g8.
+ g16] fis4.~a,8 [d8 e8] fis2 [b8 b8] a4. a8 a,4 d2 s4
+}
+
+$text1 = \lyrics{
+ Oh4 __ say. can you see,2 by8. the16 dawn's4 ear- ly light2 What8
+ so8 proud-4. ly8 we4 hailed,2 At8. the16 twi-4 light's last gleam-
+ ing. Whose8. broad16
+}
+
+$text2 = \lyrics{
+ _4 stripes and bright stars,2 through8 the8 per-4 il- ous fight,2
+ O'er8 the8 ram-4. parts8 we4 watched,2 were8. so16 gal-4 lant- ly
+ _ _ _
+}
+
+$text3 = \lyrics{
+ stream-4 ing. And8. the16 rock-4 ets' red glare,2 the8 bombs8
+ burst-4 ing in air,2 gave4 proof4. through8 the4 night2 that8.
+ our16 flag4 was still there,2 Oh4 say, does that star- span-
+ gled ban- ner yet wave,2 __ O'er8. the16 land2 __ of8 the8 free2
+ and8 the8 home4. of8 the4 brave.2
+}
+
+global = \notes {
+ \time 3/4;
+ \key D;
+ \partial 4;
+ \skip 4;
+ \bar "|:";
+ \skip 2.*8;
+ \bar ":|";
+ \skip 2.*16;
+ \skip 2.;
+ \bar "|.";
+ }
+
+\include "paper16.ly";
+
+\score{
+ \type GrandStaff <
+ \type Staff=staffA <
+ \global
+ \notes \transpose c'' {\voiceone \$staff1_voice_1 }
+ \notes \transpose c'' {\voicetwo \$staff1_voice_2 }
+ >
+ \type Lyrics = one \lyrics <
+% urg, too much distance between two texts; fixme first
+% \$text1
+% { \$text2 \$text3 }
+ { \$text1 \$text3 }
+ >
+ \type Staff=staffB <
+ \global
+ \clef bass;
+ {\voiceone \$staff2_voice_1 }
+ {\voicetwo \$staff2_voice_2 }
+ >
+ >
+ \paper{
+ \paper_sixteen;
+ textheight = 230.\mm;
+ linewidth= 180.\mm;
+ \translator {
+ \GrandStaffContext
+ \accepts "Lyrics";
+ }
+ \translator {
+ \BarNumberingStaffContext
+ }
+ }
+}
# input/test/Makefile
depth = ../..
-examples=font20 hara-kiri grace mark denneboom stars-and-stripes
+examples=font20 hara-kiri grace mark denneboom sleur
LOCALSTEPMAKE_TEMPLATES=mutopia
include $(depth)/make/stepmake.make
--- /dev/null
+\score{
+ <
+ \type Staff \notes { c () c () c c }
+ \type Lyrics \lyrics { bla __ alb xxx __ yyy }
+ >
+}
\skip 1*1;
}
- \include "score-paper.ly";
-
zagers = \type GrandStaff <
\zager
\zoger
>
>
\paper{
+ \translator { \HaraKiriStaffContext }
+%uh?
+% \translator { \OrchestralScoreContext }
+% \translator { \OrchestralPartStaffContext }
linewidth = 40.0\mm;
}
}
\score{
< \global \one \two >
\paper {
- \include "score-bar-numbering.ly";
+ \translator { \OrchestralPartStaffContext }
}
}
\score{
- \notes \type Staff \times 2/3 { a b c }
+ \notes \type Staff \times 2/3 { \times 2/3 { a8 b c} c }
}
#include "musical-request.hh"
#include "misc.hh"
-IMPLEMENT_IS_TYPE_B1(Abbreviation_beam_engraver, Engraver);
+
ADD_THIS_TRANSLATOR(Abbreviation_beam_engraver);
Abbreviation_beam_engraver::Abbreviation_beam_engraver ()
}
bool
-Abbreviation_beam_engraver::do_try_request (Request*r)
+Abbreviation_beam_engraver::do_try_music (Music*r)
{
Abbreviation_beam_req * b = dynamic_cast <Abbreviation_beam_req *> (r);
#include "stem-info.hh"
-IMPLEMENT_IS_TYPE_B1 (Abbreviation_beam, Spanner);
+
Abbreviation_beam::Abbreviation_beam ()
: Beam ()
}
-IMPLEMENT_IS_TYPE_B1(Align_element, Score_element);
+
void
Align_element::sort_elements ()
#if 0
DOUT << "contains: ";
for (int i=0 ; i < item_l_arr_.size(); i++)
- DOUT << item_l_arr_[i]->name () << ", ";
+ DOUT << classname (item_l_arr_[i]) << ", ";
#endif
}
DOUT << "Audio_column {";
DOUT << "at: " << at_mom_ << ". Contains:";
for (PCursor<Audio_item*> i (audio_item_l_list_.top ()); i.ok (); i++)
- DOUT << i->name () << ", ";
+ DOUT << classname (i.ptr ()) << ", ";
DOUT << "\n}\n";
#endif
}
#include "audio-element.hh"
#include "debug.hh"
-IMPLEMENT_IS_TYPE_B(Audio_element);
+
Audio_element::~Audio_element()
{
Audio_element::print () const
{
#ifndef NPRINT
- DOUT << name () << "{ ";
+ DOUT << classname (this) << "{ ";
do_print ();
DOUT << "}";
#endif
{
return str_.length_i() ? new Midi_instrument(0, str_) : 0;
}
-IMPLEMENT_IS_TYPE_B1(Audio_instrument, Audio_item);
+
Audio_item::Audio_item (Request* req_l)
{
{
return new Midi_key (this);
}
-IMPLEMENT_IS_TYPE_B1 (Audio_key, Audio_item);
+
Audio_note::Audio_note (Request* req_l, int transposing_i)
: Audio_item (req_l)
return new Midi_note (this);
}
-IMPLEMENT_IS_TYPE_B1(Audio_note, Audio_item);
+
Audio_tempo::Audio_tempo (int per_minute_4_i)
: Audio_item (0)
return new Midi_tempo (this);
}
-IMPLEMENT_IS_TYPE_B1(Audio_tempo, Audio_item);
+
Audio_time_signature::Audio_time_signature (Request* req_l)
: Audio_item (req_l)
return new Midi_time_signature (this);
}
-IMPLEMENT_IS_TYPE_B1(Audio_time_signature, Audio_item);
+
Audio_text::Audio_text (Audio_text::Type type, String text_str)
: Audio_item (0)
return text_str_.length_i() ? new Midi_text(this) : 0;
}
-IMPLEMENT_IS_TYPE_B1(Audio_text, Audio_item);
-IMPLEMENT_IS_TYPE_B1(Audio_item, Audio_element);
+
+
void
Audio_item::do_print () const
midi_stream_r << midi_track;
}
-IMPLEMENT_IS_TYPE_B1(Audio_staff, Audio_element);
+
}
-IMPLEMENT_IS_TYPE_B2(Axis_group_element, Score_element, Graphical_axis_group);
+
#include "axis-group-item.hh"
#include "p-col.hh"
-IMPLEMENT_IS_TYPE_B2(Axis_group_item, Axis_group_element, Item);
+
void
Axis_group_item::OK() const
-IMPLEMENT_IS_TYPE_B2(Axis_group_spanner, Spanner, Axis_group_element);
+
bar_l_ =0;
}
-IMPLEMENT_IS_TYPE_B1(Bar_column_engraver, Engraver);
+
ADD_THIS_TRANSLATOR(Bar_column_engraver);
}
}
-IMPLEMENT_IS_TYPE_B1(Bar_column, Script_column);
+
}
bool
-Bar_engraver::do_try_request (Request*r_l)
+Bar_engraver::do_try_music (Music*r_l)
{
if (Bar_req * b= dynamic_cast <Bar_req *> (r_l))
{
{
Break_req r;
r.penalty_i_ = Break_req::DISALLOW;
- daddy_grav_l ()->try_request (&r);
+ daddy_grav_l ()->try_music (&r);
}
}
}
-IMPLEMENT_IS_TYPE_B1(Bar_engraver,Engraver);
+
ADD_THIS_TRANSLATOR(Bar_engraver);
}
}
-IMPLEMENT_IS_TYPE_B1(Bar_number_engraver,Engraver);
+
ADD_THIS_TRANSLATOR(Bar_number_engraver);
#include "lookup.hh"
#include "debug.hh"
-IMPLEMENT_IS_TYPE_B1 (Bar,Item);
+
Bar::Bar ()
{
}
bool
-Beam_engraver::do_try_request(Request*r)
+Beam_engraver::do_try_music (Music*r)
{
Beam_req* b = dynamic_cast <Beam_req *> (r);
if (!b)
beam_p_->add_stem (s);
}
}
-IMPLEMENT_IS_TYPE_B1(Beam_engraver, Engraver);
+
ADD_THIS_TRANSLATOR(Beam_engraver);
#include "type-swallow-trans.hh"
#include "musical-request.hh"
-
-
DECLARE_REQUEST_SWALLOWER(Beam_req);
+
#include "stem-info.hh"
-IMPLEMENT_IS_TYPE_B1 (Beam, Spanner);
+
Beam::Beam ()
{
Molecule leftbeams;
Molecule rightbeams;
+ // UGH
+ Real nw_f = paper ()->note_width () * 0.8;
+
/* half beams extending to the left. */
if (prev)
{
but let's make sure two half-beams never touch
*/
Real w = here->hpos_f () - prev->hpos_f ();
- w = w/2 <? paper ()->note_width ();
+ w = w/2 <? nw_f;
Atom a;
if (lhalfs) // generates warnings if not
a = lookup_l ()->beam (sl, w, beam_f);
rightbeams.add_atom (b);
}
// TODO: notehead widths differ for different types
- gap_f = paper ()->note_width () / 2;
+ gap_f = nw_f / 2;
w -= 2 * gap_f;
a = lookup_l ()->beam (sl, w + stemdx, beam_f);
}
rightbeams.add_atom (b);
}
- w = w/2 <? paper ()->note_width ();
+ w = w/2 <? nw_f;
if (rhalfs)
a = lookup_l ()->beam (sl, w, beam_f);
#include "bezier.hh"
#include "main.hh"
-IMPLEMENT_IS_TYPE_B1(Bow,Directional_spanner);
+
Bow::Bow ()
{
Horizontal_align_item::do_pre_processing();
}
-IMPLEMENT_IS_TYPE_B1(Break_align_item, Horizontal_align_item);
+
Music_iterator::do_process_and_next (m);
}
-IMPLEMENT_IS_TYPE_B1 (Change_iterator, Music_iterator);
+
#include "change-translator.hh"
#include "debug.hh"
-IMPLEMENT_IS_TYPE_B1(Change_translator,Music);
+
void
Change_translator::do_print () const
}
-IMPLEMENT_IS_TYPE_B1(Simultaneous_music_iterator,Music_iterator);
+
Moment
Simultaneous_music_iterator::next_moment() const
}
bool
-Clef_engraver::do_try_request (Request * r_l)
+Clef_engraver::do_try_music (Music * r_l)
{
if (Clef_change_req *cl = dynamic_cast <Clef_change_req *> (r_l))
{
}
-IMPLEMENT_IS_TYPE_B1(Clef_engraver,Engraver);
+
ADD_THIS_TRANSLATOR(Clef_engraver);
}
-IMPLEMENT_IS_TYPE_B1(Clef_item,Item);
+
#include "pointer.tcc"
template class P<Text_def>; // ugh
}
-IMPLEMENT_IS_TYPE_B1(Collision_engraver,Engraver);
+
ADD_THIS_TRANSLATOR(Collision_engraver);
}
-IMPLEMENT_IS_TYPE_B1(Collision, Item);
+
void
Collision::do_substitute_dependency (Score_element*o_l,Score_element*n_l)
Command_script_req::Command_script_req(){}
Command_script_req::~Command_script_req(){}
-IMPLEMENT_IS_TYPE_B1(Command_script_req,Command_req);
-IMPLEMENT_IS_TYPE_B1(Cadenza_req, Timing_req);
+
+
void
Cadenza_req::do_print() const
}
-IMPLEMENT_IS_TYPE_B1(Bar_req,Command_req);
-IMPLEMENT_IS_TYPE_B2(Bracket_req, Command_req, Span_req);
+
+
void
Bar_req::do_print() const
}
-IMPLEMENT_IS_TYPE_B1(Timing_req,Command_req);
+
void
Timing_req::do_print() const{}
-IMPLEMENT_IS_TYPE_B1(Command_req,Request);
+
void
Command_req::do_print() const{}
-IMPLEMENT_IS_TYPE_B1(Barcheck_req,Timing_req);
+
void
Barcheck_req::do_print() const{}
}
-IMPLEMENT_IS_TYPE_B1(Clef_change_req,Command_req);
+
void
Clef_change_req::do_print() const
-IMPLEMENT_IS_TYPE_B1(Partial_measure_req,Timing_req);
+
void
Partial_measure_req::do_print() const
}
-IMPLEMENT_IS_TYPE_B1(Time_signature_change_req,Timing_req);
+
void
Time_signature_change_req::do_print() const
{
DOUT << dur_.str() << " = " << metronome_i_;
}
-IMPLEMENT_IS_TYPE_B1(Tempo_req, Timing_req);
+
bool
Tempo_req::do_equal_b (Request *r) const
-IMPLEMENT_IS_TYPE_B1(Measure_grouping_req,Timing_req);
+
void
Measure_grouping_req::do_print() const
}
}
-IMPLEMENT_IS_TYPE_B1(Key_change_req,Command_req);
+
void
Key_change_req::squash_octaves()
{
ordinary_key_b_= false;
}
-IMPLEMENT_IS_TYPE_B1(Break_req, Command_req);
+
Break_req::Break_req ()
{
{
}
-IMPLEMENT_IS_TYPE_B1 (Mark_req, Command_req);
+
Mark_req::Mark_req (String s)
{
#include "translator-group.hh"
#include "command-request.hh"
-IMPLEMENT_IS_TYPE_B1(Compressed_music_iterator, Music_wrapper_iterator);
+
Compressed_music_iterator::Compressed_music_iterator ()
{
{
if (first_b_)
{
- bool success = report_to_l ()->try_request (start_req_p_);
+ bool success = report_to_l ()->try_music (compressed_l ());
if (!success)
music_l_->warning ( _("No one to print a tuplet start bracket"));
}
Music_wrapper_iterator::do_process_and_next (m);
-
- if (!ok ())
- {
- bool success = report_to_l ()->try_request (stop_req_p_);
- if (!success)
- music_l_->warning ( _("No one to print a tuplet stop bracket"));
- }
}
element_p_->compress (Moment (num_i_,den_i_));
}
-IMPLEMENT_IS_TYPE_B1(Compressed_music, Music_wrapper);
+
}
-IMPLEMENT_IS_TYPE_B1(Crescendo,Spanner);
+
{
dir_ = CENTER;
}
+
+Offset
+Directional_spanner::center () const
+{
+ Real w= width ().length ();
+ Offset o (w/2, 0);
+ return o;
+}
ADD_THIS_TRANSLATOR(Dot_column_engraver);
-IMPLEMENT_IS_TYPE_B1(Dot_column_engraver,Engraver);
+
translate_axis (w[RIGHT] - width() [LEFT],X_AXIS);
}
-IMPLEMENT_IS_TYPE_B1(Dot_column, Horizontal_group_item);
+
return out;
}
-IMPLEMENT_IS_TYPE_B1(Dots, Item);
+
}
bool
-Dynamic_engraver::do_try_request (Request * r)
+Dynamic_engraver::do_try_music (Music * r)
{
if(Dynamic_req * d = dynamic_cast <Dynamic_req *> (r))
{
}
-IMPLEMENT_IS_TYPE_B1(Dynamic_engraver,Engraver);
+
ADD_THIS_TRANSLATOR(Dynamic_engraver);
void
#include "p-score.hh"
#include "score-element.hh"
-IMPLEMENT_IS_TYPE_B2(Engraver_group_engraver,Engraver, Translator_group);
+
ADD_THIS_TRANSLATOR(Engraver_group_engraver);
void
}
-IMPLEMENT_IS_TYPE_B1(Engraver, Translator);
+
Engraver_group_engraver*
--- /dev/null
+/*
+ extender-engraver.cc -- implement Extender_engraver
+
+ (c) 1998 Jan Nieuwenhuizen <janneke@gnu.org>
+*/
+
+#include "proto.hh"
+#include "musical-request.hh"
+#include "extender-engraver.hh"
+#include "extender-spanner.hh"
+#include "text-def.hh"
+#include "score-column.hh"
+#include "text-item.hh"
+
+ADD_THIS_TRANSLATOR (Extender_engraver);
+
+Extender_engraver::Extender_engraver ()
+{
+ extender_spanner_p_ = 0;
+ span_reqs_drul_[RIGHT] = span_reqs_drul_[LEFT] = 0;
+}
+
+void
+Extender_engraver::acknowledge_element (Score_element_info i)
+{
+ Text_item* t = (dynamic_cast<Text_item*> (i.elem_l_));
+ if (!t)
+ return;
+ if (!extender_spanner_p_)
+ return;
+ if (!span_reqs_drul_[LEFT])
+ return;
+
+ if (!extender_spanner_p_->textitem_l_drul_[LEFT])
+ extender_spanner_p_->set_textitem (LEFT, t);
+ else
+ if (span_reqs_drul_[RIGHT] && !extender_spanner_p_->textitem_l_drul_[RIGHT])
+ extender_spanner_p_->set_textitem (RIGHT, t);
+}
+
+bool
+Extender_engraver::do_try_music (Music* req_l)
+{
+ if (Extender_req* p = dynamic_cast <Extender_req *> (req_l))
+ {
+ if (bool (extender_spanner_p_) == bool (p->spantype == Span_req::START))
+ return false;
+
+ Direction d = (!extender_spanner_p_) ? LEFT : RIGHT;
+ if (span_reqs_drul_[d] && !span_reqs_drul_[d]->equal_b (p))
+ return false;
+
+ span_reqs_drul_[d] = p;
+ span_mom_drul_[d] = get_staff_info ().musical_l ()->when ();
+ return true;
+ }
+ return false;
+}
+
+void
+Extender_engraver::do_removal_processing ()
+{
+ if (extender_spanner_p_)
+ {
+ span_reqs_drul_[LEFT]->warning (_ ("unterminated extender"));
+ extender_spanner_p_->unlink ();
+ delete extender_spanner_p_;
+ extender_spanner_p_ = 0;
+ span_reqs_drul_[RIGHT] = span_reqs_drul_[LEFT] = 0;
+ }
+}
+
+void
+Extender_engraver::do_process_requests ()
+{
+ if (extender_spanner_p_ || !span_reqs_drul_[LEFT])
+ return;
+
+ extender_spanner_p_ = new Extender_spanner;
+
+ announce_element (Score_element_info (extender_spanner_p_, span_reqs_drul_[LEFT]));
+}
+
+void
+Extender_engraver::do_pre_move_processing ()
+{
+ if (!extender_spanner_p_ || !span_reqs_drul_[RIGHT])
+ return;
+
+ typeset_element (extender_spanner_p_);
+
+ extender_spanner_p_ = 0;
+ span_reqs_drul_[RIGHT] = span_reqs_drul_[LEFT] = 0;
+}
+
--- /dev/null
+/*
+ extender-spanner.cc -- implement Extender_spanner
+
+ source file of the GNU LilyPond music typesetter
+
+ (c) 1998 Jan Nieuwenhuizen <janneke@gnu.org>
+*/
+
+#include "atom.hh"
+#include "box.hh"
+#include "debug.hh"
+#include "lookup.hh"
+#include "molecule.hh"
+#include "p-col.hh"
+#include "paper-def.hh"
+#include "extender-spanner.hh"
+#include "text-item.hh"
+#include "text-def.hh"
+
+Extender_spanner::Extender_spanner ()
+ : Directional_spanner ()
+{
+ textitem_l_drul_[LEFT] = textitem_l_drul_[RIGHT] = 0;
+ dy_f_drul_[LEFT] = dy_f_drul_[RIGHT] = 0.0;
+ dx_f_drul_[LEFT] = dx_f_drul_[RIGHT] = 0.0;
+}
+
+Extender_spanner::Extender_spanner (Extender_spanner const& c)
+ : Directional_spanner (c)
+{
+ textitem_l_drul_ = c.textitem_l_drul_;
+ dy_f_drul_ = c.dy_f_drul_;
+ dx_f_drul_ = c.dx_f_drul_;
+}
+
+Extender_spanner::~Extender_spanner ()
+{
+}
+
+Offset
+Extender_spanner::center () const
+{
+ Real dx = width ().length ();
+
+ return Offset (dx / 2, 0);
+}
+
+Molecule*
+Extender_spanner::brew_molecule_p () const
+{
+ Molecule* mol_p = new Molecule;
+
+ Real w = width ().length ();
+
+ w += (dx_f_drul_[RIGHT] - dx_f_drul_[LEFT]);
+
+ Atom a = lookup_l ()->extender (w);
+
+ a.translate (Offset (dx_f_drul_[LEFT], dy_f_drul_[LEFT]));
+
+ mol_p->add_atom (a);
+
+ return mol_p;
+}
+
+void
+Extender_spanner::do_add_processing ()
+{
+ Direction d = LEFT;
+ Drul_array<Text_item *> new_textitem_drul = textitem_l_drul_;
+ do {
+ if (!textitem_l_drul_[d])
+ new_textitem_drul[d] = textitem_l_drul_[(Direction)-d];
+ } while (flip(&d) != LEFT);
+ textitem_l_drul_ = new_textitem_drul;
+}
+
+Interval
+Extender_spanner::do_height () const
+{
+ return Interval (0,0);
+}
+
+void
+Extender_spanner::do_post_processing ()
+{
+ assert (textitem_l_drul_[LEFT] || textitem_l_drul_[RIGHT]);
+
+ // UGH
+ Real nw_f = paper ()->note_width () * 0.8;
+
+ Direction d = LEFT;
+ do
+ {
+ Text_item* t = textitem_l_drul_[d] ? textitem_l_drul_[d] : textitem_l_drul_[(Direction)-d];
+
+ dy_f_drul_[d] += t->height ().length () / 2;
+ if (d == LEFT)
+ dx_f_drul_[d] += t->width ().length ();
+ else
+ dx_f_drul_[d] -= d * nw_f / 2;
+
+// dx_f_drul_[d] -= d * nw_f / 4;
+ }
+ while (flip(&d) != LEFT);
+}
+
+void
+Extender_spanner::do_substitute_dependency (Score_element* o, Score_element* n)
+{
+ Text_item* new_l = n ? dynamic_cast<Text_item *> (n) : 0;
+ if (dynamic_cast <Item *> (o) == textitem_l_drul_[LEFT])
+ textitem_l_drul_[LEFT] = new_l;
+ else if (dynamic_cast <Item *> (o) == textitem_l_drul_[RIGHT])
+ textitem_l_drul_[RIGHT] = new_l;
+}
+
+void
+Extender_spanner::set_textitem (Direction d, Text_item* textitem_l)
+{
+ assert (!textitem_l_drul_[d]);
+ textitem_l_drul_[d] = textitem_l;
+ set_bounds (d, textitem_l);
+
+ add_dependency (textitem_l);
+}
+
}
ADD_THIS_TRANSLATOR (Font_size_engraver);
-IMPLEMENT_IS_TYPE_B1(Font_size_engraver,Engraver);
+
bool
General_script_def::equal_b (General_script_def const&g) const
{
- if (name() != g.name ())
- return false;
-
return do_equal_b (&g);
}
void
General_script_def::print() const
{
- DOUT << name() << "{";
+ DOUT << classname(this) << "{";
do_print();
DOUT << "}";
}
return Atom (s);
}
-IMPLEMENT_IS_TYPE_B(General_script_def);
+
Interval
return now_mom_;
}
-IMPLEMENT_IS_TYPE_B1(Global_translator, Translator_group);
+
Music_output*
Global_translator::get_output_p()
{
#ifndef NPRINT
for (int i=0; i < elem_l_arr_.size(); i++)
- DOUT << elem_l_arr_[i]->name () << " ";
+ DOUT << classname(elem_l_arr_[i]) << " ";
#endif
}
axis2_ = a2;
}
-IMPLEMENT_IS_TYPE_B1(Graphical_axis_group, Graphical_element);
+
#endif
}
-IMPLEMENT_IS_TYPE_B(Graphical_element);
+
#include "hara-kiri-vertical-group-spanner.hh"
#include "hara-kiri-line-group-engraver.hh"
-IMPLEMENT_IS_TYPE_B1 (Hara_kiri_line_group_engraver,Line_group_engraver_group);
+
ADD_THIS_TRANSLATOR (Hara_kiri_line_group_engraver);
void
#include "note-head.hh"
#include "bar.hh"
-IMPLEMENT_IS_TYPE_B1 (Hara_kiri_vertical_group_spanner, Vertical_group_spanner);
+
Hara_kiri_vertical_group_spanner::Hara_kiri_vertical_group_spanner()
{
}
bool
-Note_heads_engraver::do_try_request (Request *req_l)
+Note_heads_engraver::do_try_music (Music *req_l)
{
if (Note_req * n =dynamic_cast <Note_req *> (req_l))
{
}
-IMPLEMENT_IS_TYPE_B1(Note_heads_engraver,Engraver);
+
ADD_THIS_TRANSLATOR(Note_heads_engraver);
#include "horizontal-align-item.hh"
#include "debug.hh"
-IMPLEMENT_IS_TYPE_B2(Horizontal_align_item,Align_element,Item);
+
void
Horizontal_align_item::add_item (Item *i,int p)
#include "debug.hh"
-IMPLEMENT_IS_TYPE_B1(Horizontal_group_element, Axis_group_element);
+
Horizontal_group_element::Horizontal_group_element ()
: Axis_group_element (X_AXIS,X_AXIS)
#include "p-col.hh"
#include "horizontal-group-item.hh"
-IMPLEMENT_IS_TYPE_B2(Horizontal_group_item, Horizontal_group_element, Axis_group_item);
+
void
Horizontal_group_item::do_print() const
-IMPLEMENT_IS_TYPE_B2(Horizontal_vertical_group_element, Horizontal_group_element, Vertical_group_element);
+
Horizontal_vertical_group_element::do_print();
}
-IMPLEMENT_IS_TYPE_B2(Horizontal_vertical_group_item,Horizontal_vertical_group_element,Item);
+
Horizontal_vertical_group_item::Horizontal_vertical_group_item ()
{
#include "translator.hh"
#include "notename-table.hh"
-IMPLEMENT_IS_TYPE_B(Identifier);
+
Identifier::Identifier (int code)
{
}
#define IMPLEMENT_ID_CLASS(Class) \
- IMPLEMENT_IS_TYPE_B1(Class ## _identifier,Identifier)\
Class ## _identifier::~Class ## _identifier() { delete data_p_; }\
Class ## _identifier::Class ## _identifier (Class*st, int code) \
:Identifier (code)\
class Abbreviation_beam_engraver : public Engraver
{
public:
- TRANSLATOR_CLONE(Abbreviation_beam_engraver);
- DECLARE_MY_RUNTIME_TYPEINFO;
+ VIRTUAL_COPY_CONS(Translator);
+
Abbreviation_beam_engraver();
protected:
virtual void do_removal_processing();
virtual void do_process_requests();
- virtual bool do_try_request (Request*);
+ virtual bool do_try_music (Music*);
virtual void acknowledge_element (Score_element_info);
virtual void do_pre_move_processing();
direction */
class Abbreviation_beam : public Beam {
public:
- DECLARE_MY_RUNTIME_TYPEINFO;
+
Abbreviation_beam();
- SCORE_ELEMENT_CLONE(Abbreviation_beam);
+ VIRTUAL_COPY_CONS(Score_element);
protected:
virtual void do_print() const;
void add_element (Score_element*);
void add_element_priority (Score_element*, int);
bool contains_b (Score_element const*) const;
- DECLARE_MY_RUNTIME_TYPEINFO;
+
protected:
virtual void do_print() const;
virtual void do_substitute_dependency (Score_element*,Score_element*);
void print ()const;
virtual ~Audio_element();
- DECLARE_MY_RUNTIME_TYPEINFO;
+
protected:
virtual void do_print () const;
};
*/
Request* req_l_;
- DECLARE_MY_RUNTIME_TYPEINFO;
+
protected:
virtual void do_print () const;
struct Audio_key : public Audio_item {
Audio_key (Request* req_l);
- DECLARE_MY_RUNTIME_TYPEINFO;
+
virtual Midi_item* midi_item_p();
};
Audio_instrument (String instrument_str);
virtual Midi_item* midi_item_p();
String str_;
- DECLARE_MY_RUNTIME_TYPEINFO;
+
};
struct Audio_note : public Audio_item {
- DECLARE_MY_RUNTIME_TYPEINFO;
+
Audio_note (Request* req_l, int transposing_i = 0);
virtual Midi_item* midi_item_p();
int transposing_i_;
TEXT = 1, COPYRIGHT, TRACK_NAME, INSTRUMENT_NAME, LYRIC,
MARKER, CUE_POINT
};
- DECLARE_MY_RUNTIME_TYPEINFO;
+
Audio_text (Audio_text::Type type, String text_str);
virtual Midi_item* midi_item_p();
struct Audio_tempo : Audio_item {
Audio_tempo (int per_minute_4_i);
virtual Midi_item* midi_item_p();
- DECLARE_MY_RUNTIME_TYPEINFO;
+
int per_minute_4_i_;
};
struct Audio_time_signature : Audio_item {
Audio_time_signature (Request* req_l);
virtual Midi_item* midi_item_p();
- DECLARE_MY_RUNTIME_TYPEINFO;
+
};
#endif // AUDIO_ITEM_HH
void output (Midi_stream& midi_stream_r, int track_i);
Link_list<Audio_item*> audio_item_l_list_;
- DECLARE_MY_RUNTIME_TYPEINFO;
+
};
#endif // AUDIO_STAFF_HH
Axis_group_element();
virtual Link_array<Score_element> get_children ();
- DECLARE_MY_RUNTIME_TYPEINFO;
+
};
#endif // AXIS_GROUP_ELEMENT_HH
Axis_group_element::do_unlink();
}
public:
- DECLARE_MY_RUNTIME_TYPEINFO;
+
};
#endif // AXIS_ITEM_HH
virtual void do_print() const;
public:
- DECLARE_MY_RUNTIME_TYPEINFO;
+
};
#endif // SPAN_AXIS_GROUP_HH
virtual void do_process_requests ();
virtual void do_post_move_processing();
public:
- TRANSLATOR_CLONE(Bar_column_engraver);
+ VIRTUAL_COPY_CONS(Translator);
Bar_column_engraver();
- DECLARE_MY_RUNTIME_TYPEINFO;
+
};
#endif // BAR_COLUMN_GRAV_HH
Bar_column();
void set_bar (Bar*);
protected:
- SCORE_ELEMENT_CLONE(Bar_column);
+ VIRTUAL_COPY_CONS(Score_element);
void do_substitute_dependency (Score_element*,Score_element*);
- DECLARE_MY_RUNTIME_TYPEINFO;
+
};
#endif // BAR_COLUMN_HH
void create_bar ();
public:
- TRANSLATOR_CLONE(Bar_engraver);
+ VIRTUAL_COPY_CONS(Translator);
Bar_engraver();
- DECLARE_MY_RUNTIME_TYPEINFO;
+
protected:
virtual void do_creation_processing ();
virtual void do_removal_processing ();
- virtual bool do_try_request (Request *req_l);
+ virtual bool do_try_music (Music *req_l);
virtual void do_process_requests();
virtual void do_pre_move_processing();
virtual void do_post_move_processing();
void acknowledge_element (Score_element_info);
void do_pre_move_processing();
public:
- TRANSLATOR_CLONE(Bar_number_engraver);
+ VIRTUAL_COPY_CONS(Translator);
Bar_number_engraver();
- DECLARE_MY_RUNTIME_TYPEINFO;
+
};
#endif // BAR_NUMBER_GRAV_HH
public:
String type_str_;
- DECLARE_MY_RUNTIME_TYPEINFO;
- SCORE_ELEMENT_CLONE (Bar);
+
+ VIRTUAL_COPY_CONS(Score_element);
Bar ();
protected:
Rhythmic_grouping *current_grouping_p_;
public:
- TRANSLATOR_CLONE(Beam_engraver);
- DECLARE_MY_RUNTIME_TYPEINFO;
+ VIRTUAL_COPY_CONS(Translator);
+
Beam_engraver();
protected:
virtual void do_removal_processing();
virtual void do_process_requests();
- virtual bool do_try_request (Request*);
+ virtual bool do_try_music (Music*);
virtual void acknowledge_element (Score_element_info);
virtual void do_pre_move_processing();
};
int multiple_i_;
- DECLARE_MY_RUNTIME_TYPEINFO;
+
Beam();
void add_stem (Stem*);
void set_grouping (Rhythmic_grouping def, Rhythmic_grouping current);
void set_stemlens ();
- SCORE_ELEMENT_CLONE (Beam);
+ VIRTUAL_COPY_CONS(Score_element);
protected:
virtual Interval do_width () const;
Bow ();
Offset center () const;
- DECLARE_MY_RUNTIME_TYPEINFO;
+
int dash_i_;
protected:
virtual void do_pre_processing();
public:
- DECLARE_MY_RUNTIME_TYPEINFO;
- SCORE_ELEMENT_CLONE(Break_align_item);
+
+ VIRTUAL_COPY_CONS(Score_element);
};
#endif // BREAK_ALIGN_ITEM_HH
void error (String);
public:
- DECLARE_MY_RUNTIME_TYPEINFO;
+
protected:
virtual void do_process_and_next (Moment);
};
public:
String change_to_type_str_;
String change_to_id_str_;
- DECLARE_MY_RUNTIME_TYPEINFO;
+
protected:
- VIRTUAL_COPY_CONS(Change_translator, Music);
+ VIRTUAL_COPY_CONS(Music);
void do_print () const;
};
Simultaneous_music *simultaneous_music_l() const;
Pointer_list<Music_iterator*> children_p_list_;
public:
- DECLARE_MY_RUNTIME_TYPEINFO;
+
protected:
virtual void do_print() const;
virtual void construct_children();
virtual void do_removal_processing();
virtual void do_creation_processing();
virtual void do_post_move_processing();
- virtual bool do_try_request (Request*);
+ virtual bool do_try_music (Music*);
virtual void acknowledge_element (Score_element_info);
public:
- TRANSLATOR_CLONE(Clef_engraver);
+ VIRTUAL_COPY_CONS(Translator);
int c0_position_i_;
int clef_position_i_;
Direction octave_dir_;
Clef_engraver();
- DECLARE_MY_RUNTIME_TYPEINFO;
+
};
#endif
/// text def to put above/below clef?
P<Text_def> octave_marker_td_p_;
- DECLARE_MY_RUNTIME_TYPEINFO;
- SCORE_ELEMENT_CLONE(Clef_item);
+
+ VIRTUAL_COPY_CONS(Score_element);
Clef_item();
};
virtual void process_acknowledged ();
virtual void do_pre_move_processing();
public:
- TRANSLATOR_CLONE(Collision_engraver);
+ VIRTUAL_COPY_CONS(Translator);
Collision_engraver();
- DECLARE_MY_RUNTIME_TYPEINFO;
+
};
#endif // COLLISION_GRAV_HH
virtual void do_pre_processing();
public:
Link_array<Note_column> clash_l_arr_;
- DECLARE_MY_RUNTIME_TYPEINFO;
+
void add_column (Note_column*ncol_l);
Collision();
};
public:
Bracket_req* start_req_p_;
Bracket_req* stop_req_p_;
- DECLARE_MY_RUNTIME_TYPEINFO;
+
Compressed_music_iterator();
~Compressed_music_iterator ();
virtual void do_process_and_next (Moment);
int den_i_;
Compressed_music (int, int, Music *);
- DECLARE_MY_RUNTIME_TYPEINFO;
- VIRTUAL_COPY_CONS (Compressed_music, Music);
+
+ VIRTUAL_COPY_CONS(Music);
};
#endif /* COMPRESSED_MUSIC_HH */
Crescendo();
protected:
- SCORE_ELEMENT_CLONE(Crescendo);
+ VIRTUAL_COPY_CONS(Score_element);
virtual Molecule*brew_molecule_p() const;
virtual Interval symbol_height() const;
- DECLARE_MY_RUNTIME_TYPEINFO;
+
private:
Atom get_symbol() const;
Directional_spanner();
/// offset of "center" relative to left-column/0-pos of staff
- virtual Offset center() const=0;
+ virtual Offset center() const;
virtual void set_default_dir();
protected:
virtual void do_pre_processing();
Dot_column *dotcol_p_ ;
Link_array<Rhythmic_head> head_l_arr_;
public:
- TRANSLATOR_CLONE(Dot_column_engraver);
+ VIRTUAL_COPY_CONS(Translator);
Dot_column_engraver();
- DECLARE_MY_RUNTIME_TYPEINFO;
+
protected:
virtual void acknowledge_element (Score_element_info);
virtual void do_pre_move_processing ();
Link_array<Dots> dot_l_arr_;
public:
- DECLARE_MY_RUNTIME_TYPEINFO;
+
void add_head (Rhythmic_head*);
void add_dots (Dots*);
int no_dots_i_;
int position_i_;
- DECLARE_MY_RUNTIME_TYPEINFO;
+
Dots ();
};
Span_dynamic_req * cresc_req_l_;
Array<Dynamic_req*> dynamic_req_l_arr_;
public:
- TRANSLATOR_CLONE(Dynamic_engraver);
+ VIRTUAL_COPY_CONS(Translator);
Dynamic_engraver();
- DECLARE_MY_RUNTIME_TYPEINFO;
+
protected:
virtual void do_removal_processing ();
virtual void acknowledge_element (Score_element_info);
- virtual bool do_try_request (Request *req_l);
+ virtual bool do_try_music (Music *req_l);
virtual void do_process_requests();
virtual void do_pre_move_processing();
virtual void do_post_move_processing();
protected:
Array<Score_element_info> announce_info_arr_;
public:
- TRANSLATOR_CLONE(Engraver_group_engraver);
+ VIRTUAL_COPY_CONS(Translator);
Engraver_group_engraver();
~Engraver_group_engraver();
- DECLARE_MY_RUNTIME_TYPEINFO;
+
virtual Staff_info get_staff_info() const;
virtual void do_announces();
virtual void fill_staff_info (Staff_info&);
public:
- TRANSLATOR_CLONE(Engraver);
+ VIRTUAL_COPY_CONS(Translator);
Engraver_group_engraver * daddy_grav_l() const;
/**
override other ctor
*/
Engraver () {}
- DECLARE_MY_RUNTIME_TYPEINFO;
+
};
--- /dev/null
+/*
+ extender-engraver.hh -- declare Extender_engraver
+
+ source file of the GNU LilyPond music typesetter
+
+ (c) 1998 Jan Nieuwenhuizen <janneke@gnu.org>
+*/
+
+#ifndef EXTENDER_ENGRAVER_HH
+#define EXTENDER_ENGRAVER_HH
+
+#include "engraver.hh"
+#include "drul-array.hh"
+#include "extender-spanner.hh"
+
+/**
+ Generate an extender.
+ Should make an Extender_spanner that typesets a nice extender line.
+ */
+class Extender_engraver : public Engraver
+{
+public:
+ Extender_engraver ();
+ VIRTUAL_COPY_CONS (Translator);
+
+protected:
+ virtual void acknowledge_element (Score_element_info);
+ virtual void do_removal_processing();
+ virtual void do_process_requests();
+ virtual bool do_try_music (Music*);
+ virtual void do_pre_move_processing();
+
+private:
+ Drul_array<Extender_req*> span_reqs_drul_;
+ Drul_array<Moment> span_mom_drul_;
+ Extender_spanner* extender_spanner_p_;
+};
+
+#endif // EXTENDER_ENGRAVER_HH
--- /dev/null
+/*
+ extender-spanner.hh -- part of GNU LilyPond
+
+ (c) 1998 Jan Nieuwenhuizen <janneke@gnu.org>
+*/
+
+#ifndef EXTENDER_SPANNER_HH
+#define EXTENDER_SPANNER_HH
+
+#include "directional-spanner.hh"
+
+/**
+ simple extender line
+
+ The extender is a simple line at the baseline of the lyric
+ that helps show the length of a melissima (tied/slurred note).
+
+ Extenders must be entered manually for now.
+
+ Although it would be possible for Lily to determine where to
+ put extender lines, it's quite a tricky thing to do. Also,
+ this would demand quite strict lyrics entries.
+
+ Note: the extender is only used for one-syllable words, or
+ for on a word's last syllable. The extender should be aligned
+ with the left side of the last note of the melissima, and not
+ extend beond, lasting the whole duration of the melissima
+ (as in MUP, urg).
+ */
+
+class Extender_spanner : public Directional_spanner
+{
+public:
+ Extender_spanner ();
+ virtual ~Extender_spanner ();
+
+ Offset center () const;
+ void set_textitem (Direction, Text_item*);
+
+ Drul_array<Text_item *> textitem_l_drul_;
+
+protected:
+ virtual Molecule* brew_molecule_p () const;
+ void do_add_processing ();
+ Interval do_height () const;
+ void do_substitute_dependency (Score_element* o, Score_element* n);
+ void do_post_processing ();
+
+ VIRTUAL_COPY_CONS (Score_element);
+
+ Extender_spanner (Extender_spanner const&);
+
+ Drul_array<Real> dy_f_drul_;
+ Drul_array<Real> dx_f_drul_;
+};
+
+#endif // EXTENDER_SPANNER_HH
+
virtual void do_process_requests ();
public:
Font_size_engraver ();
- DECLARE_MY_RUNTIME_TYPEINFO;
- TRANSLATOR_CLONE (Font_size_engraver);
+
+ VIRTUAL_COPY_CONS (Translator);
};
#endif /* FONT_SIZE_GRAV_HH */
*/
class General_script_def : public Input {
public:
- VIRTUAL_COPY_CONS(General_script_def,General_script_def);
- DECLARE_MY_RUNTIME_TYPEINFO;
+ VIRTUAL_COPY_CONS(General_script_def);
+
virtual Direction staff_dir() const;
void print() const;
virtual Direction rel_stem_dir() const;
class Global_translator : public virtual Translator_group{
PQueue<Moment> extra_mom_pq_;
public:
- TRANSLATOR_CLONE(Global_translator);
+ VIRTUAL_COPY_CONS(Translator);
Moment last_mom_;
Moment now_mom_;
Global_translator();
virtual void finish() {}
virtual void start() {}
- DECLARE_MY_RUNTIME_TYPEINFO;
+
protected:
virtual Moment now_moment () const;
virtual Global_translator *global_l() { return this; }
bool contains_b (Graphical_element const *) const;
void add_element (Graphical_element*);
void remove_element (Graphical_element*);
- DECLARE_MY_RUNTIME_TYPEINFO;
+
};
#endif // Graphical_axis_group_HH
bool empty_b () const;
- DECLARE_MY_RUNTIME_TYPEINFO;
+
Graphical_axis_group * axis_group_l_a_[NO_AXES];
class Graphical_lisp_element
{
public:
- DECLARE_MY_RUNTIME_TYPEINFO;
+
Graphical_lisp_element (String);
class Hara_kiri_line_group_engraver : public Line_group_engraver_group
{
public:
- TRANSLATOR_CLONE (Hara_kiri_line_group_engraver);
- DECLARE_MY_RUNTIME_TYPEINFO;
+ VIRTUAL_COPY_CONS (Translator);
protected:
virtual void create_line_spanner ();
class Hara_kiri_vertical_group_spanner : public Vertical_group_spanner
{
public:
- DECLARE_MY_RUNTIME_TYPEINFO;
+
Hara_kiri_vertical_group_spanner ();
virtual void do_post_processing ();
void add_note (Note_head* n);
protected:
- SCORE_ELEMENT_CLONE (Hara_kiri_vertical_group_spanner);
+ VIRTUAL_COPY_CONS(Score_element);
virtual void do_substitute_dependency (Score_element*, Score_element*);
virtual void do_print ()const;
Link_array<Note_req> note_req_l_arr_;
public:
- TRANSLATOR_CLONE(Note_heads_engraver);
+ VIRTUAL_COPY_CONS(Translator);
Note_heads_engraver();
- DECLARE_MY_RUNTIME_TYPEINFO;
+
protected:
- virtual bool do_try_request (Request *req_l) ;
+ virtual bool do_try_music (Music *req_l) ;
virtual void do_process_requests();
virtual void do_pre_move_processing();
virtual void do_post_move_processing();
*/
class Horizontal_align_item : public Item , public Align_element {
public:
- DECLARE_MY_RUNTIME_TYPEINFO;
- SCORE_ELEMENT_CLONE(Horizontal_align_item);
+
+ VIRTUAL_COPY_CONS(Score_element);
void add_item (Item*, int p);
Horizontal_align_item();
virtual void do_print() const;
public:
Horizontal_group_element ();
- DECLARE_MY_RUNTIME_TYPEINFO;
+
};
virtual void do_print() const;
public:
Horizontal_group_item ();
- DECLARE_MY_RUNTIME_TYPEINFO;
- SCORE_ELEMENT_CLONE(Horizontal_group_item);
+
+ VIRTUAL_COPY_CONS(Score_element);
};
#endif // HORIZONTAL_GROUP_ITEM_HH
public:
Horizontal_vertical_group_element ();
- DECLARE_MY_RUNTIME_TYPEINFO;
+
};
virtual void do_unlink () {
Axis_group_item::do_unlink ();
}
- SCORE_ELEMENT_CLONE(Horizontal_vertical_group_item);
+ VIRTUAL_COPY_CONS(Score_element);
public:
Horizontal_vertical_group_item ();
- DECLARE_MY_RUNTIME_TYPEINFO;
+
};
#endif // HORIZONTAL_VERTICAL_GROUP_ITEM_HH
void print() const;
- DECLARE_MY_RUNTIME_TYPEINFO;
+
void error (String) const;
String str () const;
IDACCESSOR(Translator)
IDACCESSOR(Score)
IDACCESSOR(int)
IDACCESSOR(Duration)
- VIRTUAL_COPY_CONS (Identifier, Identifier);
+ VIRTUAL_COPY_CONS(Identifier);
protected:
virtual void do_print () const;
#define DECLARE_ID_CLASS(Class) \
struct Class ## _identifier : Identifier {\
Class *data_p_; \
- DECLARE_MY_RUNTIME_TYPEINFO; \
+ \
Class ## _identifier (Class ## _identifier const&);\
Class ## _identifier (Class*st, int code);\
- VIRTUAL_COPY_CONS (Class ## _identifier, Identifier);\
+ VIRTUAL_COPY_CONS(Identifier);\
virtual Class* access_content_ ## Class (bool copy_b) const;\
~Class ## _identifier();\
virtual void do_print () const; \
Item();
Real hpos_f() const;
- DECLARE_MY_RUNTIME_TYPEINFO;
+
virtual Line_of_score * line_l() const;
virtual Paper_column * column_l () const;
public:
Key_engraver();
- DECLARE_MY_RUNTIME_TYPEINFO;
- TRANSLATOR_CLONE(Key_engraver);
+
+ VIRTUAL_COPY_CONS(Translator);
Key key_;
Key_change_req * keyreq_l_;
Key_item * kit_p_;
bool change_key_b_;
protected:
- virtual bool do_try_request (Request *req_l);
+ virtual bool do_try_music (Music *req_l);
virtual void do_process_requests();
virtual void do_pre_move_processing();
virtual void do_post_move_processing();
bool default_b_;
bool multi_octave_b_;
- DECLARE_MY_RUNTIME_TYPEINFO;
- SCORE_ELEMENT_CLONE(Key_item);
+
+ VIRTUAL_COPY_CONS(Score_element);
Key_item ();
void add (int pitch, int acc);
class Key_performer : public Performer {
public:
- TRANSLATOR_CLONE(Key_performer);
- DECLARE_MY_RUNTIME_TYPEINFO;
+ VIRTUAL_COPY_CONS(Translator);
+
Key_performer();
~Key_performer();
protected:
void do_print() const;
- virtual bool do_try_request (Request* req_l);
+ virtual bool do_try_music (Music* req_l);
virtual void do_process_requests();
private:
struct Element_group;
struct Element_group_item;
struct Engraver_group_engraver;
+struct Extender;
+struct Extender_req;
struct General_script_def;
struct Graphical_element;
virtual void do_announces ();
public:
- TRANSLATOR_CLONE(Line_group_engraver_group);
- DECLARE_MY_RUNTIME_TYPEINFO;
+ VIRTUAL_COPY_CONS(Translator);
+
Line_group_engraver_group();
};
Link_array<Paper_column> cols;
bool error_mark_b_;
- DECLARE_MY_RUNTIME_TYPEINFO;
+
Line_of_score();
void add_element (Score_element *);
virtual Interval do_width() const;
virtual void do_print() const;
- SCORE_ELEMENT_CLONE(Line_of_score);
+ VIRTUAL_COPY_CONS(Score_element);
};
#endif
struct Local_key_engraver : Engraver {
Local_key_item *key_item_p_;
protected:
- TRANSLATOR_CLONE(Local_key_engraver);
+ VIRTUAL_COPY_CONS(Translator);
virtual void do_process_requests();
virtual void acknowledge_element (Score_element_info);
virtual void do_pre_move_processing();
Link_array<Item > forced_l_arr_;
Link_array<Item > tied_l_arr_;
Local_key_engraver();
- DECLARE_MY_RUNTIME_TYPEINFO;
+
};
#endif // LOCALKEYGRAV_HH
*/
class Local_key_item : public Item {
public:
- DECLARE_MY_RUNTIME_TYPEINFO;
+
Array<Musical_pitch> accidental_pitch_arr_;
Link_array<Item> support_items_;
int c0_position_i_;
Atom dashed_slur (Array<Offset> controls, Real thick, Real dash) const;
Atom dots () const;
Atom dynamic (String) const;
+ Atom extender (Real) const;
Atom fill (Box b) const;
Atom flag (int, Direction) const;
Atom hairpin (Real width, bool decresc, bool continued) const;
#include "lily-proto.hh"
class Lyric_engraver : public Engraver {
- Lyric_req* lreq_l_;
- Text_item *lyric_item_p_;
+ Lyric_req* lreq_l_;
+ Text_item *lyric_item_p_;
protected:
- virtual void do_pre_move_processing();
- virtual bool do_try_request (Request*);
- virtual void do_process_requests();
- virtual void do_post_move_processing();
+ virtual void do_pre_move_processing();
+ virtual bool do_try_music (Music*);
+ virtual void do_process_requests();
+ virtual void do_post_move_processing();
public:
- TRANSLATOR_CLONE(Lyric_engraver);
- DECLARE_MY_RUNTIME_TYPEINFO;
- Lyric_engraver();
+ VIRTUAL_COPY_CONS(Translator);
+
+ Lyric_engraver();
};
#endif // LYRIC_ENGRAVER_HH
class Lyric_performer : public Performer {
public:
- TRANSLATOR_CLONE(Lyric_performer);
- DECLARE_MY_RUNTIME_TYPEINFO;
+ VIRTUAL_COPY_CONS(Translator);
+
protected:
void do_print() const;
- virtual bool do_try_request (Request* req_l);
+ virtual bool do_try_music (Music* req_l);
virtual void do_process_requests();
private:
public:
Mark_engraver ();
- TRANSLATOR_CLONE(Mark_engraver);
- DECLARE_MY_RUNTIME_TYPEINFO;
+ VIRTUAL_COPY_CONS(Translator);
+
protected:
- virtual bool do_try_request (Request *req_l);
+ virtual bool do_try_music (Music *req_l);
virtual void do_process_requests ();
virtual void do_pre_move_processing ();
*/
class Midi_def : public Music_output_def {
static int default_count_i_;
+ int count_per_minute_i;
public:
- VIRTUAL_COPY_CONS(Midi_def, Music_output_def);
- DECLARE_MY_RUNTIME_TYPEINFO;
+ VIRTUAL_COPY_CONS(Music_output_def);
/// duration of whole note measured in seconds.
Moment whole_in_seconds_mom_;
Maybe use base classes for RIFF files?
*/
struct Midi_item {
- DECLARE_MY_RUNTIME_TYPEINFO;
+
Midi_item (Audio_item* audio_item_l);
virtual ~Midi_item ();
static String i2varint_str (int i);
variable sized MIDI data
*/
struct Midi_chunk : Midi_item {
- DECLARE_MY_RUNTIME_TYPEINFO;
+
Midi_chunk ();
void set (String header_str, String data_str, String footer_str);
};
struct Midi_duration : public Midi_item {
- DECLARE_MY_RUNTIME_TYPEINFO;
+
Midi_duration (Real seconds_f);
virtual String str () const;
};
struct Midi_header : Midi_chunk {
- DECLARE_MY_RUNTIME_TYPEINFO;
+
Midi_header (int format_i, int tracks_i, int clocks_per_4_i);
};
Change instrument event
*/
struct Midi_instrument : public Midi_item {
- DECLARE_MY_RUNTIME_TYPEINFO;
+
Midi_instrument (int channel_i, String instrument_str);
virtual String str () const;
struct Midi_key : public Midi_item {
- DECLARE_MY_RUNTIME_TYPEINFO;
+
Midi_key (Audio_item* audio_item_l);
virtual String str () const;
struct Midi_time_signature : Midi_item {
- DECLARE_MY_RUNTIME_TYPEINFO;
+
Midi_time_signature (Audio_item* audio_item_l);
virtual String str () const;
Turn a note on (blond).
*/
struct Midi_note : public Midi_item {
- DECLARE_MY_RUNTIME_TYPEINFO;
+
Midi_note (Audio_item* audio_item_l);
Moment duration () const;
Turn a note off (dark).
*/
struct Midi_note_off : public Midi_item {
- DECLARE_MY_RUNTIME_TYPEINFO;
+
Midi_note_off (Midi_note*);
int pitch_i () const;
};
struct Midi_text : Midi_item {
- DECLARE_MY_RUNTIME_TYPEINFO;
+
enum Type {
TEXT = 1, COPYRIGHT, TRACK_NAME, INSTRUMENT_NAME, LYRIC,
};
struct Midi_tempo : Midi_item {
- DECLARE_MY_RUNTIME_TYPEINFO;
+
Midi_tempo (int per_minute_4_i);
Midi_tempo (Audio_item* audio_item_l);
};
struct Midi_track : Midi_chunk {
- DECLARE_MY_RUNTIME_TYPEINFO;
+
int number_i_;
Pointer_list<Midi_event*> event_p_list_;
class Multi_measure_rest_engraver : public Engraver
{
public:
- TRANSLATOR_CLONE(Multi_measure_rest_engraver);
- DECLARE_MY_RUNTIME_TYPEINFO;
+ VIRTUAL_COPY_CONS(Translator);
+
Multi_measure_rest_engraver ();
protected:
virtual void do_process_requests ();
- virtual bool do_try_request (Request*);
+ virtual bool do_try_music (Music*);
virtual void do_pre_move_processing ();
virtual void do_post_move_processing ();
private:
Multi_measure_rest ();
int measures_i_;
- DECLARE_MY_RUNTIME_TYPEINFO;
+
protected:
virtual void do_print () const;
void inherit_info (Music_iterator const *parent);
public:
Translator_group*report_to_l() const;
- DECLARE_MY_RUNTIME_TYPEINFO;
+
static Music_iterator* static_get_iterator_p (Music const*,Translator_group*);
Music_iterator();
Music_sequence (Music_sequence const&);
Music_sequence (Music_list *l_p);
- DECLARE_MY_RUNTIME_TYPEINFO;
- VIRTUAL_COPY_CONS(Music_sequence,Music);
+
+ VIRTUAL_COPY_CONS(Music);
virtual void transpose (Musical_pitch );
virtual void compress (Moment);
class Simultaneous_music : public Music_sequence
{
public:
- DECLARE_MY_RUNTIME_TYPEINFO;
- VIRTUAL_COPY_CONS(Simultaneous_music,Music);
+
+ VIRTUAL_COPY_CONS(Music);
Simultaneous_music(Music_list *);
virtual Musical_pitch to_relative_octave (Musical_pitch);
class Request_chord : public Simultaneous_music
{
public:
- VIRTUAL_COPY_CONS(Request_chord, Music);
- DECLARE_MY_RUNTIME_TYPEINFO;
+ VIRTUAL_COPY_CONS(Music);
+
virtual Musical_pitch to_relative_octave (Musical_pitch);
Request_chord();
};
class Sequential_music : public Music_sequence
{
public:
- DECLARE_MY_RUNTIME_TYPEINFO;
- VIRTUAL_COPY_CONS(Sequential_music, Music);
+
+ VIRTUAL_COPY_CONS(Music);
virtual Musical_pitch to_relative_octave (Musical_pitch);
Sequential_music(Music_list*);
Music_output_def ();
virtual ~Music_output_def ();
- VIRTUAL_COPY_CONS(Music_output_def, Music_output_def);
- DECLARE_MY_RUNTIME_TYPEINFO;
+ VIRTUAL_COPY_CONS(Music_output_def);
+
virtual void print () const;
Global_translator *get_global_translator_p ();
virtual void do_process_and_next (Moment) ;
virtual Moment next_moment () const;
virtual bool ok () const;
- DECLARE_MY_RUNTIME_TYPEINFO;
+
};
#endif /* MUSIC_WRAPPER_ITERATOR_HH */
Music_wrapper (Music*);
virtual void transpose (Musical_pitch);
virtual void do_print () const;
- DECLARE_MY_RUNTIME_TYPEINFO;
- VIRTUAL_COPY_CONS (Music_wrapper, Music);
+
+ VIRTUAL_COPY_CONS(Music);
Music_wrapper (Music_wrapper const&);
virtual Moment duration () const;
virtual ~Music_wrapper ();
/// Scale the music in time by #factor#.
virtual void compress (Moment factor);
- VIRTUAL_COPY_CONS(Music,Music);
- DECLARE_MY_RUNTIME_TYPEINFO;
+ VIRTUAL_COPY_CONS(Music);
+
Music();
protected:
virtual void do_print() const;
};
-/// a plet (bracket with) number
+/// a tuplet (bracket with) number
class Plet_req : public Musical_span_req {
public:
int plet_i_;
Plet_req ();
};
+/// an extender line
+class Extender_req : public Musical_span_req {
+public:
+ REQUESTMETHODS(Extender_req);
+ Extender_req ();
+};
+
class Musical_script_req : public Musical_req, public Script_req {
public:
REQUESTMETHODS(Musical_script_req);
int abbrev_beam_type_i_;
int default_abbrev_i_;
Duration default_duration_;
+ Extender_req* extender_req;
Plet plet_;
Scope *default_header_p_;
void translate_rests(int dy);
- DECLARE_MY_RUNTIME_TYPEINFO;
+
Note_column ();
void set_stem (Stem*);
void set_dotcol (Dot_column*);
class Note_head : public Rhythmic_head {
public:
- DECLARE_MY_RUNTIME_TYPEINFO;
+
int position_i_;
class Note_performer : public Performer {
public:
- TRANSLATOR_CLONE(Note_performer);
- DECLARE_MY_RUNTIME_TYPEINFO;
+ VIRTUAL_COPY_CONS(Translator);
+
Note_performer();
protected:
virtual void do_process_requests();
- virtual bool do_try_request (Request *req_l) ;
+ virtual bool do_try_music (Music *req_l) ;
virtual void do_print() const;
private:
class Paper_column : public Horizontal_group_item {
public:
- DECLARE_MY_RUNTIME_TYPEINFO;
- SCORE_ELEMENT_CLONE(Paper_column);
+
+ VIRTUAL_COPY_CONS(Score_element);
Drul_array< Array<Column_rod> > minimal_dists_arr_drul_;
void preprocess ();
static int default_count_i_;
protected:
- VIRTUAL_COPY_CONS(Paper_def,Music_output_def);
+ VIRTUAL_COPY_CONS(Music_output_def);
public:
virtual ~Paper_def ();
- DECLARE_MY_RUNTIME_TYPEINFO;
+
Array<Interval> shape_int_a_;
class Performer_group_performer : public Performer, public virtual Translator_group {
public:
- TRANSLATOR_CLONE(Performer_group_performer);
- DECLARE_MY_RUNTIME_TYPEINFO;
+ VIRTUAL_COPY_CONS(Translator);
+
};
#endif // PERFORMER_GROUP_PERFORMER_HH
*/
class Performer : public virtual Translator{
public:
- TRANSLATOR_CLONE(Performer);
- DECLARE_MY_RUNTIME_TYPEINFO;
+ VIRTUAL_COPY_CONS(Translator);
+
Performer_group_performer* daddy_perf_l() const;
protected:
virtual int get_tempo_i() const;
class Piano_brace : public Span_score_bar
{
public:
- DECLARE_MY_RUNTIME_TYPEINFO;
- SCORE_ELEMENT_CLONE(Piano_brace);
+
+ VIRTUAL_COPY_CONS(Score_element);
/** make room for Staff_bracket. Ugh. Should use some kind of
relation thingy. */
class Pitch_squash_engraver : public Engraver {
public:
- DECLARE_MY_RUNTIME_TYPEINFO;
- TRANSLATOR_CLONE (Pitch_squash_engraver);
+
+ VIRTUAL_COPY_CONS (Translator);
virtual void acknowledge_element (Score_element_info);
};
class Plet_engraver : public Engraver
{
public:
- TRANSLATOR_CLONE(Plet_engraver);
- DECLARE_MY_RUNTIME_TYPEINFO;
+ VIRTUAL_COPY_CONS(Translator);
+
Plet_engraver ();
protected:
virtual void acknowledge_element (Score_element_info);
virtual void do_removal_processing();
virtual void do_process_requests();
- virtual bool do_try_request (Request*);
+ virtual bool do_try_music (Music*);
virtual void do_pre_move_processing();
private:
class Plet_swallow_engraver : public Swallow_engraver
{
public:
- TRANSLATOR_CLONE(Plet_swallow_engraver);
- DECLARE_MY_RUNTIME_TYPEINFO;
+ VIRTUAL_COPY_CONS(Translator);
+
protected:
- virtual bool do_try_request (Request*);
+ virtual bool do_try_music (Music*);
};
#endif // PLET_SWALLOW_ENGRAVER_HH
class Priority_horizontal_align_engraver : public Engraver {
Break_align_item * halign_p_;
public:
- TRANSLATOR_CLONE(Priority_horizontal_align_engraver);
- DECLARE_MY_RUNTIME_TYPEINFO;
+ VIRTUAL_COPY_CONS(Translator);
+
Priority_horizontal_align_engraver();
protected:
virtual void acknowledge_element (Score_element_info);
Translation_property *property_l() const;
public:
- DECLARE_MY_RUNTIME_TYPEINFO;
+
protected:
virtual void do_process_and_next (Moment);
};
void do_print () const;
Relative_octave_music (Music*, Musical_pitch);
- DECLARE_MY_RUNTIME_TYPEINFO;
- VIRTUAL_COPY_CONS (Relative_octave_music, Music);
+
+ VIRTUAL_COPY_CONS(Music);
virtual Musical_pitch to_relative_octave (Musical_pitch);
};
public:
Request_chord_iterator ();
- DECLARE_MY_RUNTIME_TYPEINFO;
+
protected:
virtual void do_process_and_next (Moment);
virtual ~Request(){}
- DECLARE_MY_RUNTIME_TYPEINFO;
- VIRTUAL_COPY_CONS(Request,Music);
+
+ VIRTUAL_COPY_CONS(Music);
bool equal_b (Request*) const;
protected:
#define REQUESTMETHODS(T) \
-DECLARE_MY_RUNTIME_TYPEINFO;\
-VIRTUAL_COPY_CONS(T, Request);\
+\
+VIRTUAL_COPY_CONS(Request);\
virtual void do_print() const
virtual void process_acknowledged ();
virtual void do_pre_move_processing();
public:
- TRANSLATOR_CLONE(Rest_collision_engraver);
+ VIRTUAL_COPY_CONS(Translator);
Rest_collision_engraver();
- DECLARE_MY_RUNTIME_TYPEINFO;
+
};
#endif // REST_COLLISION_GRAV_HH
Link_array<Note_column> ncol_l_arr_;
public:
void add_column (Note_column*);
- DECLARE_MY_RUNTIME_TYPEINFO;
+
Rest_collision();
protected:
virtual void do_post_processing();
Dots * dot_p_;
Rest * rest_p_;
protected:
- virtual bool do_try_request (Request *);
+ virtual bool do_try_music (Music *);
virtual void do_pre_move_processing ();
virtual void do_post_move_processing ();
virtual void do_process_requests ();
public:
- DECLARE_MY_RUNTIME_TYPEINFO;
- TRANSLATOR_CLONE(Rest_engraver);
+
+ VIRTUAL_COPY_CONS(Translator);
Rest_engraver ();
};
#endif // REST_GRAV_HH
class Rest : public Rhythmic_head
{
public:
- DECLARE_MY_RUNTIME_TYPEINFO;
+
int position_i_;
Rest ();
Dot_column *dotcol_l_;
protected:
- TRANSLATOR_CLONE(Rhythmic_column_engraver);
+ VIRTUAL_COPY_CONS(Translator);
virtual void acknowledge_element (Score_element_info);
virtual void process_acknowledged ();
virtual void do_pre_move_processing();
virtual void do_post_move_processing();
public:
Rhythmic_column_engraver();
- DECLARE_MY_RUNTIME_TYPEINFO;
+
};
#endif // RHYTHMIC_COLUMN_GRAV_HH
class Rhythmic_head : public Item
{
public:
- DECLARE_MY_RUNTIME_TYPEINFO;
+
int balltype_i_;
int dots_i_;
*/
class Score_bar : public virtual Bar {
public:
- DECLARE_MY_RUNTIME_TYPEINFO;
- SCORE_ELEMENT_CLONE(Score_bar);
+
+ VIRTUAL_COPY_CONS(Score_element);
protected:
void do_pre_processing ();
};
public:
int break_penalty_i () { return break_penalty_i_; }
- DECLARE_MY_RUNTIME_TYPEINFO;
- SCORE_ELEMENT_CLONE(Score_column);
+
+ VIRTUAL_COPY_CONS(Score_element);
/// length of notes/rests in this column
Array<Moment> durations;
*/
struct Score_element_info {
Score_element * elem_l_;
-
- Request*req_l_;
+ Music *req_l_;
Array<Engraver*> origin_grav_l_arr_;
- Score_element_info (Score_element*, Request*);
-
+ Score_element_info (Score_element*, Music*);
Score_element_info();
};
#include "directed-graph.hh"
#include "graphical-element.hh"
-#define SCORE_ELEMENT_CLONE(T) VIRTUAL_COPY_CONS (T, Score_element)
typedef void (Score_element::*Score_element_method_pointer) (void);
Lookup const *lookup_l () const;
virtual ~Score_element ();
- DECLARE_MY_RUNTIME_TYPEINFO;
+
void add_processing ();
virtual Line_of_score * line_l () const;
virtual bool linked_b () const;
- SCORE_ELEMENT_CLONE (Score_element);
+ VIRTUAL_COPY_CONS(Score_element);
/// do not print anything black
bool transparent_b_;
void typeset_all();
public:
- TRANSLATOR_CLONE(Score_engraver);
+ VIRTUAL_COPY_CONS(Translator);
Paper_score * pscore_p_;
- DECLARE_MY_RUNTIME_TYPEINFO;
+
Score_engraver();
virtual Music_output *get_output_p ();
protected:
/* Engraver_group_engraver interface */
virtual Staff_info get_staff_info() const;
- virtual bool do_try_request (Request*);
+ virtual bool do_try_music (Music*);
virtual void do_creation_processing();
virtual void do_removal_processing();
virtual void announce_element (Score_element_info);
public Performer_group_performer, public Global_translator
{
public:
- TRANSLATOR_CLONE(Score_performer);
- DECLARE_MY_RUNTIME_TYPEINFO;
+ VIRTUAL_COPY_CONS(Translator);
+
Score_performer();
~Score_performer();
Performance *performance_p_;
{
Assoc<int, Horizontal_group_item *> align_p_assoc_;
public:
- TRANSLATOR_CLONE(Score_priority_engraver);
+ VIRTUAL_COPY_CONS(Translator);
Score_priority_engraver ();
- DECLARE_MY_RUNTIME_TYPEINFO;
+
protected:
virtual void acknowledge_element (Score_element_info);
virtual void do_pre_move_processing();
public:
Link_array<Script> script_l_arr_;
Link_array<Item> support_l_arr_;
- DECLARE_MY_RUNTIME_TYPEINFO;
+
virtual void add_script (Script *);
void add_support (Item*);
virtual int priority_i() const;
virtual bool inside_b() const;
virtual Atom get_atom (Paper_def* p, Direction dir_) const;
- DECLARE_MY_RUNTIME_TYPEINFO;
+
virtual bool do_equal_b (General_script_def const *) const;
virtual void do_print() const;
Script_def();
void set_from_input (String, bool, int, int ,bool,int);
protected:
- VIRTUAL_COPY_CONS(Script_def,General_script_def);
+ VIRTUAL_COPY_CONS(General_script_def);
};
Array<Script_req *> script_req_l_arr_;
public:
- TRANSLATOR_CLONE(Script_engraver);
- DECLARE_MY_RUNTIME_TYPEINFO;
+ VIRTUAL_COPY_CONS(Translator);
+
Script_engraver();
protected:
- virtual bool do_try_request (Request*);
+ virtual bool do_try_music (Music*);
virtual void do_process_requests();
virtual void do_pre_move_processing();
virtual void do_post_move_processing();
virtual Interval symbol_width () const;
virtual void do_pre_processing();
virtual Interval do_width() const;
- SCORE_ELEMENT_CLONE(Script);
+ VIRTUAL_COPY_CONS(Score_element);
private:
void set_default_dir();
Script (Script const&);
void set_stem (Stem*);
- DECLARE_MY_RUNTIME_TYPEINFO;
+
};
{
Link_array<Single_malt_grouping_item> spacing_unit_l_arr_;
public:
- DECLARE_MY_RUNTIME_TYPEINFO;
+
void add_spacing_unit (Single_malt_grouping_item*);
protected:
- SCORE_ELEMENT_CLONE (Separating_group_spanner);
+ VIRTUAL_COPY_CONS(Score_element);
virtual Array<Rod> get_rods () const;
virtual void do_substitute_dependency (Score_element*,Score_element*);
};
virtual void do_pre_move_processing ();
public:
Separating_line_group_engraver ();
- TRANSLATOR_CLONE (Separating_line_group_engraver);
- DECLARE_MY_RUNTIME_TYPEINFO;
+ VIRTUAL_COPY_CONS (Translator);
+
};
It's 1 30 am. Naming suggestions appreciated. */
class Single_malt_grouping_item : public Item
{
- SCORE_ELEMENT_CLONE (Single_malt_grouping_item);
+ VIRTUAL_COPY_CONS(Score_element);
Link_array<Item> item_l_arr_;
public:
Single_malt_grouping_item ();
Interval my_width () const;
void add_item (Item*);
- DECLARE_MY_RUNTIME_TYPEINFO;
+
protected:
virtual void do_substitute_dependency (Score_element*, Score_element*);
virtual void do_print () const;
Array<Slur*> end_slur_l_arr_;
protected:
- virtual bool do_try_request (Request*);
+ virtual bool do_try_music (Music*);
virtual void do_process_requests();
virtual void acknowledge_element (Score_element_info);
virtual void do_pre_move_processing();
virtual void do_removal_processing ();
public:
- TRANSLATOR_CLONE(Slur_engraver);
- DECLARE_MY_RUNTIME_TYPEINFO;
+ VIRTUAL_COPY_CONS(Translator);
+
};
#endif // SLURGRAV_HH
Slur ();
- SCORE_ELEMENT_CLONE(Slur);
- DECLARE_MY_RUNTIME_TYPEINFO;
+ VIRTUAL_COPY_CONS(Score_element);
+
protected:
virtual Array<Offset> get_encompass_offset_arr () const;
Array<Bar*> bar_l_arr_;
Vertical_align_spanner * valign_l_;
public:
- TRANSLATOR_CLONE(Span_bar_engraver);
- DECLARE_MY_RUNTIME_TYPEINFO;
+ VIRTUAL_COPY_CONS(Translator);
+
Span_bar_engraver();
protected:
public:
Span_bar();
- DECLARE_MY_RUNTIME_TYPEINFO;
- SCORE_ELEMENT_CLONE(Span_bar);
+
+ VIRTUAL_COPY_CONS(Score_element);
void add_bar (Bar*);
void set_align (Align_element *);
class Span_score_bar_engraver : public Span_bar_engraver
{
public:
- TRANSLATOR_CLONE (Span_score_bar_engraver);
- DECLARE_MY_RUNTIME_TYPEINFO;
+ VIRTUAL_COPY_CONS (Translator);
+
virtual Span_bar* get_span_bar_p () const;
};
class Piano_bar_engraver : public Span_score_bar_engraver
{
public:
- TRANSLATOR_CLONE (Piano_bar_engraver);
- DECLARE_MY_RUNTIME_TYPEINFO;
+ VIRTUAL_COPY_CONS (Translator);
+
virtual Span_bar * get_span_bar_p () const;
};
class Staff_group_bar_engraver : public Span_score_bar_engraver
{
public:
- TRANSLATOR_CLONE (Staff_group_bar_engraver);
- DECLARE_MY_RUNTIME_TYPEINFO;
+ VIRTUAL_COPY_CONS (Translator);
+
virtual Span_bar * get_span_bar_p () const;
virtual void acknowledge_element (Score_element_info);
};
class Span_score_bar : public Span_bar, public Score_bar
{
public:
- DECLARE_MY_RUNTIME_TYPEINFO;
- SCORE_ELEMENT_CLONE(Span_score_bar);
+
+ VIRTUAL_COPY_CONS(Score_element);
Span_score_bar();
protected:
Drul_array<Item*> spanned_drul_;
void set_bounds (Direction d, Item*);
- DECLARE_MY_RUNTIME_TYPEINFO;
+
Spanner ();
Spanner (Spanner const &);
bool broken_b () const;
Spanner* find_broken_piece (Line_of_score*) const;
protected:
void set_my_columns ();
- SCORE_ELEMENT_CLONE (Spanner);
+ VIRTUAL_COPY_CONS(Score_element);
/**
this is virtual; for instance, Line_of_score overrides it.
class Staff_bracket : public Span_score_bar
{
public:
- DECLARE_MY_RUNTIME_TYPEINFO;
- SCORE_ELEMENT_CLONE(Staff_bracket);
+
+ VIRTUAL_COPY_CONS(Score_element);
protected:
virtual Interval do_width() const;
class Staff_margin_engraver : public Engraver
{
public:
- TRANSLATOR_CLONE(Staff_margin_engraver);
- DECLARE_MY_RUNTIME_TYPEINFO;
+ VIRTUAL_COPY_CONS(Translator);
+
Staff_margin_engraver ();
class Staff_performer : public Performer_group_performer
{
public:
- TRANSLATOR_CLONE(Staff_performer);
- DECLARE_MY_RUNTIME_TYPEINFO;
+ VIRTUAL_COPY_CONS(Translator);
+
Staff_performer ();
~Staff_performer ();
Staff_side ();
void add_support (Score_element*);
- DECLARE_MY_RUNTIME_TYPEINFO;
+
protected:
virtual Interval symbol_height () const;
class Staff_symbol_engraver : public Engraver {
Staff_symbol *span_p_;
public:
- TRANSLATOR_CLONE(Staff_symbol_engraver);
+ VIRTUAL_COPY_CONS(Translator);
Staff_symbol_engraver();
- DECLARE_MY_RUNTIME_TYPEINFO;
+
protected:
virtual ~Staff_symbol_engraver();
virtual void fill_staff_info (Staff_info&);
int no_lines_i_;
Real interline_f_;
- DECLARE_MY_RUNTIME_TYPEINFO;
+
Staff_symbol ();
Real inter_note_f() const;
int steps_i() const;
protected:
- SCORE_ELEMENT_CLONE(Staff_symbol);
+ VIRTUAL_COPY_CONS(Score_element);
virtual Interval do_height () const;
virtual Molecule* brew_molecule_p() const;
virtual void do_print() const;
virtual void do_creation_processing ();
virtual void acknowledge_element (Score_element_info);
virtual void do_pre_move_processing ();
- virtual bool do_try_request (Request*);
+ virtual bool do_try_music (Music*);
public:
- TRANSLATOR_CLONE(Stem_engraver);
+ VIRTUAL_COPY_CONS(Translator);
Stem_engraver();
- DECLARE_MY_RUNTIME_TYPEINFO;
+
};
#endif // STEM_GRAV_HH
/// ensure that this Stem also encompasses the Notehead #n#
void add_head (Rhythmic_head*n);
- DECLARE_MY_RUNTIME_TYPEINFO;
+
Real hpos_f () const;
Real chord_start_f () const;
void unlink_all ();
protected:
- DECLARE_MY_RUNTIME_TYPEINFO;
+
};
#endif // Super_element_HH
*/
class Swallow_engraver : public Engraver {
protected:
- bool do_try_request (Request*) ;
+ bool do_try_music (Music*) ;
public:
- TRANSLATOR_CLONE(Swallow_engraver);
- DECLARE_MY_RUNTIME_TYPEINFO;
+ VIRTUAL_COPY_CONS(Translator);
+
};
#endif // SWALLOW_GRAV_HH
class Swallow_performer : public Performer {
public:
- TRANSLATOR_CLONE(Swallow_performer);
- DECLARE_MY_RUNTIME_TYPEINFO;
+ VIRTUAL_COPY_CONS(Translator);
+
protected:
- virtual bool do_try_request (Request*) { return true; }
+ virtual bool do_try_music (Music*) { return true; }
};
#endif // SWALLOW_PERF_HH
class Text_def : public General_script_def
{
public:
- DECLARE_MY_RUNTIME_TYPEINFO;
- VIRTUAL_COPY_CONS(Text_def,General_script_def);
+ VIRTUAL_COPY_CONS(General_script_def);
/**
Alignment of typeset text wrt center.
Text_item (General_script_def* ,Direction dir=CENTER);
virtual ~Text_item ();
- DECLARE_MY_RUNTIME_TYPEINFO;
+
//protected:
// ugh: so, are we a text-def, or can this vary?
Directional_spanner * support_span_l_;
General_script_def * spec_p_;
Offset text_off_;
- DECLARE_MY_RUNTIME_TYPEINFO;
+
void set_support (Directional_spanner*);
Text_spanner();
Text_spanner (Text_spanner const&);
protected:
- SCORE_ELEMENT_CLONE(Text_spanner);
+ VIRTUAL_COPY_CONS(Score_element);
~Text_spanner();
virtual void do_add_processing ();
virtual void do_substitute_dependency (Score_element*,Score_element*);
Tie ();
void set_head (Direction, Note_head*head_l);
- DECLARE_MY_RUNTIME_TYPEINFO;
- SCORE_ELEMENT_CLONE(Tie);
+
+ VIRTUAL_COPY_CONS(Score_element);
bool same_pitch_b_;
Drul_array<Note_head *> head_l_drul_;
protected:
virtual void do_removal_processing ();
virtual void acknowledge_element (Score_element_info);
- virtual bool do_try_request (Request*);
+ virtual bool do_try_music (Music*);
virtual void do_process_requests();
virtual void process_acknowledged ();
virtual void do_post_move_processing();
virtual void do_pre_move_processing();
public:
- TRANSLATOR_CLONE(Ties_engraver);
+ VIRTUAL_COPY_CONS(Translator);
Ties_engraver();
- DECLARE_MY_RUNTIME_TYPEINFO;
+
};
#endif // Ties_GRAV_HH
virtual void do_process_requests();
virtual void do_pre_move_processing();
public:
- TRANSLATOR_CLONE(Time_signature_engraver);
+ VIRTUAL_COPY_CONS(Translator);
Time_signature * time_signature_p_;
Time_signature_engraver();
- DECLARE_MY_RUNTIME_TYPEINFO;
+
};
#endif // METERGRAV_HH
class Time_signature_performer : public Performer {
public:
- TRANSLATOR_CLONE(Time_signature_performer);
- DECLARE_MY_RUNTIME_TYPEINFO;
+ VIRTUAL_COPY_CONS(Translator);
+
Time_signature_performer();
~Time_signature_performer();
protected:
void do_print() const;
- virtual bool do_try_request (Request* req_l);
+ virtual bool do_try_music (Music* req_l);
virtual void do_process_requests();
private:
Array<int> args_;
String time_sig_type_str_;
- DECLARE_MY_RUNTIME_TYPEINFO;
- SCORE_ELEMENT_CLONE(Time_signature);
+
+ VIRTUAL_COPY_CONS(Score_element);
};
#endif // METER_HH
protected:
virtual void fill_staff_info (Staff_info&);
public:
- TRANSLATOR_CLONE(Timing_engraver);
- DECLARE_MY_RUNTIME_TYPEINFO;
+ VIRTUAL_COPY_CONS(Translator);
+
};
#endif // TIMING_GRAV_HH
class Timing_translator : public virtual Translator
{
public:
- TRANSLATOR_CLONE(Timing_translator);
+ VIRTUAL_COPY_CONS(Translator);
Time_signature_change_req * time_signature_req_l () const;
Timing_translator ();
- DECLARE_MY_RUNTIME_TYPEINFO;
+
Time_description time_;
Rhythmic_grouping default_grouping_;
Link_array<Timing_req> timing_req_l_arr_;
protected:
virtual void do_print () const;
virtual void do_creation_processing ();
- virtual bool do_try_request (Request *req_l);
+ virtual bool do_try_music (Music *req_l);
virtual void do_process_requests();
virtual void do_pre_move_processing();
virtual void do_post_move_processing();
public:
String var_str_;
Scalar value_;
- VIRTUAL_COPY_CONS(Translation_property, Music);
- DECLARE_MY_RUNTIME_TYPEINFO;
+ VIRTUAL_COPY_CONS(Music);
+
protected:
virtual void do_print () const;
};
int iterator_count_;
- TRANSLATOR_CLONE(Translator_group);
- DECLARE_MY_RUNTIME_TYPEINFO;
+ VIRTUAL_COPY_CONS(Translator);
+
void set_acceptor (String accepts, bool add);
void set_element (String accepts, bool add);
- Translator *get_simple_translator (char const *type) const;
+ Translator *get_simple_translator (String) const;
Translator_group *find_existing_translator_l (String n, String id);
Translator_group *find_create_translator_l (String n, String id);
Link_array<Translator_group> path_to_acceptable_translator (String alias) const;
virtual void do_print () const;
virtual void do_process_requests ();
virtual void do_add_processing ();
- virtual bool do_try_request (Request* req_l);
+ virtual bool do_try_music (Music* req_l);
virtual void do_pre_move_processing();
virtual void do_post_move_processing();
virtual void do_creation_processing();
#include "parray.hh"
#include "input.hh"
-#define TRANSLATOR_CLONE(c) VIRTUAL_COPY_CONS(c, Translator)
/** Make some kind of #Element#s from Requests. Elements are made by
hierarchically grouped #Translator#s
bool is_alias_b (String) const;
- DECLARE_MY_RUNTIME_TYPEINFO;
- TRANSLATOR_CLONE(Translator);
+
+ VIRTUAL_COPY_CONS(Translator);
Translator (Translator const &);
Translator ();
virtual ~Translator ();
true: request swallowed. Don't try to put the request elsewhere.
*/
- bool try_request (Request*);
+ bool try_music (Music*);
void pre_move_processing();
void add_processing ();
void creation_processing ();
Default: always return false
*/
virtual void do_add_processing ();
- virtual bool do_try_request (Request *req_l);
+ virtual bool do_try_music (Music *req_l);
virtual void do_print () const;
virtual void do_pre_move_processing(){}
virtual void do_post_move_processing(){}
public:
static Translator *ctor ()
{
- Translator *t = new T;
- t->type_str_ = T::static_name ();
+ T *t = new T;
+ t->type_str_ = classname (t);
return t;
}
Translator_adder () {
void do_print () const;
Transposed_music (Music*, Musical_pitch);
- DECLARE_MY_RUNTIME_TYPEINFO;
- VIRTUAL_COPY_CONS (Transposed_music, Music);
+
+ VIRTUAL_COPY_CONS(Music);
virtual Musical_pitch to_relative_octave (Musical_pitch);
};
--- /dev/null
+/*
+ auto-plet-engraver.hh -- declare Auto_plet_engraver
+
+ source file of the GNU LilyPond music typesetter
+
+ (c) 1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ */
+
+#ifndef AUTO_PLET_ENGRAVER_HH
+#define AUTO_PLET_ENGRAVER_HH
+
+#include "engraver.hh"
+
+class Tuplet_engraver : public Engraver
+{
+ void typeset_all ();
+public:
+ VIRTUAL_COPY_CONS(Translator);
+
+
+protected:
+ Link_array<Compressed_music> compressed_music_arr_;
+ Array<Moment> stop_moments_;
+ Link_array<Plet_spanner> started_span_p_arr_;
+
+
+ virtual void do_removal_processing ();
+ virtual void acknowledge_element (Score_element_info);
+ virtual bool do_try_music (Music*r);
+ virtual void do_process_requests ();
+ virtual void do_post_move_processing ();
+};
+
+
+
+#endif /* AUTO_PLET_ENGRAVER_HH */
--- /dev/null
+/*
+ plet-spanner.hh -- part of GNU LilyPond
+
+ (c) 1997--1998 Jan Nieuwenhuizen <janneke@gnu.org>
+*/
+
+#ifndef PLET_SPANNER_HH
+#define PLET_SPANNER_HH
+#include "text-def.hh"
+#include "pointer.hh"
+#include "directional-spanner.hh"
+
+/** supportable plet: triplets, eentweetjes, ottava, etc. */
+
+class Plet_spanner : public Directional_spanner
+{
+public:
+ Plet_spanner ();
+
+ void add_column (Note_column*);
+
+ P<Text_def> tdef_p_;
+ Link_array<Note_column> column_arr_;
+ int visibility_i_;
+
+protected:
+ virtual Molecule* brew_molecule_p () const;
+ VIRTUAL_COPY_CONS(Score_element);
+
+ virtual void do_add_processing ();
+ virtual void do_post_processing ();
+ virtual void set_default_dir ();
+ virtual void do_substitute_dependency (Score_element*,Score_element*);
+};
+
+#endif // PLET_SPANNER_HH
+
{
protected:
const type_info * type_;
- bool do_try_request (Request*);
+ bool do_try_music (Music*);
public:
- DECLARE_MY_RUNTIME_TYPEINFO;
- TRANSLATOR_CLONE(Type_swallow_translator);
+
+ VIRTUAL_COPY_CONS(Translator);
Type_swallow_translator ();
};
TYPE ## _swallow_translator() { \
type_ = &typeid (TYPE);\
}\
- DECLARE_MY_RUNTIME_TYPEINFO;\
- TRANSLATOR_CLONE(TYPE ## _swallow_translator);\
+ \
+ VIRTUAL_COPY_CONS(Translator);\
};\
-IMPLEMENT_IS_TYPE_B1(TYPE ## _swallow_translator, Type_swallow_translator);\
ADD_THIS_TRANSLATOR(TYPE ## _swallow_translator);\
#endif // TYPESWALLOW_GRAV_HH
Vertical_align_spanner * valign_p_;
public:
- TRANSLATOR_CLONE(Vertical_align_engraver);
- DECLARE_MY_RUNTIME_TYPEINFO;
+ VIRTUAL_COPY_CONS(Translator);
+
Vertical_align_engraver();
protected:
virtual void acknowledge_element (Score_element_info);
class Vertical_align_spanner : public Align_element, public Spanner
{
public:
- DECLARE_MY_RUNTIME_TYPEINFO;
- SCORE_ELEMENT_CLONE(Vertical_align_spanner);
+
+ VIRTUAL_COPY_CONS(Score_element);
Vertical_align_spanner ();
virtual void do_print() const ;
public:
Vertical_group_element () ;
- DECLARE_MY_RUNTIME_TYPEINFO;
+
};
#endif /* VERTICAL_GROUP_ELEM_HH */
class Vertical_group_spanner : public Axis_group_spanner, public Vertical_group_element
{
protected:
- SCORE_ELEMENT_CLONE(Vertical_group_spanner);
+ VIRTUAL_COPY_CONS(Score_element);
virtual void do_junk_links () { Axis_group_spanner::do_junk_links (); }
virtual void do_unlink () { Axis_group_spanner::do_unlink (); }
public:
- DECLARE_MY_RUNTIME_TYPEINFO;
+
Vertical_group_spanner ();
};
Sequential_music * sequential_music_l() const;
public:
Sequential_music_iterator ();
- DECLARE_MY_RUNTIME_TYPEINFO;
+
protected:
virtual void do_print() const;
virtual void construct_children();
broken_to_drul_[LEFT] = broken_to_drul_[RIGHT]=0;
}
-IMPLEMENT_IS_TYPE_B1(Item, Score_element);
+
void
Item::do_print() const
bool
-Key_engraver::do_try_request (Request * req_l)
+Key_engraver::do_try_music (Music * req_l)
{
if (Key_change_req *kc = dynamic_cast <Key_change_req *> (req_l))
{
}
-IMPLEMENT_IS_TYPE_B1 (Key_engraver,Engraver);
+
ADD_THIS_TRANSLATOR (Key_engraver);
return output;
}
-IMPLEMENT_IS_TYPE_B1(Key_item,Item);
+
void
Key_item::do_pre_processing()
-IMPLEMENT_IS_TYPE_B1(Key_performer,Performer);
+
ADD_THIS_TRANSLATOR(Key_performer);
Key_performer::Key_performer()
}
bool
-Key_performer::do_try_request (Request* req_l)
+Key_performer::do_try_music (Music* req_l)
{
if (Key_change_req *kc = dynamic_cast <Key_change_req *> (req_l))
{
ESCAPED [nt\\'"]
PLET \\\[
TELP \\\]
+EXTENDER [_][_]
%%
{LYRICS} {
/* ugr. This sux. */
String s (YYText ());
+ if (s == "__")
+ return yylval.i = EXTENDER;
int i = 0;
while ((i=s.index_i ("_")) != -1) // change word binding "_" to " "
*(s.ch_l () + i) = ' ';
yyterminate (); // can't move this, since it actually rets a YY_NULL
}
}
+
+
{WORD} {
return scan_bare_word (YYText ());
}
}
-IMPLEMENT_IS_TYPE_B1(Line_group_engraver_group,Engraver_group_engraver);
+
ADD_THIS_TRANSLATOR(Line_group_engraver_group);
}
-IMPLEMENT_IS_TYPE_B1(Line_of_score,Spanner);
+
void
Line_of_score::add_element (Score_element*e)
Breaks if Key_engraver is removed from under us.
*/
Translator * result =
- daddy_grav_l()->get_simple_translator (Key_engraver::static_name());
+ daddy_grav_l()->get_simple_translator ("Key_engraver");
if (!result)
{
}
-IMPLEMENT_IS_TYPE_B1(Local_key_engraver,Engraver);
+
ADD_THIS_TRANSLATOR(Local_key_engraver);
return output;
}
-IMPLEMENT_IS_TYPE_B1(Local_key_item,Item);
+
void
Local_key_item::do_substitute_dependency (Score_element*o,Score_element*n)
return (*symtables_p_) ("dynamics")->lookup (st);
}
+Atom
+Lookup::extender (Real width) const
+{
+ Atom a = (*symtables_p_) ("param")->lookup ("extender");
+ Array<Real> arr;
+ arr.push (width);
+ a.lambda_ = (lambda_scm (a.str_, arr));
+ a.str_ = "extender";
+ a.font_ = font_;
+ return a;
+}
+
Atom
Lookup::fill (Box b) const
{
{
Atom a;
Real height = paper_l_->staffheight_f () / 6;
- String ps;
- ps += to_str (width) + " "
- + to_str (height) + " "
- + to_str (continued ? height/2 : 0) +
- + " draw_" + String (decresc ? "de" : "") + "cresc\n";
- a.str_ = ps;
+ Array<Real> arr;
+ arr.push (width);
+ arr.push (height);
+ arr.push (continued ? height/2 : 0);
+ String hairpin = String (decresc ? "de" : "") + "crescendo\n";
+ a.lambda_ = (lambda_scm (hairpin, arr));
+ a.str_ = "hairpin";
a.dim_.x () = Interval (0, width);
a.dim_.y () = Interval (-2*height, 2*height);
a.font_ = font_;
Atom
Lookup::plet (Real dy , Real dx, Direction dir) const
{
- String ps;
-
- ps += String_convert::double_str (dx) + " "
- + String_convert::double_str (dy) + " "
- + String_convert::int_str ( (int)dir) +
- " draw_plet ";
-
+ Array<Real> arr;
+ arr.push (dx);
+ arr.push (dy);
+ arr.push (dir);
Atom a;
- a.str_ = ps;
+ a.lambda_ = (lambda_scm ("tuplet", arr));
+ a.str_ = "plet";
return a;
}
{
assert (controls.size () == 8);
- String ps;
-
Real dx = controls[3].x () - controls[0].x ();
Real dy = controls[3].y () - controls[0].y ();
Atom a;
}
bool
-Lyric_engraver::do_try_request (Request*r)
+Lyric_engraver::do_try_music (Music*r)
{
if (Lyric_req * lr = dynamic_cast <Lyric_req *> (r))
{
}
-IMPLEMENT_IS_TYPE_B1(Lyric_engraver,Engraver);
+
ADD_THIS_TRANSLATOR(Lyric_engraver);
-IMPLEMENT_IS_TYPE_B1(Lyric_performer,Performer);
+
ADD_THIS_TRANSLATOR(Lyric_performer);
void
}
bool
-Lyric_performer::do_try_request (Request* req_l)
+Lyric_performer::do_try_music (Music* req_l)
{
if (Lyric_req *lr = dynamic_cast <Lyric_req *> (req_l))
{
"STRING_UTILS_INLINED "
#endif
"datadir=" DIR_DATADIR
- " "
+ "\n"
"localedir=" DIR_LOCALEDIR
"\n";
global_path.parse_path (env_sz);
- char *suffixes[] = {"ly", "afm", "scm", 0};
+ char *suffixes[] = {"ly", "afm", "scm", "init", 0};
for (char **s = suffixes; *s; s++){
if (!prefix_directory.empty_b())
- global_path.add (prefix_directory + String (*s));
+ global_path.add (prefix_directory + to_str ('/') + String (*s));
else
- global_path.add (String (DIR_DATADIR) + String(*s));
+ global_path.add (String (DIR_DATADIR) + to_str ('/') + String(*s));
}
}
default_outname_base_global = "lelie";
-
-
int p=0;
const char *arg ;
while ((arg= oparser.get_next_arg ()))
{
+
if (outname_str == "")
{
Midi_def::reset_default_count ();
#include "time-description.hh"
#include "engraver-group.hh"
-IMPLEMENT_IS_TYPE_B1 (Mark_engraver, Engraver);
+
ADD_THIS_TRANSLATOR (Mark_engraver);
Mark_engraver::Mark_engraver ()
}
bool
-Mark_engraver::do_try_request (Request* r_l)
+Mark_engraver::do_try_music (Music* r_l)
{
if (Mark_req *mr = dynamic_cast <Mark_req *> (r_l))
{
}
-IMPLEMENT_IS_TYPE_B1(Midi_def, Music_output_def);
+
int Midi_def::default_count_i_=0;
int
#include "midi-stream.hh"
#include "audio-item.hh"
-IMPLEMENT_IS_TYPE_B (Midi_item);
-IMPLEMENT_IS_TYPE_B1 (Midi_chunk, Midi_item);
-IMPLEMENT_IS_TYPE_B1 (Midi_duration, Midi_item);
-IMPLEMENT_IS_TYPE_B1 (Midi_header, Midi_chunk);
-IMPLEMENT_IS_TYPE_B1 (Midi_instrument, Midi_item);
-IMPLEMENT_IS_TYPE_B1 (Midi_key,Midi_item);
-IMPLEMENT_IS_TYPE_B1 (Midi_time_signature, Midi_item);
-IMPLEMENT_IS_TYPE_B1 (Midi_note, Midi_item);
-IMPLEMENT_IS_TYPE_B1 (Midi_note_off, Midi_item);
-IMPLEMENT_IS_TYPE_B1 (Midi_tempo, Midi_item);
-IMPLEMENT_IS_TYPE_B1 (Midi_text, Midi_item);
-IMPLEMENT_IS_TYPE_B1 (Midi_track, Midi_chunk);
+
+
+
+
+
+
+
+
+
+
+
+
Midi_chunk::Midi_chunk ()
: Midi_item (0)
#include "score-column.hh"
#include "time-description.hh"
-IMPLEMENT_IS_TYPE_B1 (Multi_measure_rest_engraver, Engraver);
+
ADD_THIS_TRANSLATOR (Multi_measure_rest_engraver);
Multi_measure_rest_engraver::Multi_measure_rest_engraver ()
}
bool
-Multi_measure_rest_engraver::do_try_request (Request* req_l)
+Multi_measure_rest_engraver::do_try_music (Music* req_l)
{
if (Multi_measure_rest_req *mr = dynamic_cast<Multi_measure_rest_req *> (req_l))
{
if (multi_measure_req_l_)
- if (!multi_measure_req_l_->equal_b (req_l)
+ if (!multi_measure_req_l_->equal_b (mr)
|| req_start_mom_ != now_moment ())
return false;
#include "text-def.hh"
#include "molecule.hh"
-IMPLEMENT_IS_TYPE_B1 (Multi_measure_rest, Item);
+
Multi_measure_rest::Multi_measure_rest ()
{
-IMPLEMENT_IS_TYPE_B(Music_iterator);
+
void
#ifndef NPRINT
if (!check_debug)
return ;
- DOUT << name() << "{";
+ DOUT << classname(this) << "{";
DOUT << "report to " <<
- report_to_l() << " (" << report_to_l ()->name () << ")\n";
+ report_to_l() << " (" << classname (report_to_l ()) << ")\n";
if (ok())
DOUT << "next at " << next_moment() << " ";
else
#include "musical-request.hh"
-IMPLEMENT_IS_TYPE_B1(Sequential_music,Music_sequence);
-IMPLEMENT_IS_TYPE_B1(Simultaneous_music,Music_sequence);
+
+
Moment
Simultaneous_music::duration () const
}
-IMPLEMENT_IS_TYPE_B1(Request_chord, Simultaneous_music);
+
Request_chord::Request_chord()
return 0;
}
-IMPLEMENT_IS_TYPE_B(Music_output_def);
+
Music_output_def::Music_output_def ()
{
music_p_list_p_ = new Music_list (*s.music_p_list_p_);
}
-IMPLEMENT_IS_TYPE_B1(Music_sequence, Music);
+
Music_sequence::Music_sequence(Music_list *mlist_p)
{
child_iter_p_ =0;
}
-IMPLEMENT_IS_TYPE_B1(Music_wrapper_iterator, Music_iterator);
+
void
Music_wrapper_iterator::do_print () const
element_p_ = p;
}
-IMPLEMENT_IS_TYPE_B1 (Music_wrapper, Music);
+
Moment
Music_wrapper::duration () const
#ifndef NPRINT
if (! check_debug)
return ;
- DOUT << name() << "{";
+ DOUT << classname(this) << "{";
if (translator_type_str_.length_i ())
DOUT << translator_type_str_ << " = " << translator_id_str_;
do_print();
}
-IMPLEMENT_IS_TYPE_B(Music);
+
{"cm", CM_T},
{"consists", CONSISTS},
{"duration", DURATION},
+// {"_", EXTENDER},
{"font", FONT},
{"grouping", GROUPING},
{"header", HEADER},
default_duration_.durlog_i_ = 2;
default_abbrev_i_ = 0;
error_level_i_ = 0;
+ extender_req = 0;
fatal_error_i_ = 0;
default_header_p_ =0;
}
#include "rest.hh"
#include "debug.hh"
-IMPLEMENT_IS_TYPE_B1(Note_column,Script_column);
+
bool
Note_column::rest_b () const
dots_l_->position_i_ = position_i_;
}
-IMPLEMENT_IS_TYPE_B1(Note_head,Rhythmic_head);
+
int
#include "audio-item.hh"
#include "debug.hh"
-IMPLEMENT_IS_TYPE_B1 (Note_performer,Performer);
+
ADD_THIS_TRANSLATOR (Note_performer);
Note_performer::Note_performer ()
}
bool
-Note_performer::do_try_request (Request* req_l)
+Note_performer::do_try_music (Music* req_l)
{
if (note_req_l_)
return false;
return linked_b();
}
-IMPLEMENT_IS_TYPE_B1(Paper_column, Horizontal_group_item);
+
Paper_column*
Paper_column::column_l () const
return (*lookup_p_assoc_p_)[i];
}
-IMPLEMENT_IS_TYPE_B1 (Paper_def, Music_output_def);
+
int Paper_def::default_count_i_ = 0;
// mmm
Mudela_version oldest_version ("1.0.7");
-Mudela_version version ("1.0.8");
+Mudela_version version ("1.0.9");
// needed for bison.simple's malloc() and free()
%token CONSISTS
%token DURATION
%token END
+%token EXTENDER
%token FONT
%token GROUPING
%token HEADER
%type <request> post_request structured_post_request
%type <pair> plet_fraction
%type <request> command_req verbose_command_req
-%type <request> script_req dynamic_req
+%type <request> script_req dynamic_req extender_req
%type <string> string
%type <score> score_block score_body
%type <intarr> shape_array
a->type_i_ = $1;
$$ = a;
}
+ | extender_req {
+ $$ = $1;
+ }
;
optional_modality:
}
;
+extender_req:
+ EXTENDER {
+ if (!THIS->lexer_p_->lyric_state_b ())
+ THIS->parser_error (_ ("have to be in Lyric mode for lyrics"));
+ Extender_req * e_p = new Extender_req;
+ e_p->spantype = Span_req::START;
+ $$ = e_p;
+ THIS->extender_req = e_p;
+ };
+
dynamic_req:
ABSDYNAMIC '{' unsigned '}' {
Absolute_dynamic_req *ad_p = new Absolute_dynamic_req;
pre_requests:
{
+ if (THIS->extender_req)
+ {
+ Extender_req * e_p = new Extender_req;
+ e_p->spantype = Span_req::STOP;
+ THIS->pre_reqs.push (e_p);
+ THIS->extender_req = 0;
+ }
+
}
| pre_requests open_request_parens {
+
Array<Request*>& r = *THIS->get_parens_request ($2);
for (int i = 0; i < r.size (); i++ )
r[i]->set_spot (THIS->here_input ());
#include "debug.hh"
-IMPLEMENT_IS_TYPE_B2(Performer_group_performer,Performer, Translator_group);
+
ADD_THIS_TRANSLATOR(Performer_group_performer);
#include "debug.hh"
-IMPLEMENT_IS_TYPE_B1(Performer, Translator);
+
void
Performer::play (Audio_element* p)
}
}
-IMPLEMENT_IS_TYPE_B1(Piano_brace, Span_score_bar);
+
}
ADD_THIS_TRANSLATOR (Pitch_squash_engraver);
-IMPLEMENT_IS_TYPE_B1(Pitch_squash_engraver, Engraver);
+
+#if 0
/*
plet-engraver.cc -- implement Plet_engraver
#include "score-column.hh"
#include "stem.hh"
-IMPLEMENT_IS_TYPE_B1 (Plet_engraver,Engraver);
+
ADD_THIS_TRANSLATOR (Plet_engraver);
Plet_engraver::Plet_engraver ()
}
bool
-Plet_engraver::do_try_request (Request* req_l)
+Plet_engraver::do_try_music (Music* req_l)
{
/*
UGH! This is incorrect!
return false;
Direction d = (!plet_spanner_p_) ? LEFT : RIGHT;
- if (span_reqs_drul_[d] && !span_reqs_drul_[d]->equal_b (req_l))
+ if (span_reqs_drul_[d] && !span_reqs_drul_[d]->equal_b (p))
return false;
span_reqs_drul_[d] = p;
span_reqs_drul_[RIGHT] = span_reqs_drul_[LEFT] = 0;
}
+#endif
#include "musical-request.hh"
#include "plet-swallow-engraver.hh"
-IMPLEMENT_IS_TYPE_B1(Plet_swallow_engraver,Swallow_engraver);
+
ADD_THIS_TRANSLATOR(Plet_swallow_engraver);
bool
-Plet_swallow_engraver::do_try_request (Request* req_l)
+Plet_swallow_engraver::do_try_music (Music* req_l)
{
return dynamic_cast<Plet_req *> (req_l);
}
}
}
-IMPLEMENT_IS_TYPE_B1(Priority_horizontal_align_engraver,Engraver);
+
ADD_THIS_TRANSLATOR(Priority_horizontal_align_engraver);
Music_iterator::do_process_and_next (m);
}
-IMPLEMENT_IS_TYPE_B1(Property_iterator, Music_iterator);
+
Translation_property*
Property_iterator::property_l () const
DOUT << "default pitch: " << last_pitch_.str ();
}
-IMPLEMENT_IS_TYPE_B1 (Relative_octave_music, Music_wrapper);
+
#include "music-list.hh"
#include "request.hh"
-IMPLEMENT_IS_TYPE_B1(Request_chord_iterator,Music_iterator);
+
void
Request_chord_iterator::construct_children()
{
if (Request * req_l = dynamic_cast<Request*> (i.ptr()))
{
- bool gotcha = report_to_l()->try_request (req_l);
+ bool gotcha = report_to_l()->try_music (req_l);
if (!gotcha)
- req_l->warning (_f ("junking request: `%s\'", req_l->name()));
+ req_l->warning (_f ("junking request: `%s\'", classname( req_l)));
}
else
- i.ptr ()->warning (_f ("Huh? Not a Request: `%s\'", i.ptr()->name ()));
+ i.ptr ()->warning (_f ("Huh? Not a Request: `%s\'",
+ classname (i.ptr())));
}
first_b_ = false;
}
#include "debug.hh"
-IMPLEMENT_IS_TYPE_B1(Request,Music);
+
void
Request::do_print() const
#include "note-column.hh"
-IMPLEMENT_IS_TYPE_B1(Rest_collision_engraver, Engraver);
+
ADD_THIS_TRANSLATOR(Rest_collision_engraver);
Rest_collision_engraver::Rest_collision_engraver()
#include "paper-def.hh"
-IMPLEMENT_IS_TYPE_B1(Rest_collision,Item);
+
void
Rest_collision::add_column (Note_column *nc_l)
}
bool
-Rest_engraver::do_try_request (Request *req)
+Rest_engraver::do_try_music (Music *req)
{
if (Rest_req *r = dynamic_cast <Rest_req *> (req))
{
return false;
}
-IMPLEMENT_IS_TYPE_B1(Rest_engraver, Engraver);
+
ADD_THIS_TRANSLATOR(Rest_engraver);
return m;
}
-IMPLEMENT_IS_TYPE_B1(Rest, Rhythmic_head);
+
-IMPLEMENT_IS_TYPE_B1(Rhythmic_column_engraver,Engraver);
+
ADD_THIS_TRANSLATOR(Rhythmic_column_engraver);
dots_l_ = n ? dynamic_cast<Dots *> (n) :0;
}
-IMPLEMENT_IS_TYPE_B1(Rhythmic_head, Item);
+
void
Rhythmic_head::do_print () const
{
#include "score-bar.hh"
-IMPLEMENT_IS_TYPE_B1(Score_bar, Bar);
+
durations.push (d);
}
-IMPLEMENT_IS_TYPE_B1(Score_column, Paper_column);
+
#include "score-element-info.hh"
#include "request.hh"
-Score_element_info::Score_element_info (Score_element*s_l, Request*r_l)
+Score_element_info::Score_element_info (Score_element*s_l, Music *r_l)
{
elem_l_ = s_l;
req_l_ = r_l;
Score_element::print() const
{
#ifndef NPRINT
- DOUT << name() << "{\n";
+ DOUT << classname(this) << "{\n";
DOUT << "dets: " << dependent_size() << "dependencies: " <<
dependency_size();
i->origin_l_ = this;
}
- pscore_l_->outputter_l_->output_molecule (output, absolute_offset (), name());
+ pscore_l_->outputter_l_->output_molecule (output, absolute_offset (), classname(this));
delete output;
}
{
}
-IMPLEMENT_IS_TYPE_B1(Score_element, Graphical_element);
+
Molecule*
Score_element::brew_molecule_p() const
if (!s->spanned_drul_[d])
{
s->set_bounds(d, command_column_l_);
- ::warning (_f ("Unbound spanner `%s\'", s->name ()));
+ ::warning (_f ("Unbound spanner `%s\'", classname(s)));
}
} while (flip(&d) != LEFT);
}
}
bool
-Score_engraver::do_try_request (Request*r)
+Score_engraver::do_try_music (Music*r)
{
- bool gotcha = Engraver_group_engraver::do_try_request (r);
+ bool gotcha = Engraver_group_engraver::do_try_music (r);
if (!gotcha)
{
}
-IMPLEMENT_IS_TYPE_B1(Score_engraver,Engraver_group_engraver);
+
ADD_THIS_TRANSLATOR(Score_engraver);
void
#include "source.hh"
#include "audio-staff.hh"
-IMPLEMENT_IS_TYPE_B1(Score_performer,Performer_group_performer);
+
ADD_THIS_TRANSLATOR(Score_performer);
}
}
-IMPLEMENT_IS_TYPE_B1(Score_priority_engraver, Engraver);
+
ADD_THIS_TRANSLATOR(Score_priority_engraver);
#include "stem.hh"
#include "general-script-def.hh"
-IMPLEMENT_IS_TYPE_B1(Script_column,Horizontal_vertical_group_item);
+
void
}
-IMPLEMENT_IS_TYPE_B1(Script_def,General_script_def);
+
int
Script_def::priority_i() const
/*
- script-reg.cc -- implement Script_engraver
+ script-engraver.cc -- implement Script_engraver
(c) 1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
}
bool
-Script_engraver::do_try_request (Request *r_l)
+Script_engraver::do_try_music (Music *r_l)
{
- if (!dynamic_cast <Musical_script_req *> (r_l))
- return false ;
-
- for (int i=0; i < script_req_l_arr_.size(); i++)
+ if (Musical_script_req *mr = dynamic_cast <Musical_script_req *> (r_l))
{
- if (r_l->equal_b (script_req_l_arr_[i]))
- return true;
+ for (int i=0; i < script_req_l_arr_.size(); i++)
+ {
+ if (script_req_l_arr_[i]->equal_b (mr))
+ return true;
+ }
+ script_req_l_arr_.push (mr);
+ return true;
}
- script_req_l_arr_.push (dynamic_cast <Script_req *> (r_l));
-
- return true;
+ return false;
}
void
}
-IMPLEMENT_IS_TYPE_B1(Script_engraver,Engraver);
+
ADD_THIS_TRANSLATOR(Script_engraver);
}
-IMPLEMENT_IS_TYPE_B2 (Script,Item,Staff_side);
+
int
Script::compare (Script *const&l1, Script *const&l2)
add_dependency (i);
}
-IMPLEMENT_IS_TYPE_B1(Separating_group_spanner, Spanner);
+
void
Separating_group_spanner::do_substitute_dependency (Score_element*o, Score_element*n)
}
-IMPLEMENT_IS_TYPE_B1 (Separating_line_group_engraver, Engraver);
+
ADD_THIS_TRANSLATOR( Separating_line_group_engraver);
// add this->offset_ ? this-> relative_coordinate ()?
}
-IMPLEMENT_IS_TYPE_B1(Single_malt_grouping_item, Item);
+
void
Single_malt_grouping_item::do_substitute_dependency (Score_element*o, Score_element*n)
#ifndef NDEBUG
for (int i=0; i < item_l_arr_.size (); i++)
{
- DOUT << item_l_arr_[i]->name () << ", ";
+ DOUT << classname (item_l_arr_[i]) << ", ";
}
#endif
}
#include "note-column.hh"
bool
-Slur_engraver::do_try_request (Request *req_l)
+Slur_engraver::do_try_music (Music *req_l)
{
Musical_req *mus_l = dynamic_cast <Musical_req *> (req_l);
if (Slur_req *sl = dynamic_cast <Slur_req *> (mus_l))
new_slur_req_l_arr_.clear();
}
-IMPLEMENT_IS_TYPE_B1(Slur_engraver,Engraver);
+
ADD_THIS_TRANSLATOR(Slur_engraver);
#include "encompass-info.hh"
#include "main.hh"
-IMPLEMENT_IS_TYPE_B1(Slur,Bow);
+
Slur::Slur ()
{
}
-IMPLEMENT_IS_TYPE_B1(Span_bar_engraver,Engraver);
+
ADD_THIS_TRANSLATOR(Span_bar_engraver);
return output;
}
-IMPLEMENT_IS_TYPE_B1 (Span_bar,Bar);
+
Span_bar::Span_bar ()
{
}
-IMPLEMENT_IS_TYPE_B1 (Span_score_bar_engraver, Span_bar_engraver);
-IMPLEMENT_IS_TYPE_B1 (Piano_bar_engraver, Span_score_bar_engraver);
-IMPLEMENT_IS_TYPE_B1 (Staff_group_bar_engraver, Span_score_bar_engraver);
+
+
+
Span_bar*
Piano_bar_engraver::get_span_bar_p () const
// Span_bar::do_pre_processing();
}
-IMPLEMENT_IS_TYPE_B2(Span_score_bar, Span_bar, Score_bar);
+
#include "molecule.hh"
#include "paper-outputter.hh"
-IMPLEMENT_IS_TYPE_B1(Spanner,Score_element);
+
void
Spanner::do_print() const
{
#ifndef NPRINT
- DOUT << "Between " << spanned_drul_[LEFT]->name ()
- << " and " << spanned_drul_[RIGHT]->name() << '\n';
+ DOUT << "Between " << classname (spanned_drul_[LEFT])
+ << " and " << classname (spanned_drul_[RIGHT]) << '\n';
if (broken_into_l_arr_.size())
{
DOUT << "with broken pieces:\n";
if (spanned_drul_[Direction(-d)] == spanned_drul_[d]
&& i)
- warning (_f ("Spanner `%s\' with equal left and right spanpoints", name ()));
+ warning (_f ("Spanner `%s\' with equal left and right spanpoints", classname (this)));
}
void
Molecule *output= brew_molecule_p ();
Offset left_off (spanned_drul_[LEFT]->absolute_coordinate(X_AXIS), 0);
Offset o = absolute_offset() + left_off;
- pscore_l_->outputter_l_->output_molecule (output, o, name ());
+ pscore_l_->outputter_l_->output_molecule (output, o, classname (this));
delete output;
}
}
}
-IMPLEMENT_IS_TYPE_B1(Staff_bracket, Span_score_bar);
+
#include "stem.hh"
#include "time-description.hh"
-IMPLEMENT_IS_TYPE_B1 (Staff_margin_engraver, Engraver);
+
ADD_THIS_TRANSLATOR (Staff_margin_engraver);
Staff_margin_engraver::Staff_margin_engraver ()
#include "audio-item.hh"
#include "audio-staff.hh"
-IMPLEMENT_IS_TYPE_B1 (Staff_performer,Performer_group_performer);
+
ADD_THIS_TRANSLATOR (Staff_performer);
Staff_performer::Staff_performer ()
}
-IMPLEMENT_IS_TYPE_B1(Staff_side, Score_element);
+
-IMPLEMENT_IS_TYPE_B1(Staff_symbol_engraver,Engraver);
+
ADD_THIS_TRANSLATOR(Staff_symbol_engraver);
}
-IMPLEMENT_IS_TYPE_B1(Staff_symbol,Spanner);
+
void
Staff_symbol::do_print() const
}
bool
-Stem_engraver::do_try_request (Request* r)
+Stem_engraver::do_try_music (Music* r)
{
Musical_req* mus_l = dynamic_cast <Musical_req *> (r);
if (!mus_l)
return true;
}
-IMPLEMENT_IS_TYPE_B1(Stem_engraver, Engraver);
+
ADD_THIS_TRANSLATOR(Stem_engraver);
#include "beam.hh"
#include "rest.hh"
-IMPLEMENT_IS_TYPE_B1 (Stem,Item);
+
Stem::~Stem ()
{
}
-IMPLEMENT_IS_TYPE_B1(Super_element,Score_element);
+
/**
#include "swallow-engraver.hh"
-IMPLEMENT_IS_TYPE_B1(Swallow_engraver,Engraver);
+
ADD_THIS_TRANSLATOR(Swallow_engraver);
bool
-Swallow_engraver::do_try_request (Request*)
+Swallow_engraver::do_try_music (Music*)
{
return true;
}
#include "swallow-perf.hh"
-IMPLEMENT_IS_TYPE_B1(Swallow_performer, Performer);
+
ADD_THIS_TRANSLATOR(Swallow_performer);
}
-IMPLEMENT_IS_TYPE_B1(Text_def,General_script_def);
+
}
-IMPLEMENT_IS_TYPE_B1 (Text_item,Item);
+
}
-IMPLEMENT_IS_TYPE_B1(Text_spanner,Spanner);
+
void
Text_spanner::do_print() const
#include "p-col.hh"
#include "debug.hh"
-IMPLEMENT_IS_TYPE_B1(Tie,Bow);
+
void
Tie::set_head (Direction d, Note_head * head_l)
}
bool
-Ties_engraver::do_try_request (Request*req)
+Ties_engraver::do_try_music (Music*req)
{
if (Tie_req * r = dynamic_cast <Tie_req *> (req))
{
{}
-IMPLEMENT_IS_TYPE_B1(Ties_engraver,Engraver);
+
ADD_THIS_TRANSLATOR(Ties_engraver);
Time_signature_engraver::do_process_requests()
{
Translator * result =
- daddy_grav_l()->get_simple_translator (Timing_engraver::static_name ()); // ugh
+ daddy_grav_l()->get_simple_translator ("Timing_engraver"); // ugh
if (!result)
{
ADD_THIS_TRANSLATOR(Time_signature_engraver);
-IMPLEMENT_IS_TYPE_B1(Time_signature_engraver,Engraver);
+
#include "command-request.hh"
#include "audio-item.hh"
-IMPLEMENT_IS_TYPE_B1(Time_signature_performer,Performer);
+
ADD_THIS_TRANSLATOR(Time_signature_performer);
Time_signature_performer::Time_signature_performer()
}
bool
-Time_signature_performer::do_try_request (Request* req_l)
+Time_signature_performer::do_try_music (Music* req_l)
{
if (time_signature_req_l_)
return false;
-IMPLEMENT_IS_TYPE_B1(Time_signature,Item);
+
inf.rhythmic_C_ = &default_grouping_;
}
-IMPLEMENT_IS_TYPE_B1(Timing_engraver, Timing_translator);
+
ADD_THIS_TRANSLATOR(Timing_engraver);
}
bool
-Timing_translator::do_try_request(Request*r)
+Timing_translator::do_try_music (Music*r)
{
if (Timing_req *t = dynamic_cast <Timing_req *> (r))
{
{
if (timing_req_l_arr_[i]->equal_b(t))
return true;
- if (timing_req_l_arr_[i]->name() == r->name())
+ if (String (classname (timing_req_l_arr_[i])) == classname (r))
{
r->warning (_ ("conflicting timing request"));
return false;
global_l->add_moment_to_process (time_.next_bar_moment ());
}
-IMPLEMENT_IS_TYPE_B1(Timing_translator, Translator);
+
ADD_THIS_TRANSLATOR(Timing_translator);
void
#include "translation-property.hh"
#include "debug.hh"
-IMPLEMENT_IS_TYPE_B1(Translation_property, Music);
+
void
Translation_property::do_print () const
if (!global_translator_dict_p)
global_translator_dict_p = new Dictionary<Translator*>;
- global_translator_dict_p->elem (t->name ()) = t;
+ global_translator_dict_p->elem (classname (t)) = t;
}
Translator*
-IMPLEMENT_IS_TYPE_B1(Translator_group, Translator);
+
void
Translator_group::add_translator (Translator *trans_p)
bool
-Translator_group::do_try_request (Request* req_l)
+Translator_group::do_try_music (Music* req_l)
{
bool hebbes_b =false;
Link_array<Translator> nongroups (nongroup_l_arr ());
for (int i =0; !hebbes_b && i < nongroups.size() ; i++)
- hebbes_b =nongroups[i]->try_request (req_l);
+ hebbes_b =nongroups[i]->try_music (req_l);
if (!hebbes_b && daddy_trans_l_)
- hebbes_b = daddy_trans_l_->try_request (req_l);
+ hebbes_b = daddy_trans_l_->try_music (req_l);
return hebbes_b ;
}
void
Translator_group::terminate_translator (Translator*r_l)
{
- DOUT << "Removing " << r_l->name() << " at " << now_moment () << '\n';
+ DOUT << "Removing " << classname (r_l) << " at " << now_moment () << '\n';
r_l->removal_processing();
Translator * trans_p =remove_translator_p (r_l);
Translator*
-Translator_group::get_simple_translator (char const *type) const
+Translator_group::get_simple_translator (String type) const
{
Link_array<Translator> nongroups (nongroup_l_arr ());
for (int i=0; i < nongroups.size(); i++)
{
- if (nongroups[i]->name() == type)
+ if (classname (nongroups[i]) == type)
return nongroups[i];
}
if (daddy_trans_l_)
}
bool
-Translator::do_try_request (Request *)
+Translator::do_try_music (Music *)
{
return false;
}
Translator::print () const
{
#ifndef NPRINT
- DOUT << name () << " {";
- if (name () != type_str_)
+ DOUT << classname (this) << " {";
+ if (classname (this) != type_str_)
DOUT << "type = " << type_str_;
for (Dictionary_iter<Scalar> i (properties_dict_); i.ok (); i++)
{
{
}
-IMPLEMENT_IS_TYPE_B(Translator);
+
void
bool
-Translator::try_request (Request * r)
+Translator::try_music (Music * r)
{
if (status < MOVE_INITED)
post_move_processing ();
- return do_try_request (r);
+ return do_try_music (r);
}
void
return p;
}
-IMPLEMENT_IS_TYPE_B1 (Transposed_music, Music_wrapper);
+
--- /dev/null
+/*
+ auto-plet-engraver.cc -- implement Auto_plet_engraver
+
+ source file of the GNU LilyPond music typesetter
+
+ (c) 1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ */
+
+#include "tuplet-engraver.hh"
+#include "command-request.hh"
+#include "tuplet-spanner.hh"
+#include "note-column.hh"
+#include "compressed-music.hh"
+#include "text-def.hh"
+
+bool
+Tuplet_engraver::do_try_music (Music *r)
+{
+ if (Compressed_music * c = dynamic_cast<Compressed_music *> (r))
+ {
+ compressed_music_arr_.push (c);
+ stop_moments_.push (now_moment () + c->duration ());
+ return true;
+ }
+ return false;
+}
+
+void
+Tuplet_engraver::do_process_requests ()
+{
+ for (int i= started_span_p_arr_.size ();
+ i < compressed_music_arr_.size (); i++)
+ {
+ Plet_spanner* glep = new Plet_spanner ();
+ started_span_p_arr_.push (glep);
+
+ Text_def *t = new Text_def;
+ t->text_str_ = to_str (compressed_music_arr_[i]->den_i_);
+ glep->tdef_p_.set_p (t);
+ announce_element (Score_element_info (glep, compressed_music_arr_ [i]));
+ }
+}
+
+void
+Tuplet_engraver::acknowledge_element (Score_element_info i)
+{
+ if (Note_column *nc = dynamic_cast<Note_column *> (i.elem_l_))
+ {
+ for (int j =0; j <started_span_p_arr_.size (); j++)
+ started_span_p_arr_[j]->add_column (nc);
+ }
+}
+
+void
+Tuplet_engraver::do_post_move_processing ()
+{
+ Moment now = now_moment ();
+ for (int i= started_span_p_arr_.size (); i--; )
+ {
+ if (now >= stop_moments_[i])
+ {
+ typeset_element (started_span_p_arr_[i]);
+ started_span_p_arr_.del (i);
+ stop_moments_.del(i);
+ compressed_music_arr_.del(i);
+ }
+ }
+}
+
+void
+Tuplet_engraver::do_removal_processing ()
+{
+ for (int i=0; i < started_span_p_arr_.size (); i++)
+ {
+ typeset_element (started_span_p_arr_[i]);
+ }
+}
+
+ADD_THIS_TRANSLATOR(Tuplet_engraver);
+
--- /dev/null
+/*
+ plet-spanner.cc -- implement Plet_spanner
+
+ source file of the GNU LilyPond music typesetter
+
+ (c) 1997--1998 Jan Nieuwenhuizen <janneke@gnu.org>
+*/
+
+#include "atom.hh"
+#include "box.hh"
+#include "debug.hh"
+#include "lookup.hh"
+#include "molecule.hh"
+#include "p-col.hh"
+#include "paper-def.hh"
+#include "tuplet-spanner.hh"
+#include "stem.hh"
+#include "text-def.hh"
+#include "note-column.hh"
+
+Plet_spanner::Plet_spanner ()
+{
+ visibility_i_ = 3;
+
+ tdef_p_.set_p(new Text_def);
+ tdef_p_->align_dir_ = CENTER;
+ tdef_p_->style_str_ = "italic";
+}
+
+Molecule*
+Plet_spanner::brew_molecule_p () const
+{
+ Molecule* mol_p = new Molecule;
+
+ if (column_arr_.size ()){
+ Real w = width ().length ();
+ Real dy = column_arr_.top ()->extent (Y_AXIS) [dir_]
+ - column_arr_[0]->extent (Y_AXIS) [dir_];
+
+
+ Atom num (tdef_p_->get_atom (paper (), CENTER));
+ num.translate (Offset (w/2, dy/2));
+
+ if (visibility_i_ >= 1)
+ mol_p->add_atom (num);
+
+ mol_p->add_atom (lookup_l ()->plet (dy, w, dir_));
+ }
+ return mol_p;
+}
+
+void
+Plet_spanner::do_add_processing ()
+{
+ if (column_arr_.size ())
+ {
+
+ set_bounds (LEFT, column_arr_[0]);
+ set_bounds (RIGHT, column_arr_.top ());
+ }
+}
+
+void
+Plet_spanner::do_post_processing ()
+{
+ if (column_arr_.size())
+ translate_axis (column_arr_[0]->extent (Y_AXIS)[dir_], Y_AXIS);
+}
+
+void
+Plet_spanner::do_substitute_dependency (Score_element* o, Score_element* n)
+{
+ if (Note_column *onc = dynamic_cast <Note_column *> (o))
+ column_arr_.substitute (onc, dynamic_cast<Note_column*> (n));
+}
+
+void
+Plet_spanner::set_default_dir ()
+{
+ dir_ = UP;
+ for (int i=0; i < column_arr_.size (); i ++)
+ {
+ if (column_arr_[i]->dir_ < 0)
+ {
+ dir_ = DOWN;
+ break;
+ }
+ }
+}
+
+
+void
+Plet_spanner::add_column (Note_column*n)
+{
+ column_arr_.push (n);
+ add_dependency (n);
+}
+
}
bool
-Type_swallow_translator::do_try_request (Request*r)
+Type_swallow_translator::do_try_music (Music*r)
{
// if (type_ && type_->before (typeid( *r))) //
// return true;
return false; // ugh. FIXME.
}
-IMPLEMENT_IS_TYPE_B1(Type_swallow_translator, Translator);
+
DECLARE_REQUEST_SWALLOWER(Skip_req);
}
-IMPLEMENT_IS_TYPE_B1(Vertical_align_engraver, Engraver);
+
ADD_THIS_TRANSLATOR(Vertical_align_engraver);
#include "vertical-align-spanner.hh"
-IMPLEMENT_IS_TYPE_B2(Vertical_align_spanner, Align_element, Spanner);
+
Vertical_align_spanner::Vertical_align_spanner ()
{
return Graphical_axis_group::extent (Y_AXIS);
}
-IMPLEMENT_IS_TYPE_B1(Vertical_group_element, Axis_group_element);
+
#include "item.hh"
#include "p-col.hh"
-IMPLEMENT_IS_TYPE_B2(Vertical_group_spanner, Axis_group_spanner, Vertical_group_element);
+
Vertical_group_spanner::Vertical_group_spanner ()
}
-IMPLEMENT_IS_TYPE_B1(Sequential_music_iterator,Music_iterator);
+
void
Sequential_music_iterator::do_process_and_next (Moment until)
-
-\paper { \translator {
- \OrchestralPartStaffContext
-
- }
- \translator { \ScoreContext
- skipBars = 1;
- }
+\paper {
+ \translator { \OrchestralPartStaffContext }
+ \translator { \ScoreContext skipBars = 1; }
}
>
\paper{
% Give hara-kiri something to do...
+ % URG fixme Score+HaraKiri!
linewidth = 130.0\mm;
\translator { \OrchestralScoreContext }
}
\[/3 Mit4 der8 \] T\"o-4. ne8
\[/3 s\"u-4 "\ss{}en"8 \] Kla-4. gen8
Fleh-4. en8 \[/3 sie4 f\"ur8 \]
- mich.2 _4
+ mich2 _4
_4_ _
_4_ _
\[/3 Komm4 be-8 \] gl\"u4. cke8 |
mich!2. |
\[/3 Komm4 be-8 \] gl\"u4. cke8 |
- mich!2. |
+ mich,2. __ |
_2 be-4 |
gl\"u-2. |
cke2. |
% To get original, \transpose d'
% \transpose a gives a' to d'' (for basses, who sing an octave down)
<
- { \notes \transpose a { \$vocal_staff } }
+% kjoet, but i like the original better -- jcn
+% { \notes \transpose a { \$vocal_staff } }
+% \$lyric_staff
+% { \notes \transpose a { \$grand_staff } }
+ { \notes { \$vocal_staff } }
\$lyric_staff
- { \notes \transpose a { \$grand_staff } }
+ { \notes { \$grand_staff } }
>
- \paper { \translator { \OrchestralScoreContext }}
+ \paper {
+% \translator { \OrchestralScoreContext }
+% \translator { \OrchestralPartStaffContext }
+ \translator { \HaraKiriStaffContext }
+ }
\midi{
\tempo 4 = 54;
}
--- /dev/null
+%!PS-Adobe-1.0: lily.ps
+
+% round cappings
+1 setlinecap
+
+/draw_beam % width slope thick
+{
+ 2 div /beam_thick exch def
+ /beam_slope exch def
+ /beam_wd exch def
+ beam_slope beam_wd mul /beam_ht exch def
+ 0 beam_thick neg moveto
+ beam_wd beam_ht rlineto
+ 0 beam_thick 2 mul rlineto
+ 0 beam_thick lineto
+ closepath fill
+} bind def
+
+/draw_decrescendo % cont height width
+{
+ stafflinethickness setlinewidth
+ /cresc_cont exch def
+ /cresc_ht exch def
+ /cresc_wd exch def
+
+ cresc_wd cresc_cont moveto
+ 0 cresc_ht lineto
+ stroke
+ cresc_wd cresc_cont neg moveto
+ 0 cresc_ht neg lineto
+ stroke
+} bind def
+
+/draw_crescendo % cont height width
+{
+ stafflinethickness setlinewidth
+ /cresc_cont exch def
+ /cresc_ht exch def
+ /cresc_wd exch def
+
+ 0 cresc_cont moveto
+ cresc_wd cresc_ht lineto
+ stroke
+ 0 cresc_cont neg moveto
+ cresc_wd cresc_ht neg lineto
+ stroke
+} bind def
+
+/lily_distance
+{
+ 1 copy mul exch 1 copy mul add sqrt
+} bind def
+
+/draw_tuplet
+{
+ tuplet_t setlinewidth
+% urg: the only Level-2 PS, check effect in print
+% true setstrokeadjust
+ 1 setlinecap
+ 1 setlinejoin
+ /dir exch def
+ /tuplet_dy exch def
+ /tuplet_dx exch def
+ staffheight 2 div /tuplet_gapx exch def
+ tuplet_dy tuplet_dx div tuplet_gapx mul /tuplet_gapy exch def
+ staffheight 4 div dir mul /tuplet_h exch def
+
+ 0 0 moveto
+ 0 tuplet_h lineto
+ tuplet_dx tuplet_gapx sub 2 div
+ tuplet_dy tuplet_gapy sub 2 div tuplet_h add lineto
+ tuplet_dx tuplet_gapx add 2 div
+ tuplet_dy tuplet_gapy add 2 div tuplet_h add moveto
+ tuplet_dx tuplet_dy tuplet_h add lineto
+ tuplet_dx tuplet_dy lineto
+ stroke
+} bind def
+
+/draw_slur
+{
+ stafflinethickness setlinewidth
+ moveto
+ curveto
+ lineto
+ curveto
+ gsave
+ fill
+ grestore
+ stroke
+} bind def
+
+/draw_dashed_slur
+{
+ 1 setlinecap
+ 1 setlinejoin
+ setdash
+ setlinewidth
+ moveto
+ curveto
+ stroke
+} bind def
+
+
+
+/bracket_traject
+{
+ /traject_ds exch def
+ /traject_alpha exch def
+ traject_ds traject_alpha sin mul add
+ exch
+ traject_ds traject_alpha cos mul add
+ exch
+} bind def
+
+
+
+/half_bracket
+{
+%6
+ 0 0
+%5a
+ bracket_b bracket_v add bracket_h bracket_t sub bracket_u add
+ bracket_alpha bracket_v -0.15 mul bracket_traject
+%5b
+ 1 bracket_h
+ 0 bracket_v 0.5 mul bracket_traject
+%5c
+ 0 bracket_h
+%4a
+ bracket_b bracket_h bracket_t sub
+ 0 bracket_v 0.4 mul bracket_traject
+%4b
+ bracket_b bracket_v add bracket_h bracket_t sub bracket_u add
+ bracket_alpha bracket_v -0.25 mul bracket_traject
+%4c
+ bracket_b bracket_v add bracket_h bracket_t sub bracket_u add
+%3
+ bracket_b bracket_h bracket_t sub
+%2
+ bracket_b 0
+%1
+ 0 0
+} bind def
+
+/draw_half_bracket {
+ moveto
+ lineto
+ lineto
+ curveto
+ curveto
+ lineto
+ gsave
+ fill
+ grestore
+} bind def
+
+/draw_bracket % height
+{
+ 2 div bracket_b add /bracket_h exch def
+ bracket_t setlinewidth
+% urg: the only Level-2 PS, check effect in print
+% true setstrokeadjust
+ 1 setlinecap
+ 1 setlinejoin
+ half_bracket
+ 20 copy
+ 1 -1 scale
+ draw_half_bracket
+ stroke
+ 1 -1 scale
+% ugh, ugh:
+ 0.05 0 translate
+ draw_half_bracket
+ stroke
+} bind def
+
grestore
} bind def
+/extender % width
+{
+ gsave
+ 0 0 moveto
+ stafflinethickness 0.8 mul setlinewidth
+ 0 lineto stroke
+ grestore
+} bind def
+
/widthbar % height width
{
gsave
\special{!
/interline \mudelapaperinterline0 def % ugh. Only works x.yyyy floats
-stafflinethickness 1.2 mul /plet_t exch def
interline 3 div /bracket_b exch def
interline 2 mul /bracket_w exch def
stafflinethickness 2 mul /bracket_t exch def
bracket_v /bracket_u exch def
50 /bracket_alpha exch def
staffheight 4 div /interline exch def
+stafflinethickness 1.2 mul /tuplet_t exch def
1 setlinecap}
}
\def\finishbar#1{\rightalign{\thinbar{#1}\kern\smallspace\thickbar{#1}}}
\def\fatdoublebar#1{\hbox{\phantom{\repeatcolon\kern2\smallspace}\thickbar{#1}\kern\smallspace\thickbar{#1}}}
-
+\def\extender#1{\vrule width#1 height .8\stafflinethickness}
% ugh
% see e.g. input/test/beam-pos.ly
% does some rounding; i can't really check this from screen on i
% 600x600 res.
%
-\def\rulesym#1#2{\dimen0=#1%
+\def\rulesym#1#2{\dimen0=#1 %obsolete
\vrule height .5\dimen0 depth .5\dimen0 width #2}
\def\shiftedrulesym#1#2{\dimen0=#1%
\vrule height .7\dimen0 depth .3\dimen0 width #2}