devel:compile-unix-xuvbuild [2010/02/23 16:52] niko removed FIXME regarding libraries (all 3 are required) |
devel:compile-unix-xuvbuild [2010/07/17 23:59] (current) mario updated many details to current HEAD of xuvbuild script |
| | * **GNU Compiler Collection** | | * **GNU Compiler Collection** |
| | * Any recent version of gcc should do. We have tested gcc-4.3.4 and some newer versions. | | * Any recent version of gcc should do. We have tested gcc-4.3.4 and some newer versions. |
| | + | |
| | + | To compile XuvTools on Linux, you have to fulfill several build-dependencies. It is recommended that you use a change-root environment, because the compile-process might be disturbed by other/older/newer libraries that you have installed on your Linux. We provide pages that help you setup the compile environment: |
| | + | |
| | + | * Setup [[:devel:install_ubuntu_chroot|Ubuntu Linux Compile Environment]] (with chroot). Includes a list of required packages. |
| | + | |
| | + | ==== Testing your Build Environment ==== |
| | + | |
| | + | <note important>This step is still in an early stage. While the automatic testing can already help find several issues, it is not able to detect all possible problems.</note> |
| | + | |
| | + | To test if you should have a working Build environment, you can use the script xuvprepare.sh. The script will inspect your setup and warn about problems and errors. Here is a sample run on Linux: |
| | + | |
| | + | <code> |
| | + | emmenlau(decuman) ~/XuvTools/trunk/xuvtools/scripts> ./xuvprepare.sh --verbose |
| | + | </code> |
| | | | |
| | ==== Sources, Directory Layout and Environment ==== | | ==== Sources, Directory Layout and Environment ==== |
| | == Directory Layout == | | == Directory Layout == |
| | | | |
| - | The next steps should be getting the sources and installing them in the correct directories. It is highly recommended to stick to the following directory layout, where USER is the username of the active user (Call 'whoami' to find your user name). | + | The next steps should be getting the sources and installing them in the correct directories. It is highly recommended to stick to the following directory layout, where USER is the username of the active user (call 'whoami' to find your user name). |
| | | | |
| | <code> | | <code> |
| | <code> | | <code> |
| | source XuvTools/trunk/xuvtools/scripts/env-lmb.sh | | source XuvTools/trunk/xuvtools/scripts/env-lmb.sh |
| - | </code> | |
| - | | |
| - | == Compiling Thirdparty Prerequisites == | |
| - | | |
| - | Compiling the thirdparty prerequisites is required only the first time (or whenever there are updates). Currently, these prerequisites are the Qt library only. | |
| - | | |
| - | <note tip>Qt will draw the fonts (un)pretty grainy if some libs are not available during (Qt-) buildtime. To prevent this, you should install the ''freetype'', ''fontconfig'' and ''xrender'' libraries (and their development headers). On Ubuntu/Debian, just do a: \\ | |
| - | **''sudo aptitude install libfreetype6-dev libfontconfig1-dev libxrender-dev''**</note> | |
| - | | |
| - | <code bash> | |
| - | cd thirdparty/ | |
| - | make | |
| | </code> | | </code> |
| | | | |
| | == Starting the XuvTools Compile == | | == Starting the XuvTools Compile == |
| | | | |
| - | Finally, you can now use the "xuvbuild.sh" script to compile the sources. When compiling the sources for the first time, you need to use the parameter "--qmake" to generate the Makefiles. For a first run it also recommended to use the parameter "--genfirst". Here is a sample run for compiling the first time: | + | Finally, you can now use the "xuvbuild.sh" script to compile the sources. When compiling the sources for the first time, you need to use the parameter "--qmake" to generate the Makefiles. For a first run it also recommended to use the parameter "--genfirst". Compiling the thirdparty prerequisites is required only the first time (or whenever there are updates). Thirdparty compilation is activated with the "--thirdparty" switch. Here is a sample run for compiling the first time: |
| | | | |
| | <code> | | <code> |
| - | emmenlau(decuman) ~/XuvTools/trunk> xuvtools/scripts/xuvbuild.sh --help | + | emmenlau(decuman) ~/XuvTools/trunk> xuvbuild.sh --help |
| | usage: xuvbuild.sh | | usage: xuvbuild.sh |
| | [--verbose|-v] - be more verbose (default=0) | | [--verbose|-v] - be more verbose (default=0) |
| | [--jobs|-jobs] - number of parallel jobs (default=autodetect) | | [--jobs|-jobs] - number of parallel jobs (default=autodetect) |
| | | | |
| - | emmenlau(decuman) ~/XuvTools/trunk> xuvtools/scripts/xuvbuild.sh --verbose --qmake --genfirst | + | emmenlau(decuman) ~/XuvTools/trunk> xuvbuild.sh --verbose --qmake --tools --thirdparty |
| | </code> | | </code> |
| | | | |
| - | Here is a sample run for compiling all additional times: | + | Here is a sample run for compiling all future times: |
| | | | |
| | <code> | | <code> |
| | </code> | | </code> |
| | | | |
| - | ==== Testing your setup (Optional) ==== | + | ==== XuvTools Releases ==== |
| | | | |
| - | <note important>This step is still in its infancy. While the automatic testing can already help find several issues, it is not able to detect all possible problems. Please do not rely on xuvprepare.sh alone, but rather stick to these instructions as closely as possbile.</note> | + | XuvTools releases are packaged with a simple shell script. The script will package the XuvTools release automatically, and include the Java runtime environment and other dependencies. |
| | | | |
| - | To test if you should have a working Build environment, you can use the script xuvprepare.sh. The script will inspect your setup and warn about problems and errors. Here is a sample run on Linux: | + | == Packaging a XuvTools Release == |
| | + | |
| | + | Depending on the platform, you can use one of currently three packaging scripts: xuvpackage-win.sh, xuvpackage-mac.sh or xuvpackage-lin.sh. Here we demonstrate xuvpackage-lin.sh: |
| | | | |
| | <code> | | <code> |
| - | emmenlau(decuman) ~/XuvTools/trunk/xuvtools/scripts> ./xuvprepare.sh --verbose | + | emmenlau(decuman) ~/XuvTools/trunk> xuvpackage-lin.sh --verbose --version=<versionnr> |
| | </code> | | </code> |
| | | | |
| | + | This will create a new packaged release in your XuvTools/trunk/releases/ directory. |
| | | | |