Difference between revisions of "User:DavidFlatz"
DavidFlatz  (Talk | contribs)  | 
				 (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 14: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
# 

