# -*- shell-script -*-

# ancient LilyPond releases: lilypond-1.6
# archive=ftp://lilypond.org/pub/LilyPond/v1.6

# stable LilyPond releases: lilypond-1.8
# archive=ftp://lilypond.org/pub/LilyPond/v1.8

# LilyPond mknetrel overrides
# To use this, do something like:
cat >/dev/null <<EOC

   wget -P/var/tmp ftp://lilypond.org/pub/LilyPond/v1.8/lilypond-1.8.0.tar.gz
   rm -rf /home/netrel/src/lilypond-*
   mkdir -p /home/netrel/src && cd /home/netrel/src
   ## TODO: look at pimport
   tar xzf /var/tmp/lilypond-*
   mv lilypond-* $(echo lilypond-*)-1
   cd -
   ./bin/mknetrel -xXC lilypond

EOC

# sover=14

patch=$mknetrel_root/patch
if iscygwin; then
    true
else 
    uploads=$here/uploads/$base && mkdir -p $uploads/
    [ "$ABI" = "1.5" ] && uploads=$here/uploads-development/$base && mkdir -p $uploads/
    tarstem=$uploads/$package
fi

sub_packages="doc"
old_path=$PATH


# copy and include extra mknetrel stuff
extras="doc patch auto cross split"
for i in $extras; do
    f=mknetrel.$i
    [ -r $extra/$f ] && cp -pv $extra/$f $src/cygwin/$f
    . $src/cygwin/$f
done


needdevoflags () {
    return 1
}


preconfig () { # aka libtool_woes ()

    # Add to mknetrel?
    patchsrc 

    ## autoupdate

    cd $build || exit 1

    GUILE=1.6.4
    cat > guile-config <<EOF
[ "\$1" == "--version" ] && echo "guile-config - Guile version $GUILE"
[ "\$1" == "compile" ] && echo "-I$cygwin_prefix/include"
[ "\$1" == "link" ] && echo "-L$cygwin_prefix/lib -lguile"
exit 0
EOF
    chmod 755 guile-config
    PATH=$(pwd):$PATH

    export CFLAGS="-fpermissive"
    if [ "$ABI" != "1.5" ];then
	export LDFLAGS="$cygwin_prefix/bin/cygkpathsea-3abi13.dll"
    fi
    ##opt='-O2 -g' LDFLAGS='"$cygwin_prefix/bin/libpython2.2.dll"
    rm -f config.cache
}

postconfig () {
    # Configure for build, for generating doc
    rm -f config.cache
    export HOST_CC=gcc
    export HOST_CXX=g++
    if [ "$ABI" != "1.5" ]; then
	HOST_CC=gcc-2.95
	HOST_CXX=g++-2.95
	(cd $src && ln -s GNUmakefile.in GNUmakefile)
    fi
    (PATH="$old_path" \
	PATH="$HOME/usr/pkg/guile-1.6/bin:$PATH" \
	CFLAGS="-O2 -g" \
	CC=$HOST_CC \
	CXX=$HOST_CXX \
	$src/configure --prefix=/usr --enable-config=for-build)
}

prebuild () {
    for i in $sub_packages; do
	rm -rf $inst-$i
	mkdir -p $inst-$i || exit 1
    done
    
    # Build for build, generating doc
    cd $build || exit 1
    
    #PATH=/bin:/usr/bin:$PATH make conf=for-build all doc html-doc || exit 1
    PATH=/bin:/usr/bin:$PATH make conf=for-build all doc web || exit 1
    for i in $(find . -path "out-for-build/*.1"); do
	cp -pv $i $(dirname $(dirname $i))/$(basename $i)
    done

    mkdir -p mf/out
    cp -pv mf/out-for-build/* mf/out
    
    if false; then #[ "$ABI" != "1.5" ]; then
	addmakeflags MAKE_PFA_FILES=1 ' ' LDFLAGS="$cygwin_prefix/bin/libpython2.2.dll" ' ' 'target=i686-pc-cygwin'
    else
	addmakeflags MAKE_PFA_FILES=1 ' ' LDFLAGS="$cygwin_prefix/bin/libpython2.3.dll" ' ' 'target=i686-pc-cygwin'
    fi
}

preinstall () {
    cd $build || exit 1
    cp -v scripts/out-for-build/midi2ly.1 scripts/out
    cp -v lily/out-for-build/lilypond.1 lily/out
    
    if false; then # [ "$ABI" != "1.5" ]; then
	addmakeflags MAKE_PFA_FILES=1 ' ' LDFLAGS="$cygwin_prefix/bin/libpython2.2.dll" ' ' 'target=i686-pc-cygwin'
    else
	addmakeflags MAKE_PFA_FILES=1 ' ' LDFLAGS="$cygwin_prefix/bin/libpython2.3.dll" ' ' 'target=i686-pc-cygwin'
    fi
}

postinstall () {
    fixdoc
    
    mkdir -p $inst-doc/$docprefix
    cd $build || exit 1
    
    make conf=for-build webdir=$inst-doc/$packagedocdir web-install

    ## copy READMEs etc

    cd $src || exit 1
    install -d -m755 $inst/$packagedocdir

    ## Generic READMEs
    find . -maxdepth 1 -type f -exec cp -pv \{\} $inst/$packagedocdir \;

    ## Cygwin readmes
    cygwin=cygwin
    cd $src || exit 1
    install -m644 $cygwin/changelog $inst/$cygdocdir/changelog.Cygwin
    install -d -m755 $inst/$prefix/doc/Cygwin
    #install -m644 $cygwin/README $inst/$cygdocdir/Cygwin/$package.README

    cd $build || exit 1
    install -m644 $cygwin/out/README $inst/$packagedocdir/README.Cygwin
    install -m644 $cygwin/out/README $inst/$cygdocdir/$package.README

    ## copy examples
    cd $src || exit 1
    cp -prv input $inst/$packagedocdir

    cd $inst-doc/$packagedocdir &&
    ln -s $(find html/Documentation -name '*.ps.gz') .
}

