scons: Some provisions to cross-compile x86 on x86_64 machines and vice-versa.
authorJosé Fonseca <jrfonseca@tungstengraphics.com>
Wed, 4 Jun 2008 14:57:55 +0000 (23:57 +0900)
committerJosé Fonseca <jrfonseca@tungstengraphics.com>
Wed, 4 Jun 2008 14:58:45 +0000 (23:58 +0900)
common.py

index b6251d3..c82f302 100644 (file)
--- a/common.py
+++ b/common.py
@@ -226,6 +226,10 @@ def generate(env):
                        cflags += ['-O3', '-g3']
                if env['profile']:
                        cflags += ['-pg']
+               if env['machine'] == 'x86' and default_machine == 'x86_64':
+                       cflags += ['-m32']
+               if env['machine'] == 'x86_64' and default_machine == 'x86':
+                       cflags += ['-m64']
                cflags += [
                        '-Wall', 
                        '-Wmissing-prototypes',
@@ -293,10 +297,16 @@ def generate(env):
        env.Append(CXXFLAGS = cflags)
 
        # Linker options
+       linkflags = []
+       if gcc:
+               if env['machine'] == 'x86' and default_machine == 'x86_64':
+                       linkflags += ['-m32']
+               if env['machine'] == 'x86_64' and default_machine == 'x86':
+                       linkflags += ['-m64']
        if platform == 'winddk':
                # See also:
                # - http://msdn2.microsoft.com/en-us/library/y0zzbyt4.aspx
-               env.Append(LINKFLAGS = [
+               linkflags += [
                        '/merge:_PAGE=PAGE',
                        '/merge:_TEXT=.text',
                        '/section:INIT,d',
@@ -322,7 +332,8 @@ def generate(env):
                        '/base:0x10000',
                        
                        '/entry:DrvEnableDriver',
-               ])
+               ]
+       env.Append(LINKFLAGS = linkflags)
 
 
        createConvenienceLibBuilder(env)