import os Import ('env') # math libs mlib = env['RAD_MLIB'] # compose paths def rbin(name): return os.path.join(env['RAD_BUILDBIN'], name) MGFPROGS = ( ('3ds2mgf', Split('3ds2mgf.c rayopt3ds.c vect3ds.c')), ) for p in MGFPROGS: prog = env.Program(target=rbin(p[0]), source=p[1], LIBS=mlib+['mgf','rtcont']) Default(prog) env.Append(RAD_BININSTALL=[env.Install(env['RAD_BINDIR'], prog)]) trans = env.Object(source="trans.c") # standard targets PROGS = [ ('ies2rad', ['ies2rad.c'], ['rtlamps','rtcolor','rtio','rtpath']+ mlib), ('arch2rad', ['arch2rad.c',trans],['rtcont','rtmem'] + mlib), ('nff2rad', ['nff2rad.c'], []), ('lampcolor', ['lampcolor.c'], ['rtlamps','rtcolor','rtio','rtpath']), ('tmesh2rad', ['tmesh2rad.c'], ['rtscene','rtmath'] + mlib), ('mgf2inv', ['mgf2inv.c'], ['mgf','rtall'] + mlib), ('obj2rad', ['obj2rad.c',trans], ['rtscene','rtargs','rtio','rtcont','rtmem','rtmath','rterror'] + mlib), ('mgf2rad', ['mgf2rad.c'], ['mgf','rtall'] + mlib), ('mgfilt', ['mgfilt.c'], ['mgf','rtall'] + mlib), ('rad2mgf', ['rad2mgf.c'], ['rtproc', 'rtpath', # for win_popen() 'rtscene','rtio','rtcolor','rtcont','rtmem','rterror'] + mlib), ] for p in PROGS: prog = env.Program(target=rbin(p[0]), source=p[1], LIBS=p[2]) Default(prog) env.Append(RAD_BININSTALL=[env.Install(env['RAD_BINDIR'], prog)]) # meta targets prog = env.Program(target=rbin('mgf2meta'), source=['mgf2meta.c'], CPPPATH=env.get('CPPPATH', []) + [os.path.join('#src','meta')], LIBS=['meta','mgf','rtall'] + mlib) env.Append(RAD_BININSTALL=[env.Install(env['RAD_BINDIR'], prog)]) LIBFILES = Split('source.cal tilt.cal window.cal') env.Append(RAD_RLIBINSTALL=env.Install(env['RAD_RLIBDIR'], LIBFILES)) if os.name == 'posix': for s in Split('''optics2rad'''): Default(env.InstallCsh(rbin(s), s + '.csh'))