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