ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/px/SConscript
Revision: 1.22
Committed: Thu Mar 10 17:36:18 2016 UTC (8 years, 2 months ago) by schorsch
Branch: MAIN
Changes since 1.21: +3 -2 lines
Log Message:
Tifflib support and sleeker binaries on Windows

File Contents

# Content
1 import os
2
3 Import('env') # inherit from parent
4
5 mlib = ['$RAD_MLIB']
6 progs = []
7
8 # compose paths
9 def radbin(name): return os.path.join('$RAD_BUILDBIN', name)
10 def radlib(name): return os.path.join('$RAD_BUILDLIB', name)
11
12 warp3d = env.Object(source="warp3d.c")
13 clrtab = env.Object(source="clrtab.c")
14 neuclrtab = env.Object(source="neuclrtab.c")
15
16 # standard targets
17 PROGS = (
18 # name files libs
19 ('macbethcal', Split('macbethcal.c pmapgen.c mx3.c')+[warp3d],
20 ['rtpic','rtproc','rtpath','rtargs','rtio','rtcont','rtmem','rterror']),
21 ('pcond', Split('pcond.c pcond2.c pcond3.c pcond4.c')+[warp3d],
22 ['rtpic','rtproc','rtpath','rtargs','rtio','rtmath','rtcont','rtmem','rterror']),
23 ('pfilt', Split('pfilt.c pf2.c pf3.c'),
24 ['rtlamps','rtpic','rtpath','rtargs','rtio','rtmath']),
25 ('pcwarp', ['pcwarp.c', warp3d],
26 ['rtpic','rtio','rtcont','rtmem','rterror']),
27 ('pvalue', ['pvalue.c'], ['rtpic','rtargs','rtio','rtmath']),
28 ('pcompos', ['pcompos.c'], ['rtpic','rtproc','rtpath','rtio','rterror']),
29 ('psign', ['psign.c'],
30 ['rtpic','rtscene','rtpath','rtargs','rtio','rtcont','rtmem','rterror']),
31 ('protate', ['protate.c'], ['rtpic','rtio']),
32 ('pextrem', ['pextrem.c'], ['rtpic','rtio']),
33 ('pflip', ['pflip.c'], ['rtpic','rtio']),
34 ('pcomb', ['pcomb.c'],
35 ['rtpic','rtproc','rtpath','rtfunc','rtargs','rtio','rtmath','rtcont','rtmem']),
36 ('pinterp', ['pinterp.c'],
37 ['rtproc','rtpic','rtpath','rtargs','rtio','rtmath','rtmem','rterror']),
38
39 ('ra_gif', ['ra_gif.c', clrtab, neuclrtab], ['rtpic','rtio','rtmem']),
40 ('ra_ps', ['ra_ps.c'], ['rtpic','rtargs','rtio','rtmem']),
41 ('ra_ppm', ['ra_ppm.c'], ['rtpic','rtio','rtmem']),
42 ('ra_bmp', ['ra_bmp.c'],
43 ['rtpic','rtproc','rterror','rtpath','rtio','rtmem']),
44 ('ra_t8', ['ra_t8.c', clrtab, neuclrtab], ['rtpic','rtio','rtmem']),
45 ('ra_t16', ['ra_t16.c'], ['rtpic','rtio','rtmem']),
46 ('ra_rgbe', ['ra_rgbe.c'],['rtpic','rtproc','rtpath','rtio','rtmem','rterror']),
47 ('ra_pict', ['ra_pict.c'], ['rtpic','rtio','rtmem']),
48 ('ra_hexbit',['ra_hexbit.c'], ['rtpic','rtio','rtmem']),
49 ('ra_xyze', ['ra_xyze.c'], ['rtpic','rtio','rtmem']),
50 ('pmblur2', ['pmblur2.c'], ['rtpic','rtargs','rtio','rtargs','rtmath','rtmem','rtcont','rterror',mlib]),
51
52 ('ttyimage', ['ttyimage.c'], ['rtpic','rtio','rtmem']),
53 )
54 for p in PROGS:
55 prog = env.Program(target=radbin(p[0]), source=p[1],
56 LIBS=p[2]+mlib)
57 progs.append(prog)
58
59
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 env['TIFFLIB_INSTALLED'] = 1
84
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 if env.get('TIFFLIB_INSTALLED'):
89 libtiff = env.get('RAD_LIBTIFF')
90 # tiff programs
91 tiffi = env.get('RAD_TIFFINCLUDE')
92 if tiffi: tiffincl = [tiffi] + env.get('CPPPATH', [])
93 else: tiffincl = env.get('CPPPATH', [])
94 tiffl = env.get('RAD_TIFFLIB')
95 if tiffl: tifflib = [tiffl] + env.get('LIBPATH', [])
96 else: tifflib = env.get('LIBPATH', [])
97
98 ra_tiff = env.Program(target=radbin('ra_tiff'), source=['ra_tiff.c'],
99 CPPPATH = tiffincl, LIBPATH=tifflib,
100 LIBS=[libtiff,'rtpic','rtio','rtmem'] + mlib)
101 progs.append(ra_tiff)
102
103 normtiff = env.Program(target=radbin('normtiff'),source=['normtiff.c'],
104 CPPPATH = tiffincl, LIBPATH=tifflib,
105 LIBS=[libtiff,'rtpic','rtio','rtmem', 'rtproc', 'rtpath', 'rterror'] + mlib)
106 progs.append(normtiff)
107
108
109 # X11 targets
110 if env.has_key('X11LIB'):
111 xincl = env.get('CPPPATH', []) + ['$X11INCLUDE']
112 xlibp = env.get('LIBPATH', []) + ['$X11LIB']
113 xlibs = ['X11','rtpic','rtargs','rtio','rtmath','rtmem']
114 env.x11findwind = env.Object(source='../common/x11findwind.c', # XXX remote magic
115 CPPPATH=xincl)
116
117 ximage = env.Program(target=radbin('ximage'),
118 source=Split('x11image.c x11raster.c')+[clrtab],
119 CPPPATH=xincl, LIBPATH=xlibp, LIBS=xlibs + mlib)
120 progs.append(ximage)
121
122 xshowtrace = env.Program(target=radbin('xshowtrace'),
123 source=Split('xshowtrace.c') + [env.x11findwind], # XXX remote magic
124 CPPPATH=xincl, LIBPATH=xlibp, LIBS=xlibs + mlib)
125 progs.append(xshowtrace)
126
127 if os.name == 'posix': # XXX ignoring trad.wsh
128 for s in Split('''normpat pdfblur pmblur pmdblur
129 xyzimage phisto pdelta pgblur ra_pfm ran2tiff pbilat'''):
130 Default(env.InstallScript(radbin(s), s + '.csh'))
131 for s in Split('''falsecolor'''):
132 Default(env.InstallScript(radbin(s), s + '.pl'))
133 # XXX probably needs fixing
134 #else:
135 # for s in Split('''falsecolor'''):
136 # Default(env.InstallScript(radbin(s), s + '.pl'))
137 # ignored by Rmakefile: pacuity phisteq psquish pveil vlpic
138
139 Default('#src/px')
140 env.Install('$RAD_BINDIR', progs)
141
142 # vim: set syntax=python: