Difference between revisions of "Compiling EiffelStudio"
(Removed special case for Windows 64-bit since it support clean option too.) |
(Updated to 15.01) |
||
(85 intermediate revisions by 14 users not shown) | |||
Line 4: | Line 4: | ||
== Installing EiffelStudio == | == Installing EiffelStudio == | ||
− | To compile EiffelStudio, you need an already working EiffelStudio compiler on your machine. The current source tree '''requires at least version | + | To compile EiffelStudio, you need an already working EiffelStudio compiler on your machine. The current source tree '''requires at least version 15.01''' of EiffelStudio. You can download it from [[Downloads]]. Read the [http://docs.eiffel.com/eiffelstudio/installation/ existing documentation] to install EiffelStudio. |
− | '''Note:''' on Windows you will need the Microsoft C compiler to compile Eiffel Studio. How to install the free version of the Microsoft C compiler: [[Installing Microsoft C compiler]] | + | '''Note:''' on Windows you will need the Microsoft C compiler to compile Eiffel Studio. How to install the free version of the Microsoft C compiler: [[Installing Microsoft C compiler]]. It is not possible to compile EiffelStudio with the MinGW C compiler (GCC). |
===Compilation methods=== | ===Compilation methods=== | ||
Currently there are two compilation methods. | Currently there are two compilation methods. | ||
− | * You | + | * You can compile EiffelStudio from scratch following the instructions in this document ('''This is the recommended approach'''). |
− | + | * You can use one of the [[Automatic Build Scripts]], and if you encounter any errors please report them to the [http://forums.eiffel.com EiffelStudio Development forum]. | |
− | + | ||
− | + | ||
==Extracting source code== | ==Extracting source code== | ||
+ | |||
+ | Before checking out the source code, make sure to configure subversion properly using the [[Subversion_Settings|following instructions]]. | ||
===Checking out from SVN=== | ===Checking out from SVN=== | ||
− | #Point | + | #Point the environment variables called '''EIFFEL_SRC''' and '''ISE_LIBRARY''' to the directory where you want to compile EiffelStudio.<br>Usually we use the '''XXdev''' convention for this directory name - where XX is the version number of the currently developed version of the compiler. |
− | #Make sure that '''ISE_EIFFEL''', '''ISE_PLATFORM''' and '''ISE_C_COMPILER''' (on | + | #Make sure that '''ISE_EIFFEL''', '''ISE_PLATFORM''' and '''ISE_C_COMPILER''' (on Windows only) are properly defined. '''ISE_EIFFEL''' should point to the directory where you installed EiffelStudio, '''ISE_PLATFORM''' is the name of your platform (see [http://docs.eiffel.com/book/eiffelstudio/software-installation-eiffelstudio our documentation website for more details]) and '''ISE_C_COMPILER''' is only for the Windows platforms and it has to be msc (Visual Studio). At this time we do not support mingw (GCC) on Windows due to Microsoft specific dependencies. |
#Perform the following checkout procedures: | #Perform the following checkout procedures: | ||
Line 25: | Line 25: | ||
'''DOS''' | '''DOS''' | ||
<pre> | <pre> | ||
− | set SVNURL=https:// | + | set SVNURL=https://svn.eiffel.com/eiffelstudio/trunk |
− | svn co %SVNURL% | + | svn co %SVNURL%/Src 15.01_dev |
− | svn co %SVNURL% | + | svn co %SVNURL%/free_add_ons 15.01_dev/free_add_ons |
− | + | ||
</pre> | </pre> | ||
'''Bash''' | '''Bash''' | ||
<pre> | <pre> | ||
− | export SVNURL=https:// | + | export SVNURL=https://svn.eiffel.com/eiffelstudio/trunk |
− | svn co $SVNURL | + | svn co $SVNURL/Src 15.01_dev |
− | svn co $SVNURL | + | svn co $SVNURL/free_add_ons 15.01_dev/free_add_ons |
− | + | ||
</pre> | </pre> | ||
− | To update the | + | To update the source files to the latest revision, perform the following steps: |
'''Bash and DOS''' | '''Bash and DOS''' | ||
<pre> | <pre> | ||
− | cd | + | cd 15.01_dev |
svn up | svn up | ||
svn up free_add_ons | svn up free_add_ons | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</pre> | </pre> | ||
Line 70: | Line 50: | ||
===Compiling run-time on Windows=== | ===Compiling run-time on Windows=== | ||
− | |||
− | |||
− | |||
'''DOS''' | '''DOS''' | ||
<pre>cd %EIFFEL_SRC%/C | <pre>cd %EIFFEL_SRC%/C | ||
− | configure [win32|win64] [b|m]</pre> | + | configure [win32|win64] [b|g|m|m6]</pre> |
'''Bash''' | '''Bash''' | ||
<pre>cd $EIFFEL_SRC/C | <pre>cd $EIFFEL_SRC/C | ||
− | ./configure.bat [win32|win64] [b|m]</pre> | + | ./configure.bat [win32|win64] [b|g|m|m6]</pre> |
− | The first argument indicated whether you are compiling the run-time for 32 or 64 bits. The second one is to tell which C compiler will be used. For now only `b' (Borland) | + | The first argument indicated whether you are compiling the run-time for 32 or 64 bits. The second one is to tell which C compiler will be used. For now only `b' (Borland), `g' (MinGW), `m' (Microsoft) and `m6' (for those forced to use Microsoft VC++ 6.0) are officially supported. |
− | On Windows 32 bits to clean up all the generated files | + | On Windows 32 bits to clean up all the generated files '''(including the library files needed by EiffelStudio)''' it suffices to do: |
'''DOS''' | '''DOS''' | ||
Line 97: | Line 74: | ||
./quick_configure</pre> | ./quick_configure</pre> | ||
This requires that '''ISE_PLATFORM''' is properly defined. The `quick_configure' script will look for the file CONFIGS/$ISE_PLATFORM and use it to extract the platform specific information to compile the run-time. If not found then an error will be reported. | This requires that '''ISE_PLATFORM''' is properly defined. The `quick_configure' script will look for the file CONFIGS/$ISE_PLATFORM and use it to extract the platform specific information to compile the run-time. If not found then an error will be reported. | ||
+ | |||
+ | To clean up the generated files '''including the library files needed by EiffelStudio''': | ||
+ | <pre>make clobber</pre> | ||
===Compiling C code from libraries=== | ===Compiling C code from libraries=== | ||
Line 103: | Line 83: | ||
'''DOS''' | '''DOS''' | ||
− | <pre>cd %EIFFEL_SRC% | + | <pre>cd %EIFFEL_SRC%\library\net\Clib |
− | + | finish_freezing -library | |
− | cd %EIFFEL_SRC% | + | cd %EIFFEL_SRC%\library\vision2\Clib |
− | + | finish_freezing -library | |
− | cd %EIFFEL_SRC% | + | cd %EIFFEL_SRC%\library\wel\Clib |
− | + | finish_freezing -library | |
+ | cd %EIFFEL_SRC%\library\cURL\Clib | ||
+ | finish_freezing -library | ||
+ | cd %EIFFEL_SRC%\library\web_browser\Clib | ||
+ | finish_freezing -library</pre> | ||
'''Bash''' | '''Bash''' | ||
<pre>cd $EIFFEL_SRC/library/net/Clib | <pre>cd $EIFFEL_SRC/library/net/Clib | ||
− | + | finish_freezing -library | |
cd $EIFFEL_SRC/library/vision2/Clib | cd $EIFFEL_SRC/library/vision2/Clib | ||
− | + | finish_freezing -library | |
cd $EIFFEL_SRC/library/wel/Clib | cd $EIFFEL_SRC/library/wel/Clib | ||
− | + | finish_freezing -library | |
+ | cd $EIFFEL_SRC/library/cURL/Clib | ||
+ | finish_freezing -library | ||
+ | cd $EIFFEL_SRC/library/web_browser/Clib | ||
+ | finish_freezing -library</pre> | ||
On Unix it is slightly different: | On Unix it is slightly different: | ||
− | <pre> | + | <pre>cd $EIFFEL_SRC/library/net/Clib |
− | + | ||
− | cd $EIFFEL_SRC/library/net/Clib | + | |
finish_freezing -library | finish_freezing -library | ||
cd $EIFFEL_SRC/library/vision2/Clib | cd $EIFFEL_SRC/library/vision2/Clib | ||
finish_freezing -library | finish_freezing -library | ||
cd $EIFFEL_SRC/library/vision2/implementation/gtk/Clib | cd $EIFFEL_SRC/library/vision2/implementation/gtk/Clib | ||
+ | finish_freezing -library | ||
+ | cd $EIFFEL_SRC/library/cURL/Clib | ||
finish_freezing -library</pre> | finish_freezing -library</pre> | ||
Line 131: | Line 119: | ||
===Compiling C code from C_library=== | ===Compiling C code from C_library=== | ||
− | This is only required on Windows to read PNG file. On Unix, this is not required because it is included in GTK+2.4. | + | This is only required on Windows to read PNG file. On Unix, this is not required because it is included in GTK+2.4. So on Windows, simply do the following: |
'''DOS''' | '''DOS''' | ||
<pre>cd %EIFFEL_SRC%/C_library/zlib | <pre>cd %EIFFEL_SRC%/C_library/zlib | ||
− | + | finish_freezing -library | |
cd %EIFFEL_SRC%/C_library/libpng | cd %EIFFEL_SRC%/C_library/libpng | ||
− | + | finish_freezing -library</pre> | |
'''Bash''' | '''Bash''' | ||
<pre>cd $EIFFEL_SRC/C_library/zlib | <pre>cd $EIFFEL_SRC/C_library/zlib | ||
− | + | finish_freezing -library | |
cd $EIFFEL_SRC/C_library/libpng | cd $EIFFEL_SRC/C_library/libpng | ||
− | + | finish_freezing -library</pre> | |
===Compiling C code from compiler=== | ===Compiling C code from compiler=== | ||
Line 155: | Line 143: | ||
'''DOS''' | '''DOS''' | ||
− | <pre>cd %EIFFEL_SRC%/ | + | <pre>cd %EIFFEL_SRC%/framework/cli_writer/Clib |
− | + | finish_freezing -library | |
+ | cd %EIFFEL_SRC%/framework/cli_debugger/Clib | ||
+ | finish_freezing -library</pre> | ||
'''Bash''' | '''Bash''' | ||
− | <pre>cd $EIFFEL_SRC/ | + | <pre>cd $EIFFEL_SRC/framework/cli_writer/Clib |
− | + | finish_freezing -library | |
+ | cd $EIFFEL_SRC/framework/cli_debugger/Clib | ||
+ | finish_freezing -library</pre> | ||
==Compiling EiffelStudio== | ==Compiling EiffelStudio== | ||
− | Now that we have taken care of the C code compilation we can compile the compiler. | + | Now that we have taken care of the C code compilation we can compile the compiler. We assume that '''ec''' is in your path. |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | The configuration file of the compiler contains two active targets: | |
− | + | * '''batch''': for the command line compiler. | |
+ | * '''bench''': for the graphical compiler, aka EiffelStudio. | ||
− | + | Go to $EIFFEL_SRC/Eiffel/Ace and type the following command and replace ''target_name'' with either '''batch''' or '''bench'''. | |
− | + | <pre>ec -config ec.ecf -target target_name -c_compile</pre> | |
− | + | ||
− | + | ||
− | <pre> | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | </ | + | |
===Mac OS X specific=== | ===Mac OS X specific=== | ||
− | + | Get a mac binary from [[EiffelOnMac|here]], then follow the instructions for unix. | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | for | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ==Launching the Compiler== | |
− | + | There are two ways of launching the compiler: | |
+ | # Command line compiler: add the following arguments '''-config path_to_config_file.ecf'''. This will compile the project represented by `path_to_config_file.ecf' | ||
+ | # Graphical compiler (aka EiffelStudio): add the following argument '''-gui'''. |
Latest revision as of 09:08, 19 February 2015
Contents
Installing EiffelStudio
To compile EiffelStudio, you need an already working EiffelStudio compiler on your machine. The current source tree requires at least version 15.01 of EiffelStudio. You can download it from Downloads. Read the existing documentation to install EiffelStudio.
Note: on Windows you will need the Microsoft C compiler to compile Eiffel Studio. How to install the free version of the Microsoft C compiler: Installing Microsoft C compiler. It is not possible to compile EiffelStudio with the MinGW C compiler (GCC).
Compilation methods
Currently there are two compilation methods.
- You can compile EiffelStudio from scratch following the instructions in this document (This is the recommended approach).
- You can use one of the Automatic Build Scripts, and if you encounter any errors please report them to the EiffelStudio Development forum.
Extracting source code
Before checking out the source code, make sure to configure subversion properly using the following instructions.
Checking out from SVN
- Point the environment variables called EIFFEL_SRC and ISE_LIBRARY to the directory where you want to compile EiffelStudio.
Usually we use the XXdev convention for this directory name - where XX is the version number of the currently developed version of the compiler. - Make sure that ISE_EIFFEL, ISE_PLATFORM and ISE_C_COMPILER (on Windows only) are properly defined. ISE_EIFFEL should point to the directory where you installed EiffelStudio, ISE_PLATFORM is the name of your platform (see our documentation website for more details) and ISE_C_COMPILER is only for the Windows platforms and it has to be msc (Visual Studio). At this time we do not support mingw (GCC) on Windows due to Microsoft specific dependencies.
- Perform the following checkout procedures:
DOS
set SVNURL=https://svn.eiffel.com/eiffelstudio/trunk svn co %SVNURL%/Src 15.01_dev svn co %SVNURL%/free_add_ons 15.01_dev/free_add_ons
Bash
export SVNURL=https://svn.eiffel.com/eiffelstudio/trunk svn co $SVNURL/Src 15.01_dev svn co $SVNURL/free_add_ons 15.01_dev/free_add_ons
To update the source files to the latest revision, perform the following steps:
Bash and DOS
cd 15.01_dev svn up svn up free_add_ons
Compiling C libraries
Compiling run-time on Windows
DOS
cd %EIFFEL_SRC%/C configure [win32|win64] [b|g|m|m6]
Bash
cd $EIFFEL_SRC/C ./configure.bat [win32|win64] [b|g|m|m6]
The first argument indicated whether you are compiling the run-time for 32 or 64 bits. The second one is to tell which C compiler will be used. For now only `b' (Borland), `g' (MinGW), `m' (Microsoft) and `m6' (for those forced to use Microsoft VC++ 6.0) are officially supported.
On Windows 32 bits to clean up all the generated files (including the library files needed by EiffelStudio) it suffices to do:
DOS
configure clean
Bash
./configure.bat clean
Compiling run-time on Unix
The command is simply:
cd $EIFFEL_SRC/C ./quick_configure
This requires that ISE_PLATFORM is properly defined. The `quick_configure' script will look for the file CONFIGS/$ISE_PLATFORM and use it to extract the platform specific information to compile the run-time. If not found then an error will be reported.
To clean up the generated files including the library files needed by EiffelStudio:
make clobber
Compiling C code from libraries
Here is the list of commands to compile all required C libraries on Windows:
DOS
cd %EIFFEL_SRC%\library\net\Clib finish_freezing -library cd %EIFFEL_SRC%\library\vision2\Clib finish_freezing -library cd %EIFFEL_SRC%\library\wel\Clib finish_freezing -library cd %EIFFEL_SRC%\library\cURL\Clib finish_freezing -library cd %EIFFEL_SRC%\library\web_browser\Clib finish_freezing -library
Bash
cd $EIFFEL_SRC/library/net/Clib finish_freezing -library cd $EIFFEL_SRC/library/vision2/Clib finish_freezing -library cd $EIFFEL_SRC/library/wel/Clib finish_freezing -library cd $EIFFEL_SRC/library/cURL/Clib finish_freezing -library cd $EIFFEL_SRC/library/web_browser/Clib finish_freezing -library
On Unix it is slightly different:
cd $EIFFEL_SRC/library/net/Clib finish_freezing -library cd $EIFFEL_SRC/library/vision2/Clib finish_freezing -library cd $EIFFEL_SRC/library/vision2/implementation/gtk/Clib finish_freezing -library cd $EIFFEL_SRC/library/cURL/Clib finish_freezing -library
Make sure that ISE_EIFFEL is set correctly to your current "EiffelStudio" installation!
Compiling C code from C_library
This is only required on Windows to read PNG file. On Unix, this is not required because it is included in GTK+2.4. So on Windows, simply do the following:
DOS
cd %EIFFEL_SRC%/C_library/zlib finish_freezing -library cd %EIFFEL_SRC%/C_library/libpng finish_freezing -library
Bash
cd $EIFFEL_SRC/C_library/zlib finish_freezing -library cd $EIFFEL_SRC/C_library/libpng finish_freezing -library
Compiling C code from compiler
This is only required on Windows as this C code is a tiny wrapper around the Microsoft C++ API to generate and to debug .NET code.
To compile it, you first need to install the Microsoft .NET SDK. You can download it from their website.
After installing it, you need to update your LIB and INCLUDE environment variable to include the path the lib and include directory of the .NET Framework SDK.
Once properly installed, you can do:
DOS
cd %EIFFEL_SRC%/framework/cli_writer/Clib finish_freezing -library cd %EIFFEL_SRC%/framework/cli_debugger/Clib finish_freezing -library
Bash
cd $EIFFEL_SRC/framework/cli_writer/Clib finish_freezing -library cd $EIFFEL_SRC/framework/cli_debugger/Clib finish_freezing -library
Compiling EiffelStudio
Now that we have taken care of the C code compilation we can compile the compiler. We assume that ec is in your path.
The configuration file of the compiler contains two active targets:
- batch: for the command line compiler.
- bench: for the graphical compiler, aka EiffelStudio.
Go to $EIFFEL_SRC/Eiffel/Ace and type the following command and replace target_name with either batch or bench.
ec -config ec.ecf -target target_name -c_compile
Mac OS X specific
Get a mac binary from here, then follow the instructions for unix.
Launching the Compiler
There are two ways of launching the compiler:
- Command line compiler: add the following arguments -config path_to_config_file.ecf. This will compile the project represented by `path_to_config_file.ecf'
- Graphical compiler (aka EiffelStudio): add the following argument -gui.