From b576cc442969ed44c4deee5a24c1e7c86a7f90cb Mon Sep 17 00:00:00 2001
From: wagerlabs <joelr1@gmail.com>
Date: Tue, 8 Dec 2009 08:15:29 -0800
Subject: [PATCH] static build with dbus, no component sdk

---
 browser/app/Makefile.in                       |    9 ++++++++-
 browser/components/build/Makefile.in          |    4 ++++
 browser/installer/Makefile.in                 |    2 +-
 browser/installer/package-manifest.in         |    3 ++-
 configure.in                                  |   12 ++++++++----
 db/sqlite3/src/Makefile.in                    |    7 ++++++-
 js/jsd/Makefile.in                            |    4 ++--
 js/src/Makefile.in                            |    5 +++++
 js/src/configure.in                           |    4 ++++
 js/src/dtoa.c                                 |    2 +-
 modules/libpr0n/decoders/icon/Makefile.in     |    9 ++++++++-
 modules/plugin/Makefile.in                    |    4 ++++
 toolkit/components/alerts/src/mac/Makefile.in |    6 +++++-
 toolkit/system/dbus/Makefile.in               |    8 ++++++--
 xpcom/build/Makefile.in                       |    6 ++++--
 xpcom/string/src/Makefile.in                  |    2 +-
 xpcom/stub/Makefile.in                        |    9 ++++++---
 xpinstall/src/Makefile.in                     |    2 +-
 18 files changed, 76 insertions(+), 22 deletions(-)

diff --git a/browser/app/Makefile.in b/browser/app/Makefile.in
index 0b70fef..111af11 100644
--- a/browser/app/Makefile.in
+++ b/browser/app/Makefile.in
@@ -103,6 +103,9 @@ else
 STATIC_COMPONENTS_LINKER_PATH = -L$(DEPTH)/staticlib
 endif
 LIBS += $(DEPTH)/toolkit/xre/$(LIB_PREFIX)xulapp_s.$(LIB_SUFFIX)
+ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT))
+LIBS += -framework SystemConfiguration -framework OpenGL
+endif
 else
 ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT))
 LIBS += $(DIST)/bin/XUL
@@ -136,6 +139,10 @@ ifneq (,$(filter gtk2,$(MOZ_WIDGET_TOOLKIT)))
 LIBS += $(XLDFLAGS) $(XLIBS) $(ZLIB_LIBS)
 endif
 
+ifneq (,$(MOZ_ENABLE_DBUS))
+LIBS += -ldbus-1 -ldbus-glib-1
+endif
+
 ifdef MOZ_JPROF
 LIBS += -ljprof
 endif
@@ -177,7 +184,7 @@ EXTRA_DEPS	+= \
 DEFINES		+= $(STATIC_DEFINES)
 CPPSRCS		+= $(STATIC_CPPSRCS)
 EXTRA_DSO_LIBS	+= $(STATIC_EXTRA_DSO_LIBS)
-EXTRA_LIBS	+= $(STATIC_EXTRA_LIBS)
+EXTRA_LIBS	+= $(STATIC_EXTRA_LIBS) -lxpcomglue_s
 endif
 
 ifeq ($(OS_ARCH),WINNT)
diff --git a/browser/components/build/Makefile.in b/browser/components/build/Makefile.in
index 7adf23c..278ba19 100644
--- a/browser/components/build/Makefile.in
+++ b/browser/components/build/Makefile.in
@@ -10,7 +10,11 @@ LIBRARY_NAME = browsercomps
 SHORT_LIBNAME = brwsrcmp
 IS_COMPONENT = 1
 MODULE_NAME = nsBrowserCompsModule
+ifdef BUILD_STATIC_LIBS
+EXPORT_LIBRARY = 1
+else
 FORCE_SHARED_LIB = 1
+endif
 
 # Because we are an application component, link against the CRT statically
 # (on Windows, but only if we're not building our own CRT for jemalloc)
diff --git a/browser/installer/Makefile.in b/browser/installer/Makefile.in
index 4898815..49fd892 100644
--- a/browser/installer/Makefile.in
+++ b/browser/installer/Makefile.in
@@ -59,7 +59,7 @@ include $(topsrcdir)/config/rules.mk
 
 MOZ_PKG_REMOVALS = $(srcdir)/removed-files.in
 
-ifdef MOZ_ENABLE_LIBXUL
+ifneq (_, $(MOZ_ENABLE_LIBXUL)_$(BUILD_STATIC_LIBS))
 MOZ_PKG_MANIFEST_P = $(srcdir)/package-manifest.in
 else
 define message
diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
index 9ddeffd..cd0786d 100644
--- a/browser/installer/package-manifest.in
+++ b/browser/installer/package-manifest.in
@@ -44,6 +44,7 @@
 @BINPATH@/@DLL_PREFIX@plc4@DLL_SUFFIX@
 @BINPATH@/@DLL_PREFIX@plds4@DLL_SUFFIX@
 @BINPATH@/@DLL_PREFIX@xpcom@DLL_SUFFIX@
+@BINPATH@/@DLL_PREFIX@xpcom_core@DLL_SUFFIX@
 @BINPATH@/@DLL_PREFIX@nspr4@DLL_SUFFIX@
 #ifdef XP_MACOSX
 @BINPATH@/XUL
@@ -87,7 +88,7 @@
 #elifdef XP_OS2
 @BINPATH@/plugins/npnulos2.dll
 #endif
-@BINPATH@/@DLL_PREFIX@sqlite3@DLL_SUFFIX@
+@BINPATH@/@DLL_PREFIX@mozsqlite3@DLL_SUFFIX@
 @BINPATH@/README.txt
 @BINPATH@/LICENSE
 @BINPATH@/blocklist.xml
diff --git a/configure.in b/configure.in
index 8c85b6a..2af3557 100644
--- a/configure.in
+++ b/configure.in
@@ -6134,7 +6134,7 @@ MOZ_NATIVE_SQLITE= )
 if test -z "$MOZ_NATIVE_SQLITE"
 then
     SQLITE_CFLAGS=
-    SQLITE_LIBS='$(call EXPAND_LIBNAME_PATH,sqlite3,$(DIST)/lib)'
+    SQLITE_LIBS='$(call EXPAND_LIBNAME_PATH,mozsqlite3,$(DIST)/lib)'
 else
     PKG_CHECK_MODULES(SQLITE, sqlite3 >= $SQLITE_VERSION)
 fi
@@ -7284,6 +7284,10 @@ MOZ_ARG_ENABLE_BOOL(static,
     BUILD_STATIC_LIBS=1,
     BUILD_STATIC_LIBS=)
 
+if test -n "$BUILD_STATIC_LIBS"; then
+MOZ_JS_LIBS='-L$(libdir) -ljs_static'
+fi
+
 dnl Disable libxul in debug builds, but not for xulrunner.
 if test -n "$MOZ_DEBUG" -a "$MOZ_BUILD_APP" != "xulrunner"; then
    MOZ_ENABLE_LIBXUL=
@@ -7294,9 +7298,9 @@ MOZ_ARG_ENABLE_BOOL(libxul,
     MOZ_ENABLE_LIBXUL=1,
     MOZ_ENABLE_LIBXUL=)
 
-if test -n "$MOZ_STATIC_BUILD_UNSUPPORTED" -a -n "$BUILD_STATIC_LIBS"; then
-	AC_MSG_ERROR([--enable-static is not supported for building $MOZ_APP_NAME. You probably want --enable-libxul.])
-fi
+#if test -n "$MOZ_STATIC_BUILD_UNSUPPORTED" -a -n "$BUILD_STATIC_LIBS"; then
+#	AC_MSG_ERROR([--enable-static is not supported for building $MOZ_APP_NAME. You probably want --enable-libxul.])
+#fi
 
 if test -n "$MOZ_ENABLE_LIBXUL" -a -n "$BUILD_STATIC_LIBS"; then
 	AC_MSG_ERROR([--enable-libxul is not compatible with --enable-static])
