
# Jam replay api usage demo
# (c)2011-2012 Pawel Goralski
# http://nokturnal.pl
# see licence.txt for details


# mandatory configuration stuff 

import sys
import os

env = Environment(tools=['default'])

#output executable name
OUTPUT_EXE='jam_rep.tos'
OUTPUT_DIR='../build/'
DATA_DIR='../DATA/'

INSTALL_DIR='./'

env["CC"] = 'm68k-atari-mint-gcc'
env["CXX"] = 'm68k-atari-mint-g++'
env["AS"] = 'vasmm68k_mot'
env['AR'] = 'm68k-atari-mint-ar'
env['OBJCOPY'] = 'm68k-atari-mint-objcopy'
env['STRIP'] = 'm68k-atari-mint-strip -s'
env['STACK'] = 'm68k-atari-mint-stack'

env["CPPPATH"] = ["/usr/m68k-atari-mint/include", "./"]
env["LIBPATH"] = '/usr/m68k-atari-mint/lib'

env["CDEFINES"] = 'TOS'
env["CXXDEFINES"] = 'TOSCPP'

# VASM settings
env['VASM'] = 'vasmm68k_mot'

################## ST program flags
ST_CFLAGS=' -std=c99 -fomit-frame-pointer -m68000'
ST_LDFLAGS='-m68000 -Wl,--traditional-format -nostdlib -fomit-frame-pointer'
ST_VASM_FLAGS = '-Faout -quiet -m68000 -spaces -showopt -no-opt -I./startup/'

env["CCFLAGS"] = ''
env["CFLAGS"] = ST_CFLAGS  # c only options 
env["LINKFLAGS"] = ST_LDFLAGS
env["ASFLAGS"] = ST_VASM_FLAGS
env['VASM_FLAGS'] = ST_VASM_FLAGS

# startup
startup_src = ["./startup/mStartupAsmC.s","./startup/mStartup.c","./startup/stdlib.s"]

# core functions memory, machine detection
core_src = ["./core/memory.c","./core/machine.c","./core/reloc.s"]

# disc input/output
discio_src = ["./disc_io/gdos_err.c","./disc_io/disc_io.c"]

# jam replay
jam_src = ["./jam/jam.c","./jam/jam_m68k.s"]

core_src = ["./init.s"] + core_src + discio_src  + jam_src

main_program_src = ["./main.c"]

env.Program(target = OUTPUT_EXE, source = startup_src + main_program_src + core_src)

source ="%s%s" % (OUTPUT_DIR, OUTPUT_EXE)
target="%s%s" % (INSTALL_DIR, OUTPUT_EXE)

env.Alias("install", target)

# copy main binary
source ="%s%s" % (DATA_DIR, "*")
target = INSTALL_DIR



