| # |
| # 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/. |
| |
| include $(topsrcdir)/config/rules.mk |
| |
| ifdef MOZ_BUILD_NSPR |
| |
| # Copy NSPR to the SDK |
| ABS_DIST = $(abspath $(DIST)) |
| |
| ifdef MOZ_FOLD_LIBS |
| # Trick the nspr build system into not building shared libraries. |
| # bug #851869. |
| EXTRA_MAKE_FLAGS := SHARED_LIBRARY= IMPORT_LIBRARY= SHARED_LIB_PDB= |
| |
| # Work around libVersionPoint conflict between all three libraries. |
| # See bug #838566. |
| EXTRA_MAKE_FLAGS += XP_DEFINE=-DlibVersionPoint='libVersionPoint$$(LIBRARY_NAME)' |
| else |
| # nspr's make export compiles and links everything, but linking can't happen |
| # during export on platforms where nspr is linked against mozcrt/mozglue. |
| export:: EXTRA_MAKE_FLAGS += SHARED_LIBRARY= IMPORT_LIBRARY= SHARED_LIB_PDB= |
| endif |
| |
| MOZ_BUILDID := $(shell cat $(DEPTH)/config/buildid) |
| |
| # The NSPR build system uses build-time generated dates for public API |
| # exposed data structures. Use the buildid as forced date, to avoid |
| # having to deal with what changing NSPR itself might mean. |
| |
| # SH_DATE is a date with the format "%Y-%m-%d %T" |
| EXTRA_MAKE_FLAGS += SH_DATE="$(shell $(PYTHON) -c 'd = "$(MOZ_BUILDID)"; print d[0:4]+"-"+d[4:6]+"-"+d[6:8]+" "+d[8:10]+":"+d[10:12]+":"+d[12:14]')" |
| |
| # SH_NOW is a date as a unix timestamp in µseconds |
| EXTRA_MAKE_FLAGS += SH_NOW="$(shell $(PYTHON) -c 'import time, calendar; print calendar.timegm(time.strptime("$(MOZ_BUILDID)", "%Y%m%d%H%M%S"))')000000" |
| |
| clean distclean export:: |
| $(MAKE) -C $(DEPTH)/nsprpub $@ $(EXTRA_MAKE_FLAGS) |
| |
| target:: |
| # nspr's libs and install rule re-export headers, and that can race with other |
| # compilations, so use a separate directory here. The headers are exported |
| # during export anyways. |
| $(MAKE) -C $(DEPTH)/nsprpub libs $(EXTRA_MAKE_FLAGS) dist_includedir=$(ABS_DIST)/nspr-include |
| $(MAKE) -C $(DEPTH)/nsprpub install prefix=$(ABS_DIST)/sdk exec_prefix=$(ABS_DIST)/sdk bindir=$(ABS_DIST)/sdk/dummy includedir=$(ABS_DIST)/nspr-include libdir=$(ABS_DIST)/sdk/lib datadir=$(ABS_DIST)/sdk/dummy DESTDIR= $(EXTRA_MAKE_FLAGS) |
| $(INSTALL) $(DEPTH)/nsprpub/config/nspr-config $(DIST)/sdk/bin |
| $(RM) -rf $(DIST)/sdk/dummy |
| ifneq (,$(filter WINNT,$(OS_ARCH))) # { |
| $(RM) -f $(DIST)/sdk/lib/$(DLL_PREFIX)nspr4$(DLL_SUFFIX) $(DIST)/sdk/lib/$(DLL_PREFIX)plc4$(DLL_SUFFIX) $(DIST)/sdk/lib/$(DLL_PREFIX)plds4$(DLL_SUFFIX) |
| $(RM) -f $(DIST)/sdk/lib/$(LIB_PREFIX)nspr4_s.$(LIB_SUFFIX) $(DIST)/sdk/lib/$(LIB_PREFIX)plc4_s.$(LIB_SUFFIX) $(DIST)/sdk/lib/$(LIB_PREFIX)plds4_s.$(LIB_SUFFIX) |
| else # } { |
| $(RM) -f $(DIST)/sdk/lib/$(LIB_PREFIX)nspr4.$(LIB_SUFFIX) $(DIST)/sdk/lib/$(LIB_PREFIX)plc4.$(LIB_SUFFIX) $(DIST)/sdk/lib/$(LIB_PREFIX)plds4.$(LIB_SUFFIX) |
| endif # } |
| |
| endif |