summaryrefslogtreecommitdiffstats
path: root/RISCOS/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'RISCOS/Makefile')
-rw-r--r--RISCOS/Makefile418
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: