all:      bin.PCSupport bin.PC_IO bin.PCNE2 bin.PCMEM bin.!RunImageG
all:      bin.PCDevHelp bin.!RunimageD

# Main !PC app bits ----------------------

BaseObjs = o.main o.veneerss o.veneers o.sys o.syss o.wfebits o.wfes o.config o.hpc o.CD_HPC  o.CD_HPCs o.hdd_hpc o.fdd_hpc o.rtc o.ne2000 o.kbd o.multiio o.printer o.modes o.ports o.tables o.vids o.vgas o.cursor o.scroll o.mouse o.palette o.winblt o.wins o.fddem o.ideem o.turbolut o.ext o.veneers o.veneerss o.divaserial

bin.!RunImageG: $(BaseObjs) o.cpu_g o.cpus_g o.dma o.windrv
    | ************* LINKING !RunImageG
    lnk linkfileG
    Copy tmp bin.!RunImageG F~C~V
    delete tmp

bin.!RunImageD: $(BaseObjs) o.cpu_gDEMO o.cpus_g o.dma o.windrvDEMO
    | ************* LINKING !RunImageG
    lnk linkfileD
    Copy tmp bin.!RunImageD F~C~V
    delete tmp

# Relocatable module bits -----------------

bin.PCSupport:  Module.s.PCSupport
    msm PCSupport

bin.PC_IO:      Module.s.PC_IO Module.Hdr.ramlog
    msm PC_IO

bin.PCNE2:      o.PCNE2_MH o.PCNE2
    | ************* Linking PCNE2
    Link -m -o bin.PCNE2 o.PCNE2_MH o.PCNE2 C:o.Stubs
    #C:RISC_OSLib.o.RISC_OSLib

bin.PCMEM:      o.PCMEM_MH o.PCMEM o.PCMems
    | ************* Linking PCMEM
    Link -m -o bin.PCMEM o.PCMEM_MH o.PCMEM o.PCMems C:o.Stubs
    #C:RISC_OSLib.o.RISC_OSLib

bin.PCDevHelp:      o.PCDVH_MH o.PCDevHelp
    | ************* Linking PCDevHelp
    Link -m -o bin.PCDevHelp o.PCDVH_MH o.PCDevHelp C:o.Stubs
    #C:RISC_OSLib.o.RISC_OSLib

# Individual object modules ----------------

# CPU section

o.cpu:    Cpu.c.cpu Sys.h.stdtypes Sys.h.sys Sys.h.hrdstate Sys.h.config
o.cpu:    Sys.h.cpu Sys.h.rom Cpu.h.cpus Cpu.h.hpc Cpu.h.cpu
o.cpu:    Cpu.h.cpu module.h.PCsupport Sys.h.transfer
          mc cpu cpu

o.cpu_g:  Cpu.c.cpu_g Sys.h.stdtypes Sys.h.sys Sys.h.hrdstate Sys.h.config
o.cpu_g:  Cpu.h.gemini cpu.h.cpus_g cpu.h.hpc cpu.h.cpu  Cpu.h.dma
o.cpu_g:  Sys.h.cpu Sys.h.rom module.h.PCsupport Module.h.pcmemswis
          mc cpu cpu_g

o.cpu_gDEMO:  Cpu.c.cpu_g Sys.h.stdtypes Sys.h.sys Sys.h.hrdstate Sys.h.config
o.cpu_gDEMO:  Cpu.h.gemini cpu.h.cpus_g cpu.h.hpc cpu.h.cpu  Cpu.h.dma
o.cpu_gDEMO:  Sys.h.cpu Sys.h.rom module.h.PCsupport Module.h.pcmemswis
              mc cpu cpu_g DEMO

o.dma:    Cpu.c.dma  Sys.h.stdtypes Sys.h.sys Sys.h.syss Sys.h.hrdstate
o.dma:    cpu.h.dma cpu.h.dmadefs cpu.h.cpu
          mc cpu dma

o.hpc:    Cpu.c.hpc Sys.h.stdtypes Sys.h.sys Sys.h.Hrdstate Sys.h.FEstate
o.hpc:    sys.h.cpu cpu.h.cpu cpu.h.hpc sys.h.config Sys.h.transfer
          mc cpu hpc

o.cpus_slow:   Cpu.s.cpus_slow Sys.S.StdDefs
          ms cpu cpus_slow

