README.md 4.24 KB
Newer Older
1 2 3
Kumir 2.x programming system
============================

Victor Yacovlev's avatar
Victor Yacovlev committed
4 5
***NOTE*** Maintainers from AltLinux please read this: [MAINTAINERS_ru.md](MAINTAINERS_ru.md) (in Russian).

6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
Branches and tags
-----------------

Branch `master` contains Russian Algorithmic language implementation and all 
system modules, even not included in release.

Branch `python` contains Python-3 language implementation.

Releases are maked by tags and lists of excluded modules.
Run `remove-unstable-modules-v.X.X.X.sh` before bundling source package.

Build requirements (Linux)
--------------------------

1. CMake version at least 2.8.11
2. Python interpreter version at least 2.7.0
3. Qt4 SDK version at least 4.7.0. It is possible to build using Qt5 (>= 5.3.0)
4. ZLib development files
5. Boost 1.54.0 development files. Required Boost files are bundled into
this repository, but you can use your distribution provided package by 
deleting `src/3rdparty/boost-1.54.0`
6. LLVM development files version at least 3.4 are optional to build native code
generation feauture
7. Python development files at least 3.2 in case of building branch `python`

Build requirements (Windows)
----------------------------

1. CMake version 2.8.11. There is known regression in version 2.8.12, so do
not use it
2. Python interpreter version at least 2.7.0
3. Microsoft Visual Studio Express 2010 or 2012
Victor Yacovlev's avatar
Victor Yacovlev committed
38
4. Qt4 SDK version at least 4.8.0. Qt5 not well-tested on this platform
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
5. Boost and ZLib development files which bundled in this repository
6. Python development files at least 3.2 in case of building branch `python`

In order to build native code generation feature on Windows you must use
MSVC2012 and provide several requirements:

1. Boost version at least 1.57.0 due to incompatibility of version 1.54 with
MSVC2012
2. LLVM development files version *exact* 3.4.0 prebuilt using *MSVC2012 
toolchain*
3. CLang compiler version *exact* 3.4.0 prebuilt using *MinGW 4.8 toolchain* 
4. MinGW version *exact* 4.6.1 files

Build and source-install instructions (Linux)
---------------------------------------------

Meet all requirements (see above)

Run cmake in separate directory: 
```
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
```

If you want to use Qt5 instead of Qt4, pass `-DUSE_QT=5` option to cmake.

Run make:
```
make
```
This will build entire project into `build/Release` directory.

To install in `/usr/local/` prefix run `make install`.

In order to provide custom prefix, you can pass option
`-DCMAKE_INSTALL_PREFIX=` to cmake.

Build instructions (Windows)
----------------------------

Meet all requirements and ensure that `qmake.exe`, `cmake.exe` and `python.exe`
are present in system `PATH` environment variable. Also ensure `QTDIR` and
`QMAKESPEC` environment variables are set to match your Qt and compiler
toolchain installation.

Start Microsoft Visual Stido Tools console.

Within the console create subdirectory `build` of project root, walk there and
run:
```
cmake -DCMAKE_BUILD_TYPE=Release -G "NMake Makefiles" ..
nmake
```

This will build entire project into `build/Release` directory.

To build native code generation feature there are additional options required
to be passed to cmake:

Victor Yacovlev's avatar
Victor Yacovlev committed
99
1. `-DCLANG_EXECUTABLE=` - path to `clang.exe`, which built using MinGW 
100 101
toolchain. This CLang compiler is used to generate LLVM bytecode for standard 
and runtime libraries
Victor Yacovlev's avatar
Victor Yacovlev committed
102
2. `-DLLVM_ROOT=`, `-DLlvm_INCLUDE_DIR=` and `-DLlvm_CONFIG_EXECUTABLE=` - 
103 104
paths to prebuild LLVM root directory, `include` subdirectory and 
`llvm-config.exe` executable
Victor Yacovlev's avatar
Victor Yacovlev committed
105
3. `-DBOOST_ROOT=` - path to Boost root version at least 1.57.0. Remove 
106 107
bundled boost first

Victor Yacovlev's avatar
Victor Yacovlev committed
108 109
Deployment 3-rd party libraries (Windows)
-----------------------------------------
110

Victor Yacovlev's avatar
Victor Yacovlev committed
111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
The following files must be copied into `bin` build subdirectory:
```
phonon4.dll
QtCore4.dll
QtSql4.dll
QtDeclarative4.dll
QtGui4.dll
QtNetwork4.dll
QtOpenGL4.dll
QtScript4.dll
QtSvg4.dll
QtWebKit4.dll
QtXml4.dll
QtXmlPatterns4.dll
```
126

Victor Yacovlev's avatar
Victor Yacovlev committed
127 128 129
In order to use native code generation feature the following files from MinGW 
*version 4.6.1* must be copied into `llvm-mingw` build subdirectory:
```
Victor Yacovlev's avatar
Victor Yacovlev committed
130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148
as.exe
crt2.o
crtbegin.o
crtend.o
ld.exe
libadvapi32.a
libgcc.a
libgcc_s_dw2-1.dll
libkernel32.a
libmingw32.a
libmingwex.a
libmoldname.a
libmsvcrt.a
libpthread.a
libshell32.a
libstdc++-6.dll
libstdc++.a
libuser32.a
llc.exe
149
```