Difference between revisions of "Building a delivery"
(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 | + | 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]]. | ||
− | + | ==Prerequisites== | |
− | + | Before starting, one has to setup a few things: | |
− | export SVNURL=https://svn. | + | 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 |
− | + | ==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 | + | On Windows, this: |
− | + | cd $NEW_ISE_EIFFEL/studio/config | |
− | + | mv windows $ISE_PLATFORM | |
− | + | cd $NEW_ISE_EIFFEL/studio/spec | |
− | + | mkdir $ISE_PLATFORM/include | |
− | cp | + | mkdir $ISE_PLATFORM/lib |
+ | cp -f windows/compile_library.bat $ISE_PLATFORM/compile_library.bat | ||
− | + | ==Building a delivery for the same platform== | |
− | cp | + | 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 - | + | 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. | Now your delivery is ready to receive the executable that you will have compiled. |
Revision as of 10: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