lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Wish to give up my Cygwin maintainer position


From: Bertalan Fodor
Subject: Re: Wish to give up my Cygwin maintainer position
Date: Wed, 03 Aug 2005 13:22:34 +0200
User-agent: Mozilla Thunderbird 1.0.2 (Windows/20050317)


Bertalan: I'd apreciate if you could give me a few pointers of how you
have done things, just to easy things for me.
- I used mknetrel. My last cygwin/mknetrel is attached. (No patch yet, sorry.) - I also attach a shell script that describes quite well what is missing from mknetrel, and what problems there were. (For example in cygwin lilypond.info must not be in a lilypond subdirectory, there should not be a postremove script - because bash may be uninstalled before the postremove script - etc.)

Bert
# -*- 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]*")
v=$ver

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

    if [ "$cygwin" == "mingw" ]; then
        cp /usr/include/FlexLexer.h .
        mkdir python2.3
        cp /usr/include/python2.3/Python.h python2.3
    fi

    GUILE=$($cygwin_prefix/bin/guile-config --version 2>&1 | awk '{print $NF}')
    cat > $target-guile-config <<EOF
[ "\$1" == "--version" ] && echo "$target-guile-config - Guile version $GUILE"
[ "\$1" == "compile" ] && echo "-I$cygwin_prefix/include"
[ "\$1" == "link" ] && echo "-L$cygwin_prefix/lib -lguile -lgmp"
exit 0
EOF
    chmod 755 $target-guile-config
    export PATH=.:$PATH
    build_cxx="$build_cxx -I$(pwd)"
    if [ "$cygwin" == "mingw" ]; then
        CONFIGOPTS="--without-kpathsea $CONFIGOPTS"
        CPPFLAGS="-DARGV0_RELOCATION=1 $CPPFLAGS"
        # There's a problem with inlining the string utils.
        # The -O2 flag is still passed by default through opt.
        CONFIGOPTS="--disable-optimising $CONFIGOPTS"
        ## debugging
        ##opt='-g'
    fi
    :
}

prebuild () {
    extras_prebuild

    # shortcircuit python for mingw
    if [ "$cygwin" == "mingw" ]; then
        mkdir -p python/out
        touch python/out/midi.lo python/out/midi.so python/out/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
        
        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

    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 () {
    extras_postinstall

    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 () {
    mkdir -p 
    # should be in devel...
    mkdir -p ./$prefix/share/lilypond/$v
    for i in make python tex vim; do
        mv $inst/$prefix/share/lilypond/$v/$i ./$prefix/share/lilypond/
    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/fonts
    done

    mkdir -p ./$prefix/share
    for i in locale omf; do
        mv $inst/$prefix/share/$i ./$prefix/share
    done
}
#!/bin/bash
echo USAGE: ./mybuild 2.6.0 1
if [ "$1" == "" ] ; then exit
fi
cd $1-$2
echo Extracting lilypond-$1-$2.tar.bz2
tar xjf lilypond-$1-$2.tar.bz2
cd lilypond-doc
echo Extracting lilypond-doc-$1-$2.tar.bz2
tar xjf lilypond-doc-$1-$2.tar.bz2
echo Moving info files
mv usr/share/info/lilypond/*.info* usr/share/info
rm -rf usr/share/lilypond/fonts
echo Moving mf sources
mv usr/share/lilypond/$1/fonts/source ../usr/share/lilypond/$1/fonts
rm -rf usr/share/lilypond
echo Creating lilypond-doc-$1-$2
tar cjf lilypond-doc-$1-$2.tar.bz2 usr
rm -rf usr
cd ..
echo Changing postremove to preremove
mkdir etc/preremove
mv etc/postremove/postremove-lilypond.sh etc/preremove/preremove-lilypond.sh
rm -rf etc/postremove
echo Creating lilypond-$1-$2
tar cjf lilypond-$1-$2.tar.bz2 usr etc
rm -rf usr
rm -rf etc

reply via email to

[Prev in Thread] Current Thread [Next in Thread]