1 |
nagata |
1643 |
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 |