xpcom/glue/Makefile.in
author Mounir Lamouri <mounir.lamouri@gmail.com>
Wed, 02 Nov 2011 14:47:32 +0100
changeset 79673 718e0171d5d2cd0f76bba9f72bac754d1327ae0e
parent 78495 29c1738d7e27980efb9c0e0d0d5c4aecb478d985
child 80132 6c48fe79db013974b1ce69ab819c9a4c6a679b7d
permissions -rw-r--r--
Bug 678694 - (5/7) Add a non-XPCOM observer system. sr=cjones This adding an Observer<T> class and an ObserverList<T> class. The former can get notifications. The later have an array if Observer<T>s and can Broadcast notifications to them.

# vim:set ts=8 sw=8 sts=8 noet:
# ***** 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) 2001
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
#
# Alternatively, the contents of this file may be used under the terms of
# either 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
include $(srcdir)/objs.mk

EXTRA_DEPS += $(srcdir)/objs.mk

DIRS            = standalone nomozalloc

MODULE		= xpcom
LIBRARY_NAME	= xpcomglue_s
DIST_INSTALL	= 1

LOCAL_INCLUDES	= \
		-I$(srcdir)/../build \
		$(NULL)

CPPSRCS		= \
		$(XPCOM_GLUE_SRC_LCPPSRCS) \
		$(XPCOM_GLUENS_SRC_LCPPSRCS) \
		nsStringAPI.cpp \
		GenericModule.cpp \
		$(NULL)

SDK_HEADERS = \
		nsArrayEnumerator.h \
		nsArrayUtils.h \
		nsBaseHashtable.h \
		nsCOMArray.h \
		nsCOMPtr.h \
		nsCRTGlue.h \
		nsCategoryCache.h \
		nsClassHashtable.h \
		nsComponentManagerUtils.h \
		nsCycleCollectionParticipant.h \
		nsCycleCollectorUtils.h \
		nsDataHashtable.h \
		nsDebug.h \
		nsDeque.h \
		nsEnumeratorUtils.h \
		nsHashKeys.h \
		nsIClassInfoImpl.h \
		nsID.h \
		nsIInterfaceRequestorUtils.h \
		nsINIParser.h \
		nsISupportsImpl.h \
		nsISupportsUtils.h \
		nsIWeakReferenceUtils.h \
		nsInterfaceHashtable.h \
		nsMemory.h \
		nsQuickSort.h \
		nsRefPtrHashtable.h \
		nsServiceManagerUtils.h \
		nsStringAPI.h \
		nsStringGlue.h \
		nsTArray.h \
		nsTArray-inl.h \
		nsTHashtable.h \
		nsTObserverArray.h \
		nsTWeakRef.h \
		nsTextFormatter.h \
		nsTraceRefcnt.h \
		nsVersionComparator.h \
		nsVoidArray.h \
		nsWeakReference.h \
		pldhash.h \
		$(NULL)

EXPORTS_NAMESPACES = mozilla mozilla/threads

EXPORTS = \
		nsThreadUtils.h \
		nsTPriorityQueue.h \
		nsProxyRelease.h \
		nsXPTCUtils.h \
		nsCycleCollectorUtils.h \
		$(NULL)

EXPORTS_mozilla = \
  AutoRestore.h \
  BlockingResourceBase.h \
  CondVar.h \
  DeadlockDetector.h \
  FileUtils.h \
  GenericFactory.h \
  IntentionalCrash.h \
  Monitor.h \
  Mutex.h \
  ReentrantMonitor.h \
  SSE.h \
  arm.h \
  unused.h \
  Observer.h \
  $(NULL)

EXPORTS_mozilla/threads = \
  nsThreadIDs.h \
  $(NULL)

SDK_LIBRARY     =                        \
		$(LIB_PREFIX)xpcomglue_s.$(LIB_SUFFIX) \
		$(NULL)


# we don't want the shared lib, but we want to force the creation of a static lib.
FORCE_STATIC_LIB = 1

# Force use of PIC
FORCE_USE_PIC	= 1

# Pretend we're statically linking the CRT, even though we might not be: this
# avoids "msvcrp" and assembly dependencies from creeping into the directives
# for this library on Windows.
USE_STATIC_LIBS = 1

include $(topsrcdir)/config/rules.mk

ifdef _MSC_VER
# Don't include directives about which CRT to use
OS_COMPILE_CXXFLAGS += -Zl
OS_COMPILE_CFLAGS += -Zl
DEFINES += -D_USE_ANSI_CPP
endif

ifdef TARGET_XPCOM_ABI
DEFINES += -DTARGET_XPCOM_ABI=\"$(TARGET_XPCOM_ABI)\"
endif