ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/px/SConscript
(Generate patch)

Comparing ray/src/px/SConscript (file contents):
Revision 1.1 by schorsch, Tue Oct 21 19:27:29 2003 UTC vs.
Revision 1.19 by schorsch, Tue Dec 23 15:04:00 2008 UTC

# Line 2 | Line 2 | import os
2  
3   Import('env') # inherit from parent
4  
5 < # make a modified local copy
6 < px = env.Copy(LIBS=['rt'] + env['RAD_MLIB'])
5 > mlib = ['$RAD_MLIB']
6 > progs = []
7  
8   # compose paths
9 < def radbin(name): return os.path.join(px['RAD_BUILDBIN'], name)
10 < def radlib(name): return os.path.join(px['RAD_BUILDLIB'], name)
9 > def radbin(name): return os.path.join('$RAD_BUILDBIN', name)
10 > #def radbin(name): return name
11 > def radlib(name): return os.path.join('$RAD_BUILDLIB', name)
12  
13 + warp3d = env.Object(source="warp3d.c")
14 + clrtab = env.Object(source="clrtab.c")
15 + neuclrtab = env.Object(source="neuclrtab.c")
16 +
17   # standard targets
18   PROGS = (
19 < ('macbethcal', Split('macbethcal.c pmapgen.c mx3.c warp3d.c')),
20 < ('pcond',      Split('pcond.c pcond2.c pcond3.c pcond4.c warp3d.c')),
21 < ('pfilt',      Split('pfilt.c pf2.c pf3.c')),
22 < ('pcwarp',     Split('pcwarp.c warp3d.c')),
23 < ('pvalue',     Split('pvalue.c')),
24 < ('pcompos',    Split('pcompos.c')),
25 < ('psign',      Split('psign.c')),
26 < ('protate',    Split('protate.c')),
27 < ('pextrem',    Split('pextrem.c')),
28 < ('pflip',      Split('pflip.c')),
29 < ('pcomb',      Split('pcomb.c')),
30 < ('pinterp',    Split('pinterp.c')),
19 > # name       files            libs
20 > ('macbethcal', Split('macbethcal.c pmapgen.c mx3.c')+[warp3d],
21 >        ['rtpic','rtproc','rtpath','rtargs','rtio','rtcont','rtmem','rterror']),
22 > ('pcond',    Split('pcond.c pcond2.c pcond3.c pcond4.c')+[warp3d],
23 >        ['rtpic','rtproc','rtpath','rtargs','rtio','rtmath','rtcont','rtmem','rterror']),
24 > ('pfilt',    Split('pfilt.c pf2.c pf3.c'),
25 >        ['rtlamps','rtpic','rtpath','rtargs','rtio','rtmath']),
26 > ('pcwarp',   ['pcwarp.c', warp3d],      
27 >        ['rtpic','rtio','rtcont','rtmem','rterror']),
28 > ('pvalue',   ['pvalue.c'],    ['rtpic','rtargs','rtio','rtmath']),
29 > ('pcompos',  ['pcompos.c'],   ['rtpic','rtproc','rtpath','rtio','rterror']),
30 > ('psign',    ['psign.c'],
31 >        ['rtpic','rtscene','rtpath','rtargs','rtio','rtcont','rtmem','rterror']),
32 > ('protate',  ['protate.c'],   ['rtpic','rtio']),
33 > ('pextrem',  ['pextrem.c'],   ['rtpic','rtio']),
34 > ('pflip',    ['pflip.c'],     ['rtpic','rtio']),
35 > ('pcomb',    ['pcomb.c'],
36 >        ['rtpic','rtproc','rtpath','rtfunc','rtargs','rtio','rtmath','rtcont','rtmem']),
37 > ('pinterp',  ['pinterp.c'],
38 >        ['rtproc','rtpic','rtpath','rtargs','rtio','rtmath','rtmem','rterror']),
39  
40 < ('oki20c',     Split('oki20c.c')),
41 < ('oki20',      Split('oki20.c')),
40 > ('ra_gif',   ['ra_gif.c', clrtab, neuclrtab], ['rtpic','rtio','rtmem']),
41 > ('ra_ps',    ['ra_ps.c'],     ['rtpic','rtargs','rtio','rtmem']),
42 > ('ra_ppm',   ['ra_ppm.c'],    ['rtpic','rtio','rtmem']),
43 > ('ra_bmp',   ['ra_bmp.c'],
44 >        ['rtpic','rtproc','rterror','rtpath','rtio','rtmem']),
45 > ('ra_t8',    ['ra_t8.c', clrtab, neuclrtab], ['rtpic','rtio','rtmem']),
46 > ('ra_t16',   ['ra_t16.c'],    ['rtpic','rtio','rtmem']),
47 > ('ra_rgbe', ['ra_rgbe.c'],['rtpic','rtproc','rtpath','rtio','rtmem','rterror']),
48 > ('ra_pict',  ['ra_pict.c'],   ['rtpic','rtio','rtmem']),
49 > ('ra_hexbit',['ra_hexbit.c'], ['rtpic','rtio','rtmem']),
50 > ('ra_xyze',  ['ra_xyze.c'],   ['rtpic','rtio','rtmem']),
51  
52 < ('ra_gif',     Split('ra_gif.c clrtab.c neuclrtab.c')),
31 < ('ra_pr',      Split('ra_pr.c ciq.c cut.c closest.c biq.c')),
32 < ('ra_pr24',    Split('ra_pr24.c')),
33 < ('ra_avs',     Split('ra_avs.c')),
34 < ('ra_ps',      Split('ra_ps.c')),
35 < ('ra_ppm',     Split('ra_ppm.c')),
36 < ('ra_t8',      Split('ra_t8.c clrtab.c neuclrtab.c')),
37 < ('ra_t16',     Split('ra_t16.c')),
38 < ('ra_bn',      Split('ra_bn.c')),
39 < ('ra_rgbe',    Split('ra_rgbe.c')),
40 < ('ra_pict',    Split('ra_pict.c')),
41 < ('ra_hexbit',  Split('ra_hexbit.c')),
42 < ('ra_xyze',    Split('ra_xyze.c')),
43 <
44 < ('ttyimage',   Split('ttyimage.c')),
52 > ('ttyimage', ['ttyimage.c'],  ['rtpic','rtio','rtmem']),
53   )
54   for p in PROGS:
55 <    prog = px.Program(target=radbin(p[0]), source=p[1])
56 <    Default(prog)
57 <    env.Append(RAD_BININSTALL=[px.Install(px['RAD_BINDIR'], prog)])
55 >    prog = env.Program(target=radbin(p[0]), source=p[1],
56 >        LIBS=p[2]+mlib)
57 >    progs.append(prog)
58  
59  
60 < # special targets not normally built
61 < SPECIAL = (
62 < #('psum',       Split('psum.c'), ['rt']),  # (errors)
63 < #('panim',      Split('panim.c'), px['LIBS]+['client','rpcsvc']),
60 > # tiff library (building it is unix-specific for the moment)
61 > #  If we haven't found one supporting LogLuv installed, build our own.
62 > libtiff_fn = radlib(env['LIBPREFIX'] + 'tiff' + env['LIBSUFFIX'])
63 > if os.name == 'posix' and not env.get('TIFFLIB_INSTALLED'):
64 >        cwd = os.getcwd()
65 >        upperdir = os.path.split(cwd)[0]
66 >        libtiff = env.Command(libtiff_fn, None,
67 >        [('cd "%(tiffdir)s"; '
68 >                'env CC="$CC" '
69 >                './configure -C '
70 >                '"libdir=%(upperdir)s/lib" '
71 >                '--enable-static --disable-shared --disable-cxx '
72 >                '--enable-logluv --disable-jpeg --disable-zlib --disable-pixarlog; '
73 >                'cd %(portdir)s; make all;'
74 >                'cd %(libtiffdir)s; make install-exec;' # don't install headers
75 >         ) % {
76 >        'upperdir':upperdir,
77 >        'tiffdir':os.path.join(cwd, 'tiff'),
78 >        'portdir':os.path.join(cwd, 'tiff', 'port'),
79 >        'libtiffdir':os.path.join(cwd, 'tiff', 'libtiff')
80 >        }
81 >        ])
82  
83 < ('ra_im',     Split('ra_im.c')),
83 >        env['TIFFLIB_INSTALLED'] = 1
84  
85 < #('aedimage',   Split('aedimage.c ciq.c cut.c closest.c'), []), # (errors)
86 < ('t4027',      Split('t4027.c'), ['rt']),
61 < ('paintjet',   Split('paintjet.c')),
62 < ('mt160r',     Split('mt160r.c')),
63 < ('greyscale',  Split('greyscale.c')),
64 < ('colorscale', Split('colorscale.c')),
65 < ('d48c',       Split('d48c.c'), ['rt']),   # (warnings)
66 < )
67 < specprogs = []
68 < specinst = []
69 < for p in SPECIAL:
70 <        if len(p) > 2:
71 <                prog = px.Program(target=radbin(p[0]), source=p[1],
72 <                        LIBS=p[2])
73 <        else:
74 <                prog = px.Program(target=radbin(p[0]), source=p[1])
75 <        specprogs.append(prog)
76 <        specinst.append(px.Install(px['RAD_BINDIR'], prog))
77 < px.Alias('px_special', specprogs)
78 < px.Alias('px_special_install', specinst)
85 > if os.name == 'posix': # cleanup action for a previously built tifflib
86 >        Clean(libtiff_fn, [libtiff_fn, radlib(env['LIBPREFIX'] + 'tiff.la')])
87  
88 <
81 < # tiff library (unix-specific for the moment)
82 < if os.name == 'posix':
83 <        cwd = os.getcwd()
84 <        libtiff = px.Command(radlib(px['LIBPREFIX'] + 'tiff' + px['LIBSUFFIX']),
85 <                'tiff/config.local',
86 <        ['cd "%s";'
87 <        'sh ./configure -quiet -noninteractive -with-CC=$CC -with-ENVOPTS=$CCFLAGS;'
88 <        'cd libtiff;'
89 <        'make install;' % os.path.join(cwd, 'tiff')])
90 <
88 > if env.get('TIFFLIB_INSTALLED'):
89          # tiff programs
90 <        ra_tiff = px.Program(target=radbin('ra_tiff'), source=Split('ra_tiff.c'),
91 <                LIBS=['tiff'] + px['LIBS'])
92 <        Default(ra_tiff)
93 <        env.Append(RAD_BININSTALL=[px.Install(px['RAD_BINDIR'], ra_tiff)])
90 >        tiffi = env.get('RAD_TIFFINCLUDE')
91 >        if tiffi: tiffincl = [tiffi] + env.get('CPPPATH', [])
92 >        else: tiffincl = env.get('CPPPATH', [])
93 >        tiffl = env.get('RAD_TIFFLIB')
94 >        if tiffl: tifflib = [tiffl] + env.get('LIBPATH', [])
95 >        else: tifflib = env.get('LIBPATH', [])
96  
97 <        normtiff = px.Program(target=radbin('normtiff'), source=Split('normtiff.c'),
98 <                LIBS=['tiff'] + px['LIBS'])
99 <        Default(normtiff)
100 <        env.Append(RAD_BININSTALL=[px.Install(px['RAD_BINDIR'], normtiff)])
97 >        ra_tiff = env.Program(target=radbin('ra_tiff'), source=['ra_tiff.c'],
98 >                CPPPATH = tiffincl, LIBPATH=tifflib,
99 >                LIBS=['tiff','rtpic','rtio','rtmem'] + mlib)
100 >        progs.append(ra_tiff)
101  
102 +        normtiff = env.Program(target=radbin('normtiff'),source=['normtiff.c'],
103 +                CPPPATH = tiffincl, LIBPATH=tifflib,
104 +                LIBS=['tiff','rtpic','rtio','rtmem'] + mlib)
105 +        progs.append(normtiff)
106  
103 # pixar format requires extra lib
104 if px.has_key('PIXAR_LIB'):
105    ra_pixar = px.Program(radbin('ra_pixar'), source=['ra_pixar.c'],
106                LIBS=['rt', px['PIXAR_LIB']])
107    Default(ra_pixar)
108    env.Append(RAD_BININSTALL=[px.Install(px['RAD_BINDIR'], ra_pixar)])
107  
110
108   # X11 targets
109 < if px.has_key('X11LIB'):
110 <    px.Append(CPPPATH=px['X11INCLUDE'])
111 <    px.Append(LIBS=['X11'])
112 <    px.Append(LIBPATH=px['X11LIB'])
109 > if env.has_key('X11LIB'):
110 >        xincl = env.get('CPPPATH', []) + ['$X11INCLUDE']
111 >        xlibp = env.get('LIBPATH', []) + ['$X11LIB']
112 >        xlibs = ['X11','rtpic','rtargs','rtio','rtmath','rtmem']
113 >        env.x11findwind = env.Object(source='../common/x11findwind.c', # XXX remote magic
114 >                CPPPATH=xincl)
115  
116 <    ximage = px.Program(target=radbin('ximage'),
117 <        source=Split('x11image.c x11raster.c clrtab.c'),)
118 <    Default(ximage)
119 <    env.Append(RAD_BININSTALL=[px.Install(px['RAD_BINDIR'], ximage)])
116 >        ximage = env.Program(target=radbin('ximage'),
117 >                source=Split('x11image.c x11raster.c')+[clrtab],
118 >                CPPPATH=xincl, LIBPATH=xlibp, LIBS=xlibs + mlib)
119 >        progs.append(ximage)
120  
121 <    xshowtrace = px.Program(target=radbin('xshowtrace'),
122 <        source=Split('xshowtrace.c x11findwind.c'),)
123 <    Default(xshowtrace)
124 <    env.Append(RAD_BININSTALL=[px.Install(px['RAD_BINDIR'], xshowtrace)])
121 >        xshowtrace = env.Program(target=radbin('xshowtrace'),
122 >                source=Split('xshowtrace.c') + [env.x11findwind], # XXX remote magic
123 >                CPPPATH=xincl, LIBPATH=xlibp, LIBS=xlibs + mlib)
124 >        progs.append(xshowtrace)
125  
126 < # NeWS ?!?
127 < #    if px.has_key('OGL'):
128 < #        glimage = px.Program(target=radbin('glimage'),
129 < #            CPPFLAGS=px.get('CPPFLAGS', []) + [px['RAD_STEREO']],
130 < #            source=Split('glimage.c'),
131 < #            LIBS=['gl_s']+px['LIBS'],)
132 < #        Default(glimage)
133 < #        env.Append(RAD_BININSTALL=[px.Install(px['RAD_BINDIR'], glimage)])
126 > if os.name == 'posix': # XXX ignoring trad.wsh
127 >        for s in Split('''normpat falsecolor pdfblur pmblur pmdblur pbilat
128 >                        xyzimage phisto pdelta pgblur ra_pfm ran2tiff'''):
129 >                Default(env.InstallCsh(radbin(s), s + '.csh'))
130 > # XXX probably needs fixing
131 > #else:
132 > #       for s in Split('''falsecolor'''):
133 > #               Default(env.InstallCsh(radbin(s), s + '.csh'))
134 > # ignored by Rmakefile: pacuity phisteq psquish pveil vlpic
135  
136 + Default('#src/px')
137 + env.Install('$RAD_BINDIR', progs)
138  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines