Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100755 508 lines (397 sloc) 14.354 kb
14b04b0 ry Remove SCONS deprecate WAF
ry authored
1 #!/usr/bin/env python
2 import optparse
3 import os
45605c9 Johan Bergström gyp: switch json for pprint when generating config
jbergstroem authored
4 import pprint
30b29d8 Ben Noordhuis build: disable -fstrict-aliasing if gcc < 4.6.0
bnoordhuis authored
5 import re
b9e1bb3 Ben Noordhuis build: auto-run tools/gyp_node after ./configure
bnoordhuis authored
6 import subprocess
14b04b0 ry Remove SCONS deprecate WAF
ry authored
7 import sys
5cf4cef ry add configure
ry authored
8
5062741 Ben Noordhuis build: make CC command in -fstrict-aliasing check configurable
bnoordhuis authored
9 CC = os.environ.get('CC', 'cc')
10
14b04b0 ry Remove SCONS deprecate WAF
ry authored
11 root_dir = os.path.dirname(__file__)
12 sys.path.insert(0, os.path.join(root_dir, 'deps', 'v8', 'tools'))
97c9745 ry Back to WAF
ry authored
13
14b04b0 ry Remove SCONS deprecate WAF
ry authored
14 # parse our options
15 parser = optparse.OptionParser()
97c9745 ry Back to WAF
ry authored
16
14b04b0 ry Remove SCONS deprecate WAF
ry authored
17 parser.add_option("--debug",
18 action="store_true",
19 dest="debug",
20 help="Also build debug build")
21
22 parser.add_option("--prefix",
23 action="store",
24 dest="prefix",
25 help="Select the install prefix (defaults to /usr/local)")
26
a9f2c4a Fedor Indutny --without-npm option
indutny authored
27 parser.add_option("--without-npm",
28 action="store_true",
29 dest="without_npm",
30 help="Don\'t install the bundled npm package manager")
31
6e76a7c Fedor Indutny installer: install node-waf
indutny authored
32 parser.add_option("--without-waf",
33 action="store_true",
34 dest="without_waf",
35 help="Don\'t install node-waf")
36
14b04b0 ry Remove SCONS deprecate WAF
ry authored
37 parser.add_option("--without-ssl",
38 action="store_true",
39 dest="without_ssl",
40 help="Build without SSL")
41
42 parser.add_option("--without-snapshot",
43 action="store_true",
44 dest="without_snapshot",
45 help="Build without snapshotting V8 libraries. You might want to set"
46 " this for cross-compiling. [Default: False]")
47
48 parser.add_option("--shared-v8",
49 action="store_true",
50 dest="shared_v8",
51 help="Link to a shared V8 DLL instead of static linking")
52
53 parser.add_option("--shared-v8-includes",
54 action="store",
55 dest="shared_v8_includes",
56 help="Directory containing V8 header files")
57
58 parser.add_option("--shared-v8-libpath",
59 action="store",
60 dest="shared_v8_libpath",
61 help="A directory to search for the shared V8 DLL")
62
63 parser.add_option("--shared-v8-libname",
64 action="store",
65 dest="shared_v8_libname",
66 help="Alternative lib name to link to (default: 'v8')")
67
f315029 Ben Noordhuis build: rename openssl configure switches
bnoordhuis authored
68 parser.add_option("--shared-openssl",
69 action="store_true",
70 dest="shared_openssl",
71 help="Link to a shared OpenSSl DLL instead of static linking")
72
73 parser.add_option("--shared-openssl-includes",
74 action="store",
75 dest="shared_openssl_includes",
76 help="Directory containing OpenSSL header files")
77
78 parser.add_option("--shared-openssl-libpath",
79 action="store",
80 dest="shared_openssl_libpath",
81 help="A directory to search for the shared OpenSSL DLLs")
82
83 parser.add_option("--shared-openssl-libname",
84 action="store",
85 dest="shared_openssl_libname",
86 help="Alternative lib name to link to (default: 'crypto,ssl')")
87
88 # deprecated
e61de70 ry gyp: use built-in openssl by default
ry authored
89 parser.add_option("--openssl-use-sys",
70e6889 Nathan Rajlich build: make --openssl-use-sys a boolean option
TooTallNate authored
90 action="store_true",
f315029 Ben Noordhuis build: rename openssl configure switches
bnoordhuis authored
91 dest="shared_openssl",
92 help=optparse.SUPPRESS_HELP)
e61de70 ry gyp: use built-in openssl by default
ry authored
93
f315029 Ben Noordhuis build: rename openssl configure switches
bnoordhuis authored
94 # deprecated
14b04b0 ry Remove SCONS deprecate WAF
ry authored
95 parser.add_option("--openssl-includes",
96 action="store",
f315029 Ben Noordhuis build: rename openssl configure switches
bnoordhuis authored
97 dest="shared_openssl_includes",
98 help=optparse.SUPPRESS_HELP)
14b04b0 ry Remove SCONS deprecate WAF
ry authored
99
f315029 Ben Noordhuis build: rename openssl configure switches
bnoordhuis authored
100 # deprecated
14b04b0 ry Remove SCONS deprecate WAF
ry authored
101 parser.add_option("--openssl-libpath",
102 action="store",
f315029 Ben Noordhuis build: rename openssl configure switches
bnoordhuis authored
103 dest="shared_openssl_libpath",
104 help=optparse.SUPPRESS_HELP)
14b04b0 ry Remove SCONS deprecate WAF
ry authored
105
106 parser.add_option("--no-ssl2",
107 action="store_true",
108 dest="no_ssl2",
109 help="Disable OpenSSL v2")
110
d03b848 T.C. Hollingsworth build: support shared zlib
tchollingsworth authored
111 parser.add_option("--shared-zlib",
112 action="store_true",
113 dest="shared_zlib",
114 help="Link to a shared zlib DLL instead of static linking")
115
116 parser.add_option("--shared-zlib-includes",
117 action="store",
118 dest="shared_zlib_includes",
119 help="Directory containing zlib header files")
120
121 parser.add_option("--shared-zlib-libpath",
122 action="store",
123 dest="shared_zlib_libpath",
124 help="A directory to search for the shared zlib DLL")
125
126 parser.add_option("--shared-zlib-libname",
127 action="store",
128 dest="shared_zlib_libname",
129 help="Alternative lib name to link to (default: 'z')")
130
14b04b0 ry Remove SCONS deprecate WAF
ry authored
131 parser.add_option("--with-dtrace",
132 action="store_true",
133 dest="with_dtrace",
cc15299 David Pacheco build: add support for DTrace and postmortem
davepacheco authored
134 help="Build with DTrace (default is true on supported systems)")
135
136 parser.add_option("--without-dtrace",
137 action="store_true",
138 dest="without_dtrace",
139 help="Build without DTrace")
14b04b0 ry Remove SCONS deprecate WAF
ry authored
140
35a1421 Windows: Enable ETW events.
Igor Zinkovsky authored
141 parser.add_option("--with-etw",
142 action="store_true",
143 dest="with_etw",
144 help="Build with ETW (default is true on Windows)")
145
146 parser.add_option("--without-etw",
147 action="store_true",
148 dest="without_etw",
149 help="Build without ETW")
150
14b04b0 ry Remove SCONS deprecate WAF
ry authored
151 # CHECKME does this still work with recent releases of V8?
152 parser.add_option("--gdb",
153 action="store_true",
154 dest="gdb",
155 help="add gdb support")
156
157 parser.add_option("--dest-cpu",
158 action="store",
159 dest="dest_cpu",
160 help="CPU architecture to build for. Valid values are: arm, ia32, x64")
161
608898c Nathan Rajlich configure: add a "--dest-os" option to force a gyp "flavor"
TooTallNate authored
162 parser.add_option("--dest-os",
163 action="store",
164 dest="dest_os",
165 help="Operating system to build for. Valid values are: "
166 "win, mac, solaris, freebsd, linux")
167
0ef6cfd isaacs Fix #3465 Add ./configure --no-ifaddrs flag
isaacs authored
168 parser.add_option("--no-ifaddrs",
169 action="store_true",
170 dest="no_ifaddrs",
171 help="Use on deprecated SunOS systems that do not support ifaddrs.h")
172
90efdb3 Adam Malcontenti-Wilson build: improve armv7 / hard-float detection
adammw authored
173 parser.add_option("--with-arm-float-abi",
174 action="store",
175 dest="arm_float_abi",
176 help="Specifies which floating-point ABI to use. Valid values are: "
177 "soft, softfp, hard")
178
28e6403 Ben Noordhuis build: add --unsafe-optimizations configure switch
bnoordhuis authored
179 # Using --unsafe-optimizations voids your warranty.
180 parser.add_option("--unsafe-optimizations",
181 action="store_true",
182 dest="unsafe_optimizations",
183 help=optparse.SUPPRESS_HELP)
184
c2e71dd Maciej Małecki build: allow to specify custom tags
mmalecki authored
185 parser.add_option("--tag",
186 action="store",
187 dest="tag",
188 help="Custom build tag")
189
14b04b0 ry Remove SCONS deprecate WAF
ry authored
190 (options, args) = parser.parse_args()
191
192
a033261 Ben Noordhuis build: DRY configure script
bnoordhuis authored
193 def b(value):
194 """Returns the string 'true' if value is truthy, 'false' otherwise."""
195 if value:
196 return 'true'
197 else:
198 return 'false'
199
200
14b04b0 ry Remove SCONS deprecate WAF
ry authored
201 def pkg_config(pkg):
202 cmd = os.popen('pkg-config --libs %s' % pkg, 'r')
203 libs = cmd.readline().strip()
204 ret = cmd.close()
205 if (ret): return None
206
207 cmd = os.popen('pkg-config --cflags %s' % pkg, 'r')
208 cflags = cmd.readline().strip()
209 ret = cmd.close()
210 if (ret): return None
211
212 return (libs, cflags)
213
214
90efdb3 Adam Malcontenti-Wilson build: improve armv7 / hard-float detection
adammw authored
215 def cc_macros():
216 """Checks predefined macros using the CC command."""
19133ca Nathan Rajlich build: better host_arch() definition in configure
TooTallNate authored
217
792d9a9 Javier Hernández Antúnez build: print error message if no compiler found
javihernandez authored
218 try:
219 p = subprocess.Popen(CC.split() + ['-dM', '-E', '-'],
220 stdin=subprocess.PIPE,
221 stdout=subprocess.PIPE,
222 stderr=subprocess.PIPE)
223 except OSError:
224 print '''Node.js configure error: No acceptable C compiler found!
225
226 Please make sure you have a C compiler installed on your system and/or
227 consider adjusting the CC environment variable if you installed
228 it in a non-standard prefix.
229 '''
230 sys.exit()
231
19133ca Nathan Rajlich build: better host_arch() definition in configure
TooTallNate authored
232 p.stdin.write('\n')
233 out = p.communicate()[0]
234
235 out = str(out).split('\n')
236
237 k = {}
238 for line in out:
239 import shlex
240 lst = shlex.split(line)
241 if len(lst) > 2:
242 key = lst[1]
243 val = lst[2]
244 k[key] = val
90efdb3 Adam Malcontenti-Wilson build: improve armv7 / hard-float detection
adammw authored
245 return k
246
247
248 def is_arch_armv7():
249 """Check for ARMv7 instructions"""
250 cc_macros_cache = cc_macros()
251 return ('__ARM_ARCH_7__' in cc_macros_cache or
252 '__ARM_ARCH_7A__' in cc_macros_cache or
253 '__ARM_ARCH_7R__' in cc_macros_cache or
254 '__ARM_ARCH_7M__' in cc_macros_cache)
255
256
257 def arm_hard_float_abi():
258 """Check for hardfloat or softfloat eabi on ARM"""
259 # GCC versions 4.6 and above define __ARM_PCS or __ARM_PCS_VFP to specify
260 # the Floating Point ABI used (PCS stands for Procedure Call Standard).
261 # We use these as well as a couple of other defines to statically determine
262 # what FP ABI used.
263 # GCC versions 4.4 and below don't support hard-fp.
264 # GCC versions 4.5 may support hard-fp without defining __ARM_PCS or
265 # __ARM_PCS_VFP.
266
267 if compiler_version() >= (4, 6, 0):
268 return '__ARM_PCS_VFP' in cc_macros()
269 elif compiler_version() < (4, 5, 0):
270 return False
271 elif '__ARM_PCS_VFP' in cc_macros():
272 return True
273 elif ('__ARM_PCS' in cc_macros() or
274 '__SOFTFP' in cc_macros() or
275 not '__VFP_FP__' in cc_macros()):
276 return False
277 else:
278 print '''Node.js configure error: Your version of GCC does not report
279 the Floating-Point ABI to compile for your hardware
280
281 Please manually specify which floating-point ABI to use with the
282 --with-arm-float-abi option.
283 '''
284 sys.exit()
285
286
287 def host_arch_cc():
288 """Host architecture check using the CC command."""
289
290 k = cc_macros()
19133ca Nathan Rajlich build: better host_arch() definition in configure
TooTallNate authored
291
292 matchup = {
293 '__x86_64__' : 'x64',
294 '__i386__' : 'ia32',
295 '__arm__' : 'arm',
09ccbef Karl Skomski build: detect host_arch better
Skomski authored
296 }
297
19133ca Nathan Rajlich build: better host_arch() definition in configure
TooTallNate authored
298 rtn = 'ia32' # default
299
300 for i in matchup:
301 if i in k and k[i] != '0':
302 rtn = matchup[i]
303 break
09ccbef Karl Skomski build: detect host_arch better
Skomski authored
304
19133ca Nathan Rajlich build: better host_arch() definition in configure
TooTallNate authored
305 return rtn
14b04b0 ry Remove SCONS deprecate WAF
ry authored
306
307
dc75232 Nathan Rajlich vcbuild: run the 'configure' script in vcbuild.bat
TooTallNate authored
308 def host_arch_win():
309 """Host architecture check using environ vars (better way to do this?)"""
310
311 arch = os.environ.get('PROCESSOR_ARCHITECTURE', 'x86')
312
313 matchup = {
314 'AMD64' : 'x64',
315 'x86' : 'ia32',
316 'arm' : 'arm',
317 }
318
319 return matchup.get(arch, 'ia32')
320
321
07e5877 Ben Noordhuis build: disable strict aliasing in v8 with gcc 4.5.x
bnoordhuis authored
322 def compiler_version():
3e5139f Bert Belder Fix the Windows build
piscisaureus authored
323 try:
324 proc = subprocess.Popen(CC.split() + ['--version'], stdout=subprocess.PIPE)
325 except WindowsError:
326 return (0, False)
327
a0add91 Ben Noordhuis build: detect cc version with -dumpversion
bnoordhuis authored
328 is_clang = 'clang' in proc.communicate()[0].split('\n')[0]
f78ce08 Ben Noordhuis build: handle output of localized gcc or clang
bnoordhuis authored
329
a0add91 Ben Noordhuis build: detect cc version with -dumpversion
bnoordhuis authored
330 proc = subprocess.Popen(CC.split() + ['-dumpversion'], stdout=subprocess.PIPE)
331 version = tuple(map(int, proc.communicate()[0].split('.')))
f78ce08 Ben Noordhuis build: handle output of localized gcc or clang
bnoordhuis authored
332
333 return (version, is_clang)
334
14b04b0 ry Remove SCONS deprecate WAF
ry authored
335
1205734 Ben Noordhuis configure: turn on VFPv3 on ARMv7
bnoordhuis authored
336 def configure_arm(o):
337 # V8 on ARM requires that armv7 is set. CPU Model detected by
338 # the presence of __ARM_ARCH_7__ and the like defines in compiler
339 if options.arm_float_abi:
340 hard_float = options.arm_float_abi == 'hard'
341 else:
342 hard_float = arm_hard_float_abi()
343 o['variables']['v8_use_arm_eabi_hardfloat'] = b(hard_float)
344
345 armv7 = is_arch_armv7()
346 if armv7:
347 # CHECKME VFPv3 implies ARMv7+ but is the reverse true as well?
348 o['variables']['arm_fpu'] = 'vfpv3'
349 o['variables']['arm_neon'] = 0
350 o['variables']['armv7'] = int(armv7)
351
352
14b04b0 ry Remove SCONS deprecate WAF
ry authored
353 def configure_node(o):
98b1ce9 Ben Noordhuis build: fix mksnapshot crash on sunos
bnoordhuis authored
354 # TODO add gdb
355 o['variables']['v8_no_strict_aliasing'] = 1 # work around compiler bugs
06c82c5 Ben Noordhuis build: expand ~ in `./configure --prefix=~/a/b/c`
bnoordhuis authored
356 o['variables']['node_prefix'] = os.path.expanduser(options.prefix or '')
a9f2c4a Fedor Indutny --without-npm option
indutny authored
357 o['variables']['node_install_npm'] = b(not options.without_npm)
6e76a7c Fedor Indutny installer: install node-waf
indutny authored
358 o['variables']['node_install_waf'] = b(not options.without_waf)
28e6403 Ben Noordhuis build: add --unsafe-optimizations configure switch
bnoordhuis authored
359 o['variables']['node_unsafe_optimizations'] = (
360 1 if options.unsafe_optimizations else 0)
680d75a Shigeki Ohtsu build: make default_configuration consistent with BUILDTYPE
shigeki authored
361 o['default_configuration'] = 'Debug' if options.debug else 'Release'
14b04b0 ry Remove SCONS deprecate WAF
ry authored
362
c6bb361 Ben Noordhuis build: partially fix configure on ARM
bnoordhuis authored
363 host_arch = host_arch_win() if os.name == 'nt' else host_arch_cc()
364 target_arch = options.dest_cpu or host_arch
365 o['variables']['host_arch'] = host_arch
366 o['variables']['target_arch'] = target_arch
367
368 if target_arch == 'arm':
1205734 Ben Noordhuis configure: turn on VFPv3 on ARMv7
bnoordhuis authored
369 configure_arm(o)
07e5877 Ben Noordhuis build: disable strict aliasing in v8 with gcc 4.5.x
bnoordhuis authored
370
c6bb361 Ben Noordhuis build: partially fix configure on ARM
bnoordhuis authored
371 cc_version, is_clang = compiler_version()
100e163 Ben Noordhuis build: compile with -fno-tree-vrp when gcc >= 4.0
bnoordhuis authored
372 o['variables']['clang'] = 1 if is_clang else 0
373
8677860 isaacs build: Don't set gcc_version for Windows
isaacs authored
374 if not is_clang and cc_version != 0:
100e163 Ben Noordhuis build: compile with -fno-tree-vrp when gcc >= 4.0
bnoordhuis authored
375 o['variables']['gcc_version'] = 10 * cc_version[0] + cc_version[1]
376
377 # clang has always supported -fvisibility=hidden, right?
07e5877 Ben Noordhuis build: disable strict aliasing in v8 with gcc 4.5.x
bnoordhuis authored
378 if not is_clang and cc_version < (4,0,0):
5ebc05f Ben Noordhuis build: disable -fvisibility=hidden if gcc < 4.0.0
bnoordhuis authored
379 o['variables']['visibility'] = ''
30b29d8 Ben Noordhuis build: disable -fstrict-aliasing if gcc < 4.6.0
bnoordhuis authored
380
cc15299 David Pacheco build: add support for DTrace and postmortem
davepacheco authored
381 # By default, enable DTrace on SunOS systems. Don't allow it on other
382 # systems, since it won't work. (The MacOS build process is different than
383 # SunOS, and we haven't implemented it.)
384 if sys.platform.startswith('sunos'):
b40f813 Ben Noordhuis build: fix spurious mksnapshot crashes for good
bnoordhuis authored
385 o['variables']['node_use_dtrace'] = b(not options.without_dtrace)
cc15299 David Pacheco build: add support for DTrace and postmortem
davepacheco authored
386 elif b(options.with_dtrace) == 'true':
387 raise Exception('DTrace is currently only supported on SunOS systems.')
388 else:
389 o['variables']['node_use_dtrace'] = 'false'
390
f315029 Ben Noordhuis build: rename openssl configure switches
bnoordhuis authored
391 if options.no_ifaddrs:
392 o['defines'] += ['SUNOS_NO_IFADDRS']
14b04b0 ry Remove SCONS deprecate WAF
ry authored
393
35a1421 Windows: Enable ETW events.
Igor Zinkovsky authored
394 # By default, enable ETW on Windows.
395 if sys.platform.startswith('win32'):
396 o['variables']['node_use_etw'] = b(not options.without_etw);
397 elif b(options.with_etw) == 'true':
398 raise Exception('ETW is only supported on Windows.')
399 else:
400 o['variables']['node_use_etw'] = 'false'
401
c2e71dd Maciej Małecki build: allow to specify custom tags
mmalecki authored
402 if options.tag:
403 o['variables']['node_tag'] = '-' + options.tag
404 else:
405 o['variables']['node_tag'] = ''
406
35a1421 Windows: Enable ETW events.
Igor Zinkovsky authored
407
14b04b0 ry Remove SCONS deprecate WAF
ry authored
408 def configure_libz(o):
d03b848 T.C. Hollingsworth build: support shared zlib
tchollingsworth authored
409 o['variables']['node_shared_zlib'] = b(options.shared_zlib)
410
411 # assume shared_zlib if one of these is set?
412 if options.shared_zlib_libpath:
413 o['libraries'] += ['-L%s' % options.shared_zlib_libpath]
414 if options.shared_zlib_libname:
415 o['libraries'] += ['-l%s' % options.shared_zlib_libname]
416 elif options.shared_zlib:
417 o['libraries'] += ['-lz']
418 if options.shared_zlib_includes:
419 o['include_dirs'] += [options.shared_zlib_includes]
14b04b0 ry Remove SCONS deprecate WAF
ry authored
420
421
422 def configure_v8(o):
a033261 Ben Noordhuis build: DRY configure script
bnoordhuis authored
423 o['variables']['v8_use_snapshot'] = b(not options.without_snapshot)
424 o['variables']['node_shared_v8'] = b(options.shared_v8)
14b04b0 ry Remove SCONS deprecate WAF
ry authored
425
426 # assume shared_v8 if one of these is set?
427 if options.shared_v8_libpath:
428 o['libraries'] += ['-L%s' % options.shared_v8_libpath]
429 if options.shared_v8_libname:
430 o['libraries'] += ['-l%s' % options.shared_v8_libname]
59ecf2c isaacs Revert "Revert "build: support shared V8 properly""
isaacs authored
431 elif options.shared_v8:
432 o['libraries'] += ['-lv8']
14b04b0 ry Remove SCONS deprecate WAF
ry authored
433 if options.shared_v8_includes:
434 o['include_dirs'] += [options.shared_v8_includes]
435
436
437 def configure_openssl(o):
a033261 Ben Noordhuis build: DRY configure script
bnoordhuis authored
438 o['variables']['node_use_openssl'] = b(not options.without_ssl)
f315029 Ben Noordhuis build: rename openssl configure switches
bnoordhuis authored
439 o['variables']['node_shared_openssl'] = b(options.shared_openssl)
14b04b0 ry Remove SCONS deprecate WAF
ry authored
440
441 if options.without_ssl:
442 return
443
444 if options.no_ssl2:
445 o['defines'] += ['OPENSSL_NO_SSL2=1']
446
f315029 Ben Noordhuis build: rename openssl configure switches
bnoordhuis authored
447 if options.shared_openssl:
448 (libs, cflags) = pkg_config('openssl') or ('-lssl -lcrypto', '')
14b04b0 ry Remove SCONS deprecate WAF
ry authored
449
f315029 Ben Noordhuis build: rename openssl configure switches
bnoordhuis authored
450 if options.shared_openssl_libpath:
451 o['libraries'] += ['-L%s' % options.shared_openssl_libpath]
452
453 if options.shared_openssl_libname:
454 libnames = options.shared_openssl_libname.split(',')
455 o['libraries'] += ['-l%s' % s for s in libnames]
e61de70 ry gyp: use built-in openssl by default
ry authored
456 else:
457 o['libraries'] += libs.split()
458
f315029 Ben Noordhuis build: rename openssl configure switches
bnoordhuis authored
459 if options.shared_openssl_includes:
460 o['include_dirs'] += [options.shared_openssl_includes]
e61de70 ry gyp: use built-in openssl by default
ry authored
461 else:
462 o['cflags'] += cflags.split()
14b04b0 ry Remove SCONS deprecate WAF
ry authored
463
464
465 output = {
466 'variables': {},
467 'include_dirs': [],
468 'libraries': [],
469 'defines': [],
470 'cflags': [],
471 }
472
473 configure_node(output)
474 configure_libz(output)
475 configure_v8(output)
476 configure_openssl(output)
477
478 # variables should be a root level element,
479 # move everything else to target_defaults
480 variables = output['variables']
481 del output['variables']
482 output = {
483 'variables': variables,
484 'target_defaults': output
485 }
624f70e ry GYP: rename options.gypi to config.gypi
ry authored
486 pprint.pprint(output, indent=2)
14b04b0 ry Remove SCONS deprecate WAF
ry authored
487
e493b29 Ben Noordhuis build: respect --debug configure switch
bnoordhuis authored
488 def write(filename, data):
489 filename = os.path.join(root_dir, filename)
490 print "creating ", filename
fdeeabb Nathan Rajlich configure: don't use "with" for Python 2.5 and older
TooTallNate authored
491 f = open(filename, 'w+')
492 f.write(data)
e493b29 Ben Noordhuis build: respect --debug configure switch
bnoordhuis authored
493
494 write('config.gypi', "# Do not edit. Generated by the configure script.\n" +
9b7a6c5 Nathan Rajlich configure: output a newline at the end of config.gypi
TooTallNate authored
495 pprint.pformat(output, indent=2) + "\n")
e493b29 Ben Noordhuis build: respect --debug configure switch
bnoordhuis authored
496
497 write('config.mk', "# Do not edit. Generated by the configure script.\n" +
498 ("BUILDTYPE=%s\n" % ('Debug' if options.debug else 'Release')))
97c9745 ry Back to WAF
ry authored
499
dc75232 Nathan Rajlich vcbuild: run the 'configure' script in vcbuild.bat
TooTallNate authored
500 if os.name == 'nt':
d5f13f6 Ben Noordhuis build: use proper python interpreter
bnoordhuis authored
501 gyp_args = ['-f', 'msvs', '-G', 'msvs_version=2010']
608898c Nathan Rajlich configure: add a "--dest-os" option to force a gyp "flavor"
TooTallNate authored
502 elif options.dest_os:
503 gyp_args = ['-f', 'make-' + options.dest_os]
dc75232 Nathan Rajlich vcbuild: run the 'configure' script in vcbuild.bat
TooTallNate authored
504 else:
d5f13f6 Ben Noordhuis build: use proper python interpreter
bnoordhuis authored
505 gyp_args = ['-f', 'make']
506
507 subprocess.call([sys.executable, 'tools/gyp_node'] + gyp_args)
Something went wrong with that request. Please try again.