Revision of COMPILE.txt. Issue 1431

This commit is contained in:
DrSlony
2012-06-21 00:12:06 +01:00
parent 3cbe18cee9
commit a9c9939a78

View File

@@ -1,317 +1,411 @@
If you have problems with the compilation, please ask on the appropriated RawTherapee forum : If you have problems with the compilation, please ask on the appropriate
http://www.rawtherapee.com/forum/viewforum.php?f=10 RawTherapee forum : http://www.rawtherapee.com/forum/viewforum.php?f=10
Preamble Preamble
-------- --------
Cmake is actually used to create the Makefiles (scripts that handle the build process) or specific Integrated Developement Environement (IDE) projects. CMake is actually used to create the makefiles (scripts that handle the build
It is designed to find all necessary compilation flags for your specific machine, but everything can be overriden. process) or specific Integrated Developement Environement (IDE) projects. It
is designed to find all necessary compilation flags for your specific machine,
RT's build mechanism will generate a build information file, named "AboutThisBuild.txt", and require some parameters that can't be set by Cmake, so it's but everything can be overriden.
done in our build script, and may be overridden at your own will. The build process also enable some sort of cross compiling, since you can only choose
a specific processor variation of the same type (e.g. core2, athlon64, which are both an x86 architecture). Real cross compiling (e.g. building the windows RawTherapee's build mechanism will generate a build information file, named
version on a linux platform) has not been tested. "AboutThisBuild.txt", and require some parameters that can't be set by CMake,
so it's done in our build script, and may be overridden at your own will. The
By default, no processor is specified, so Cmake/GCC will build RT for your processor (or maybe a generic processor). Developers that are providing build to build process also enables some sort of cross-compiling, since you can only
download then have to set the processor label manually (set to 'undefined' by default) with the PROC_LABEL cmake's parameter (we assume that you know choose a specific processor variation of the same type (e.g. core2, athlon64,
how to specify a cmake parameter). which are both an x86 architecture). Real cross-compiling (e.g. building the
Windows version on a Linux platform) has not been tested.
Note for developers that handle an automated build system:
Mercurial is required in order to produce the build information file, but you By default, no processor is specified, so CMake/GCC will build RT for your
build system will certainly only use the source code without any access to a machine's processor. You can specify that the build is to be made for a
Mercurial repository. To generate the neede information (they are stored in generic processor by using the -DPROC_TARGET_NUMBER="1" CMake option.
ReleaseInfo.cmake) just run the sript tools/generateReleaseInfo. It will generate Developers who are providing builds for download from the RawTherapee website
all information needed. After that you can delete .hg/ (and .hg*) and continue have to set the processor label (a human-readable description of the
with the normal compile instructions without the need of mercurial installed. processor, set to "undefined" by default) manually with the -DPROC_LABEL="foo"
In short: CMake parameter.
1. check out the desired hg tag
2. run tools/generateReleaseInfo (to generate ReleaseInfo.cmake) Note for developers that handle an automated build system: Mercurial is
3. delete the mercurial stuff (.hg*) required in order to produce the build information file, but your build system
4. use it for your build system will certainly only use the source code without any access to a Mercurial
repository. To generate the needed information, run the sript
./tools/generateReleaseInfo. After that you can delete .hg* and continue with
Windows the normal compile instructions without the need for mercurial.
-------
In short, once you cd into your clone of the RawTherapee source code
The toolchain: repository:
1. Check out the desired hg tag: hg update "4.0.10"
There is 2 method to compile RawTherapee, and they each rely on different and common packages. They are 2. Run tools/generateReleaseInfo to generate ReleaseInfo.cmake:
now referred to METHOD 1 and METHOD 2. ./tools/generateReleaseInfo
Of course, you'll have to install the package for the build method explained later in this document. 3. Delete the mercurial stuff: rm -rvf .hg*
4. The repository is now ready to be made into a public tarball: hg archive
The rest of this document assumes that you've installed MinGW, MSYS and Gtkmm respectively to "C:\mingw", "rawtherapee-4.0.10.tar" -X ".hg*" && xz -z -9e -T 8 "rawtherapee-4.0.10.tar"
"C:\msys" and "C:\gtkmm".
This tutorial assume that you've installed the packages in paths THAT DOES NOT CONTAIN SPACES. Windows
-------
METHOD 1:
- MinGW64-TDM (Bundle or On-Demand installer from http://tdm-gcc.tdragon.net/download) The toolchain:
Make sure you use the current 4.5.2 or better, and install MinGW64 (not MinGW32)
MinGW64 is more comprehensive, plus it runs AND compiles both 32bit and 64bit Windows. There are two methods of compiling RawTherapee in Windows, and they each
Old Mingw32 version miss some required header files, so some Windows functions will be disabled though it will compile. rely on different and common packages. They will be referred to as METHOD 1
However MinGW64 does not fully support XP, only Vista and up. and METHOD 2. You will have to install the dependencies for the build
- MSYS (http://downloads.sourceforge.net/mingw/MSYS-1.0.11.exe) methods explained later in this document.
If you have some trouble installing MSYS, see here : http://www.mingw.org/wiki/MSYS
- CMake (http://www.cmake.org/cmake/resources/software.html) The rest of this document assumes that you've installed MinGW, MSYS and
Version 2.8.4 or above is required for this platform gtkmm respectively to "C:\mingw", "C:\msys" and "C:\gtkmm". This tutorial
- Gtkmm2.22 (for 32bit: http://ftp.se.debian.org/pub/gnome/binaries/win32/gtkmm/2.22/ assume that you've installed the packages in paths that DO NOT CONTAIN
for 64bit: http://ftp.gnome.org/pub/gnome/binaries/win64/gtk+/2.22/) SPACES.
METHOD 2: METHOD 1
- MinGW-TDM (Bundle or On-Demand insteller from http://tdm-gcc.tdragon.net/download) - MinGW64-TDM (Bundle or On-Demand installer from
- CMake (http://www.cmake.org/cmake/resources/software.html) http://tdm-gcc.tdragon.net/download) Make sure you use the current 4.6.1
- Gtkmm2.22 (for 32bit: http://ftp.se.debian.org/pub/gnome/binaries/win32/gtkmm/2.22/ or newer stable version, and install MinGW64 (not MinGW32), as MinGW64
for 64bit: http://ftp.gnome.org/pub/gnome/binaries/win64/gtk+/2.22/) is more comprehensive plus it runs AND compiles for both 32bit and 64bit
Windows machines. Old Mingw32 versions miss some required header files,
Additionnal steps: so some Windows functions will be disabled though it will compile.
When all the packages of your preferred method are installed: However MinGW64 does not fully support Windows XP, only Vista and up.
- set the GTKMM_BASEPATH user or system environment variable to the installation directory of Gtkmm - MSYS - http://downloads.sourceforge.net/mingw/MSYS-1.0.11.exe If you
(the Gtkmm's installer can do it for you) have some trouble installing MSYS, see here:
- set the MINGW_BASEPATH user or system environment variable to the installation directory of MinGW32 http://www.mingw.org/wiki/MSYS
- set the PKG_CONFIG_PATH user or system environment variable to the location of the pkgconfig directories: - CMake - http://www.cmake.org/cmake/resources/software.html Version 2.8.8
c:\mingw\lib\pkgconfig;c:\gtkmm\lib\pkgconfig or above is required for this platform
You have to restart the console to take this new variables into account - Gtkmm2.22
- On Windows, set Cmake option BUILD_BUNDLE ON - for 32bit:
- If you run MinGW64 and want to compile for 32bit, change the following vars in CMAKE (use CMAKE-GUI to makes this easier): http://ftp.se.debian.org/pub/gnome/binaries/win32/gtkmm/2.22/
CMAKE_CXX_FLAGS,CMAKE_C_FLAGS,CMAKE_SHARED_LINKER_FLAGS: -m32 - for 64bit:
CMAKE_EXE_LINKER_FLAGS: -m32 --large-address-aware http://ftp.gnome.org/pub/gnome/binaries/win64/gtk+/2.22/
CMAKE_RC_FLAGS: -F pe-i386
METHOD 2
- Copy the "Win32CMakeOptions-sample.txt" file located in the root directory of RT's source tree, to "cmo.txt" (e.g.) - MinGW-TDM - Bundle or On-Demand installer
You can edit that copy to change the compilation flags to your needs, but the default values should be fine. http://tdm-gcc.tdragon.net/download
However, if you wants to upload a build, you should set some additionnal information about your processor. There are two possibilities: - CMake - http://www.cmake.org/cmake/resources/software.html
1. You pickup a target processor from "ProcessorTargets.cmake": all you have to do is set the PROC_TARGET_NUMBER parameter in cmo.txt - gtkmm-2.22
to the right target number. - for 32bit:
If you choose the 'native' solution, you have to set the processor label manually in cmo.txt, by uncommenting and set the PROC_LABEL http://ftp.se.debian.org/pub/gnome/binaries/win32/gtkmm/2.22/
parameter. Please provide a short name, like "core i5" or "athlon64" (without double quote)... processor frequency if of no use. - for 64bit:
2. You don't need specific processor flags, so you'll let PROC_TARGET_NUMBER set to 0, but you have to set the PROC_LABEL parameter http://ftp.gnome.org/pub/gnome/binaries/win64/gtk+/2.22/
in cmo.txt (don't forget to uncomment the line). Please provide a short name, like "core i5" or "athlon64" (without double quote)...
specifying the processor frequency in it is useless. Additional steps:
When all the packages of your preferred method are installed:
- set the GTKMM_BASEPATH user or system environment variable to the
Dependancies: installation directory of gtkmm (the gtkmm installer can do it for you).
- set the MINGW_BASEPATH user or system environment variable to the
RawTherapee rely on libraries that may not be part of the Gtkmm or MinGW package. There is two ways of installing installation directory of MinGW32.
thoses libraries. - set the PKG_CONFIG_PATH user or system environment variable to the
location of the pkgconfig directories:
The simple way: c:\mingw\lib\pkgconfig;c:\gtkmm\lib\pkgconfig You have to restart the
console to take these new variables into effect.
For your convenience, those libraries has been precompiled and are downloadable at : - set the CMake option BUILD_BUNDLE ON
- If you run MinGW64 and want to compile for 32bit, change the following
http://www.rawtherapee.com/releases_head/windows/dependencies_for_creating_builds/ vars in CMake (use CMAKE-GUI to makes this easier):
CMAKE_CXX_FLAGS,CMAKE_C_FLAGS,CMAKE_SHARED_LINKER_FLAGS: -m32
If you don't find a suitable package for your toolchain, take the DIY way or ask a developer CMAKE_EXE_LINKER_FLAGS: -m32 --large-address-aware
to build them for you. CMAKE_RC_FLAGS: -F pe-i386
Just unpack the content of this archive to the base installation dir of MinGW, and everything - Copy the "Win32CMakeOptions-sample.txt" file located in the root
should work fine. directory of RT's source tree, to "cmo.txt" (for example). You can edit
that copy to change the compilation flags to your needs, but the default
The "Do It Yourself" way: values should be fine. However, if you want to upload a build, you
should set some additional information about your processor. There are
The MSYS package is required to build the libraries. See above for the download link. two possibilities:
1. You pick up a target processor from "ProcessorTargets.cmake". All you
Before building them, look if they are already installed in your Gtkmm and MinGW directories. There shouldn't be have to do is set the PROC_TARGET_NUMBER parameter in cmo.txt to the
two versions of the same library in different place. desired target number. If you choose the 'native' solution, you have
to set the processor label manually in cmo.txt by uncommenting and
Open an MSYS console, that will create a Linux environment, and compile the dependancies in that order: setting the PROC_LABEL parameter. Please provide a short name, like
"core i5" or "athlon64" (without double quotes). Processor frequency
zlib: is of no use.
If you have Gtkmm2.22 installed, you should skip this section 2. You don't need specific processor flags, so you'll let
- download: http://zlib.net/ PROC_TARGET_NUMBER default to 0, but you have to set the PROC_LABEL
- how to build: parameter in cmo.txt (don't forget to uncomment the line). Please
cd to the unarchiving directory of zlib-1.2.5 provide a short name, like "core i5" or "athlon64" (without double
make -f win32/Makefile.gcc quotes). Specifying the processor frequency isof no use.
Then, manually copy the files as follows (tip: you can individually copy the lines below and paste them in MSys's prompt with the middle mouse button):
cp -iv zlib1.dll /mingw/bin Dependancies:
cp -iv zconf.h zlib.h /mingw/include
cp -iv libz.a /mingw/lib RawTherapee relies on libraries that may not be part of the gtkmm or MinGW
cp -iv libzdll.a /mingw/lib/libz.dll.a packages. There are two ways of installing these libraries.
libpng: The simple way:
If you have Gtkmm2.22 installed, you should skip this section For your convenience, these libraries has been precompiled and are
- download: http://sourceforge.net/projects/libpng/files/ downloadable at:
(please note that libpng 1.5 has not been tested yet) http://www.rawtherapee.com/releases_head/windows/dependencies_for_creating_builds/
- how to build: If you don't find a suitable package for your toolchain, take the DIY way
cd to the unarchiving directory of lpng144 or ask a developer to build them for you. Unpack the contents of this
archive to the base installation dir of MinGW, and everything should work
There are two options to build libpng: fine.
1. gtkmm doesn't provide zlib so i've compiled it myself
cmake -G "MSYS Makefiles" -DCMAKE_INSTALL_PREFIX:PATH=/mingw -DCMAKE_BUILD_TYPE:STRING=Release The "Do It Yourself" way:
2. gtkmm provide zlib and i want to reuse it (so we're assuming that you didn't compiled zlib like explained here above) The MSYS package is required to build the libraries. See above for the
cmake -G "MSYS Makefiles" -DCMAKE_INSTALL_PREFIX:PATH=/mingw -DCMAKE_PREFIX_PATH:PATH=C:/gtkmm -DCMAKE_BUILD_TYPE:STRING=Release download link. Before building them, check if they are already installed
in your gtkmm and MinGW directories. There shouldn't be two versions of
Then build and install: the same library in different places.
make
make install Open an MSYS console, that will create a Linux environment, and compile
the dependancies in the following order:
libjpeg: zlib:
- download: http://www.ijg.org/ If you have Gtkmm-2.22 installed, you should skip this zlib section.
- how to build: - Download: http://zlib.net/
cd to the unarchiving directory of jpeg-8b - How to build:
./configure --prefix=/mingw cd to the directory you unpacked zlib-1.2.5 to,
copy the content of jconfig.txt to jconfig.h (overwrite the existing file) make -f win32/Makefile.gcc
make
make install Then, manually copy the files as follows (tip: you can individually
copy the lines below and paste them in MSYS' prompt with the middle
libtiff: mouse button):
- download: ftp://ftp.remotesensing.org/pub/libtiff/ cp -iv zlib1.dll /mingw/bin
- how to build: cp -iv zconf.h zlib.h /mingw/include
cp -iv libz.a /mingw/lib
In the configure process below, set the zlib include and lib path to the right folder. We're assuming that you're using cp -iv libzdll.a /mingw/lib/libz.dll.a
the one provided in the gtkmm bundle
libpng:
./configure --prefix=/mingw --with-zlib-include-dir=/c/gtkmm/include --with-zlib-lib-dir=/c/gtkmm/lib If you have gtkmm-2.22 installed, you should skip this libpng section.
make - Download: http://sourceforge.net/projects/libpng/files/
cd libtiff - How to build:
make install cd to the directory you unpacked lpng144 to.
There are two methods of building libpng:
libiptcdata: 1. gtkmm doesn't provide zlib so compile it yourself:
- download: http://libiptcdata.sourceforge.net/ cmake -G "MSYS Makefiles" -DCMAKE_INSTALL_PREFIX:PATH=/mingw -DCMAKE_BUILD_TYPE:STRING=Release
- how to build: 2. gtkmm provides zlib so you can reuse it (assuming that you
./configure --prefix=/mingw hadn't compiled zlib as explained above):
cmake -G "MSYS Makefiles" -DCMAKE_INSTALL_PREFIX:PATH=/mingw -DCMAKE_PREFIX_PATH:PATH=C:/gtkmm -DCMAKE_BUILD_TYPE:STRING=Release
Edit the "Makefile" file from the root dir of libiptcdata, and search for "DIST_SUBDIRS ="
and "SUBDIRS =". You should only find one line for each search. From those lines, remove "iptc", then Then build and install:
make
make make install
make install
libjpeg:
lcms: - Download: http://www.ijg.org/
- download lcm v1.x for RT3.0, v2.x for RT3.1 and upper: http://sourceforge.net/projects/lcms/files/ - How to build:
- how to build (suitable for both version): cd to the directory you unpacked jpeg-8b to.
./configure --prefix=/mingw ./configure --prefix=/mingw
make Copy jconfig.txt to jconfig.h (overwrite the existing file).
make install make
make install
IMPORTANT: libtiff:
Make sure that the lcms.pc and libiptcdata.pc files located in the pkgconfig dir has the first - Download: ftp://ftp.remotesensing.org/pub/libtiff/
line like this : prefix=/mingw - How to build:
In the configure process below, set the zlib include and lib path
If everything is well installed, you should see the following lines when running the cmake command (see "Building RT" below) : to the right folder. We're assuming that you're using the one
-- checking for module 'libiptcdata' provided in the gtkmm bundle.
-- found libiptcdata, version 1.0.4 ./configure --prefix=/mingw --with-zlib-include-dir=/c/gtkmm/include --with-zlib-lib-dir=/c/gtkmm/lib
-- checking for module 'lcms<=1.99' make
-- found lcms, version 1.19 cd libtiff
-- Found JPEG: C:/mingw/lib/libjpeg.dll.a make install
-- Found ZLIB: C:/gtkmm/lib/libz.dll.a
-- Found PNG: C:/gtkmm/lib/libpng.lib libiptcdata:
-- Found TIFF: C:/mingw/lib/libtiff.dll.a - Download: http://libiptcdata.sourceforge.net/
- How to build:
Building RT: ./configure --prefix=/mingw
METHOD 1: Edit the "Makefile" file from the root dir of libiptcdata and
Requirements: search for "DIST_SUBDIRS =" and "SUBDIRS =". You should only find
- MinGW + MSYS one line for each search. From these lines, remove "iptc", then:
- CMake make
- GTK and GTKMM development environments make install
Compile: lcms:
- Start an MSYS command line interface - Download lcms1 for RawTherapee-3.0 or lcms2 for RawTherapee-3.1 and
- Enter the root directory of the RawTherapee source tree (type: cd "/C/Absolute/Path/To/RawTherapee_sourceTree") newer http://sourceforge.net/projects/lcms/files/
- Type: cmake -G "MSYS Makefiles" -DCMAKE_BUILD_TYPE=Release -Ccmo.txt . - How to build (suitable for both version):
- Type: make install ./configure --prefix=/mingw
- You'll find the compiled program in the subdirectory named like the value of CMAKE_BUILD_TYPE ("Release" in this example) make
make install
METHOD 2:
Requirements:
- MinGW-TDM (http://sourceforge.net/projects/tdm-gcc/files/TDM-GCC%20Installer/tdm-gcc-4.5.1.exe/download) IMPORTANT:
- CMake (http://www.cmake.org/cmake/resources/software.html) Make sure that the lcms.pc and libiptcdata.pc files located in the
- Mercurial (http://mercurial.selenic.com/wiki/WindowsInstall) pkgconfig dir have the first line like this:
- Gtkmm (http://ftp.se.debian.org/pub/gnome/binaries/win32/gtkmm/2.22/) prefix=/mingw
Compile: If everything has been installed correctly, you should see the following
- Start a standard DOS command line interface (WIN + "R" -> "cmd") lines when running the cmake command (see "Building RT" below):
- Enter the root directory of the RawTherapee source tree (type: cd C:\Absolute\Path\To\RawTherapee_sourceTree) -- checking for module 'libiptcdata'
If you wants to upload a build, you should set some additionnal information about your processor. There are two possibilities: -- found libiptcdata, version 1.0.4
1. You pickup a target processor from "ProcessorTargets.cmake": all you have to do is adding "-D PROC_TARGET_NUMBER:STRING=number" -- checking for module 'lcms2'
to cmake's command line -- found lcms2, version 2.3
If you choose the 'native' solution's number, you have to set the processor label manually by setting "-D PROC_LABEL:STRING=procLabel" -- Found JPEG: C:/mingw/lib/libjpeg.dll.a
in cmake's command line -- Found ZLIB: C:/gtkmm/lib/libz.dll.a
Please provide a short name, like "core i5" or "athlon64" (without double quote)... processor frequency if of no use. -- Found PNG: C:/gtkmm/lib/libpng.lib
2. You don't need specific processor flags, you still have to set the PROC_LABEL parameter (see point 1 righ above) -- Found TIFF: C:/mingw/lib/libtiff.dll.a
- Type: mingw32-make.exe install
- You'll find the compiled program in the subdirectory named like the value of CMAKE_BUILD_TYPE ("Release" in this example) Building RT:
Linux METHOD 1:
----- Requirements:
- MinGW + MSYS
Requirements: - CMake
- CMake - GTK and gtkmm development environments
- GTK and GTKMM development packages
- libtiff, libpng, libjpeg, lcms, libiptcdata development packages Compile:
- ...did I forget something? - Start an MSYS command line interface,
- Enter the root directory of the RawTherapee source tree:
On Ubuntu/Debian the requirements can be installed by running: cd /C/Absolute/Path/To/RawTherapee_sourceTree
sudo apt-get install build-essential cmake libgtk2.0-dev libgtkmm-2.4-dev libtiff-dev libpng-dev libjpeg-dev liblcms-dev libiptcdata-dev mercurial - Type:
cmake -G "MSYS Makefiles" -DCMAKE_BUILD_TYPE=Release -Ccmo.txt .
Compile: - Type:
- Enter the root directory of the RawTherapee source tree make install
- Type: cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=./release -DBINDIR=. -DDATADIR=. -DLIBDIR=. - You'll find the compiled program in the subdirectory named like the
developers that wants to provide a build has to set the PROC_LABEL to their processor name, e.g.: value of CMAKE_BUILD_TYPE ("Release" in this example).
cmake -DPROC_LABEL:STRING=athlon64 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=./release -DBINDIR=. -DDATADIR=. -DLIBDIR=.
- Type: make install METHOD 2: Requirements:
- You find the compiled program in the release directory (you can copy it anywhere you want) - MinGW-TDM:
https://sourceforge.net/projects/tdm-gcc/files/TDM-GCC%20Installer/
(By changing the cmake flags, you can change where the release is. By removing all flags it should go to the standard system install location). - CMake: http://www.cmake.org/cmake/resources/software.html
- Mercurial: http://mercurial.selenic.com/wiki/WindowsInstall
- gtkmm: http://ftp.se.debian.org/pub/gnome/binaries/win32/gtkmm/2.22/
Using Eclipse under Linux:
Compile:
Eclipse mercurial plugin: - Start a standard DOS command prompt (WIN+R > cmd),
click Help -> Install new Software. - Enter the root directory of the RawTherapee source tree:
The Eclipse Update Site for MercurialEclipse is available at this URL: cd C:\Absolute\Path\To\RawTherapee_sourceTree
http://cbes.javaforge.com/update
If you want to upload a build, you should set some additional
Import the rawtherapee mercurial repository: information about your processor. There are two possibilities:
File->new->'other'->mercurial->Clone existing repository 1. You pick up a target processor from "ProcessorTargets.cmake". All
fill in URL: https://rawtherapee.googlecode.com/hg you have to do is set "-D PROC_TARGET_NUMBER:STRING=number" in
cmake's command line to the desired target number. If you choose
Enter root directory of RawTherapee source tree from a terminal window. the 'native' solution, you have to set the processor label manually
configure the source for Eclipse with: by setting "-D PROC_LABEL:STRING=procLabel" in cmake's command
cmake -G "Eclipse CDT4 - Unix Makefiles" -DCMAKE_INSTALL_PREFIX=./release -DBINDIR=. -DDATADIR=. -DLIBDIR=. -DCMAKE_BUILD_TYPE=Release line. Please provide a short name, like "core i5" or "athlon64"
If you wants to upload a build, you should set some additionnal information about your processor. There are two possibilities: (without double quotes). Processor frequency is of no use.
1. You pickup a target processor from "ProcessorTargets.cmake": all you have to do is adding "-D PROC_TARGET_NUMBER:STRING=number" 2. You don't need specific processor flags, so you'll let
to cmake's command line PROC_TARGET_NUMBER default to 0, but you still have to set the
If you choose the 'native' solution's number, you have to set the processor label manually by setting "-D PROC_LABEL:STRING=procLabel" PROC_LABEL parameter (see point 1 righ above).
in cmake's command line
Please provide a short name, like "core i5" or "athlon64" (without double quote)... processor frequency if of no use. - Type:
2. You don't need specific processor flags, you still have to set the PROC_LABEL parameter (see point 1 righ above) mingw32-make.exe install
- You'll find the compiled program in the subdirectory named like the
Eclipse does not do 'make install' but only 'make all' so to get the release there are 2 ways. value of CMAKE_BUILD_TYPE ("Release" in this example).
1. type 'make install' in the console or,
2. in 'Project'->'properties'->'C/C++ Make Project'->'Build (incremental build)' change 'all' to 'install' Linux
-----
OSX
--- Requirements:
Requirements: PACKAGE GENTOO DEBIAN/UBUNTU URL
- XCode Development Tools (you only need a subset of these, but it is probably easier to just install all of them) GTK+ gtk+-2.0>=2.12 x11-libs/gtk+ libgtk2.0-dev http://www.gtk.org/
- MacPorts GLIB2 glib-2.0>=2.16 dev-libs/glib libglib2.0-dev http://www.gtk.org/
- Set /opt/local/etc/macports/variants.conf to include "+no_x11 +quartz" GLIBMM glibmm-2.4>=2.16 dev-cpp/glibmm libglibmm-2.4-dev http://www.gtkmm.org
- If you want to build for multiple architectures, add +universal to variants.conf. Note that this will increase the size of the final application substantially. GTKMM gtkmm-2.4>=2.12 dev-cpp/gtkmm libgtkmm-2.4-dev http://www.gtkmm.org
- Set /opt/local/etc/macports/macports.conf key 'universal_archs' to the architectures you wish to build for. Possible values SIGC sigc++-2.0 dev-libs/libsigc++ libsigc++-2.0-dev http://libsigc.sourceforge.net/
include "i386 x86_64 ppc ppc64" LIBIPTCDATA libiptcdata>=1.0.2 media-libs/libiptcdata libiptcdata-dev http://libiptcdata.sourceforge.net
- Edit beginning of CMakeLists.txt to enable the same architectures as you added to variants.conf LCMS2 lcms>=2.0a media-libs/lcms liblcms2-dev http://www.littlecms.com/
- Run "sudo port install cairomm pango-devel gtk2 cmake glibmm gtkmm lcms libiptcdata" to install all needed libraries and tools JPEG libjpeg>=6b media-libs/jpeg libjpeg-dev http://jpegclub.org/ http://www.ijg.org/
- If you don't already have Mercurial installed, run "sudo port install mercurial" TIFF libtiff>=3.9.4 media-libs/tiff libtiff-dev http://www.remotesensing.org/libtiff/
- If you want to try OpenMP builds, run "sudo port install gcc45" PNG libpng>=1.2.44 media-libs/libpng libpng-dev http://www.libpng.org/
BZIP2 bzip2>-1.0.4 app-arch/bzip2 libbz2-dev http://www.bzip.org/
Compile: ZLIB zlib>=1.2.3-r1 sys-libs/zlib zlib1g-dev http://www.zlib.net/
- Enter root directory of RawTherapee source tree EXIV2 exiv2>=0.19 media-gfx/exiv2 libexiv2-dev http://www.exiv2.org/
- Type: cmake -D CMAKE_C_COMPILER=gcc-mp-4.5 -D CMAKE_CXX_COMPILER=g++-mp-4.5 . (to enable OpenMP, assuming you have installed gcc45) OR: EXPAT expat>=2.1.0 dev-libs/expat libexpat-dev http://expat.sourceforge.net/
cmake -D OPTION_OMP=false . (to disable OpenMP and use the default compiler)
If you wants to upload a build, you should set some additionnal information about your processor. There are two possibilities: On Ubuntu/Debian the requirements can be installed by running:
1. You pickup a target processor from "ProcessorTargets.cmake": all you have to do is adding "-D PROC_TARGET_NUMBER:STRING=number" sudo apt-get install build-essential cmake libbz2-dev libexiv2-dev libexpat1-dev libglib2.0-dev libglibmm-2.4-dev libgtk2.0-dev libgtkmm-2.4-dev libiptcdata-dev libjpeg8-dev liblcms2-dev libpng-dev libsigc++-2.0-dev libtiff-dev mercurial zlib1g-dev
to cmake's command line
If you choose the 'native' solution's number, you have to set the processor label manually by setting "-D PROC_LABEL:STRING=procLabel" Compile:
in cmake's command line - Enter the root directory of the RawTherapee source tree
Please provide a short name, like "core i5" or "athlon64" (without double quote)... processor frequency if of no use. - Type:
2. You don't need specific processor flags, you still have to set the PROC_LABEL parameter (see point 1 righ above) cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=./release -DBINDIR=. -DDATADIR=. -DLIBDIR=.
- Type: make install Developers who want to provide a public build have to set the PROC_LABEL
- Type: ./tools/osx/make-app-bundle to their processor name, e.g.:
- You will find a RawTherapee.dmg file in release/ folder; this is the distribution release and can be run on any machine which meets the cmake -DPROC_LABEL:STRING=athlon64 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=./release -DBINDIR=. -DDATADIR=. -DLIBDIR=.
architecture requirements you specified in variants.conf earlier. - Type:
make install
For any bugs or patches to the OSX build, please contact Wyatt <wyatt@digitalcave.ca> - You'll find the compiled program in the subdirectory named like the value
of CMAKE_BUILD_TYPE ("Release" in this example). You can copy it anywhere
you want.
By changing the cmake flags, you can change where the release will compile
to. By removing all flags it should go to the standard system install
location.
Using Eclipse under Linux:
Eclipse mercurial plugin: Click "Help > Install new Software".
The Eclipse Update Site for MercurialEclipse is available at this URL:
http://cbes.javaforge.com/update
Import the rawtherapee mercurial repository:
"File > new > other > mercurial > Clone existing repository"
Enter this URL:
https://rawtherapee.googlecode.com/hg
Enter the root directory of the RawTherapee source tree from a terminal
window. Configure the source for Eclipse with:
cmake -G "Eclipse CDT4 - Unix Makefiles" -DCMAKE_INSTALL_PREFIX=./release -DBINDIR=. -DDATADIR=. -DLIBDIR=. -DCMAKE_BUILD_TYPE=Release
If you want to upload a build, you should set some additional information
about your processor. There are two possibilities:
1. You pick up a target processor from "ProcessorTargets.cmake". All you
have to do is set "-D PROC_TARGET_NUMBER:STRING=number" in cmake's
command line to the desired target number. If you choose the 'native'
solution, you have to set the processor label manually by setting "-D
PROC_LABEL:STRING=procLabel" in cmake's command line. Please provide a
short name, like "core i5" or "athlon64" (without double quotes).
Processor frequency is of no use.
2. You don't need specific processor flags, so you'll let
PROC_TARGET_NUMBER default to 0, but you still have to set the
PROC_LABEL parameter (see point 1 righ above).
Eclipse does not do 'make install', but only 'make all'.
There are two ways to compile:
1. type 'make install' in the console or,
2. in "Project > properties > C/C++ Make Project > Build (incremental
build)" change 'all' to 'install'.
OS X
----
Requirements:
- XCode Development Tools (you only need a subset of these, but it is
probably easier to just install all of them)
- MacPorts
- Set /opt/local/etc/macports/variants.conf to include "+no_x11 +quartz"
- If you want to build for multiple architectures, add +universal to
variants.conf. Note that this will increase the size of the final
application substantially.
- Set /opt/local/etc/macports/macports.conf key 'universal_archs' to the
architectures you wish to build for. Possible values include "i386
x86_64 ppc ppc64"
- Edit the beginning of CMakeLists.txt to enable the same architectures
as you added to variants.conf
- To install all the tools and dependencies, run:
sudo port install cairomm pango-devel gtk2 cmake glibmm gtkmm lcms libiptcdata
- If you don't already have Mercurial installed, run:
sudo port install mercurial
- If you want to try OpenMP builds, run:
sudo port install gcc45
Compile:
- Enter the root directory of the RawTherapee source tree
- To enable OpenMP, assuming you have installed gcc45), type:
cmake -D CMAKE_C_COMPILER=gcc-mp-4.5 -D CMAKE_CXX_COMPILER=g++-mp-4.5 .
OR to disable OpenMP and use the default compiler, type:
cmake -D OPTION_OMP=false .
If you want to upload a build, you should set some additional information
about your processor. There are two possibilities:
1. You pick up a target processor from "ProcessorTargets.cmake". All you
have to do is set "-D PROC_TARGET_NUMBER:STRING=number" in cmake's
command line to the desired target number. If you choose the 'native'
solution, you have to set the processor label manually by setting "-D
PROC_LABEL:STRING=procLabel" in cmake's command line. Please provide a
short name, like "core i5" or "athlon64" (without double quotes).
Processor frequency is of no use.
2. You don't need specific processor flags, so you'll let
PROC_TARGET_NUMBER default to 0, but you still have to set the
PROC_LABEL parameter (see point 1 righ above).
- Type:
make install
- Type:
./tools/osx/make-app-bundle
- You will find a RawTherapee.dmg file in the release/ folder; this is the
distribution release and can be run on any machine which meets the
architecture requirements you specified in variants.conf earlier.
Contact: For any bugs or patches to the OS X build, please contact Wyatt
<wyatt@digitalcave.ca>