<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[182122] trunk/Source/JavaScriptCore</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/182122">182122</a></dd>
<dt>Author</dt> <dd>mmaxfield@apple.com</dd>
<dt>Date</dt> <dd>2015-03-29 13:56:20 -0700 (Sun, 29 Mar 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>[Win] Allow building JavaScriptCore without Cygwin
https://bugs.webkit.org/show_bug.cgi?id=143189

Reviewed by Brent Fulgham.

Paths like /usr/bin/ don't exist on Windows.
Hashbangs don't work on Windows. Instead we must explicitly call the executable.
Prefixing commands with environment variables doesn't work on Windows.
Windows doesn't have 'cmp'
Windows uses 'del' instead of 'rm'
Windows uses 'type NUL' intead of 'touch'

* DerivedSources.make:
* JavaScriptCore.vcxproj/JavaScriptCoreGenerated.make:
* JavaScriptCore.vcxproj/LLInt/LLIntAssembly/LLIntAssembly.make:
* JavaScriptCore.vcxproj/LLInt/LLIntAssembly/build-LLIntAssembly.pl:
* JavaScriptCore.vcxproj/LLInt/LLIntDesiredOffsets/LLIntDesiredOffsets.make:
* JavaScriptCore.vcxproj/LLInt/LLIntDesiredOffsets/build-LLIntDesiredOffsets.pl:
* JavaScriptCore.vcxproj/build-generated-files.pl:
* UpdateContents.py: Copied from Source/JavaScriptCore/JavaScriptCore.vcxproj/LLInt/LLIntDesiredOffsets/build-LLIntDesiredOffsets.pl.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceJavaScriptCoreChangeLog">trunk/Source/JavaScriptCore/ChangeLog</a></li>
<li><a href="#trunkSourceJavaScriptCoreDerivedSourcesmake">trunk/Source/JavaScriptCore/DerivedSources.make</a></li>
<li><a href="#trunkSourceJavaScriptCoreJavaScriptCorevcxprojJavaScriptCoreGeneratedmake">trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCoreGenerated.make</a></li>
<li><a href="#trunkSourceJavaScriptCoreJavaScriptCorevcxprojLLIntLLIntAssemblyLLIntAssemblymake">trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/LLInt/LLIntAssembly/LLIntAssembly.make</a></li>
<li><a href="#trunkSourceJavaScriptCoreJavaScriptCorevcxprojLLIntLLIntAssemblybuildLLIntAssemblypl">trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/LLInt/LLIntAssembly/build-LLIntAssembly.pl</a></li>
<li><a href="#trunkSourceJavaScriptCoreJavaScriptCorevcxprojLLIntLLIntDesiredOffsetsLLIntDesiredOffsetsmake">trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/LLInt/LLIntDesiredOffsets/LLIntDesiredOffsets.make</a></li>
<li><a href="#trunkSourceJavaScriptCoreJavaScriptCorevcxprojLLIntLLIntDesiredOffsetsbuildLLIntDesiredOffsetspl">trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/LLInt/LLIntDesiredOffsets/build-LLIntDesiredOffsets.pl</a></li>
<li><a href="#trunkSourceJavaScriptCoreJavaScriptCorevcxprojbuildgeneratedfilespl">trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/build-generated-files.pl</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkSourceJavaScriptCoreUpdateContentspy">trunk/Source/JavaScriptCore/UpdateContents.py</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceJavaScriptCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/ChangeLog (182121 => 182122)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/ChangeLog        2015-03-29 20:40:15 UTC (rev 182121)
+++ trunk/Source/JavaScriptCore/ChangeLog        2015-03-29 20:56:20 UTC (rev 182122)
</span><span class="lines">@@ -1,3 +1,26 @@
</span><ins>+2015-03-29  Myles C. Maxfield  &lt;mmaxfield@apple.com&gt;
+
+        [Win] Allow building JavaScriptCore without Cygwin
+        https://bugs.webkit.org/show_bug.cgi?id=143189
+
+        Reviewed by Brent Fulgham.
+
+        Paths like /usr/bin/ don't exist on Windows.
+        Hashbangs don't work on Windows. Instead we must explicitly call the executable.
+        Prefixing commands with environment variables doesn't work on Windows.
+        Windows doesn't have 'cmp'
+        Windows uses 'del' instead of 'rm'
+        Windows uses 'type NUL' intead of 'touch'
+
+        * DerivedSources.make:
+        * JavaScriptCore.vcxproj/JavaScriptCoreGenerated.make:
+        * JavaScriptCore.vcxproj/LLInt/LLIntAssembly/LLIntAssembly.make:
+        * JavaScriptCore.vcxproj/LLInt/LLIntAssembly/build-LLIntAssembly.pl:
+        * JavaScriptCore.vcxproj/LLInt/LLIntDesiredOffsets/LLIntDesiredOffsets.make:
+        * JavaScriptCore.vcxproj/LLInt/LLIntDesiredOffsets/build-LLIntDesiredOffsets.pl:
+        * JavaScriptCore.vcxproj/build-generated-files.pl:
+        * UpdateContents.py: Copied from Source/JavaScriptCore/JavaScriptCore.vcxproj/LLInt/LLIntDesiredOffsets/build-LLIntDesiredOffsets.pl.
+
</ins><span class="cx"> 2015-03-28  Joseph Pecoraro  &lt;pecoraro@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Clean up JavaScriptCore/builtins
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreDerivedSourcesmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/DerivedSources.make (182121 => 182122)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/DerivedSources.make        2015-03-29 20:40:15 UTC (rev 182121)
+++ trunk/Source/JavaScriptCore/DerivedSources.make        2015-03-29 20:56:20 UTC (rev 182122)
</span><span class="lines">@@ -68,13 +68,13 @@
</span><span class="cx"> # builtin functions
</span><span class="cx"> .PHONY: JSCBuiltins
</span><span class="cx"> 
</span><del>-# Windows has specific needs for specifying the path to its interpreters
</del><ins>+PYTHON = python
+PERL = perl
+
</ins><span class="cx"> ifeq ($(OS),Windows_NT)
</span><del>-    PYTHON = /usr/bin/python
-    PERL = /usr/bin/perl
</del><ins>+    DELETE = cmd //C del
</ins><span class="cx"> else
</span><del>-    PYTHON = python
-    PERL = perl
</del><ins>+    DELETE = rm -f
</ins><span class="cx"> endif
</span><span class="cx"> # --------
</span><span class="cx"> 
</span><span class="lines">@@ -87,9 +87,9 @@
</span><span class="cx"> # lookup tables for classes
</span><span class="cx"> 
</span><span class="cx"> %.lut.h: create_hash_table %.cpp
</span><del>-        $^ -i &gt; $@
</del><ins>+        $(PERL) $^ -i &gt; $@
</ins><span class="cx"> Lexer.lut.h: create_hash_table Keywords.table
</span><del>-        $^ &gt; $@
</del><ins>+        $(PERL) $^ &gt; $@
</ins><span class="cx"> 
</span><span class="cx"> # character tables for Yarr
</span><span class="cx"> 
</span><span class="lines">@@ -102,7 +102,7 @@
</span><span class="cx"> # udis86 instruction tables
</span><span class="cx"> 
</span><span class="cx"> udis86_itab.h: $(JavaScriptCore)/disassembler/udis86/itab.py $(JavaScriptCore)/disassembler/udis86/optable.xml
</span><del>-        (PYTHONPATH=$(JavaScriptCore)/disassembler/udis86 $(PYTHON) $(JavaScriptCore)/disassembler/udis86/itab.py $(JavaScriptCore)/disassembler/udis86/optable.xml || exit 1)
</del><ins>+        $(PYTHON) $(JavaScriptCore)/disassembler/udis86/itab.py $(JavaScriptCore)/disassembler/udis86/optable.xml
</ins><span class="cx"> 
</span><span class="cx"> # Bytecode files
</span><span class="cx"> 
</span><span class="lines">@@ -170,8 +170,8 @@
</span><span class="cx"> # adding, modifying, or removing domains will trigger regeneration of inspector files.
</span><span class="cx"> 
</span><span class="cx"> .PHONY: force
</span><del>-EnabledInspectorDomains : force
-        echo '$(INSPECTOR_DOMAINS)' | cmp -s - $@ || echo '$(INSPECTOR_DOMAINS)' &gt; $@
</del><ins>+EnabledInspectorDomains : $(JavaScriptCore)/UpdateContents.py force
+        $(PYTHON) $(JavaScriptCore)/UpdateContents.py '$(INSPECTOR_DOMAINS)' $@
</ins><span class="cx"> 
</span><span class="cx"> CombinedDomains.json : inspector/scripts/generate-combined-inspector-json.py $(INSPECTOR_DOMAINS) EnabledInspectorDomains
</span><span class="cx">         $(PYTHON) $(JavaScriptCore)/inspector/scripts/generate-combined-inspector-json.py $(INSPECTOR_DOMAINS) &gt; ./CombinedDomains.json
</span><span class="lines">@@ -184,7 +184,7 @@
</span><span class="cx">         echo &quot;//# sourceURL=__WebInspectorInjectedScript__&quot; &gt; ./InjectedScriptSource.min.js
</span><span class="cx">         $(PYTHON) $(JavaScriptCore)/inspector/scripts/jsmin.py &lt; $(JavaScriptCore)/inspector/InjectedScriptSource.js &gt;&gt; ./InjectedScriptSource.min.js
</span><span class="cx">         $(PERL) $(JavaScriptCore)/inspector/scripts/xxd.pl InjectedScriptSource_js ./InjectedScriptSource.min.js InjectedScriptSource.h
</span><del>-        rm -f ./InjectedScriptSource.min.js
</del><ins>+        $(DELETE) InjectedScriptSource.min.js
</ins><span class="cx"> 
</span><span class="cx"> # Web Replay inputs generator
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreJavaScriptCorevcxprojJavaScriptCoreGeneratedmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCoreGenerated.make (182121 => 182122)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCoreGenerated.make        2015-03-29 20:40:15 UTC (rev 182121)
+++ trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCoreGenerated.make        2015-03-29 20:56:20 UTC (rev 182122)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> all:
</span><del>-    @touch &quot;%ConfigurationBuildDir%\buildfailed&quot;
</del><ins>+    @type NUL &gt; &quot;%ConfigurationBuildDir%\buildfailed&quot;
</ins><span class="cx">     @perl build-generated-files.pl &quot;%ConfigurationBuildDir%&quot; &quot;$(WEBKIT_LIBRARIES)&quot; &quot;%PlatformArchitecture%&quot;
</span><span class="cx">     @copy-files.cmd
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreJavaScriptCorevcxprojLLIntLLIntAssemblyLLIntAssemblymake"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/LLInt/LLIntAssembly/LLIntAssembly.make (182121 => 182122)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/LLInt/LLIntAssembly/LLIntAssembly.make        2015-03-29 20:40:15 UTC (rev 182121)
+++ trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/LLInt/LLIntAssembly/LLIntAssembly.make        2015-03-29 20:56:20 UTC (rev 182122)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> all:
</span><del>-    touch &quot;%ConfigurationBuildDir%\buildfailed&quot;
</del><ins>+    @type NUL &gt; &quot;%ConfigurationBuildDir%\buildfailed&quot;
</ins><span class="cx">     perl build-LLIntAssembly.pl &quot;%ConfigurationBuildDir%&quot; &quot;$(WEBKIT_LIBRARIES)&quot; &quot;$(DEBUGSUFFIX)&quot; &quot;%PlatformArchitecture%&quot;
</span><span class="cx">     -del &quot;%ConfigurationBuildDir%\buildfailed&quot;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreJavaScriptCorevcxprojLLIntLLIntAssemblybuildLLIntAssemblypl"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/LLInt/LLIntAssembly/build-LLIntAssembly.pl (182121 => 182122)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/LLInt/LLIntAssembly/build-LLIntAssembly.pl        2015-03-29 20:40:15 UTC (rev 182121)
+++ trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/LLInt/LLIntAssembly/build-LLIntAssembly.pl        2015-03-29 20:56:20 UTC (rev 182122)
</span><span class="lines">@@ -67,4 +67,4 @@
</span><span class="cx"> my $offlineAsm = File::Spec-&gt;catfile($XSRCROOT, 'offlineasm', 'asm.rb');
</span><span class="cx"> my $lowLevelInterpreter = File::Spec-&gt;catfile($XSRCROOT, 'llint', 'LowLevelInterpreter.asm');
</span><span class="cx"> my $offsetsExtractor = File::Spec-&gt;catfile($BUILD_PRODUCTS_DIR, 'LLIntOffsetsExtractor', &quot;LLIntOffsetsExtractor$ARGV[2].exe&quot;);
</span><del>-system('/usr/bin/env', 'ruby', $offlineAsm, '-I.', $lowLevelInterpreter, $offsetsExtractor, $OUTPUTFILENAME) and die &quot;Failed to generate $OUTPUTFILENAME: $!&quot;;
</del><ins>+system('ruby', $offlineAsm, '-I.', $lowLevelInterpreter, $offsetsExtractor, $OUTPUTFILENAME) and die &quot;Failed to generate $OUTPUTFILENAME: $!&quot;;
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreJavaScriptCorevcxprojLLIntLLIntDesiredOffsetsLLIntDesiredOffsetsmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/LLInt/LLIntDesiredOffsets/LLIntDesiredOffsets.make (182121 => 182122)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/LLInt/LLIntDesiredOffsets/LLIntDesiredOffsets.make        2015-03-29 20:40:15 UTC (rev 182121)
+++ trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/LLInt/LLIntDesiredOffsets/LLIntDesiredOffsets.make        2015-03-29 20:56:20 UTC (rev 182122)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> all:
</span><del>-    touch &quot;%ConfigurationBuildDir%\buildfailed&quot;
</del><ins>+    @type NUL &gt; &quot;%ConfigurationBuildDir%\buildfailed&quot;
</ins><span class="cx">     perl build-LLIntDesiredOffsets.pl &quot;%ConfigurationBuildDir%&quot; &quot;$(WEBKIT_LIBRARIES)&quot; &quot;%PlatformArchitecture%&quot;
</span><span class="cx"> 
</span><span class="cx">     -del &quot;%ConfigurationBuildDir%\buildfailed&quot;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreJavaScriptCorevcxprojLLIntLLIntDesiredOffsetsbuildLLIntDesiredOffsetspl"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/LLInt/LLIntDesiredOffsets/build-LLIntDesiredOffsets.pl (182121 => 182122)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/LLInt/LLIntDesiredOffsets/build-LLIntDesiredOffsets.pl        2015-03-29 20:40:15 UTC (rev 182121)
+++ trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/LLInt/LLIntDesiredOffsets/build-LLIntDesiredOffsets.pl        2015-03-29 20:56:20 UTC (rev 182122)
</span><span class="lines">@@ -55,4 +55,4 @@
</span><span class="cx"> my $generateOffsetExtractor = File::Spec-&gt;catfile($XSRCROOT, 'offlineasm', 'generate_offset_extractor.rb');
</span><span class="cx"> my $lowLevelInterpreter = File::Spec-&gt;catfile($XSRCROOT, 'llint', 'LowLevelInterpreter.asm');
</span><span class="cx"> my $OUTPUTFILENAME = File::Spec-&gt;catfile($BUILD_PRODUCTS_DIR, 'LLIntDesiredOffsets.h');
</span><del>-system('/usr/bin/env', 'ruby', $generateOffsetExtractor, &quot;-I$BUILD_PRODUCTS_DIR&quot;, $lowLevelInterpreter, $OUTPUTFILENAME) and die &quot;Failed to generate $OUTPUTFILENAME: $!&quot;;
</del><ins>+system('ruby', $generateOffsetExtractor, &quot;-I$BUILD_PRODUCTS_DIR&quot;, $lowLevelInterpreter, $OUTPUTFILENAME) and die &quot;Failed to generate $OUTPUTFILENAME: $!&quot;;
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreJavaScriptCorevcxprojbuildgeneratedfilespl"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/build-generated-files.pl (182121 => 182122)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/build-generated-files.pl        2015-03-29 20:40:15 UTC (rev 182121)
+++ trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/build-generated-files.pl        2015-03-29 20:56:20 UTC (rev 182122)
</span><span class="lines">@@ -74,5 +74,4 @@
</span><span class="cx"> $ENV{'DFTABLES_EXTENSION'} = '.exe';
</span><span class="cx"> 
</span><span class="cx"> my $DERIVED_SOURCES_MAKEFILE = File::Spec-&gt;catfile($XSRCROOT, 'DerivedSources.make');
</span><del>-
-system('/usr/bin/make', '-f', $DERIVED_SOURCES_MAKEFILE, '-j', $NUMCPUS) and die &quot;Failed to build $DERIVED_SOURCES_MAKEFILE: $!&quot;;
</del><ins>+system('make', '-f', $DERIVED_SOURCES_MAKEFILE, '-j', $NUMCPUS) and die &quot;Failed to build $DERIVED_SOURCES_MAKEFILE: $!&quot;;
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreUpdateContentspyfromrev182121trunkSourceJavaScriptCoreJavaScriptCorevcxprojLLIntLLIntDesiredOffsetsbuildLLIntDesiredOffsetspl"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/UpdateContents.py (from rev 182121, trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/LLInt/LLIntDesiredOffsets/build-LLIntDesiredOffsets.pl) (0 => 182122)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/UpdateContents.py                                (rev 0)
+++ trunk/Source/JavaScriptCore/UpdateContents.py        2015-03-29 20:56:20 UTC (rev 182122)
</span><span class="lines">@@ -0,0 +1,48 @@
</span><ins>+#!/usr/bin/python
+
+# Copyright (C) 2015 Apple Inc.  All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# 1.  Redistributions of source code must retain the above copyright
+#     notice, this list of conditions and the following disclaimer.
+# 2.  Redistributions in binary form must reproduce the above copyright
+#     notice, this list of conditions and the following disclaimer in the
+#     documentation and/or other materials provided with the distribution.
+# 3.  Neither the name of Apple puter, Inc. (&quot;Apple&quot;) nor the names of
+#     its contributors may be used to endorse or promote products derived
+#     from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
+# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+import sys
+import os
+
+assert(len(sys.argv) == 3)
+
+comp = sys.argv[1]
+filename = sys.argv[2]
+
+t = False
+
+if os.path.isfile(filename):
+    f = open(filename, 'r')
+    comparator = f.read()
+    f.close()
+    t = True
+
+if (not t or comp == comparator):
+    f = open(filename, 'w')
+    f.write(comp)
+    f.close()
</ins></span></pre>
</div>
</div>

</body>
</html>