ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/px/SConscript
Revision: 1.24
Committed: Mon Jan 8 13:38:37 2018 UTC (6 years, 4 months ago) by schorsch
Branch: MAIN
CVS Tags: rad5R4, rad5R2, rad5R3, HEAD
Changes since 1.23: +15 -9 lines
Log Message:
Updating to SCons 3.x, adding support for Python 3

File Contents

# User Rev Content
1 schorsch 1.24 from __future__ import division, print_function, unicode_literals
2    
3 schorsch 1.1 import os
4    
5     Import('env') # inherit from parent
6    
7 schorsch 1.7 mlib = ['$RAD_MLIB']
8     progs = []
9 schorsch 1.1
10     # compose paths
11 schorsch 1.7 def radbin(name): return os.path.join('$RAD_BUILDBIN', name)
12     def radlib(name): return os.path.join('$RAD_BUILDLIB', name)
13 schorsch 1.2
14     warp3d = env.Object(source="warp3d.c")
15     clrtab = env.Object(source="clrtab.c")
16     neuclrtab = env.Object(source="neuclrtab.c")
17 schorsch 1.1
18     # standard targets
19     PROGS = (
20 schorsch 1.18 # name files libs
21 schorsch 1.23 ('macbethcal', Split('macbethcal.c pmapgen.c mx3.c')+[warp3d], ['rtrad']),
22     ('pcond', Split('pcond.c pcond2.c pcond3.c pcond4.c')+[warp3d], ['rtrad']),
23     ('pfilt', Split('pfilt.c pf2.c pf3.c'), ['rtrad']),
24     ('pcwarp', ['pcwarp.c', warp3d], ['rtrad']),
25     ('pvalue', ['pvalue.c'], ['rtrad']),
26     ('pcompos', ['pcompos.c'], ['rtrad']),
27     ('psign', ['psign.c'], ['rtrad']),
28     ('protate', ['protate.c'], ['rtrad']),
29     ('pextrem', ['pextrem.c'], ['rtrad']),
30     ('pflip', ['pflip.c'], ['rtrad']),
31     ('pcomb', ['pcomb.c'], ['rtrad']),
32     ('pinterp', ['pinterp.c'], ['rtrad']),
33 schorsch 1.24 ('psketch', ['psketch.c'], ['rtrad']),
34 schorsch 1.23
35     ('ra_gif', ['ra_gif.c', clrtab, neuclrtab], ['rtrad']),
36     ('ra_ps', ['ra_ps.c'], ['rtrad']),
37     ('ra_ppm', ['ra_ppm.c'], ['rtrad']),
38     ('ra_bmp', ['ra_bmp.c'], ['rtrad']),
39     ('ra_t8', ['ra_t8.c', clrtab, neuclrtab], ['rtrad']),
40     ('ra_t16', ['ra_t16.c'], ['rtrad']),
41     ('ra_rgbe', ['ra_rgbe.c'], ['rtrad']),
42     ('ra_pict', ['ra_pict.c'], ['rtrad']),
43     ('ra_hexbit',['ra_hexbit.c'], ['rtrad']),
44     ('ra_xyze', ['ra_xyze.c'], ['rtrad']),
45     ('pmblur2', ['pmblur2.c'], ['rtrad']),
46 schorsch 1.1
47 schorsch 1.23 ('ttyimage', ['ttyimage.c'], ['rtrad']),
48 schorsch 1.1 )
49     for p in PROGS:
50 schorsch 1.2 prog = env.Program(target=radbin(p[0]), source=p[1],
51 schorsch 1.7 LIBS=p[2]+mlib)
52     progs.append(prog)
53 schorsch 1.1
54    
55 schorsch 1.19 # tiff library (building it is unix-specific for the moment)
56     # If we haven't found one supporting LogLuv installed, build our own.
57     libtiff_fn = radlib(env['LIBPREFIX'] + 'tiff' + env['LIBSUFFIX'])
58     if os.name == 'posix' and not env.get('TIFFLIB_INSTALLED'):
59 schorsch 1.1 cwd = os.getcwd()
60 schorsch 1.12 upperdir = os.path.split(cwd)[0]
61 schorsch 1.19 libtiff = env.Command(libtiff_fn, None,
62 schorsch 1.12 [('cd "%(tiffdir)s"; '
63     'env CC="$CC" '
64 schorsch 1.15 './configure -C '
65 schorsch 1.13 '"libdir=%(upperdir)s/lib" '
66 schorsch 1.12 '--enable-static --disable-shared --disable-cxx '
67 schorsch 1.15 '--enable-logluv --disable-jpeg --disable-zlib --disable-pixarlog; '
68 schorsch 1.12 'cd %(portdir)s; make all;'
69 schorsch 1.13 'cd %(libtiffdir)s; make install-exec;' # don't install headers
70     ) % {
71 schorsch 1.12 'upperdir':upperdir,
72     'tiffdir':os.path.join(cwd, 'tiff'),
73     'portdir':os.path.join(cwd, 'tiff', 'port'),
74     'libtiffdir':os.path.join(cwd, 'tiff', 'libtiff')
75     }
76     ])
77    
78 schorsch 1.19 env['TIFFLIB_INSTALLED'] = 1
79    
80     if os.name == 'posix': # cleanup action for a previously built tifflib
81     Clean(libtiff_fn, [libtiff_fn, radlib(env['LIBPREFIX'] + 'tiff.la')])
82    
83     if env.get('TIFFLIB_INSTALLED'):
84 schorsch 1.22 libtiff = env.get('RAD_LIBTIFF')
85 schorsch 1.1 # tiff programs
86 schorsch 1.19 tiffi = env.get('RAD_TIFFINCLUDE')
87     if tiffi: tiffincl = [tiffi] + env.get('CPPPATH', [])
88     else: tiffincl = env.get('CPPPATH', [])
89     tiffl = env.get('RAD_TIFFLIB')
90     if tiffl: tifflib = [tiffl] + env.get('LIBPATH', [])
91     else: tifflib = env.get('LIBPATH', [])
92    
93 schorsch 1.15 ra_tiff = env.Program(target=radbin('ra_tiff'), source=['ra_tiff.c'],
94 schorsch 1.19 CPPPATH = tiffincl, LIBPATH=tifflib,
95 schorsch 1.23 LIBS=[libtiff,'rtrad'] + mlib)
96 schorsch 1.7 progs.append(ra_tiff)
97 schorsch 1.1
98 schorsch 1.15 normtiff = env.Program(target=radbin('normtiff'),source=['normtiff.c'],
99 schorsch 1.19 CPPPATH = tiffincl, LIBPATH=tifflib,
100 schorsch 1.23 LIBS=[libtiff,'rtrad'] + mlib)
101 schorsch 1.7 progs.append(normtiff)
102 schorsch 1.1
103    
104     # X11 targets
105 schorsch 1.2 if env.has_key('X11LIB'):
106 schorsch 1.19 xincl = env.get('CPPPATH', []) + ['$X11INCLUDE']
107     xlibp = env.get('LIBPATH', []) + ['$X11LIB']
108 schorsch 1.23 xlibs = ['X11','rtrad']
109 schorsch 1.24 env.x11findwind = env.Object(source='../common/x11findwind.c',
110 schorsch 1.19 CPPPATH=xincl)
111    
112     ximage = env.Program(target=radbin('ximage'),
113     source=Split('x11image.c x11raster.c')+[clrtab],
114     CPPPATH=xincl, LIBPATH=xlibp, LIBS=xlibs + mlib)
115     progs.append(ximage)
116    
117     xshowtrace = env.Program(target=radbin('xshowtrace'),
118 schorsch 1.24 source=Split('xshowtrace.c') + [env.x11findwind],
119 schorsch 1.19 CPPPATH=xincl, LIBPATH=xlibp, LIBS=xlibs + mlib)
120     progs.append(xshowtrace)
121 schorsch 1.1
122 schorsch 1.24 pyscripts = Split('''falsecolor phisto''')
123 schorsch 1.7 if os.name == 'posix': # XXX ignoring trad.wsh
124 schorsch 1.21 for s in Split('''normpat pdfblur pmblur pmdblur
125 schorsch 1.24 xyzimage pgblur ra_pfm ran2tiff pbilat'''):
126 schorsch 1.20 Default(env.InstallScript(radbin(s), s + '.csh'))
127 schorsch 1.24 for s in pyscripts:
128     Default(env.InstallScript(radbin(s), s + '.py'))
129     else:
130     for s in pyscripts:
131     Default(env.InstallScript(radbin(s + '.py'), s + '.py'))
132    
133    
134 schorsch 1.14 # ignored by Rmakefile: pacuity phisteq psquish pveil vlpic
135 schorsch 1.7
136     Default('#src/px')
137     env.Install('$RAD_BINDIR', progs)
138    
139 schorsch 1.21 # vim: set syntax=python:
140 schorsch 1.24 # vi: set ts=4 sw=4 :