X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=configure.ac;h=8e3cabe01efe4359f5e51c57c47b0bd608e44ce4;hb=97a0169312a260933246ab224e4f8b0969871dd5;hp=2ae2f6cbb938c2a245e9a66b1dbdb9a828f1b1e6;hpb=23108a9515e7f76b44fac0b323afb169d708bfa1;p=lilypond.git diff --git a/configure.ac b/configure.ac index 2ae2f6cbb9..8e3cabe01e 100644 --- a/configure.ac +++ b/configure.ac @@ -26,11 +26,23 @@ AC_ARG_ENABLE(documentation, [DOCUMENTATION=$enableval]) AC_SUBST(DOCUMENTATION) -AC_ARG_WITH(ncsb-dir, - [AS_HELP_STRING([--with-ncsb-dir=DIR], - [location of Century Schoolbook fonts.])], - [NCSB_DIR=$withval], - [NCSB_DIR=""]) +GUILEv2=no +AC_ARG_ENABLE(guile2, + [AS_HELP_STRING([--enable-guile2], + [highly experimental GUILE 2 support. Default: off])], + [GUILEv2=$enableval]) + +AC_ARG_WITH(texgyre-dir, + [AS_HELP_STRING([--with-texgyre-dir=DIR], + [location of TeX Gyre fonts.])], + [TEXGYRE_DIR=$withval], + [TEXGYRE_DIR=""]) + +AC_ARG_WITH(urwotf-dir, + [AS_HELP_STRING([--with-urwotf-dir=DIR], + [location of URW++ OTF fonts.])], + [URWOTF_DIR=$withval], + [URWOTF_DIR=""]) reloc_b=no AC_ARG_ENABLE(relocation, @@ -55,49 +67,100 @@ AC_SUBST(LINK_GXX_STATICALLY) STEPMAKE_COMPILE AC_CHECK_PROG(FCLIST, fc-list, fc-list) -AC_MSG_CHECKING([New Century Schoolbook PFB files]) -AC_SUBST(NCSB_SOURCE_FILES) -AC_SUBST(NCSB_DIR) -UNCHECKED_NCSB_SOURCE_FILES="" -if test "$NCSB_DIR" != "" ; then - for f in c059013l c059016l c059033l c059036l; do - if test ! -f "$NCSB_DIR/$f.pfb"; then - STEPMAKE_WARN($NCSB_DIR does not contain $f.pfb.) +AC_MSG_CHECKING([for TeX Gyre fonts OTF files]) +AC_SUBST(TEXGYRE_DIR) +AC_SUBST(TEXGYRE_FILES) +if test "$TEXGYRE_DIR" = ""; then + if test "$FCLIST" != ""; then + TEXGYRE_FILE=`$FCLIST "TeX Gyre Schola:fontformat=CFF" file | head -n 1` + if test "$TEXGYRE_FILE" != ""; then + TEXGYRE_FILE=`echo $TEXGYRE_FILE | sed 's/\(:.*\)$//g'` + TEXGYRE_FILE=`$PYTHON "$srcdir/scripts/auxiliar/readlink.py" $TEXGYRE_FILE` + TEXGYRE_DIR=`AS_DIRNAME($TEXGYRE_FILE)` + fi + fi +fi +if test "$TEXGYRE_DIR" != "" ; then + for f in texgyreschola-regular.otf texgyreschola-italic.otf \ + texgyreschola-bold.otf texgyreschola-bolditalic.otf \ + texgyreheros-regular.otf texgyreheros-italic.otf \ + texgyreheros-bold.otf texgyreheros-bolditalic.otf \ + texgyrecursor-regular.otf texgyrecursor-italic.otf \ + texgyrecursor-bold.otf texgyrecursor-bolditalic.otf; do + if test ! -f "$TEXGYRE_DIR/$f"; then + MISSING_TEXGYRE_FILES="$MISSING_TEXGYRE_FILES $f" else - UNCHECKED_NCSB_SOURCE_FILES="$NCSB_DIR/$f.pfb $UNCHECKED_NCSB_SOURCE_FILES" + TEXGYRE_FILES="$TEXGYRE_FILES $f" fi done +fi +if test "$TEXGYRE_DIR" = "" -o "$MISSING_TEXGYRE_FILES" != ""; then + AC_MSG_RESULT(no) + STEPMAKE_ADD_ENTRY(REQUIRED,TeX Gyre fonts OTF) + if test "$TEXGYRE_DIR" = ""; then + if test "$FCLIST" = ""; then + STEPMAKE_ADD_ENTRY(REQUIRED,'(install the fc-list utility from FontConfig, or use --with-texgyre-dir)') + else + STEPMAKE_ADD_ENTRY(REQUIRED,"(make sure the fc-list utility can see them, e.g. 'sudo apt-get install fonts-texgyre', or use --with-texgyre-dir)") + fi + else + STEPMAKE_ADD_ENTRY(REQUIRED,'(these files are missing: $MISSING_TEXGYRE_FILES)') + fi else + AC_MSG_RESULT(yes) +fi +AC_MSG_CHECKING([for URW++ OTF files]) +AC_SUBST(URWOTF_DIR) +AC_SUBST(URWOTF_FILES) +if test "$URWOTF_DIR" = ""; then if test "$FCLIST" != ""; then - for style in Roman Italic "Bold Italic" Bold; do - NCSB_FILE=`$FCLIST "Century Schoolbook L:style=$style:foundry=urw:fontformat=Type 1" file \ - | head -n 1` - NCSB_FILE=`echo $NCSB_FILE | sed 's/\(:.*\)$//g'` - NCSB_FILE=`$PYTHON "$srcdir/scripts/auxiliar/readlink.py" $NCSB_FILE` - UNCHECKED_NCSB_SOURCE_FILES="$NCSB_FILE $UNCHECKED_NCSB_SOURCE_FILES" - done - NCSB_DIR=`AS_DIRNAME($NCSB_FILE)` - else - AC_MSG_RESULT(not found) - echo "Can't find Century Schoolbook files. Install FontConfig's fc-list," - echo "or use --with-ncsb-dir" - STEPMAKE_ADD_ENTRY(REQUIRED,International New Century Schoolbook fonts) + URWOTF_FILE=`$FCLIST "C059:fontformat=CFF" file | head -n 1` + if test "$URWOTF_FILE" != ""; then + URWOTF_FILE=`echo $URWOTF_FILE | sed 's/\(:.*\)$//g'` + URWOTF_FILE=`$PYTHON "$srcdir/scripts/auxiliar/readlink.py" $URWOTF_FILE` + URWOTF_DIR=`AS_DIRNAME($URWOTF_FILE)` + fi fi fi -NCSB_SOURCE_FILES="" -for f in $UNCHECKED_NCSB_SOURCE_FILES; do - if test "`grep Cyrillic "$f"`" = ""; then - STEPMAKE_WARN($f does not have Cyrillic characters.) - STEPMAKE_ADD_ENTRY(REQUIRED,International New Century Schoolbook fonts) +if test "$URWOTF_DIR" != "" ; then + for f in C059-BdIta.otf C059-Bold.otf \ + C059-Italic.otf C059-Roman.otf \ + NimbusMonoPS-Bold.otf NimbusMonoPS-BoldItalic.otf \ + NimbusMonoPS-Italic.otf NimbusMonoPS-Regular.otf \ + NimbusSans-Bold.otf NimbusSans-BoldItalic.otf \ + NimbusSans-Italic.otf NimbusSans-Regular.otf; do + if test ! -f "$URWOTF_DIR/$f"; then + MISSING_URWOTF_FILES="$MISSING_URWOTF_FILES $f" + else + URWOTF_FILES="$URWOTF_FILES $f" + fi + done +fi +if test "$MISSING_URWOTF_FILES"="NimbusSans-BoldItalic.otf NimbusSans-Italic.otf" && \ + test -f "$URWOTF_DIR/NimbusSans-BoldOblique.otf" && \ + test -f "$URWOTF_DIR/NimbusSans-Oblique.otf"; then + MISSING_URWOTF_FILES="" + URWOTF_FILES="$URWOTF_FILES NimbusSans-BoldOblique.otf NimbusSans-Oblique.otf" +fi +if test "$URWOTF_DIR" = "" -o "$MISSING_URWOTF_FILES" != ""; then + AC_MSG_RESULT(no) + STEPMAKE_ADD_ENTRY(OPTIONAL,URW++ OTF fonts) + if test "$URWOTF_DIR" = ""; then + if test "$FCLIST" = ""; then + STEPMAKE_ADD_ENTRY(OPTIONAL,'(install the fc-list utility from FontConfig, or use --with-urwotf-dir)') + else + STEPMAKE_ADD_ENTRY(OPTIONAL,"(download OTF files from 'http://git.ghostscript.com/?p=urw-core35-fonts.git;a=tree;hb=1f28a6fcd2176256a995db907d9ffe6e1b9b83e9' and put them under '~/.local/share/fonts' etc., or use --with-urwotf-dir)") + fi else - NCSB_SOURCE_FILES="$f $NCSB_SOURCE_FILES" + STEPMAKE_ADD_ENTRY(OPTIONAL,'(these files are missing: $MISSING_URWOTF_FILES)') fi -done -AC_MSG_RESULT($NCSB_SOURCE_FILES) +else + AC_MSG_RESULT(yes) +fi AC_LANG([C++]) -STEPMAKE_PYTHON(REQUIRED, 2.4) +STEPMAKE_PYTHON(REQUIRED, 2.4, 3.0) # this checks if we have GNU C by compiling a program with # __GNUC__, but that macro now unofficially means "the compiler # supports the GNU C extensions" -- the intel C compiler and clang @@ -113,7 +176,7 @@ STEPMAKE_LIB(REQUIRED) STEPMAKE_DLOPEN # Do not use bison 1.50 and 1.75. # 1.29 is required fr %locations, but I'm not sure it's enough --ns -STEPMAKE_BISON(OPTIONAL, 1.29) +STEPMAKE_BISON(REQUIRED, 1.29) STEPMAKE_FLEX(REQUIRED) STEPMAKE_FLEXLEXER(REQUIRED) STEPMAKE_FLEXLEXER_LOCATION @@ -121,8 +184,13 @@ STEPMAKE_LOCALE STEPMAKE_GETTEXT STEPMAKE_MSGFMT(REQUIRED) STEPMAKE_TEXMF(REQUIRED) -STEPMAKE_TEXMF_DIRS -STEPMAKE_GUILE_DEVEL(REQUIRED, 1.8.2) +STEPMAKE_TEXMF_DIRS(REQUIRED) +if test "$GUILEv2" = "yes" +then + STEPMAKE_GUILE_DEVEL(REQUIRED, 2.0.7, 2.3.0) +else + STEPMAKE_GUILE_DEVEL(REQUIRED, 1.8.2, 1.9.0) +fi # check for 3 typedefs added in Guile 1.9 save_CXXFLAGS="$CXXFLAGS" @@ -166,7 +234,7 @@ AC_MSG_RESULT(Must have patched GUILE rational support. See INSTALL.txt)]) CPPFLAGS="$save_CPPFLAGS" -STEPMAKE_PYTHON_DEVEL(REQUIRED) +STEPMAKE_PYTHON_DEVEL(REQUIRED, 2.4, 3.0) STEPMAKE_PATH_PROG(FONTFORGE, fontforge, REQUIRED, 20110222) @@ -198,17 +266,25 @@ AC_MSG_RESULT($rpath_b) HOST_ARCH=`$CC -dumpmachine` AC_SUBST(HOST_ARCH) -STEPMAKE_PANGO_FT2(pangoft2, REQUIRED, 1.6.0) +STEPMAKE_PANGO_FT2_WITH_OTF_FEATURE(pangoft2, OPTIONAL, 1.38.0) +if test "$have_pangoft2_with_otf_feature" != yes ; then + STEPMAKE_PANGO_FT2(pangoft2, REQUIRED, 1.6.0) +fi STEPMAKE_FONTCONFIG(fontconfig, REQUIRED, 2.4.0) STEPMAKE_FREETYPE2(freetype2, REQUIRED, 2.1.10) STEPMAKE_WINDOWS # guile executable for some scripts -STEPMAKE_GUILE(OPTIONAL) +if test "$GUILEv2" = "yes" +then + STEPMAKE_GUILE(OPTIONAL, 2.0.7, 2.3.0) +else + STEPMAKE_GUILE(OPTIONAL, 1.8.2, 1.9.0) +fi -# perl for help2man. -STEPMAKE_PERL(OPTIONAL) +# perl for help2man and for mf2pt1.pl +STEPMAKE_PERL(REQUIRED) ## Optional tools for building documentation, website, extra fonts. if test "$DOCUMENTATION" = "yes"; then @@ -219,12 +295,45 @@ fi STEPMAKE_PATH_PROG(GHOSTSCRIPT, gs, $DOCUMENTATION_REQUIRED, 8.60) +AC_SUBST(GS920) +AC_SUBST(EXTRACTPDFMARK) +AC_SUBST(USE_EXTRACTPDFMARK) +STEPMAKE_PROGS(GS920, gs, OPTIONAL, 9.20) +STEPMAKE_PROGS(EXTRACTPDFMARK, extractpdfmark, OPTIONAL) +req=`STEPMAKE_NUMERIC_VERSION(9.20)` +USE_EXTRACTPDFMARK=yes +if test "$GS920_VERSION" -lt "$req"; then + GS920= + USE_EXTRACTPDFMARK=no +fi +if test "$EXTRACTPDFMARK" != "extractpdfmark"; then + EXTRACTPDFMARK= + USE_EXTRACTPDFMARK=no +fi +if test "$USE_EXTRACTPDFMARK" != "yes"; then + STEPMAKE_ADD_ENTRY(OPTIONAL, + ["(Optionally using Ghostscript >= 9.20 together with"]) + STEPMAKE_ADD_ENTRY(OPTIONAL, + [" Extract PDFmark can significantly reduce the disk space required"]) + STEPMAKE_ADD_ENTRY(OPTIONAL, + [" for building the documentation and the final PDF files.)"]) +fi + STEPMAKE_PROGS(MAKEINFO, makeinfo, REQUIRED, 4.11) STEPMAKE_PROGS(TEXI2HTML, texi2html, $DOCUMENTATION_REQUIRED, 1.82) STEPMAKE_PROGS(DBLATEX, dblatex, $DOCUMENTATION_REQUIRED, 0.1.4) STEPMAKE_PROGS(BIBTEX, bibtex, $DOCUMENTATION_REQUIRED) -STEPMAKE_PROGS(PDFLATEX, pdflatex, $DOCUMENTATION_REQUIRED) -STEPMAKE_PROGS(PDFTEX, pdfetex pdftex etex, $DOCUMENTATION_REQUIRED) +STEPMAKE_PROGS(PDFLATEX, xelatex pdflatex, $DOCUMENTATION_REQUIRED) +if test "$PDFLATEX" = "xelatex"; then + STEPMAKE_PROGS(PDFTEX, xetex, $DOCUMENTATION_REQUIRED) + if test "$PDFTEX" = "xetex"; then + # For avoiding PDF destination name replacement. + PDFTEX=$ugh_ugh_autoconf250_builddir/scripts/build/out$CONFIGSUFFIX/xetex-with-options + PDFLATEX=$ugh_ugh_autoconf250_builddir/scripts/build/out$CONFIGSUFFIX/xelatex-with-options + fi +else + STEPMAKE_PROGS(PDFTEX, pdfetex pdftex etex, $DOCUMENTATION_REQUIRED) +fi STEPMAKE_PROGS(TEXI2PDF, texi2pdf, $DOCUMENTATION_REQUIRED) STEPMAKE_PROGS(TEXINDEX, texindex, $DOCUMENTATION_REQUIRED) AC_MSG_CHECKING(for epsf.tex)