189 lines
4.7 KiB
Markdown
189 lines
4.7 KiB
Markdown
Build lib & build sample {#ewol_build}
|
|
========================
|
|
|
|
@tableofcontents
|
|
Linux dependency packages {#ewol_build_dependency}
|
|
=========================
|
|
|
|
Ubuntu or Debian {#ewol_build_dependency_debian}
|
|
----------------
|
|
|
|
```{.sh}
|
|
sudo apt-get install g++ libgl1-mesa-dev zlib1g-dev libasound2-dev
|
|
# Compile with Clang:
|
|
sudo apt-get install clang
|
|
# For andoid compilation (jdk 7 does not work...):
|
|
sudo apt-get install javacc openjdk-6-jdk
|
|
# Cross compile for windows:
|
|
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
|
|
sudo apt-get update
|
|
sudo apt-get install gcc-mingw-w64
|
|
# On 64 bits processor for compatibility:
|
|
sudo apt-get install ia32-libs
|
|
sudo apt-get install g++-multilib libc6-dev-i386
|
|
```
|
|
|
|
Arch-linux {#ewol_build_dependency_archlinux}
|
|
----------
|
|
```{.sh}
|
|
# Cross compile for windows:
|
|
pacman -S mingw-w64-gcc
|
|
|
|
# Cross compile for Android:
|
|
in /etc/pacman.conf file uncomment:
|
|
[multilib]
|
|
Include = /etc/pacman.d/mirrorlist
|
|
# update the system:
|
|
Pacman -Syu
|
|
# install lib C:
|
|
pacman -S lib32-glibc lib32-zlib lib32-gcc-libs
|
|
# install open-jdk 7.0
|
|
pacman -S jdk7-openjdk
|
|
# connect adb: (and you can do a "android/sdk/platform-tools/adb shell" to enable computer key on device)
|
|
pacman -S android-udev
|
|
```
|
|
|
|
Download: {#ewol_build_download}
|
|
=========
|
|
|
|
ewol use some tools to manage source and build it:
|
|
|
|
need google repo: {#ewol_build_download_repo}
|
|
-----------------
|
|
|
|
see: http://source.android.com/source/downloading.html#installing-repo
|
|
|
|
On all platform:
|
|
```{.sh}
|
|
mkdir ~/.bin
|
|
PATH=~/.bin:$PATH
|
|
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/.bin/repo
|
|
chmod a+x ~/.bin/repo
|
|
```
|
|
|
|
On ubuntu
|
|
```{.sh}
|
|
sudo apt-get install repo
|
|
```
|
|
|
|
On archlinux
|
|
```{.sh}
|
|
sudo pacman -S repo
|
|
```
|
|
|
|
lutin (build-system): {#ewol_build_download_lutin}
|
|
---------------------
|
|
|
|
```{.sh}
|
|
pip install lutin --user
|
|
# optionnal dependency of lutin (manage image changing size for application release)
|
|
pip install pillow --user
|
|
```
|
|
|
|
The full build tool documentation is availlable here : [lutin](http://heeroyui.github.io/lutin/)
|
|
|
|
|
|
dependency: {#ewol_build_download_dependency}
|
|
-----------
|
|
|
|
```{.sh}
|
|
mkdir -p WORKING_DIRECTORY/framework
|
|
cd WORKING_DIRECTORY/framework
|
|
repo init -u git://github.com/atria-soft/manifest.git
|
|
repo sync -j8
|
|
cd ../..
|
|
```
|
|
|
|
sources: {#ewol_build_download_sources}
|
|
--------
|
|
|
|
They are already download in the repo manifest in:
|
|
|
|
```{.sh}
|
|
cd WORKING_DIRECTORY/framework/atria-soft/ewol
|
|
```
|
|
|
|
Build: {#ewol_build_build}
|
|
======
|
|
|
|
you must stay in zour working directory...
|
|
```{.sh}
|
|
cd WORKING_DIRECTORY
|
|
```
|
|
|
|
library: {#ewol_build_build_library}
|
|
--------
|
|
|
|
```{.sh}
|
|
lutin -mdebug ewol
|
|
```
|
|
|
|
Sample: {#ewol_build_build_sample}
|
|
-------
|
|
|
|
```{.sh}
|
|
lutin -mdebug ewol-sample-*
|
|
```
|
|
|
|
Run sample: {#ewol_build_run_sample}
|
|
-----------
|
|
|
|
Basic way
|
|
|
|
```{.sh}
|
|
lutin -mdebug ewol-sample-*?run
|
|
```
|
|
|
|
With some option: (set global log leval at 2 (print, error, warning), and "appl" library at log level 6
|
|
|
|
```{.sh}
|
|
lutin -mdebug ewol-sample-*?run:--elog-level=2:--elog-lib=appl:6
|
|
```
|
|
|
|
|
|
Build for Android and install: {#ewol_build_android}
|
|
==============================
|
|
|
|
Sample: {#ewol_build_android_sample}
|
|
-------
|
|
|
|
```{.sh}
|
|
lutin -tAndroid -mdebug ewol-sample-*
|
|
```
|
|
|
|
Sample: {#ewol_build_android_install_sample}
|
|
-------
|
|
|
|
```{.sh}
|
|
lutin -tAndroid -mdebug ewol-sample-*?install
|
|
```
|
|
|
|
Worktree explanation: {#ewol_build_workspace}
|
|
=====================
|
|
|
|
The workspace is a simple folder that contain all the modules ans sub module availlable for build.
|
|
It will create a tree like this :
|
|
|
|
- **workspace**
|
|
* **application:** set your application here, it is a good position
|
|
* **framework:** framework download by repo
|
|
+ **atria-soft:** graphic framework
|
|
+ **generic-library:** open sources library that is wrapped on lutin builder
|
|
+ **musicdsp:** Common library for audio interfacing
|
|
+ **tools:** build tools (now only the IOs flasher)
|
|
* **out:**
|
|
+ Android_arm_32
|
|
+ Android_arm_64
|
|
+ Windows_x86_32
|
|
+ Windows_x86_64
|
|
+ Linux_x86_32
|
|
+ Linux_x86_64
|
|
+ MacOs_x86_32
|
|
+ MacOs_x86_64
|
|
+ IOs_x86_32
|
|
+ IOs_x86_64
|
|
|
|
All the build object are set in the out path, then to restart with a clean build simply remove this folder
|
|
|
|
|