libv8 3.3.10.2 → 3.3.10.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (204) hide show
  1. data/.gitignore +1 -0
  2. data/README.md +35 -7
  3. data/Rakefile +61 -20
  4. data/ext/libv8/extconf.rb +15 -0
  5. data/lib/libv8/scons/CHANGES.txt +231 -24
  6. data/lib/libv8/scons/LICENSE.txt +1 -1
  7. data/lib/libv8/scons/MANIFEST +1 -0
  8. data/lib/libv8/scons/PKG-INFO +1 -1
  9. data/lib/libv8/scons/README.txt +9 -9
  10. data/lib/libv8/scons/RELEASE.txt +77 -75
  11. data/lib/libv8/scons/engine/SCons/Action.py +22 -6
  12. data/lib/libv8/scons/engine/SCons/Builder.py +2 -2
  13. data/lib/libv8/scons/engine/SCons/CacheDir.py +2 -2
  14. data/lib/libv8/scons/engine/SCons/Debug.py +2 -2
  15. data/lib/libv8/scons/engine/SCons/Defaults.py +24 -10
  16. data/lib/libv8/scons/engine/SCons/Environment.py +118 -19
  17. data/lib/libv8/scons/engine/SCons/Errors.py +2 -2
  18. data/lib/libv8/scons/engine/SCons/Executor.py +2 -2
  19. data/lib/libv8/scons/engine/SCons/Job.py +2 -2
  20. data/lib/libv8/scons/engine/SCons/Memoize.py +2 -2
  21. data/lib/libv8/scons/engine/SCons/Node/Alias.py +2 -2
  22. data/lib/libv8/scons/engine/SCons/Node/FS.py +281 -121
  23. data/lib/libv8/scons/engine/SCons/Node/Python.py +2 -2
  24. data/lib/libv8/scons/engine/SCons/Node/__init__.py +6 -5
  25. data/lib/libv8/scons/engine/SCons/Options/BoolOption.py +2 -2
  26. data/lib/libv8/scons/engine/SCons/Options/EnumOption.py +2 -2
  27. data/lib/libv8/scons/engine/SCons/Options/ListOption.py +2 -2
  28. data/lib/libv8/scons/engine/SCons/Options/PackageOption.py +2 -2
  29. data/lib/libv8/scons/engine/SCons/Options/PathOption.py +2 -2
  30. data/lib/libv8/scons/engine/SCons/Options/__init__.py +2 -2
  31. data/lib/libv8/scons/engine/SCons/PathList.py +2 -2
  32. data/lib/libv8/scons/engine/SCons/Platform/__init__.py +2 -2
  33. data/lib/libv8/scons/engine/SCons/Platform/aix.py +2 -2
  34. data/lib/libv8/scons/engine/SCons/Platform/cygwin.py +2 -2
  35. data/lib/libv8/scons/engine/SCons/Platform/darwin.py +27 -3
  36. data/lib/libv8/scons/engine/SCons/Platform/hpux.py +2 -2
  37. data/lib/libv8/scons/engine/SCons/Platform/irix.py +2 -2
  38. data/lib/libv8/scons/engine/SCons/Platform/os2.py +2 -2
  39. data/lib/libv8/scons/engine/SCons/Platform/posix.py +2 -2
  40. data/lib/libv8/scons/engine/SCons/Platform/sunos.py +2 -2
  41. data/lib/libv8/scons/engine/SCons/Platform/win32.py +2 -2
  42. data/lib/libv8/scons/engine/SCons/SConf.py +2 -2
  43. data/lib/libv8/scons/engine/SCons/SConsign.py +9 -3
  44. data/lib/libv8/scons/engine/SCons/Scanner/C.py +2 -2
  45. data/lib/libv8/scons/engine/SCons/Scanner/D.py +2 -2
  46. data/lib/libv8/scons/engine/SCons/Scanner/Dir.py +2 -2
  47. data/lib/libv8/scons/engine/SCons/Scanner/Fortran.py +2 -2
  48. data/lib/libv8/scons/engine/SCons/Scanner/IDL.py +2 -2
  49. data/lib/libv8/scons/engine/SCons/Scanner/LaTeX.py +5 -2
  50. data/lib/libv8/scons/engine/SCons/Scanner/Prog.py +2 -2
  51. data/lib/libv8/scons/engine/SCons/Scanner/RC.py +3 -3
  52. data/lib/libv8/scons/engine/SCons/Scanner/__init__.py +2 -2
  53. data/lib/libv8/scons/engine/SCons/Script/Interactive.py +2 -2
  54. data/lib/libv8/scons/engine/SCons/Script/Main.py +82 -11
  55. data/lib/libv8/scons/engine/SCons/Script/SConsOptions.py +5 -5
  56. data/lib/libv8/scons/engine/SCons/Script/SConscript.py +2 -2
  57. data/lib/libv8/scons/engine/SCons/Script/__init__.py +2 -2
  58. data/lib/libv8/scons/engine/SCons/Sig.py +2 -2
  59. data/lib/libv8/scons/engine/SCons/Subst.py +2 -2
  60. data/lib/libv8/scons/engine/SCons/Taskmaster.py +10 -2
  61. data/lib/libv8/scons/engine/SCons/Tool/386asm.py +2 -2
  62. data/lib/libv8/scons/engine/SCons/Tool/BitKeeper.py +2 -2
  63. data/lib/libv8/scons/engine/SCons/Tool/CVS.py +2 -2
  64. data/lib/libv8/scons/engine/SCons/Tool/FortranCommon.py +19 -2
  65. data/lib/libv8/scons/engine/SCons/Tool/JavaCommon.py +2 -2
  66. data/lib/libv8/scons/engine/SCons/Tool/MSCommon/__init__.py +2 -2
  67. data/lib/libv8/scons/engine/SCons/Tool/MSCommon/arch.py +2 -2
  68. data/lib/libv8/scons/engine/SCons/Tool/MSCommon/common.py +2 -2
  69. data/lib/libv8/scons/engine/SCons/Tool/MSCommon/netframework.py +2 -2
  70. data/lib/libv8/scons/engine/SCons/Tool/MSCommon/sdk.py +2 -2
  71. data/lib/libv8/scons/engine/SCons/Tool/MSCommon/vc.py +9 -6
  72. data/lib/libv8/scons/engine/SCons/Tool/MSCommon/vs.py +29 -2
  73. data/lib/libv8/scons/engine/SCons/Tool/Perforce.py +2 -2
  74. data/lib/libv8/scons/engine/SCons/Tool/PharLapCommon.py +2 -2
  75. data/lib/libv8/scons/engine/SCons/Tool/RCS.py +2 -2
  76. data/lib/libv8/scons/engine/SCons/Tool/SCCS.py +2 -2
  77. data/lib/libv8/scons/engine/SCons/Tool/Subversion.py +2 -2
  78. data/lib/libv8/scons/engine/SCons/Tool/__init__.py +3 -3
  79. data/lib/libv8/scons/engine/SCons/Tool/aixc++.py +2 -2
  80. data/lib/libv8/scons/engine/SCons/Tool/aixcc.py +2 -2
  81. data/lib/libv8/scons/engine/SCons/Tool/aixf77.py +2 -2
  82. data/lib/libv8/scons/engine/SCons/Tool/aixlink.py +2 -2
  83. data/lib/libv8/scons/engine/SCons/Tool/applelink.py +2 -2
  84. data/lib/libv8/scons/engine/SCons/Tool/ar.py +2 -2
  85. data/lib/libv8/scons/engine/SCons/Tool/as.py +2 -2
  86. data/lib/libv8/scons/engine/SCons/Tool/bcc32.py +2 -2
  87. data/lib/libv8/scons/engine/SCons/Tool/c++.py +2 -2
  88. data/lib/libv8/scons/engine/SCons/Tool/cc.py +2 -2
  89. data/lib/libv8/scons/engine/SCons/Tool/cvf.py +2 -2
  90. data/lib/libv8/scons/engine/SCons/Tool/default.py +2 -2
  91. data/lib/libv8/scons/engine/SCons/Tool/dmd.py +24 -7
  92. data/lib/libv8/scons/engine/SCons/Tool/dvi.py +2 -2
  93. data/lib/libv8/scons/engine/SCons/Tool/dvipdf.py +3 -2
  94. data/lib/libv8/scons/engine/SCons/Tool/dvips.py +3 -2
  95. data/lib/libv8/scons/engine/SCons/Tool/f03.py +63 -0
  96. data/lib/libv8/scons/engine/SCons/Tool/f77.py +2 -2
  97. data/lib/libv8/scons/engine/SCons/Tool/f90.py +2 -2
  98. data/lib/libv8/scons/engine/SCons/Tool/f95.py +2 -2
  99. data/lib/libv8/scons/engine/SCons/Tool/filesystem.py +2 -2
  100. data/lib/libv8/scons/engine/SCons/Tool/fortran.py +2 -2
  101. data/lib/libv8/scons/engine/SCons/Tool/g++.py +2 -2
  102. data/lib/libv8/scons/engine/SCons/Tool/g77.py +2 -2
  103. data/lib/libv8/scons/engine/SCons/Tool/gas.py +2 -2
  104. data/lib/libv8/scons/engine/SCons/Tool/gcc.py +2 -2
  105. data/lib/libv8/scons/engine/SCons/Tool/gfortran.py +3 -3
  106. data/lib/libv8/scons/engine/SCons/Tool/gnulink.py +2 -3
  107. data/lib/libv8/scons/engine/SCons/Tool/gs.py +2 -2
  108. data/lib/libv8/scons/engine/SCons/Tool/hpc++.py +2 -2
  109. data/lib/libv8/scons/engine/SCons/Tool/hpcc.py +2 -2
  110. data/lib/libv8/scons/engine/SCons/Tool/hplink.py +2 -2
  111. data/lib/libv8/scons/engine/SCons/Tool/icc.py +2 -2
  112. data/lib/libv8/scons/engine/SCons/Tool/icl.py +2 -2
  113. data/lib/libv8/scons/engine/SCons/Tool/ifl.py +2 -2
  114. data/lib/libv8/scons/engine/SCons/Tool/ifort.py +2 -2
  115. data/lib/libv8/scons/engine/SCons/Tool/ilink.py +2 -2
  116. data/lib/libv8/scons/engine/SCons/Tool/ilink32.py +2 -2
  117. data/lib/libv8/scons/engine/SCons/Tool/install.py +57 -3
  118. data/lib/libv8/scons/engine/SCons/Tool/intelc.py +65 -25
  119. data/lib/libv8/scons/engine/SCons/Tool/ipkg.py +2 -2
  120. data/lib/libv8/scons/engine/SCons/Tool/jar.py +9 -3
  121. data/lib/libv8/scons/engine/SCons/Tool/javac.py +2 -2
  122. data/lib/libv8/scons/engine/SCons/Tool/javah.py +2 -2
  123. data/lib/libv8/scons/engine/SCons/Tool/latex.py +3 -2
  124. data/lib/libv8/scons/engine/SCons/Tool/lex.py +2 -2
  125. data/lib/libv8/scons/engine/SCons/Tool/link.py +6 -5
  126. data/lib/libv8/scons/engine/SCons/Tool/linkloc.py +2 -2
  127. data/lib/libv8/scons/engine/SCons/Tool/m4.py +2 -2
  128. data/lib/libv8/scons/engine/SCons/Tool/masm.py +2 -2
  129. data/lib/libv8/scons/engine/SCons/Tool/midl.py +2 -2
  130. data/lib/libv8/scons/engine/SCons/Tool/mingw.py +31 -10
  131. data/lib/libv8/scons/engine/SCons/Tool/mslib.py +2 -2
  132. data/lib/libv8/scons/engine/SCons/Tool/mslink.py +61 -9
  133. data/lib/libv8/scons/engine/SCons/Tool/mssdk.py +2 -2
  134. data/lib/libv8/scons/engine/SCons/Tool/msvc.py +21 -11
  135. data/lib/libv8/scons/engine/SCons/Tool/msvs.py +477 -59
  136. data/lib/libv8/scons/engine/SCons/Tool/mwcc.py +2 -2
  137. data/lib/libv8/scons/engine/SCons/Tool/mwld.py +2 -2
  138. data/lib/libv8/scons/engine/SCons/Tool/nasm.py +2 -2
  139. data/lib/libv8/scons/engine/SCons/Tool/packaging/__init__.py +2 -2
  140. data/lib/libv8/scons/engine/SCons/Tool/packaging/ipk.py +2 -2
  141. data/lib/libv8/scons/engine/SCons/Tool/packaging/msi.py +2 -2
  142. data/lib/libv8/scons/engine/SCons/Tool/packaging/rpm.py +2 -2
  143. data/lib/libv8/scons/engine/SCons/Tool/packaging/src_tarbz2.py +2 -2
  144. data/lib/libv8/scons/engine/SCons/Tool/packaging/src_targz.py +2 -2
  145. data/lib/libv8/scons/engine/SCons/Tool/packaging/src_zip.py +2 -2
  146. data/lib/libv8/scons/engine/SCons/Tool/packaging/tarbz2.py +2 -2
  147. data/lib/libv8/scons/engine/SCons/Tool/packaging/targz.py +2 -2
  148. data/lib/libv8/scons/engine/SCons/Tool/packaging/zip.py +2 -2
  149. data/lib/libv8/scons/engine/SCons/Tool/pdf.py +2 -2
  150. data/lib/libv8/scons/engine/SCons/Tool/pdflatex.py +3 -2
  151. data/lib/libv8/scons/engine/SCons/Tool/pdftex.py +3 -2
  152. data/lib/libv8/scons/engine/SCons/Tool/qt.py +2 -2
  153. data/lib/libv8/scons/engine/SCons/Tool/rmic.py +9 -3
  154. data/lib/libv8/scons/engine/SCons/Tool/rpcgen.py +2 -2
  155. data/lib/libv8/scons/engine/SCons/Tool/rpm.py +2 -2
  156. data/lib/libv8/scons/engine/SCons/Tool/sgiar.py +2 -2
  157. data/lib/libv8/scons/engine/SCons/Tool/sgic++.py +2 -2
  158. data/lib/libv8/scons/engine/SCons/Tool/sgicc.py +2 -2
  159. data/lib/libv8/scons/engine/SCons/Tool/sgilink.py +2 -3
  160. data/lib/libv8/scons/engine/SCons/Tool/sunar.py +2 -2
  161. data/lib/libv8/scons/engine/SCons/Tool/sunc++.py +2 -2
  162. data/lib/libv8/scons/engine/SCons/Tool/suncc.py +2 -2
  163. data/lib/libv8/scons/engine/SCons/Tool/sunf77.py +2 -2
  164. data/lib/libv8/scons/engine/SCons/Tool/sunf90.py +2 -2
  165. data/lib/libv8/scons/engine/SCons/Tool/sunf95.py +2 -2
  166. data/lib/libv8/scons/engine/SCons/Tool/sunlink.py +2 -3
  167. data/lib/libv8/scons/engine/SCons/Tool/swig.py +6 -5
  168. data/lib/libv8/scons/engine/SCons/Tool/tar.py +2 -2
  169. data/lib/libv8/scons/engine/SCons/Tool/tex.py +96 -43
  170. data/lib/libv8/scons/engine/SCons/Tool/textfile.py +2 -2
  171. data/lib/libv8/scons/engine/SCons/Tool/tlib.py +2 -2
  172. data/lib/libv8/scons/engine/SCons/Tool/wix.py +2 -2
  173. data/lib/libv8/scons/engine/SCons/Tool/yacc.py +12 -2
  174. data/lib/libv8/scons/engine/SCons/Tool/zip.py +2 -2
  175. data/lib/libv8/scons/engine/SCons/Util.py +3 -3
  176. data/lib/libv8/scons/engine/SCons/Variables/BoolVariable.py +2 -2
  177. data/lib/libv8/scons/engine/SCons/Variables/EnumVariable.py +3 -3
  178. data/lib/libv8/scons/engine/SCons/Variables/ListVariable.py +2 -2
  179. data/lib/libv8/scons/engine/SCons/Variables/PackageVariable.py +2 -2
  180. data/lib/libv8/scons/engine/SCons/Variables/PathVariable.py +2 -2
  181. data/lib/libv8/scons/engine/SCons/Variables/__init__.py +2 -2
  182. data/lib/libv8/scons/engine/SCons/Warnings.py +2 -2
  183. data/lib/libv8/scons/engine/SCons/__init__.py +6 -6
  184. data/lib/libv8/scons/engine/SCons/compat/__init__.py +2 -2
  185. data/lib/libv8/scons/engine/SCons/compat/_scons_builtins.py +2 -2
  186. data/lib/libv8/scons/engine/SCons/compat/_scons_collections.py +2 -2
  187. data/lib/libv8/scons/engine/SCons/compat/_scons_dbm.py +2 -2
  188. data/lib/libv8/scons/engine/SCons/compat/_scons_hashlib.py +2 -2
  189. data/lib/libv8/scons/engine/SCons/compat/_scons_io.py +2 -2
  190. data/lib/libv8/scons/engine/SCons/cpp.py +2 -2
  191. data/lib/libv8/scons/engine/SCons/dblite.py +4 -1
  192. data/lib/libv8/scons/engine/SCons/exitfuncs.py +2 -2
  193. data/lib/libv8/scons/scons-time.1 +3 -3
  194. data/lib/libv8/scons/scons.1 +1209 -1203
  195. data/lib/libv8/scons/sconsign.1 +3 -3
  196. data/lib/libv8/scons/script/scons +22 -22
  197. data/lib/libv8/scons/script/scons-time +2 -2
  198. data/lib/libv8/scons/script/scons.bat +7 -4
  199. data/lib/libv8/scons/script/sconsign +21 -20
  200. data/lib/libv8/scons/setup.cfg +0 -1
  201. data/lib/libv8/scons/setup.py +38 -40
  202. data/lib/libv8/version.rb +4 -2
  203. data/libv8.gemspec +7 -2
  204. metadata +46 -67
