You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We use a continuous integration system for Mozart2. This means that at every
4
+
change made in source code, we check if it did not break the build.
5
+
More specifically, every commit sent to this repository triggers two builds. We
6
+
use [Travis CI](https://travis-ci.org/) to build the pre-generated sources and Mozart2 on Linux. We also use
7
+
[Appveyor](https://www.appveyor.com/) to build on Windows. If you wish to use those tools, you can fork this
8
+
repository and active both Appveyor and Travis to your fork. The Travis CI job is probably
9
+
the easiest way to rebuild the pre-generated sources.
10
+
11
+
## Travis CI
12
+
13
+
The build process is written in [.travis.yml](.travis.yml). Specifically, we use the
14
+
[trusty](https://docs.travis-ci.com/user/reference/overview/#virtualisation-environment-vs-operating-system) environnement. Currently, we implement a build on
15
+
Linux. We create two jobs. The first one, builds the pre-generated sources
16
+
with LLVM and CLANG. It then compares the generated sources with those already
17
+
in the repository. If this job succeed, a second one is started to build
18
+
Mozart2.
19
+
20
+
## Appveyor
21
+
22
+
The build process is written in [appveyor.yml](appveyor.yml). It uses mainly MingW to build.
23
+
The build uploads a Windows installer as an artifact.
General information can be found in the [main Readme](README.md). Unless
4
4
otherwise specified here, instructions found in the main Readme apply.
5
5
6
-
## Global configuration
7
-
### Development tools
8
-
Download and install the following tools:
9
-
10
-
* Java (required for building the boot compiler)
11
-
* Python (required for building LLVM)
12
-
* Git for Windows
13
-
* CMake >= 2.8.6
6
+
## Prerequisites
7
+
In addition to what is specified in the main README download and install the following tools:
8
+
14
9
*[Inno Setup](http://www.jrsoftware.org/isdl.php) (with preprocessor, required for building setup files)
15
-
* A recent 32-bit (i686) or 64-bit (x86_64) targeting [MinGW-64 distro](http://mingw-w64.sourceforge.net/download.php#mingw-builds) with gcc >= 4.7.1.
10
+
* A recent 32-bit (i686) or 64-bit (x86_64) targeting [MinGW-64 distro](http://mingw-w64.sourceforge.net/download.php#mingw-builds) with gcc >= 4.7.1.
16
11
17
-
These tools won't be needed at run time. We will refer to the installation directory of MinGW (in which the first `bin` subdirectory is found) by `<mingw>`.
18
-
All commands in this file are to be done in the MinGW terminal (shortcut available from the start menu).
12
+
These tools won't be needed at run time. We will refer to the installation directory of MinGW (in which the first `bin` subdirectory is found) by `<mingw>`.
13
+
Unless specified, all commands in this file are to be done in the MinGW terminal (shortcut available from the start menu).
19
14
20
-
### Mozart requirements
21
-
Download and install :
15
+
## Specific tools
22
16
23
-
* Emacs for Windows
24
-
* 32-bit or 64-bit (depending on MinGW) [Active Tcl](http://www.activestate.com/activetcl/downloads) or self-compiled Tcl/Tk >= 8.5
17
+
We will assume for that you use the following directory layout, starting from
18
+
the root :
25
19
26
-
We will refer to the installation directory of Emacs and Tcl/Tk by `<emacs>` and `<tcl>`, respectively.
20
+
<projects>
21
+
+ mozart2 // cloned from this repo
22
+
+ build // build of Mozart
23
+
+ tcl-release // source of tcl (see below)
24
+
+ tk-release // source of tk (see below)
25
+
+ boost // boost downloaded
26
+
<tcltk> // directory in which we install tcl and tk
27
27
28
-
### Suggested directory layout
28
+
We recommend to use a self-compiled Tcl/Tk. You can however use [Active Tcl](http://www.activestate.com/activetcl/downloads)
29
29
30
-
We suggest that you use the following directory layout, starting from a
31
-
directory `<projects>` :
30
+
### Tcl
32
31
33
-
<projects>
34
-
+ mozart2 // cloned from this repo
35
-
+ externals
36
-
+ boost // source of Boost (see below)
37
-
+ gtest // source of GTest (see below)
38
-
+ llvm // source of LLVM (see below)
39
-
+ builds
40
-
+ gtest // build of GTest
41
-
+ llvm // build of LLVM
42
-
+ mozart2 // build of Mozart
43
-
+ redist // export dir of Mozart (see below)
44
-
45
-
Throughout the following instructions, we will assume this layout.
46
-
47
-
## Compilation of Boost
48
-
1. Download [Boost **>= 1.53**](http://www.boost.org/users/download/) and extract the archive in `<projects>\externals\boost`.
49
-
1. In your MinGW terminal, type (`<arch>` depends on building 32-bit or 64-bit target) :
50
-
51
-
C:> cd <projects>\externals\boost\tools\build\src\engine
52
-
C:> build.bat mingw
53
-
C:> cp bin.nt<arch>\*.* ..\..\..\..\
54
-
C:> cd ..\..\..\..\
55
-
C:> bjam --toolset=gcc
56
-
57
-
1. From `<projects>\externals\boost`, copy `boost` subdirectory in your `<mingw>\<arch>-w64-mingw32\include` directory and merge `stage\lib` subdirectory with your `<mingw>\<arch>-w64-mingw32\lib` directory.
The installer can be found in C:\projects\mozart2\build.
92
+
93
+
## Running Mozart 2
94
+
95
+
For Mozart to run properly, you need to ensure :
96
+
97
+
* Tcl/Tk is in your PATH or its `lib` and `bin` subfolders are merged with
98
+
Mozart ones
99
+
* An environment variable `OZEMACS` is set to `<emacs>\bin\runemacs.exe`
100
+
101
+
Both should be set automatically with the created installer.
67
102
68
103
## Compilation of LLVM
69
-
1. Download [LLVM and Clang **3.3**](http://llvm.org/releases/download.html#3.3) source code.
70
-
1. Extract the content of LLVM source archive in `<projects>\externals\llvm` and the content of Clang source archive in `<projects>\externals\llvm\tools\clang`.
71
-
1. If you are targeting 64-bit builds, patch the files `<projects>\externals\llvm\lib\ExecutionEngine\JIT\JIT.cpp` and `<projects>\externals\llvm\lib\ExecutionEngine\MCJIT\SectionMemoryManager.cpp` by replacing :
104
+
If you want to build the pre-generated sources, you will need to install LLVM.
105
+
To do so, you can follow the instructions below and then check the main README
106
+
for information on how to build the pre-generated sources.
0 commit comments