45 'C:\\Python%c%c' % (sys.version[0], sys.version[2])), |
45 'C:\\Python%c%c' % (sys.version[0], sys.version[2])), |
46 ) |
46 ) |
47 opt.Update(env) |
47 opt.Update(env) |
48 opt.Save('.optioncache', env) |
48 opt.Save('.optioncache', env) |
49 Help(opt.GenerateHelpText(env)) |
49 Help(opt.GenerateHelpText(env)) |
|
50 |
|
51 |
|
52 ### configure |
50 |
53 |
51 platform = 'unknown' |
54 platform = 'unknown' |
52 def CheckPlatform(context): |
55 def CheckPlatform(context): |
53 global platform |
56 global platform |
54 context.Message('Platform is... ') |
57 context.Message('Platform is... ') |
102 'CheckIntelC' : CheckIntelC, 'CheckGCC' : CheckGCC}) |
105 'CheckIntelC' : CheckIntelC, 'CheckGCC' : CheckGCC}) |
103 conf.CheckPlatform() |
106 conf.CheckPlatform() |
104 conf.CheckGCC() |
107 conf.CheckGCC() |
105 conf.CheckIntelC() |
108 conf.CheckIntelC() |
106 conf.CheckCPUFlags() |
109 conf.CheckCPUFlags() |
107 env = conf.Finish() |
|
108 |
110 |
109 |
111 if intelc and conf.env['intelc']: |
110 if intelc and env['intelc']: |
112 Tool("intelc").generate(conf.env) |
111 Tool("intelc").generate(env) |
|
112 cc = 'intelc' |
113 cc = 'intelc' |
113 elif gcc: |
114 elif gcc: |
114 cc = 'gcc' |
115 cc = 'gcc' |
115 |
116 |
116 add_flags = '' |
117 add_flags = '' |
117 if cc == 'gcc': |
118 if cc == 'gcc': |
118 add_flags += cpuflags_gcc + ' -ffast-math ' |
119 add_flags += cpuflags_gcc + ' -ffast-math ' |
119 if cc == 'intelc': |
120 if cc == 'intelc': |
120 add_flags += cpuflags_intelc + ' ' |
121 add_flags += cpuflags_intelc + ' ' |
121 |
122 |
122 if env['precision'] == 'double': |
123 if conf.env['precision'] == 'double': |
123 add_flags += '-DPYRIT_DOUBLE ' |
124 add_flags += '-DPYRIT_DOUBLE ' |
124 elif cc == 'gcc': |
125 elif cc == 'gcc': |
125 add_flags += '-fsingle-precision-constant ' |
126 add_flags += '-fsingle-precision-constant ' |
126 |
127 |
127 add_flags += env['flags'] |
128 add_flags += conf.env['flags'] |
128 |
129 |
129 if cc == 'intelc': |
130 if cc == 'intelc': |
130 env.Append(CCFLAGS="-O3 -w1 " + add_flags) |
131 conf.env.Append(CCFLAGS="-O3 -w1 " + add_flags) |
131 elif cc == 'gcc': |
132 elif cc == 'gcc': |
132 env.Append(CCFLAGS="-O3 -Wall -pipe " + add_flags) |
133 conf.env.Append(CCFLAGS="-O3 -Wall -pipe " + add_flags) |
133 # CCFLAGS= -fno-strict-aliasing |
134 # CCFLAGS= -fno-strict-aliasing |
134 else: |
135 else: |
135 print "No supported compiler found." |
136 print "No supported compiler found." |
136 Exit(1) |
137 Exit(1) |
137 |
138 |
138 print "Using compiler: " + cc |
139 print "Using compiler: " + cc |
139 print "Additional flags: " + add_flags |
140 print "Additional flags: " + add_flags |
140 |
141 |
141 # pthread |
142 if conf.CheckLibWithHeader('png', 'png.h', 'C'): |
142 if env['PLATFORM'] == 'win32': |
143 conf.env.Append(CCFLAGS='-DHAVE_PNG') |
143 env.Append(LIBS=["pthreadGC2"]) |
144 conf.env.Append(LIBS=['png']) |
|
145 |
|
146 if conf.env['PLATFORM'] == 'win32': |
|
147 conf.env.Append(LIBS=["pthreadGC2"]) |
144 else: |
148 else: |
145 env.Append(CCFLAGS="-pthread ") |
149 conf.env.Append(CCFLAGS="-pthread ") |
|
150 |
|
151 env = conf.Finish() |
|
152 |
|
153 |
|
154 ### build targets |
146 |
155 |
147 (lib, pymodule) = SConscript('src/SConscript', build_dir='build/lib', duplicate=0, exports='env') |
156 (lib, pymodule) = SConscript('src/SConscript', build_dir='build/lib', duplicate=0, exports='env') |
148 |
157 |
149 SConscript('ccdemos/SConscript', build_dir='build/ccdemos', duplicate=0, exports='env lib') |
158 SConscript('ccdemos/SConscript', build_dir='build/ccdemos', duplicate=0, exports='env lib') |
150 SConscript('demos/SConscript', exports='pymodule') |
159 SConscript('demos/SConscript', exports='pymodule') |