Makefile revision 0fa10b3cd5de4090b86c8f88c5f30d2e6a9686ac
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 10BZLIB = $(LIBSROOT).bzlib 11EXPAT = $(LIBSROOT).expat.lib 12 13OBJSCAN = $(DLKLIB).objscan 14MAKEDLK = $(DLKLIB).makedlk 15 16# change from time to time (don't forget to change !Boot also) 17TARGET=Python23 18BUILD=40 19 20 21# 22# You shouldn't need to change anything below this line 23# 24DLKFLAG= -DDLK 25DLKOBJS = $(DLKLIB).o.dlk_load @.o.linktab 26 27HEADERS = @,$(TCPIPLIB),@.^.Include,@.^.Modules,@.^.Objects,@.^.Python,$(CLIB),$(OSLIB),$(DLKLIB) 28 29CFLAGS = -c $(DLKFLAG) -DRISCOS -DHAVE_CONFIG_H -wadP -throwback -APCS 3/32bit/fpe3 30 31CC = cc $(CFLAGS) -j$(HEADERS) 32CCEXPAT = cc $(CFLAGS) -j$(HEADERS),$(EXPAT) -DHAVE_EXPAT_H 33 34LINK = link 35LINKFLAGS = -aif #-NOUNUSED #-d 36LOADLIBS = $(TCPIPLIB).o.unixlib $(TCPIPLIB).o.inetlib $(TCPIPLIB).o.socklib $(CLIB).o.Stubs $(OSLIB).o.OSLib32 $(DLKOBJS) 37 38LIBFILE = libfile -c 39 40 41.c.o : 42 $(CC) -o $@ $*.c 43 44MAIN_PYTHON =\ 45 @.^.Modules.o.python 46 47LIB_PYTHON =\ 48 @.^.LibPython 49 50# code for main Python binary 51MODULES_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 61MODULES_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 101OBJECTS_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 135OBJECTS_RISCOS = \ 136 @.Python.o.dynload_riscos\ 137 @.Python.o.getcwd_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.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 175OBJECTS_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 191SUPPORT_FILES = @.^.!Boot @.^.!Run @.^.!Sprites @.^.!Sprites22 @.^.AddToPath 192 193OBJECTS = $(OBJECTS_PYTHON) $(OBJECTS_PARSER) $(MODULES_STATIC) $(OBJECTS_OBJECTS) $(OBJECTS_RISCOS) 194 195 196all: @.^.$(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# 388o.linktab: s.linktab 389 ObjAsm -APCS 3/32bit s.linktab o.linktab 390 391s.linktab: $(OBJECTS) 392 $(OBJSCAN) -s s.linktab -o $(OBJECTS) $(clib).o.stubs 393 394########################################################################## 395# special targets 396# 397libclean: 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 417clean: 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 426rebuild: 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 433clean-support: 434 -wipe @.^.!* ~C~V 435 remove @.^.AddToPath 436 437cdirs: 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