--- ray/src/common/SConscript 2003/10/21 19:27:28 1.1 +++ ray/src/common/SConscript 2016/03/10 21:43:22 1.19 @@ -1,45 +1,66 @@ -import os - -Import('env') - -# compose paths -def radlib(name): return os.path.join(env['RAD_BUILDLIB'], name) - -# custom flags -getlibpath = env.StaticObject(source='getlibpath.c', - CPPFLAGS='-DDEFPATH=\\":%s\\"' % env['RAD_RLIBDIR']) -tmapcolrs = env.StaticObject(source='tmapcolrs.c', - CPPFLAGS='-DPCOND=\\"pcond\\"') - -# source and object dependencies -RT = Split('''cone.c face.c free_os.c instance.c readobj.c readoct.c otypes.c - objset.c octree.c readfargs.c modobject.c addobjnotify.c zeroes.c - mesh.c readmesh.c tmesh.c sceneio.c''') + [getlibpath] - -PIC = Split('''color.c header.c image.c lamps.c resolu.c rexpr.c spec_rgb.c - colrops.c font.c tonemap.c tmapluv.c tmaptiff.c tmap16bit.c''' - ) + [tmapcolrs] - -STD = Split('''fgetline.c fropen.c linregr.c xf.c mat4.c invmat4.c fvect.c - urand.c urind.c calexpr.c caldefn.c calfunc.c calprnt.c biggerlib.c - multisamp.c process.c getpath.c error.c savestr.c savqstr.c badarg.c - fgetword.c words.c expandarg.c wordfile.c fgetval.c clip.c plocate.c - eputs.c wputs.c quit.c lookup.c loadvars.c tcos.c fputword.c - chanvalue.c dircode.c paths.c''') + env.get('RAD_PROCESS', []) - -SYS = Split('ealloc.c fdate.c portio.c myhostname.c') - -ALL = RT + PIC + STD + SYS + env['RAD_COMPAT'] - -# build libraries -librt = env.StaticLibrary(target=radlib('rt'), source=ALL) -Default(librt) - -LIBFILES = Split('tmesh.cal') -env.Append(RAD_RLIBINSTALL=env.Install(env['RAD_RLIBDIR'], LIBFILES)) - -if env.has_key('OGL'): - RGL = Split('rglfile.c rglmat.c rgldomat.c rglsurf.c rglinst.c rglsrc.c') - librgl = env.StaticLibrary(target=radlib('rgl'), source=RGL) - Default(librgl) - +import os + +Import('env') + +# compose paths +def radlib(name): return os.path.join(env['RAD_BUILDLIB'], name) + +# custom flags +getlibpath = env.StaticObject(source='getlibpath.c', + CPPFLAGS='-DDEFPATH="\\"%s\\""' % env['RAD_RLIBDIR'].replace('\\','/')) +tmapcolrs = env.StaticObject(source='tmapcolrs.c', + CPPFLAGS='-DPCOND=\\"pcond\\"') +ezxml = env.Object('ezxml.c', + CPPDEFINES=env.get('CPPDEFINES',[]) + env.get('EZXML_CPPDEFINES',[])) + +# source and object dependencies +RTSCENE = Split('''cone.c face.c free_os.c instance.c readobj.c readoct.c + otypes.c objset.c octree.c readfargs.c modobject.c + font.c mesh.c readmesh.c tmesh.c sceneio.c xf.c''') #addobjnotify.c +RTPIC = Split('''color.c colrops.c resolu.c image.c bmpfile.c falsecolor.c + tonemap.c tmapluv.c tmaptiff.c tmap16bit.c''') + [tmapcolrs] +RTERROR = Split('''error.c eputs.c wputs.c quit.c''') +RTCONT = Split('''ezxml lookup.c savestr.c savqstr.c ccolor.c ccyrgb.c + spec_rgb.c bsdf.c bsdf_m.c bsdf_t.c loadbsdf.c + disk2square.c hilbert.c interp2d.c triangulate.c''') +RTMATH = Split('''fvect.c invmat4.c linregr.c mat4.c tcos.c urand.c urind.c + zeroes.c dircode.c clip.c multisamp.c plocate.c byteswap.c''' + ) + env.get('RAD_MATHCOMPAT', []) +RTFUNC = Split('''biggerlib.c caldefn.c calexpr.c calfunc.c calprnt.c + chanvalue.c''') +RTIO = Split('''fdate.c fgetline.c fgetval.c fgetword.c fputword.c loadvars.c + portio.c wordfile.c words.c header.c timegm.c cvtcmd.c''') +RTARGS = Split('''badarg.c expandarg.c''') + env.get('RAD_ARGSCOMPAT', []) +RTPATH = Split('''getpath.c gethomedir.c paths.c''') + [getlibpath] +RTLAMPS = Split('''fropen.c rexpr.c lamps.c''') +RTPROC = Split('''process.c''') + env.get('RAD_PROCESS', []) +RTMEM = Split('ealloc.c bmalloc.c') +RTNET = Split('myhostname.c') +librtrad = env.StaticLibrary(target=radlib('rtrad'), + source=(RTERROR + RTPATH + RTARGS + RTIO + RTMATH + RTCONT + RTMEM + + RTFUNC + RTPROC + RTLAMPS + RTSCENE + RTPIC + RTNET)) + +MGF = Split('''mgf_parser.c mgf_object.c mgf_xf.c mgf_context.c''') +libmgf = env.StaticLibrary(target=radlib('mgf'), source=MGF) + +REETZ = Split('g3affine.c g3flist.c g3sphere.c g3vector.c gbasic.c maxheap.c') +libreetz = env.StaticLibrary(target=radlib('reetz'), source=REETZ) + +# librtdummy is needed, because addobjnotify has different sizes depending +# on the program, and in some cases isn't actually needed at all. +# It should really be a pointer, and its content allocated +# dynamically during program initialization. +RTDUMMY = Split('addobjnotify.c') +rtdummy = env.StaticLibrary(target=radlib('rtdummy'), source=RTDUMMY) + +LIBFILES = Split('tmesh.cal') +env.Append(RAD_RLIBINSTALL=env.Install(env['RAD_RLIBDIR'], LIBFILES)) + +if env.has_key('OGL'): + oglincl = env.get('CPPPATH', []) + env.get('OGLINCLUDE', []) + RGL = Split('rglfile.c rglmat.c rgldomat.c rglsurf.c rglinst.c rglsrc.c') + librgl = env.StaticLibrary(target=radlib('rgl'), source=RGL, + CPPPATH=oglincl) + Default(librgl) + +# vim: set syntax=python: