X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=configure.in;h=8a7a12c52245ddefed5a375c860a47b04f3de32a;hb=0ff254d87aedf11e5e35f06529a93beffcaa0de3;hp=ee5bc6a4f7374a709dfcda8ec0dde947832c3d70;hpb=2d15ed5f550100cc7427ed4585625216d35708d6;p=lilypond.git diff --git a/configure.in b/configure.in index ee5bc6a4f7..8a7a12c522 100644 --- a/configure.in +++ b/configure.in @@ -1,248 +1,206 @@ -dnl -*-shell-script-*- -dnl Process this file with autoconf to produce a configure script. +dnl configure.in -*-shell-script-*- +dnl Process this file with autoconf to produce a configure script. -AC_INIT(flower/choleski.cc) +# Bootstrap the init proces. +AC_INIT +# Bootstrap StepMake configure +# For user package: +AC_CONFIG_AUX_DIR([stepmake/bin]) -if test x$srcdir != x.; then - echo Please look in the INSTALL instructions for - echo directions for multi-architecture building - - AC_LILY_WARN(This package does not support --srcdir!) -fi +# For stepmake package: +# AC_CONFIG_AUX_DIR(bin) -# if given here, these vars are initted at the checking point. -if test x$host = xNONE; then - OUTDIR_NAME=${OUTDIR_NAME-"out"} -else - OUTDIR_NAME=${OUTDIR_NAME-"out-$host"} -fi -printing_b=no -checking_b=yes -debug_b=yes -optimise_b=no -profile_b=no - -AC_LANG_CPLUSPLUS - -AC_ARG_ENABLE(printing, - [ enable-printing turn on debug printing], - [printing_b=$enableval]) - - -AC_ARG_ENABLE(checking, - [ enable-checking set runtime checks (assert calls). Default: on], - [checking_b=$enableval] ) - -AC_ARG_ENABLE(debugging, - [ enable-debugging set debug info. Default: on], - [debug_b=$enableval]) - -AC_ARG_ENABLE(optimise, - [ enable-optimise use maximal speed optimisations. Default: off], - [optimise_b=$enableval]) - -AC_ARG_ENABLE(profiling, - [ enable-profiling compile with gprof support. Default: off], - [profile_b=$enableval]) - -AC_ARG_ENABLE(mingw-prefix, - [ mingw-prefix=DIR set the mingw32 directory (standalone windows32 exes)], - [MINGWPREFIX=$enableval], - [MINGWPREFIX=no]) - -AC_ARG_ENABLE(tex-prefix, - [ tex-prefix=DIR set the tex-directory to find TeX subdirectories. (default: PREFIX)], - [TEXPREFIX=$enableval], - [TEXPREFIX=auto] ) - -AC_ARG_ENABLE(tex-dir, - [ tex-dir=DIR set the directory to put LilyPond TeX files in. ], - [TEXDIR=$enableval], - [TEXDIR=auto] ) - -AC_ARG_ENABLE(mf-dir, - [ mf-dir=DIR set the directory to put LilyPond MetaFont files in. (obsolete)], - [MFDIR=$enableval], - [MFDIR=auto]) - -AC_ARG_ENABLE(out-dir, - [ out-dir set the directory for machine generated files. Default out or out-HOST], - [OUTDIR_NAME=$enableval] - []) - -if test $profile_b = yes; then - EXTRA_LIBES="-pg" - DEFINES="$DEFINES -pg" -fi - -if test $printing_b = no; then - DEFINES="$DEFINES -DNPRINT=1" -fi - -if test $debug_b = yes; then - DEFINES="$DEFINES -g" -fi -if test $checking_b = no; then - DEFINES="$DEFINES -DNDEBUG=1" -fi +STEPMAKE_INIT -# 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 +# List a file that identifies your package. +AC_CONFIG_SRCDIR([lily/main.cc]) -if test $optimise_b = yes; then - DEFINES="$DEFINES -finline-functions -O2 -DSTRING_UTILS_INLINED" -fi +# Move to aclocal.m4? +AC_CONFIG_HEADER([$CONFIGFILE.hh:config.hh.in]) -if test "x$OSTYPE" = "xWindows_NT"; then - LN=cp # hard link does not work under cygnus-nt (yet?) - ZIP="zip -r -9" # -else - LN=ln - ZIP="zip -r -9" -fi +# Uncomment the configuration options your package needs. + +DOCUMENTATION=yes +AC_ARG_ENABLE(documentation, + [ --enable-documentation build Documentation. Default: on], + [DOCUMENTATION=$enableval]) +AC_SUBST(DOCUMENTATION) + +gui_b=no +AC_ARG_ENABLE(gui, + [ --enable-gui compile with experimental GNOME output. Default: off], + [gui_b=$enableval]) + + +AC_ARG_WITH(ncsb-dir, + [ --with-ncsb-dir=DIR location of Century Schoolbook fonts.], + [NCSB_DIR=$withval], + [NCSB_DIR=""]) -dnl COMPILEINFO="$HOST $host $TARGET $target" -AUTOHEADER="This file was automatically generated by configure" -CPPFLAGS=${CPPFLAGS:-""} # we don't want -g -O junk -CXXFLAGS=${CXXFLAGS:-""} # we don't want -g -O junk - -AC_PROG_CXX -AC_PROG_RANLIB -AC_PROG_INSTALL -AC_CHECK_PROGS(TAR, tar, error) -AC_CHECK_PROGS(FIND, find, error) - -dnl should check out -print -AC_CHECK_SEARCH_RESULT($FIND, \`find\'. Please use --enable-tex-dir) - - -AC_SUBST(OUTDIR_NAME) -AC_SUBST(CXXFLAGS) -AC_SUBST(CPPFLAGS) -AC_SUBST(CXX) -AC_SUBST(ICFLAGS) -AC_SUBST(ILDFLAGS) -AC_SUBST(DEFINES) -AC_SUBST(COMPILEINFO) -AC_SUBST(AUTOHEADER) -AC_SUBST(BISON) -AC_SUBST(FLEX) -AC_SUBST(LN) -AC_SUBST(PERL) -AC_SUBST(PYTHON) -AC_SUBST(ZIP) -AC_SUBST(TEXPREFIX) -AC_SUBST(TEXDIR) -AC_SUBST(MFDIR) -AC_SUBST(DIR_DATADIR) -AC_SUBST(EXTRA_LIBES) - -AC_CHECK_PROGS(BISON, bison, error) -AC_CHECK_PROGS(FLEX, flex, error) -AC_CHECK_PROGS(MAKE, make, error) -AC_PATH_PROG(PERL, perl, error) -AC_PATH_PROG(PYTHON, python, error) -AC_CHECK_PROGS(PODMAN, pod2man, error) - - -if test "x$TEXPREFIX" = xauto ; then - AC_TEX_PREFIX(TEXPREFIX) +reloc_b=no +AC_ARG_ENABLE(relocation, + [ --enable-relocation compile with dynamic relocation. Default: off], + [reloc_b=$enableval]) + +LINK_GXX_STATICALLY=no +AC_ARG_ENABLE(static-gxx, + [ --enable-static-gxx link libstdc++.a statically. Default: off], + [LINK_GXX_STATICALLY=$enableval]) +AC_SUBST(LINK_GXX_STATICALLY) + +# must come before any header checks +STEPMAKE_COMPILE + +# os.path.realpath() requires python 2.2 and unix +STEPMAKE_PYTHON(REQUIRED, 2.2) +AC_CHECK_PROG(FCMATCH, fc-match, fc-match) +AC_MSG_CHECKING([New Century Schoolbook PFB files]) +AC_SUBST(NCSB_SOURCE_FILES) +if test "$NCSB_DIR" != "" ; then + NCSB_SOURCE_FILES="" + for f in c059013l c059016l c059033l c059036l; do + if test ! -f "$NCSB_DIR/$f.pfb"; then + AC_MSG_WARN($NCSB_DIR does not contain $f.pfb.) + else + NCSB_SOURCE_FILES="$NCSB_DIR/$f.pfb $NCSB_SOURCE_FILES" + fi + done else - find_texprefix=$TEXPREFIX + if test "$FCMATCH" != ""; then + for style in Roman Italic "Bold Italic" Bold; do + NCSB_FILE=`$FCMATCH --verbose "Century Schoolbook L:style=$style" | grep 'file:'` + + NCSB_FILE=`echo $NCSB_FILE | sed 's/^.*"\(.*\)".*$/\1/g'` + NCSB_FILE=`$PYTHON "$srcdir/buildscripts/readlink.py" $NCSB_FILE` + NCSB_SOURCE_FILES="$NCSB_FILE $NCSB_SOURCE_FILES" + done + else + AC_MSG_RESULT(not found) + echo "Can't find Century Schoolbook files. Install FontConfig's fc-match," + echo "or use --with-ncsb-dir" + fi fi - -if test "x$MFDIR" = xauto; then - AC_MF_SUBDIR(MFDIR) +AC_MSG_RESULT($NCSB_SOURCE_FILES) + + + +STEPMAKE_PYTHON(REQUIRED, 2.4) +STEPMAKE_GCC(REQUIRED, 4.0) + +STEPMAKE_CXX(REQUIRED) +STEPMAKE_GXX(REQUIRED, 4.0) +STEPMAKE_CXXTEMPLATE +STEPMAKE_STL_DATA_METHOD +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_FLEX(REQUIRED) +STEPMAKE_FLEXLEXER(REQUIRED) +STEPMAKE_FLEXLEXER_LOCATION +AC_LANG_C +STEPMAKE_LOCALE +STEPMAKE_GETTEXT +STEPMAKE_MSGFMT(REQUIRED) +STEPMAKE_TEXMF(REQUIRED) +STEPMAKE_TEXMF_DIRS + +## should check for 1.8.2 ? +STEPMAKE_GUILE_DEVEL(REQUIRED, 1.8.0) + + +## check rational bugfix. +save_CPPFLAGS="$CPPFLAGS" +CPPFLAGS="$GUILE_CFLAGS $CPPFLAGS" +AC_MSG_CHECKING(GUILE rational bugfix) +AC_TRY_CPP( +#include +#ifdef SCM_FRACTION_REDUCED_BIT +#error +#endif +, +AC_MSG_RESULT(ok), +REQUIRED="$REQUIRED GUILE-with-rational-bugfix" +AC_MSG_RESULT(Must have patched GUILE rational support. See INSTALL.txt)) +CPPFLAGS="$save_CPPFLAGS" + + +STEPMAKE_MAKEINFO(REQUIRED, 4.8) +STEPMAKE_PYTHON_DEVEL(REQUIRED) + +STEPMAKE_PATH_PROG(GHOSTSCRIPT, gs, OPTIONAL, 8.15) + +STEPMAKE_PROGS(MFTRACE, mftrace, REQUIRED, 1.1.19) +STEPMAKE_PATH_PROG(FONTFORGE, fontforge, REQUIRED, 20050624) + +AC_CHECK_HEADERS([assert.h grp.h libio.h pwd.h sys/stat.h wchar.h]) +AC_LANG_PUSH(C++) +AC_CHECK_HEADERS([sstream]) +AC_LANG_POP(C++) +AC_HEADER_STAT +AC_FUNC_MEMCMP +AC_FUNC_VPRINTF +AC_CHECK_FUNCS([chroot fopencookie funopen gettext isinf mbrtowc memmem snprintf vsnprintf wcrtomb]) +AC_CHECK_HEADERS([utf8/wchar.h], LIBS="$LIBS -lutf8") +AC_SEARCH_LIBS(mbrtowc, [mingwex msvcp60]) + +STEPMAKE_PROGS(PKG_CONFIG, pkg-config, REQUIRED, 0.9.0) + +if test "$gui_b" = "yes"; then + STEPMAKE_GTK2(gtk+-2.0, REQUIRED, 2.4.0) fi - -if test "x$TEXDIR" = xauto ; then - AC_TEX_SUBDIR(TEXDIR) + +if test "$reloc_b" = "yes"; then + AC_DEFINE(ARGV0_RELOCATION) fi -AC_JUNK_ARGS( [if test "x$MFDIR" = xauto; then - AC_MF_SUBDIR(MFDIR) - fi] -) - -AC_CHECK_SEARCH_RESULT($MAKE, GNU make, You should install GNU make) -AC_CHECK_SEARCH_RESULT($BISON, bison, Please install Bison, 1.25 or better) -AC_CHECK_SEARCH_RESULT($PERL, perl, You should install Perl, version 5 or better) -AC_CHECK_SEARCH_RESULT($PYTHON, python, You should install Python) -AC_CHECK_SEARCH_RESULT($PODMAN, pod, You should install Perl, version 5 or better) -AC_CHECK_SEARCH_RESULT( $FLEX, flex, Please install Flex, 2.5 or better) - - -if test $MAKE != "error" ; then - $MAKE -v| grep GNU > /dev/null - if test "$?" = 1 - then - AC_LILY_WARN(Please install *GNU* make) - fi -fi - -if test $BISON != "error"; then - bison_version=`$BISON --version| sed 's/^.*version 1.//g' ` - if test $bison_version -lt 25; then - AC_LILY_WARN(Your bison is too old (1.$bison_version). Please install 1.25) - fi -fi +HOST_ARCH=`$CC -dumpmachine` +AC_SUBST(HOST_ARCH) -if $CXX --version | grep '2\.7' > /dev/null -then - true -else - AC_LILY_WARN(can't find g++ 2.7) -fi +STEPMAKE_PANGO_FT2(pangoft2, REQUIRED, 1.6.0) +#STEPMAKE_PANGO(pango, REQUIRED, 1.6.0) +STEPMAKE_FONTCONFIG(fontconfig, REQUIRED, 2.2.0) +STEPMAKE_FREETYPE2(freetype2, REQUIRED, 0) -AC_CHECK_HEADER(FlexLexer.h, true, - AC_LILY_WARN(can't find flex header. Please install Flex headers correctly)) +STEPMAKE_WINDOWS -for a in `find . -type d -and -not -name 'out*' -print`; do - if test ! -d $a/$OUTDIR_NAME; then - mkdir $a/$OUTDIR_NAME - fi -done +## Optional tools for building documentation, website, extra fonts. -AC_CONFIG_SUBDIRS(flower) +# guile executable for some scripts +STEPMAKE_GUILE(OPTIONAL) - -AC_OUTPUT(make/$OUTDIR_NAME/Configure_variables.make:make/Configure_variables.make.in - Makefile:make/Toplevel.make.in) +# perl for help2man. +STEPMAKE_PERL(OPTIONAL) -touch make/$OUTDIR_NAME/Site.make +# New makeinfo for multi-page website docs Simply always require new +# makeinfo should avoid bug reports; if people want to build lily +# without the docs, they can find this comment and use an older +# makeinfo--but hopefully won't report makeinfo problems. +STEPMAKE_PROGS(MAKEINFO, makeinfo, REQUIRED, 4.8) -cat << END -For making everything, do: +AC_DEFINE_UNQUOTED(FLOWER_VERSION, "${FULL_FLOWER_VERSION}") - make # GNU make -or if you used --outdir=blabla +# must also have local.make if configure fails. +touch local.make - make OUTDIR_NAME=blabla - -If you want to make site-wide extensions to the makefiles, please use +# Gather requirements and generate output. +STEPMAKE_END - make/$OUTDIR_NAME/Site.make - -END +test -n "$CONFIGURATION" && mc=" conf=$CONFIGURATION" || mc="" -if test x$warn_b = "xyes" ; then cat <