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