| # |
| # ***** 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 the Netscape Portable Runtime (NSPR). |
| # |
| # The Initial Developer of the Original Code is |
| # Netscape Communications Corporation. |
| # Portions created by the Initial Developer are Copyright (C) 1998-2000 |
| # 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 ***** |
| |
| #! gmake |
| |
| MOD_DEPTH = ../.. |
| topsrcdir = @top_srcdir@ |
| srcdir = @srcdir@ |
| VPATH = @srcdir@ |
| |
| include $(MOD_DEPTH)/config/autoconf.mk |
| |
| include $(topsrcdir)/config/config.mk |
| |
| INCLUDES = -I$(dist_includedir) -I$(topsrcdir)/pr/include |
| |
| CSRCS = \ |
| plarena.c \ |
| plhash.c \ |
| plvrsion.c \ |
| $(NULL) |
| |
| HEADERS = \ |
| plarenas.h \ |
| plarena.h \ |
| plhash.h \ |
| $(NULL) |
| |
| HEADERS := $(addprefix $(srcdir)/, $(HEADERS)) |
| |
| ifeq ($(OS_ARCH), WINNT) |
| RES=$(OBJDIR)/plds.res |
| RESNAME=plds.rc |
| endif # WINNT |
| |
| ifeq ($(OS_ARCH), AIX) |
| ifeq ($(CLASSIC_NSPR),1) |
| OS_LIBS = -lc |
| else |
| OS_LIBS = -lc_r |
| endif |
| endif |
| |
| ifeq ($(OS_ARCH),IRIX) |
| OS_LIBS = -lc |
| endif |
| |
| ifeq ($(OS_ARCH),SunOS) |
| OS_LIBS = -lc |
| MAPFILE = $(OBJDIR)/pldsmap.sun |
| GARBAGE += $(MAPFILE) |
| ifdef NS_USE_GCC |
| ifdef GCC_USE_GNU_LD |
| MKSHLIB += -Wl,--version-script,$(MAPFILE) |
| else |
| MKSHLIB += -Wl,-M,$(MAPFILE) |
| endif |
| else |
| MKSHLIB += -M $(MAPFILE) |
| endif |
| # The -R '$ORIGIN' linker option instructs this library to search for its |
| # dependencies in the same directory where it resides. |
| MKSHLIB += -R '$$ORIGIN' |
| endif |
| |
| ifeq ($(OS_ARCH),OS2) |
| MAPFILE = $(OBJDIR)/$(LIBRARY_NAME)$(LIBRARY_VERSION).def |
| GARBAGE += $(MAPFILE) |
| MKSHLIB += $(MAPFILE) |
| endif |
| |
| EXTRA_LIBS = $(LIBNSPR) |
| |
| # On NCR and SCOOS, we can't link with extra libraries when |
| # we build a shared library. If we do so, the linker doesn't |
| # complain, but we would run into weird problems at run-time. |
| # Therefore on these platforms, we link just the .o files. |
| ifeq ($(OS_ARCH),NCR) |
| EXTRA_LIBS = |
| endif |
| ifeq ($(OS_ARCH),SCOOS) |
| EXTRA_LIBS = |
| endif |
| |
| ifdef RESOLVE_LINK_SYMBOLS |
| EXTRA_LIBS += $(OS_LIBS) |
| endif |
| |
| LIBRARY_NAME = plds |
| LIBRARY_VERSION = $(MOD_MAJOR_VERSION) |
| |
| RELEASE_HEADERS = $(HEADERS) |
| RELEASE_HEADERS_DEST = $(RELEASE_INCLUDE_DIR) |
| RELEASE_LIBS = $(TARGETS) |
| |
| include $(topsrcdir)/config/rules.mk |
| |
| # |
| # Version information generation (begin) |
| # |
| ECHO = echo |
| TINC = $(OBJDIR)/_pl_bld.h |
| PROD = $(notdir $(SHARED_LIBRARY)) |
| NOW = $(MOD_DEPTH)/config/$(OBJDIR)/now |
| SH_DATE = $(shell date "+%Y-%m-%d %T") |
| SH_NOW = $(shell $(NOW)) |
| |
| ifeq ($(NS_USE_GCC)_$(OS_ARCH),_WINNT) |
| SUF = i64 |
| else |
| SUF = LL |
| endif |
| |
| GARBAGE += $(TINC) |
| |
| $(TINC): |
| @$(MAKE_OBJDIR) |
| @$(ECHO) '#define _BUILD_STRING "$(SH_DATE)"' > $(TINC) |
| @if test ! -z "$(SH_NOW)"; then \ |
| $(ECHO) '#define _BUILD_TIME $(SH_NOW)$(SUF)' >> $(TINC); \ |
| else \ |
| true; \ |
| fi |
| @$(ECHO) '#define _PRODUCTION "$(PROD)"' >> $(TINC) |
| |
| |
| $(OBJDIR)/plvrsion.$(OBJ_SUFFIX): plvrsion.c $(TINC) |
| ifeq ($(NS_USE_GCC)_$(OS_ARCH),_WINNT) |
| $(CC) -Fo$@ -c $(CFLAGS) -I$(OBJDIR) $< |
| else |
| $(CC) -o $@ -c $(CFLAGS) -I$(OBJDIR) $< |
| endif |
| # |
| # Version information generation (end) |
| # |
| |
| # |
| # The Client build wants the shared libraries in $(dist_bindir), |
| # so we also install them there. |
| # |
| |
| export:: $(TARGETS) |
| $(INSTALL) -m 444 $(HEADERS) $(dist_includedir) |
| $(INSTALL) -m 444 $(TARGETS) $(dist_libdir) |
| ifdef SHARED_LIBRARY |
| ifeq ($(OS_ARCH),HP-UX) |
| $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_libdir) |
| $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_bindir) |
| else |
| $(INSTALL) -m 444 $(SHARED_LIBRARY) $(dist_bindir) |
| endif |
| endif |