Building a delivery: Difference between revisions

From EiffelStudio: an EiffelSoftware project
Jump to navigation Jump to search
Arnofiva (talk | contribs)
No edit summary
Manus (talk | contribs)
Updated to reflect how things are now done in 6.6
Line 1: Line 1:
[[Category:Build Scripts]]
[[Category:Build Scripts]]
[[Category:Compiler]]
[[Category:Compiler]]
The following command creates a new delivery of EiffelStudio in the current directory. The script assumes that you are running bash, that you have defined the environment variable '''EIFFEL_SRC''' and that you have followed [[Compiling_EiffelStudio|the instructions to compile EiffelStudio]].
The following commands create a new delivery of EiffelStudio in the current directory. The script assumes that you are running bash, that you have defined the environment variable '''EIFFEL_SRC''' and that '''{{Red|you have followed [[Compiling_EiffelStudio|the instructions to compile EiffelStudio]]}}'''.


On Windows you may alternativly use the this [[Powershell]] [[media:building_delivery.ps1|script]].
On Windows you may alternativly use the this [[Powershell]] [[media:building_delivery.ps1|script]].


Platform independent part:
==Prerequisites==
<pre>
Before starting, one has to setup a few things:
export SVNURL=https://svn.origo.ethz.ch/eiffelstudio/trunk
export SVNURL=https://svn.eiffel.com/eiffelstudio/trunk
export NEW_ISE_EIFFEL=`pwd`/EiffelXX
export NEW_ISE_EIFFEL=`pwd`/EiffelXX
svn co $SVNURL/Delivery EiffelXX
svn co $SVNURL/Delivery EiffelXX


cd $NEW_ISE_EIFFEL/studio/spec
==Building a delivery (common part)==
mkdir $ISE_PLATFORM
To build a delivery for any platform, you first need to create the delivery layout correctly. The building of that layout differs between Windows and Unix.
mkdir $ISE_PLATFORM/bin
mkdir $ISE_PLATFORM/include
mkdir $ISE_PLATFORM/lib


