/* MakeAll.rexx */

/* Set all options */

/* target types */
targets.0 = 5
targets.1 = "pet3001"
targets.2 = "pet4001"
targets.3 = "vic20"
targets.4 = "c64"
targets.5 = "c128"

/* Cables */

cables.0 = 3
cables.1 = "prlink"
cables.2 = "prlink88"
cables.3 = "transnib"

/* Memory expansions */

ramexp.pet3001 = "none"
ramexp.pet4001 = "none"
ramexp.vic20   = "none"
ramexp.c64     = "none"
ramexp.c128    = "none"

/* Flags */
/* a = has prsample */

flags.pet3001 = ""
flags.pet4001 = ""
flags.vic20   = "a"
flags.c64     = "a"
flags.c128    = "a"

call run 'assign base: /'
call run 'copy Local:libs/ixemul.library base:amiga/libs'

/* Make 6502 programs */

    do it = 1 to targets.0
	target = targets.it

	do ic = 1 to cables.0
	    cable = cables.ic

	    tmp = upper(target); ramexp = ramexp.tmp
	    tmp = upper(target); flags = flags.tmp

	    call run 'rm *.prg'
	    call run 'make TARGET='target 'RAMEXP='ramexp 'CABLE='cable 'prprgs'

	    if ic == 1 then do
		call run 'cp *.prg /base/'target
	    end

	    call run 'cp prserver.prg /base/'target'/prserver-'cable'.prg'
	    if index(flags, "a") ~= 0 then do
		call run 'cp prsample.prg /base/'target'/prsample-'cable'.prg'
	    end
	end
    end

    /* Remove some junk (cable-dependent, incorrectly named) */

    call run 'rm base:*/prserver.prg'
    call run 'rm base:*/prsample.prg'

/* Make the Amiga programs */

options.prlink	 = ""
options.prlink88 = "-DPRLINK88"
options.transnib = "-DTRANSNIB"

    do ic = 1 to cables.0
	cable = cables.ic

	tmp = upper(cable); options = options.tmp

	call run 'rm prmain pramiga.o'
	call run 'make CABLEOBJ=pramiga.o "OPTIONS=-DWRAP_AROUND' options'" prmain'
	call run 'cp prmain /base/amiga/prmain-'cable

    end

    call run 'rm prmain prrfile prwfile prload prsave prdisk prcart prsample *.o'

exit

run:
    say arg(1)
    /* address command arg(1) */
