summaryrefslogtreecommitdiff
path: root/scons
diff options
context:
space:
mode:
authorBrian Paul <brianp@vmware.com>2009-06-26 17:07:07 -0600
committerBrian Paul <brianp@vmware.com>2009-06-26 17:07:07 -0600
commita18e209edb5348eb167e9d7184597031bbbbe622 (patch)
tree60fcd288119f335cccdc2f15981c9b315d332e64 /scons
parent4fdc6ad41b843109febbe9596dde87f676a8b0e9 (diff)
parent418987ff05f892d3c33ed4ddbe856c496b05ea14 (diff)
Merge branch 'mesa_7_5_branch'
Conflicts: Makefile src/gallium/drivers/softpipe/sp_screen.c src/mesa/main/version.h
Diffstat (limited to 'scons')
-rw-r--r--scons/dxsdk.py66
-rw-r--r--scons/gallium.py45
-rw-r--r--scons/generic.py8
3 files changed, 96 insertions, 23 deletions
diff --git a/scons/dxsdk.py b/scons/dxsdk.py
new file mode 100644
index 0000000000..a369e1da10
--- /dev/null
+++ b/scons/dxsdk.py
@@ -0,0 +1,66 @@
+"""dxsdk
+
+Tool-specific initialization for Microsoft DirectX SDK
+
+"""
+
+#
+# Copyright (c) 2009 VMware, Inc.
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+import os
+import os.path
+
+import SCons.Errors
+import SCons.Util
+
+
+def get_dxsdk_root(env):
+ try:
+ return os.environ['DXSDK_DIR']
+ except KeyError:
+ return None
+
+def get_dxsdk_paths(env):
+ dxsdk_root = get_dxsdk_root(env)
+ if dxsdk_root is None:
+ raise SCons.Errors.InternalError, "DirectX SDK not found"
+
+ if env['machine'] in ('generic', 'x86'):
+ target_cpu = 'x86'
+ elif env['machine'] == 'x86_64':
+ target_cpu = 'x64'
+ else:
+ raise SCons.Errors.InternalError, "Unsupported target machine"
+ include_dir = 'Include'
+
+ env.Append(CPPDEFINES = [('HAVE_DXSDK', '1')])
+ env.Prepend(CPPPATH = [os.path.join(dxsdk_root, 'Include')])
+ env.Prepend(LIBPATH = [os.path.join(dxsdk_root, 'Lib', target_cpu)])
+
+def generate(env):
+ get_dxsdk_paths(env)
+
+def exists(env):
+ return get_dxsdk_root(env) is not None
+
+# vim:set ts=4 sw=4 et:
diff --git a/scons/gallium.py b/scons/gallium.py
index 6e924da303..aed813f027 100644
--- a/scons/gallium.py
+++ b/scons/gallium.py
@@ -319,74 +319,78 @@ def generate(env):
env.Append(CPPDEFINES = cppdefines)
# C compiler options
- cflags = []
+ cflags = [] # C
+ cxxflags = [] # C++
+ ccflags = [] # C & C++
if gcc:
if debug:
- cflags += ['-O0', '-g3']
+ ccflags += ['-O0', '-g3']
elif env['toolchain'] == 'crossmingw':
- cflags += ['-O0', '-g3'] # mingw 4.2.1 optimizer is broken
+ ccflags += ['-O0', '-g3'] # mingw 4.2.1 optimizer is broken
else:
- cflags += ['-O3', '-g3']
+ ccflags += ['-O3', '-g3']
if env['profile']:
- cflags += ['-pg']
+ ccflags += ['-pg']
if env['machine'] == 'x86':
- cflags += [
+ ccflags += [
'-m32',
#'-march=pentium4',
'-mmmx', '-msse', '-msse2', # enable SIMD intrinsics
#'-mfpmath=sse',
]
if env['machine'] == 'x86_64':
- cflags += ['-m64']
+ ccflags += ['-m64']
# See also:
# - http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
- cflags += [
- '-Werror=declaration-after-statement',
+ ccflags += [
'-Wall',
- '-Wmissing-prototypes',
'-Wmissing-field-initializers',
'-Wpointer-arith',
'-Wno-long-long',
'-ffast-math',
- '-std=gnu99',
'-fmessage-length=0', # be nice to Eclipse
]
+ cflags += [
+ '-Werror=declaration-after-statement',
+ '-Wmissing-prototypes',
+ '-std=gnu99',
+ ]
if msvc:
# See also:
# - http://msdn.microsoft.com/en-us/library/19z1t1wy.aspx
# - cl /?
if debug:
- cflags += [
+ ccflags += [
'/Od', # disable optimizations
'/Oi', # enable intrinsic functions
'/Oy-', # disable frame pointer omission
'/GL-', # disable whole program optimization
]
else:
- cflags += [
+ ccflags += [
'/O2', # optimize for speed
#'/fp:fast', # fast floating point
]
if env['profile']:
- cflags += [
+ ccflags += [
'/Gh', # enable _penter hook function
'/GH', # enable _pexit hook function
]
- cflags += [
+ ccflags += [
'/W3', # warning level
#'/Wp64', # enable 64 bit porting warnings
]
if env['machine'] == 'x86':
- cflags += [
+ ccflags += [
#'/QIfist', # Suppress _ftol
#'/arch:SSE2', # use the SSE2 instructions
]
if platform == 'windows':
- cflags += [
+ ccflags += [
# TODO
]
if platform == 'winddk':
- cflags += [
+ ccflags += [
'/Zl', # omit default library name in .OBJ
'/Zp8', # 8bytes struct member alignment
'/Gy', # separate functions for linker
@@ -405,7 +409,7 @@ def generate(env):
]
if platform == 'wince':
# See also C:\WINCE600\public\common\oak\misc\makefile.def
- cflags += [
+ ccflags += [
'/Zl', # omit default library name in .OBJ
'/GF', # enable read-only string pooling
'/GR-', # disable C++ RTTI
@@ -422,8 +426,9 @@ def generate(env):
# See http://scons.tigris.org/issues/show_bug.cgi?id=1656
env.EnsureSConsVersion(0, 98, 0)
env['PDB'] = '${TARGET.base}.pdb'
+ env.Append(CCFLAGS = ccflags)
env.Append(CFLAGS = cflags)
- env.Append(CXXFLAGS = cflags)
+ env.Append(CXXFLAGS = cxxflags)
if env['platform'] == 'windows' and msvc:
# Choose the appropriate MSVC CRT
diff --git a/scons/generic.py b/scons/generic.py
index 29ddf76d6f..a9c2244a74 100644
--- a/scons/generic.py
+++ b/scons/generic.py
@@ -416,16 +416,18 @@ def generate(env):
# See also:
# - http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
ccflags += [
- '-Werror=declaration-after-statement',
'-Wall',
- '-Wmissing-prototypes',
'-Wmissing-field-initializers',
'-Wpointer-arith',
'-Wno-long-long',
'-ffast-math',
- '-std=gnu99',
'-fmessage-length=0', # be nice to Eclipse
]
+ cflags += [
+ '-Werror=declaration-after-statement',
+ '-Wmissing-prototypes',
+ '-std=gnu99',
+ ]
if msvc:
# See also:
# - http://msdn.microsoft.com/en-us/library/19z1t1wy.aspx