[Top][All Lists]
[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