diff --git a/db/sqlite3/src/Makefile.in b/db/sqlite3/src/Makefile.in
index 9cbc0af..3cb3911 100644
--- a/db/sqlite3/src/Makefile.in
+++ b/db/sqlite3/src/Makefile.in
@@ -46,8 +46,13 @@ VPATH		= @srcdir@
 include $(DEPTH)/config/autoconf.mk
 
 MODULE           = sqlite3
-LIBRARY_NAME     = sqlite3
+LIBRARY_NAME     = mozsqlite3
+ifdef BUILD_STATIC_LIBS
+FORCE_STATIC_LIB = 1
+EXPORT_LIBRARY = 1
+else
 FORCE_SHARED_LIB = 1
+endif
 VISIBILITY_FLAGS =
 LIB_IS_C_ONLY    = 1
 
diff --git a/js/jsd/Makefile.in b/js/jsd/Makefile.in
index 79bcee3..157538d 100644
--- a/js/jsd/Makefile.in
+++ b/js/jsd/Makefile.in
@@ -47,7 +47,7 @@ include $(DEPTH)/config/autoconf.mk
 
 MODULE		= jsdebug
 LIBRARY_NAME	= jsd
-FORCE_SHARED_LIB= 1
+FORCE_STATIC_LIB = 1
 ifeq ($(OS_ARCH)$(MOZ_ENABLE_LIBXUL),WINNT)
 LIBRARY_NAME	= jsd$(MOZ_BITS)$(VERSION_NUMBER)
 endif
@@ -87,7 +87,7 @@ CPPSRCS	 = jsd_xpc.cpp
 IS_COMPONENT = 1
 LIBXUL_LIBRARY = 1
 
-ifdef MOZ_ENABLE_LIBXUL
+ifneq (_, $(MOZ_ENABLE_LIBXUL)_$(BUILD_STATIC_LIBS))
 FORCE_SHARED_LIB=
 MODULE_NAME = JavaScript_Debugger
 EXPORT_LIBRARY = 1
diff --git a/js/src/Makefile.in b/js/src/Makefile.in
index 311258a..82a976c 100644
--- a/js/src/Makefile.in
+++ b/js/src/Makefile.in
@@ -74,6 +74,9 @@ MODULE		    = js
 LIBRARY_NAME	    = mozjs
 STATIC_LIBRARY_NAME = js_static
 GRE_MODULE	    = 1
+ifdef BUILD_STATIC_LIBS
+DIST_INSTALL = 1
+endif
 
 LIBS		= $(NSPR_LIBS) 
 
@@ -114,7 +117,9 @@ endif
 # In fact, we now build both a static and a shared library, as the
 # JS shell would like to link to the static library.
 
+ifndef BUILD_STATIC_LIBS
 FORCE_SHARED_LIB = 1
+endif
 FORCE_STATIC_LIB = 1
 
 VPATH		= $(srcdir)
diff --git a/js/src/configure.in b/js/src/configure.in
index 3ffead0..40a76d6 100644
--- a/js/src/configure.in
+++ b/js/src/configure.in
@@ -4779,6 +4779,10 @@ MOZ_ARG_ENABLE_BOOL(static,
     BUILD_STATIC_LIBS=1,
     BUILD_STATIC_LIBS=)
 
+if test -n "$BUILD_STATIC_LIBS"; then
+MOZ_JS_LIBS='-L$(libdir) -ljs_static'
+fi
+
 dnl ========================================================
 dnl = Link js shell to system readline
 dnl ========================================================
diff --git a/js/src/dtoa.c b/js/src/dtoa.c
index 1fdd397..d7cb992 100644
--- a/js/src/dtoa.c
+++ b/js/src/dtoa.c
@@ -2592,7 +2592,7 @@ nrv_alloc(CONST char *s, char **rve, int n)
  * when MULTIPLE_THREADS is not defined.
  */
 
- void
+static void
 #ifdef KR_headers
 freedtoa(s) char *s;
 #else
diff --git a/modules/libpr0n/decoders/icon/Makefile.in b/modules/libpr0n/decoders/icon/Makefile.in
index 2cb4a48..a2c3af1 100644
--- a/modules/libpr0n/decoders/icon/Makefile.in
+++ b/modules/libpr0n/decoders/icon/Makefile.in
@@ -56,6 +56,13 @@ LIBXUL_LIBRARY = 1
 EXPORT_LIBRARY = 1
 endif
 
+ifneq (_, $(BUILD_STATIC_LIBS))
+USE_STATIC_LIBS = 1
+FORCE_STATIC_LIB = 1
+FORCE_SHARED_LIB = 
+EXPORT_LIBRARY = 1
+endif
+
 ifneq (,$(filter qt,$(MOZ_WIDGET_TOOLKIT)))
 EXTRA_DSO_LDOPTS = $(MOZ_QT_LIBS)
 PLATFORM = qt
@@ -101,7 +108,7 @@ XPIDLSRCS	= nsIIconURI.idl
 
 SHARED_LIBRARY_LIBS = $(PLATFORM)/$(LIB_PREFIX)imgicon$(PLATFORM)_s.$(LIB_SUFFIX)
 
-ifdef LIBXUL_LIBRARY
+ifneq (_, $(LIBXUL_LIBRARY)_$(BUILD_STATIC_LIBS))
 EXTRA_DSO_LDOPTS += \
 		$(EXTRA_DSO_LIBS) \
 		$(MOZ_COMPONENT_LIBS) \
diff --git a/modules/plugin/Makefile.in b/modules/plugin/Makefile.in
index aef5287..9d7dbc7 100644
--- a/modules/plugin/Makefile.in
+++ b/modules/plugin/Makefile.in
@@ -46,6 +46,10 @@ MODULE		= plugin
 
 DIRS		= base/public 
 
+ifneq (_, $(BUILD_STATIC_LIBS))
+MOZ_PLUGINS = 
+endif
+
 ifdef MOZ_PLUGINS
 DIRS		+= base/src 
 
diff --git a/toolkit/components/alerts/src/mac/Makefile.in b/toolkit/components/alerts/src/mac/Makefile.in
index fb524dc..9bf6238 100644
--- a/toolkit/components/alerts/src/mac/Makefile.in
+++ b/toolkit/components/alerts/src/mac/Makefile.in
@@ -44,8 +44,12 @@ include $(DEPTH)/config/autoconf.mk
 MODULE = alerts
 LIBRARY_NAME = alerts_s
 IS_COMPONENT = 1
+ifdef BUILD_STATIC_LIBS
+#EXPORT_LIBRARY = 1
+FORCE_STATIC_LIB = 1
+else
 FORCE_SHARED_LIB = 1
-
+endif
 
 CMMSRCS = \
   nsAlertsService.mm \
diff --git a/toolkit/system/dbus/Makefile.in b/toolkit/system/dbus/Makefile.in
index 332558d..7172037 100644
--- a/toolkit/system/dbus/Makefile.in
+++ b/toolkit/system/dbus/Makefile.in
@@ -44,10 +44,14 @@ include $(DEPTH)/config/autoconf.mk
 MODULE = dbus
 LIBRARY_NAME = dbusservice
 GRE_MODULE = 1
-#EXPORT_LIBRARY = 1
 IS_COMPONENT = 1
+ifneq (, $(BUILD_STATIC_LIBS))
+EXPORT_LIBRARY = 1
+FORCE_STATIC_LIB = 1
+MODULE_NAME = nsDBusModule 
+else
 FORCE_SHARED_LIB = 1
-
+endif
 
 EXTRA_DSO_LDOPTS = \
 	$(XPCOM_GLUE_LDOPTS) \
diff --git a/xpcom/build/Makefile.in b/xpcom/build/Makefile.in
index 6b3be07..8a5359a 100644
--- a/xpcom/build/Makefile.in
+++ b/xpcom/build/Makefile.in
@@ -52,7 +52,7 @@ SHORT_LIBNAME	= xpcomcor
 LIBXUL_LIBRARY = 1
 
 # This is only a static library in libxul builds
-ifdef MOZ_ENABLE_LIBXUL
+ifneq (_, $(MOZ_ENABLE_LIBXUL)_$(BUILD_STATIC_LIBS))
 EXPORT_LIBRARY = 1
 endif
 
@@ -132,7 +132,9 @@ EXPORTS_mozilla = \
 # Force use of PIC
 FORCE_USE_PIC	= 1 
 
-ifndef MOZ_ENABLE_LIBXUL
+ifneq (_, $(MOZ_ENABLE_LIBXUL)_$(BUILD_STATIC_LIBS))
+FORCE_STATIC_LIB = 1
+else
 FORCE_SHARED_LIB = 1
 endif
 
diff --git a/xpcom/string/src/Makefile.in b/xpcom/string/src/Makefile.in
index e7f03b8..348fef7 100644
--- a/xpcom/string/src/Makefile.in
+++ b/xpcom/string/src/Makefile.in
@@ -48,7 +48,7 @@ include $(DEPTH)/config/autoconf.mk
 MODULE		= string
 LIBRARY_NAME	= string_s
 MOZILLA_INTERNAL_API = 1
-
+EXPORT_LIBRARY = 1
 
 CPPSRCS		=				\
 		nsDependentString.cpp		\
diff --git a/xpcom/stub/Makefile.in b/xpcom/stub/Makefile.in
index 843677d..d1b43fc 100644
--- a/xpcom/stub/Makefile.in
+++ b/xpcom/stub/Makefile.in
@@ -50,11 +50,10 @@ LIBRARY_NAME	= xpcom
 NSDISTMODE = copy
 
 # Do not set EXPORT_LIBRARY as we do not want xpcom in the static libs list
-#EXPORT_LIBRARY = 1
+EXPORT_LIBRARY = 1
 GRE_MODULE	= 1
 MOZILLA_INTERNAL_API = 1
 
-
 LOCAL_INCLUDES	= -I$(srcdir)/../build
 
 CPPSRCS		= nsXPComStub.cpp
@@ -70,7 +69,11 @@ endif
 # Force use of PIC
 FORCE_USE_PIC	= 1 
 
+ifdef BUILD_STATIC_LIBS
+FORCE_STATIC_LIB = 1
+else
 FORCE_SHARED_LIB = 1
+endif
 
 EXTRA_DSO_LDOPTS = $(LIBS_DIR)
 
@@ -83,7 +86,7 @@ DEPENDENT_LIBS_LIST += \
 ifdef MOZ_ENABLE_LIBXUL
 
 DEPENDENT_LIBS_LIST += \
-	$(LIB_PREFIX)sqlite3$(DLL_SUFFIX) \
+	$(LIB_PREFIX)mozsqlite3$(DLL_SUFFIX) \
 	$(LIB_PREFIX)nssutil3$(DLL_SUFFIX) \
 	$(LIB_PREFIX)softokn3$(DLL_SUFFIX) \
 	$(LIB_PREFIX)nss3$(DLL_SUFFIX) \
diff --git a/xpinstall/src/Makefile.in b/xpinstall/src/Makefile.in
index d590d09..b3e7195 100644
--- a/xpinstall/src/Makefile.in
+++ b/xpinstall/src/Makefile.in
@@ -49,7 +49,7 @@ include $(DEPTH)/config/autoconf.mk
 MODULE		= xpinstall
 LIBRARY_NAME	= xpinstall
 
-ifndef MOZ_ENABLE_LIBXUL
+ifeq (_, $(MOZ_ENABLE_LIBXUL)_$(BUILD_STATIC_LIBS))
 # Make this a true dynamic component even in static builds because
 # this component is shared by installer
 FORCE_SHARED_LIB	= 1
-- 
1.6.3.3

