User:DavidFlatz: Difference between revisions
Jump to navigation
Jump to search
DavidFlatz (talk | contribs) No edit summary |
Updated to the new path of Delivery in Src. |
||
| (2 intermediate revisions by one other user not shown) | |||
| Line 2: | Line 2: | ||
yay \o/ | yay \o/ | ||
== My little Linux Eiffel Compiling Log == | |||
<pre> | |||
# I assume that you have the binary version of Eiffel 5.7 | |||
# installed and that it's working. (ISE_EIFFEL, ISE_PLATFORM and | |||
# PATH set) | |||
# get the sources | |||
svn co https://svn.eiffel.com/eiffelstudio/trunk eiffelsvn | |||
export EIFFEL_SVN=`pwd`/eiffelsvn | |||
# get the automatic build script build-studio | |||
wget http://se.inf.ethz.ch/people/schoeller/download/build-studio | |||
chmod +x build-studio | |||
# roll your first eiffel compiler | |||
./build-studio | |||
# go to sleep and don't touch your computer (your memory's gonna get flushed | |||
# make sure you have enough swap or the kernel will kill ec) | |||
# build the first delivery | |||
mkdir eiffel01 | |||
export EIFFEL01=`pwd`/eiffel01 | |||
cp -r $EIFFEL_SVN/Src/Delivery/studio $EIFFEL_SVN/Src/Delivery/eifinit $EIFFEL01 | |||
mkdir $EIFFEL01/studio/spec/$ISE_PLATFORM | |||
mkdir $EIFFEL01/studio/spec/$ISE_PLATFORM/bin | |||
mkdir $EIFFEL01/studio/spec/$ISE_PLATFORM/include | |||
mkdir $EIFFEL01/studio/spec/$ISE_PLATFORM/lib | |||
mkdir $EIFFEL01/studio/help/defaults/$ISE_PLATFORM | |||
mkdir $EIFFEL01/studio/config/$ISE_PLATFORM | |||
cp $EIFFEL01/studio/spec/unix/* $EIFFEL01/studio/spec/$ISE_PLATFORM/bin | |||
cp $EIFFEL01/studio/config/unix/* $EIFFEL01/studio/config/$ISE_PLATFORM | |||
cp $EIFFEL_SVN/Src/C/run-time/*.h $EIFFEL01/studio/spec/$ISE_PLATFORM/include | |||
cp $EIFFEL_SVN/Src/C/config.sh $EIFFEL01/studio/spec/$ISE_PLATFORM/include | |||
cp $EIFFEL_SVN/Src/C/run-time/lib* $EIFFEL01/studio/spec/$ISE_PLATFORM/lib | |||
cp $EIFFEL_SVN/Src/C/run-time/x2c $EIFFEL01/studio/spec/$ISE_PLATFORM/bin | |||
cp $EIFFEL_SVN/Src/ipc/daemon/estudio $EIFFEL01/studio/spec/$ISE_PLATFORM/bin | |||
cp build/es $EIFFEL01/studio/spec/$ISE_PLATFORM/bin | |||
# now we have a kind of working delivery | |||
export ISE_EIFFEL=$EIFFEL01 | |||
export ISE_LIBRARY=$EIFFEL_SVN/Src | |||
export PATH=$EIFFEL01/studio/spec/$ISE_PLATFORM/bin:$PATH | |||
# say hello to your newly compiled | |||
estudio | |||
# now we want to compile the eiffel compiler natively .. we have to patch the | |||
# build-studio script | |||
cp build-studio build-studio.new | |||
patch -p1 << EOT | |||
diff -Naur a/build-studio.new b/build-studio.new | |||
--- a/build-studio.new 2006-05-02 19:44:12.000000000 +0200 | |||
+++ b/build-studio.new 2006-05-02 19:44:18.000000000 +0200 | |||
@@ -129,6 +129,7 @@ | |||
cd $BUILD_DIR | |||
cp "$EIFFEL_SRC/Eiffel/Ace/batch.unix.ace" batch.ace | |||
cp "$EIFFEL_SRC/Eiffel/Ace/newbench.linux.ace" ide.ace | |||
+cp "$EIFFEL_SRC/Eiffel/Ace/ec.acex" ec.acex | |||
# sed -i 's+Eiffel/common+common+g' batch.ace | |||
# sed -i 's+Eiffel/common+common+g' ide.ace | |||
echo "done." | |||
@@ -137,7 +138,8 @@ | |||
then | |||
echo -n "Compiling batch ... " | |||
cd $BUILD_DIR | |||
- ec -stop -ace batch.ace -finalize > $ROOT_DIR/compile_batch.log 2>&1 | |||
+ #ec -stop -ace batch.ace -finalize > $ROOT_DIR/compile_batch.log 2>&1 | |||
+ ec -stop -config ec.acex -target batch -finalize > $ROOT_DIR/compile_batch.log 2>&1 | |||
echo "done." | |||
if [ $? != 0 ] | |||
then | |||
@@ -147,7 +149,8 @@ | |||
fi | |||
echo -n "Patching the Makefile.SH ... " | |||
- cd $BUILD_DIR/EIFGEN/F_code | |||
+ cd $BUILD_DIR/EIFGENs/batch/F_code | |||
+ #cd $BUILD_DIR/EIFGEN/F_code | |||
sed -i 's/libmtcompiler.a/libmtwcompiler.a/g' Makefile.SH | |||
sed -i 's/\$(EXTERNALS) \$(EIFLIB)/\$\(EIFLIB\) \$\(EXTERNALS\)/g' \ | |||
Makefile.SH | |||
@@ -167,7 +170,8 @@ | |||
echo -n "Compiling the IDE ... " | |||
cd $BUILD_DIR | |||
rm -rf EIFGEN *.epr | |||
- ec -stop -ace ide.ace -finalize > $ROOT_DIR/compile_ide.log 2>&1 | |||
+ #ec -stop -ace ide.ace -finalize > $ROOT_DIR/compile_ide.log 2>&1 | |||
+ ec -stop -config ec.acex -target bench -finalize > $ROOT_DIR/compile_ide.log 2>&1 | |||
echo "done." | |||
if [ $? != 0 ] | |||
then | |||
@@ -176,8 +180,9 @@ | |||
exit 1 | |||
fi | |||
- echo -n "Patching the Makefile ... " | |||
- cd $BUILD_DIR/EIFGEN/F_code | |||
+ #echo -n "Patching the Makefile ... " | |||
+ cd $BUILD_DIR/EIFGENs/bench/F_code | |||
+ # cd $BUILD_DIR/EIFGEN/F_code | |||
# sed -i 's/libmtcompiler.a/libmtwcompiler.a/g' Makefile.SH | |||
# sed -i 's/\$(EXTERNALS) \$(EIFLIB)/\$\(EIFLIB\) \$\(EXTERNALS\)/g' \ | |||
# Makefile.SH | |||
EOT | |||
mv build build.old | |||
chmod +x build-studio.new | |||
./build-studio.new | |||
# zzzz.. huh? ..woah! my first natively compiled ec! | |||
cksfv build/ec $EIFFEL01/studio/spec/$ISE_PLATFORM/bin/ec | |||
# build/ec 6E297D24 | |||
# $EIFFEL01/studio/spec/$ISE_PLATFORM/bin/ec 97994877 | |||
# | |||
# hrm.. next turn: | |||
mv $EIFFEL01/studio/spec/$ISE_PLATFORM/bin/ec $EIFFEL01/studio/spec/$ISE_PLATFORM/bin/ec.old | |||
cp build/ec $EIFFEL01/studio/spec/$ISE_PLATFORM/bin/ | |||
mv build build.old2 | |||
./build-studio.new | |||
# | |||
</pre> | |||
Latest revision as of 23:25, 27 January 2012
yay \o/
My little Linux Eiffel Compiling Log
# I assume that you have the binary version of Eiffel 5.7
# installed and that it's working. (ISE_EIFFEL, ISE_PLATFORM and
# PATH set)
# get the sources
svn co https://svn.eiffel.com/eiffelstudio/trunk eiffelsvn
export EIFFEL_SVN=`pwd`/eiffelsvn
# get the automatic build script build-studio
wget http://se.inf.ethz.ch/people/schoeller/download/build-studio
chmod +x build-studio
# roll your first eiffel compiler
./build-studio
# go to sleep and don't touch your computer (your memory's gonna get flushed
# make sure you have enough swap or the kernel will kill ec)
# build the first delivery
mkdir eiffel01
export EIFFEL01=`pwd`/eiffel01
cp -r $EIFFEL_SVN/Src/Delivery/studio $EIFFEL_SVN/Src/Delivery/eifinit $EIFFEL01
mkdir $EIFFEL01/studio/spec/$ISE_PLATFORM
mkdir $EIFFEL01/studio/spec/$ISE_PLATFORM/bin
mkdir $EIFFEL01/studio/spec/$ISE_PLATFORM/include
mkdir $EIFFEL01/studio/spec/$ISE_PLATFORM/lib
mkdir $EIFFEL01/studio/help/defaults/$ISE_PLATFORM
mkdir $EIFFEL01/studio/config/$ISE_PLATFORM
cp $EIFFEL01/studio/spec/unix/* $EIFFEL01/studio/spec/$ISE_PLATFORM/bin
cp $EIFFEL01/studio/config/unix/* $EIFFEL01/studio/config/$ISE_PLATFORM
cp $EIFFEL_SVN/Src/C/run-time/*.h $EIFFEL01/studio/spec/$ISE_PLATFORM/include
cp $EIFFEL_SVN/Src/C/config.sh $EIFFEL01/studio/spec/$ISE_PLATFORM/include
cp $EIFFEL_SVN/Src/C/run-time/lib* $EIFFEL01/studio/spec/$ISE_PLATFORM/lib
cp $EIFFEL_SVN/Src/C/run-time/x2c $EIFFEL01/studio/spec/$ISE_PLATFORM/bin
cp $EIFFEL_SVN/Src/ipc/daemon/estudio $EIFFEL01/studio/spec/$ISE_PLATFORM/bin
cp build/es $EIFFEL01/studio/spec/$ISE_PLATFORM/bin
# now we have a kind of working delivery
export ISE_EIFFEL=$EIFFEL01
export ISE_LIBRARY=$EIFFEL_SVN/Src
export PATH=$EIFFEL01/studio/spec/$ISE_PLATFORM/bin:$PATH
# say hello to your newly compiled
estudio
# now we want to compile the eiffel compiler natively .. we have to patch the
# build-studio script
cp build-studio build-studio.new
patch -p1 << EOT
diff -Naur a/build-studio.new b/build-studio.new
--- a/build-studio.new 2006-05-02 19:44:12.000000000 +0200
+++ b/build-studio.new 2006-05-02 19:44:18.000000000 +0200
@@ -129,6 +129,7 @@
cd $BUILD_DIR
cp "$EIFFEL_SRC/Eiffel/Ace/batch.unix.ace" batch.ace
cp "$EIFFEL_SRC/Eiffel/Ace/newbench.linux.ace" ide.ace
+cp "$EIFFEL_SRC/Eiffel/Ace/ec.acex" ec.acex
# sed -i 's+Eiffel/common+common+g' batch.ace
# sed -i 's+Eiffel/common+common+g' ide.ace
echo "done."
@@ -137,7 +138,8 @@
then
echo -n "Compiling batch ... "
cd $BUILD_DIR
- ec -stop -ace batch.ace -finalize > $ROOT_DIR/compile_batch.log 2>&1
+ #ec -stop -ace batch.ace -finalize > $ROOT_DIR/compile_batch.log 2>&1
+ ec -stop -config ec.acex -target batch -finalize > $ROOT_DIR/compile_batch.log 2>&1
echo "done."
if [ $? != 0 ]
then
@@ -147,7 +149,8 @@
fi
echo -n "Patching the Makefile.SH ... "
- cd $BUILD_DIR/EIFGEN/F_code
+ cd $BUILD_DIR/EIFGENs/batch/F_code
+ #cd $BUILD_DIR/EIFGEN/F_code
sed -i 's/libmtcompiler.a/libmtwcompiler.a/g' Makefile.SH
sed -i 's/\$(EXTERNALS) \$(EIFLIB)/\$\(EIFLIB\) \$\(EXTERNALS\)/g' \
Makefile.SH
@@ -167,7 +170,8 @@
echo -n "Compiling the IDE ... "
cd $BUILD_DIR
rm -rf EIFGEN *.epr
- ec -stop -ace ide.ace -finalize > $ROOT_DIR/compile_ide.log 2>&1
+ #ec -stop -ace ide.ace -finalize > $ROOT_DIR/compile_ide.log 2>&1
+ ec -stop -config ec.acex -target bench -finalize > $ROOT_DIR/compile_ide.log 2>&1
echo "done."
if [ $? != 0 ]
then
@@ -176,8 +180,9 @@
exit 1
fi
- echo -n "Patching the Makefile ... "
- cd $BUILD_DIR/EIFGEN/F_code
+ #echo -n "Patching the Makefile ... "
+ cd $BUILD_DIR/EIFGENs/bench/F_code
+ # cd $BUILD_DIR/EIFGEN/F_code
# sed -i 's/libmtcompiler.a/libmtwcompiler.a/g' Makefile.SH
# sed -i 's/\$(EXTERNALS) \$(EIFLIB)/\$\(EIFLIB\) \$\(EXTERNALS\)/g' \
# Makefile.SH
EOT
mv build build.old
chmod +x build-studio.new
./build-studio.new
# zzzz.. huh? ..woah! my first natively compiled ec!
cksfv build/ec $EIFFEL01/studio/spec/$ISE_PLATFORM/bin/ec
# build/ec 6E297D24
# $EIFFEL01/studio/spec/$ISE_PLATFORM/bin/ec 97994877
#
# hrm.. next turn:
mv $EIFFEL01/studio/spec/$ISE_PLATFORM/bin/ec $EIFFEL01/studio/spec/$ISE_PLATFORM/bin/ec.old
cp build/ec $EIFFEL01/studio/spec/$ISE_PLATFORM/bin/
mv build build.old2
./build-studio.new
#