from __future__ import division, print_function, unicode_literals

import os

Import('env') # inherit from parent

# math libs
mlib = env['RAD_MLIB']

#Make sure sun.c is compiled only once
sun = env.Object(source="sun.c")

# standard targets
PROGS = (
# name          sources           libs
('gendaylit',   Split('gendaylit.c',)+[sun], ['rtrad']),
('gendaymtx',   Split('gendaymtx.c',)+[sun], ['rtrad',mlib]),
('genbeads',    Split('genbeads.c hermite3.c'),  []),
('genbox',      ['genbox.c',],    []),
('genmarble',   ['genmarble.c',], []),
('gensky',      Split('gensky.c',)+[sun], []),
('genblinds',   ['genblinds.c',], []),
('genprism',    ['genprism.c',],  []),
('genrev',      ['genrev.c',],    ['rtrad',]),
('gencatenary', ['gencat.c',],    []),
('genworm',     ['genworm.c',],   ['rtrad']),
('gensurf',     ['gensurf.c',],   ['rtrad']),
('genclock',    ['genclock.c',],  []),
('genbranch',   ['genbranch.c',], []),
('replmarks',   ['replmarks.c',], ['rtrad']),
('xform',       ['xform.c',],     ['rtrad']),
)
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','rtrad'] + mlib)
progs.append(prog)
prog = env.Program(target=os.path.join('$RAD_BUILDBIN', 'mksource'),
		source=['mksource.c'],
		CPPPATH=env.get('CPPPATH', []) + ['#src/rt'],
		LIBS=['raycalls','rttrace','rtrad'] + mlib)
progs.append(prog)

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

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

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

# vim: set syntax=python:
# vi: set ts=4 sw=4 :