cp $EIFFEL_SRC/C/run-time/*.h $NEW_ISE_EIFFEL/studio/spec/$ISE_PLATFORM/include
On Unix, you have to do the following:
</pre>
cd $NEW_ISE_EIFFEL/studio/config
mv unix $ISE_PLATFORM
cd $NEW_ISE_EIFFEL/studio/spec
mv unix $ISE_PLATFORM
mkdir $ISE_PLATFORM/bin
mkdir $ISE_PLATFORM/include
mkdir $ISE_PLATFORM/lib
mv $ISE_PLATFORM/finish_freezing $ISE_PLATFORM/bin
mv $ISE_PLATFORM/prelink $ISE_PLATFORM/bin
 
On Windows, this:
cd $NEW_ISE_EIFFEL/studio/config
mv windows $ISE_PLATFORM
cd $NEW_ISE_EIFFEL/studio/spec
mkdir $ISE_PLATFORM/include
mkdir $ISE_PLATFORM/lib
cp -f windows/compile_library.bat $ISE_PLATFORM/compile_library.bat
 
==Building a delivery for the same platform==
After having followed the instructions to compile EiffelStudio, you must have the runtime compiled. Then you first need to copy the new headers:
cp $EIFFEL_SRC/C/run-time/*.h $NEW_ISE_EIFFEL/studio/spec/$ISE_PLATFORM/include
 
And then the various binary objects that were generated. Again here Windows and Unix have a different set of steps.


On Unix, you need to do the following:
On Unix, you need to do the following:
<pre>
cp $EIFFEL_SRC/C/config.sh $NEW_ISE_EIFFEL/studio/spec/$ISE_PLATFORM/include
cp $EIFFEL_SRC/C/config.sh $NEW_ISE_EIFFEL/studio/spec/$ISE_PLATFORM/include
cp $EIFFEL_SRC/C/run-time/lib* $NEW_ISE_EIFFEL/studio/spec/$ISE_PLATFORM/lib
cp $EIFFEL_SRC/C/run-time/lib* $NEW_ISE_EIFFEL/studio/spec/$ISE_PLATFORM/lib
cp $EIFFEL_SRC/C/run-time/x2c $NEW_ISE_EIFFEL/studio/spec/$ISE_PLATFORM/bin
cp $EIFFEL_SRC/C/run-time/x2c $NEW_ISE_EIFFEL/studio/spec/$ISE_PLATFORM/bin
cp $EIFFEL_SRC/C/ipc/daemon/ecdbgd $NEW_ISE_EIFFEL/studio/spec/$ISE_PLATFORM/bin
cp $EIFFEL_SRC/C/ipc/daemon/ecdbgd $NEW_ISE_EIFFEL/studio/spec/$ISE_PLATFORM/bin
 
cd $NEW_ISE_EIFFEL/studio/config
cp -r unix $ISE_PLATFORM
cd $NEW_ISE_EIFFEL/studio/spec/$ISE_PLATFORM/bin
ln -s $NEW_ISE_EIFFEL/studio/spec/unix/finish_freezing .
ln -s $NEW_ISE_EIFFEL/studio/spec/unix/prelink .
</pre>


On Windows, you need to do the following:
On Windows, you need to do the following:
<pre>
mkdir $NEW_ISE_EIFFEL/studio/spec/$ISE_PLATFORM/lib/$ISE_C_COMPILER
mkdir $NEW_ISE_EIFFEL/studio/spec/$ISE_PLATFORM/lib/$ISE_C_COMPILER
cp $EIFFEL_SRC/C/run-time/lib/* $NEW_ISE_EIFFEL/studio/spec/$ISE_PLATFORM/lib/$ISE_C_COMPILER
cp $EIFFEL_SRC/C/run-time/lib/* $NEW_ISE_EIFFEL/studio/spec/$ISE_PLATFORM/lib/$ISE_C_COMPILER
cp $EIFFEL_SRC/C/run-time/x2c.exe $NEW_ISE_EIFFEL/studio/spec/$ISE_PLATFORM/bin
cp $EIFFEL_SRC/C/run-time/x2c.exe $NEW_ISE_EIFFEL/studio/spec/$ISE_PLATFORM/bin
cp $EIFFEL_SRC/C/ipc/daemon/ecdbgd.exe $NEW_ISE_EIFFEL/studio/spec/$ISE_PLATFORM/bin
cp $EIFFEL_SRC/C/ipc/daemon/ecdbgd.exe $NEW_ISE_EIFFEL/studio/spec/$ISE_PLATFORM/bin
 
cd $NEW_ISE_EIFFEL/studio/config
cp -r windows $ISE_PLATFORM
</pre>


Now your delivery is ready to receive the executable that you will have compiled.
Now your delivery is ready to receive the executable that you will have compiled.

Revision as of 19:02, 25 February 2010

The following commands create a new delivery of EiffelStudio in the current directory. The script assumes that you are running bash, that you have defined the environment variable EIFFEL_SRC and that you have followed the instructions to compile EiffelStudio.

On Windows you may alternativly use the this Powershell script.

Prerequisites

Before starting, one has to setup a few things:

export SVNURL=https://svn.eiffel.com/eiffelstudio/trunk
export NEW_ISE_EIFFEL=`pwd`/EiffelXX
svn co $SVNURL/Delivery EiffelXX

Building a delivery (common part)

To build a delivery for any platform, you first need to create the delivery layout correctly. The building of that layout differs between Windows and Unix.

On Unix, you have to do the following:

cd $NEW_ISE_EIFFEL/studio/config
mv unix $ISE_PLATFORM
cd $NEW_ISE_EIFFEL/studio/spec
mv unix $ISE_PLATFORM
mkdir $ISE_PLATFORM/bin
mkdir $ISE_PLATFORM/include
mkdir $ISE_PLATFORM/lib
mv $ISE_PLATFORM/finish_freezing $ISE_PLATFORM/bin
mv $ISE_PLATFORM/prelink $ISE_PLATFORM/bin

On Windows, this:

cd $NEW_ISE_EIFFEL/studio/config
mv windows $ISE_PLATFORM
cd $NEW_ISE_EIFFEL/studio/spec
mkdir $ISE_PLATFORM/include
mkdir $ISE_PLATFORM/lib
cp -f windows/compile_library.bat $ISE_PLATFORM/compile_library.bat

Building a delivery for the same platform

After having followed the instructions to compile EiffelStudio, you must have the runtime compiled. Then you first need to copy the new headers:

cp $EIFFEL_SRC/C/run-time/*.h $NEW_ISE_EIFFEL/studio/spec/$ISE_PLATFORM/include

And then the various binary objects that were generated. Again here Windows and Unix have a different set of steps.

On Unix, you need to do the following:

cp $EIFFEL_SRC/C/config.sh $NEW_ISE_EIFFEL/studio/spec/$ISE_PLATFORM/include
cp $EIFFEL_SRC/C/run-time/lib* $NEW_ISE_EIFFEL/studio/spec/$ISE_PLATFORM/lib
cp $EIFFEL_SRC/C/run-time/x2c $NEW_ISE_EIFFEL/studio/spec/$ISE_PLATFORM/bin
cp $EIFFEL_SRC/C/ipc/daemon/ecdbgd $NEW_ISE_EIFFEL/studio/spec/$ISE_PLATFORM/bin

On Windows, you need to do the following:

mkdir $NEW_ISE_EIFFEL/studio/spec/$ISE_PLATFORM/lib/$ISE_C_COMPILER
cp $EIFFEL_SRC/C/run-time/lib/* $NEW_ISE_EIFFEL/studio/spec/$ISE_PLATFORM/lib/$ISE_C_COMPILER
cp $EIFFEL_SRC/C/run-time/x2c.exe $NEW_ISE_EIFFEL/studio/spec/$ISE_PLATFORM/bin
cp $EIFFEL_SRC/C/ipc/daemon/ecdbgd.exe $NEW_ISE_EIFFEL/studio/spec/$ISE_PLATFORM/bin

Now your delivery is ready to receive the executable that you will have compiled.


Note: a solution based on geant is available to build a delivery from the source code: check Automatic_Build_Scripts