--- ray/src/util/SConscript 2003/10/21 19:27:29 1.1 +++ ray/src/util/SConscript 2016/03/05 13:24:58 1.20 @@ -2,69 +2,105 @@ import os Import('env') # inherit from parent -# make a modified local copy -util = env.Copy(LIBS=['rt'] + env['RAD_MLIB']) +mlib = ['$RAD_MLIB'] +progs = [] # compose paths -def radbin(name): return os.path.join(env['RAD_BUILDBIN'], name) -def radlib(name): return os.path.join(env['RAD_BUILDLIB'], name) +def radbin(name): return os.path.join('$RAD_BUILDBIN', name) +def radlib(name): return os.path.join('$RAD_BUILDLIB', name) +def tclscr(name): return os.path.join('$RAD_BUILDRLIB', 'tcl', name) +cmatrix = env.Object(source='cmatrix.c') +cmbsdf = env.Object(source='cmbsdf.c') + # standard targets PROGS = [ -('findglare', Split('findglare.c glareval.c glaresrc.c setscan.c')), -('glarendx', Split('glarendx.c')), -('vwright', Split('vwright.c')), -('vwrays', Split('vwrays.c')), -('rad', Split('rad.c')), -('rpiece', Split('rpiece.c Version.c')), +('findglare', Split('findglare.c glareval.c glaresrc.c setscan.c'), + ['rtpic','rtargs','rtio','rtproc','rtmath','rtpath','rtmem','rterror']), +('glarendx', Split('glarendx.c'), ['rtpic','rtargs','rtio','rtmath']), +('vwright', Split('vwright.c'), ['rtpic','rtargs','rtio','rtmath']), +('vwrays', Split('vwrays.c'), ['rtpic','rtargs','rtio','rtmath']), +('rad', Split('rad.c'), + ['rtpic','rtproc','rtpath','rtmath','rtargs','rtio','rtcont','rtmem','rterror']), +('rpiece', Split('rpiece.c') + [env.version], # remote magic + ['rtpic','rtargs','rtio','rtproc','rtmath','rtpath','rtmem']), +('ranimate', ['ranimate.c', '$RAD_NETCOMPAT'], + ['rtpic','rtargs','rtio','rtproc','rtcont','rtmem','rtpath','rtmath', + 'rtnet','rterror','$RAD_SOCKETLIB']), +('dctimestep', Split('dctimestep.c')+[cmatrix, cmbsdf], ['rtall']), +('rttree_reduce', Split('rttree_reduce.c'), ['rtall']), +('rcollate', Split('rcollate.c'), ['rtall']), +('eplus_adduvf', Split('eplus_adduvf.c eplus_idf.c'), ['rtall']), +('rfluxmtx', Split('rfluxmtx.c'), ['rtall']), +('rmtxop', Split('rmtxop.c rmatrix.c')+[cmatrix, cmbsdf], ['rtall']), +('wrapBSDF', Split('wrapBSDF.c'), ['rtall']), +('evalglare', Split('evalglare.c pictool.c'), ['rtall', 'reetz']), ] -if os.name != 'nt': # XXX pending Windows version of netproc.c - PROGS.append(('ranimate', Split('ranimate.c netproc.c'))) + for p in PROGS: - prog = util.Program(target=radbin(p[0]), source=p[1]) - Default(prog) - env.Append(RAD_BININSTALL=[util.Install(util['RAD_BINDIR'], prog)]) + prog = env.Program(target=radbin(p[0]), source=p[1], LIBS=p[2]+mlib) + progs.append(prog) -if os.name != 'nt': # XXX pending resolution of free_os() conflict - # targets with different includes/libs - rs = Split('ranimove.c ranimove1.c ranimove2.c') - for l in ['raycalls', 'radiance']: # XXX ugly - rs.append(radlib(util['LIBPREFIX'] + l + util['LIBSUFFIX'])) - ranimove = util.Program(target=radbin('ranimove'), source=rs, - CPPPATH=util.get('CPPPATH', []) + ['#src/rt']) - Default(ranimove) - env.Append(RAD_BININSTALL=[util.Install(util['RAD_BINDIR'], ranimove)]) +# targets with different includes/libs +rs = Split('ranimove.c ranimove1.c ranimove2.c') +ranimove = env.Program(target=radbin('ranimove'), source=rs, + CPPPATH=env.get('CPPPATH', [])+ ['#src/rt'], + LIBS=['raycalls','rttrace','rtscene','rtpic','rtfunc','rtmath', + 'rtnet','rtcont','rtmem','rtargs','rtio','rtproc','rtpath','rterror'] + + mlib) +progs.append(ranimove) +rsensor = env.Program(target=radbin('rsensor'), source='rsensor.c', + CPPPATH=env.get('CPPPATH', [])+ ['#src/rt'], + LIBS=['raycalls','rttrace','rtscene','rtpic','rtfunc','rtmath', + 'rtcont','rtmem','rtargs','rtio','rtpath','rterror','rtproc', + 'rtnet','rtlamps'] + mlib) +progs.append(rsensor) -getinfo = util.Program(target=radbin('getinfo'), source='getinfo.c', - LIBS=['rt']) -Default(getinfo) -env.Append(RAD_BININSTALL=[util.Install(util['RAD_BINDIR'], getinfo)]) +getinfo = env.Program(target=radbin('getinfo'), source='getinfo.c', + LIBS=['rtio']) +progs.append(getinfo) -# special targets not normally built -scanner = util.Program(target=radbin('scanner'), source='scanner.c', LIBS=['m']) -makedist = util.Program(target=radbin('makedist'), - source=Split('makedist.c setscan.c')) -scanner_i = util.Install(util['RAD_BINDIR'], scanner) -makedist_i = util.Install(util['RAD_BINDIR'], makedist) -util.Alias('util_special', [scanner, makedist]) -util.Alias('util_special_install', [scanner_i, makedist_i]) # X11 targets -if util.has_key('X11LIB'): - util.Append(CPPPATH=util['X11INCLUDE']) - util.Append(LIBS='X11') - util.Append(LIBPATH=util['X11LIB']) - xglaresrc = util.Program(target=radbin('xglaresrc'), - source=Split('xglaresrc.c x11findwind.c'),) - Default(xglaresrc) - env.Append(RAD_BININSTALL=[util.Install(util['RAD_BINDIR'], xglaresrc)]) +if env.has_key('X11LIB'): + xincl = env.get('CPPPATH', []) + ['$X11INCLUDE'] + xlibp = env.get('LIBPATH', []) + ['$X11LIB'] + xglaresrc = env.Program(target=radbin('xglaresrc'), + source=Split('xglaresrc.c') + [env.x11findwind], # XXX remote magic + LIBPATH=xlibp, CPPPATH=xincl, + LIBS=['rtpic','rtmath','rtargs','rtio','X11']+ mlib) + progs.append(xglaresrc) - # OpenGL targets that also depend on X11 - if util.has_key('OGL'): - glrad = util.Program(target=radbin('glrad'), source=Split('glrad.c'), - CPPFLAGS=util.get('CPPFLAGS', []) + [util['RAD_STEREO']], - LIBS=['rgl', 'GL', 'GLU']+util['LIBS'],) - Default(glrad) - env.Append(RAD_BININSTALL=[util.Install(util['RAD_BINDIR'], glrad)]) + # OpenGL targets that also depend on X11 + if env.has_key('OGL'): + glrad = env.Program(target=radbin('glrad'), source=Split('glrad.c'), + CPPFLAGS=env.get('CPPFLAGS', []) + ['$RAD_STEREO'], + LIBPATH=xlibp, CPPPATH=xincl, + LIBS=['rgl','rtpic','rtscene','rtproc','rtpath','rtargs','rtio', + 'rtmath','rtcont','rtmem','rterror','rtdummy', + 'GL', 'GLU','X11'] + mlib,) + progs.append(glrad) +if os.name == 'posix': # XXX ignoring trad.wsh + for s in Split('''objline glare dayfact + debugcal rlux raddepend compamb vinfo fieldcomb'''): + Default(env.InstallScript(radbin(s), s + '.csh')) + for s in Split('''objview objpict + genambpos genklemsamp genskyvec genBSDF ltview ltpict'''): + Default(env.InstallScript(radbin(s), s + '.pl')) + for s in Split('''do_action.tcl do_file.tcl do_options.tcl do_results.tcl + do_scene.tcl do_views.tcl do_zone.tcl file.hlp getfile.tcl gethelp.tcl + help.hlp tclIndex trad.hlp trad.icon util.tcl'''): + Default(env.InstallScript(tclscr(s), s)) + Default(env.InstallTCLScript(radbin('trad'), 'trad.wsh')) + +# Those don't really work yet +#else: +# for s in Split('''objview glare rlux '''): +# prog = env.Program(target=radbin(s), source=s+'.c') +# progs.append(prog) +Default('#src/util') +env.Install('$RAD_BINDIR', progs) + +# vim: set syntax=python: