summaryrefslogtreecommitdiffstats
path: root/nsprpub/lib/ds/Makefile.in
blob: 38a9e3dd158f1f1f31f609a776013e794fa7e87d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
# 
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

#! 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),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 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),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