@@ -10,7 +10,7 @@ selection method.
10
10
  """
11
11
 
12
12
  #
13
- # Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
13
+ # Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
14
14
  #
15
15
  # Permission is hereby granted, free of charge, to any person obtaining
16
16
  # a copy of this software and associated documentation files (the
@@ -32,7 +32,7 @@ selection method.
32
32
  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
33
33
  from __future__ import division
34
34
 
35
- __revision__ = "src/engine/SCons/Tool/intelc.py 5134 2010/08/16 23:02:40 bdeegan"
35
+ __revision__ = "src/engine/SCons/Tool/intelc.py 5357 2011/09/09 21:31:03 bdeegan"
36
36
 
37
37
  import math, sys, os.path, glob, string, re
38
38
 
@@ -40,7 +40,7 @@ is_windows = sys.platform == 'win32'
40
40
  is_win64 = is_windows and (os.environ['PROCESSOR_ARCHITECTURE'] == 'AMD64' or
41
41
  ('PROCESSOR_ARCHITEW6432' in os.environ and
42
42
  os.environ['PROCESSOR_ARCHITEW6432'] == 'AMD64'))
43
- is_linux = sys.platform == 'linux2'
43
+ is_linux = sys.platform.startswith('linux')
44
44
  is_mac = sys.platform == 'darwin'
45
45
 
46
46
  if is_windows:
@@ -230,17 +230,26 @@ def get_all_compiler_versions():
230
230
  for d in glob.glob('/opt/intel/cc*/*'):
231
231
  # Typical dir here is /opt/intel/cc/9.0 for IA32,
232
232
  # /opt/intel/cce/9.0 for EMT64 (AMD64)
233
- m = re.search(r'([0-9.]+)$', d)
233
+ m = re.search(r'([0-9][0-9.]*)$', d)
234
+ if m:
235
+ versions.append(m.group(1))
236
+ for d in glob.glob('/opt/intel/Compiler/*'):
237
+ # Typical dir here is /opt/intel/Compiler/11.1
238
+ m = re.search(r'([0-9][0-9.]*)$', d)
234
239
  if m:
235
240
  versions.append(m.group(1))
236
241
  elif is_mac:
237
242
  for d in glob.glob('/opt/intel/cc*/*'):
238
243
  # Typical dir here is /opt/intel/cc/9.0 for IA32,
239
244
  # /opt/intel/cce/9.0 for EMT64 (AMD64)
240
- m = re.search(r'([0-9.]+)$', d)
245
+ m = re.search(r'([0-9][0-9.]*)$', d)
241
246
  if m:
242
247
  versions.append(m.group(1))
243
- return sorted(uniquify(versions)) # remove dups
248
+ def keyfunc(str):
249
+ """Given a dot-separated version string, return a tuple of ints representing it."""
250
+ return [int(x) for x in str.split('.')]
251
+ # split into ints, sort, then remove dups
252
+ return sorted(uniquify(versions), key=keyfunc, reverse=True)
244
253
 
245
254
  def get_intel_compiler_top(version, abi):
246
255
  """
@@ -259,15 +268,33 @@ def get_intel_compiler_top(version, abi):
259
268
  and not os.path.exists(os.path.join(top, "Bin", abi, "icl.exe")):
260
269
  raise MissingDirError("Can't find Intel compiler in %s"%(top))
261
270
  elif is_mac or is_linux:
262
- # first dir is new (>=9.0) style, second is old (8.0) style.
263
- dirs=('/opt/intel/cc/%s', '/opt/intel_cc_%s')
264
- if abi == 'x86_64':
265
- dirs=('/opt/intel/cce/%s',) # 'e' stands for 'em64t', aka x86_64 aka amd64
266
- top=None
267
- for d in dirs:
268
- if os.path.exists(os.path.join(d%version, "bin", "icc")):
269
- top = d%version
270
- break
271
+ def find_in_2008style_dir(version):
272
+ # first dir is new (>=9.0) style, second is old (8.0) style.
273
+ dirs=('/opt/intel/cc/%s', '/opt/intel_cc_%s')
274
+ if abi == 'x86_64':
275
+ dirs=('/opt/intel/cce/%s',) # 'e' stands for 'em64t', aka x86_64 aka amd64
276
+ top=None
277
+ for d in dirs:
278
+ if os.path.exists(os.path.join(d%version, "bin", "icc")):
279
+ top = d%version
280
+ break
281
+ return top
282
+ def find_in_2010style_dir(version):
283
+ dirs=('/opt/intel/Compiler/%s/*'%version)
284
+ # typically /opt/intel/Compiler/11.1/064 (then bin/intel64/icc)
285
+ dirs=glob.glob(dirs)
286
+ # find highest sub-version number by reverse sorting and picking first existing one.
287
+ dirs.sort()
288
+ dirs.reverse()
289
+ top=None
290
+ for d in dirs:
291
+ if (os.path.exists(os.path.join(d, "bin", "ia32", "icc")) or
292
+ os.path.exists(os.path.join(d, "bin", "intel64", "icc"))):
293
+ top = d
294
+ break
295
+ return top
296
+ top = find_in_2010style_dir(version) or find_in_2008style_dir(version)
297
+ print "INTELC: top=",top
271
298
  if not top:
272
299
  raise MissingDirError("Can't find version %s Intel compiler in %s (abi='%s')"%(version,top, abi))
273
300
  return top
@@ -353,29 +380,42 @@ def generate(env, version=None, abi=None, topdir=None, verbose=0):
353
380
  (str(version), str(abi)))
354
381
 
355
382
  if topdir:
383
+ archdir={'x86_64': 'intel64',
384
+ 'amd64' : 'intel64',
385
+ 'em64t' : 'intel64',
386
+ 'x86' : 'ia32',
387
+ 'i386' : 'ia32',
388
+ 'ia32' : 'ia32'
389
+ }[abi] # for v11 and greater
390
+ if os.path.exists(os.path.join(topdir, 'bin', archdir)):
391
+ bindir="bin/%s"%archdir
392
+ libdir="lib/%s"%archdir
393
+ else:
394
+ bindir="bin"
395
+ libdir="lib"
356
396
  if verbose:
357
- print "Intel C compiler: using version %s (%g), abi %s, in '%s'"%\
358
- (repr(version), linux_ver_normalize(version),abi,topdir)
397
+ print "Intel C compiler: using version %s (%g), abi %s, in '%s/%s'"%\
398
+ (repr(version), linux_ver_normalize(version),abi,topdir,bindir)
359
399
  if is_linux:
360
400
  # Show the actual compiler version by running the compiler.
361
- os.system('%s/bin/icc --version'%topdir)
401
+ os.system('%s/%s/icc --version'%(topdir,bindir))
362
402
  if is_mac:
363
403
  # Show the actual compiler version by running the compiler.
364
- os.system('%s/bin/icc --version'%topdir)
404
+ os.system('%s/%s/icc --version'%(topdir,bindir))
365
405
 
366
406
  env['INTEL_C_COMPILER_TOP'] = topdir
367
407
  if is_linux:
368
408
  paths={'INCLUDE' : 'include',
369
- 'LIB' : 'lib',
370
- 'PATH' : 'bin',
371
- 'LD_LIBRARY_PATH' : 'lib'}
409
+ 'LIB' : libdir,
410
+ 'PATH' : bindir,
411
+ 'LD_LIBRARY_PATH' : libdir}
372
412
  for p in paths.keys():
373
413
  env.PrependENVPath(p, os.path.join(topdir, paths[p]))
374
414
  if is_mac:
375
415
  paths={'INCLUDE' : 'include',
376
- 'LIB' : 'lib',
377
- 'PATH' : 'bin',
378
- 'LD_LIBRARY_PATH' : 'lib'}
416
+ 'LIB' : libdir,
417
+ 'PATH' : bindir,
418
+ 'LD_LIBRARY_PATH' : libdir}
379
419
  for p in paths.keys():
380
420
  env.PrependENVPath(p, os.path.join(topdir, paths[p]))
381
421
  if is_windows:
@@ -11,7 +11,7 @@ packages fake_root.
11
11
  """
12
12
 
13
13
  #
14
- # Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
14
+ # Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
15
15
  #
16
16
  # Permission is hereby granted, free of charge, to any person obtaining
17
17
  # a copy of this software and associated documentation files (the
@@ -33,7 +33,7 @@ packages fake_root.
33
33
  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
34
34
  #
35
35
 
36
- __revision__ = "src/engine/SCons/Tool/ipkg.py 5134 2010/08/16 23:02:40 bdeegan"
36
+ __revision__ = "src/engine/SCons/Tool/ipkg.py 5357 2011/09/09 21:31:03 bdeegan"
37
37
 
38
38
  import os
39
39
 
@@ -9,7 +9,7 @@ selection method.
9
9
  """
10
10
 
11
11
  #
12
- # Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
12
+ # Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
13
13
  #
14
14
  # Permission is hereby granted, free of charge, to any person obtaining
15
15
  # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
31
31
  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
32
32
  #
33
33
 
34
- __revision__ = "src/engine/SCons/Tool/jar.py 5134 2010/08/16 23:02:40 bdeegan"
34
+ __revision__ = "src/engine/SCons/Tool/jar.py 5357 2011/09/09 21:31:03 bdeegan"
35
35
 
36
36
  import SCons.Subst
37
37
  import SCons.Util
@@ -101,7 +101,13 @@ def generate(env):
101
101
  env['JARSUFFIX'] = '.jar'
102
102
 
103
103
  def exists(env):
104
- return env.Detect('jar')
104
+ # As reported by Jan Nijtmans in issue #2730, the simple
105
+ # return env.Detect('jar')
106
+ # doesn't always work during initialization. For now, we
107
+ # stop trying to detect an executable (analogous to the
108
+ # javac Builder).
109
+ # TODO: Come up with a proper detect() routine...and enable it.
110
+ return 1
105
111
 
106
112
  # Local Variables:
107
113
  # tab-width:4
@@ -9,7 +9,7 @@ selection method.
9
9
  """
10
10
 
11
11
  #
12
- # Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
12
+ # Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
13
13
  #
14
14
  # Permission is hereby granted, free of charge, to any person obtaining
15
15
  # a copy of this software and associated documentation files (the
@@ -30,7 +30,7 @@ selection method.
30
30
  # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
31
31
  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
32
32
 
33
- __revision__ = "src/engine/SCons/Tool/javac.py 5134 2010/08/16 23:02:40 bdeegan"
33
+ __revision__ = "src/engine/SCons/Tool/javac.py 5357 2011/09/09 21:31:03 bdeegan"
34
34
 
35
35
  import os
36
36
  import os.path
@@ -9,7 +9,7 @@ selection method.
9
9
  """
10
10
 
11
11
  #
12
- # Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
12
+ # Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
13
13
  #
14
14
  # Permission is hereby granted, free of charge, to any person obtaining
15
15
  # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
31
31
  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
32
32
  #
33
33
 
34
- __revision__ = "src/engine/SCons/Tool/javah.py 5134 2010/08/16 23:02:40 bdeegan"
34
+ __revision__ = "src/engine/SCons/Tool/javah.py 5357 2011/09/09 21:31:03 bdeegan"
35
35
 
36
36
  import os.path
37
37
 
@@ -10,7 +10,7 @@ selection method.
10
10
  """
11
11
 
12
12
  #
13
- # Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
13
+ # Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
14
14
  #
15
15
  # Permission is hereby granted, free of charge, to any person obtaining
16
16
  # a copy of this software and associated documentation files (the
@@ -32,7 +32,7 @@ selection method.
32
32
  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
33
33
  #
34
34
 
35
- __revision__ = "src/engine/SCons/Tool/latex.py 5134 2010/08/16 23:02:40 bdeegan"
35
+ __revision__ = "src/engine/SCons/Tool/latex.py 5357 2011/09/09 21:31:03 bdeegan"
36
36
 
37
37
  import SCons.Action
38
38
  import SCons.Defaults
@@ -70,6 +70,7 @@ def generate(env):
70
70
  SCons.Tool.tex.generate_common(env)
71
71
 
72
72
  def exists(env):
73
+ SCons.Tool.tex.generate_darwin(env)
73
74
  return env.Detect('latex')
74
75
 
75
76
  # Local Variables:
@@ -9,7 +9,7 @@ selection method.
9
9
  """
