1 |
This folder contains |
This folder contains |
2 |
|
|
3 |
. a Makefile for Apple MPW build environment (currently PPC only) |
* Makefile skeltons for Apple MPW (Macintosh's Programmers Workshop) |
4 |
|
|
5 |
. supporting code and CodeWarrior Pro 7 project files to build the |
* Python script to generate MPW makefile from skelton |
|
FreeType library. |
|
6 |
|
|
7 |
Notes: |
* Metrowerks CodeWarrior 9.0 project file in XML format |
|
The library will be built as a static lib in the obj/ folder. |
|
8 |
|
|
9 |
Current maintainer: Leonard Rosenthol, <leonardr@lazerware.com> |
------------------------------------------------------------ |
10 |
Originally prepared by Just van Rossum, <just@letterror.com> |
|
11 |
|
1. What is this |
12 |
|
--------------- |
13 |
|
|
14 |
|
Files in this directory are designed to build FreeType |
15 |
|
running on classic MacOS. To build FreeType running on |
16 |
|
Mac OS X, build as the system is UNIX. |
17 |
|
|
18 |
|
However, Mac OS X is most useful to manipulate files in |
19 |
|
vanilla FreeType to fit classic MacOS. |
20 |
|
|
21 |
|
2. Requirement |
22 |
|
-------------- |
23 |
|
|
24 |
|
You can use MPW: a free-charged developer environment |
25 |
|
by Apple, or CodeWarrior: a commercial developer |
26 |
|
environment by Metrowerks. GCC for MPW and Symantec |
27 |
|
"Think C" are not tested at present. |
28 |
|
|
29 |
|
|
30 |
|
2-1. Apple MPW |
31 |
|
-------------- |
32 |
|
|
33 |
|
Following C compilers are tested: |
34 |
|
|
35 |
|
m68k target: Apple SC 8.9.0d3e1 |
36 |
|
ppc target: Apple MrC 5.0.0d3c1 |
37 |
|
|
38 |
|
The final MPW-GM (official release on 1999/Dec) is too |
39 |
|
old and cannot compile FreeType, because bundled C |
40 |
|
compilers cannot search header files in sub directories. |
41 |
|
Updating by the final MPW-PR (pre-release on 2001/Feb) |
42 |
|
is required. |
43 |
|
|
44 |
|
Required files are downloadable from: |
45 |
|
|
46 |
|
http://developer.apple.com/tools/mpw-tools/index.html |
47 |
|
|
48 |
|
Also you can find documents how to update by MPW-PR. |
49 |
|
|
50 |
|
Python is required to restore MPW makefiles from the |
51 |
|
skeltons. Python bundled to Mac OS X is enough. For |
52 |
|
classic MacOS, MacPython is available: |
53 |
|
|
54 |
|
http://homepages.cwi.nl/~jack/macpython/ |
55 |
|
|
56 |
|
MPW requires all files are typed by resource fork. |
57 |
|
ResEdit bundled to MPW is enough. In Mac OS X, |
58 |
|
/Developer/Tools/SetFile of DevTool is useful to |
59 |
|
manipulate from commandline. |
60 |
|
|
61 |
|
2-2. Metrowerks CodeWarriror |
62 |
|
---------------------------- |
63 |
|
|
64 |
|
XML project file is generated and tested by |
65 |
|
CodeWarriror 9.0. Older versions are not tested |
66 |
|
at all. At present, static library for ppc target |
67 |
|
is available in the project file. |
68 |
|
|
69 |
|
|
70 |
|
3. How to build |
71 |
|
--------------- |
72 |
|
|
73 |
|
3-1. Apple MPW |
74 |
|
-------------- |
75 |
|
Detailed building procedure by Apple MPW is |
76 |
|
described in following. |
77 |
|
|
78 |
|
3-1-1. Generate MPW makefiles from the skeltons |
79 |
|
------------------------------------------------ |
80 |
|
|
81 |
|
Here are 4 skeltons for following targets are |
82 |
|
included. |
83 |
|
|
84 |
|
- FreeType.m68k_far.make.txt |
85 |
|
Ancient 32bit binary executable format for |
86 |
|
m68k MacOS: System 6, with 32bit addressing |
87 |
|
mode (far-pointer-model) So-called "Toolbox" |
88 |
|
API is used. |
89 |
|
|
90 |
|
- FreeType.m68k_cfm.make.txt |
91 |
|
CFM binary executable format for m68k MacOS: |
92 |
|
System 7. So-called "Toolbox" API is used. |
93 |
|
|
94 |
|
- FreeType.ppc_classic.make.txt |
95 |
|
CFM binary executable format for ppc MacOS: |
96 |
|
System 7, MacOS 8, MacOS 9. So-called "Toolbox" |
97 |
|
API is used. |
98 |
|
|
99 |
|
- FreeType.ppc_classic.make.txt |
100 |
|
CFM binary executable format for ppc MacOS: |
101 |
|
MacOS 9. Carbon API is used. |
102 |
|
|
103 |
|
At present, static library is only supported, |
104 |
|
although targets except of m68k_far are capatble |
105 |
|
to use shared library. |
106 |
|
|
107 |
|
MPW makefile syntax uses 8bit characters. To keep |
108 |
|
from violating them during version control, here |
109 |
|
we store skeltons in pure ASCII format. You must |
110 |
|
generate MPW makefile by Python script ascii2mpw.py. |
111 |
|
|
112 |
|
In Mac OS X terminal, you can convert as: |
113 |
|
|
114 |
|
python builds/mac/ascii2mpw.py \ |
115 |
|
< builds/mac/FreeType.m68k_far.make.txt \ |
116 |
|
> FreeType.m68k_far.make |
117 |
|
|
118 |
|
The skeltons are designed to use in the top |
119 |
|
directory where there are builds, include, src etc. |
120 |
|
You must name the generated MPW makefile by removing |
121 |
|
".txt" from source skelton name. |
122 |
|
|
123 |
|
3-1-2. Add resource forks to related files |
124 |
|
------------------------------------------ |
125 |
|
|
126 |
|
MPW's Make and C compilers cannot recognize files |
127 |
|
without resource fork. You have to add resource |
128 |
|
fork to the files that MPW uses. In Mac OS X |
129 |
|
terminal of the system, you can do as: |
130 |
|
|
131 |
|
find . -name '*.[ch]' -exec \ |
132 |
|
/Developer/Tools/SetFile -a l -c "MPS " -t TEXT \{\} \; |
133 |
|
|
134 |
|
find . -name '*.make' -exec \ |
135 |
|
/Developer/Tools/SetFile -a l -c "MPS " -t TEXT \{\} \; |
136 |
|
|
137 |
|
|
138 |
|
3-1-3. Open MPW shell and build |
139 |
|
------------------------------- |
140 |
|
|
141 |
|
Open MPW shell and go to the top directory that |
142 |
|
FreeType sources are extracted (MPW makefile must |
143 |
|
be located in there), from "Set Directory" in |
144 |
|
"Directory" menu. |
145 |
|
|
146 |
|
Choose "Build" from "Build" menu, and type the |
147 |
|
name of project by removing ".make" from MPW |
148 |
|
makefile, as: FreeType.m68k_far |
149 |
|
|
150 |
|
If building is successfully finished, you can find |
151 |
|
built library in objs/ directory. |
152 |
|
|
153 |
|
|
154 |
|
3-2. Metrowerks CodeWarrior |
155 |
|
--------------------------- |
156 |
|
|
157 |
|
Detailed building procedure by Metrowerks |
158 |
|
CodeWarrior (CW) 9.0 is described in following. |
159 |
|
|
160 |
|
3-2-1. Import XML project file |
161 |
|
------------------------------ |
162 |
|
|
163 |
|
CW XML project file is not ready for double- |
164 |
|
click. Start CodeWarrior IDE, and choose |
165 |
|
"Import project" in "File" menu. Choose XML |
166 |
|
project file: builds/mac/ftlib.prj.xml. |
167 |
|
In next, you will be asked where to save CW |
168 |
|
native project file: you must choose |
169 |
|
"builds/mac/ftlib.prj". The project file is |
170 |
|
designed with relative path from there. After |
171 |
|
CW native project file is generated, it is |
172 |
|
automatically loaded, small project window |
173 |
|
titled "ftlib.prj" is displayed. |
174 |
|
|
175 |
|
3-2-2. Building |
176 |
|
--------------- |
177 |
|
Choose "Make" from "Project" menu. If building |
178 |
|
is successfully finished, you can find built |
179 |
|
library at objs/FreeTypeLib. |
180 |
|
|
181 |
|
4. TODO |
182 |
|
------- |
183 |
|
|
184 |
|
4-1. All modules should be included |
185 |
|
----------------------------------- |
186 |
|
|
187 |
|
At present, MPW makefiles and CW project file are |
188 |
|
just updated versions of these by Leonard. Some |
189 |
|
modules are added after the last maintainance, they |
190 |
|
are not included. |
191 |
|
|
192 |
|
4-2. Working test with ftdemos |
193 |
|
------------------------------ |
194 |
|
|
195 |
|
At present, MPW makefiles and CW project file can |
196 |
|
build FreeType for classic MacOS. But their working |
197 |
|
behaviours are not tested at all. Buidling ftdemos |
198 |
|
for classic MacOS and working test is required. |
199 |
|
|
200 |
|
4-3. Porting Jam onto MPW |
201 |
|
------------------------- |
202 |
|
|
203 |
|
FreeType uses Jam (and FT-Jam) for unified cross- |
204 |
|
platform building tool. At present, Jam is not ported |
205 |
|
to MPW. To update classic MacOS support easily, |
206 |
|
building by Jam is expected on MPW. |
207 |
|
|
208 |
|
------------------------------------------------------------ |
209 |
|
Last update: 2005/10/28, by suzuki toshiya |
210 |
|
|
211 |
|
Currently maintained by |
212 |
|
suzuki toshiya, <mpsuzuki@hiroshima-u.ac.jp> |
213 |
|
Originally prepared by |
214 |
|
Leonard Rosenthol, <leonardr@lazerware.com> |
215 |
|
Just van Rossum, <just@letterror.com> |
216 |
|
|
217 |
This directory is now actively maintained as part of the FreeType Project. |
This directory is now actively maintained as part of the FreeType Project. |