Home | History | Annotate | Download | only in RISCOS
      1 # RISC OS Python
      2 LIBSROOT = $.AcornC_C++.Libraries
      3 
      4 # You may need to change some of the following
      5 OSLIB = $(LIBSROOT).OSLib
      6 CLIB = $(LIBSROOT).clib
      7 TCPIPLIB = $(LIBSROOT).TCPIPLibs
      8 DLKLIB = $(LIBSROOT).dlk
      9 ZLIB = $(LIBSROOT).zlib
     10 BZLIB = $(LIBSROOT).bzlib
     11 EXPAT = $(LIBSROOT).expat.lib
     12 
     13 OBJSCAN = $(DLKLIB).objscan
     14 MAKEDLK = $(DLKLIB).makedlk
     15 
     16 # change from time to time (don't forget to change !Boot also)
     17 TARGET=Python23
     18 BUILD=40
     19 
     20 
     21 #
     22 # You shouldn't need to change anything below this line
     23 #
     24 DLKFLAG= -DDLK
     25 DLKOBJS = $(DLKLIB).o.dlk_load @.o.linktab
     26 
     27 HEADERS = @,$(TCPIPLIB),@.^.Include,@.^.Modules,@.^.Objects,@.^.Python,$(CLIB),$(OSLIB),$(DLKLIB)
     28 
     29 CFLAGS = -c  $(DLKFLAG) -DRISCOS -DHAVE_CONFIG_H -wadP -throwback -APCS 3/32bit/fpe3
     30 
     31 CC = cc $(CFLAGS) -j$(HEADERS)
     32 CCEXPAT = cc $(CFLAGS) -j$(HEADERS),$(EXPAT) -DHAVE_EXPAT_H
     33 
     34 LINK = link
     35 LINKFLAGS = -aif #-NOUNUSED #-d
     36 LOADLIBS = $(TCPIPLIB).o.unixlib $(TCPIPLIB).o.inetlib $(TCPIPLIB).o.socklib $(CLIB).o.Stubs $(OSLIB).o.OSLib32 $(DLKOBJS)
     37 
     38 LIBFILE = libfile -c 
     39 
     40 
     41 .c.o  :
     42        $(CC) -o $@ $*.c
     43 
     44 MAIN_PYTHON =\
     45 	@.^.Modules.o.python
     46 
     47 LIB_PYTHON =\
     48 	@.^.LibPython
     49 
     50 # code for main Python binary
     51 MODULES_STATIC =\
     52 	@.^.Modules.o.main\
     53 	@.Modules.o.config\
     54 	@.^.Modules.o.getbuildinfo\
     55 	@.Modules.o.getpath_riscos\
     56 	@.Modules.o.riscosmodule\
     57 	@.^.Modules.o.gcmodule
     58 
     59 
     60 # dynamic Modules
     61 MODULES_DYNAMIC =\
     62 	@.^.Lib.array/pyd\
     63 	@.^.Lib.audioop/pyd\
     64 	@.^.Lib.binascii/pyd\
     65 	@.^.Lib.bz2/pyd\
     66 	@.^.Lib.cmath/pyd\
     67 	@.^.Lib.cPickle/pyd\
     68 	@.^.Lib.cStringIO/pyd\
     69 	@.^.Lib.datetime/pyd\
     70 	@.^.Lib.errno/pyd\
     71 	@.^.Lib.imageop/pyd\
     72 	@.^.Lib.itertools/pyd\
     73 	@.^.Lib.math/pyd\
     74 	@.^.Lib.md5/pyd\
     75 	@.^.Lib.operator/pyd\
     76 	@.^.Lib.parser/pyd\
     77 	@.^.Lib.rgbimg/pyd\
     78 	@.^.Lib.sha/pyd\
     79 	@.^.Lib.signal/pyd\
     80 	@.^.Lib.struct/pyd\
     81 	@.^.Lib.time/pyd\
     82 	@.^.Lib._locale/pyd\
     83 	@.^.Lib.zlib/pyd\
     84 	@.^.Lib.select/pyd\
     85 	@.^.Lib._socket/pyd\
     86 	@.^.Lib._codecs/pyd\
     87 	@.^.Lib._weakref/pyd\
     88 	@.^.Lib._testcapi/pyd\
     89 	@.^.Lib.unicodedata/pyd\
     90 	@.^.Lib.pyexpat/pyd\
     91 	@.^.Lib.plat-riscos.drawf/pyd\
     92 	@.^.Lib.plat-riscos.swi/pyd\
     93 	@.^.Lib._sre/pyd\
     94 	@.^.Lib.xxsubtype/pyd\
     95 	@.^.Lib._symtable/pyd\
     96 	@.^.Lib._random/pyd\
     97 	@.^.Lib.zipimport/pyd\
     98 	@.^.Lib._csv/pyd
     99 
    100 
    101 OBJECTS_PYTHON =\
    102 	@.^.Python.o.traceback\
    103 	@.^.Python.o.sysmodule\
    104 	@.^.Python.o.structmember\
    105 	@.^.Python.o.strdup\
    106 	@.^.Python.o.sigcheck\
    107 	@.^.Python.o.pythonrun\
    108 	@.^.Python.o.pystate\
    109 	@.^.Python.o.pyfpe\
    110 	@.^.Python.o.mystrtoul\
    111 	@.^.Python.o.mysnprintf\
    112 	@.^.Python.o.modsupport\
    113 	@.^.Python.o.marshal\
    114 	@.^.Python.o.importdl\
    115 	@.^.Python.o.import\
    116 	@.^.Python.o.graminit\
    117 	@.^.Python.o.getversion\
    118 	@.^.Python.o.getplatform\
    119 	@.^.Python.o.getopt\
    120 	@.^.Python.o.getcopyright\
    121 	@.^.Python.o.getcompiler\
    122 	@.^.Python.o.getargs\
    123 	@.^.Python.o.frozenmain\
    124 	@.^.Python.o.frozen\
    125 	@.^.Python.o.errors\
    126 	@.^.Python.o.compile\
    127 	@.^.Python.o.ceval\
    128 	@.^.Python.o.bltinmodule\
    129 	@.^.Python.o.exceptions\
    130 	@.^.Python.o.codecs\
    131 	@.^.Python.o.symtable\
    132 	@.^.Python.o.future
    133 
    134 
    135 OBJECTS_RISCOS = \
    136 	@.Python.o.dynload_riscos\
    137 	@.Python.o.getcwd_riscos\
    138 	@.o.unixstuff
    139 
    140 
    141 OBJECTS_OBJECTS =\
    142 	@.^.Objects.o.typeobject\
    143 	@.^.Objects.o.tupleobject\
    144 	@.^.Objects.o.stringobject\
    145 	@.^.Objects.o.sliceobject\
    146 	@.^.Objects.o.rangeobject\
    147 	@.^.Objects.o.object\
    148 	@.^.Objects.o.obmalloc\
    149 	@.^.Objects.o.moduleobject\
    150 	@.^.Objects.o.methodobject\
    151 	@.^.Objects.o.longobject\
    152 	@.^.Objects.o.listobject\
    153 	@.^.Objects.o.intobject\
    154 	@.^.Objects.o.boolobject\
    155 	@.^.Objects.o.iterobject\
    156 	@.^.Objects.o.funcobject\
    157 	@.^.Objects.o.frameobject\
    158 	@.^.Objects.o.floatobject\
    159 	@.^.Objects.o.fileobject\
    160 	@.^.Objects.o.enumobject\
    161 	@.^.Objects.o.dictobject\
    162 	@.^.Objects.o.complexobject\
    163 	@.^.Objects.o.cobject\
    164 	@.^.Objects.o.classobject\
    165 	@.^.Objects.o.cellobject\
    166 	@.^.Objects.o.bufferobject\
    167 	@.^.Objects.o.abstract\
    168 	@.^.Objects.o.unicodectype\
    169 	@.^.Objects.o.unicodeobject\
    170 	@.^.Objects.o.descrobject\
    171 	@.^.Objects.o.weakrefobject\
    172 	@.^.Objects.o.structseq
    173 
    174 
    175 OBJECTS_PARSER =\
    176 	@.^.Parser.o.tokenizer\
    177 	@.^.Parser.o.printgrammar\
    178 	@.^.Parser.o.parsetok\
    179 	@.^.Parser.o.parser\
    180 	@.^.Parser.o.node\
    181 	@.^.Parser.o.myreadline\
    182 	@.^.Parser.o.metagrammar\
    183 	@.^.Parser.o.listnode\
    184 	@.^.Parser.o.intrcheck\
    185 	@.^.Parser.o.grammar1\
    186 	@.^.Parser.o.grammar\
    187 	@.^.Parser.o.firstsets\
    188 	@.^.Parser.o.bitset\
    189 	@.^.Parser.o.acceler
    190 
    191 SUPPORT_FILES = @.^.!Boot @.^.!Run @.^.!Sprites @.^.!Sprites22 @.^.AddToPath
    192 
    193 OBJECTS = $(OBJECTS_PYTHON) $(OBJECTS_PARSER) $(MODULES_STATIC) $(OBJECTS_OBJECTS) $(OBJECTS_RISCOS)
    194 
    195 
    196 all: @.^.$(TARGET) $(MODULES_DYNAMIC) $(SUPPORT_FILES)
    197 
    198 @.^.Modules.o.getbuildinfo: @.^.Modules.c.getbuildinfo
    199        $(CC) -DBUILD=$(BUILD) -o @.^.Modules.o.getbuildinfo @.^.Modules.c.getbuildinfo
    200 
    201 
    202 $(LIB_PYTHON):	$(OBJECTS)
    203 	$(LIBFILE) $(LIB_PYTHON) $(OBJECTS)
    204 
    205 @.^.$(TARGET):  o.linktab $(MAIN_PYTHON) $(LIB_PYTHON)
    206 	$(LINK) -o @.^.$(TARGET) $(MAIN_PYTHON) @.^.LibPython $(LOADLIBS)
    207 
    208 
    209 #########################################################################
    210 # RISC OS support files
    211 #
    212 @.^.!Boot: support.!Boot
    213 	copy support.!Boot @.^.!Boot ~C~VF
    214 	settype @.^.!Boot feb
    215 @.^.!Run:  support.!Run
    216 	copy support.!Run @.^.!Run ~C~VF
    217 	settype @.^.!Run feb
    218 @.^.!Sprites: support.!Sprites
    219 	copy support.!Sprites @.^.!Sprites ~C~VF
    220 	settype @.^.!Sprites ff9
    221 @.^.!Sprites22: support.!Sprites22
    222 	copy support.!Sprites22 @.^.!Sprites22 ~C~VF
    223 	settype @.^.!Sprites22 ff9
    224 @.^.AddToPath: support.AddToPath
    225 	copy support.AddToPath @.^.AddToPath ~C~VF
    226 	settype @.^.AddToPath ffc
    227 
    228 
    229 #########################################################################
    230 # Dynamic Modules
    231 #
    232 @.^.Lib.array/pyd: @.^.Modules.o.arraymodule s.linktab
    233 	$(MAKEDLK) -d @.^.Lib.array/pyd -s s.linktab -o @.^.Modules.o.arraymodule -e initarray
    234 
    235 @.^.Lib.audioop/pyd: @.^.Modules.o.audioop # s.linktab
    236 	$(MAKEDLK) -d @.^.Lib.audioop/pyd -s s.linktab -o @.^.Modules.o.audioop -e initaudioop
    237 
    238 @.^.Lib.binascii/pyd: @.^.Modules.o.binascii s.linktab
    239 	$(MAKEDLK) -d @.^.Lib.binascii/pyd -s s.linktab -o @.^.Modules.o.binascii -e initbinascii
    240 
    241 @.^.Lib.cmath/pyd: @.^.Modules.o.cmathmodule s.linktab
    242 	$(MAKEDLK) -d @.^.Lib.cmath/pyd -s s.linktab -o @.^.Modules.o.cmathmodule -e initcmath
    243 
    244 @.^.Lib.cPickle/pyd: @.^.Modules.o.cPickle s.linktab
    245 	$(MAKEDLK) -d @.^.Lib.cPickle/pyd -s s.linktab -o @.^.Modules.o.cPickle -e initcPickle
    246 
    247 @.^.Lib.cStringIO/pyd: @.^.Modules.o.cStringIO s.linktab
    248 	$(MAKEDLK) -d @.^.Lib.cStringIO/pyd -s s.linktab -o @.^.Modules.o.cStringIO -e initcStringIO
    249 
    250 @.^.Lib._csv/pyd: @.^.Modules.o._csv s.linktab
    251 	$(MAKEDLK) -d @.^.Lib._csv/pyd -s s.linktab -o @.^.Modules.o._csv -e init_csv
    252 
    253 @.^.Lib.plat-riscos.drawf/pyd: Modules.o.drawfmodule #s.linktab
    254 	$(LINK) -aof -o Modules.o.drawflink Modules.o.drawfmodule $(OSLIB).o.OSLIB32
    255 	$(MAKEDLK) -d @.^.Lib.plat-riscos.drawf/pyd -s s.linktab -o Modules.o.drawflink -e initdrawf
    256 
    257 @.^.Lib.datetime/pyd: @.^.Modules.o.datetimemodule s.linktab
    258 	$(MAKEDLK) -d @.^.Lib.datetime/pyd -s s.linktab -o @.^.Modules.o.datetimemodule -e initdatetime
    259 
    260 @.^.Lib.errno/pyd: @.^.Modules.o.errnomodule #s.linktab
    261 	$(MAKEDLK) -d @.^.Lib.errno/pyd -s s.linktab -o @.^.Modules.o.errnomodule -e initerrno
    262 
    263 @.^.Lib.imageop/pyd: @.^.Modules.o.imageop s.linktab
    264 	$(MAKEDLK) -d @.^.Lib.imageop/pyd -s s.linktab -o @.^.Modules.o.imageop -e initimageop
    265 
    266 @.^.Lib.itertools/pyd: @.^.Modules.o.itertoolsmodule s.linktab
    267 	$(MAKEDLK) -d @.^.Lib.itertools/pyd -s s.linktab -o @.^.Modules.o.itertoolsmodule -e inititertools
    268 
    269 @.^.Lib.math/pyd: @.^.Modules.o.mathmodule s.linktab
    270 	$(MAKEDLK) -d @.^.Lib.math/pyd -s s.linktab -o @.^.Modules.o.mathmodule -e initmath
    271 
    272 @.^.Lib.mmap/pyd: @.^.Modules.o.mmapmodule s.linktab
    273 	$(MAKEDLK) -d @.^.Lib.mmap/pyd -s s.linktab -o @.^.Modules.o.mmapmodule -e initmmap
    274 
    275 @.^.Lib.md5/pyd: @.^.Modules.o.md5c @.^.Modules.o.md5module s.linktab
    276 	$(LINK) -aof -o @.^.Modules.o.md5link @.^.Modules.o.md5c @.^.Modules.o.md5module
    277 	$(MAKEDLK) -d @.^.Lib.md5/pyd -s s.linktab -o @.^.Modules.o.md5link -e initmd5
    278 
    279 @.^.Lib.operator/pyd: @.^.Modules.o.operator s.linktab
    280 	$(MAKEDLK) -d @.^.Lib.operator/pyd -s s.linktab -o @.^.Modules.o.operator -e initoperator
    281 
    282 @.^.Lib.parser/pyd: @.^.Modules.o.parsermodule s.linktab
    283 	$(MAKEDLK) -d @.^.Lib.parser/pyd -s s.linktab -o @.^.Modules.o.parsermodule -e initparser
    284 
    285 @.^.Lib.rgbimg/pyd: @.^.Modules.o.rgbimgmodule s.linktab
    286 	$(MAKEDLK) -d @.^.Lib.rgbimg/pyd -s s.linktab -o @.^.Modules.o.rgbimgmodule -e initrgbimg
    287 
    288 @.^.Lib.sha/pyd: @.^.Modules.o.shamodule s.linktab
    289 	$(MAKEDLK) -d @.^.Lib.sha/pyd -s s.linktab -o @.^.Modules.o.shamodule -e initsha
    290 
    291 @.^.Lib.signal/pyd: @.^.Modules.o.signalmodule s.linktab
    292 	$(MAKEDLK) -d @.^.Lib.signal/pyd -s s.linktab -o @.^.Modules.o.signalmodule -e initsignal
    293 
    294 @.^.Lib.strop/pyd: @.^.Modules.o.stropmodule s.linktab
    295 	$(MAKEDLK) -d @.^.Lib.strop/pyd -s s.linktab -o @.^.Modules.o.stropmodule -e initstrop
    296 
    297 @.^.Lib.struct/pyd: @.^.Modules.o.structmodule s.linktab
    298 	$(MAKEDLK) -d @.^.Lib.struct/pyd -s s.linktab -o @.^.Modules.o.structmodule -e initstruct
    299 
    300 @.^.Lib.plat-riscos.swi/pyd: Modules.o.swimodule s.linktab
    301 	$(LINK) -aof -o Modules.o.swilink Modules.o.swimodule $(OSLIB).o.OSLIB32
    302 	$(MAKEDLK) -d @.^.Lib.plat-riscos.swi/pyd -s s.linktab -o Modules.o.swilink -e initswi
    303 
    304 @.^.Lib._locale/pyd: @.^.Modules.o._localemodule s.linktab
    305 	$(MAKEDLK) -d @.^.Lib._locale/pyd -s s.linktab -o @.^.Modules.o._localemodule -e init_locale
    306 
    307 @.^.Lib._sre/pyd: @.^.Modules.o._sre s.linktab
    308 	$(MAKEDLK) -d @.^.Lib._sre/pyd -s s.linktab -o @.^.Modules.o._sre -e init_sre
    309 
    310 @.^.Lib._codecs/pyd: @.^.Modules.o._codecsmodule s.linktab
    311 	$(MAKEDLK) -d @.^.Lib._codecs/pyd -s s.linktab -o @.^.Modules.o._codecsmodule -e init_codecs
    312 
    313 @.^.Lib._weakref/pyd: @.^.Modules.o._weakref s.linktab
    314 	$(MAKEDLK) -d @.^.Lib._weakref/pyd -s s.linktab -o @.^.Modules.o._weakref -e init_weakref
    315 
    316 @.^.Lib._testcapi/pyd: @.^.Modules.o._testcapimodule s.linktab
    317 	$(MAKEDLK) -d @.^.Lib._testcapi/pyd -s s.linktab -o @.^.Modules.o._testcapimodule -e init_testcapi
    318 
    319 @.^.Lib.unicodedata/pyd: @.^.Modules.o.unicodedata s.linktab
    320 	$(MAKEDLK) -d @.^.Lib.unicodedata/pyd -s s.linktab -o @.^.Modules.o.unicodedata -e initunicodedata
    321 
    322 @.^.Lib.xxsubtype/pyd: @.^.Modules.o.xxsubtype s.linktab
    323 	$(MAKEDLK) -d @.^.Lib.xxsubtype/pyd -s s.linktab -o @.^.Modules.o.xxsubtype -e initxxsubtype
    324 
    325 @.^.Lib._random/pyd: @.^.Modules.o._randommodule s.linktab
    326 	$(MAKEDLK) -d @.^.Lib._random/pyd -s s.linktab -o @.^.Modules.o._randommodule -e init_random
    327 
    328 @.^.Lib._symtable/pyd: @.^.Modules.o.symtablemodule s.linktab
    329 	$(MAKEDLK) -d @.^.Lib._symtable/pyd -s s.linktab -o @.^.Modules.o.symtablemodule -e init_symtable
    330 
    331 
    332 ############################################################################
    333 # Dynamic Modules with other dependencies
    334 #
    335 @.^.Lib.select/pyd:  @.^.Modules.o.selectmodule s.linktab
    336 	$(LINK) -aof -o @.^.Modules.o.selectlink @.^.Modules.o.selectmodule $(TCPIPLIB).o.socklib5
    337 	$(MAKEDLK) -d @.^.Lib.select/pyd -s s.linktab -o @.^.Modules.o.selectlink -e initselect
    338 
    339 @.^.Modules.o.selectmodule: @.^.Modules.c.selectmodule
    340 	$(CC) -I$(TCPIPLIB).include -o $@ @.^.Modules.c.selectmodule
    341 
    342 @.^.Lib._socket/pyd: @.^.Modules.o.socketmodule s.linktab 
    343 	$(LINK) -aof -o @.^.Modules.o._socketlink @.^.Modules.o.socketmodule $(TCPIPLIB).o.inetlib $(TCPIPLIB).o.unixlib $(TCPIPLIB).o.socklib5
    344 	$(MAKEDLK) -d @.^.Lib._socket/pyd -s s.linktab -o @.^.Modules.o._socketlink -e init_socket
    345 
    346 @.^.Modules.o.socketmodule: @.^.Modules.c.socketmodule
    347 	$(CC) -I$(TCPIPLIB).include -o $@ @.^.Modules.c.socketmodule
    348 
    349 
    350 @.^.Lib.zlib/pyd: @.^.Modules.o.zlibmodule s.linktab
    351 	$(LINK) -aof -o @.^.Modules.o.zliblink @.^.Modules.o.zlibmodule $(ZLIB).zlib
    352 	$(MAKEDLK) -d @.^.Lib.zlib/pyd -s s.linktab -o @.^.Modules.o.zliblink -e initzlib
    353 
    354 @.^.Modules.o.zlibmodule: @.^.Modules.c.zlibmodule
    355 	$(CC) -I$(ZLIB) -o $@ @.^.Modules.c.zlibmodule
    356 
    357 @.^.Lib.bz2/pyd: @.^.Modules.o.bz2module s.linktab
    358 	$(LINK) -aof -o @.^.Modules.o.bz2link @.^.Modules.o.bz2module $(BZLIB).bzlib
    359 	$(MAKEDLK) -d @.^.Lib.bz2/pyd -s s.linktab -o @.^.Modules.o.bz2link -e initbz2
    360 
    361 @.^.Modules.o.bz2module: @.^.Modules.c.bz2module
    362 	$(CC) -I$(BZLIB) -o $@ @.^.Modules.c.bz2module
    363 
    364 @.^.Lib.time/pyd: @.^.Modules.o.timemodule s.linktab @.o.sleep
    365 	$(LINK) -aof -o @.^.Modules.o.timelink @.^.Modules.o.timemodule @.o.sleep $(OSLIB).o.OSLib32
    366 	$(MAKEDLK) -d @.^.Lib.time/pyd -s s.linktab -o @.^.Modules.o.timelink -e inittime
    367 
    368 #@.^.Lib.time/pyd: @.Modules.o.timemodule s.linktab
    369 #	$(LINK) -aof -o @.Modules.o.timelink @.Modules.o.timemodule $(OSLIB).o.OSLib32
    370 #	$(MAKEDLK) -d @.^.Lib.time/pyd -s s.linktab -o @.Modules.o.timelink -e inittime
    371 
    372 
    373 @.^.Lib.pyexpat/pyd: @.^.Modules.o.pyexpat s.linktab
    374 	$(LINK) -aof -o @.^.Modules.o.pyexpatlink @.^.Modules.o.pyexpat $(EXPAT).expat_lib
    375 	$(MAKEDLK) -d @.^.Lib.pyexpat/pyd -s s.linktab -o @.^.Modules.o.pyexpatlink -e initpyexpat
    376 
    377 @.^.Modules.o.pyexpat: @.^.Modules.c.pyexpat
    378 	$(CCEXPAT) -o $@ @.^.Modules.c.pyexpat
    379 
    380 @.^.Lib.zipimport/pyd: @.^.Modules.o.zipimport s.linktab
    381 	$(LINK) -aof -o @.^.Modules.o.zipimportlink @.^.Modules.o.zipimport o.unixstuff $(OSLIB).o.OSLib32
    382 	$(MAKEDLK) -d @.^.Lib.zipimport/pyd -s s.linktab -o @.^.Modules.o.zipimportlink -e initzipimport
    383 
    384 
    385 ##########################################################################
    386 # dynamic linking symbol table
    387 #
    388 o.linktab: s.linktab
    389 	ObjAsm -APCS 3/32bit s.linktab o.linktab
    390 
    391 s.linktab: $(OBJECTS)
    392 	$(OBJSCAN) -s s.linktab -o $(OBJECTS) $(clib).o.stubs
    393 
    394 ##########################################################################
    395 # special targets
    396 #
    397 libclean:
    398 	-wipe @.^.Lib.*/pyc ~C~V
    399 	-wipe @.^.Lib.*/pyo ~C~V
    400 	-wipe @.^.Lib.plat-riscos.*/pyc ~C~V
    401 	-wipe @.^.Lib.plat-riscos.*/pyo ~C~V
    402 	-wipe @.^.Lib.test.*/pyc ~C~V
    403 	-wipe @.^.Lib.test.*/pyo ~C~V
    404 	-wipe @.^.Lib.encodings.*/pyc ~C~V
    405 	-wipe @.^.Lib.encodings.*/pyo ~C~V
    406 	-wipe @.^.Lib.curses.*/pyc ~C~V
    407 	-wipe @.^.Lib.curses.*/pyo ~C~V
    408 	-wipe @.^.Lib.xml.*/pyc ~C~V
    409 	-wipe @.^.Lib.xml.*/pyo ~C~V
    410 	-wipe @.^.Lib.xml.sax.*/pyc ~C~V
    411 	-wipe @.^.Lib.xml.sax.*/pyo ~C~V
    412 	-wipe @.^.Lib.xml.dom.*/pyc ~C~V
    413 	-wipe @.^.Lib.xml.dom.*/pyo ~C~V
    414 	-wipe @.^.Lib.xml.parsers.*/pyc ~C~V
    415 	-wipe @.^.Lib.xml.parsers.*/pyo ~C~V
    416 
    417 clean: libclean
    418 	-wipe @.^.Modules.o.* ~C~V
    419 	-wipe @.^.Objects.o.* ~C~V
    420 	-wipe @.^.Parser.o.* ~C~V
    421 	-wipe @.^.Python.o.* ~C~V
    422 	-wipe @.Modules.o.* ~C~V
    423 	-wipe @.Python.o.* ~C~V
    424 	-wipe @.o.* ~C ~V
    425 
    426 rebuild: clean clean-support
    427 	remove @.^.$(TARGET)
    428 	-wipe @.^.Lib.*/pyd ~C ~V
    429 	-wipe @.^.Lib.plat-riscos.*/pyd ~C~V
    430 	remove s.linktab
    431 	remove @.^.LibPython
    432 
    433 clean-support:
    434 	-wipe @.^.!* ~C~V
    435 	remove @.^.AddToPath
    436 
    437 cdirs:
    438 	cdir @.Modules.o
    439 	cdir @.Python.o
    440 	cdir @.s
    441 	cdir @.o
    442 	cdir @.^.Python.o
    443 	cdir @.^.Parser.o
    444 	cdir @.^.Objects.o
    445 	cdir @.^.Modules.o
    446 
    447 
    448 # Dynamic dependencies:
    449