1 |
Compiling QSampler for Mac OS X with XCode |
2 |
============================================== |
3 |
|
4 |
Requirements |
5 |
------------ |
6 |
|
7 |
QSampler requires Qt4. You need to install Qt4/Mac from the source codes. |
8 |
Go to Trolltech website (http://trolltech.com/products/qt) and find the |
9 |
necessary information. |
10 |
|
11 |
If you want to build a "standalone" application that does not require Qt |
12 |
at runtime (i.e. containing the necessary Qt frameworks in the package), |
13 |
you need to install the binary distribution of Qt4/Mac as well. |
14 |
|
15 |
QSampler is also dependent on liblscp, so build liblscp before building |
16 |
QSampler. Please read "README.osx" in the liblscp source distribution. |
17 |
|
18 |
The XCode project uses autotools build files. On Mac OS 10.4, you need |
19 |
to install pkg-config (available at http://pkgconfig.freedesktop.org/wiki/). |
20 |
|
21 |
Layout of the Directories |
22 |
------------------------- |
23 |
|
24 |
The XCode project for qsampler creates a temporary build directory as |
25 |
"$QS/../temp_build/$BUILD_STYLE" (where $QS is the qsampler |
26 |
directory, and $BUILD_STYLE is the build style defined in the XCode |
27 |
project). In this directory, the following subdirectories are created |
28 |
and used: |
29 |
$BASE.build: |
30 |
Intermediate build directory. Symbolic links to the original |
31 |
source files are placed and "configure && make" is performed in |
32 |
this directory. ($BASE is the basename of the qsampler |
33 |
directory.) |
34 |
local: |
35 |
The qsampler application package is created in this directory as |
36 |
local/bin/qsampler.app. |
37 |
|
38 |
This layout of the directories is similar to that of the liblscp |
39 |
project, on which qsampler is dependent. You need to compile |
40 |
liblscp first (with the same settings as this qsampler XCode |
41 |
project). So it is best to create a common directory, place the |
42 |
liblscp and qsampler directories in it, and build liblscp and |
43 |
qsampler in this order. See also "osx/README.mac" in liblscp. |
44 |
|
45 |
You may have built linuxsampler as well. If you have done so, |
46 |
you should have created a common directory for libgig and linuxsampler. |
47 |
It is a good idea to place the liblscp and qsampler directories in |
48 |
this same place. |
49 |
|
50 |
Universal Binaries |
51 |
------------------ |
52 |
|
53 |
You can create the Universal Binaries by selecting "Deployment_UB" build |
54 |
style and build. The binaries for i386 and ppc architectures are built |
55 |
separately and then automatically combined. The Universal version of |
56 |
qsampler is found in $QS/../temp_build/Deployment_UB/local/bin. |
57 |
|
58 |
You do not need to have the Universal version of liblscp, but you _do_ |
59 |
need to build liblscp both for i386 and ppc architectures. |
60 |
|
61 |
The Universal version of qsampler.app is intended for binary distribution, |
62 |
so it has some additional features as follows: |
63 |
|
64 |
(1) On startup, QSampler modifies the PATH environment variable so that the |
65 |
directory in which qsampler.app resides is included in the search path. |
66 |
This feature allows the user to place the linuxsampler binary in the same |
67 |
directory as qsampler.app, making the installation/uninstallation simple. |
68 |
In addition, the default setting invokes the "linuxsampler.starter" script |
69 |
instead of the linuxsampler binary itself. This script creates the instrument |
70 |
database if not present, start up the Jack deamon, and invokes the linuxsampler |
71 |
binary. This script will be copied to $QS/../temp_build/Deployment_UB/local/bin |
72 |
when building the "Deployment_UB" target. |
73 |
|
74 |
(2) If you have the binary package of Qt4/Mac installed, the runtime Qt |
75 |
frameworks are copied in Contents/Frameworks. This should |
76 |
enable qsampler.app to run on machines without Qt installed. On the |
77 |
other hand, the size of qsampler.app is bloated to about 30MB (without |
78 |
the frameworks it is something like 2MB). |
79 |
|
80 |
(3) The application icon is placed in Contents/Resources. |
81 |
|
82 |
Additional Information |
83 |
---------------------- |
84 |
|
85 |
The XCode project just invokes autoconf_builder.sh with after |
86 |
setting relevant environmental variables. If you are interested |
87 |
(or feel suspicious), please examine autoconf_builder.sh. |
88 |
|
89 |
6 May 2007: First written (for libgig) by Toshi Nagata |
90 |
9 May 2007: Updated to account for the Deployment_UB target |
91 |
30 Dec 2007: Updated for QSampler |
92 |
13 Jan 2008: Small modification |