sclang: ServerShmInterface - try to avoid multiple destructor calls
[supercollider.git] / README_OS_X.txt
blob9ed88725df8f1ebdd4226687290affffdb67fba8
1 ------------------------------------------------------------------------
2 Introduction
3 ------------------------------------------------------------------------
5 This is the Mac OS X version of James McCartney's SuperCollider
6 synthesis engine (scsynth) and programming language (sclang).
7 Supercollider's main homepage is at:
9    http://supercollider.sourceforge.net/
11 The help files contain a lot of useful information and tutorials for getting
12 started - see the file "Help.html" for a starting point.
14 To get further information on SuperCollider usage or development, you
15 should subscribe to the mailing lists:
17    http://swiki.hfbk-hamburg.de/MusicTechnology/880
20 SPECIAL CHARACTERS ON MAC:
22 Please do not use non-ASCII characters (above code point 127) in your SuperCollider 
23 program path (i.e. the names of the folders containing SuperCollider). 
24 Doing so will break options to open class or method files automatically.
27 ------------------------------------------------------------------------
28 Compiling SuperCollider from the source code
29 ------------------------------------------------------------------------
31 Requirements:
32  * Mac OS X 10.4.9 or greater
33  * Cmake 2.7 or greater
34  * Xcode Tools 2.4.1 or greater
35  * Qt 4: http://qt.nokia.com/downloads/qt-for-open-source-cpp-development-on-mac-os-x/
37 To build SuperCollider with Cmake, it is recommended to create a "build"
38 folder (to keep the built files neatly all together) in the root of the 
39 SuperCollider source, then run "cmake" from within that folder. Like this:
41         cd ~/SuperCollider3/
42         mkdir build
43         cd build
44         cmake ..
46 Then to run the build process run:
48         make install
50 This will build the software, then "install" it to a folder "build/SuperCollider"
51 with the finished products in. You might like to move the "build/SuperCollider"
52 folder into your /Applications folder.
54 The build process can be configured using the cmake program, cmake
55 frontends like "ccmake" or "cmake-gui", or by simply editing the
56 build/CMakeCache.txt file.
58 For example, by default cmake will create a "release" build, but if you want a
59 "debug" build (with optimisations turned off etc), configure cmake like this:
61         cmake -DCMAKE_BUILD_TYPE=Debug ..
63 By default cmake will copy SCClassLibrary to the Application directory. There is a cmake option to create
64 a symlink of the SCClassLibrary instead so that changes to code in the class library are reflected in git.
65 To turn on the symlinking do:
67         cmake -DSC_SYMLINK_CLASSLIB=ON ..
69 For a 32bit build on a 64bit machine (i.e. recent Mac systems), you need to 
70 configure cmake like this:
72         cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS:STRING=-m32 -DCMAKE_C_FLAGS:STRING=-m32 ..
74 For the BIG universal binary (on 10.6), use:
76         cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES='ppc;i386;x86_64' ..
79 Qt GUI:
80 -------
82 By default the new Qt GUI support will be built into sclang and
83 SuperCollider application. If you want to build without it, configure
84 cmake like this:
86         cmake -DSC_QT=OFF ..
89 Standalones:
90 ------------
92 To create a "standalone" app using cmake, you need to use the "standalone" flag.
93 For example, to create a standalone whose name is MyFabApp:
95         cmake -D standalone:string=MyFabApp ..
97 This builds like normal but names the finished program "MyFabApp" and puts all
98 resources into the app bundle, including any special resources you might have
99 created in the folder "platform/mac/MyFabApp Resources" (or, if that doesn't
100 exist, it just uses "platform/mac/Standalone Resources").
102 If you've built a standalone and want to go back to normal build mode, just
103 set that value as an empty string:
105         cmake -D standalone:string= ..
108 ------------------------------------------------------------------------
109 On libsndfile
110 ------------------------------------------------------------------------
112 Compiling a universal binary of libsndfile requires access to both a
113 i386 and PPC Mac. The reasons for this are described here:
115         http://www.mega-nerd.com/libsndfile/FAQ.html#Q018
117 Because of this, libsndfile is included with the source as a precompiled
118 universal binary. This UB contains ppc, i386 and x86_64 archs.
121 ------------------------------------------------------------------------
122 Building - 10.6 and 64-bit scsynth and plugins
123 ------------------------------------------------------------------------
125 You will need to do the following to build a 64-bit scsynth and plugins.
126  * Open the XCode projects for Synth AND Plugins
127  * Double-click each target, and change the
128          * Architectures setting to 'Standard (32-bit/64-bit Universal)'
129          * Base-SDK to 10.5
130          * (optional and recommended): Compiler to GCC 4.2 (if available)
132 This definitely works in Mac OS 10.6, probably 10.5, and these builds will NOT 
133 support 10.4.
135 XCode in 10.6 uses the GCC 4.2 compiler by default, and this compiler will NOT 
136 work with the 10.4 SDK (the default SDK). You will need to either set your build 
137 SDK to 10.5 or 10.6 inside each XCode project, or inspect (double-click) each 
138 target and set GCC 4.0 as your compiler.
140 UPDATE - There is now a Deployment32-64 build style that should build 
141 SuperCollider from source out of the box on 10.6. You can also use the compile.sh 
142 script and pass in ARCHS=32_64 as a flag:
143     ./compile.sh ARCHS=32_64
144 This should build a 32/64 bit version of scsynth and the plugins and a 32-bit 
145 SuperCollider.app. This build style should use the 10.5 SDK by default.
147 The 10.6 SDK still has some problems. If you are on 10.6, please make sure you 
148 have installed the optional 10.5 SDK, installed with the Apple Developer Tools.
151 ------------------------------------------------------------------------
152 Building SuperCollider THE OLD WAY (no cmake - just xcode required)
153 ------------------------------------------------------------------------
155 Requirements:
156  * Mac OS X 10.4.9 or greater
157  * Xcode Tools 2.4.1 or greater.
159 The easy way:
160         cd mac
161         ./clean-compile.sh
162         cd ../../package
163         ./package.sh
165 Your build will be placed in a directory named "SuperCollider".
167 If you run into problems building the most likely cause is that you are
168 not running the correct version of the Xcode tools. You must be running
169 2.4.1 or above!
171 Building within Xcode:
172         There are three projects that should be BUILT IN THIS ORDER:
174         Synth
175          - the synthesis server application
177         Plugins
178          - the UGens and plugins
180         Language
181          - the OS X application with text editor, language interpreter,
182            event scheduling etc.
184 The package.sh script does several maintenance tasks (fixing creator
185 codes, exporting from svn, etc) and creates a ready-to-distribute zip of
186 SuperCollider.
189 ------------------------------------------------------------------------
190 Outro
191 ------------------------------------------------------------------------
193 Thanks to James McCartney, for making this great piece of audio
194 software publicly and freely available.
196 ------------------------------------------------------------------------