]>
git.saurik.com Git - wxWidgets.git/blob - src/tiff/SConstruct
1 # $Id: SConstruct,v 1.2 2006/03/23 14:54:00 dron Exp $
3 # Tag Image File Format (TIFF) Software
5 # Copyright (C) 2005, Andrey Kiselev <dron@ak4719.spb.edu>
7 # Permission to use, copy, modify, distribute, and sell this software and
8 # its documentation for any purpose is hereby granted without fee, provided
9 # that (i) the above copyright notices and this permission notice appear in
10 # all copies of the software and related documentation, and (ii) the names of
11 # Sam Leffler and Silicon Graphics may not be used in any advertising or
12 # publicity relating to the software without the specific, prior written
13 # permission of Sam Leffler and Silicon Graphics.
15 # THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
16 # EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
17 # WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
19 # IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
20 # ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
21 # OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
22 # WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
23 # LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
26 # This file contains rules to build software with the SCons tool
27 # (see the http://www.scons.org/ for details on SCons).
33 # Read the user supplied options
34 opts
= Options ( 'libtiff.conf' )
35 opts
. Add ( PathOption ( 'PREFIX' , \
36 'install architecture-independent files in this directory' , \
37 '/usr/local' , PathOption
. PathIsDirCreate
))
38 opts
. Add ( BoolOption ( 'ccitt' , \
39 'enable support for CCITT Group 3 & 4 algorithms' , \
41 opts
. Add ( BoolOption ( 'packbits' , \
42 'enable support for Macintosh PackBits algorithm' , \
44 opts
. Add ( BoolOption ( 'lzw' , \
45 'enable support for LZW algorithm' , \
47 opts
. Add ( BoolOption ( 'thunder' , \
48 'enable support for ThunderScan 4-bit RLE algorithm' , \
50 opts
. Add ( BoolOption ( 'next' , \
51 'enable support for NeXT 2-bit RLE algorithm' , \
53 opts
. Add ( BoolOption ( 'logluv' , \
54 'enable support for LogLuv high dynamic range encoding' , \
56 opts
. Add ( BoolOption ( 'strip_chopping' , \
57 'support for strip chopping (whether or not to convert single-strip uncompressed images to mutiple strips of ~8Kb to reduce memory usage)' , \
59 opts
. Add ( BoolOption ( 'extrasample_as_alpha' , \
60 'the RGBA interface will treat a fourth sample with no EXTRASAMPLE_ value as being ASSOCALPHA. Many packages produce RGBA files but don \' t mark the alpha properly' , \
62 opts
. Add ( BoolOption ( 'check_ycbcr_subsampling' , \
63 'disable picking up YCbCr subsampling info from the JPEG data stream to support files lacking the tag' , \
66 opts
. Save ( 'libtiff.conf' , env
)
67 Help ( opts
. GenerateHelpText ( env
))
69 # Here are our installation paths:
70 idir_prefix
= '$PREFIX'
71 idir_lib
= '$PREFIX/lib'
72 idir_bin
= '$PREFIX/bin'
73 idir_inc
= '$PREFIX/include'
74 idir_doc
= '$PREFIX/doc'
75 Export ([ 'env' , 'idir_prefix' , 'idir_lib' , 'idir_bin' , 'idir_inc' , 'idir_doc' ])
77 # Now proceed to system feature checks
78 target_cpu
, target_vendor
, target_kernel
, target_os
= \
79 os
. popen ( "./config.guess" ). readlines ()[ 0 ]. split ( "-" )
81 def Define ( context
, key
, have
):
83 SCons
. Conftest
._ Have
( context
, key
, have
)
85 def CheckCustomOption ( context
, name
):
86 context
. Message ( 'Checking is the ' + name
+ ' option set... ' )
88 Define ( context
, name
+ '_SUPPORT' , ret
)
92 def CheckFillorderOption ( context
):
93 context
. Message ( 'Checking for the native cpu bit order... ' )
94 if target_cpu
[ 0 ] == 'i' and target_cpu
[ 2 :] == '86' :
95 Define ( context
, 'HOST_FILLORDER' , 'FILLORDER_LSB2MSB' )
96 context
. Result ( 'lsb2msb' )
98 Define ( context
, 'HOST_FILLORDER' , 'FILLORDER_MSB2LSB' )
99 context
. Result ( 'msb2lsb' )
102 def CheckIEEEFPOption ( context
):
103 context
. Message ( 'Checking for the IEEE floating point format... ' )
104 Define ( context
, 'HAVE_IEEEFP' , 1 )
108 def CheckOtherOption ( context
, name
):
109 context
. Message ( 'Checking is the ' + name
+ ' option set... ' )
111 Define ( context
, 'HAVE_' + name
, ret
)
116 'CheckCustomOption' : CheckCustomOption
, \
117 'CheckFillorderOption' : CheckFillorderOption
, \
118 'CheckIEEEFPOption' : CheckIEEEFPOption
, \
119 'CheckOtherOption' : CheckOtherOption \
121 conf
= Configure ( env
, custom_tests
= custom_tests
, \
122 config_h
= 'libtiff/tif_config.h' )
124 # Check for standard library
126 if target_os
!= 'cygwin' \
127 and target_os
!= 'mingw32' \
128 and target_os
!= 'beos' \
129 and target_os
!= 'darwin' :
132 # Check for system headers
133 conf
. CheckCHeader ( 'assert.h' )
134 conf
. CheckCHeader ( 'fcntl.h' )
135 conf
. CheckCHeader ( 'limits.h' )
136 conf
. CheckCHeader ( 'malloc.h' )
137 conf
. CheckCHeader ( 'search.h' )
138 conf
. CheckCHeader ( 'sys/time.h' )
139 conf
. CheckCHeader ( 'unistd.h' )
141 # Check for standard library functions
142 conf
. CheckFunc ( 'floor' )
143 conf
. CheckFunc ( 'isascii' )
144 conf
. CheckFunc ( 'memmove' )
145 conf
. CheckFunc ( 'memset' )
146 conf
. CheckFunc ( 'mmap' )
147 conf
. CheckFunc ( 'pow' )
148 conf
. CheckFunc ( 'sqrt' )
149 conf
. CheckFunc ( 'strchr' )
150 conf
. CheckFunc ( 'strrchr' )
151 conf
. CheckFunc ( 'strstr' )
152 conf
. CheckFunc ( 'strtol' )
154 conf
. CheckFillorderOption ()
155 conf
. CheckIEEEFPOption ()
156 conf
. CheckCustomOption ( 'ccitt' )
157 conf
. CheckCustomOption ( 'packbits' )
158 conf
. CheckCustomOption ( 'lzw' )
159 conf
. CheckCustomOption ( 'thunder' )
160 conf
. CheckCustomOption ( 'next' )
161 conf
. CheckCustomOption ( 'logluv' )
162 conf
. CheckOtherOption ( 'strip_chopping' )
163 conf
. CheckOtherOption ( 'extrasample_as_alpha' )
164 conf
. CheckOtherOption ( 'check_ycbcr_subsampling' )
168 # Ok, now go to build files in the subdirectories
169 SConscript ( dirs
= [ 'libtiff' ], name
= 'SConstruct' )