blob: 38973f03573af5c0c3ed38cf639a0ce982a4bdc4 [file] [log] [blame]
Guido van Rossum228d8072001-03-02 05:58:11 +00001# RISC OS Python
2LIBSROOT = $.AcornC_C++.Libraries
3
4# You may need to change some of the following
5OSLIB = $(LIBSROOT).OSLib
6CLIB = $(LIBSROOT).clib
7SOCKLIB = $(LIBSROOT).netlib
8DLKLIB = $(LIBSROOT).dlk
9ZLIB = $(LIBSROOT).zlib
10EXPAT = $(LIBSROOT).expat.lib
11
12OBJSCAN = $(DLKLIB).objscan
13MAKEDLK = $(DLKLIB).makedlk
14
15# change from time to time
16TARGET=Python21
17BUILD=10
18
19
20#
21# You shouldn't need to change anything below this line
22#
23OSLIBS = OSLib:Computer,OSLib:Core,OSLib:User
24
25DLKFLAG= -DDLK
26DLKOBJS = $(DLKLIB).o.dlk_load o.linktab
27
28HEADERS = @,@.^.Include,@.^.Modules,@.^.Objects,@.^.Python,$(CLIB),$(OSLIBS),$(DLKLIB)
29
30CC = cc -c -j$(HEADERS) $(DLKFLAG) -DRISCOS -DHAVE_CONFIG_H -wad -throwback
31#-depend !Depend
32CCEXPAT = cc -c -j$(HEADERS),$(EXPAT) $(DLKFLAG) -DHAVE_EXPAT_H -DRISCOS -DHAVE_CONFIG_H -wad -throwback
33
34LINK = link
35LINKFLAGS = -aif -NOUNUSED #-d
36LOADLIBS = $(CLIB).o.Stubs $(OSLIB).o.OSLib $(DLKOBJS)
37
38
39.c.o :
40 $(CC) -o $@ $*.c
41
42
43# code for main Python binary
44MODULES_STATIC = \
45 @.^.Modules.o.python \
46 @.^.Modules.o.main \
47 Modules.o.config \
48 @.^.Modules.o.getbuildinfo \
49 Modules.o.getpath_riscos \
50 Modules.o.riscosmodule \
51 @.^.Modules.o._sre
52
53
54# dynamic Modules
55MODULES_DYNAMIC = \
56 @.^.Lib.array/pyd \
57 @.^.Lib.audioop/pyd \
58 @.^.Lib.binascii/pyd \
59 @.^.Lib.cmath/pyd \
60 @.^.Lib.cPickle/pyd \
61 @.^.Lib.cStringIO/pyd \
62 @.^.Lib.errno/pyd \
63 @.^.Lib.imageop/pyd \
64 @.^.Lib.math/pyd \
65 @.^.Lib.md5/pyd \
66 @.^.Lib.new/pyd \
67 @.^.Lib.operator/pyd \
68 @.^.Lib.parser/pyd \
69 @.^.Lib.pcre/pyd \
70 @.^.Lib.regex/pyd \
71 @.^.Lib.rgbimg/pyd \
72 @.^.Lib.rotor/pyd \
73 @.^.Lib.sha/pyd \
74 @.^.Lib.signal/pyd \
75 @.^.Lib.struct/pyd \
76 @.^.Lib.time/pyd \
77 @.^.Lib._locale/pyd \
78 @.^.Lib.zlib/pyd \
79 @.^.Lib.select/pyd \
80 @.^.Lib._socket/pyd \
81 @.^.Lib._codecs/pyd \
82 @.^.Lib._weakref/pyd \
83 @.^.Lib._testcapi/pyd \
84 @.^.Lib.unicodedata/pyd \
85 @.^.Lib.xreadlines/pyd \
86 @.^.Lib.pyexpat/pyd \
87 @.^.Lib.plat-riscos.drawf/pyd \
88 @.^.Lib.plat-riscos.swi/pyd
89
90 # @.^.Lib.soundex/pyd \
91 # leave strop out? It's no longer in use for string operations
92 # @.^.Lib.mmap/pyd would it make sense? I read about a mmap
93 # implementation for RISC OS recently in usenet news.
94
95 #@.^.Lib.strop/pyd \
96 #@.^.Lib._sre/pyd \
97
98
99OBJECTS_PYTHON = \
100 @.^.Python.o.traceback \
101 @.^.Python.o.sysmodule \
102 @.^.Python.o.structmember \
103 @.^.Python.o.strdup \
104 @.^.Python.o.sigcheck \
105 @.^.Python.o.pythonrun \
106 @.^.Python.o.pystate \
107 @.^.Python.o.pyfpe \
108 @.^.Python.o.mystrtoul \
109 @.^.Python.o.modsupport \
110 @.^.Python.o.marshal \
111 @.^.Python.o.importdl \
112 @.^.Python.o.import \
113 @.^.Python.o.graminit \
114 @.^.Python.o.getversion \
115 @.^.Python.o.getplatform \
116 @.^.Python.o.getopt \
117 @.^.Python.o.getcopyright \
118 @.^.Python.o.getcompiler \
119 @.^.Python.o.getargs \
120 @.^.Python.o.frozenmain \
121 @.^.Python.o.frozen \
122 @.^.Python.o.errors \
123 @.^.Python.o.compile \
124 @.^.Python.o.ceval \
125 @.^.Python.o.bltinmodule \
126 @.^.Python.o.exceptions \
127 @.^.Python.o.hypot \
128 @.^.Python.o.codecs \
129 @.^.Python.o.symtable
130# @.^.Python.o.atof @.^.Python.o.strerror
131
132
133OBJECTS_RISCOS = \
134 @.Python.o.dynload_riscos \
135 @.Python.o.getcwd_riscos \
136 @.Python.o.getmtime_riscos \
137 @.o.unixstuff
138
139
140OBJECTS_OBJECTS = \
141 @.^.Objects.o.typeobject \
142 @.^.Objects.o.tupleobject \
143 @.^.Objects.o.stringobject \
144 @.^.Objects.o.sliceobject \
145 @.^.Objects.o.rangeobject \
146 @.^.Objects.o.object \
147 @.^.Objects.o.moduleobject \
148 @.^.Objects.o.methodobject \
149 @.^.Objects.o.longobject \
150 @.^.Objects.o.listobject \
151 @.^.Objects.o.intobject \
152 @.^.Objects.o.funcobject \
153 @.^.Objects.o.frameobject \
154 @.^.Objects.o.floatobject \
155 @.^.Objects.o.fileobject \
156 @.^.Objects.o.dictobject \
157 @.^.Objects.o.complexobject \
158 @.^.Objects.o.cobject \
159 @.^.Objects.o.classobject \
160 @.^.Objects.o.cellobject \
161 @.^.Objects.o.bufferobject \
162 @.^.Objects.o.abstract \
163 @.^.Objects.o.unicodectype \
164 @.^.Objects.o.unicodeobject
165
166
167OBJECTS_PARSER = \
168 @.^.Parser.o.tokenizer \
169 @.^.Parser.o.printgrammar \
170 @.^.Parser.o.parsetok \
171 @.^.Parser.o.parser \
172 @.^.Parser.o.node \
173 @.^.Parser.o.myreadline \
174 @.^.Parser.o.metagrammar \
175 @.^.Parser.o.listnode \
176 @.^.Parser.o.intrcheck \
177 @.^.Parser.o.grammar1 \
178 @.^.Parser.o.grammar \
179 @.^.Parser.o.firstsets \
180 @.^.Parser.o.bitset \
181 @.^.Parser.o.acceler
182
183SUPPORT_FILES = @.^.!Boot @.^.!Run @.^.!Sprites @.^.!Sprites22 @.^.AddToPath
184
185OBJECTS = $(OBJECTS_PYTHON) $(OBJECTS_PARSER) $(MODULES_STATIC) $(OBJECTS_OBJECTS) $(OBJECTS_RISCOS)
186
187
188all: @.^.$(TARGET) $(MODULES_DYNAMIC) $(SUPPORT_FILES)
189
190@.^.Modules.o.getbuildinfo: @.^.Modules.c.getbuildinfo
191 $(CC) -DBUILD=$(BUILD) -o @.^.Modules.o.getbuildinfo @.^.Modules.c.getbuildinfo
192
193
194@.^.$(TARGET): $(OBJECTS) o.linktab
195 $(LINK) -o @.^.$(TARGET) $(OBJECTS) $(LOADLIBS)
196
197
198#########################################################################
199# Support files
200@.^.!Boot: support.!Boot
201 copy support.!Boot @.^.!Boot ~C~VF
202 settype @.^.!Boot feb
203@.^.!Run: support.!Run
204 copy support.!Run @.^.!Run ~C~VF
205 settype @.^.!Run feb
206@.^.!Sprites: support.!Sprites
207 copy support.!Sprites @.^.!Sprites ~C~VF
208 settype @.^.!Sprites ff9
209@.^.!Sprites22: support.!Sprites22
210 copy support.!Sprites22 @.^.!Sprites22 ~C~VF
211 settype @.^.!Sprites22 ff9
212@.^.AddToPath: support.AddToPath
213 copy support.AddToPath @.^.AddToPath ~C~VF
214 settype @.^.AddToPath ffc
215
216
217#########################################################################
218# Dynamic Modules
219#
220@.^.Lib.array/pyd: @.^.Modules.o.arraymodule s.linktab
221 $(MAKEDLK) -d @.^.Lib.array/pyd -s s.linktab -o @.^.Modules.o.arraymodule -e initarray
222
223@.^.Lib.audioop/pyd: @.^.Modules.o.audioop # s.linktab
224 $(MAKEDLK) -d @.^.Lib.audioop/pyd -s s.linktab -o @.^.Modules.o.audioop -e initaudioop
225
226@.^.Lib.binascii/pyd: @.^.Modules.o.binascii s.linktab
227 $(MAKEDLK) -d @.^.Lib.binascii/pyd -s s.linktab -o @.^.Modules.o.binascii -e initbinascii
228
229@.^.Lib.cmath/pyd: @.^.Modules.o.cmathmodule s.linktab
230 $(MAKEDLK) -d @.^.Lib.cmath/pyd -s s.linktab -o @.^.Modules.o.cmathmodule -e initcmath
231
232@.^.Lib.cPickle/pyd: @.^.Modules.o.cPickle s.linktab
233 $(MAKEDLK) -d @.^.Lib.cPickle/pyd -s s.linktab -o @.^.Modules.o.cPickle -e initcPickle
234
235@.^.Lib.cStringIO/pyd: @.^.Modules.o.cStringIO s.linktab
236 $(MAKEDLK) -d @.^.Lib.cStringIO/pyd -s s.linktab -o @.^.Modules.o.cStringIO -e initcStringIO
237
238@.^.Lib.plat-riscos.drawf/pyd: Modules.o.drawfmodule #s.linktab
239 $(LINK) -aof -o Modules.o.drawflink Modules.o.drawfmodule $(OSLIB).o.OSLIB
240 $(MAKEDLK) -d @.^.Lib.plat-riscos.drawf/pyd -s s.linktab -o Modules.o.drawflink -e initdrawf
241
242@.^.Lib.errno/pyd: @.^.Modules.o.errnomodule #s.linktab
243 $(MAKEDLK) -d @.^.Lib.errno/pyd -s s.linktab -o @.^.Modules.o.errnomodule -e initerrno
244
245@.^.Lib.imageop/pyd: @.^.Modules.o.imageop s.linktab
246 $(MAKEDLK) -d @.^.Lib.imageop/pyd -s s.linktab -o @.^.Modules.o.imageop -e initimageop
247
248@.^.Lib.math/pyd: @.^.Modules.o.mathmodule s.linktab
249 $(MAKEDLK) -d @.^.Lib.math/pyd -s s.linktab -o @.^.Modules.o.mathmodule -e initmath
250
251@.^.Lib.mmap/pyd: @.^.Modules.o.mmapmodule s.linktab
252 $(MAKEDLK) -d @.^.Lib.mmap/pyd -s s.linktab -o @.^.Modules.o.mmapmodule -e initmmap
253
254@.^.Lib.md5/pyd: @.^.Modules.o.md5c @.^.Modules.o.md5module s.linktab
255 $(LINK) -aof -o @.^.Modules.o.md5link @.^.Modules.o.md5c @.^.Modules.o.md5module
256 $(MAKEDLK) -d @.^.Lib.md5/pyd -s s.linktab -o @.^.Modules.o.md5link -e initmd5
257
258@.^.Lib.new/pyd: @.^.Modules.o.newmodule s.linktab
259 $(MAKEDLK) -d @.^.Lib.new/pyd -s s.linktab -o @.^.Modules.o.newmodule -e initnew
260
261@.^.Lib.operator/pyd: @.^.Modules.o.operator s.linktab
262 $(MAKEDLK) -d @.^.Lib.operator/pyd -s s.linktab -o @.^.Modules.o.operator -e initoperator
263
264@.^.Lib.parser/pyd: @.^.Modules.o.parsermodule s.linktab
265 $(MAKEDLK) -d @.^.Lib.parser/pyd -s s.linktab -o @.^.Modules.o.parsermodule -e initparser
266
267@.^.Lib.pcre/pyd: @.^.Modules.o.pcremodule @.^.Modules.o.pypcre s.linktab
268 $(LINK) -aof -o @.^.Modules.o.pcrelink @.^.Modules.o.pcremodule @.^.Modules.o.pypcre
269 $(MAKEDLK) -d @.^.Lib.pcre/pyd -s s.linktab -o @.^.Modules.o.pcrelink -e initpcre
270
271@.^.Lib.regex/pyd: @.^.Modules.o.regexmodule @.^.Modules.o.regexpr s.linktab
272 $(LINK) -aof -o @.^.Modules.o.regexlink @.^.Modules.o.regexmodule @.^.Modules.o.regexpr
273 $(MAKEDLK) -d @.^.Lib.regex/pyd -s s.linktab -o @.^.Modules.o.regexlink -e initregex
274
275@.^.Lib.rgbimg/pyd: @.^.Modules.o.rgbimgmodule s.linktab
276 $(MAKEDLK) -d @.^.Lib.rgbimg/pyd -s s.linktab -o @.^.Modules.o.rgbimgmodule -e initrgbimg
277
278@.^.Lib.rotor/pyd: @.^.Modules.o.rotormodule s.linktab
279 $(MAKEDLK) -d @.^.Lib.rotor/pyd -s s.linktab -o @.^.Modules.o.rotormodule -e initrotor
280
281@.^.Lib.sha/pyd: @.^.Modules.o.shamodule s.linktab
282 $(MAKEDLK) -d @.^.Lib.sha/pyd -s s.linktab -o @.^.Modules.o.shamodule -e initsha
283
284@.^.Lib.signal/pyd: @.^.Modules.o.signalmodule s.linktab
285 $(MAKEDLK) -d @.^.Lib.signal/pyd -s s.linktab -o @.^.Modules.o.signalmodule -e initsignal
286
287#@.^.Lib.soundex/pyd: @.^.Modules.o.soundex s.linktab
288# $(MAKEDLK) -d @.^.Lib.soundex/pyd -s s.linktab -o @.^.Modules.o.soundex -e initsoundex
289
290@.^.Lib.strop/pyd: @.^.Modules.o.stropmodule s.linktab
291 $(MAKEDLK) -d @.^.Lib.strop/pyd -s s.linktab -o @.^.Modules.o.stropmodule -e initstrop
292
293@.^.Lib.struct/pyd: @.^.Modules.o.structmodule s.linktab
294 $(MAKEDLK) -d @.^.Lib.struct/pyd -s s.linktab -o @.^.Modules.o.structmodule -e initstruct
295
296@.^.Lib.plat-riscos.swi/pyd: Modules.o.swimodule s.linktab
297 $(LINK) -aof -o Modules.o.swilink Modules.o.swimodule $(OSLIB).o.OSLIB
298 $(MAKEDLK) -d @.^.Lib.plat-riscos.swi/pyd -s s.linktab -o Modules.o.swilink -e initswi
299
300@.^.Lib.time/pyd: @.^.Modules.o.timemodule s.linktab
301 $(MAKEDLK) -d @.^.Lib.time/pyd -s s.linktab -o @.^.Modules.o.timemodule -e inittime
302
303@.^.Lib._locale/pyd: @.^.Modules.o._localemodule s.linktab
304 $(MAKEDLK) -d @.^.Lib._locale/pyd -s s.linktab -o @.^.Modules.o._localemodule -e init_locale
305
306@.^.Lib._sre/pyd: @.^.Modules.o._sre s.linktab
307 $(MAKEDLK) -d @.^.Lib._sre/pyd -s s.linktab -o @.^.Modules.o._sre -e init_sre
308
309@.^.Lib._codecs/pyd: @.^.Modules.o._codecsmodule s.linktab
310 $(MAKEDLK) -d @.^.Lib._codecs/pyd -s s.linktab -o @.^.Modules.o._codecsmodule -e init_codecs
311
312@.^.Lib._weakref/pyd: @.^.Modules.o._weakref s.linktab
313 $(MAKEDLK) -d @.^.Lib._weakref/pyd -s s.linktab -o @.^.Modules.o._weakref -e init_weakref
314
315@.^.Lib._testcapi/pyd: @.^.Modules.o._testcapimodule s.linktab
316 $(MAKEDLK) -d @.^.Lib._testcapi/pyd -s s.linktab -o @.^.Modules.o._testcapimodule -e init_testcapi
317
318@.^.Lib.unicodedata/pyd: @.^.Modules.o.unicodedata s.linktab
319 $(MAKEDLK) -d @.^.Lib.unicodedata/pyd -s s.linktab -o @.^.Modules.o.unicodedata -e initunicodedata
320
321@.^.Lib.xreadlines/pyd: @.^.Modules.o.xreadlinesmodule s.linktab
322 $(MAKEDLK) -d @.^.Lib.xreadlines/pyd -s s.linktab -o @.^.Modules.o.xreadlinesmodule -e initxreadlines
323
324
325##@.^.Lib.mmap/pyd: @.^.Modules.o.mmapmodule s.linktab
326## $(MAKEDLK) -d @.^.Lib.mmap/pyd -s s.linktab -o @.^.Modules.o.mmapmodule -e initmmap
327
328
329
330############################################################################
331# Dynamic Modules with other dependencies
332#
333@.^.Lib.select/pyd: @.^.Modules.o.selectmodule s.linktab
334 $(LINK) -aof -o @.^.Modules.o.selectlink @.^.Modules.o.selectmodule $(SOCKLIB).o.socklib
335 $(MAKEDLK) -d @.^.Lib.select/pyd -s s.linktab -o @.^.Modules.o.selectlink -e initselect
336
337@.^.Modules.o.selectmodule: @.^.Modules.c.selectmodule
338 $(CC) -I$(SOCKLIB).include -o $@ @.^.Modules.c.selectmodule
339
340@.^.Lib._socket/pyd: @.^.Modules.o.socketmodule s.linktab
341 $(LINK) -aof -o @.^.Modules.o._socketlink @.^.Modules.o.socketmodule $(SOCKLIB).o.inetlib $(SOCKLIB).o.unixlib $(SOCKLIB).o.socklib
342 $(MAKEDLK) -d @.^.Lib._socket/pyd -s s.linktab -o @.^.Modules.o._socketlink -e init_socket
343
344@.^.Modules.o.socketmodule: @.^.Modules.c.socketmodule
345 $(CC) -I$(SOCKLIB).include -o $@ @.^.Modules.c.socketmodule
346
347
348@.^.Lib.zlib/pyd: @.^.Modules.o.zlibmodule s.linktab
349 $(LINK) -aof -o @.^.Modules.o.zliblink @.^.Modules.o.zlibmodule $(ZLIB).zlib_lib
350 $(MAKEDLK) -d @.^.Lib.zlib/pyd -s s.linktab -o @.^.Modules.o.zliblink -e initzlib
351
352@.^.Modules.o.zlibmodule: @.^.Modules.c.zlibmodule
353 $(CC) -I$(ZLIB) -o $@ @.^.Modules.c.zlibmodule
354
355
356@.^.Lib.pyexpat/pyd: @.^.Modules.o.pyexpat s.linktab
357 $(LINK) -aof -o @.^.Modules.o.pyexpatlink @.^.Modules.o.pyexpat $(EXPAT).expat_lib
358 $(MAKEDLK) -d @.^.Lib.pyexpat/pyd -s s.linktab -o @.^.Modules.o.pyexpatlink -e initpyexpat
359
360@.^.Modules.o.pyexpat: @.^.Modules.c.pyexpat
361 $(CCEXPAT) -o $@ @.^.Modules.c.pyexpat
362
363
364##########################################################################
365
366o.linktab: s.linktab
367 ObjAsm s.linktab o.linktab
368
369s.linktab: $(OBJECTS)
370 $(OBJSCAN) -s s.linktab -o $(OBJECTS) $(clib).o.stubs
371
372
373clean:
374 create @.^.Objects.o.dummy
375 create @.^.Parser.o.dummy
376 create @.^.Modules.o.dummy
377 create o.dummy
378 create @.^.Python.o.dummy
379 create @.^.Lib.dummy/pyc
380 create @.^.Lib.dummy/pyo
381 create @.^.Lib.plat-riscos.dummy/pyc
382 create @.^.Lib.plat-riscos.dummy/pyo
383 create @.^.Lib.test.dummy/pyc
384 wipe @.^.Modules.o.* ~C ~V
385 wipe @.^.Objects.o.* ~C ~V
386 wipe @.^.Parser.o.* ~C ~V
387 wipe @.^.Python.o.* ~C ~V
388 wipe o.* ~C ~V
389 wipe @.^.Lib.*/pyc ~C~V
390 wipe @.^.Lib.*/pyo ~C~V
391 wipe @.^.Lib.plat-riscos.*/pyc ~C~V
392 wipe @.^.Lib.plat-riscos.*/pyo ~C~V
393 wipe @.^.Lib.test.*/pyc ~C~V
394
395rebuild: clean
396 create @.^.Lib.dummy/pyd
397 create @.^.$(TARGET)
398 create @.^.Lib.plat-riscos.dummy/pyd
399 create s.linktab
400 create o.linktab
401 wipe @.^.$(TARGET) ~C~V
402 wipe @.^.Lib.*/pyd ~C ~V
403 wipe @.^.Lib.plat-riscos.*/pyd ~C~V
404 wipe s.linktab ~C~V
405 wipe o.linktab ~C~V
406
407cdirs:
408 cdir @.Modules.o
409 cdir @.Python.o
410 cdir @.s
411 cdir @.o
412 cdir @.^.Python.o
413 cdir @.^.Parser.o
414 cdir @.^.Objects.o
415 cdir @.^.Modules.o
416
417
418# Dynamic dependencies: