import os

Import('env') # inherit from parent

# math libs
mlib = env['RAD_MLIB']

# standard targets
PROGS = (
# name          sources           libs
('genbeads',    Split('genbeads.c hermite3.c'),  []),
('genbox',      ['genbox.c',],    []),
('genmarble',   ['genmarble.c',], []),
('gensky',      Split('gensky.c sun.c',), []),
('genblinds',   ['genblinds.c',], []),
('genprism',    ['genprism.c',],  []),
('genrev',      ['genrev.c',],    ['rtfunc','rtcont','rtmem','rtio','rterror']),
('gencatenary', ['gencat.c',],    []),
('genworm',     ['genworm.c',],
	['rtfunc','rtmem','rtcont','rtmath','rtio','rterror']),
('gensurf',     ['gensurf.c',],
	['rtfunc','rtmem','rtcont','rtmath','rtio','rterror']),
('genclock',    ['genclock.c',],  []),
('genbranch',   ['genbranch.c',], []),
('replmarks',   ['replmarks.c',],
	['rtproc','rtpath','rtmath','rtio','rterror']),
#('mkillum',     Split('mkillum.c mkillum2.c mkillum3.c'),
#    ['rtproc','rtscene','rtpath','rtmath','rtio','rtcont','rterror']),
#('mksource',    ['mksource.c'],
#	['rtio','rtmath','rterror']),
('xform',       ['xform.c',],
    ['rtproc','rtscene','rtmath','rtargs','rtio','rtcont','rtpath','rterror']),
)
progs = []
for p in PROGS:
    prog = env.Program(target=os.path.join('$RAD_BUILDBIN', p[0]),
            source=p[1], LIBS=p[2] + mlib)
    progs.append(prog)

prog = env.Program(target=os.path.join('$RAD_BUILDBIN', 'mkillum'),
		source=Split('mkillum.c mkillum2.c mkillum3.c'),
		CPPPATH=env.get('CPPPATH', []) + ['#src/rt'],
		LIBS=['raycalls','rttrace','rtscene','rtpic','rtfunc','rtproc',
		'rtpath','rtmath','rtargs','rtio','rtcont','rtmem','rterror']
		+ mlib)
prog = env.Program(target=os.path.join('$RAD_BUILDBIN', 'mksource'),
		source=['mksource.c'],
		CPPPATH=env.get('CPPPATH', []) + ['#src/rt'],
		LIBS=['raycalls','rttrace','rtscene','rtpic','rtfunc','rtproc',
		'rtmath','rtcont','rtmem','rtargs','rtio','rtpath','rterror'] + mlib)
progs.append(prog)

if os.name == 'posix':
	Default(env.InstallCsh(os.path.join('$RAD_BUILDBIN', 'glaze'), 'glaze.csh'))

Default('#src/gen')
env.Install('$RAD_BINDIR', progs)

#surf.cal clockface.hex
LIBFILES = Split('illum.cal rev.cal skybright.cal surf.cal glaze1.cal glaze2.cal clockface.hex')
env.Append(RAD_RLIBINSTALL=env.Install('$RAD_RLIBDIR', LIBFILES))