o.cpus_fast: Cpu.s.cpus_fast Sys.S.StdDefs
          ms cpu cpus_fast

o.cpus_8: Cpu.s.cpus_8 Sys.S.StdDefs
          ms cpu cpus_8

o.cpus_e: Cpu.s.cpus_e Sys.S.StdDefs
          ms cpu cpus_e

o.cpus_g: Cpu.s.cpus_g Sys.S.StdDefs
          ms cpu cpus_g

# DEV section ---------------------

o.CD_HPC: Dev.c.CD_HPC Sys.h.stdtypes Sys.h.sys dev.h.HPC_CD
          mc dev cd_hpc

o.CD_HPCs: Dev.s.CD_HPCs Sys.s.stddefs
          ms dev cd_hpcs

o.fdd_hpc: Dev.c.fdd_hpc Sys.h.stdtypes Sys.h.sys Sys.h.config
o.fdd_hpc: dev.h.hpc_fd
          mc Dev fdd_hpc

o.fddem: Dev.c.fddem Sys.h.stdtypes Sys.h.sys 
o.fddem: dev.h.fddem
          mc Dev fddem

o.hdd_hpc: Dev.c.hdd_hpc Sys.h.stdtypes Sys.h.sys Sys.h.config
o.hdd_hpc: dev.h.hpc_hd
          mc Dev hdd_hpc

o.ideem: Dev.c.ideem Sys.h.stdtypes Sys.h.sys Sys.h.config
o.ideem: dev.h.ideem
          mc Dev ideem

o.kbd:    Dev.c.kbd Sys.h.stdtypes Sys.h.sys Sys.h.hrdstate
o.kbd:    Sys.h.FEstate Sys.h.config module.h.PCsupport dev.h.kbd
          mc Dev kbd

o.MultiIO: Dev.c.MultiIO Sys.h.stdtypes Sys.h.sys Sys.h.config
o.MultiIO: Module.h.PC_IO dev.h.multi_IO
          mc dev multiio

o.ne2000: Dev.c.ne2000 Sys.h.stdtypes Sys.h.sys Sys.h.config
o.ne2000: Module.h.pcne2 Sys.h.transfer dev.h.ne2000
          mc dev ne2000

o.printer: Dev.c.printer Sys.h.stdtypes Sys.h.sys Sys.h.config dev.h.printer
          mc dev printer

o.rtc:    Dev.c.rtc Sys.h.stdtypes Sys.h.sys Sys.h.config dev.h.rtc
          mc dev rtc

o.ext:    Sys.c.ext Sys.h.ext Sys.h.sys        
          mc sys ext

o.turbolut:  Dev.s.turbolut
             ms dev turbolut

# SYS section ---------------------------

o.config: Sys.c.config Sys.h.stdtypes Sys.h.sys Sys.h.config
          mc sys config

o.main:   Sys.c.main Sys.h.stdtypes Sys.h.sys Sys.h.config Sys.h.cpu
o.main:   Sys.h.devices Sys.h.hrdstate Sys.h.FEstate Sys.h.WFEbits Sys.h.version
o.main:   Sys.h.Veneers
o.main:   module.h.PCsupport
          mc sys main

o.veneerss: Sys.s.veneerss Sys.h.veneers Sys.h.StdTypes
           ms sys veneerss

o.veneers: Sys.c.veneers Sys.h.veneers Sys.h.StdTypes
           mc sys veneers

o.sys:    Sys.c.sys Sys.h.stdtypes Sys.h.sys Sys.h.config Sys.h.hrdstate
o.sys:    Sys.h.FEstate Sys.h.syss Sys.h.cpu Sys.h.devices module.h.PCsupport
o.sys:    Module.h.pcdevhelp
          mc sys sys

o.wfebits: Sys.c.WFEbits Sys.h.stdtypes Sys.h.FEState Sys.h.WFEbits
o.wfebits: Sys.h.sys Sys.h.config Sys.h.wfes Sys.h.cpu
          mc sys wfebits

o.syss:   Sys.s.syss Sys.s.stddefs
          ms sys syss

o.wfes:   Sys.s.wfes Sys.s.stddefs
          ms sys wfes

o.divaserial: Sys.c.divaserial
          mch sys divaserial


# VID section -----------------------------

o.cursor: Vid.c.cursor  Sys.h.stdtypes Sys.h.sys Sys.h.FEstate
o.cursor: Vid.h.cursor Vid.h.vids Vid.h.modes Vid.h.ports
          mc vid cursor

