1--
2-- makeproj.mac
3--
4-- This AppleScript builds Code Warrior PRO Release 2 project files for the
5-- libjpeg library as well as the test programs 'cjpeg', 'djpeg', 'jpegtran'.
6-- (We'd distribute real project files, except they're not text
7-- and would create maintenance headaches.)
8--
9-- The script then compiles and links the library and the test programs.
10-- NOTE: if you haven't already created a 'jconfig.h' file, the script
11-- automatically copies 'jconfig.mac' to 'jconfig.h'.
12--
13-- To use this script, you must have AppleScript 1.1 or later installed
14-- and a suitable AppleScript editor like Script Editor or Script Debugger
15-- (http://www.latenightsw.com). Open this file with your AppleScript
16-- editor and execute the "run" command to build the projects.
17--
18-- Thanks to Dan Sears and Don Agro for this script.
19-- Questions about this script can be addressed to dogpark@interlog.com
20--
21
22on run
23
24	choose folder with prompt ">>> Select IJG source folder <<<"
25	set ijg_folder to result
26
27	choose folder with prompt ">>> Select MetroWerks folder <<<"
28	set cw_folder to result
29
30	-- if jconfig.h doesn't already exist, copy jconfig.mac
31
32	tell application "Finder"
33		if not (exists file "jconfig.h" of ijg_folder) then
34			duplicate {file "jconfig.mac" of folder ijg_folder}
35			select file "jconfig.mac copy" of folder ijg_folder
36			set name of selection to "jconfig.h"
37		end if
38	end tell
39
40	tell application "CodeWarrior IDE 2.1"
41	  with timeout of 10000 seconds
42
43		-- create libjpeg project
44
45		activate
46		Create Project (ijg_folder as string) & "libjpeg.proj"
47		Set Preferences of panel "Target Settings" to {Target Name:"libjpeg"}
48		Set Preferences of panel "PPC Project" to {File Name:"libjpeg"}
49		Set Preferences of panel "Target Settings" to {Linker:"MacOS PPC Linker"}
50		Set Preferences of panel "PPC Project" to {Project Type:library}
51		Set Preferences of panel "C/C++ Compiler" to {ANSI Strict:true}
52		Set Preferences of panel "C/C++ Compiler" to {Enums Always Ints:true}
53		Set Preferences of panel "PPC Codegen" to {Struct Alignment:PowerPC}
54		Set Preferences of panel "PPC Linker" to {Generate SYM File:false}
55
56		Add Files (ijg_folder as string) & "jaricom.c" To Segment 1
57		Add Files (ijg_folder as string) & "jcapimin.c" To Segment 1
58		Add Files (ijg_folder as string) & "jcapistd.c" To Segment 1
59		Add Files (ijg_folder as string) & "jcarith.c" To Segment 1
60		Add Files (ijg_folder as string) & "jctrans.c" To Segment 1
61		Add Files (ijg_folder as string) & "jcparam.c" To Segment 1
62		Add Files (ijg_folder as string) & "jdatadst.c" To Segment 1
63		Add Files (ijg_folder as string) & "jcinit.c" To Segment 1
64		Add Files (ijg_folder as string) & "jcmaster.c" To Segment 1
65		Add Files (ijg_folder as string) & "jcmarker.c" To Segment 1
66		Add Files (ijg_folder as string) & "jcmainct.c" To Segment 1
67		Add Files (ijg_folder as string) & "jcprepct.c" To Segment 1
68		Add Files (ijg_folder as string) & "jccoefct.c" To Segment 1
69		Add Files (ijg_folder as string) & "jccolor.c" To Segment 1
70		Add Files (ijg_folder as string) & "jcsample.c" To Segment 1
71		Add Files (ijg_folder as string) & "jchuff.c" To Segment 1
72		Add Files (ijg_folder as string) & "jcdctmgr.c" To Segment 1
73		Add Files (ijg_folder as string) & "jfdctfst.c" To Segment 1
74		Add Files (ijg_folder as string) & "jfdctflt.c" To Segment 1
75		Add Files (ijg_folder as string) & "jfdctint.c" To Segment 1
76		Add Files (ijg_folder as string) & "jdapimin.c" To Segment 1
77		Add Files (ijg_folder as string) & "jdapistd.c" To Segment 1
78		Add Files (ijg_folder as string) & "jdarith.c" To Segment 1
79		Add Files (ijg_folder as string) & "jdtrans.c" To Segment 1
80		Add Files (ijg_folder as string) & "jdatasrc.c" To Segment 1
81		Add Files (ijg_folder as string) & "jdmaster.c" To Segment 1
82		Add Files (ijg_folder as string) & "jdinput.c" To Segment 1
83		Add Files (ijg_folder as string) & "jdmarker.c" To Segment 1
84		Add Files (ijg_folder as string) & "jdhuff.c" To Segment 1
85		Add Files (ijg_folder as string) & "jdmainct.c" To Segment 1
86		Add Files (ijg_folder as string) & "jdcoefct.c" To Segment 1
87		Add Files (ijg_folder as string) & "jdpostct.c" To Segment 1
88		Add Files (ijg_folder as string) & "jddctmgr.c" To Segment 1
89		Add Files (ijg_folder as string) & "jidctfst.c" To Segment 1
90		Add Files (ijg_folder as string) & "jidctflt.c" To Segment 1
91		Add Files (ijg_folder as string) & "jidctint.c" To Segment 1
92		Add Files (ijg_folder as string) & "jdsample.c" To Segment 1
93		Add Files (ijg_folder as string) & "jdcolor.c" To Segment 1
94		Add Files (ijg_folder as string) & "jquant1.c" To Segment 1
95		Add Files (ijg_folder as string) & "jquant2.c" To Segment 1
96		Add Files (ijg_folder as string) & "jdmerge.c" To Segment 1
97		Add Files (ijg_folder as string) & "jcomapi.c" To Segment 1
98		Add Files (ijg_folder as string) & "jutils.c" To Segment 1
99		Add Files (ijg_folder as string) & "jerror.c" To Segment 1
100		Add Files (ijg_folder as string) & "jmemmgr.c" To Segment 1
101		Add Files (ijg_folder as string) & "jmemmac.c" To Segment 1
102
103		-- compile and link the library
104
105		Make Project
106		Close Project
107
108		-- create cjpeg project
109
110		activate
111		Create Project (ijg_folder as string) & "cjpeg.proj"
112		Set Preferences of panel "Target Settings" to {Target Name:"cjpeg"}
113		Set Preferences of panel "PPC Project" to {File Name:"cjpeg"}
114		Set Preferences of panel "Target Settings" to {Linker:"MacOS PPC Linker"}
115		Set Preferences of panel "C/C++ Compiler" to {ANSI Strict:true}
116		Set Preferences of panel "C/C++ Compiler" to {Enums Always Ints:true}
117		Set Preferences of panel "PPC Codegen" to {Struct Alignment:PowerPC}
118		Set Preferences of panel "PPC Linker" to {Generate SYM File:false}
119
120		Add Files (ijg_folder as string) & "cjpeg.c" To Segment 1
121		Add Files (ijg_folder as string) & "rdppm.c" To Segment 1
122		Add Files (ijg_folder as string) & "rdgif.c" To Segment 1
123		Add Files (ijg_folder as string) & "rdtarga.c" To Segment 1
124		Add Files (ijg_folder as string) & "rdrle.c" To Segment 1
125		Add Files (ijg_folder as string) & "rdbmp.c" To Segment 1
126		Add Files (ijg_folder as string) & "rdswitch.c" To Segment 1
127		Add Files (ijg_folder as string) & "cdjpeg.c" To Segment 1
128
129		Add Files (ijg_folder as string) & "libjpeg" To Segment 2
130
131		Add Files (cw_folder as string) & "Metrowerks CodeWarrior:Metrowerks Standard Library:MSL C:Bin:MSL C.PPC.Lib" To Segment 3
132		Add Files (cw_folder as string) & "Metrowerks CodeWarrior:Metrowerks Standard Library:MSL C:Bin:MSL SIOUX.PPC.Lib" To Segment 3
133		Add Files (cw_folder as string) & "Metrowerks CodeWarrior:MacOS Support:Libraries:Runtime:Runtime PPC:MSL RuntimePPC.Lib" To Segment 3
134
135		Add Files (cw_folder as string) & "Metrowerks CodeWarrior:MacOS Support:Libraries:MacOS Common:InterfaceLib" To Segment 4
136		Add Files (cw_folder as string) & "Metrowerks CodeWarrior:MacOS Support:Libraries:MacOS Common:MathLib" To Segment 4
137
138		-- compile and link cjpeg
139
140		Make Project
141		Close Project
142
143		-- create djpeg project
144
145		activate
146		Create Project (ijg_folder as string) & "djpeg.proj"
147		Set Preferences of panel "Target Settings" to {Target Name:"djpeg"}
148		Set Preferences of panel "PPC Project" to {File Name:"djpeg"}
149		Set Preferences of panel "Target Settings" to {Linker:"MacOS PPC Linker"}
150		Set Preferences of panel "C/C++ Compiler" to {ANSI Strict:true}
151		Set Preferences of panel "C/C++ Compiler" to {Enums Always Ints:true}
152		Set Preferences of panel "PPC Codegen" to {Struct Alignment:PowerPC}
153		Set Preferences of panel "PPC Linker" to {Generate SYM File:false}
154
155		Add Files (ijg_folder as string) & "djpeg.c" To Segment 1
156		Add Files (ijg_folder as string) & "wrppm.c" To Segment 1
157		Add Files (ijg_folder as string) & "wrgif.c" To Segment 1
158		Add Files (ijg_folder as string) & "wrtarga.c" To Segment 1
159		Add Files (ijg_folder as string) & "wrrle.c" To Segment 1
160		Add Files (ijg_folder as string) & "wrbmp.c" To Segment 1
161		Add Files (ijg_folder as string) & "rdcolmap.c" To Segment 1
162		Add Files (ijg_folder as string) & "cdjpeg.c" To Segment 1
163
164		Add Files (ijg_folder as string) & "libjpeg" To Segment 2
165
166		Add Files (cw_folder as string) & "Metrowerks CodeWarrior:Metrowerks Standard Library:MSL C:Bin:MSL C.PPC.Lib" To Segment 3
167		Add Files (cw_folder as string) & "Metrowerks CodeWarrior:Metrowerks Standard Library:MSL C:Bin:MSL SIOUX.PPC.Lib" To Segment 3
168		Add Files (cw_folder as string) & "Metrowerks CodeWarrior:MacOS Support:Libraries:Runtime:Runtime PPC:MSL RuntimePPC.Lib" To Segment 3
169
170		Add Files (cw_folder as string) & "Metrowerks CodeWarrior:MacOS Support:Libraries:MacOS Common:InterfaceLib" To Segment 4
171		Add Files (cw_folder as string) & "Metrowerks CodeWarrior:MacOS Support:Libraries:MacOS Common:MathLib" To Segment 4
172
173		-- compile and link djpeg
174
175		Make Project
176		Close Project
177
178		-- create jpegtran project
179
180		activate
181		Create Project (ijg_folder as string) & "jpegtran.proj"
182		Set Preferences of panel "Target Settings" to {Target Name:"jpegtran"}
183		Set Preferences of panel "PPC Project" to {File Name:"jpegtran"}
184		Set Preferences of panel "Target Settings" to {Linker:"MacOS PPC Linker"}
185		Set Preferences of panel "C/C++ Compiler" to {ANSI Strict:true}
186		Set Preferences of panel "C/C++ Compiler" to {Enums Always Ints:true}
187		Set Preferences of panel "PPC Codegen" to {Struct Alignment:PowerPC}
188		Set Preferences of panel "PPC Linker" to {Generate SYM File:false}
189
190		Add Files (ijg_folder as string) & "jpegtran.c" To Segment 1
191		Add Files (ijg_folder as string) & "rdswitch.c" To Segment 1
192		Add Files (ijg_folder as string) & "cdjpeg.c" To Segment 1
193		Add Files (ijg_folder as string) & "transupp.c" To Segment 1
194
195		Add Files (ijg_folder as string) & "libjpeg" To Segment 2
196
197		Add Files (cw_folder as string) & "Metrowerks CodeWarrior:Metrowerks Standard Library:MSL C:Bin:MSL C.PPC.Lib" To Segment 3
198		Add Files (cw_folder as string) & "Metrowerks CodeWarrior:Metrowerks Standard Library:MSL C:Bin:MSL SIOUX.PPC.Lib" To Segment 3
199		Add Files (cw_folder as string) & "Metrowerks CodeWarrior:MacOS Support:Libraries:Runtime:Runtime PPC:MSL RuntimePPC.Lib" To Segment 3
200
201		Add Files (cw_folder as string) & "Metrowerks CodeWarrior:MacOS Support:Libraries:MacOS Common:InterfaceLib" To Segment 4
202		Add Files (cw_folder as string) & "Metrowerks CodeWarrior:MacOS Support:Libraries:MacOS Common:MathLib" To Segment 4
203
204		-- compile and link jpegtran
205
206		Make Project
207		Close Project
208
209		quit
210
211	  end timeout
212	end tell
213end run
214