OSDN Git Service

Merge commit 'origin/gallium-0.2' into gallium-0.2
[android-x86/external-mesa.git] / scons / gallium.py
index 65dd0ab..fc1ed08 100644 (file)
@@ -163,6 +163,25 @@ def createInstallMethods(env):
     env.AddMethod(install_shared_library, 'InstallSharedLibrary')
 
 
+def num_jobs():
+    try:
+        return int(os.environ['NUMBER_OF_PROCESSORS'])
+    except (ValueError, KeyError):
+        pass
+
+    try:
+        return os.sysconf('SC_NPROCESSORS_ONLN')
+    except (ValueError, OSError, AttributeError):
+        pass
+
+    try:
+        return int(os.popen2("sysctl -n hw.ncpu")[1].read())
+    except ValueError:
+        pass
+
+    return 1
+
+
 def generate(env):
     """Common environment generation code"""
 
@@ -192,8 +211,6 @@ def generate(env):
     # configuration. See also http://www.scons.org/wiki/AdvancedBuildExample
     build_topdir = 'build'
     build_subdir = env['platform']
-    if env['dri']:
-        build_subdir += "-dri"
     if env['llvm']:
         build_subdir += "-llvm"
     if env['machine'] != 'generic':
@@ -207,6 +224,11 @@ def generate(env):
     # different scons versions building the same source file
     env['build'] = build_dir
     env.SConsignFile(os.path.join(build_dir, '.sconsign'))
+    env.CacheDir('build/cache')
+
+    # Parallel build
+    if env.GetOption('num_jobs') <= 1:
+        env.SetOption('num_jobs', num_jobs())
 
     # C preprocessor options
     cppdefines = []
@@ -314,7 +336,6 @@ def generate(env):
             '-Wno-long-long',
             '-ffast-math',
             '-std=gnu99',
-            '-pedantic',
             '-fmessage-length=0', # be nice to Eclipse
         ]
     if msvc: