On 11/01/2011 01:08 AM, David Chisnall wrote:
On 31 Oct 2011, at 23:31, Ulrich Pöhlmann wrote:

At present, Etoile compile breaks at LanguageKitCodeGen with my environment. I 
will try to investigate that as soon as possible.
LK should work with the LLVM 3.0 release and probably with 2.9.  It may work 
with a random trunk version, but LLVM APIs have a nasty habit of changing one 
day to the next, so this isn't guaranteed.

David

-- Sent from my IBM 1620


_______________________________________________
Etoile-dev mailing list
[email protected]
https://mail.gna.org/listinfo/etoile-dev

I enhanced "build.sh" in order to support the current release candiate of llvm (3.0rc1) (and made some other changes in the build system). Unfortunately, I'm running into some linker problems |(/usr/bin/ld:crt1.o:Nosuch file:Nosuch file or directory)| on my platform with llvm/clang 2.9 and 3.0rc1. I think it has something to do with the version of gcc (gcc (Ubuntu/Linaro 4.6.1-9ubuntu3) 4.6.1) I'm using to generate llvm/clang.

The current llvm/clang trunk works fine for Etoile trunk on my machine.

Uli P.

--
Ulrich Pöhlmann
Karlstraße 25
88045 Friedrichshafen

Mobil: +49 176 20940291

Index: BuildScripts/testbuild.config
===================================================================
--- BuildScripts/testbuild.config	(revision 7349)
+++ BuildScripts/testbuild.config	(working copy)
@@ -12,7 +12,7 @@
 export SVN_ACCESS="svn co http://";
 
 # Make parallel building option: -j<number> or ''
-export J=-j4
+export J=-j2
 
 #
 # Any variables below can be undefined to skip the action it involves (usually 
@@ -55,26 +55,29 @@
 # Etoile version: 'trunk'
 export ETOILE_VERSION=trunk
 
-# LLVM version: a valid version or ''
-#export LLVM_VERSION=2.9
+# LLVM version: a valid version, 'trunk' or ''
+export LLVM_VERSION=trunk
 # LLVM configure script: llvm-configure-basic.sh or llvm-configure-ubuntu.sh
-export LLVM_CONFIGURE=llvm-configure-basic.sh
+export LLVM_CONFIGURE="$CONFIGURE --enable-optimized=yes --enable-assertions=yes --enable-debug-runtime=yes --enable-debug-symbols=yes --enable-libffi=yes --enable-targets=x86"
 
-
 # GNUstep Runtime (aka libobjc2) version: a valid version, 'trunk' or ''
-export RUNTIME_VERSION=1.5
+export RUNTIME_VERSION=trunk
 # GNUstep Make version: a valid version, 'trunk' or ''
-export MAKE_VERSION=2.6.1
+export MAKE_VERSION=trunk
 # GNUstep Base version: a valid version, 'trunk' or ''
-export BASE_VERSION=1.22.0
+export BASE_VERSION=trunk
 # GNUstep Gui version: a valid version, 'trunk' or ''
-export GUI_VERSION=0.20.0
+export GUI_VERSION=trunk
 # GNUstep Back version: a valid version, 'trunk' or ''
-export BACK_VERSION=0.20.1
+export BACK_VERSION=trunk
 # Gorm version: a valid version or ''
-export GORM_VERSION=1.2.10
+export GORM_VERSION=trunk
 
 # LLVM git mirror
 export LLVM_URL_GIT=http://llvm.org/git/llvm.git
 # Clang git mirror
 export CLANG_URL_GIT=http://llvm.org/git/clang.git
+
+#
+# End of file.
+#
Index: BuildScripts/ubuntu-dep-install.sh
===================================================================
--- BuildScripts/ubuntu-dep-install.sh	(revision 7349)
+++ BuildScripts/ubuntu-dep-install.sh	(working copy)
@@ -1,8 +1,24 @@
-# Install Etoile and GNUstep dependencies for Ubuntu 9.04 (copied from INSTALL.Ubuntu)
-# Universe repository needs to be enabled in /etc/apt/sources.list for libonig-dev to show up
+#!/bin/bash
 
-sudo aptitude install gobjc-4.3 libxml2-dev libxslt1-dev libffi-dev libssl-dev libjpeg62-dev libtiff4-dev libpng12-dev libgif-dev libfreetype6-dev libx11-dev libcairo2-dev libxft-dev libxmu-dev dbus libdbus-1-dev hal libstartup-notification0-dev libxcursor-dev libxss-dev xscreensaver g++ libpoppler-dev libonig-dev  lemon libgmp3-dev postgresql libpq-dev libavcodec-dev libavformat-dev libtagc0-dev libmp4v2-dev
+# First of all, we need to determine the ubuntu version we are running on.
+LSB_RELEASE=`lsb_release -r | awk -F':\t' '{ print $2 }'`
 
