]> git.donarmstrong.com Git - lilypond.git/blob - buildscripts/guile-gnome.sh
*** empty log message ***
[lilypond.git] / buildscripts / guile-gnome.sh
1 #!@BASH@
2
3 # WIP - this (the guile-gnome canvas) is broken ATM.
4
5 # guile-gnome.sh -- download, compile, install g-wrap, guile-gnome,
6 # pango
7
8 # LilyPond has an experimental gnome canvas output backend -- hackers
9 # only.  This depends on rather new versions of guile-gnome, g-wrap
10 # and pango.
11
12 set -ex
13
14 # Where user built stuff will be installed
15 OPT=$HOME/usr/pkg
16 ## when using GUILE CVS, make a slib/require like so:
17 ## cd ~/usr/pkg/guile/share/guile/1.7 && ln -s /usr/share/guile/1.6/slib .
18 ## cd && guile -c "(use-modules (ice-9 slib)) (require 'new-catalog)"
19 ## otherwise, this may fix it...
20 SLIB_PATH=`locate slib/require.scm | head -1 | sed -s 's/require.scm//g'`
21
22 # What extra modules to pull (eg: EXTRA="libgnomecanvas libwnck")
23 EXTRA=${EXTRA-libgnomecanvas}
24 GGVERSION=2.5.995
25
26 export AUTOMAKE=automake-1.8
27 export ACLOCAL=aclocal-1.8
28 export AUTOCONF=$(which autoconf2.50)
29 export AUTOHEADER=$(which autoheader2.50)
30
31 export PKG_CONFIG_PATH
32 export LD_LIBRARY_PATH
33 export GUILE_LOAD_PATH
34
35 if [ -z "$AUTOCONF" ]; then
36     unset AUTOCONF
37 fi
38 if [ -z "$AUTOHEADER" ]; then
39     unset AUTOHEADER
40 fi
41
42
43 # test: the name of our download and build directory
44 rm -rf test
45 mkdir test
46 cd test
47
48 ## 1.  install gnome-devel
49 ##     - Debian/unstable: apt-get install gnome-devel
50 ##     - ...
51
52 ## 2.  get pango CVS
53
54 PKG_CONFIG_PATH=$OPT/pango/lib/pkgconfig:$PKG_CONFIG_PATH
55 LD_LIBRARY_PATH=$OPT/pango/lib:$LD_LIBRARY_PATH
56
57 mkdir -p gnome/CVS
58 if ! pkg-config --atleast-version=1.5.1 pango; then
59     cd gnome
60     if [ -n "$BLOEDIGE_RAND" ]; then
61         echo ":pserver:anonymous@anoncvs.gnome.org:/cvs/gnome" > CVS/Root
62         echo "." > CVS/Repository
63         cvs -z3 checkout -P pango
64     else
65         wget -N ftp://ftp.gtk.org/pub/gtk/v2.5/pango-1.5.2.tar.gz
66         tar -xzf pango-1.5.2.tar.gz
67         ln -s pango-1.5.2 pango
68     fi
69     cd pango
70     rm -rf $OPT/pango
71     if [ ! -f configure ]; then
72         ./autogen.sh --help
73     fi
74     ./configure --prefix=$OPT/pango --enable-maintainer-mode --enable-gtk-doc
75     make XFT_LIBS="-L/usr/lib -lXft -L/usr/X11R6/lib -lfreetype -lz -lXrender -lX11 -lfontconfig" install
76     cd ../..
77 fi
78
79 ## 3. Currently (2004-9-15) GUILE CVS works somewhat
80 ##    There's a guile/g-wrap problem with integer parameters
81 unset GUILE_LOAD_PATH
82 PATH=/usr/bin:$PATH
83
84 if [ -d $OPT/libffi/ ]; then
85     export LDFLAGS=-L$OPT/libffi/lib
86     export CPPFLAGS=-I$OPT/libffi/include
87 fi
88
89 PKG_CONFIG_PATH=$OPT/g-wrap/lib/pkgconfig:$PKG_CONFIG_PATH
90 LD_LIBRARY_PATH=$OPT/g-wrap/lib:$LD_LIBRARY_PATH
91 GUILE_LOAD_PATH=$OPT/g-wrap/share/guile/site:$GUILE_LOAD_PATH:$SLIB_PATH
92
93
94 ## 4.  get g-wrap 2.0
95 ## note that bleeding edge (2004-9-13) g-wrap breaks guile-gnome.
96 if ! pkg-config --exact-version=1.9.1 g-wrap-2.0-guile; then
97     if [ -n "$BLOEDIGE_RAND" ]; then
98         tla register-archive a.rottmann@gmx.at--2004-main \
99             http://people.debian.org/~rotty/arch/a.rottmann@gmx.at/2004-main || true
100
101         ## tla get a.rottmann@gmx.at--2004-main/g-wrap--tng g-wrap
102         ## tla get a.rottmann@gmx.at--2004-main/g-wrap--mainline--1.9.0 g-wrap
103         tla get a.rottmann@gmx.at--2004-main/g-wrap--dev--0 g-wrap
104         ## ughr:
105         mkdir -p g-wrap/libffi
106     else
107         wget -N http://savannah.nongnu.org/download/g-wrap/g-wrap-1.9.1.tar.gz
108         tar zxf g-wrap-1.9.1.tar.gz
109         ln -s g-wrap-1.9.1 g-wrap
110     fi
111     cd g-wrap
112     
113     rm -rf $OPT/g-wrap
114     if [ ! -f configure ]; then
115         sh autogen.sh --noconfigure
116     fi    
117     mkdir =build
118     cd =build
119     ../configure --prefix=$OPT/g-wrap --enable-maintainer-mode
120     make install
121     cd ../..
122 fi    
123
124
125 # not a good idea
126 ## cp srfi-34.scm from CVS head ?  --hwn
127 #(cd $OPT/g-wrap/share/guile/site
128 # mv srfi-34.scm srfi-34.scm-g-wrap
129 # cp $OPT/guile/share/guile-1.7/srfi/srfi-34.scm .)
130
131 PKG_CONFIG_PATH=$OPT/guile-gnome/lib/pkgconfig:$PKG_CONFIG_PATH
132 LD_LIBRARY_PATH=$OPT/guile-gnome/lib:$LD_LIBRARY_PATH
133 GUILE_LOAD_PATH=$OPT/guile-gnome/share/guile:$GUILE_LOAD_PATH
134 ## 5.  get guile-gnome
135 if ! pkg-config --atleast-version=$GGVERSION guile-gnome-glib; then
136     if [ -n "$BLOEDIGE_RAND" ]; then
137
138         if false; then # rotty
139             tla register-archive guile-gnome-devel@gnu.org--2004 \
140                 http://people.debian.org/~rotty/arch/guile-gnome-devel@gnu.org/2004/ || true
141             tla get guile-gnome-devel@gnu.org--2004/dists--dev guile-gnome
142             cd guile-gnome
143             tla build-config -r configs/gnu.org/dev
144             cd src
145
146             # 5a.  get extra modules (gnome canvas)
147             for i in $EXTRA; do
148                 tla get guile-gnome-devel@gnu.org--2004/$i--dev $i
149             done
150         else # andy
151             tla register-archive wingo@pobox.com--2004-main \
152                 http://ambient.2y.net/wingo/arch/wingo@pobox.com--2004-main || true
153             
154             tla get wingo@pobox.com--2004-main/guile-gnome-dists--release guile-gnome
155             cd guile-gnome
156             tla build-config -r configs/gnu.org/guile-gnome-platform-$GGVERSION
157             cd src
158             EXTRA="pkg atk defs glib gstreamer gtk gtksourceview libgda libglade libgnome libgnomeui pango libgnomecanvas"
159             EXTRA=
160
161             # 5a.  get extra modules (gnome canvas)
162             for i in $EXTRA; do
163                 tla get wingo@pobox.com--2004-main/guile-gnome-$i--release $i
164             done
165
166             cd libgnomecanvas
167             cd ..
168         fi
169
170         if [ ! -f configure ]; then
171             sh autogen.sh --noconfigure
172         fi
173         cd ..
174     else
175         wget -N http://ambient.2y.net/wingo/tmp/guile-gnome-platform-$GGVERSION.tar.gz
176         tar xzf guile-gnome-platform-$GGVERSION.tar.gz
177         ln -s guile-gnome-platform-$GGVERSION guile-gnome
178         cd guile-gnome
179         ln -s . src
180     fi
181     
182     rm -rf $OPT/guile-gnome
183     mkdir =build
184     cd =build
185
186 # Using libtool < 1.6.0 together with gcc-3.4 may trigger this problem:
187 #
188 #    If a tag has not been given, and we're using a compiler which is
189 #    not one of the ones with which libtool was built, attempt to
190 #    infer the compiler from the first word of the command line passed
191 #    to libtool.
192 #
193     if [ -z "$GCC34" ]; then
194     # Use libtool-1.5.6, gcc-3.{2,3} without -O2,
195         CFLAGS='-O -g' ../src/configure --prefix=$OPT/guile-gnome --enable-maintainer-mode
196     else
197     # or use gcc-3.4 with libtool-1.6.0
198         CC=$GCC34 ../src/configure --prefix=$OPT/guile-gnome --enable-maintainer-mode
199     fi
200     make install G_WRAP_MODULE_DIR=$OPT/g-wrap/share/guile/site
201 fi
202
203 # simple test -- fails atm
204 # guile -s ../src/libgnomecanvas/examples/canvas.scm
205