]> git.saurik.com Git - wxWidgets.git/blame - docs/mac/install.txt
Commit patch [ 1559950 ] fix mem leaks in wx{Dir|File}Dialog
[wxWidgets.git] / docs / mac / install.txt
CommitLineData
0cd6a2f8 1wxWidgets 2.7.0 for Mac installation
dcb39c53 2------------------------------------
2b5f62a0
VZ
3
4On MacOS X, you can download Apple's free developer tools (gcc
5and associated headers and libraries, such as the Carbon API).
6You can then use configure in a similar way to compiling
fc2171bd 7wxWidgets on Linux (or on Windows using MinGW or Cygwin). See
6b9a6d77 8'Apple Developer Tools' below for more details on using
2b5f62a0
VZ
9configure.
10
11To target on MacOS 8 or 9, you need to buy Metrowerks
12CodeWarrior. You can then compile Mac Classic or MacOS X
13applications on Mac OS X, or compile Mac Classic or MacOS X
14applications on Mac Classic. However you can only run and debug
15each type of application on the target operating system.
16
0cd6a2f8
JS
17
18Apple Developer Tools: command line
19-----------------------------------
20
21As in all Unix projects, you need to do something like this under MacOS X
22with the Apple Developer Tools installed:
23
241) cd into the base dir
252) mkdir osx-build
263) cd osx-build
274) ../configure
285) make
29
30If you want to install the library into the system directories you'll need
31to do this as root. The accepted way of running commands as root is to
32use the built-in sudo mechanism. First of all, you must be using an
33account marked as a "Computer Administrator". Then
34
356) sudo make install
367) type <YOUR OWN PASSWORD>
37
38Note that while using this method is okay for development, it is not
39recommended that you require endusers to install wxWidgets into their
40system directories in order to use your program. One way to avoid this
41is to configure wxWidgets with --disable-shared. Another way to avoid
42it is to make a framework for wxWidgets. Making frameworks is beyond
43the scope of this document.
44
45Note:
46We recommend you configure a static library instead:
47
484) ../configure --disable-shared
49
50or activate OpenGL:
51
524) ../configure --with-opengl
53
54Note:
55It is rarely desirable to install non-Apple software into system directories.
56By configuring the library with --disable-shared and using the full path
57to wx-config with the --in-place option you can avoid installing the library.
58
59
60Apple Developer Tools: XCode
61----------------------------
62
63You can use the project in src/wxWindows.xcodeproj to build wxWidgets,
64and there is a sample project supplied with the minimal sample.
65
66Creating universal binaries
67---------------------------
68
69The Xcode projects for the wxWidgets library and minimal project are set up
70to create universal binaries.
71
72If using the Apple command line tools, pass --enable-universal_binary when
73configuring wxWidgets. If you use wx-config --libs to link your application,
74he necessary linker flags will be added. When compiling your own files,
75you need to add -arch ppc -arch i386 to your CFLAGS.
76
77As an alternative to using --enable-universal_binary, you can build for
78each architecture separately and then use the lipo tool to glue the
79binaries together. Assuming building on a PPC system:
80
811. First build in the usual way to get the PPC library.
82
832. Then, build for Intel, in a different folder. This time use:
84
85export CFLAGS="-g -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386"
86export LDFLAGS="-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk"
87
88./configure --disable-dependency-tracking --enable-static=yes --enable-shared=no \
89 --target=i386-apple-darwin8 --host=powerpc-apple-darwin8 --build=i386-apple-darwin8
90
91You will need to reverse the powerpc and i386 parameters everywhere to build PPC on an Intel
92machine.
93
943. Use lipo to glue the binaries together.
95
96See also:
97http://developer.apple.com/technotes/tn2005/tn2137.html
98
99
100Building with CodeWarrior
101-------------------------
102
103(Note that using the Apple tools is recommended.)
104
2e492c85
SC
105Installing latest headers (and Carbon Support)
106----------------------------------------------
107
ef3f71c3
JS
108Patching headers: CodeWarrior 8.x
109---------------------------------
110
f1570682
SC
111If you run into trouble with WCHAR_MIN and WCHAR_MAX the for
112MacOS X Support:Headers:(wchar_t Support fix):machine:ansi.h,
ef3f71c3
JS
113apply the patch ansi.diff.
114
115You may also need to comment out the _T definition in
116ctype.h if you get multiple definition errors.
117
90838153
GD
118setup.h
119-------
120
f69fcd07
GD
121in order to build wxMac with CodeWarrior, you must copy or alias the file
122include/wx/mac/setup0.h to include/wx/setup.h.
90838153 123
f69fcd07
GD
124this step is not needed when using the Apple Developer Tools under Mac OS X
125since the setup.h file is automatically generated during the configuration.
90838153 126
0a67a93b
SC
127OpenGL
128------
129
f69fcd07
GD
130In order to build opengl support with CodeWarrior, you must install the opengl
131libraries and headers from http://developer.apple.com/opengl/index.html
90838153 132
f69fcd07
GD
133If you want OpenGL support with CodeWarrior, set wxUSE_OPENGL to 1 in
134include/wx/setup.h
0a67a93b 135
2b5f62a0
VZ
136If you don't want OpenGl support, set wxUSE_OPENGL to 0 (the
137default) and remove the file OpenGLLibraryStub from the project
138before compilation.
b9eed05d 139
f69fcd07
GD
140If you want OpenGL support with the Apple Developer Tools under Mac OS X, add
141--with-opengl to the arguments of configure when configuring wxMac.
0a67a93b 142
8d823dab
SC
143Project Files
144-------------
145
f69fcd07
GD
146The project files are stored as xml text files and converted to binary
147CodeWarrior projects in the distribution (see AppleScript Files below):
f69fcd07 148
f1570682 149 - *M8.xml -> *M8.mcp for CodeWarrior 8 and above.
2b5f62a0 150
f69fcd07
GD
151AppleScript Files
152-----------------
153
a4411ee2
JS
154Several AppleScript files are provided in the docs:mac directory:
155
a4411ee2
JS
156 - M8xml2mcp.applescript to convert xml files to CodeWarrior 8 projects
157 - M8mcp2xml.applescript to convert CodeWarrior 8 projects to xml files
61d6643f 158 - SetXMLCreator.applescript to set correct creator type (see below)
a4411ee2
JS
159
160To run the XML to MCP conversion scripts:
161
162Double click on e.g. docs/mac/M8xml2mcp.applescript, then "run"
163the applescript and when asked for a folder pick src/. Then it
164takes a while to scan all dirs for the xml files and convert
165them to mcps. If some conversions fail it means an mcp already
166exists (back them up prior to running the script).
b9eed05d 167
61d6643f
JS
168To set the correct creator type for importing into CodeWarrior,
169you may need to run SetXMLCreator.applescript.
170
2e492c85
SC
171Problems with .xpm files
172------------------------
1ebfaf0c
SC
173
174if you have downloaded all the files and get errors like :
175
176Error : the file 'wx/generic/tip.xpm' cannot be opened
177tipdlg.cpp line 201 #include "wx/generic/tip.xpm"
178
f69fcd07
GD
179then your cvs has changed the type of the .xpm files to something other than
180text, in order to fix this either change the type by using a resource editor
181or drag the files from /include/wx/generic/..xpm on the SetTypeFromExtension
182application that is included in this folder. This small applet itself queries
183the Internet Config, so you will have to associate the "xpm" extension with
184CodeWarrior before making use of this applet.
2e492c85
SC
185
186Missing PLStringFuncsLib
187------------------------
188
b9eed05d 189You will have to build All Targets for MacOS Support:Libraries:Sources:PLStringFuncs:Glue:PLStringFuncsGlue.mcp
2b5f62a0 190
0cd6a2f8 191