+if [ "${LSB_RELEASE}" == "9.04" ]; then
+    # Etoile and GNUstep dependencies for Ubuntu 9.04 (copied from 
+    # INSTALL.Ubuntu). Universe repository needs to be enabled in 
+    # "/etc/apt/sources.list" for libonig-dev to show up.
+    DEPS="gobjc-4.3 libxml2-dev libxslt1-dev libffi-dev libssl-dev libjpeg62-dev libtiff4-dev libpng12-dev libgif-dev libfreetype6-dev libx11-dev libcairo2-dev libxft-dev libxmu-dev dbus libdbus-1-dev hal libstartup-notification0-dev libxcursor-dev libxss-dev xscreensaver g++ libpoppler-dev libonig-dev  lemon libgmp3-dev postgresql libpq-dev libavcodec-dev libavformat-dev libtagc0-dev libmp4v2-dev"
+else
+    # Etoile and GNUstep dependencies for Ubuntu > 9.04 (based on content of
+    # INSTALL.Ubuntu). Universe repository needs to be enabled in 
+    # "/etc/apt/sources.list" for libonig-dev to show up.
+    DEPS="libxml2-dev libxslt1-dev libffi-dev libssl-dev libjpeg62-dev libtiff4-dev libpng12-dev libgif-dev libfreetype6-dev libx11-dev libcairo2-dev libxft-dev libxmu-dev dbus libdbus-1-dev hal libstartup-notification0-dev libxcursor-dev libxss-dev xscreensaver g++ libpoppler-dev libonig-dev  lemon libgmp3-dev postgresql libpq-dev libavcodec-dev libavformat-dev libtagc0-dev libmp4v2-dev graphviz-dev"
+fi
+
+# Install Etoile and GNUstep dependencies.
+echo "Installing Etoile and GNUstep dependencies for Ubuntu $LSB_RELEASE."
+sudo aptitude install ${DEPS}
+
 # Install Subversion to be able to check out Etoile
-
+echo "Installing subversion to be able to check out Etoile."
 sudo aptitude install subversion
Index: BuildScripts/build.sh
===================================================================
--- BuildScripts/build.sh	(revision 7349)
+++ BuildScripts/build.sh	(working copy)
@@ -70,6 +70,7 @@
 
 PROFILE_SCRIPT=${PROFILE_SCRIPT:-"$PWD/defaultbuild.config"}
 PROFILE_SCRIPT=${PROFILE_SCRIPT_override:-"$PROFILE_SCRIPT"}
+# "Load" build profile.
 . $PROFILE_SCRIPT
 
 # Define variables if not defined on command line or in build profile
@@ -117,33 +118,67 @@
 export LOG_NAME=llvm-build
 
 export LLVM_SOURCE_DIR=$BUILD_DIR/llvm-$LLVM_VERSION
-export LLVM_INSTALL_DIR=$PREFIX_DIR/llvm-install-$LLVM_VERSION
+# export LLVM_INSTALL_DIR=$PREFIX_DIR/llvm-install-$LLVM_VERSION
+# I want to have llvm installed under "/usr/local".
+export LLVM_INSTALL_DIR="/usr/local"
 
-if [ "$LLVM_VERSION" = "trunk" ]; then
-	if [ ! -d $LLVM_SOURCE_DIR ] 
-	then
+if [ "$LLVM_VERSION" == "trunk" ]; then
+	if [ ! -d $LLVM_SOURCE_DIR ]; then
 		echo "Fetching LLVM trunk using a GIT mirror at $LLVM_URL_GIT"
 		git clone $LLVM_URL_GIT $LLVM_SOURCE_DIR
 	else
 		echo "Updating LLVM trunk using a GIT mirror at $LLVM_URL_GIT"
-		git pull $LLVM_SOURCE_DIR
+		cd $LLVM_SOURCE_DIR
+        git pull
 	fi
+	if [ ! -d $LLVM_SOURCE_DIR/tools/clang ]; then
+		echo "Fetching CLANG trunk using a GIT mirror at $CLANG_URL_GIT"
+		git clone $CLANG_URL_GIT $LLVM_SOURCE_DIR/tools/clang
+    else
+		echo "Updating CLANG trunk using a GIT mirror at $CLANG_URL_GIT"
+        cd $LLVM_SOURCE_DIR/tools/clang
+        git pull
+    fi
 elif [ -n "$LLVM_VERSION" -a ! -d $LLVM_SOURCE_DIR ]; then
