1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/nsprpub/pr/src/Makefile.in Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,379 @@ 1.4 +# 1.5 +# This Source Code Form is subject to the terms of the Mozilla Public 1.6 +# License, v. 2.0. If a copy of the MPL was not distributed with this 1.7 +# file, You can obtain one at http://mozilla.org/MPL/2.0/. 1.8 + 1.9 +#! gmake 1.10 + 1.11 +MOD_DEPTH = ../.. 1.12 +topsrcdir = @top_srcdir@ 1.13 +srcdir = @srcdir@ 1.14 +VPATH = @srcdir@ 1.15 + 1.16 +include $(MOD_DEPTH)/config/autoconf.mk 1.17 + 1.18 +include $(topsrcdir)/config/config.mk 1.19 + 1.20 +DIRS = io linking malloc md memory misc threads 1.21 + 1.22 +ifeq ($(USE_PTHREADS), 1) 1.23 + DIRS += pthreads 1.24 +endif 1.25 + 1.26 +ifeq ($(USE_BTHREADS), 1) 1.27 + DIRS += bthreads 1.28 +endif 1.29 + 1.30 +ifeq ($(USE_CPLUS), 1) 1.31 + DIRS += cplus 1.32 +endif 1.33 + 1.34 +# 1.35 +# Define platform-dependent OS_LIBS 1.36 +# 1.37 + 1.38 +ifeq ($(OS_ARCH),SunOS) 1.39 +MAPFILE = $(OBJDIR)/nsprmap.sun 1.40 +GARBAGE += $(MAPFILE) 1.41 +ifdef NS_USE_GCC 1.42 +ifdef GCC_USE_GNU_LD 1.43 +MKSHLIB += -Wl,--version-script,$(MAPFILE) 1.44 +else 1.45 +MKSHLIB += -Wl,-M,$(MAPFILE) 1.46 +endif 1.47 +else 1.48 +MKSHLIB += -M $(MAPFILE) 1.49 +endif 1.50 +# 1.51 +# In Solaris 2.6 or earlier, -lrt is called -lposix4. 1.52 +# 1.53 +LIBRT_TEST=$(firstword $(sort 5.7 $(OS_RELEASE))) 1.54 +ifeq (5.7, $(LIBRT_TEST)) 1.55 +LIBRT=-lrt 1.56 +else 1.57 +LIBRT=-lposix4 1.58 +endif 1.59 + 1.60 +ifdef USE_PTHREADS 1.61 +OS_LIBS = -lpthread ${LIBRT} -lsocket -lnsl -ldl -lc 1.62 +else 1.63 +OS_LIBS = -lsocket -lnsl -ldl -lc 1.64 +endif # USE_PTHREADS 1.65 +ifeq ($(CPU_ARCH),sparc) 1.66 +ifndef USE_64 1.67 +DSO_LDOPTS += -Wl,-f,\$$ORIGIN/cpu/\$$ISALIST/lib$(ULTRASPARC_LIBRARY)$(LIBRARY_VERSION).so 1.68 +endif 1.69 +endif # sparc 1.70 +endif # SunOS 1.71 + 1.72 +ifeq ($(OS_ARCH), IRIX) 1.73 +ifeq ($(USE_PTHREADS), 1) 1.74 +OS_LIBS = -lpthread 1.75 +endif 1.76 +OS_LIBS += -lc 1.77 +endif 1.78 + 1.79 +ifeq ($(OS_ARCH),AIX) 1.80 +DSO_LDOPTS += -binitfini::_PR_Fini 1.81 +OS_LIBS = -lodm -lcfg 1.82 +ifeq ($(CLASSIC_NSPR),1) 1.83 +ifeq ($(OS_RELEASE),4.1) 1.84 +OS_LIBS += -lsvld -lc 1.85 +else 1.86 +OS_LIBS += -ldl -lc 1.87 +endif 1.88 +else 1.89 +ifeq ($(OS_RELEASE),4.1) 1.90 +OS_LIBS += -lpthreads -lsvld -lC_r -lC -lc_r -lm /usr/lib/libc.a 1.91 +else 1.92 +OS_LIBS += -lpthreads -ldl -lC_r -lC -lc_r -lm /usr/lib/libc.a 1.93 +endif 1.94 +endif 1.95 +endif 1.96 + 1.97 +# On AIX, we override malloc in non-pthread versions. On AIX 4.2 or 1.98 +# above, this requires that we use the rtl-enabled version of libc.a. 1.99 +ifeq ($(OS_ARCH),AIX) 1.100 +ifneq (,$(filter-out 3.2 4.1,$(OS_RELEASE))) 1.101 +ifneq ($(USE_PTHREADS),1) 1.102 +BUILD_AIX_RTL_LIBC = 1 1.103 +AIX_RTL_LIBC = $(OBJDIR)/libc.a 1.104 +endif 1.105 +endif 1.106 +endif 1.107 + 1.108 +ifeq ($(OS_ARCH),OS2) 1.109 +MAPFILE = $(OBJDIR)/$(LIBRARY_NAME)$(LIBRARY_VERSION).def 1.110 +ADD_TO_DEF_FILE = cat $(srcdir)/os2extra.def >> $(MAPFILE) 1.111 +GARBAGE += $(MAPFILE) 1.112 +MKSHLIB += $(MAPFILE) 1.113 +endif 1.114 + 1.115 +ifeq ($(OS_ARCH),OSF1) 1.116 +ifeq ($(USE_PTHREADS), 1) 1.117 +OS_LIBS = -lpthread -lrt 1.118 +endif 1.119 +ifneq ($(OS_RELEASE),V2.0) 1.120 +OS_LIBS += -lc_r 1.121 +endif 1.122 +endif 1.123 + 1.124 +# Linux, GNU/Hurd, and GNU/kFreeBSD systems 1.125 +ifneq (,$(filter Linux GNU%,$(OS_ARCH))) 1.126 +ifeq ($(USE_PTHREADS), 1) 1.127 +ifeq ($(OS_TARGET),Android) 1.128 +# Android has no libpthread.so in NDK 1.129 +OS_LIBS = -ldl 1.130 +else 1.131 +OS_LIBS = -lpthread -ldl 1.132 +endif 1.133 +else 1.134 +OS_LIBS = -ldl 1.135 +endif 1.136 +ifneq ($(OS_TARGET),Android) 1.137 +# Android has no librt - realtime functions are in libc 1.138 +OS_LIBS += -lrt 1.139 +endif 1.140 +endif 1.141 + 1.142 +ifeq ($(OS_ARCH),HP-UX) 1.143 +ifeq ($(USE_PTHREADS), 1) 1.144 +ifeq (,$(filter-out B.10.10 B.10.20,$(OS_RELEASE))) 1.145 +OS_LIBS = -ldce 1.146 +else 1.147 +OS_LIBS = -lpthread -lrt 1.148 +endif 1.149 +endif 1.150 +ifeq ($(PTHREADS_USER), 1) 1.151 +OS_LIBS = -lpthread 1.152 +endif 1.153 +ifeq ($(basename $(OS_RELEASE)),A.09) 1.154 +OS_LIBS += -ldld -L/lib/pa1.1 -lm 1.155 +else 1.156 +OS_LIBS += -ldld -lm -lc 1.157 +endif 1.158 +ifneq ($(OS_TEST),ia64) 1.159 +ifndef USE_64 1.160 +DSO_LDOPTS += +I PR_HPUX10xInit 1.161 +endif 1.162 +endif 1.163 +endif 1.164 + 1.165 +ifeq ($(OS_ARCH),UNIXWARE) 1.166 +OS_LIBS = -lsocket -lc 1.167 +endif 1.168 + 1.169 +ifeq ($(OS_ARCH),WINNT) 1.170 +ifdef NS_USE_GCC 1.171 +OS_LIBS = -ladvapi32 -lws2_32 -lwinmm 1.172 +else 1.173 +OS_LIBS = advapi32.lib ws2_32.lib winmm.lib 1.174 +endif 1.175 +endif 1.176 + 1.177 +ifeq ($(OS_ARCH),WINCE) 1.178 +OS_LIBS = ws2.lib 1.179 +endif 1.180 + 1.181 +ifeq ($(OS_TARGET),Android) 1.182 +OS_LIBS += -llog 1.183 +endif 1.184 + 1.185 +ifeq ($(OS_TARGET),MacOSX) 1.186 +OS_LIBS = -framework CoreServices -framework CoreFoundation 1.187 +endif 1.188 + 1.189 +EXTRA_LIBS += $(OS_LIBS) 1.190 + 1.191 +# 1.192 +# Define platform-dependent OBJS 1.193 +# 1.194 + 1.195 +OBJS = \ 1.196 + $(OBJDIR)/prvrsion.$(OBJ_SUFFIX) \ 1.197 + io/$(OBJDIR)/prfdcach.$(OBJ_SUFFIX) \ 1.198 + io/$(OBJDIR)/prmwait.$(OBJ_SUFFIX) \ 1.199 + io/$(OBJDIR)/prmapopt.$(OBJ_SUFFIX) \ 1.200 + io/$(OBJDIR)/priometh.$(OBJ_SUFFIX) \ 1.201 + io/$(OBJDIR)/pripv6.$(OBJ_SUFFIX) \ 1.202 + io/$(OBJDIR)/prlayer.$(OBJ_SUFFIX) \ 1.203 + io/$(OBJDIR)/prlog.$(OBJ_SUFFIX) \ 1.204 + io/$(OBJDIR)/prmmap.$(OBJ_SUFFIX) \ 1.205 + io/$(OBJDIR)/prpolevt.$(OBJ_SUFFIX) \ 1.206 + io/$(OBJDIR)/prprf.$(OBJ_SUFFIX) \ 1.207 + io/$(OBJDIR)/prscanf.$(OBJ_SUFFIX) \ 1.208 + io/$(OBJDIR)/prstdio.$(OBJ_SUFFIX) \ 1.209 + threads/$(OBJDIR)/prcmon.$(OBJ_SUFFIX) \ 1.210 + threads/$(OBJDIR)/prrwlock.$(OBJ_SUFFIX) \ 1.211 + threads/$(OBJDIR)/prtpd.$(OBJ_SUFFIX) \ 1.212 + linking/$(OBJDIR)/prlink.$(OBJ_SUFFIX) \ 1.213 + malloc/$(OBJDIR)/prmalloc.$(OBJ_SUFFIX) \ 1.214 + malloc/$(OBJDIR)/prmem.$(OBJ_SUFFIX) \ 1.215 + md/$(OBJDIR)/prosdep.$(OBJ_SUFFIX) \ 1.216 + memory/$(OBJDIR)/prshm.$(OBJ_SUFFIX) \ 1.217 + memory/$(OBJDIR)/prshma.$(OBJ_SUFFIX) \ 1.218 + memory/$(OBJDIR)/prseg.$(OBJ_SUFFIX) \ 1.219 + misc/$(OBJDIR)/pralarm.$(OBJ_SUFFIX) \ 1.220 + misc/$(OBJDIR)/pratom.$(OBJ_SUFFIX) \ 1.221 + misc/$(OBJDIR)/prcountr.$(OBJ_SUFFIX) \ 1.222 + misc/$(OBJDIR)/prdtoa.$(OBJ_SUFFIX) \ 1.223 + misc/$(OBJDIR)/prenv.$(OBJ_SUFFIX) \ 1.224 + misc/$(OBJDIR)/prerr.$(OBJ_SUFFIX) \ 1.225 + misc/$(OBJDIR)/prerror.$(OBJ_SUFFIX) \ 1.226 + misc/$(OBJDIR)/prerrortable.$(OBJ_SUFFIX) \ 1.227 + misc/$(OBJDIR)/prinit.$(OBJ_SUFFIX) \ 1.228 + misc/$(OBJDIR)/prinrval.$(OBJ_SUFFIX) \ 1.229 + misc/$(OBJDIR)/pripc.$(OBJ_SUFFIX) \ 1.230 + misc/$(OBJDIR)/prlog2.$(OBJ_SUFFIX) \ 1.231 + misc/$(OBJDIR)/prlong.$(OBJ_SUFFIX) \ 1.232 + misc/$(OBJDIR)/prnetdb.$(OBJ_SUFFIX) \ 1.233 + misc/$(OBJDIR)/praton.$(OBJ_SUFFIX) \ 1.234 + misc/$(OBJDIR)/prolock.$(OBJ_SUFFIX) \ 1.235 + misc/$(OBJDIR)/prrng.$(OBJ_SUFFIX) \ 1.236 + misc/$(OBJDIR)/prsystem.$(OBJ_SUFFIX) \ 1.237 + misc/$(OBJDIR)/prthinfo.$(OBJ_SUFFIX) \ 1.238 + misc/$(OBJDIR)/prtpool.$(OBJ_SUFFIX) \ 1.239 + misc/$(OBJDIR)/prtrace.$(OBJ_SUFFIX) \ 1.240 + misc/$(OBJDIR)/prtime.$(OBJ_SUFFIX) 1.241 + 1.242 +ifdef USE_PTHREADS 1.243 +OBJS += \ 1.244 + pthreads/$(OBJDIR)/ptsynch.$(OBJ_SUFFIX) \ 1.245 + pthreads/$(OBJDIR)/ptio.$(OBJ_SUFFIX) \ 1.246 + pthreads/$(OBJDIR)/ptthread.$(OBJ_SUFFIX) \ 1.247 + pthreads/$(OBJDIR)/ptmisc.$(OBJ_SUFFIX) 1.248 +else 1.249 +OBJS += \ 1.250 + io/$(OBJDIR)/prdir.$(OBJ_SUFFIX) \ 1.251 + io/$(OBJDIR)/prfile.$(OBJ_SUFFIX) \ 1.252 + io/$(OBJDIR)/prio.$(OBJ_SUFFIX) \ 1.253 + io/$(OBJDIR)/prsocket.$(OBJ_SUFFIX) \ 1.254 + misc/$(OBJDIR)/pripcsem.$(OBJ_SUFFIX) 1.255 + 1.256 +ifndef USE_BTHREADS 1.257 +OBJS += \ 1.258 + threads/$(OBJDIR)/prcthr.$(OBJ_SUFFIX) \ 1.259 + threads/$(OBJDIR)/prdump.$(OBJ_SUFFIX) \ 1.260 + threads/$(OBJDIR)/prmon.$(OBJ_SUFFIX) \ 1.261 + threads/$(OBJDIR)/prsem.$(OBJ_SUFFIX) \ 1.262 + threads/combined/$(OBJDIR)/prucpu.$(OBJ_SUFFIX) \ 1.263 + threads/combined/$(OBJDIR)/prucv.$(OBJ_SUFFIX) \ 1.264 + threads/combined/$(OBJDIR)/prulock.$(OBJ_SUFFIX) \ 1.265 + threads/combined/$(OBJDIR)/prustack.$(OBJ_SUFFIX) \ 1.266 + threads/combined/$(OBJDIR)/pruthr.$(OBJ_SUFFIX) 1.267 +endif 1.268 + 1.269 +endif 1.270 + 1.271 +ifeq ($(USE_CPLUS), 1) 1.272 +OBJS += \ 1.273 + cplus/$(OBJDIR)/rcbase.$(OBJ_SUFFIX) \ 1.274 + cplus/$(OBJDIR)/rccv.$(OBJ_SUFFIX) \ 1.275 + cplus/$(OBJDIR)/rcfileio.$(OBJ_SUFFIX) \ 1.276 + cplus/$(OBJDIR)/rcinrval.$(OBJ_SUFFIX) \ 1.277 + cplus/$(OBJDIR)/rcio.$(OBJ_SUFFIX) \ 1.278 + cplus/$(OBJDIR)/rclock.$(OBJ_SUFFIX) \ 1.279 + cplus/$(OBJDIR)/rcnetdb.$(OBJ_SUFFIX) \ 1.280 + cplus/$(OBJDIR)/rcnetio.$(OBJ_SUFFIX) \ 1.281 + cplus/$(OBJDIR)/rcthread.$(OBJ_SUFFIX) \ 1.282 + cplus/$(OBJDIR)/rctime.$(OBJ_SUFFIX) 1.283 +endif 1.284 + 1.285 +ifeq ($(OS_ARCH), WINNT) 1.286 +RES=$(OBJDIR)/nspr.res 1.287 +RESNAME=nspr.rc 1.288 +endif # WINNT 1.289 + 1.290 +include $(srcdir)/md/$(PR_MD_ARCH_DIR)/objs.mk 1.291 +ifdef USE_BTHREADS 1.292 +include $(srcdir)/bthreads/objs.mk 1.293 +endif 1.294 + 1.295 +LIBRARY_NAME = nspr 1.296 +LIBRARY_VERSION = $(MOD_MAJOR_VERSION) 1.297 + 1.298 +RELEASE_LIBS = $(TARGETS) 1.299 + 1.300 +include $(topsrcdir)/config/rules.mk 1.301 + 1.302 +ifeq ($(BUILD_AIX_RTL_LIBC),1) 1.303 +TARGETS += $(AIX_RTL_LIBC) 1.304 +# XXX is this a shared library? 1.305 +endif 1.306 + 1.307 +# 1.308 +# Version information generation (begin) 1.309 +# 1.310 +ECHO = echo 1.311 +INCLUDES = -I$(dist_includedir) -I$(topsrcdir)/pr/include -I$(topsrcdir)/pr/include/private 1.312 +TINC = $(OBJDIR)/_pr_bld.h 1.313 + 1.314 +ifeq ($(OS_TARGET),OS2) 1.315 +PROD = nspr$(MOD_MAJOR_VERSION).$(DLL_SUFFIX) 1.316 +else 1.317 +PROD = $(notdir $(SHARED_LIBRARY)) 1.318 +endif 1.319 + 1.320 +NOW = $(MOD_DEPTH)/config/$(OBJDIR)/now 1.321 +SH_DATE = $(shell date "+%Y-%m-%d %T") 1.322 +SH_NOW = $(shell $(NOW)) 1.323 + 1.324 +ifeq ($(NS_USE_GCC)_$(OS_ARCH),_WINNT) 1.325 + SUF = i64 1.326 +else 1.327 + SUF = LL 1.328 +endif 1.329 + 1.330 +DEFINES += -D_NSPR_BUILD_ 1.331 + 1.332 +GARBAGE += $(TINC) 1.333 + 1.334 +$(TINC): 1.335 + @$(MAKE_OBJDIR) 1.336 + @$(ECHO) '#define _BUILD_STRING "$(SH_DATE)"' > $(TINC) 1.337 + @if test ! -z "$(SH_NOW)"; then \ 1.338 + $(ECHO) '#define _BUILD_TIME $(SH_NOW)$(SUF)' >> $(TINC); \ 1.339 + else \ 1.340 + true; \ 1.341 + fi 1.342 + @$(ECHO) '#define _PRODUCTION "$(PROD)"' >> $(TINC) 1.343 + 1.344 + 1.345 +$(OBJDIR)/prvrsion.$(OBJ_SUFFIX): prvrsion.c $(TINC) 1.346 +ifeq ($(NS_USE_GCC)_$(OS_ARCH),_WINNT) 1.347 + $(CC) -Fo$@ -c $(CFLAGS) -I$(OBJDIR) $< 1.348 +else 1.349 + $(CC) -o $@ -c $(CFLAGS) -I$(OBJDIR) $< 1.350 +endif 1.351 +# 1.352 +# Version information generation (end) 1.353 +# 1.354 + 1.355 + 1.356 +# We use a 'build' target here to ensure that we build $(TARGETS) after 1.357 +# looping over $(DIRS) to create the object files in a parallel build. 1.358 +# Recipe commands are executed sequentially in a parallel build while 1.359 +# target dependencies are executed in parallel. 1.360 +export:: 1.361 + $(MAKE) build 1.362 + 1.363 +# 1.364 +# The Client build wants the shared libraries in $(dist_bindir) 1.365 +# so we also install them there. 1.366 +# 1.367 + 1.368 +build:: $(TARGETS) 1.369 + $(INSTALL) -m 444 $(TARGETS) $(dist_libdir) 1.370 +ifdef SHARED_LIBRARY 1.371 +ifeq ($(OS_ARCH),HP-UX) 1.372 + $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_libdir) 1.373 + $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_bindir) 1.374 +else 1.375 + $(INSTALL) -m 444 $(SHARED_LIBRARY) $(dist_bindir) 1.376 +endif 1.377 +endif 1.378 + 1.379 +ifeq ($(BUILD_AIX_RTL_LIBC),1) 1.380 +$(AIX_RTL_LIBC): /usr/ccs/lib/libc.a 1.381 + rtl_enable -o $@ $< 1.382 +endif