# -*- shell-script -*- sub_packages="doc" [ "$cygwin" == "mingw" ] && sub_packages="doc extra" depends="libfontconfig1 libfreetype6 libguile16 libintl3 libpango1" build_depends="mingw-devel gettext-devel guile-devel pango-devel" v=$(expr "$ver" : "\(.*\)-[0-9]*") save_PATH="$PATH" # copy and include extra mknetrel stuff . $src/$cygwin/mknetrel.extras || . $mknetrel/extras doc () { # doc works, but take too long to build each time [ "$cygwin" == "mingw" ] && return 1 return 0 } preconfig () { extras_preconfig [ "$cygwin" == "mingw" ] && if grep 'PYTHON_DEVEL(REQUIRED)' $src/configure.in; then sed -i~ -e 's/PYTHON_DEVEL(REQUIRED)/PYTHON_DEVEL(OPTIONAL)/' \ $src/configure.in fi [ "$cygwin" == "mingw" ] && cd $src && ./autogen.sh --noconfigure cd $build || exit 1 # cross-compiling: configure for build-host if ! iscygwin; then rm -f config.cache export HOST_CC=${HOST_CC:-gcc} export HOST_CXX=${HOST_CXX:-g++} export HOST_PKG_CONFIG=${HOST_PKG_CONFIG:-pkg-config} export HOST_PKG_CONFIG_PATH=${HOST_PKG_CONFIG_PATH:-} export HOST_FREETYPE_CONFIG=${HOST_FREETYPE_CONFIG:-freetype-config} (PATH="$build:$save_PATH" \ CFLAGS="-O2 -g" \ CPPFLAGS="" \ CC=$HOST_CC \ CXX=$HOST_CXX \ LDFLAGS="" \ PKG_CONFIG=$HOST_PKG_CONFIG \ PKG_CONFIG_PATH=$HOST_PKG_CONFIG_PATH \ FREETYPE_CONFIG=$HOST_FREETYPE_CONFIG \ $src/configure --prefix=$prefix --enable-config=for-build) fi GUILE=$(GUILE_LOAD_PATH=$cygwin_prefix/share/guile/* $cygwin_prefix/bin/guile-config --version 2>&1 | awk '{print $NF}') cat > $target-guile-config < config-console.make #cp config.hh config-console.hh mkdir -p python/out python/out-console touch python/out/midi.lo python/out/midi.so python/out/midi.dll touch python/out-console/midi.lo python/out-console/midi.so python/out-console/midi.dll fi # cross-compiling: build for build-host, generate doc if ! iscygwin; then cd $build || exit 1 if doc; then args="all doc web" else args="all" fi (PATH="$build:$save_PATH" \ CFLAGS="-O2 -g" \ CPPFLAGS="" \ CC=$HOST_CC \ CXX=$HOST_CXX \ LDFLAGS="" \ eval make conf=for-build $args) || exit 1 # fake mf and texi mkdir -p mf/out cp -pv mf/out-for-build/* mf/out mkdir -p Documentation/user/out cp -pv Documentation/user/out-for-build/*{tely,texi} Documentation/user/out fi if [ "$cygwin" == "mingw" ]; then # fake mf and texi mkdir -p mf/out-console cp -pv mf/out-for-build/* mf/out-console mkdir -p Documentation/user/out-console cp -pv Documentation/user/out-for-build/*{tely,texi} Documentation/user/out-console # fake manual pages, only works without --enable-config mkdir -p scripts/out-console cp scripts/out-for-build/*.1 scripts/out-console mkdir -p lily/out-console cp lily/out-for-build/*.1 lily/out-console make conf=console || exit 1 fi addmakeflags "target=$target" ' ' if [ -f "$cygwin_prefix/bin/libpython2.4.dll" ]; then addmakeflags LDFLAGS="$cygwin_prefix/bin/libpython2.4.dll" ' ' fi if iscygwin && doc; then addmakeflags all ' ' doc ' ' web ' ' fi } preinstall () { extras_preinstall if iscygwin && doc; then addmakeflags webdir="$inst-doc/$packagedocdir" ' ' web-install fi } postinstall () { if [ "$cygwin" == "mingw" ]; then cp $inst/usr/share/lilypond/$v/python/* $inst/usr/bin install -m755 $build/lily/out/lilypond $inst/usr/bin/lilypond-windows install -m755 $build/lily/out-console/lilypond $inst/usr/bin/ fi extras_postinstall if [ "$cygwin" == "mingw" ]; then for i in $inst/usr/bin/*; do m=$(file -b $i) if echo "$m" | grep "guile"; then mv $i $i.scm elif echo "$m" | grep "python"; then mv $i $i.py fi done fi cd $build || exit 1 if ! iscygwin && doc; then make conf=for-build webdir=$inst-doc/$packagedocdir web-install fi # txt files reside elsewhere cd $build/Documentation/topdocs/out install -m644 AUTHORS.txt INSTALL.txt NEWS.txt README.txt $inst/$packagedocdir ## copy examples cd $src || exit 1 cp -prv input $inst/$packagedocdir rm -rf $(find $inst/$packagedocdir -name 'CVS') rm -f $(find $inst/$packagedocdir -name 'SCons*') rm -f $(find $inst/$packagedocdir -name 'GNUmakefile*') rm -rf $(find $inst/usr/share/lilypond -name '*.pyc') rm -f $inst/usr/share/lilypond/$v/tex/texinfo.tex if [ "$cygwin" == "mingw" ]; then find $inst -name '*ly' | xargs unix2dos fi install -d -m755 $inst-doc/$infodir/lilypond if doc; then cd $inst-doc/$infodir/lilypond && ln -sf ../../doc/$base-$ver/Documentation/user/out-www/*png . fi } doc_split () { extras_doc_split mkdir -p ./$packagedocdir/input mv $inst/$packagedocdir/input/{no-notation,regression,test,tutorial} ./$packagedocdir/input mkdir -p ./$prefix/share/lilypond/$v/fonts mv $inst/$prefix/share/lilypond/$v/fonts/source ./$prefix/share/lilypond/$v/fonts } extra_name () { echo lilypond-extra } extra_split () { # should be in devel... mkdir -p ./$prefix/share/lilypond/$v for i in make python tex vim; do #for i in make tex vim; do mv $inst/$prefix/share/lilypond/$v/$i ./$prefix/share/lilypond/$v done mkdir -p ./$prefix/share/lilypond/$v/fonts for i in source svg tfm; do mv $inst/$prefix/share/lilypond/$v/fonts/$i ./$prefix/share/lilypond/$v/fonts done mkdir -p ./$prefix/share for i in locale omf; do mv $inst/$prefix/share/$i ./$prefix/share done }