Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLeo Ufimtsev2016-10-31 11:00:15 -0400
committerLeo Ufimtsev2016-10-31 11:00:15 -0400
commit254eeaf4cbafbb57a5656327ca43c41db31ea4fd (patch)
treeea7c6cd352ab3cab6c00a91a56cef5c190615a73
parent91b101cf30eca1137a4f5599301c4258f0222608 (diff)
downloadeclipse.platform.swt-254eeaf4cbafbb57a5656327ca43c41db31ea4fd.tar.gz
eclipse.platform.swt-254eeaf4cbafbb57a5656327ca43c41db31ea4fd.tar.xz
eclipse.platform.swt-254eeaf4cbafbb57a5656327ca43c41db31ea4fd.zip
Bug 497923: [GTK] build.sh bugfixes and improvements
Backport of current most up to date build.sh to R4_5_maintenance as per user request. Change-Id: I8723c76bafd9abc3f8f4ab7733935a0fd2475578 Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=497923 Signed-off-by: Leo Ufimtsev <lufimtse@redhat.com>
-rwxr-xr-xbundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/build.sh329
1 files changed, 205 insertions, 124 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/build.sh b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/build.sh
index 020c87eb18..8de9bbb4ad 100755
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/build.sh
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/build.sh
@@ -1,6 +1,6 @@
#!/bin/sh
#*******************************************************************************
-# Copyright (c) 2000, 2014 IBM Corporation and others.
+# Copyright (c) 2000, 2016 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
@@ -12,13 +12,62 @@
# Tom Tromey (Red Hat, Inc.)
#*******************************************************************************
+HELP="
+Build Gtk2 or Gtk3 bindings and (optionally) copy them to binary repository.
+Paramaters (specified in this order):
+clean - delete *.o and *.so files from current folder. If this is the only paramater, do nothing else.
+ But if other paramaters are given and this is the first one, then continue with other actions.
+
+One of the following 3:
+-gtk2 : Build bindings with GTK2.
+-gtk3 : Build bindings with GTK3.
+-gtk-all : Build bindings with GTK2 as well as GTK3. Note, this flag triggers cleanups before each build
+ because a cleanup is required when buliding different GTK versions for linking to be done correctly.
+ During active development, if you only want to compile updated files, use -gtk2/-gtk3 flags instead,
+ however do not forget to do a cleanup in between gtk2/gtk3.
+
+install - copy *.so libraries to binary repository.
+
+-- Examples:
+Most commonly used:
+./build.sh -gtk-all install
+This will clean everything in your repository, build GTK2 and GTK3, then copy .so files to binary repository.
+
+Also:
+./build.sh - only build .so files, do not copy them across. Build according to what GTK_VERSION is set to.
+./build.sh clean - clean working directory of *.o and *.so files.
+./build.sh install - build.so files and copy to binary repository
+./build.sh -gtk3 install - Build only updated files (or all), copy *.so libs to binary repository.
+
+Also note:
+Sometimes you might have to cleanup the binary repository manually as old *.so files are not automatically removed
+by clean command. Navigate to binary repository and:
+git clean -xdf #If new files were added to repo.
+git reset --hard #If existing binary was overwritten.
+"
+
+if [ "$1" = "-h" -o "$1" = "--help" ]; then
+ echo "$HELP"
+ exit
+fi
+
+func_echo_plus () {
+ # Echo function that prints output in green to distinguish it from sub-shell output.
+ GREEN='\033[0;32m'
+ NC='\033[0m' # No Color
+ echo -e "${GREEN}${@}${NC}"
+}
+
+func_echo_error () {
+ # As above, but in red. Also pre-appends '***' to output.
+ RED='\033[0;31m'
+ NC='\033[0m' # No Color
+echo -e "${RED}*** ${@}${NC}"
+}
+
cd `dirname $0`
MAKE_TYPE=make
-if [ "${GTK_VERSION}" = "" ]; then
- GTK_VERSION=2.0
- export GTK_VERSION
-fi
# No longer necessary, but may be useful in future if we want to compile swt.idl rather than using a static one
#
@@ -55,16 +104,13 @@ case $OS in
PROC=`uname -i`
MAKEFILE=make_solaris.mak
if [ "${MODEL}" = "" ]; then
- if uname -p > /dev/null 2>&1; then
- MODEL=`uname -p`
+ MODEL=`isainfo -k`
+ if [ "${MODEL}" = "amd64" ]; then
+ MODEL=x86_64
+ MAKEFILE=make_solaris_x86_64.mak
+ MAKE_TYPE=gmake
fi
fi
- case $MODEL in
- "i386" | "x86")
- MAKEFILE=make_solaris_x86.mak
- MAKE_TYPE=gmake
- ;;
- esac
;;
"FreeBSD")
SWT_OS=freebsd
@@ -92,10 +138,6 @@ case $MODEL in
SWT_ARCH=x86_64
AWT_ARCH=amd64
;;
- "sparc64")
- SWT_ARCH=$MODEL
- AWT_ARCH=sparcv9
- ;;
i?86)
SWT_ARCH=x86
AWT_ARCH=i386
@@ -105,7 +147,6 @@ case $MODEL in
AWT_ARCH=$MODEL
;;
esac
-echo "Building SWT OS=${SWT_OS} SWT ARCH=${SWT_ARCH}"
case $SWT_OS.$SWT_ARCH in
"linux.x86")
@@ -145,7 +186,22 @@ case $SWT_OS.$SWT_ARCH in
export CC=gcc
fi
if [ "${JAVA_HOME}" = "" ]; then
- export JAVA_HOME="/bluebird/teamswt/swt-builddir/JDKs/x86_64/jdk1.5.0"
+ # Validate that we set JAVA_HOME to an existing directory. If not try to look for a better one.
+ BLUEBIRD_JAVA_HOME="/bluebird/teamswt/swt-builddir/JDKs/x86_64/jdk1.5.0"
+ if [ -d "$BLUEBIRD_JAVA_HOME" ]; then
+ func_echo_plus "JAVA_HOME not set, configured to: $BLUEBIRD_JAVA_HOME"
+ export JAVA_HOME="$BLUEBIRD_JAVA_HOME"
+ else
+ # Cross-platform method of finding JAVA_HOME.
+ # Tested on Fedora 24 and Ubuntu 16
+ DYNAMIC_JAVA_HOME=`readlink -f /usr/bin/java | sed "s:jre/bin/java::"`
+ if [ -a "${DYNAMIC_JAVA_HOME}include/jni.h" ]; then
+ func_echo_plus "JAVA_HOME not set, but jni.h found, dynamically configured to $DYNAMIC_JAVA_HOME"
+ export JAVA_HOME="$DYNAMIC_JAVA_HOME"
+ else
+ func_echo_error "JAVA_HOME not set and jni.h could not be located. You might get a compile error about include 'jni.h'. You should install 'java-*-openjdk-devel' package or if you have it installed already, find jni.h and set JAVA_HOME manually to base of 'include' folder"
+ fi
+ fi
fi
if [ "${PKG_CONFIG_PATH}" = "" ]; then
export PKG_CONFIG_PATH="/usr/lib64/pkgconfig"
@@ -259,7 +315,7 @@ case $SWT_OS.$SWT_ARCH in
export PKG_CONFIG_PATH="/usr/lib64/pkgconfig/"
fi
;;
- "solaris.x86")
+ "solaris.x86_64")
if [ "${CC}" = "" ]; then
export CC="cc"
fi
@@ -267,81 +323,51 @@ case $SWT_OS.$SWT_ARCH in
export CXX="CC"
fi
if [ "${JAVA_HOME}" = "" ]; then
- export JAVA_HOME="/bluebird/teamswt/swt-builddir/JDKs/x86/ibm-java2-i386-50"
- fi
- if [ "${MOZILLA_SDK}" = "" ]; then
- export MOZILLA_SDK="/bluebird/teamswt/bog/mozilla/solaris_x86/1.7/mozilla/dist/sdk"
- fi
- if [ "${XULRUNNER_SDK}" = "" ]; then
- export XULRUNNER_SDK="/bluebird/teamswt/swt-builddir/xulrunner/1.8.0.1/solaris-x86/mozilla/dist/sdk"
+ export JAVA_HOME="/bluebird/teamswt/swt-builddir/build/JRE/Solaris_x64/jdk1.8.0_71"
fi
- if [ "${MOZILLA_INCLUDES}" = "" ]; then
- export MOZILLA_INCLUDES="-include ${MOZILLA_SDK}/include/mozilla-config.h -I${MOZILLA_SDK}/include"
- fi
- if [ "${MOZILLA_LIBS}" = "" ]; then
- export MOZILLA_LIBS="-L${MOZILLA_SDK}/lib -L${MOZILLA_SDK}/bin -lxpcom -lnspr4 -lplds4 -lplc4"
- fi
- if [ "${XULRUNNER_INCLUDES}" = "" ]; then
- export XULRUNNER_INCLUDES="-include ${XULRUNNER_SDK}/include/mozilla-config.h -I${XULRUNNER_SDK}/include"
- fi
- if [ "${XULRUNNER_LIBS}" = "" ]; then
- export XULRUNNER_LIBS="-L${XULRUNNER_SDK}/lib -lxpcomglue"
- fi
- ;;
- "solaris.sparc64")
-# export PATH="/export/home/SUNWspro/bin:/usr/ccs/bin:/usr/bin"
- if [ "${CC}" = "" ]; then
- export CC="cc"
- fi
- if [ "${CXX}" = "" ]; then
- export CXX="CC"
- fi
- if [ "${CDE_HOME}" = "" ]; then
- export CDE_HOME="/usr/dt"
- fi
- if [ "${JAVA_HOME}" = "" ]; then
- export JAVA_HOME="/bluebird/teamswt/swt-builddir/JDKs/SOLARIS/SPARC64/jdk1.5.0_22"
- fi
-# if [ "${PKG_CONFIG_PATH}" = "" ]; then
-# export PKG_CONFIG_PATH="/usr/local/cairo-1.4.10/lib/pkgconfig"
-# fi
# if [ "${MOZILLA_SDK}" = "" ]; then
-# export MOZILLA_SDK="/bluebird/teamswt/swt-builddir/geckoSDK/1.4/gecko-sdk"
+# export MOZILLA_SDK="/bluebird/teamswt/bog/mozilla/solaris_x86/1.7/mozilla/dist/sdk"
+# fi
+# if [ "${XULRUNNER_SDK}" = "" ]; then
+# export XULRUNNER_SDK="/bluebird/teamswt/swt-builddir/xulrunner/1.8.0.1/solaris-x86/mozilla/dist/sdk"
# fi
# if [ "${MOZILLA_INCLUDES}" = "" ]; then
-# export MOZILLA_INCLUDES="-I${MOZILLA_SDK} -I${MOZILLA_SDK}/xpcom/include -I${MOZILLA_SDK}/nspr/include -I${MOZILLA_SDK}/embed_base/include -I${MOZILLA_SDK}/embedstring/include -I${MOZILLA_SDK}/string/include"
+# export MOZILLA_INCLUDES="-include ${MOZILLA_SDK}/include/mozilla-config.h -I${MOZILLA_SDK}/include"
# fi
# if [ "${MOZILLA_LIBS}" = "" ]; then
-# export MOZILLA_LIBS="${MOZILLA_SDK}/embedstring/bin/libembedstring.a -L${MOZILLA_SDK}/xpcom/bin -L${MOZILLA_SDK}/nspr/bin -lxpcom -lnspr4 -lplds4 -lplc4"
+# export MOZILLA_LIBS="-L${MOZILLA_SDK}/lib -L${MOZILLA_SDK}/bin -lxpcom -lnspr4 -lplds4 -lplc4"
# fi
- ;;
- "solaris.sparc")
- PATH="/export/home/SUNWspro/bin:/usr/ccs/bin:/usr/bin:$PATH"
+# if [ "${XULRUNNER_INCLUDES}" = "" ]; then
+# export XULRUNNER_INCLUDES="-include ${XULRUNNER_SDK}/include/mozilla-config.h -I${XULRUNNER_SDK}/include"
+# fi
+# if [ "${XULRUNNER_LIBS}" = "" ]; then
+# export XULRUNNER_LIBS="-L${XULRUNNER_SDK}/lib -lxpcomglue"
+# fi
+ ;;
+ "solaris.sparcv9")
+ PATH="/usr/ccs/bin:/opt/csw/bin:$PATH"
if [ "${CC}" = "" ]; then
CC="cc"
- fi
+ fi
if [ "${CXX}" = "" ]; then
CXX="CC"
fi
- if [ "${CDE_HOME}" = "" ]; then
- CDE_HOME="/usr/dt"
- fi
if [ "${JAVA_HOME}" = "" ]; then
- JAVA_HOME="/usr/j2se"
+ JAVA_HOME="/bluebird/teamswt/swt-builddir/JDKs/SOLARIS/SPARC64/jdk1.5.0_22"
fi
if [ "${PKG_CONFIG_PATH}" = "" ]; then
- PKG_CONFIG_PATH="/usr/local/lib/pkgconfig/"
- fi
- if [ "${MOZILLA_SDK}" = "" ]; then
- MOZILLA_SDK="/bluebird/teamswt/swt-builddir/geckoSDK/1.4/gecko-sdk"
- fi
- if [ "${MOZILLA_INCLUDES}" = "" ]; then
- MOZILLA_INCLUDES="-I${MOZILLA_SDK} -I${MOZILLA_SDK}/xpcom/include -I${MOZILLA_SDK}/nspr/include -I${MOZILLA_SDK}/embed_base/include -I${MOZILLA_SDK}/embedstring/include -I${MOZILLA_SDK}/string/include"
+ PKG_CONFIG_PATH="/opt/csw/lib/pkgconfig"
fi
- if [ "${MOZILLA_LIBS}" = "" ]; then
- MOZILLA_LIBS="${MOZILLA_SDK}/embedstring/bin/libembedstring.a -L${MOZILLA_SDK}/xpcom/bin -L${MOZILLA_SDK}/nspr/bin -lxpcom -lnspr4 -lplds4 -lplc4"
- fi
- export PATH CC CXX CDE_HOME JAVA_HOME PKG_CONFIG_PATH MOZILLA_SDK MOZILLA_INCLUDES MOZILLA_LIBS;
+# if [ "${MOZILLA_SDK}" = "" ]; then
+# export MOZILLA_SDK="/bluebird/teamswt/swt-builddir/geckoSDK/1.4/gecko-sdk"
+# fi
+# if [ "${MOZILLA_INCLUDES}" = "" ]; then
+# export MOZILLA_INCLUDES="-I${MOZILLA_SDK} -I${MOZILLA_SDK}/xpcom/include -I${MOZILLA_SDK}/nspr/include -I${MOZILLA_SDK}/embed_base/include -I${MOZILLA_SDK}/embedstring/include -I${MOZILLA_SDK}/string/include"
+# fi
+# if [ "${MOZILLA_LIBS}" = "" ]; then
+# export MOZILLA_LIBS="${MOZILLA_SDK}/embedstring/bin/libembedstring.a -L${MOZILLA_SDK}/xpcom/bin -L${MOZILLA_SDK}/nspr/bin -lxpcom -lnspr4 -lplds4 -lplc4"
+# fi
+ export PATH CC CXX JAVA_HOME PKG_CONFIG_PATH;
;;
"linux.s390")
if [ "${CC}" = "" ]; then
@@ -417,21 +443,6 @@ case $SWT_OS.$SWT_ARCH in
export JAVA_HOME="/bluebird/teamswt/swt-builddir/JDKs/AIX/PPC64/j564/sdk"
fi
;;
- "hpux.ia64_32")
- export PATH="/opt/hp-gcc/bin:/opt/gtk2.6/bin:/opt/${PATH}"
- if [ "${CC}" = "" ]; then
- export CC=gcc
- fi
- if [ "${JAVA_HOME}" = "" ]; then
- export JAVA_HOME="/opt/java1.5"
- fi
- if [ "${AWT_LIB_PATH}" = "" ]; then
- export AWT_LIB_PATH="/opt/java1.5/jre/lib/IA64N/"
- fi
- if [ "${PKG_CONFIG_PATH}" = "" ]; then
- export PKG_CONFIG_PATH="/opt/gtk2.6/lib/pkgconfig"
- fi
- ;;
"hpux.ia64")
export PATH="/opt/hp-gcc/bin:/opt/gtk_64bit/bin:/opt/${PATH}"
if [ "${CC}" = "" ]; then
@@ -451,7 +462,7 @@ esac
# For 64-bit CPUs, we have a switch
-if [ ${MODEL} = 'x86_64' -o ${MODEL} = 'ppc64' -o ${MODEL} = 'ia64' -o ${MODEL} = 'sparc64' -o ${MODEL} = 's390x' -o ${MODEL} = 'ppc64le' -o ${MODEL} = 'aarch64' ]; then
+if [ ${MODEL} = 'x86_64' -o ${MODEL} = 'ppc64' -o ${MODEL} = 'ia64' -o ${MODEL} = 'sparcv9' -o ${MODEL} = 's390x' -o ${MODEL} = 'ppc64le' -o ${MODEL} = 'aarch64' ]; then
SWT_PTR_CFLAGS=-DJNI64
if [ -d /lib64 ]; then
XLIB64=-L/usr/X11R6/lib64
@@ -476,11 +487,10 @@ if [ ${MODEL} = 'x86_64' -o ${MODEL} = 'ppc64' -o ${MODEL} = 'ia64' -o ${MODEL}
export SWT_LFLAGS
fi
fi
- if [ ${MODEL} = 'sparc64' ]; then
- SWT_PTR_CFLAGS="${SWT_PTR_CFLAGS} -xarch=v9"
- SWT_LFLAGS="-xarch=v9"
- SWT_CDE_64SUFFIX="/64"
- export SWT_LFLAGS SWT_CDE_64SUFFIX
+ if [ ${OS} = 'SunOS' ]; then
+ SWT_PTR_CFLAGS="${SWT_PTR_CFLAGS} -m64"
+ SWT_LFLAGS=-m64
+ export SWT_LFLAGS
fi
export SWT_PTR_CFLAGS
fi
@@ -495,25 +505,15 @@ if [ ${MODEL} = 'x86' -a ${SWT_OS} = 'linux' ]; then
export SWT_LFLAGS SWT_PTR_CFLAGS
fi
-if [ x`pkg-config --exists gnome-vfs-module-2.0 libgnome-2.0 libgnomeui-2.0 && echo YES` = "xYES" -a ${MODEL} != "sparc64" -a ${MODEL} != 'ia64' -a ${GTK_VERSION} != '3.0' ]; then
- echo "libgnomeui-2.0 found, compiling SWT program support using GNOME"
- MAKE_GNOME=make_gnome
-else
- if [ ${GTK_VERSION} != '3.0' ]; then
- echo "libgnome-2.0 and libgnomeui-2.0 not found:"
- echo " *** SWT Program support for GNOME will not be compiled."
- fi
-fi
if [ x`pkg-config --exists cairo && echo YES` = "xYES" ]; then
- echo "Cairo found, compiling SWT support for the cairo graphics library."
+ func_echo_plus "Cairo found, compiling SWT support for the cairo graphics library."
MAKE_CAIRO=make_cairo
else
- echo "Cairo not found:"
- echo " *** Advanced graphics support using cairo will not be compiled."
+ func_echo_error "Cairo not found: Advanced graphics support using cairo will not be compiled."
fi
-if [ -z "${MOZILLA_INCLUDES}" -a -z "${MOZILLA_LIBS}" -a ${MODEL} != 'sparc64' ]; then
+if [ -z "${MOZILLA_INCLUDES}" -a -z "${MOZILLA_LIBS}" -a ${SWT_OS} != 'solaris' ]; then
if [ x`pkg-config --exists mozilla-xpcom && echo YES` = "xYES" ]; then
MOZILLA_INCLUDES=`pkg-config --cflags mozilla-xpcom`
MOZILLA_LIBS=`pkg-config --libs mozilla-xpcom`
@@ -533,8 +533,8 @@ if [ -z "${MOZILLA_INCLUDES}" -a -z "${MOZILLA_LIBS}" -a ${MODEL} != 'sparc64' ]
export XULRUNNER_LIBS
MAKE_MOZILLA=make_xulrunner
else
- echo "None of the following libraries were found: Mozilla/XPCOM, Firefox/XPCOM, or XULRunner/XPCOM"
- echo " *** Mozilla embedding support will not be compiled."
+ func_echo_error "None of the following libraries were found: Mozilla/XPCOM, Firefox/XPCOM, or XULRunner/XPCOM:"
+ func_echo_error " >> Mozilla embedding support will not be compiled."
fi
fi
@@ -550,21 +550,102 @@ if [ -z "${AWT_LIB_PATH}" ]; then
fi
if [ -f ${AWT_LIB_PATH}/libjawt.* ]; then
- echo "libjawt.so found, the SWT/AWT integration library will be compiled."
+ func_echo_plus "libjawt.so found, the SWT/AWT integration library will be compiled."
MAKE_AWT=make_awt
else
- echo "libjawt.so not found, the SWT/AWT integration library will not be compiled."
+ func_echo_error "libjawt.so not found, the SWT/AWT integration library will not be compiled."
fi
-# Announce our target
-echo "Building SWT/GTK+ for $SWT_OS $SWT_ARCH"
+## Interaction(s) with makefile(s) below:
+
+# Configure OUTPUT_DIR
if [ "x${OUTPUT_DIR}" = "x" ]; then
- OUTPUT_DIR=../../../org.eclipse.swt.gtk.${SWT_OS}.${SWT_ARCH}
- export OUTPUT_DIR
+ OUTPUT_DIR=../../../../../eclipse.platform.swt.binaries/bundles/org.eclipse.swt.gtk.${SWT_OS}.${SWT_ARCH}
+ if [ -d "$OUTPUT_DIR" ]; then
+ export OUTPUT_DIR
+ fi
fi
-if [ "x${1}" = "xclean" ]; then
+# Safety check:
+# If "install" was given as target, check that OUTPUT_DIR is a valid directory.
+for i in "$@"; do # loop over all input paramaters
+ if [ "$i" = "install" ]; then
+ if [ ! -d "${OUTPUT_DIR}" ]; then # if directory not valid.
+ func_echo_error "ERROR: 'install' was passed in as paramater, but OUTPUT_DIR :"
+ func_echo_error "(${OUTPUT_DIR}) "
+ func_echo_error "is not a valid directory."
+ func_echo_error "1) Maybe you forgot to checkout SWT binaries? See: https://git.eclipse.org/c/platform/eclipse.platform.swt.binaries.git/"
+ func_echo_error "2) SWT and SWT binary git repos have to be in the same folder, (usually ~/git/...). Maybe you put them in different folders?"
+ func_echo_error "Exit with failure"
+ exit 1
+ fi
+ fi
+done
+
+
+func_clean_up () {
+ func_echo_plus "Cleaning up..."
${MAKE_TYPE} -f $MAKEFILE clean
-else
- ${MAKE_TYPE} -f $MAKEFILE all $MAKE_GNOME $MAKE_CAIRO $MAKE_AWT $MAKE_MOZILLA ${1} ${2} ${3} ${4} ${5} ${6} ${7} ${8} ${9}
+}
+
+if [ "x${1}" = "xclean" ]; then
+ func_clean_up
+ shift
+
+ # if there are no more other parameters, exit.
+ # don't exit if there are more paramaters. Useful for one-liners like: ./build.sh clean -gtk-all install
+ if [ "$1" = "" ]; then
+ exit $?
+ fi
fi
+
+
+# Announce our target
+func_echo_plus "Building SWT/GTK+ for Architectures: $SWT_OS $SWT_ARCH"
+
+func_build_gtk3 () {
+ export GTK_VERSION=3.0
+ func_echo_plus "Building GTK3 bindings:"
+ ${MAKE_TYPE} -f $MAKEFILE all $MAKE_CAIRO $MAKE_AWT $MAKE_MOZILLA "${@}"
+ RETURN_VALUE=$? #make can return 1 or 2 if it fails. Thus need to cache it in case it's used programmatically somewhere.
+ if [ "$RETURN_VALUE" -eq 0 ]; then
+ func_echo_plus "GTK3 Build succeeded"
+ else
+ func_echo_error "GTK3 Build failed, aborting further actions.."
+ exit $RETURN_VALUE
+ fi
+}
+
+func_build_gtk2 () {
+ func_echo_plus "Building GTK2 bindings:"
+ export GTK_VERSION=2.0
+ ${MAKE_TYPE} -f $MAKEFILE all $MAKE_CAIRO $MAKE_AWT $MAKE_MOZILLA "$@"
+ RETURN_VALUE=$?
+ if [ "$RETURN_VALUE" -eq 0 ]; then
+ func_echo_plus "GTK2 Build succeeded"
+ else
+ func_echo_error "GTK2 Build failed."
+ exit $RETURN_VALUE
+ fi
+}
+
+
+if [ "$1" = "-gtk-all" ]; then
+ shift
+ func_echo_plus "Note: When building multiple GTK versions, a cleanup is required (and automatically performed) between them."
+ func_clean_up
+ func_build_gtk3 "$@"
+ func_clean_up
+ func_build_gtk2 "$@"
+elif [ "$1" = "-gtk3" ]; then
+ shift
+ func_build_gtk3 "$@"
+elif [ "$1" = "-gtk2" ]; then
+ shift
+ func_build_gtk2 "$@"
+elif [ "${GTK_VERSION}" = "3.0" ]; then
+ func_build_gtk3 "$@"
+elif [ "${GTK_VERSION}" = "2.0" -o "${GTK_VERSION}" = "" ]; then
+ export GTK_VERSION="2.0"
+ func_build_gtk2 "$@"
+fi \ No newline at end of file

Back to the top