diff options
Diffstat (limited to 'RISCOS/Makefile')
-rw-r--r-- | RISCOS/Makefile | 418 |
1 files changed, 418 insertions, 0 deletions
diff --git a/RISCOS/Makefile b/RISCOS/Makefile new file mode 100644 index 0000000..38973f0 --- /dev/null +++ b/RISCOS/Makefile @@ -0,0 +1,418 @@ +# RISC OS Python +LIBSROOT = $.AcornC_C++.Libraries + +# You may need to change some of the following +OSLIB = $(LIBSROOT).OSLib +CLIB = $(LIBSROOT).clib +SOCKLIB = $(LIBSROOT).netlib +DLKLIB = $(LIBSROOT).dlk +ZLIB = $(LIBSROOT).zlib +EXPAT = $(LIBSROOT).expat.lib + +OBJSCAN = $(DLKLIB).objscan +MAKEDLK = $(DLKLIB).makedlk + +# change from time to time +TARGET=Python21 +BUILD=10 + + +# +# You shouldn't need to change anything below this line +# +OSLIBS = OSLib:Computer,OSLib:Core,OSLib:User + +DLKFLAG= -DDLK +DLKOBJS = $(DLKLIB).o.dlk_load o.linktab + +HEADERS = @,@.^.Include,@.^.Modules,@.^.Objects,@.^.Python,$(CLIB),$(OSLIBS),$(DLKLIB) + +CC = cc -c -j$(HEADERS) $(DLKFLAG) -DRISCOS -DHAVE_CONFIG_H -wad -throwback +#-depend !Depend +CCEXPAT = cc -c -j$(HEADERS),$(EXPAT) $(DLKFLAG) -DHAVE_EXPAT_H -DRISCOS -DHAVE_CONFIG_H -wad -throwback + +LINK = link +LINKFLAGS = -aif -NOUNUSED #-d +LOADLIBS = $(CLIB).o.Stubs $(OSLIB).o.OSLib $(DLKOBJS) + + +.c.o : + $(CC) -o $@ $*.c + + +# code for main Python binary +MODULES_STATIC = \ + @.^.Modules.o.python \ + @.^.Modules.o.main \ + Modules.o.config \ + @.^.Modules.o.getbuildinfo \ + Modules.o.getpath_riscos \ + Modules.o.riscosmodule \ + @.^.Modules.o._sre + + +# dynamic Modules +MODULES_DYNAMIC = \ + @.^.Lib.array/pyd \ + @.^.Lib.audioop/pyd \ + @.^.Lib.binascii/pyd \ + @.^.Lib.cmath/pyd \ + @.^.Lib.cPickle/pyd \ + @.^.Lib.cStringIO/pyd \ + @.^.Lib.errno/pyd \ + @.^.Lib.imageop/pyd \ + @.^.Lib.math/pyd \ + @.^.Lib.md5/pyd \ + @.^.Lib.new/pyd \ + @.^.Lib.operator/pyd \ + @.^.Lib.parser/pyd \ + @.^.Lib.pcre/pyd \ + @.^.Lib.regex/pyd \ + @.^.Lib.rgbimg/pyd \ + @.^.Lib.rotor/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.xreadlines/pyd \ + @.^.Lib.pyexpat/pyd \ + @.^.Lib.plat-riscos.drawf/pyd \ + @.^.Lib.plat-riscos.swi/pyd + + # @.^.Lib.soundex/pyd \ + # leave strop out? It's no longer in use for string operations + # @.^.Lib.mmap/pyd would it make sense? I read about a mmap + # implementation for RISC OS recently in usenet news. + + #@.^.Lib.strop/pyd \ + #@.^.Lib._sre/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.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.hypot \ + @.^.Python.o.codecs \ + @.^.Python.o.symtable +# @.^.Python.o.atof @.^.Python.o.strerror + + +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.moduleobject \ + @.^.Objects.o.methodobject \ + @.^.Objects.o.longobject \ + @.^.Objects.o.listobject \ + @.^.Objects.o.intobject \ + @.^.Objects.o.funcobject \ + @.^.Objects.o.frameobject \ + @.^.Objects.o.floatobject \ + @.^.Objects.o.fileobject \ + @.^.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_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 + + +@.^.$(TARGET): $(OBJECTS) o.linktab + $(LINK) -o @.^.$(TARGET) $(OBJECTS) $(LOADLIBS) + + +######################################################################### +# 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.plat-riscos.drawf/pyd: Modules.o.drawfmodule #s.linktab + $(LINK) -aof -o Modules.o.drawflink Modules.o.drawfmodule $(OSLIB).o.OSLIB + $(MAKEDLK) -d @.^.Lib.plat-riscos.drawf/pyd -s s.linktab -o Modules.o.drawflink -e initdrawf + +@.^.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.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.new/pyd: @.^.Modules.o.newmodule s.linktab + $(MAKEDLK) -d @.^.Lib.new/pyd -s s.linktab -o @.^.Modules.o.newmodule -e initnew + +@.^.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.pcre/pyd: @.^.Modules.o.pcremodule @.^.Modules.o.pypcre s.linktab + $(LINK) -aof -o @.^.Modules.o.pcrelink @.^.Modules.o.pcremodule @.^.Modules.o.pypcre + $(MAKEDLK) -d @.^.Lib.pcre/pyd -s s.linktab -o @.^.Modules.o.pcrelink -e initpcre + +@.^.Lib.regex/pyd: @.^.Modules.o.regexmodule @.^.Modules.o.regexpr s.linktab + $(LINK) -aof -o @.^.Modules.o.regexlink @.^.Modules.o.regexmodule @.^.Modules.o.regexpr + $(MAKEDLK) -d @.^.Lib.regex/pyd -s s.linktab -o @.^.Modules.o.regexlink -e initregex + +@.^.Lib.rgbimg/pyd: @.^.Modules.o.rgbimgmodule s.linktab + $(MAKEDLK) -d @.^.Lib.rgbimg/pyd -s s.linktab -o @.^.Modules.o.rgbimgmodule -e initrgbimg + +@.^.Lib.rotor/pyd: @.^.Modules.o.rotormodule s.linktab + $(MAKEDLK) -d @.^.Lib.rotor/pyd -s s.linktab -o @.^.Modules.o.rotormodule -e initrotor + +@.^.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.soundex/pyd: @.^.Modules.o.soundex s.linktab +# $(MAKEDLK) -d @.^.Lib.soundex/pyd -s s.linktab -o @.^.Modules.o.soundex -e initsoundex + +@.^.Lib.strop/pyd: @.^.Modules.o.stropmodule s.linktab + $(MAKEDLK) -d @.^.Lib.strop/pyd -s s.linktab -o @.^.Modules.o.stropmodule -e initstrop + +@.^.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.OSLIB + $(MAKEDLK) -d @.^.Lib.plat-riscos.swi/pyd -s s.linktab -o Modules.o.swilink -e initswi + +@.^.Lib.time/pyd: @.^.Modules.o.timemodule s.linktab + $(MAKEDLK) -d @.^.Lib.time/pyd -s s.linktab -o @.^.Modules.o.timemodule -e inittime + +@.^.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.xreadlines/pyd: @.^.Modules.o.xreadlinesmodule s.linktab + $(MAKEDLK) -d @.^.Lib.xreadlines/pyd -s s.linktab -o @.^.Modules.o.xreadlinesmodule -e initxreadlines + + +##@.^.Lib.mmap/pyd: @.^.Modules.o.mmapmodule s.linktab +## $(MAKEDLK) -d @.^.Lib.mmap/pyd -s s.linktab -o @.^.Modules.o.mmapmodule -e initmmap + + + +############################################################################ +# Dynamic Modules with other dependencies +# +@.^.Lib.select/pyd: @.^.Modules.o.selectmodule s.linktab + $(LINK) -aof -o @.^.Modules.o.selectlink @.^.Modules.o.selectmodule $(SOCKLIB).o.socklib + $(MAKEDLK) -d @.^.Lib.select/pyd -s s.linktab -o @.^.Modules.o.selectlink -e initselect + +@.^.Modules.o.selectmodule: @.^.Modules.c.selectmodule + $(CC) -I$(SOCKLIB).include -o $@ @.^.Modules.c.selectmodule + +@.^.Lib._socket/pyd: @.^.Modules.o.socketmodule s.linktab + $(LINK) -aof -o @.^.Modules.o._socketlink @.^.Modules.o.socketmodule $(SOCKLIB).o.inetlib $(SOCKLIB).o.unixlib $(SOCKLIB).o.socklib + $(MAKEDLK) -d @.^.Lib._socket/pyd -s s.linktab -o @.^.Modules.o._socketlink -e init_socket + +@.^.Modules.o.socketmodule: @.^.Modules.c.socketmodule + $(CC) -I$(SOCKLIB).include -o $@ @.^.Modules.c.socketmodule + + +@.^.Lib.zlib/pyd: @.^.Modules.o.zlibmodule s.linktab + $(LINK) -aof -o @.^.Modules.o.zliblink @.^.Modules.o.zlibmodule $(ZLIB).zlib_lib + $(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.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 + + +########################################################################## + +o.linktab: s.linktab + ObjAsm s.linktab o.linktab + +s.linktab: $(OBJECTS) + $(OBJSCAN) -s s.linktab -o $(OBJECTS) $(clib).o.stubs + + +clean: + create @.^.Objects.o.dummy + create @.^.Parser.o.dummy + create @.^.Modules.o.dummy + create o.dummy + create @.^.Python.o.dummy + create @.^.Lib.dummy/pyc + create @.^.Lib.dummy/pyo + create @.^.Lib.plat-riscos.dummy/pyc + create @.^.Lib.plat-riscos.dummy/pyo + create @.^.Lib.test.dummy/pyc + wipe @.^.Modules.o.* ~C ~V + wipe @.^.Objects.o.* ~C ~V + wipe @.^.Parser.o.* ~C ~V + wipe @.^.Python.o.* ~C ~V + wipe o.* ~C ~V + 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 + +rebuild: clean + create @.^.Lib.dummy/pyd + create @.^.$(TARGET) + create @.^.Lib.plat-riscos.dummy/pyd + create s.linktab + create o.linktab + wipe @.^.$(TARGET) ~C~V + wipe @.^.Lib.*/pyd ~C ~V + wipe @.^.Lib.plat-riscos.*/pyd ~C~V + wipe s.linktab ~C~V + wipe o.linktab ~C~V + +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: |