+    LLVM_ARCHIVE_URL="http://llvm.org/releases/${LLVM_VERSION}";
+    LLVM_ARCHIVE_FILE="llvm-${LLVM_VERSION}.tgz"
+    CLANG_ARCHIVE_FILE="clang-${LLVM_VERSION}.tgz"
+
+    # Things are a little bit different at present for llvm-3.0 which has
+    # pre-release status (release is scheduled in November).
+    if [ "${LLVM_VERSION}" == "3.0rc1" ]; then
+        LLVM_ARCHIVE_URL="http://llvm.org/pre-releases/3.0/rc1/sources";
+        LLVM_ARCHIVE_FILE="llvm-${LLVM_VERSION}.src.tar.gz"
+        CLANG_ARCHIVE_FILE="clang-${LLVM_VERSION}.src.tar.gz"
+    fi
+
 	echo "Fetching LLVM $LLVM_VERSION from LLVM release server"
-	wget -nc http://llvm.org/releases/${LLVM_VERSION}/llvm-${LLVM_VERSION}.tar.gz
-	tar -xzf llvm-{LLVM_VERSION}.tar.gz
+    wget -nc ${LLVM_ARCHIVE_URL}/${LLVM_ARCHIVE_FILE}
+    tar -xzf ${LLVM_ARCHIVE_FILE}
+
 	echo "Fetching Clang $LLVM_VERSION from LLVM release server"
-	wget -nc  http://llvm.org/releases/${LLVM_VERSION}/clang-${LLVM_VERSION}.tar.gz
-	tar -xzf clang-{LLVM_VERSION}.tar.gz
+	wget -nc ${LLVM_ARCHIVE_URL}/${CLANG_ARCHIVE_FILE}
+	tar -xzf ${CLANG_ARCHIVE_FILE}
+
+    # This is needed due to a dead symbolic link in extracted pre release 
+    # archive.
+    if [ "${LLVM_VERSION}" == "3.0rc1" ]; then
+        rm llvm-${LLVM_VERSION}/tools/clang
+    fi
+    # Move clang source code into llvm distribution in order to have it
+    # automatically build along with the llvm build
+    mv clang-${LLVM_VERSION} llvm-${LLVM_VERSION}/tools/clang
 fi
 
-if [ -n "$LLVM_VERSION" ]; then
-
+# Configure and build llvm
+if [ -n "$LLVM_SOURCE_DIR" ]; then
 	cd $LLVM_SOURCE_DIR
-	./${LLVM_CONFIGURE} --prefix=$LLVM_INSTALL_DIR && $MAKE_BUILD && $MAKE_INSTALL
+	${LLVM_CONFIGURE} --prefix=$LLVM_INSTALL_DIR && $MAKE_BUILD && $MAKE_INSTALL
 	cd ..
-	# Put LLVM in the path
+	# Put LLVM in the path. 
 	export PATH=$LLVM_INSTALL_DIR/bin:$PATH
+    # Make Clang the C/ObjC compiler rather than GCC
+    export CC=clang
 fi
 
 # Download, build and Install GNUstep
@@ -196,3 +231,6 @@
 #echo " -- The script path is $BUILD_DIR/Etoile/setup.sh -- "
 #echo
 
+#
+# End of file.
+#
Index: BuildScripts/build-gnustep.sh
===================================================================
--- BuildScripts/build-gnustep.sh	(revision 7349)
+++ BuildScripts/build-gnustep.sh	(working copy)
@@ -1,12 +1,12 @@
-#!/bin/sh
+#!/bin/bash
 
 export LOG_NAME=gnustep-make-build
 
 # Download, build and install GNUstep Make
 echo "Fetching GNUstep Make into $PWD"
-if [ "$MAKE_VERSION" = "trunk" ]; then
+if [ "$MAKE_VERSION" == "trunk" ]; then
 
-	${SVN_ACCESS}svn.gna.org/svn/gnustep/dev-libs/make/${MAKE_VERSION} gnustep-make-${MAKE_VERSION}
+	${SVN_ACCESS}svn.gna.org/svn/gnustep/tools/make/${MAKE_VERSION} gnustep-make-${MAKE_VERSION}
 
 elif [ -n "$MAKE_VERSION" ]; then
 
@@ -22,8 +22,10 @@
 	cd ..
 
 	# Source the GNUstep shell script, and add it to the user's bashrc
-	. ${PREFIX_DIR%/}/System/Library/Makefiles/GNUstep.sh
-	echo ". ${PREFIX_DIR%/}/System/Library/Makefiles/GNUstep.sh" >> ~/.bashrc
+    . ${PREFIX_DIR%/}/System/Library/Makefiles/GNUstep.sh
+    if [ -z "`cat ~/.bashrc | grep ${PREFIX_DIR%/}/System/Library/Makefiles/GNUstep.sh`" ]; then
+	    echo ". ${PREFIX_DIR%/}/System/Library/Makefiles/GNUstep.sh" >> ~/.bashrc
+    fi
 fi
 echo $PWD
 