10
10
 
11
11
  #
12
- # Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
12
+ # Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
13
13
  #
14
14
  # Permission is hereby granted, free of charge, to any person obtaining
15
15
  # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
31
31
  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
32
32
  #
33
33
 
34
- __revision__ = "src/engine/SCons/Tool/lex.py 5134 2010/08/16 23:02:40 bdeegan"
34
+ __revision__ = "src/engine/SCons/Tool/lex.py 5357 2011/09/09 21:31:03 bdeegan"
35
35
 
36
36
  import os.path
37
37
 
@@ -9,7 +9,7 @@ selection method.
9
9
  """
10
10
 
11
11
  #
12
- # Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
12
+ # Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
13
13
  #
14
14
  # Permission is hereby granted, free of charge, to any person obtaining
15
15
  # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
31
31
  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
32
32
  #
33
33
 
34
- __revision__ = "src/engine/SCons/Tool/link.py 5134 2010/08/16 23:02:40 bdeegan"
34
+ __revision__ = "src/engine/SCons/Tool/link.py 5357 2011/09/09 21:31:03 bdeegan"
35
35
 
36
36
  import SCons.Defaults
37
37
  import SCons.Tool
@@ -75,14 +75,15 @@ def generate(env):
75
75
 
76
76
  env['SHLINK'] = '$LINK'
77
77
  env['SHLINKFLAGS'] = SCons.Util.CLVar('$LINKFLAGS -shared')
78
- env['SHLINKCOM'] = '$SHLINK -o $TARGET $SHLINKFLAGS $SOURCES $_LIBDIRFLAGS $_LIBFLAGS'
78
+ env['SHLINKCOM'] = '$SHLINK -o $TARGET $SHLINKFLAGS $__RPATH $SOURCES $_LIBDIRFLAGS $_LIBFLAGS'
79
79
  # don't set up the emitter, cause AppendUnique will generate a list
80
80
  # starting with None :-(
81
81
  env.Append(SHLIBEMITTER = [shlib_emitter])
82
82
  env['SMARTLINK'] = smart_link
83
83
  env['LINK'] = "$SMARTLINK"
84
84
  env['LINKFLAGS'] = SCons.Util.CLVar('')
85
- env['LINKCOM'] = '$LINK -o $TARGET $LINKFLAGS $SOURCES $_LIBDIRFLAGS $_LIBFLAGS'
85
+ # __RPATH is only set to something ($_RPATH typically) on platforms that support it.
86
+ env['LINKCOM'] = '$LINK -o $TARGET $LINKFLAGS $__RPATH $SOURCES $_LIBDIRFLAGS $_LIBFLAGS'
86
87
  env['LIBDIRPREFIX']='-L'
87
88
  env['LIBDIRSUFFIX']=''
88
89
  env['_LIBFLAGS']='${_stripixes(LIBLINKPREFIX, LIBS, LIBLINKSUFFIX, LIBPREFIXES, LIBSUFFIXES, __env__)}'
@@ -105,7 +106,7 @@ def generate(env):
105
106
  env['LDMODULEPREFIX'] = '$SHLIBPREFIX'
106
107
  env['LDMODULESUFFIX'] = '$SHLIBSUFFIX'
107
108
  env['LDMODULEFLAGS'] = '$SHLINKFLAGS'
108
- env['LDMODULECOM'] = '$LDMODULE -o $TARGET $LDMODULEFLAGS $SOURCES $_LIBDIRFLAGS $_LIBFLAGS'
109
+ env['LDMODULECOM'] = '$LDMODULE -o $TARGET $LDMODULEFLAGS $__RPATH $SOURCES $_LIBDIRFLAGS $_LIBFLAGS'
109
110
 
110
111
 
111
112
 
@@ -10,7 +10,7 @@ selection method.
10
10
  """
11
11
 
12
12
  #
13
- # Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
13
+ # Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
14
14
  #
15
15
  # Permission is hereby granted, free of charge, to any person obtaining
16
16
  # a copy of this software and associated documentation files (the
@@ -32,7 +32,7 @@ selection method.
32
32
  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
33
33
  #
34
34
 
35
- __revision__ = "src/engine/SCons/Tool/linkloc.py 5134 2010/08/16 23:02:40 bdeegan"
35
+ __revision__ = "src/engine/SCons/Tool/linkloc.py 5357 2011/09/09 21:31:03 bdeegan"
36
36
 
37
37
  import os.path
38
38
  import re
@@ -9,7 +9,7 @@ selection method.
9
9
  """
10
10
 
11
11
  #
12
- # Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
12
+ # Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
13
13
  #
14
14
  # Permission is hereby granted, free of charge, to any person obtaining
15
15
  # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
31
31
  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
32
32
  #
33
33
 
34
- __revision__ = "src/engine/SCons/Tool/m4.py 5134 2010/08/16 23:02:40 bdeegan"
34
+ __revision__ = "src/engine/SCons/Tool/m4.py 5357 2011/09/09 21:31:03 bdeegan"
35
35
 
36
36
  import SCons.Action
37
37
  import SCons.Builder
@@ -9,7 +9,7 @@ selection method.
9
9
  """
