HACK: pinfo->private_data points to smb_info again
[wireshark-wip.git] / packaging / macosx / native-gtk / build-gtk.sh
blobc4373cb9ffcedc755b2fe01c8853ecd80fb223d3
1 #!/bin/sh
3 # $Id$
5 # Based on the Imendio 'build-gtk.sh' script.
7 # Inkscape (Wireshark) build additions by Michael Wybrow <mjwybrow@users.sf.net>
9 # See the following page for build instructions:
10 # http://developer.imendio.com/projects/gtk-macosx/build-instructions
12 # Usage:
13 # export PREFIX=/your/install/prefix
14 # ./build-gtk bootstrap
15 # ./build-gtk build wireshark
18 # XXX: Check for xargs with -i
20 # In lib/pkgconfig/freetpe2.pc
22 # - Libs: -L${libdir} -lfreetype -lz
23 # + Libs: -L${libdir} -lfreetype -lz -Wl,-framework,CoreServices,-framework,ApplicationServices
25 # bin/freetype-config
27 # - libs="-lfreetype -lz"
28 # + libs="-lfreetype -lz -Wl,-framework,CoreServices,-framework,ApplicationServices"
30 # In lib/pkgconfig/fontconfig.pc
31 # Add -lexpat
34 version=1.3.1-wireshark
37 SCRIPTDIR=`dirname $0`
39 export PREFIX=${PREFIX-/opt/gtk}
40 export PATH=$PREFIX/bin:/usr/bin:$PATH
41 #export PATH=$PREFIX/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin:
42 export LIBTOOLIZE=$PREFIX/bin/libtoolize
44 # FIXME: We might need some more intelligent way to get the path here.
45 export PYTHONPATH=$PREFIX/lib/python2.3/site-packages
47 # Needed for glib etc to pick up gettext
48 export LDFLAGS=-L$PREFIX/lib
49 export CPPFLAGS=-I$PREFIX/include
51 export XDG_DATA_DIRS=$PREFIX/share
53 COMMON_OPTIONS="--prefix=$PREFIX --disable-static --enable-shared \
54 --disable-gtk-doc --disable-scrollkeeper"
56 #export MAKEFLAGS=-j2
58 if [ "x$PANTHER_BUILD" = "xYes" ]; then
59 # XXX: Check the machine is PPC
60 # or rework to have things like pkg-config built natively.
62 # Overwrite some build settings.
63 export SDK="/Developer/SDKs/MacOSX10.3.9.sdk"
64 export MACOSX_DEPLOYMENT_TARGET=10.3
65 export CFLAGS="-isysroot ${SDK} -arch ppc"
66 export CXXFLAGS="-isysroot ${SDK} -arch ppc"
68 export STABLE_BUILD=Yes
71 if [ "x$UNIVERSAL_BUILD" = "xYes" ]; then
72 COMMON_OPTIONS="$COMMON_OPTIONS --disable-dependency-tracking"
74 export SDK="/Developer/SDKs/MacOSX10.4u.sdk"
75 export MACOSX_DEPLOYMENT_TARGET=10.4
76 #export MACOSX_DEPLOYMENT_TARGET_i386=10.4
77 #export MACOSX_DEPLOYMENT_TARGET_ppc=10.3
78 export CFLAGS="-isysroot ${SDK} -arch ppc -arch i386"
79 export CXXFLAGS="-isysroot ${SDK} -arch ppc -arch i386"
81 CONFIGURE_pkg_config="--with-pc-path=$PREFIX/lib/pkgconfig:/usr/X11R6/lib/pkgconfig --enable-indirect-deps --disable-dependency-tracking"
83 CONFIGURE_libpng="--disable-dependency-tracking"
84 PRECONFIGURE_libpng="eval CPPFLAGS='$CPPFLAGS -DPNG_NO_ASSEMBLER_CODE'"
86 CONFIGURE_tiff="--disable-dependency-tracking"
88 POSTCONFIGURE_jpeg_6b="patch_libtool_dylib"
90 CONFIGURE_gc="--disable-dependency-tracking"
91 POSTCONFIGURE_gc="patch_libtool_dylib"
92 PRECONFIGURE_gc="eval CFLAGS='$CFLAGS -DUSE_GENERIC_PUSH_REGS'"
94 POSTCONFIGURE_freetype="eval cd builds/unix/ && pwd && patch_libtool_dylib && cd ../.."
96 CONFIGURE_fontconfig="--disable-dependency-tracking --disable-docs"
97 POSTCONFIGURE_fontconfig="eval cd fc-arch && make all && cd .. && perl -pi~ -e 's|#define FC_ARCHITECTURE \"x86\"|#ifdef __ppc__\n#define FC_ARCHITECTURE \"ppc\"\n#else\n#define FC_ARCHITECTURE \"x86\"\n#endif|g' fc-arch/fcarch.h"
99 PRECONFIGURE_cairo="export ax_cv_c_float_words_bigendian=no"
100 CONFIGURE_cairo="--disable-dependency-tracking --enable-shared --disable-quartz --disable-atsui --enable-glitz"
101 POSTCONFIGURE_cairo="eval patch_libtool_dylib && export ax_cv_c_float_words_bigendian='' && perl -pi~ -e 's|/\* #undef FLOAT_WORDS_BIGENDIAN \*/|#ifdef __ppc__\n#define FLOAT_WORDS_BIGENDIAN 1\n#endif|g;s|/\* #undef WORDS_BIGENDIAN \*/|#ifdef __ppc__\n#define WORDS_BIGENDIAN 1\n#endif|g' config.h && perl -pi~ -e 's|DIST_SUBDIRS = pixman src boilerplate test perf doc|DIST_SUBDIRS = pixman src test perf doc|g;s|am__append_1 = boilerplate test|am__append_1 = test|g' Makefile"
103 CONFIGURE_glitz="--disable-dependency-tracking"
105 CONFIGURE_lcms="--disable-dependency-tracking"
107 CONFIGURE_glib="$COMMON_OPTIONS"
108 POSTCONFIGURE_glib="eval make glibconfig.h config.h && cp $DIRNAME/{glib,}config.h ."
109 #POSTCONFIGURE_glib="eval make glibconfig.h && perl -pi~ -e 's|#define G_BYTE_ORDER G_LITTLE_ENDIAN|#include <machine/endian.h>\n#define G_BYTE_ORDER __DARWIN_BYTE_ORDER|g' glibconfig.h"
111 CONFIGURE_pango="$COMMON_OPTIONS"
112 POSTCONFIGURE_pango="eval perl -pi~ -e 's|SUBDIRS = pango modules examples docs tools tests|SUBDIRS = pango modules docs tools tests|g' Makefile && perl -pi~ -e 's|harfbuzz_dump_LDADD = |harfbuzz_dump_LDADD = -Xlinker -framework -Xlinker CoreServices -Xlinker -framework -Xlinker ApplicationServices|g' pango/opentype/Makefile"
114 CONFIGURE_gtk="$COMMON_OPTIONS"
116 CONFIGURE_atk="$COMMON_OPTIONS"
118 CONFIGURE_libxml2="$COMMON_OPTIONS"
120 CONFIGURE_libsigc="$COMMON_OPTIONS"
121 POSTCONFIGURE_libsigc="patch_libtool_dylib"
123 CONFIGURE_glibmm="$COMMON_OPTIONS"
125 CONFIGURE_cairomm="$COMMON_OPTIONS"
127 CONFIGURE_gtkmm="$COMMON_OPTIONS --disable-examples --disable-demos"
128 POSTCONFIGURE_gtkmm="patch_libtool_dylib"
130 CONFIGURE_libxslt="$COMMON_OPTIONS"
132 CONFIGURE_popt="$COMMON_OPTIONS"
133 POSTCONFIGURE_popt="patch_libtool_dylib"
134 elif [ "x$STABLE_BUILD" = "xYes" ]; then
135 COMMON_OPTIONS="$COMMON_OPTIONS --disable-dependency-tracking"
137 CONFIGURE_pkg_config="--with-pc-path=$PREFIX/lib/pkgconfig:/usr/X11R6/lib/pkgconfig --enable-indirect-deps --disable-dependency-tracking"
139 CONFIGURE_libpng="--disable-dependency-tracking"
141 CONFIGURE_tiff="--disable-dependency-tracking"
143 CONFIGURE_gc="--disable-dependency-tracking"
145 CONFIGURE_fontconfig="--disable-dependency-tracking --disable-docs"
147 CONFIGURE_cairo="--disable-dependency-tracking --enable-shared --disable-quartz --disable-atsui --enable-glitz"
149 CONFIGURE_glitz="--disable-dependency-tracking"
151 CONFIGURE_lcms="--disable-dependency-tracking"
153 CONFIGURE_glib="$COMMON_OPTIONS"
155 CONFIGURE_pango="$COMMON_OPTIONS"
156 POSTCONFIGURE_pango="eval perl -pi~ -e 's|SUBDIRS = pango modules examples docs tools tests|SUBDIRS = pango modules docs tools tests|g' Makefile && perl -pi~ -e 's|harfbuzz_dump_LDADD = |harfbuzz_dump_LDADD = -Xlinker -framework -Xlinker CoreServices -Xlinker -framework -Xlinker ApplicationServices|g' pango/opentype/Makefile"
158 CONFIGURE_gtk="$COMMON_OPTIONS"
160 CONFIGURE_atk="$COMMON_OPTIONS"
162 CONFIGURE_libxml2="$COMMON_OPTIONS"
164 CONFIGURE_libsigc="$COMMON_OPTIONS"
166 CONFIGURE_glibmm="$COMMON_OPTIONS"
168 CONFIGURE_cairomm="$COMMON_OPTIONS"
170 CONFIGURE_gtkmm="$COMMON_OPTIONS --disable-examples --disable-demos"
172 CONFIGURE_libxslt="$COMMON_OPTIONS"
174 CONFIGURE_popt="$COMMON_OPTIONS"
178 # Support install-check from jhbuild to speed up compilation
179 if [ -x $PREFIX/bin/install-check ]; then
180 export INSTALL=$PREFIX/bin/install-check
184 SOURCE=${SOURCE-$HOME/Source/gtk}
185 CAIROCVSROOT=${CAIROCVSROOT-:pserver:anoncvs@cvs.freedesktop.org:/cvs/cairo}
186 WIRESHARKSVNURL="http://anonsvn.wireshark.org/wireshark/trunk
187 GNOMESVNURL=${GNOMESVNURL-https://svn.gnome.org/svn}
189 if [ x$1 = xrun ]; then
190 cmd="$2"
191 shift 2
192 exec $cmd $*
195 if [ $# -eq 0 -o "x`echo "$*" | grep shell`" = xshell ]; then
196 # Can be used in .bashrc to set a fancy prompt...
197 export INSIDE_GTK_BUILD=1
198 bash
199 exit 0
202 CORE_MODULES="glitz cairo gnome-common glib pango atk gtk+"
203 EXTRA_MODULES="libxml2 libxslt loudmouth libglade gossip gtk-engines"
204 PYGTK_MODULES=" pycairo pygobject pygtk"
205 WIRESHARK_MODULES="$CORE_MODULES libxml2 libxslt gc lcms libsigc++ doxygen glibmm cairomm gtkmm popt wireshark"
207 # Could add those (orbit requires popt though)
208 MORE_MODULES="libIDL ORBit2 gconf"
210 function print_usage
212 echo
213 echo "GTK+ on Mac OS X build script version $version."
214 echo
215 echo "Usage:"
216 echo "`basename $0` [bootstrap|[shell]|run <cmd>|build [<modules>]], modules are:"
217 echo " Core: $CORE_MODULES"
218 echo " Extra: $EXTRA_MODULES"
219 echo " Python: $PYGTK_MODULES"
220 echo " Wireshark: $WIRESHARK_MODULES"
221 echo
222 echo "Setup: This script defaults to downloading source to ~/Source/gtk and"
223 echo "installing in /opt/gtk. Make sure your user has write access to the"
224 echo "latter directory. You can override those directories by setting the"
225 echo "SOURCE and PREFIX environment variables. Anoncvs is used by default"
226 echo "for access to GNOME SVN, if you wish to override, set the environment"
227 echo "variable GNOMESVNURL to your own account."
228 echo
229 echo "While in the shell that this script provides, the environment variable"
230 echo "INSIDE_GTK_BUILD is set, which makes it possible to put something like"
231 echo "the following in ~/.bashrc:"
232 echo
233 echo " if [ x\$INSIDE_GTK_BUILD != x ]; then"
234 echo " PS1=\"[GTK] \u@\h \W $ \""
235 echo " fi"
236 echo
237 echo "Start by bootstrapping. This will install the necessary build tools."
238 echo "Then build GTK+ & co by using the \"build\" command. If no modules are"
239 echo "specified, only the ones needed for GTK+ will be built. The special"
240 echo "modules \"core\" and \"all\" can be used to build just the core or all"
241 echo "modules."
242 echo
243 echo "If you want to build something manually or run something, use the "
244 echo "\"shell\" command (or no command) to get a shell with the environment"
245 echo "properly setup."
246 echo
247 echo "Tip: if you build and install \"install-check\" from jhbuild into your"
248 echo "PREFIX, recompiling when hacking on GTK+ & co will be a lot faster."
249 echo
252 function download
254 BASENAME=`basename $1`
256 if [ -s $BASENAME ]; then
257 echo "Already downloaded"
258 return 0
261 curl $1 > $BASENAME || return 1
263 return 0
266 function should_build
268 if [ -f $1/BUILT ]; then
269 echo "Already built"
270 return 1
273 return 0
276 function tarball_get_and_build
278 BASENAME=`basename $1`
279 DIRNAME=`echo $BASENAME | sed -e s,.src.,., | sed -e s,.tar.*,,`
280 INSTCMD="make install"
281 PREFIXARG="--prefix=$PREFIX"
282 COMMONOPTS="$COMMON_OPTIONS"
284 SHORTNAME=`echo $DIRNAME | sed -e s,-*[0-9\.]*$,,`
285 if !(echo "$MODULES" | grep -w $SHORTNAME) >/dev/null; then
286 return 0
289 echo
290 echo "Building $DIRNAME"
291 echo -ne "\033]0;Building $DIRNAME\007"
293 # Special case jpeg... :/
294 if [ x`echo $DIRNAME | grep jpeg` != x ]; then
295 INSTCMD="make install-lib"
298 if [ x`echo $BASENAME | grep bz2` != x ]; then
299 COMP="j"
300 else
301 COMP="z"
304 # Doxygen doesn't have a standard configure script.
305 if [ x`echo $BASENAME | grep doxygen` != x ]; then
306 PREFIXARG="--prefix $PREFIX"
307 COMMONOPTS="--shared"
310 # Modify specific configure options
311 UNDERSCORENAME=`echo $SHORTNAME | sed -e s,-,_, | tr -d '+'`
312 CONFIGURE_EXTRA=`eval echo '\$'{CONFIGURE_$UNDERSCORENAME}`
313 if [ "x$CONFIGURE_EXTRA" != "x" ]; then
314 COMMONOPTS="$COMMONOPTS $CONFIGURE_EXTRA"
316 PRECONFIGURE=`eval echo '\$'{PRECONFIGURE_$UNDERSCORENAME}`
317 if [ "x$PRECONFIGURE" == "x" ]; then
318 PRECONFIGURE="true"
320 POSTCONFIGURE=`eval echo '\$'{POSTCONFIGURE_$UNDERSCORENAME}`
321 if [ "x$POSTCONFIGURE" == "x" ]; then
322 POSTCONFIGURE="true"
325 cd $SOURCE || return 1
326 download $1 || return 1
327 should_build $DIRNAME || return 0
328 tar ${COMP}xf $BASENAME && \
329 cd $DIRNAME && \
330 $PRECONFIGURE && \
331 echo "./configure $PREFIXARG $COMMONOPTS $2" && \
332 ./configure $PREFIXARG $COMMONOPTS $2 && \
333 $POSTCONFIGURE && \
334 make && $INSTCMD && touch BUILT
338 function cpan_get_and_build
340 BASENAME=`basename $1`
341 DIRNAME=`echo $BASENAME | sed -e s,.tar.*,,`
343 SHORTNAME=`echo $DIRNAME | sed -e s,-*[0-9\.]*$,,`
344 if !(echo "$MODULES" | grep -w $SHORTNAME) >/dev/null; then
345 return 0
348 echo
349 echo "Building $DIRNAME"
350 echo -ne "\033]0;Building $DIRNAME\007"
352 if [ x`echo $BASENAME | grep bz2` != x ]; then
353 COMP="j"
354 else
355 COMP="z"
358 cd $SOURCE || return 1
359 download $1 || return 1
360 should_build $DIRNAME || return 0
361 tar ${COMP}xf $BASENAME && \
362 cd $DIRNAME && \
363 perl Makefile.PL $2 && \
364 make && \
365 (echo "Enter your password to istall $BASENAME"; make install) && \
366 touch BUILT
369 function git_get_and_build
371 if !(echo "$MODULES" | grep -w $2) >/dev/null; then
372 return 0
375 echo
376 echo "Building $2"
377 echo -ne "\033]0;Building $2\007"
379 cd $SOURCE
380 if [ -d $2 ]; then
381 cd $2
382 cg-update || return
383 else
384 cg-clone $1/$2 || return
385 cd $2
388 echo "./autogen.sh $COMMON_OPTIONS $3"
389 (./autogen.sh $COMMON_OPTIONS $3 && make && make install)
392 function cvs_get_and_build
394 if !(echo "$MODULES" | grep -w $2) >/dev/null; then
395 return 0
398 echo
399 echo "Building $2"
400 echo -ne "\033]0;Building $2\007"
402 cd $SOURCE
403 if [ -d $2 ]; then
404 cd $2
405 cvs up -dP || return
406 else
407 cvs -d $1 co -P $2 || return
408 cd $2
411 echo "./autogen.sh $COMMON_OPTIONS $3"
412 (./autogen.sh $COMMON_OPTIONS $3 && make && make install)
415 function svn_get_and_build
417 if !(echo "$MODULES" | grep -w $2) >/dev/null; then
418 return 0
421 echo
422 echo "Building $2"
423 echo -ne "\033]0;Building $2\007"
425 cd $SOURCE
426 if [ -d $2 ]; then
427 cd $2
428 svn up || return
429 else
430 svn co $1/$2/trunk $2 || return
431 cd $2
434 echo "./autogen.sh $COMMON_OPTIONS $3"
435 #(./autogen.sh $COMMON_OPTIONS $3 && ./configure --prefix=$PREFIX $COMMON_OPTIONS $3 && make && make install)
436 (./autogen.sh $COMMON_OPTIONS $3 && make && make install)
439 function set_automake
441 old_AUTOMAKE=$AUTOMAKE
442 old_ACLOCAL=$ACLOCAL
444 export AUTOMAKE=automake-$1
445 export ACLOCAL=aclocal-$1
448 function restore_automake
450 if [ x$old_AUTOMAKE != x ]; then
451 export AUTOMAKE=$old_AUTOMAKE
452 else
453 unset AUTOMAKE
456 if [ x$old_ACLOCAL != x ]; then
457 export ACLOCAL=$old_ACLOCAL
458 else
459 unset ACLOCAL
463 function do_exit
465 echo -ne "\033]0;\007"
466 exit
469 # Make sure to restore the title when done.
470 trap do_exit EXIT SIGINT SIGTERM
473 # configure doesn't pass CFLAGS through to generated libtool
474 function patch_libtool_dylib()
476 # Only do this for universal builds.
477 if [ "x$UNIVERSAL_BUILD" != "xYes" ]; then
478 return 0
481 cp libtool libtool.old
482 perl -pi -e "s@-dynamiclib@$CFLAGS \$&@" libtool
483 if test "x$1" = "xwithbundle"; then
484 perl -pi -e "s@-bundle@$CFLAGS \$&@" libtool
489 function process_modules()
491 # Bootstrap packages.
492 PACKAGES=" \
493 http://pkgconfig.freedesktop.org/releases/pkg-config-0.21.tar.gz \
494 http://ftp.gnu.org/gnu/libtool/libtool-1.5.22.tar.gz \
495 http://ftp.gnu.org/gnu/autoconf/autoconf-2.61.tar.bz2 \
496 http://ftp.gnu.org/pub/gnu/automake/automake-1.7.9.tar.bz2 \
497 http://ftp.gnu.org/gnu/automake/automake-1.9.6.tar.bz2 \
498 http://heanet.dl.sourceforge.net/sourceforge/libpng/libpng-1.2.15.tar.bz2 \
499 ftp://ftp.remotesensing.org/pub/libtiff/tiff-3.8.2.tar.gz \
500 http://people.imendio.com/richard/gtk-osx/files/jpeg-6b.tar.gz \
501 http://ftp.gnu.org/gnu/gettext/gettext-0.16.tar.gz \
502 http://heanet.dl.sourceforge.net/sourceforge/expat/expat-2.0.0.tar.gz \
503 http://heanet.dl.sourceforge.net/sourceforge/freetype/freetype-2.3.0.tar.bz2 \
504 http://fontconfig.org/release/fontconfig-2.4.2.tar.gz \
505 http://people.imendio.com/richard/gtk-osx/files/docbook-files-1.tar.gz \
506 http://www.cs.mu.oz.au/~mjwybrow/gtk-osx/gnome-doc-utils-fake-1.tar.gz \
509 #http://people.imendio.com/richard/gtk-osx/files/popt-1.7.tar.gz
511 for PACKAGE in $PACKAGES; do
512 tarball_get_and_build $PACKAGE || exit 1
513 done
515 PACKAGE=http://ftp.gnome.org/pub/GNOME/sources/gtk-doc/1.6/gtk-doc-1.6.tar.bz2
516 tarball_get_and_build $PACKAGE "--with-xml-catalog=$PREFIX/etc/xml/catalog" || exit 1
518 PACKAGE=ftp://ftp4.freebsd.org/pub/FreeBSD/ports/distfiles/XML-Parser-2.34.tar.gz
519 cpan_get_and_build $PACKAGE "PREFIX=$PREFIX INSTALLDIRS=perl EXPATLIBPATH=$PREFIX/lib EXPATINCPATH=$PREFIX/include" || exit 1
521 PACKAGES=" \
522 http://ftp.gnome.org/pub/GNOME/sources/intltool/0.35/intltool-0.35.0.tar.bz2 \
523 http://icon-theme.freedesktop.org/releases/hicolor-icon-theme-0.9.tar.gz \
524 http://ftp.gnome.org/pub/GNOME/sources/gnome-icon-theme/2.14/gnome-icon-theme-2.14.2.tar.bz2 \
527 for PACKAGE in $PACKAGES; do
528 tarball_get_and_build $PACKAGE || exit 1
529 done
532 # Other packages:
533 if [ "x$UNIVERSAL_BUILD" == "xYes" -o "x$STABLE_BUILD" = "xYes" ];
534 then
535 tarball_get_and_build http://cairographics.org/snapshots/glitz-0.5.6.tar.gz || exit 1
536 tarball_get_and_build http://cairographics.org/releases/cairo-1.4.0.tar.gz || exit 1
537 tarball_get_and_build http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc6.8.tar.gz || exit 1
538 tarball_get_and_build http://www.littlecms.com/lcms-1.16.tar.gz || exit 1
539 tarball_get_and_build ftp://ftp.gnome.org/mirror/gnome.org/sources/glib/2.12/glib-2.12.11.tar.bz2 || exit 1
540 tarball_get_and_build ftp://ftp.gnome.org/mirror/gnome.org/sources/pango/1.14/pango-1.14.10.tar.bz2 || exit 1
541 tarball_get_and_build ftp://ftp.gnome.org/mirror/gnome.org/sources/atk/1.12/atk-1.12.4.tar.bz2 || exit 1
542 tarball_get_and_build ftp://ftp.gnome.org/mirror/gnome.org/sources/gtk+/2.10/gtk+-2.10.11.tar.bz2 || exit 1
543 tarball_get_and_build ftp://ftp.gnome.org/mirror/gnome.org/sources/libxml2/2.6/libxml2-2.6.27.tar.bz2 || exit 1
544 tarball_get_and_build ftp://ftp.gnome.org/mirror/gnome.org/sources/libsigc++/2.0/libsigc++-2.0.17.tar.bz2 || exit 1
545 tarball_get_and_build ftp://ftp.gnome.org/mirror/gnome.org/sources/glibmm/2.12/glibmm-2.12.7.tar.bz2 || exit 1
546 tarball_get_and_build http://cairographics.org/releases/cairomm-1.2.4.tar.gz || exit 1
547 tarball_get_and_build ftp://ftp.gnome.org/mirror/gnome.org/sources/gtkmm/2.10/gtkmm-2.10.8.tar.bz2 || exit 1
548 tarball_get_and_build ftp://ftp.gnome.org/mirror/gnome.org/sources/libxslt/1.1/libxslt-1.1.20.tar.bz2 || exit 1
549 tarball_get_and_build ftp://ftp.rpm.org/pub/rpm/dist/rpm-4.1.x/popt-1.7.tar.gz || exit 1
551 svn_get_and_build $WIRESHARKSVNURL wireshark || exit 1
553 exit 0
554 else
555 git_get_and_build git://git.cairographics.org/git cairo "--enable-pdf --enable-atsui --enable-quartz --disable-xlib" || exit 1
557 tarball_get_and_build http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc6.7.tar.gz || exit 1
558 tarball_get_and_build ftp://ftp.gnome.org/mirror/gnome.org/sources/libsigc++/2.0/libsigc++-2.0.17.tar.gz || exit 1
559 tarball_get_and_build http://ftp.stack.nl/pub/users/dimitri/doxygen-1.5.1.src.tar.gz || exit 1
560 tarball_get_and_build ftp://ftp.rpm.org/pub/rpm/dist/rpm-4.1.x/popt-1.7.tar.gz || exit 1
563 svn_get_and_build $GNOMESVNURL libxml2 || exit 1
564 svn_get_and_build $GNOMESVNURL libxslt || exit 1
565 svn_get_and_build $GNOMESVNURL gnome-common || exit 1
566 svn_get_and_build $GNOMESVNURL glib || exit 1
567 svn_get_and_build $GNOMESVNURL atk || exit 1
568 svn_get_and_build $GNOMESVNURL pango "--without-x" || exit 1
569 svn_get_and_build $GNOMESVNURL gtk+ "--with-gdktarget=quartz" || exit 1
570 svn_get_and_build $GNOMESVNURL gtk-engines || exit 1
571 svn_get_and_build $GNOMESVNURL loudmouth "--with-ssl=openssl" || exit 1
572 svn_get_and_build $GNOMESVNURL libglade || exit 1
573 # gossip needs xml2po from gnome-doc-utils.
574 svn_get_and_build $GNOMESVNURL gossip "--with-backend=cocoa" || exit 1
575 svn_get_and_build $CAIROCVSROOT pycairo || exit 1
576 svn_get_and_build $GNOMESVNURL pygobject "--disable-docs" || exit 1
577 svn_get_and_build $GNOMESVNURL pygtk "--disable-docs" || exit 1
579 svn_get_and_build $GNOMESVNURL glibmm "--disable-docs --disable-fulldocs" || exit 1
580 cvs_get_and_build $CAIROCVSROOT cairomm || exit 1
581 svn_get_and_build $GNOMESVNURL gtkmm "--disable-docs --disable-examples --disable-demos" || exit 1
583 svn_get_and_build $WIRESHARKSVNURL wireshark || exit 1
586 #svn_get_and_build $GNOMESVNURL gimp || exit 1
587 # For gimp:
588 # libart_lgpl, needs automake 1.4 and doesn't run libtoolize
589 # gtkhtml2 (optional)
590 # libpoppler (optional)
591 # ./autogen.sh --prefix=/opt/gimp --disable-gtk-doc
594 if (echo "$*" | grep bootstrap) >/dev/null; then
595 if [ "x`cg-version 2>/dev/null`" == "x" ]; then
596 echo "You need the cogito to get cairo from git. It's available e.g. in Darwin ports."
597 exit 1
599 if [ "x`which svn 2>/dev/null`" == "x" ]; then
600 echo "You need the svn client to get wireshark"
601 exit 1
604 mkdir -p $SOURCE 2>/dev/null || \
605 (echo "Error: Couldn't create source checkout dir $SOURCE"; exit 1)
606 mkdir -p $PREFIX/bin 2>/dev/null || \
607 (echo "Error: Couldn't create bin dir $PREFIX/bin"; exit 1)
609 echo "Building bootstrap packages."
611 MODULES="pkg-config libtool autoconf automake libpng tiff jpeg-6b gettext \
612 expat fontconfig docbook-files intltool \
614 # freetype
615 # XML-Parser hicolor-icon-theme gnome-icon-theme"
616 # gnome-doc-utils-fake gtk-doc \
617 process_modules
619 # Setup glibtool* links since some stuff expects them to be named like
620 # that on OSX
621 if [ -z $PREFIX/bin/glibtoolize ]; then
622 ln -s $PREFIX/bin/libtoolize $PREFIX/bin/glibtoolize
623 ln -s $PREFIX/bin/libtool $PREFIX/bin/glibtool
626 echo
627 echo "Done bootstrapping. Continue with \"build\" or \"shell\"."
628 exit 0
631 if [ "x$1" != xbuild ]; then
632 print_usage
633 exit 1
636 shift
638 MODULES=$*
639 if [ $# -eq 0 ]; then
640 echo "Building core modules."
641 MODULES="$CORE_MODULES"
642 elif [ "x$1" = xcore ]; then
643 echo "Building core modules."
644 MODULES="$CORE_MODULES"
645 elif [ "x$1" = xpython ]; then
646 echo "Building python modules."
647 MODULES="$PYGTK_MODULES"
648 elif [ "x$1" = xall ]; then
649 echo "Building core+extra+python modules."
650 MODULES="$CORE_MODULES $EXTRA_MODULES $PYGTK_MODULES"
651 elif [ "x$1" = xwireshark ]; then
652 echo "Building wireshark modules."
653 MODULES="$WIRESHARK_MODULES"
656 process_modules
657 echo "Done."