o.modes:  Vid.c.Modes Sys.h.stdtypes Sys.h.sys Sys.h.config

o.modes:  Vid.h.vids Vid.h.vgas Vid.h.tables Vid.h.cursor Vid.h.ports
o.modes:  Vid.h.modes Vid.h.palette Vid.h.windrv Sys.h.FEState
          mc vid modes

o.mouse:  Vid.c.mouse Sys.h.stdtypes Sys.h.sys Sys.h.config Sys.h.FEState
o.mouse:  Vid.h.mouse Vid.h.modes Vid.h.vids module.h.PCsupport
          mc vid mouse

o.palette: Vid.c.palette Sys.h.stdtypes Sys.h.sys Vid.h.palette
o.palette: Vid.h.tables Vid.h.modes Vid.h.ports Vid.h.vids
o.palette: Vid.h.windrv Sys.h.FEState
          mc vid palette

o.ports:  Vid.c.ports Sys.h.stdtypes Sys.h.sys Sys.h.FEstate Sys.h.config
o.ports:  Vid.h.modes Vid.h.vids Vid.h.ports Vid.h.cursor Vid.h.vgas
o.ports:  Vid.h.scroll Vid.h.windrv Vid.h.tables Vid.h.palette
          mc vid ports

o.scroll: Vid.c.scroll Sys.h.stdtypes Sys.h.sys Sys.h.FEState Vid.h.modes
o.scroll: Vid.h.vids Vid.h.ports Vid.h.scroll Vid.h.cursor Vid.h.palette
          mc vid scroll

o.tables: Vid.c.tables Sys.h.stdtypes Vid.h.tables
          mc vid tables

o.winblt: Vid.c.winblt Sys.h.stdtypes Vid.h.modes Vid.h.vgas Vid.h.tables
o.winblt: Vid.h.vids Vid.h.windrv Vid.h.winblt Vid.h.windefs
          mc vid winblt

o.windrv: Vid.c.windrv Sys.h.stdtypes Sys.h.FEstate Sys.h.sys Sys.h.config
o.windrv: Vid.h.modes Vid.h.ports Vid.h.vids Vid.h.vgas Vid.h.tables
o.windrv: Vid.h.windrv Vid.h.windefs Vid.h.wins Vid.h.winblt Sys.h.transfer
          mc vid windrv

o.windrvDEMO: Vid.c.windrv Sys.h.stdtypes Sys.h.FEstate Sys.h.sys Sys.h.config
o.windrvDEMO: Vid.h.modes Vid.h.ports Vid.h.vids Vid.h.vgas Vid.h.tables
o.windrvDEMO: Vid.h.windrv Vid.h.windefs Vid.h.wins Vid.h.winblt Sys.h.transfer
          mc vid windrv DEMO

o.vids:   Vid.s.vids Sys.s.stddefs
          ms vid vids

o.vgas:   Vid.s.vgas Sys.s.stddefs
          ms vid vgas

o.wins:   Vid.s.wins Sys.s.stddefs
          ms vid wins

# Module section ---------------------------

o.PCNE2_MH: module.mh.PCNE2_MH
    | ************* Running CMHG
    cmhg Module.mh.PCNE2_MH o.PCNE2_MH

o.PCNE2:    module.c.PCNE2 module.h.DCI4 module.h.mbuf module.h.PCNE2
o.PCNE2:    module.h.PCsupport
    mcm PCNE2

o.PCMEM_MH: module.mh.PCMEM_MH
    | ************* Running CMHG
    cmhg Module.mh.PCMEM_MH o.PCMEM_MH

o.PCMEM:    module.c.PCMEM module.h.PCMemSWIs
    mcm PCMEM

o.PCMEMs:   module.s.PCMEMs
    | ************* Assembling PCMems
    ObjAsm -From module.s.PCMems -To o.PCMems -Module -Stamp -Quit

o.PCDVH_MH: module.mh.PCDVH_MH
    | ************* Running CMHG
    cmhg Module.mh.PCDVH_MH o.PCDVH_MH

o.PCDevHelp:  module.c.PCDevHelp module.h.PCDevHelp sys.h.stdtypes
o.PCDevHelp:  sys.h.sys sys.h.hrdstate sys.h.festate
    mcm PCDevHelp

