import os Import('env') # inherit from parent mlib = ['$RAD_MLIB'] progs = [] # compose paths def radbin(name): return os.path.join('$RAD_BUILDBIN', name) def radlib(name): return os.path.join('$RAD_BUILDLIB', name) Version = env.Object(source='#src/rt/Version.c') # standard targets PROGS = [ ('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') + [Version], ['rtpic','rtargs','rtio','rtproc','rtmath','rtpath','rtmem']), ('ranimate', ['ranimate.c', '$RAD_NETCOMPAT'], ['rtpic','rtargs','rtio','rtproc','rtcont','rtmem','rtpath','rtmath', 'rtnet','rterror','$RAD_SOCKETLIB']), ('rtcontrib', ['rtcontrib.c', Version], ['rtpic','rtargs','rtfunc','rtio','rtproc','rtcont','rtmem','rtpath', 'rtmath','rtnet','rterror','$RAD_SOCKETLIB']), ('dctimestep', ['dctimestep.c'], ['rtio','rtmath']) ] for p in PROGS: prog = env.Program(target=radbin(p[0]), source=p[1], LIBS=p[2]+mlib) progs.append(prog) #if os.name != 'nt': # XXX pending Windows version of raypcalls.c if True: # experimental raypwin.c # 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', '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', 'rtlamps'] + mlib) progs.append(rsensor) getinfo = env.Program(target=radbin('getinfo'), source='getinfo.c', LIBS=['rtio']) progs.append(getinfo) # X11 targets 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 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'],) progs.append(glrad) if os.name == 'posix': # XXX ignoring trad.wsh for s in Split('''objview objline objpict glare dayfact debugcal rlux raddepend compamb vinfo genambpos fieldcomb'''): Default(env.InstallCsh(radbin(s), s + '.csh')) # 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)