10
10
 
11
11
  #
12
- # Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
12
+ # Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
13
13
  #
14
14
  # Permission is hereby granted, free of charge, to any person obtaining
15
15
  # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
31
31
  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
32
32
  #
33
33
 
34
- __revision__ = "src/engine/SCons/Tool/masm.py 5134 2010/08/16 23:02:40 bdeegan"
34
+ __revision__ = "src/engine/SCons/Tool/masm.py 5357 2011/09/09 21:31:03 bdeegan"
35
35
 
36
36
  import SCons.Defaults
37
37
  import SCons.Tool
@@ -9,7 +9,7 @@ selection method.
9
9
  """
10
10
 
11
11
  #
12
- # Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
12
+ # Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
13
13
  #
14
14
  # Permission is hereby granted, free of charge, to any person obtaining
15
15
  # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
31
31
  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
32
32
  #
33
33
 
34
- __revision__ = "src/engine/SCons/Tool/midl.py 5134 2010/08/16 23:02:40 bdeegan"
34
+ __revision__ = "src/engine/SCons/Tool/midl.py 5357 2011/09/09 21:31:03 bdeegan"
35
35
 
36
36
  import SCons.Action
37
37
  import SCons.Builder
@@ -9,7 +9,7 @@ selection method.
9
9
  """
10
10
 
11
11
  #
12
- # Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
12
+ # Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
13
13
  #
14
14
  # Permission is hereby granted, free of charge, to any person obtaining
15
15
  # a copy of this software and associated documentation files (the
@@ -31,7 +31,7 @@ selection method.
31
31
  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
32
32
  #
33
33
 
34
- __revision__ = "src/engine/SCons/Tool/mingw.py 5134 2010/08/16 23:02:40 bdeegan"
34
+ __revision__ = "src/engine/SCons/Tool/mingw.py 5357 2011/09/09 21:31:03 bdeegan"
35
35
 
36
36
  import os
37
37
  import os.path
@@ -46,8 +46,22 @@ import SCons.Util
46
46
  key_program = 'mingw32-gcc'
47
47
 
48
48
  def find(env):
49
- # First search in the SCons path and then the OS path:
50
- return env.WhereIs(key_program) or SCons.Util.WhereIs(key_program)
49
+ # First search in the SCons path
50
+ path=env.WhereIs(key_program)
51
+ if (path):
52
+ return path
53
+ # then the OS path:
54
+ path=SCons.Util.WhereIs(key_program)
55
+ if (path):
56
+ return path
57
+
58
+ # If that doesn't work try default location for mingw
59
+ save_path=env['ENV']['PATH']
60
+ env.AppendENVPath('PATH',r'c:\MinGW\bin')
61
+ path =env.WhereIs(key_program)
62
+ if not path:
63
+ env['ENV']['PATH']=save_path
64
+ return path
51
65
 
52
66
  def shlib_generator(target, source, env, for_signature):
53
67
  cmd = SCons.Util.CLVar(['$SHLINK', '$SHLINKFLAGS'])
@@ -77,10 +91,13 @@ def shlib_emitter(target, source, env):
77
91
  if not no_import_lib and \
78
92
  not env.FindIxes(target, 'LIBPREFIX', 'LIBSUFFIX'):
79
93
 
80
- # Append an import library to the list of targets.
81
- target.append(env.ReplaceIxes(dll,
94
+ # Create list of target libraries as strings
95
+ targetStrings=env.ReplaceIxes(dll,
82
96
  'SHLIBPREFIX', 'SHLIBSUFFIX',
83
- 'LIBPREFIX', 'LIBSUFFIX'))
97
+ 'LIBPREFIX', 'LIBSUFFIX')
98
+
99
+ # Now add file nodes to target list
100
+ target.append(env.fs.File(targetStrings))
84
101
 
85
102
  # Append a def file target if there isn't already a def file target
86
103
  # or a def file source. There is no option to disable def file
@@ -89,10 +106,14 @@ def shlib_emitter(target, source, env):
89
106
  def_source = env.FindIxes(source, 'WINDOWSDEFPREFIX', 'WINDOWSDEFSUFFIX')
90
107
  def_target = env.FindIxes(target, 'WINDOWSDEFPREFIX', 'WINDOWSDEFSUFFIX')
91
108
  if not def_source and not def_target:
92
- target.append(env.ReplaceIxes(dll,
109
+ # Create list of target libraries and def files as strings
110
+ targetStrings=env.ReplaceIxes(dll,
93
111
  'SHLIBPREFIX', 'SHLIBSUFFIX',
94
- 'WINDOWSDEFPREFIX', 'WINDOWSDEFSUFFIX'))
95
-
112
+ 'WINDOWSDEFPREFIX', 'WINDOWSDEFSUFFIX')
113
+
114
+ # Now add file nodes to target list
115
+ target.append(env.fs.File(targetStrings))
116
+
96
117
  return (target, source)
97
118
 
98
119