import os Import('env') # inherit from parent mlib = env['RAD_MLIB'] # compose paths def radbin(name): return os.path.join(env['RAD_BUILDBIN'], name) def radlib(name): return os.path.join(env['RAD_BUILDLIB'], name) warp3d = env.Object(source="warp3d.c") clrtab = env.Object(source="clrtab.c") neuclrtab = env.Object(source="neuclrtab.c") ciq = env.Object(source="ciq.c") cut = env.Object(source="cut.c") closest = env.Object(source="closest.c") # standard targets PROGS = ( # name files libs ('macbethcal', Split('macbethcal.c pmapgen.c mx3.c')+[warp3d], ['rtpic','rtproc','rtpath','rtio','rtargs','rtcont','rtmem','rterror']), ('pcond', Split('pcond.c pcond2.c pcond3.c pcond4.c')+[warp3d], ['rtpic','rtproc','rtpath','rtio','rtargs','rtmath','rtcont','rtmem','rterror']), ('pfilt', Split('pfilt.c pf2.c pf3.c'), ['rtlamps','rtpic','rtio','rtpath','rtargs','rtmath']), ('pcwarp', ['pcwarp.c', warp3d], ['rtpic','rtio','rtcont','rtmem','rterror']), ('pvalue', ['pvalue.c'], ['rtpic','rtio','rtargs','rtmath']), ('pcompos', ['pcompos.c'], ['rtpic','rtproc','rtpath','rtio','rterror']), ('psign', ['psign.c'], ['rtpic','rtscene','rtio','rtpath','rtargs','rtcont','rtmem','rterror']), ('protate', ['protate.c'], ['rtpic','rtio']), ('pextrem', ['pextrem.c'], ['rtpic','rtio']), ('pflip', ['pflip.c'], ['rtpic','rtio']), ('pcomb', ['pcomb.c'], ['rtpic','rtproc','rtpath','rtio','rtfunc','rtargs','rtmath','rtcont','rtmem']), ('pinterp', ['pinterp.c'], ['rtproc','rtpic','rtio','rtpath','rtargs','rtmath','rtmem','rterror']), ('oki20c', ['oki20c.c'],['rtpic','rtproc','rtpath','rtio','rtmem','rterror']), ('oki20', ['oki20.c'], ['rtpic','rtproc','rtpath','rtio','rtmem','rterror']), ('ra_gif', ['ra_gif.c', clrtab, neuclrtab], ['rtpic','rtio','rtmem']), ('ra_pr', Split('ra_pr.c biq.c')+ [ciq, cut, closest], ['rtpic','rtio','rtmem']), ('ra_pr24', ['ra_pr24.c'], ['rtpic','rtio','rtmem']), ('ra_avs', ['ra_avs.c'], ['rtpic','rtio','rtmem']), ('ra_ps', ['ra_ps.c'], ['rtpic','rtio','rtargs','rtmem']), ('ra_ppm', ['ra_ppm.c'], ['rtpic','rtio','rtmem']), ('ra_bmp', ['ra_bmp.c'], ['rtpic','rtio','rtmem']), ('ra_t8', ['ra_t8.c', clrtab, neuclrtab], ['rtpic','rtio','rtmem']), ('ra_t16', ['ra_t16.c'], ['rtpic','rtio','rtmem']), ('ra_bn', ['ra_bn.c'], ['rtpic','rtio','rtmem']), ('ra_rgbe', ['ra_rgbe.c'],['rtpic','rtproc','rtpath','rtio','rtmem','rterror']), ('ra_pict', ['ra_pict.c'], ['rtpic','rtio','rtmem']), ('ra_hexbit',['ra_hexbit.c'], ['rtpic','rtio','rtmem']), ('ra_xyze', ['ra_xyze.c'], ['rtpic','rtio','rtmem']), ('ttyimage', ['ttyimage.c'], ['rtpic','rtio','rtmem']), ) for p in PROGS: prog = env.Program(target=radbin(p[0]), source=p[1], LIBS=p[2]+mlib) Default(prog) env.Append(RAD_BININSTALL=[env.Install(env['RAD_BINDIR'], prog)]) # special targets not normally built SPECIAL = ( # name files libs ('psum', ['psum.c'], ['rtpic','rtio']), #('panim', ['panim.c'], ['client','rpcsvc']),# missing externals ('ra_im', ['ra_im.c'], ['rtproc','rtpath','rtio','rterror']), #('aedimage', Split('aedimage.c')+[ciq, cut, closest],[]),# missing externals ('t4027', ['t4027.c'], ['rtpic']), ('paintjet', ['paintjet.c'], ['rtpic','rtio','rtmem']), ('mt160r', ['mt160r.c'], ['rtpic','rtio','rtmem']), ('greyscale', ['greyscale.c'], ['rtpic']), ('colorscale', ['colorscale.c'], ['rtpic']), ('d48c', ['d48c.c'], ['rtpic']), ) specprogs = [] specinst = [] for p in SPECIAL: prog = env.Program(target=radbin(p[0]), source=p[1], LIBS=p[2]+mlib) specprogs.append(prog) specinst.append(env.Install(env['RAD_BINDIR'], prog)) env.Alias('px_special', specprogs) env.Alias('px_special_install', specinst) # tiff library (unix-specific for the moment) if os.name == 'posix': cwd = os.getcwd() libtiff = env.Command(radlib(env['LIBPREFIX'] + 'tiff' + env['LIBSUFFIX']), 'tiff/config.local', [('cd "%s"; ' 'sh ./configure -quiet -noninteractive ' '-with-CC="$CC" -with-ENVOPTS="$CCFLAGS"; ' 'cd libtiff; ' 'make install;') % os.path.join(cwd, 'tiff')]) # tiff programs ra_tiff = env.Program(target=radbin('ra_tiff'), source=Split('ra_tiff.c'), LIBS=['tiff','rtpic','rtio','rtmem'] + mlib) Default(ra_tiff) env.Append(RAD_BININSTALL=[env.Install(env['RAD_BINDIR'], ra_tiff)]) normtiff = env.Program(target=radbin('normtiff'), source=Split('normtiff.c'), LIBS=['tiff','rtpic','rtio','rtmem'] + mlib) Default(normtiff) env.Append(RAD_BININSTALL=[env.Install(env['RAD_BINDIR'], normtiff)]) # pixar format requires extra lib if env.has_key('PIXAR_LIB'): ra_pixar = env.Program(radbin('ra_pixar'), source=['ra_pixar.c'], LIBS=['rtpic', env['PIXAR_LIB']]) Default(ra_pixar) env.Append(RAD_BININSTALL=[env.Install(env['RAD_BINDIR'], ra_pixar)]) # X11 targets if env.has_key('X11LIB'): xcppp = env.get('CPPPATH',[]) + [env['X11INCLUDE']] xlibp = env.get('LIBPATH',[]) + [env['X11LIB']] xlibs = ['X11','rtpic','rtio','rtmath','rtargs','rtmem'] ximage = env.Program(target=radbin('ximage'), source=Split('x11image.c x11raster.c')+[clrtab], CPPPATH=xcppp, LIBPATH=xlibp, LIBS=xlibs + mlib) Default(ximage) env.Append(RAD_BININSTALL=[env.Install(env['RAD_BINDIR'], ximage)]) xshowtrace = env.Program(target=radbin('xshowtrace'), source=Split('xshowtrace.c x11findwind.c'), CPPPATH=xcppp, LIBPATH=xlibp, LIBS=xlibs + mlib) Default(xshowtrace) env.Append(RAD_BININSTALL=[env.Install(env['RAD_BINDIR'], xshowtrace)]) # NeWS ?!? # if env.has_key('OGL'): # glimage = env.Program(target=radbin('glimage'), # CPPFLAGS=env.get('CPPFLAGS', []) + [env['RAD_STEREO']], # source=Split('glimage.c'), # LIBS=['gl_s']+env['LIBS'],) # Default(glimage) # env.Append(RAD_BININSTALL=[env.Install(env['RAD_BINDIR'], glimage)])