# RISC OS Python LIBSROOT = $.AcornC_C++.Libraries # You may need to change some of the following OSLIB = $(LIBSROOT).OSLib CLIB = $(LIBSROOT).clib TCPIPLIB = $(LIBSROOT).TCPIPLibs DLKLIB = $(LIBSROOT).dlk ZLIB = $(LIBSROOT).zlib BZLIB = $(LIBSROOT).bzlib EXPAT = $(LIBSROOT).expat.lib OBJSCAN = $(DLKLIB).objscan MAKEDLK = $(DLKLIB).makedlk # change from time to time (don't forget to change !Boot also) TARGET=Python23 BUILD=40 # # You shouldn't need to change anything below this line # DLKFLAG= -DDLK DLKOBJS = $(DLKLIB).o.dlk_load @.o.linktab HEADERS = @,$(TCPIPLIB),@.^.Include,@.^.Modules,@.^.Objects,@.^.Python,$(CLIB),$(OSLIB),$(DLKLIB) CFLAGS = -c $(DLKFLAG) -DRISCOS -DHAVE_CONFIG_H -wadP -throwback -APCS 3/32bit/fpe3 CC = cc $(CFLAGS) -j$(HEADERS) CCEXPAT = cc $(CFLAGS) -j$(HEADERS),$(EXPAT) -DHAVE_EXPAT_H LINK = link LINKFLAGS = -aif #-NOUNUSED #-d LOADLIBS = $(TCPIPLIB).o.unixlib $(TCPIPLIB).o.inetlib $(TCPIPLIB).o.socklib $(CLIB).o.Stubs $(OSLIB).o.OSLib32 $(DLKOBJS) LIBFILE = libfile -c .c.o : $(CC) -o $@ $*.c MAIN_PYTHON =\ @.^.Modules.o.python LIB_PYTHON =\ @.^.LibPython # code for main Python binary MODULES_STATIC =\ @.^.Modules.o.main\ @.Modules.o.config\ @.^.Modules.o.getbuildinfo\ @.Modules.o.getpath_riscos\ @.Modules.o.riscosmodule\ @.^.Modules.o.gcmodule # dynamic Modules MODULES_DYNAMIC =\ @.^.Lib.array/pyd\ @.^.Lib.audioop/pyd\ @.^.Lib.binascii/pyd\ @.^.Lib.bz2/pyd\ @.^.Lib.cmath/pyd\ @.^.Lib.cPickle/pyd\ @.^.Lib.cStringIO/pyd\ @.^.Lib.datetime/pyd\ @.^.Lib.errno/pyd\ @.^.Lib.imageop/pyd\ @.^.Lib.itertools/pyd\ @.^.Lib.math/pyd\ @.^.Lib.md5/pyd\ @.^.Lib.operator/pyd\ @.^.Lib.parser/pyd\ @.^.Lib.rgbimg/pyd\ @.^.Lib.sha/pyd\ @.^.Lib.signal/pyd\ @.^.Lib.struct/pyd\ @.^.Lib.time/pyd\ @.^.Lib._locale/pyd\ @.^.Lib.zlib/pyd\ @.^.Lib.select/pyd\ @.^.Lib._socket/pyd\ @.^.Lib._codecs/pyd\ @.^.Lib._weakref/pyd\ @.^.Lib._testcapi/pyd\ @.^.Lib.unicodedata/pyd\ @.^.Lib.pyexpat/pyd\ @.^.Lib.plat-riscos.drawf/pyd\ @.^.Lib.plat-riscos.swi/pyd\ @.^.Lib._sre/pyd\ @.^.Lib.xxsubtype/pyd\ @.^.Lib._symtable/pyd\ @.^.Lib._random/pyd\ @.^.Lib.zipimport/pyd\ @.^.Lib._csv/pyd OBJECTS_PYTHON =\ @.^.Python.o.traceback\ @.^.Python.o.sysmodule\ @.^.Python.o.structmember\ @.^.Python.o.strdup\ @.^.Python.o.sigcheck\ @.^.Python.o.pythonrun\ @.^.Python.o.pystate\ @.^.Python.o.pyfpe\ @.^.Python.o.mystrtoul\ @.^.Python.o.mysnprintf\ @.^.Python.o.modsupport\ @.^.Python.o.marshal\ @.^.Python.o.importdl\ @.^.Python.o.import\ @.^.Python.o.graminit\ @.^.Python.o.getversion\ @.^.Python.o.getplatform\ @.^.Python.o.getopt\ @.^.Python.o.getcopyright\ @.^.Python.o.getcompiler\ @.^.Python.o.getargs\ @.^.Python.o.frozenmain\ @.^.Python.o.frozen\ @.^.Python.o.errors\ @.^.Python.o.compile\ @.^.Python.o.ceval\ @.^.Python.o.bltinmodule\ @.^.Python.o.exceptions\ @.^.Python.o.codecs\ @.^.Python.o.symtable\ @.^.Python.o.future OBJECTS_RISCOS = \ @.Python.o.dynload_riscos\ @.Python.o.getcwd_riscos\ @.Python.o.getmtime_riscos\ @.o.unixstuff OBJECTS_OBJECTS =\ @.^.Objects.o.typeobject\ @.^.Objects.o.tupleobject\ @.^.Objects.o.stringobject\ @.^.Objects.o.sliceobject\ @.^.Objects.o.rangeobject\ @.^.Objects.o.object\ @.^.Objects.o.obmalloc\ @.^.Objects.o.moduleobject\ @.^.Objects.o.methodobject\ @.^.Objects.o.longobject\ @.^.Objects.o.listobject\ @.^.Objects.o.boolobject\ @.^.Objects.o.iterobject\ @.^.Objects.o.funcobject\ @.^.Objects.o.frameobject\ @.^.Objects.o.floatobject\ @.^.Objects.o.fileobject\ @.^.Objects.o.enumobject\ @.^.Objects.o.dictobject\ @.^.Objects.o.complexobject\ @.^.Objects.o.cobject\ @.^.Objects.o.classobject\ @.^.Objects.o.cellobject\ @.^.Objects.o.bufferobject\ @.^.Objects.o.abstract\ @.^.Objects.o.unicodectype\ @.^.Objects.o.unicodeobject\ @.^.Objects.o.descrobject\ @.^.Objects.o.weakrefobject\ @.^.Objects.o.structseq OBJECTS_PARSER =\ @.^.Parser.o.tokenizer\ @.^.Parser.o.printgrammar\ @.^.Parser.o.parsetok\ @.^.Parser.o.parser\ @.^.Parser.o.node\ @.^.Parser.o.myreadline\ @.^.Parser.o.metagrammar\ @.^.Parser.o.listnode\ @.^.Parser.o.intrcheck\ @.^.Parser.o.grammar1\ @.^.Parser.o.grammar\ @.^.Parser.o.firstsets\ @.^.Parser.o.bitset\ @.^.Parser.o.acceler SUPPORT_FILES = @.^.!Boot @.^.!Run @.^.!Sprites @.^.!Sprites22 @.^.AddToPath OBJECTS = $(OBJECTS_PYTHON) $(OBJECTS_PARSER) $(MODULES_STATIC) $(OBJECTS_OBJECTS) $(OBJECTS_RISCOS) all: @.^.$(TARGET) $(MODULES_DYNAMIC) $(SUPPORT_FILES) @.^.Modules.o.getbuildinfo: @.^.Modules.c.getbuildinfo $(CC) -DBUILD=$(BUILD) -o @.^.Modules.o.getbuildinfo @.^.Modules.c.getbuildinfo $(LIB_PYTHON): $(OBJECTS) $(LIBFILE) $(LIB_PYTHON) $(OBJECTS) @.^.$(TARGET): o.linktab $(MAIN_PYTHON) $(LIB_PYTHON) $(LINK) -o @.^.$(TARGET) $(MAIN_PYTHON) @.^.LibPython $(LOADLIBS) ######################################################################### # RISC OS support files # @.^.!Boot: support.!Boot copy support.!Boot @.^.!Boot ~C~VF settype @.^.!Boot feb @.^.!Run: support.!Run copy support.!Run @.^.!Run ~C~VF settype @.^.!Run feb @.^.!Sprites: support.!Sprites copy support.!Sprites @.^.!Sprites ~C~VF settype @.^.!Sprites ff9 @.^.!Sprites22: support.!Sprites22 copy support.!Sprites22 @.^.!Sprites22 ~C~VF settype @.^.!Sprites22 ff9 @.^.AddToPath: support.AddToPath copy support.AddToPath @.^.AddToPath ~C~VF settype @.^.AddToPath ffc ######################################################################### # Dynamic Modules # @.^.Lib.array/pyd: @.^.Modules.o.arraymodule s.linktab $(MAKEDLK) -d @.^.Lib.array/pyd -s s.linktab -o @.^.Modules.o.arraymodule -e initarray @.^.Lib.audioop/pyd: @.^.Modules.o.audioop # s.linktab $(MAKEDLK) -d @.^.Lib.audioop/pyd -s s.linktab -o @.^.Modules.o.audioop -e initaudioop @.^.Lib.binascii/pyd: @.^.Modules.o.binascii s.linktab $(MAKEDLK) -d @.^.Lib.binascii/pyd -s s.linktab -o @.^.Modules.o.binascii -e initbinascii @.^.Lib.cmath/pyd: @.^.Modules.o.cmathmodule s.linktab $(MAKEDLK) -d @.^.Lib.cmath/pyd -s s.linktab -o @.^.Modules.o.cmathmodule -e initcmath @.^.Lib.cPickle/pyd: @.^.Modules.o.cPickle s.linktab $(MAKEDLK) -d @.^.Lib.cPickle/pyd -s s.linktab -o @.^.Modules.o.cPickle -e initcPickle @.^.Lib.cStringIO/pyd: @.^.Modules.o.cStringIO s.linktab $(MAKEDLK) -d @.^.Lib.cStringIO/pyd -s s.linktab -o @.^.Modules.o.cStringIO -e initcStringIO @.^.Lib._csv/pyd: @.^.Modules.o._csv s.linktab $(MAKEDLK) -d @.^.Lib._csv/pyd -s s.linktab -o @.^.Modules.o._csv -e init_csv @.^.Lib.plat-riscos.drawf/pyd: Modules.o.drawfmodule #s.linktab $(LINK) -aof -o Modules.o.drawflink Modules.o.drawfmodule $(OSLIB).o.OSLIB32 $(MAKEDLK) -d @.^.Lib.plat-riscos.drawf/pyd -s s.linktab -o Modules.o.drawflink -e initdrawf @.^.Lib.datetime/pyd: @.^.Modules.o.datetimemodule s.linktab $(MAKEDLK) -d @.^.Lib.datetime/pyd -s s.linktab -o @.^.Modules.o.datetimemodule -e initdatetime @.^.Lib.errno/pyd: @.^.Modules.o.errnomodule #s.linktab $(MAKEDLK) -d @.^.Lib.errno/pyd -s s.linktab -o @.^.Modules.o.errnomodule -e initerrno @.^.Lib.imageop/pyd: @.^.Modules.o.imageop s.linktab $(MAKEDLK) -d @.^.Lib.imageop/pyd -s s.linktab -o @.^.Modules.o.imageop -e initimageop @.^.Lib.itertools/pyd: @.^.Modules.o.itertoolsmodule s.linktab $(MAKEDLK) -d @.^.Lib.itertools/pyd -s s.linktab -o @.^.Modules.o.itertoolsmodule -e inititertools @.^.Lib.math/pyd: @.^.Modules.o.mathmodule s.linktab $(MAKEDLK) -d @.^.Lib.math/pyd -s s.linktab -o @.^.Modules.o.mathmodule -e initmath @.^.Lib.mmap/pyd: @.^.Modules.o.mmapmodule s.linktab $(MAKEDLK) -d @.^.Lib.mmap/pyd -s s.linktab -o @.^.Modules.o.mmapmodule -e initmmap @.^.Lib.md5/pyd: @.^.Modules.o.md5c @.^.Modules.o.md5module s.linktab $(LINK) -aof -o @.^.Modules.o.md5link @.^.Modules.o.md5c @.^.Modules.o.md5module $(MAKEDLK) -d @.^.Lib.md5/pyd -s s.linktab -o @.^.Modules.o.md5link -e initmd5 @.^.Lib.operator/pyd: @.^.Modules.o.operator s.linktab $(MAKEDLK) -d @.^.Lib.operator/pyd -s s.linktab -o @.^.Modules.o.operator -e initoperator @.^.Lib.parser/pyd: @.^.Modules.o.parsermodule s.linktab $(MAKEDLK) -d @.^.Lib.parser/pyd -s s.linktab -o @.^.Modules.o.parsermodule -e initparser @.^.Lib.rgbimg/pyd: @.^.Modules.o.rgbimgmodule s.linktab $(MAKEDLK) -d @.^.Lib.rgbimg/pyd -s s.linktab -o @.^.Modules.o.rgbimgmodule -e initrgbimg @.^.Lib.sha/pyd: @.^.Modules.o.shamodule s.linktab $(MAKEDLK) -d @.^.Lib.sha/pyd -s s.linktab -o @.^.Modules.o.shamodule -e initsha @.^.Lib.signal/pyd: @.^.Modules.o.signalmodule s.linktab $(MAKEDLK) -d @.^.Lib.signal/pyd -s s.linktab -o @.^.Modules.o.signalmodule -e initsignal @.^.Lib.struct/pyd: @.^.Modules.o.structmodule s.linktab $(MAKEDLK) -d @.^.Lib.struct/pyd -s s.linktab -o @.^.Modules.o.structmodule -e initstruct @.^.Lib.plat-riscos.swi/pyd: Modules.o.swimodule s.linktab $(LINK) -aof -o Modules.o.swilink Modules.o.swimodule $(OSLIB).o.OSLIB32 $(MAKEDLK) -d @.^.Lib.plat-riscos.swi/pyd -s s.linktab -o Modules.o.swilink -e initswi @.^.Lib._locale/pyd: @.^.Modules.o._localemodule s.linktab $(MAKEDLK) -d @.^.Lib._locale/pyd -s s.linktab -o @.^.Modules.o._localemodule -e init_locale @.^.Lib._sre/pyd: @.^.Modules.o._sre s.linktab $(MAKEDLK) -d @.^.Lib._sre/pyd -s s.linktab -o @.^.Modules.o._sre -e init_sre @.^.Lib._codecs/pyd: @.^.Modules.o._codecsmodule s.linktab $(MAKEDLK) -d @.^.Lib._codecs/pyd -s s.linktab -o @.^.Modules.o._codecsmodule -e init_codecs @.^.Lib._weakref/pyd: @.^.Modules.o._weakref s.linktab $(MAKEDLK) -d @.^.Lib._weakref/pyd -s s.linktab -o @.^.Modules.o._weakref -e init_weakref @.^.Lib._testcapi/pyd: @.^.Modules.o._testcapimodule s.linktab $(MAKEDLK) -d @.^.Lib._testcapi/pyd -s s.linktab -o @.^.Modules.o._testcapimodule -e init_testcapi @.^.Lib.unicodedata/pyd: @.^.Modules.o.unicodedata s.linktab $(MAKEDLK) -d @.^.Lib.unicodedata/pyd -s s.linktab -o @.^.Modules.o.unicodedata -e initunicodedata @.^.Lib.xxsubtype/pyd: @.^.Modules.o.xxsubtype s.linktab $(MAKEDLK) -d @.^.Lib.xxsubtype/pyd -s s.linktab -o @.^.Modules.o.xxsubtype -e initxxsubtype @.^.Lib._random/pyd: @.^.Modules.o._randommodule s.linktab $(MAKEDLK) -d @.^.Lib._random/pyd -s s.linktab -o @.^.Modules.o._randommodule -e init_random @.^.Lib._symtable/pyd: @.^.Modules.o.symtablemodule s.linktab $(MAKEDLK) -d @.^.Lib._symtable/pyd -s s.linktab -o @.^.Modules.o.symtablemodule -e init_symtable ############################################################################ # Dynamic Modules with other dependencies # @.^.Lib.select/pyd: @.^.Modules.o.selectmodule s.linktab $(LINK) -aof -o @.^.Modules.o.selectlink @.^.Modules.o.selectmodule $(TCPIPLIB).o.socklib5 $(MAKEDLK) -d @.^.Lib.select/pyd -s s.linktab -o @.^.Modules.o.selectlink -e initselect @.^.Modules.o.selectmodule: @.^.Modules.c.selectmodule $(CC) -I$(TCPIPLIB).include -o $@ @.^.Modules.c.selectmodule @.^.Lib._socket/pyd: @.^.Modules.o.socketmodule s.linktab $(LINK) -aof -o @.^.Modules.o._socketlink @.^.Modules.o.socketmodule $(TCPIPLIB).o.inetlib $(TCPIPLIB).o.unixlib $(TCPIPLIB).o.socklib5 $(MAKEDLK) -d @.^.Lib._socket/pyd -s s.linktab -o @.^.Modules.o._socketlink -e init_socket @.^.Modules.o.socketmodule: @.^.Modules.c.socketmodule $(CC) -I$(TCPIPLIB).include -o $@ @.^.Modules.c.socketmodule @.^.Lib.zlib/pyd: @.^.Modules.o.zlibmodule s.linktab $(LINK) -aof -o @.^.Modules.o.zliblink @.^.Modules.o.zlibmodule $(ZLIB).zlib $(MAKEDLK) -d @.^.Lib.zlib/pyd -s s.linktab -o @.^.Modules.o.zliblink -e initzlib @.^.Modules.o.zlibmodule: @.^.Modules.c.zlibmodule $(CC) -I$(ZLIB) -o $@ @.^.Modules.c.zlibmodule @.^.Lib.bz2/pyd: @.^.Modules.o.bz2module s.linktab $(LINK) -aof -o @.^.Modules.o.bz2link @.^.Modules.o.bz2module $(BZLIB).bzlib $(MAKEDLK) -d @.^.Lib.bz2/pyd -s s.linktab -o @.^.Modules.o.bz2link -e initbz2 @.^.Modules.o.bz2module: @.^.Modules.c.bz2module $(CC) -I$(BZLIB) -o $@ @.^.Modules.c.bz2module @.^.Lib.time/pyd: @.^.Modules.o.timemodule s.linktab @.o.sleep $(LINK) -aof -o @.^.Modules.o.timelink @.^.Modules.o.timemodule @.o.sleep $(OSLIB).o.OSLib32 $(MAKEDLK) -d @.^.Lib.time/pyd -s s.linktab -o @.^.Modules.o.timelink -e inittime #@.^.Lib.time/pyd: @.Modules.o.timemodule s.linktab # $(LINK) -aof -o @.Modules.o.timelink @.Modules.o.timemodule $(OSLIB).o.OSLib32 # $(MAKEDLK) -d @.^.Lib.time/pyd -s s.linktab -o @.Modules.o.timelink -e inittime @.^.Lib.pyexpat/pyd: @.^.Modules.o.pyexpat s.linktab $(LINK) -aof -o @.^.Modules.o.pyexpatlink @.^.Modules.o.pyexpat $(EXPAT).expat_lib $(MAKEDLK) -d @.^.Lib.pyexpat/pyd -s s.linktab -o @.^.Modules.o.pyexpatlink -e initpyexpat @.^.Modules.o.pyexpat: @.^.Modules.c.pyexpat $(CCEXPAT) -o $@ @.^.Modules.c.pyexpat @.^.Lib.zipimport/pyd: @.^.Modules.o.zipimport s.linktab $(LINK) -aof -o @.^.Modules.o.zipimportlink @.^.Modules.o.zipimport o.unixstuff $(OSLIB).o.OSLib32 $(MAKEDLK) -d @.^.Lib.zipimport/pyd -s s.linktab -o @.^.Modules.o.zipimportlink -e initzipimport ########################################################################## # dynamic linking symbol table # o.linktab: s.linktab ObjAsm -APCS 3/32bit s.linktab o.linktab s.linktab: $(OBJECTS) $(OBJSCAN) -s s.linktab -o $(OBJECTS) $(clib).o.stubs ########################################################################## # special targets # libclean: -wipe @.^.Lib.*/pyc ~C~V -wipe @.^.Lib.*/pyo ~C~V -wipe @.^.Lib.plat-riscos.*/pyc ~C~V -wipe @.^.Lib.plat-riscos.*/pyo ~C~V -wipe @.^.Lib.test.*/pyc ~C~V -wipe @.^.Lib.test.*/pyo ~C~V -wipe @.^.Lib.encodings.*/pyc ~C~V -wipe @.^.Lib.encodings.*/pyo ~C~V -wipe @.^.Lib.curses.*/pyc ~C~V -wipe @.^.Lib.curses.*/pyo ~C~V -wipe @.^.Lib.xml.*/pyc ~C~V -wipe @.^.Lib.xml.*/pyo ~C~V -wipe @.^.Lib.xml.sax.*/pyc ~C~V -wipe @.^.Lib.xml.sax.*/pyo ~C~V -wipe @.^.Lib.xml.dom.*/pyc ~C~V -wipe @.^.Lib.xml.dom.*/pyo ~C~V -wipe @.^.Lib.xml.parsers.*/pyc ~C~V -wipe @.^.Lib.xml.parsers.*/pyo ~C~V clean: libclean -wipe @.^.Modules.o.* ~C~V -wipe @.^.Objects.o.* ~C~V -wipe @.^.Parser.o.* ~C~V -wipe @.^.Python.o.* ~C~V -wipe @.Modules.o.* ~C~V -wipe @.Python.o.* ~C~V -wipe @.o.* ~C ~V rebuild: clean clean-support remove @.^.$(TARGET) -wipe @.^.Lib.*/pyd ~C ~V -wipe @.^.Lib.plat-riscos.*/pyd ~C~V remove s.linktab remove @.^.LibPython clean-support: -wipe @.^.!* ~C~V remove @.^.AddToPath cdirs: cdir @.Modules.o cdir @.Python.o cdir @.s cdir @.o cdir @.^.Python.o cdir @.^.Parser.o cdir @.^.Objects.o cdir @.^.Modules.o # Dynamic dependencies: