Mesa (gallium-0.1): scons: Don't use C specific options with g++

Jose Fonseca jrfonseca at kemper.freedesktop.org
Tue Sep 1 09:57:10 UTC 2009


Module: Mesa
Branch: gallium-0.1
Commit: 47e0e37552d1f65c78f8526de932117c40200b2e
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=47e0e37552d1f65c78f8526de932117c40200b2e

Author: José Fonseca <jfonseca at vmware.com>
Date:   Fri Jun 26 19:50:12 2009 +0100

scons: Don't use C specific options with g++

---

 scons/gallium.py |   54 ++++++++++++++++++++++++++++++------------------------
 scons/generic.py |   47 ++++++++++++++++++++++++++++-------------------
 2 files changed, 58 insertions(+), 43 deletions(-)

diff --git a/scons/gallium.py b/scons/gallium.py
index 3f97bf9..37c335d 100644
--- a/scons/gallium.py
+++ b/scons/gallium.py
@@ -317,71 +317,76 @@ 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']
         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']
-        cflags += [
+            ccflags += ['-m64']
+        # See also:
+        # - http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
+        ccflags += [
             '-Wall',
-            '-Wmissing-prototypes',
+            '-Wmissing-field-initializers',
+            '-Wpointer-arith',
             '-Wno-long-long',
-            '-Wdeclaration-after-statement',
             '-ffast-math',
-            '-std=c99',
-            '-pedantic',
             '-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 += [
-              '/Ox', # maximum optimizations
-              '/Oi', # enable intrinsic functions
-              '/Ot', # favor code speed
-              #'/fp:fast', # fast floating point 
+            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
@@ -400,7 +405,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
@@ -417,8 +422,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 dcd01d3..e4caa01 100644
--- a/scons/generic.py
+++ b/scons/generic.py
@@ -388,70 +388,78 @@ def generate(env):
         ])
 
     # C compiler options
-    cflags = []
+    cflags = [] # C
+    cxxflags = [] # C++
+    ccflags = [] # C & C++
     if gcc:
         if debug:
-            cflags += ['-O0', '-g3']
+            ccflags += ['-O0', '-g3']
         else:
-            cflags += ['-O3', '-g0']
+            ccflags += ['-O3', '-g0']
         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']
-        cflags += [
+            ccflags += ['-m64']
+        # See also:
+        # - http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
+        ccflags += [
             '-Wall',
-            '-Wmissing-prototypes',
+            '-Wmissing-field-initializers',
+            '-Wpointer-arith',
             '-Wno-long-long',
-            '-Wdeclaration-after-statement',
             '-ffast-math',
-            '-pedantic',
             '-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 += [
               '/Ox', # maximum optimizations
               '/Oi', # enable intrinsic functions
               '/Ot', # favor code 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
@@ -470,7 +478,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
@@ -487,8 +495,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




More information about the mesa-commit mailing list