| 1 | # vim:set ts=8 sw=8 sts=8 noet: |
|---|
| 2 | # ***** BEGIN LICENSE BLOCK ***** |
|---|
| 3 | # Version: MPL 1.1/GPL 2.0/LGPL 2.1 |
|---|
| 4 | # |
|---|
| 5 | # The contents of this file are subject to the Mozilla Public License Version |
|---|
| 6 | # 1.1 (the "License"); you may not use this file except in compliance with |
|---|
| 7 | # the License. You may obtain a copy of the License at |
|---|
| 8 | # http://www.mozilla.org/MPL/ |
|---|
| 9 | # |
|---|
| 10 | # Software distributed under the License is distributed on an "AS IS" basis, |
|---|
| 11 | # WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License |
|---|
| 12 | # for the specific language governing rights and limitations under the |
|---|
| 13 | # License. |
|---|
| 14 | # |
|---|
| 15 | # The Original Code is mozilla.org. |
|---|
| 16 | # |
|---|
| 17 | # The Initial Developer of the Original Code is |
|---|
| 18 | # Netscape Communications Corporation. |
|---|
| 19 | # Portions created by the Initial Developer are Copyright (C) 2002 |
|---|
| 20 | # the Initial Developer. All Rights Reserved. |
|---|
| 21 | # |
|---|
| 22 | # Contributor(s): |
|---|
| 23 | # |
|---|
| 24 | # Alternatively, the contents of this file may be used under the terms of |
|---|
| 25 | # either the GNU General Public License Version 2 or later (the "GPL"), or |
|---|
| 26 | # the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), |
|---|
| 27 | # in which case the provisions of the GPL or the LGPL are applicable instead |
|---|
| 28 | # of those above. If you wish to allow use of your version of this file only |
|---|
| 29 | # under the terms of either the GPL or the LGPL, and not to allow others to |
|---|
| 30 | # use your version of this file under the terms of the MPL, indicate your |
|---|
| 31 | # decision by deleting the provisions above and replace them with the notice |
|---|
| 32 | # and other provisions required by the GPL or the LGPL. If you do not delete |
|---|
| 33 | # the provisions above, a recipient may use your version of this file under |
|---|
| 34 | # the terms of any one of the MPL, the GPL or the LGPL. |
|---|
| 35 | # |
|---|
| 36 | # ***** END LICENSE BLOCK ***** |
|---|
| 37 | |
|---|
| 38 | DEPTH = ../../.. |
|---|
| 39 | topsrcdir = @top_srcdir@ |
|---|
| 40 | srcdir = @srcdir@ |
|---|
| 41 | VPATH = @srcdir@ |
|---|
| 42 | |
|---|
| 43 | include $(DEPTH)/config/autoconf.mk |
|---|
| 44 | include $(srcdir)/../objs.mk |
|---|
| 45 | |
|---|
| 46 | EXTRA_DEPS += $(srcdir)/../objs.mk |
|---|
| 47 | |
|---|
| 48 | MODULE = xpcom |
|---|
| 49 | LIBRARY_NAME = xpcomglue |
|---|
| 50 | DIST_INSTALL = 1 |
|---|
| 51 | |
|---|
| 52 | REQUIRES = string \ |
|---|
| 53 | $(NULL) |
|---|
| 54 | |
|---|
| 55 | LOCAL_INCLUDES = \ |
|---|
| 56 | -I$(srcdir)/../../build \ |
|---|
| 57 | $(NULL) |
|---|
| 58 | |
|---|
| 59 | ifeq (Darwin,$(OS_ARCH)) |
|---|
| 60 | LINKSRC = nsGlueLinkingOSX.cpp |
|---|
| 61 | endif |
|---|
| 62 | ifneq (,$(filter WINNT WINCE,$(OS_ARCH))) |
|---|
| 63 | LINKSRC = nsGlueLinkingWin.cpp |
|---|
| 64 | endif |
|---|
| 65 | ifneq (,$(filter AIX DragonFly FreeBSD Linux NetBSD OpenBSD SunOS,$(OS_ARCH))) |
|---|
| 66 | LINKSRC = nsGlueLinkingDlopen.cpp |
|---|
| 67 | endif |
|---|
| 68 | ifeq (OS2,$(OS_ARCH)) |
|---|
| 69 | LINKSRC = nsGlueLinkingOS2.cpp |
|---|
| 70 | endif |
|---|
| 71 | ifeq (BeOS,$(OS_ARCH)) |
|---|
| 72 | LINKSRC = nsGlueLinkingBeOS.cpp |
|---|
| 73 | endif |
|---|
| 74 | |
|---|
| 75 | ifndef LINKSRC |
|---|
| 76 | LINKSRC = nsGlueLinkingNull.cpp |
|---|
| 77 | $(warning TinderboxPrint:<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=298044">Error: XPCOM Glue</a>) |
|---|
| 78 | endif |
|---|
| 79 | |
|---|
| 80 | CSRCS = \ |
|---|
| 81 | $(XPCOM_GLUE_SRC_LCSRCS) \ |
|---|
| 82 | $(NULL) |
|---|
| 83 | |
|---|
| 84 | CPPSRCS = \ |
|---|
| 85 | $(XPCOM_GLUE_SRC_LCPPSRCS) \ |
|---|
| 86 | nsStringAPI.cpp \ |
|---|
| 87 | nsXPCOMGlue.cpp \ |
|---|
| 88 | $(LINKSRC) \ |
|---|
| 89 | $(NULL) |
|---|
| 90 | |
|---|
| 91 | SDK_HEADERS = \ |
|---|
| 92 | nsXPCOMGlue.h \ |
|---|
| 93 | $(NULL) |
|---|
| 94 | |
|---|
| 95 | SDK_LIBRARY = \ |
|---|
| 96 | $(LIB_PREFIX)xpcomglue.$(LIB_SUFFIX) \ |
|---|
| 97 | $(NULL) |
|---|
| 98 | |
|---|
| 99 | # we don't want the shared lib, but we want to force the creation of a static lib. |
|---|
| 100 | FORCE_STATIC_LIB = 1 |
|---|
| 101 | |
|---|
| 102 | # Force use of PIC |
|---|
| 103 | FORCE_USE_PIC = 1 |
|---|
| 104 | |
|---|
| 105 | # Pretend we're statically linking the CRT, even though we might not be: this |
|---|
| 106 | # avoids "msvcrp" and assembly dependencies from creeping into the directives |
|---|
| 107 | # for this library on Windows. |
|---|
| 108 | USE_STATIC_LIBS = 1 |
|---|
| 109 | |
|---|
| 110 | GARBAGE += $(XPCOM_GLUE_SRC_LCSRCS) $(XPCOM_GLUE_SRC_LCPPSRCS) $(wildcard *.$(OBJ_SUFFIX)) |
|---|
| 111 | |
|---|
| 112 | SRCS_IN_OBJDIR = 1 |
|---|
| 113 | |
|---|
| 114 | include $(topsrcdir)/config/rules.mk |
|---|
| 115 | |
|---|
| 116 | ifdef _MSC_VER |
|---|
| 117 | # Don't include directives about which CRT to use |
|---|
| 118 | OS_COMPILE_CXXFLAGS += -Zl |
|---|
| 119 | OS_COMPILE_CFLAGS += -Zl |
|---|
| 120 | DEFINES += -D_USE_ANSI_CPP |
|---|
| 121 | endif |
|---|
| 122 | |
|---|
| 123 | export:: $(XPCOM_GLUE_SRC_CSRCS) $(XPCOM_GLUE_SRC_CPPSRCS) $(topsrcdir)/xpcom/glue/nsStringAPI.cpp |
|---|
| 124 | $(INSTALL) $^ . |
|---|
| 125 | |
|---|
| 126 | GARBAGE += nsStringAPI.cpp |
|---|
| 127 | |
|---|
| 128 | DEFINES += -DXPCOM_GLUE |
|---|
| 129 | |
|---|
| 130 | ifdef TARGET_XPCOM_ABI |
|---|
| 131 | DEFINES += -DTARGET_XPCOM_ABI=\"$(TARGET_XPCOM_ABI)\" |
|---|
| 132 | endif |
|---|
| 133 | |
|---|