@@ -31,9 +33,9 @@
 
 export LOG_NAME=gnustep-libobjc2-build
 
-if [ "$RUNTIME_VERSION" = "trunk" ]; then
+if [ "$RUNTIME_VERSION" == "trunk" ]; then
 
-	${SVN_ACCESS}svn.gna.org/svn/gnustep/dev-libs/libobjc2/${RUNTIME_VERSION} libobjc2-${RUNTIME_VERSION}
+	${SVN_ACCESS}svn.gna.org/svn/gnustep/libs/libobjc2/${RUNTIME_VERSION} libobjc2-${RUNTIME_VERSION}
 
 elif [ -n "$RUNTIME_VERSION" ]; then
 
@@ -56,8 +58,11 @@
 	( $CONFIGURE --prefix=$PREFIX_DIR --with-layout=gnustep --enable-debug-by-default ) && ($MAKE_BUILD) && ($MAKE_INSTALL)
 	cd ..
 
+	# Source the GNUstep shell script, and add it to the user's bashrc
 	. ${PREFIX_DIR%/}/System/Library/Makefiles/GNUstep.sh
-	echo ". ${PREFIX_DIR%/}/System/Library/Makefiles/GNUstep.sh" >> ~/.bashrc
+    if [ -z "`cat ~/.bashrc | grep ${PREFIX_DIR%/}/System/Library/Makefiles/GNUstep.sh`" ]; then
+	    echo ". ${PREFIX_DIR%/}/System/Library/Makefiles/GNUstep.sh" >> ~/.bashrc
+    fi
 
 fi
 
@@ -65,9 +70,9 @@
 
 export LOG_NAME=gnustep-base-build
 
-if [ "$BASE_VERSION" = "trunk" ]; then
+if [ "$BASE_VERSION" == "trunk" ]; then
 
-	${SVN_ACCESS}svn.gna.org/svn/gnustep/dev-libs/base/${BASE_VERSION} gnustep-base-${BASE_VERSION}
+	${SVN_ACCESS}svn.gna.org/svn/gnustep/libs/base/${BASE_VERSION} gnustep-base-${BASE_VERSION}
 
 
 elif [ -n "$BASE_VERSION" ]; then
@@ -89,9 +94,9 @@
 
 export LOG_NAME=gnustep-gui-build
 
-if [ "$GUI_VERSION" = "trunk" ]; then
+if [ "$GUI_VERSION" == "trunk" ]; then
 
-	${SVN_ACCESS}svn.gna.org/svn/gnustep/dev-libs/gui/${GUI_VERSION} gnustep-gui-${GUI_VERSION}
+	${SVN_ACCESS}svn.gna.org/svn/gnustep/libs/gui/${GUI_VERSION} gnustep-gui-${GUI_VERSION}
 
 
 elif [ -n "$GUI_VERSION" ]; then
@@ -113,14 +118,14 @@
 
 export LOG_NAME=gnustep-back-build
 
-if [ "$BACK_VERSION" = "trunk" ]; then
+if [ "$BACK_VERSION" == "trunk" ]; then
 
-	${SVN_ACCESS}svn.gna.org/svn/gnustep/dev-libs/back/${BACK_VERSION} gnustep-back-${BACK_VERSION}
+	${SVN_ACCESS}svn.gna.org/svn/gnustep/libs/back/${BACK_VERSION} gnustep-back-${BACK_VERSION}
 
 elif [ -n "$BACK_VERSION" ]; then
 
 	wget -nc ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-back-${BACK_VERSION}.tar.gz
-	tar -xzf gnustep-back-${GUI_VERSION}.tar.gz
+	tar -xzf gnustep-back-${BACK_VERSION}.tar.gz
 
 fi
 
@@ -136,9 +141,9 @@
 
 export LOG_NAME=gnustep-gorm-build
 
-if [ "$GORM_VERSION" = "trunk" ]; then
+if [ "$GORM_VERSION" == "trunk" ]; then
 
-	echo "WARNING: Installing Gorm from svn trunk is not supported yet"
+    ${SVN_ACCESS}svn.gna.org/svn/gnustep/apps/gorm/${GORM_VERSION} gorm-${GORM_VERSION}
 
 elif [ -n "$GORM_VERSION" ]; then
 
@@ -150,3 +155,7 @@
 	cd ..
 
 fi
+
+#
+# End of file.
+#
_______________________________________________
Etoile-dev mailing list
[email protected]
https://mail.gna.org/listinfo/etoile-dev

Reply via email to