0650354383
I had to remove the THREADSAFE flag to make it work. Couchdb seems the reason to use Spidermonkey at this point. Without these changes Couchdb would crash hard when loading the Spidermonkey dylib. If the threadsafety is required then we should look into making a keg-only Spidermonkey for Couchdb's personal use. The nspr dependency isn't documented as required, and doesn't seem to make a difference if it is removed. So I removed it.
47 lines
1.5 KiB
Ruby
47 lines
1.5 KiB
Ruby
require 'brewkit'
|
|
|
|
class Spidermonkey <Formula
|
|
url "http://ftp.mozilla.org/pub/mozilla.org/js/js-1.7.0.tar.gz"
|
|
homepage 'https://developer.mozilla.org/en/SpiderMonkey'
|
|
md5 '5571134c3863686b623ebe4e6b1f6fe6'
|
|
|
|
depends_on 'readline'
|
|
|
|
def patches
|
|
DATA
|
|
end
|
|
|
|
def install
|
|
ENV.j1
|
|
|
|
# Spidermonkey hardsets the CC and CCC environment variables to cc and g++
|
|
# but homebrew uses compiler flags that aren't available in Apple's default cc (version 4.0.1)
|
|
# instead use the compilers chosen by homebrew and set in the CC and CXX environment variables
|
|
inreplace "src/config/Darwin.mk", 'CC = cc', "CC = #{ENV['CC']}"
|
|
inreplace "src/config/Darwin.mk", 'CCC = g++', "CCC = #{ENV['CXX']}"
|
|
|
|
# aparently this flag causes the build to fail for ivanvc on 10.5 with a
|
|
# penryn (core 2 duo) CPU. So lets be cautious here and remove it.
|
|
ENV['CFLAGS'] = ENV['CFLAGS'].gsub(/-msse[^\s]+/, '')
|
|
|
|
Dir.chdir "src" do
|
|
system "make DEFINES=-DJS_C_STRINGS_ARE_UTF8 -f Makefile.ref"
|
|
system "make JS_DIST='#{prefix}' -f Makefile.ref export"
|
|
system "ranlib #{lib}/libjs.a"
|
|
end
|
|
end
|
|
end
|
|
|
|
|
|
__END__
|
|
--- a/src/jsprf.c 2009-07-26 12:32:01.000000000 -0700
|
|
+++ b/src/jsprf.c 2009-07-26 12:33:12.000000000 -0700
|
|
@@ -58,6 +58,8 @@
|
|
*/
|
|
#ifdef HAVE_VA_COPY
|
|
#define VARARGS_ASSIGN(foo, bar) VA_COPY(foo,bar)
|
|
+#elif defined(va_copy)
|
|
+#define VARARGS_ASSIGN(foo, bar) va_copy(foo,bar)
|
|
#elif defined(HAVE_VA_LIST_AS_ARRAY)
|
|
#define VARARGS_ASSIGN(foo, bar) foo[0] = bar[0]
|
|
#else
|