45 ) |
45 ) |
46 opt.Update(env) |
46 opt.Update(env) |
47 opt.Save('.optioncache', env) |
47 opt.Save('.optioncache', env) |
48 Help(opt.GenerateHelpText(env)) |
48 Help(opt.GenerateHelpText(env)) |
49 |
49 |
50 if env['intelc']: |
|
51 Tool("intelc")(env) |
|
52 |
|
53 platform = 'unknown' |
50 platform = 'unknown' |
54 def CheckPlatform(context): |
51 def CheckPlatform(context): |
55 global platform |
52 global platform |
56 context.Message('Platform is... ') |
53 context.Message('Platform is... ') |
57 if sys.platform[:5] == 'linux': |
54 if sys.platform[:5] == 'linux': |
71 if (os.system("cat /proc/cpuinfo | grep 'Core(TM)2 CPU' >/dev/null") == 0): |
68 if (os.system("cat /proc/cpuinfo | grep 'Core(TM)2 CPU' >/dev/null") == 0): |
72 cpu = 'core2' |
69 cpu = 'core2' |
73 context.Result(cpu) |
70 context.Result(cpu) |
74 return True |
71 return True |
75 |
72 |
|
73 intelc = Tool("intelc").exists(env) |
76 def CheckIntelC(context): |
74 def CheckIntelC(context): |
77 global intelc |
75 global intelc |
78 context.Message('Checking for Intel C++ Compiler... ') |
76 context.Message('Checking for Intel C++ Compiler... ') |
79 intelc = "intelc" in env['TOOLS'] |
77 if intelc: |
80 context.Result(intelc) |
78 testenv = Environment() |
|
79 Tool("intelc").generate(testenv) |
|
80 context.Result(str(testenv['INTEL_C_COMPILER_VERSION']/10.)) |
|
81 else: |
|
82 context.Result(intelc) |
81 return intelc |
83 return intelc |
82 |
84 |
83 def CheckGCC(context): |
85 def CheckGCC(context): |
84 global gcc, gccversion |
86 global gcc, gccversion |
85 context.Message('Checking for GCC... ') |
87 context.Message('Checking for GCC... ') |
116 cpu_flags += '-xT ' |
120 cpu_flags += '-xT ' |
117 if cc == 'gcc': |
121 if cc == 'gcc': |
118 cpu_flags += '-msse3 -mfpmath=sse ' |
122 cpu_flags += '-msse3 -mfpmath=sse ' |
119 cpu_flags += env['flags'] |
123 cpu_flags += env['flags'] |
120 |
124 |
121 if intelc: |
125 if cc == 'intelc': |
122 env.Append(CCFLAGS="-O3 -w1 " + cpu_flags) |
126 env.Append(CCFLAGS="-O3 -w1 " + cpu_flags) |
123 elif gcc: |
127 elif cc == 'gcc': |
124 env.Append(CCFLAGS="-O3 -Wall -pipe " + cpu_flags) |
128 env.Append(CCFLAGS="-O3 -Wall -pipe " + cpu_flags) |
125 # CCFLAGS= -fno-strict-aliasing |
129 # CCFLAGS= -fno-strict-aliasing |
126 else: |
130 else: |
127 print "No supported compiler found." |
131 print "No supported compiler found." |
128 Exit(1) |
132 Exit(1) |
129 |
133 |
130 print "Additional compiler flags: " + cpu_flags |
134 print "Using compiler: " + cc |
|
135 print "Additional flags: " + cpu_flags |
131 |
136 |
132 # pthread |
137 # pthread |
133 if env['PLATFORM'] == 'win32': |
138 if env['PLATFORM'] == 'win32': |
134 env.Append(LIBS=["pthreadGC2"]) |
139 env.Append(LIBS=["pthreadGC2"]) |
135 else: |
140 else: |
144 env.Alias('demos', ['cc-demos', 'python-demos']) |
149 env.Alias('demos', ['cc-demos', 'python-demos']) |
145 |
150 |
146 SConscript('models/SConscript') |
151 SConscript('models/SConscript') |
147 |
152 |
148 env.Alias('docs', Command('docs/html', [], 'doxygen')) |
153 env.Alias('docs', Command('docs/html', [], 'doxygen')) |
149 env.Clean('docs', ['docs/html', 'docs/latex']) |
154 env.Clean('docs', ['docs/html']) |
150 |
155 |
151 env.Alias('no-docs', ['libs', 'demos', 'models']) |
156 env.Alias('no-docs', ['libs', 'demos', 'models']) |
152 env.Alias('no-download', ['libs', 'demos', 'local-models']) |
157 env.Alias('no-download', ['libs', 'demos', 'local-models']) |
153 |
158 |
154 env.Alias('all', ['no-docs', 'docs']) |
159 env.Alias('all', ['no-docs', 'docs']) |