sclang: array primitives - respect mutability when changing object.
[supercollider.git] / README_OS_X.txt
blobb6c0fb4f980a55e19f9da164cd15fdae6ff618f5
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 "SuperCollider" under
51 CMAKE_INSTALL_PREFIX, which defaults to "<build-directory>/Install",
52 with the finished products in. You might like to move the "SuperCollider"
53 folder into your /Applications folder or install it there directly by
54 passing "-DCMAKE_INSTALL_PREFIX=/Applications" to cmake.
56 The build process can be configured using the cmake program, cmake
57 frontends like "ccmake" or "cmake-gui", or by simply editing the
58 build/CMakeCache.txt file.
60 For example, by default cmake will create a "release" build, but if you want a
61 "debug" build (with optimisations turned off etc), configure cmake like this:
63         cmake -DCMAKE_BUILD_TYPE=Debug ..
65 By default the SCClassLibrary is copied into place. There is a cmake option to create
66 symlinks of the SCClassLibrary instead so that changes to code in the class library are reflected in git.
67 To turn on the symlinking do:
69         cmake -DSC_SYMLINK_CLASSLIB=ON ..
71 For a 32bit build on a 64bit machine (i.e. recent Mac systems), you need to 
72 configure cmake like this:
74         cmake -DCMAKE_OSX_ARCHITECTURES='i386' ..
76 For the BIG universal binary (on 10.6), use:
78         cmake -DCMAKE_OSX_ARCHITECTURES='i386;x86_64' ..
81 Qt GUI:
82 -------
84 By default the new Qt GUI support will be built into sclang and
85 SuperCollider application. If you want to build without it, configure
86 cmake like this:
88         cmake -DSC_QT=OFF ..
91 Standalones:
92 ------------
94 To create a "standalone" app using cmake, you need to use the "standalone" flag.
95 For example, to create a standalone whose name is MyFabApp:
97         cmake -D standalone="MyFabApp" ..
99 This builds like normal but names the finished program "MyFabApp" and includes
100 any special resources you might have created in the folder
101 "platform/mac/MyFabApp Resources" (or, if that doesn't exist, it just uses
102 "platform/mac/Standalone Resources").
104 If you've built a standalone and want to go back to normal build mode, just
105 set that value as an empty string:
107         cmake -D standalone="" ..
110 ------------------------------------------------------------------------
111 On libsndfile
112 ------------------------------------------------------------------------
114 Compiling a universal binary of libsndfile requires access to both a
115 i386 and PPC Mac. The reasons for this are described here:
117         http://www.mega-nerd.com/libsndfile/FAQ.html#Q018
119 Because of this, libsndfile is included with the source as a precompiled
120 universal binary. This UB contains ppc, i386 and x86_64 archs.
123 ------------------------------------------------------------------------
124 Building - 10.6 and 64-bit scsynth and plugins
125 ------------------------------------------------------------------------
127 *** THIS IS OUTDATED, cmake on 10.6 will build 64-bit by default ***
129 You will need to do the following to build a 64-bit scsynth and plugins.
130  * Open the XCode projects for Synth AND Plugins
131  * Double-click each target, and change the
132          * Architectures setting to 'Standard (32-bit/64-bit Universal)'
133          * Base-SDK to 10.5
134          * (optional and recommended): Compiler to GCC 4.2 (if available)
136 This definitely works in Mac OS 10.6, probably 10.5, and these builds will NOT 
137 support 10.4.
139 XCode in 10.6 uses the GCC 4.2 compiler by default, and this compiler will NOT 
140 work with the 10.4 SDK (the default SDK). You will need to either set your build 
141 SDK to 10.5 or 10.6 inside each XCode project, or inspect (double-click) each 
142 target and set GCC 4.0 as your compiler.
144 UPDATE - There is now a Deployment32-64 build style that should build 
145 SuperCollider from source out of the box on 10.6. You can also use the compile.sh 
146 script and pass in ARCHS=32_64 as a flag:
147     ./compile.sh ARCHS=32_64
148 This should build a 32/64 bit version of scsynth and the plugins and a 32-bit 
149 SuperCollider.app. This build style should use the 10.5 SDK by default.
151 The 10.6 SDK still has some problems. If you are on 10.6, please make sure you 
152 have installed the optional 10.5 SDK, installed with the Apple Developer Tools.
155 ------------------------------------------------------------------------
156 Building SuperCollider THE OLD WAY (no cmake - just xcode required)
157 ------------------------------------------------------------------------
159 *** THIS IS OUTDATED, instructions below will not work, use cmake instead ***
161 Requirements:
162  * Mac OS X 10.4.9 or greater
163  * Xcode Tools 2.4.1 or greater.
165 The easy way:
166         cd mac
167         ./clean-compile.sh
168         cd ../../package
169         ./package.sh
171 Your build will be placed in a directory named "SuperCollider".
173 If you run into problems building the most likely cause is that you are
174 not running the correct version of the Xcode tools. You must be running
175 2.4.1 or above!
177 Building within Xcode:
178         There are three projects that should be BUILT IN THIS ORDER:
180         Synth
181          - the synthesis server application
183         Plugins
184          - the UGens and plugins
186         Language
187          - the OS X application with text editor, language interpreter,
188            event scheduling etc.
190 The package.sh script does several maintenance tasks (fixing creator
191 codes, exporting from svn, etc) and creates a ready-to-distribute zip of
192 SuperCollider.
195 ------------------------------------------------------------------------
196 Outro
197 ------------------------------------------------------------------------
199 Thanks to James McCartney, for making this great piece of audio
200 software publicly and freely available.
202 ------------------------------------------------------------------------