From f85bcb885128cb06d1c38a79305d7624d39762b6 Mon Sep 17 00:00:00 2001 From: "scott@scott-macgregor.org" Date: Mon, 18 Jun 2007 22:02:49 -0700 Subject: [PATCH] Bug #384346 --> support an external version of rdfutils for use with frozen linkage. sr=bsmedberg --- allmakefiles.sh | 1 + rdf/build/Makefile.in | 2 +- rdf/util/public/nsRDFResource.h | 3 +- rdf/util/src/Makefile.in | 10 ++++- rdf/util/src/internal/Makefile.in | 71 +++++++++++++++++++++++++++++++ rdf/util/src/nsRDFResource.cpp | 4 +- 6 files changed, 85 insertions(+), 6 deletions(-) create mode 100644 rdf/util/src/internal/Makefile.in diff --git a/allmakefiles.sh b/allmakefiles.sh index ee6143cfe92bc..d45c0e96447e9 100755 --- a/allmakefiles.sh +++ b/allmakefiles.sh @@ -499,6 +499,7 @@ rdf/base/src/Makefile rdf/util/Makefile rdf/util/public/Makefile rdf/util/src/Makefile +rdf/util/src/internal/Makefile rdf/build/Makefile rdf/datasource/Makefile rdf/datasource/public/Makefile diff --git a/rdf/build/Makefile.in b/rdf/build/Makefile.in index 2f3d53b97c303..2ff89126a1dfa 100644 --- a/rdf/build/Makefile.in +++ b/rdf/build/Makefile.in @@ -74,7 +74,7 @@ SHARED_LIBRARY_LIBS = \ ifndef MOZ_ENABLE_LIBXUL SHARED_LIBRARY_LIBS += \ - ../util/src/$(LIB_PREFIX)rdfutil_s.$(LIB_SUFFIX) \ + ../util/src/internal/$(LIB_PREFIX)rdfutil_s.$(LIB_SUFFIX) \ $(NULL) endif diff --git a/rdf/util/public/nsRDFResource.h b/rdf/util/public/nsRDFResource.h index 8de0ab5563b83..2f700f5849e54 100644 --- a/rdf/util/public/nsRDFResource.h +++ b/rdf/util/public/nsRDFResource.h @@ -42,8 +42,9 @@ #include "nsIRDFNode.h" #include "nsIRDFResource.h" #include "nscore.h" -#include "nsString.h" +#include "nsStringGlue.h" #include "rdf.h" + class nsIRDFService; /** diff --git a/rdf/util/src/Makefile.in b/rdf/util/src/Makefile.in index de1db18dd0bda..acb3064ea09eb 100644 --- a/rdf/util/src/Makefile.in +++ b/rdf/util/src/Makefile.in @@ -42,13 +42,19 @@ VPATH = @srcdir@ include $(DEPTH)/config/autoconf.mk +# This makefile builds the rdfutil_external_s library which should be +# used by frozen (dependent) linkage components. The internal-linkage code should use +# rdfutil_s which is built in the internal/ subdirectory. + +DIRS = internal + include $(srcdir)/objs.mk EXTRA_DEPS += $(srcdir)/objs.mk MODULE = rdfutil -LIBRARY_NAME = rdfutil_s -MOZILLA_INTERNAL_API = 1 +LIBRARY_NAME = rdfutil_external_s +DIST_INSTALL = 1 REQUIRES = xpcom \ string \ diff --git a/rdf/util/src/internal/Makefile.in b/rdf/util/src/internal/Makefile.in new file mode 100644 index 0000000000000..3572d5e025ff8 --- /dev/null +++ b/rdf/util/src/internal/Makefile.in @@ -0,0 +1,71 @@ +# +# ***** BEGIN LICENSE BLOCK ***** +# Version: MPL 1.1/GPL 2.0/LGPL 2.1 +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is mozilla.org code. +# +# The Initial Developer of the Original Code is +# Netscape Communications Corporation. +# Portions created by the Initial Developer are Copyright (C) 1998 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# +# Alternatively, the contents of this file may be used under the terms of +# either of the GNU General Public License Version 2 or later (the "GPL"), +# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +# in which case the provisions of the GPL or the LGPL are applicable instead +# of those above. If you wish to allow use of your version of this file only +# under the terms of either the GPL or the LGPL, and not to allow others to +# use your version of this file under the terms of the MPL, indicate your +# decision by deleting the provisions above and replace them with the notice +# and other provisions required by the GPL or the LGPL. If you do not delete +# the provisions above, a recipient may use your version of this file under +# the terms of any one of the MPL, the GPL or the LGPL. +# +# ***** END LICENSE BLOCK ***** + +DEPTH = ../../../.. +topsrcdir = @top_srcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ + +include $(DEPTH)/config/autoconf.mk + +# This makefile builds the version of unicharutils_s static library which uses +# internal linkage. Components that use frozen (external) linkage should use +# rdfutil_external_s. + +include $(srcdir)/../objs.mk + +EXTRA_DEPS += $(srcdir)/../objs.mk + +MODULE = rdfutil +LIBRARY_NAME = rdfutil_s +MOZILLA_INTERNAL_API = 1 + +REQUIRES = xpcom \ + string \ + rdf \ + $(NULL) + +CPPSRCS = $(RDF_UTIL_SRC_LCPPSRCS) + +# we don't want the shared lib, but we want to force the creation of a static lib. +FORCE_STATIC_LIB = 1 + +include $(topsrcdir)/config/rules.mk + +$(RDF_UTIL_SRC_LCPPSRCS): %: $(srcdir)/../% + $(INSTALL) $^ . + diff --git a/rdf/util/src/nsRDFResource.cpp b/rdf/util/src/nsRDFResource.cpp index bb3c5590d37c7..7991471f1dfb1 100644 --- a/rdf/util/src/nsRDFResource.cpp +++ b/rdf/util/src/nsRDFResource.cpp @@ -37,13 +37,13 @@ * ***** END LICENSE BLOCK ***** */ #include "nsRDFResource.h" -#include "nsCRT.h" #include "nsIServiceManager.h" #include "nsIRDFDelegateFactory.h" #include "nsIRDFService.h" #include "nsRDFCID.h" -#include "nsXPIDLString.h" #include "prlog.h" +#include "nsComponentManagerUtils.h" +#include "nsServiceManagerUtils.h" static NS_DEFINE_CID(kRDFServiceCID, NS_RDFSERVICE_CID);