DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Mercurial (27a812186ff4)

VCS Links

Line Code
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
# -*- Makefile -*-
#
# 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/.

# STDCXX_COMPAT is not needed here, and will actually fail because
# libstdc++-compat is not built yet.
MOZ_LIBSTDCXX_HOST_VERSION =

# IMPORTANT: Disable NSBUILDROOT for this directory only, otherwise we have
# a recursive rule for finding nsinstall and the Perl scripts.
ifdef NSBUILDROOT
override NSBUILDROOT :=
endif

ifdef GNU_CC
MODULE_OPTIMIZE_FLAGS = -O3
endif

include $(topsrcdir)/config/config.mk

ifneq (WINNT,$(HOST_OS_ARCH))
ifdef COMPILE_ENVIRONMENT
# Ensure nsinstall is atomically created
nsinstall$(HOST_BIN_SUFFIX): $(HOST_PROGRAM)
	cp $^ $@.tmp
	mv $@.tmp $@

NSINSTALL_EXECUTABLES := nsinstall$(HOST_BIN_SUFFIX)
NSINSTALL_DEST := $(DIST)/bin
NSINSTALL_TARGET := export
INSTALL_TARGETS += NSINSTALL
endif
endif

ifndef JS_STANDALONE
HEADERS_FILES = \
	$(DEPTH)/mozilla-config.h \
	$(NULL)
HEADERS_DEST := $(DIST)/include
HEADERS_TARGET := export
INSTALL_TARGETS += HEADERS
endif

PYTHON_UNIT_TESTS := $(wildcard $(srcdir)/tests/unit-*.py)

include $(topsrcdir)/config/rules.mk

HOST_CFLAGS += -DUNICODE -D_UNICODE

ifndef JS_STANDALONE
# Generate a new buildid every time we "export" in config... that's only
# supposed to be once per-build!
export::
ifdef MOZ_BUILD_DATE
	printf '%s' $(MOZ_BUILD_DATE) > buildid
else
	$(PYTHON) $(topsrcdir)/toolkit/xre/make-platformini.py --print-buildid > buildid
endif
endif

ifdef WRAP_SYSTEM_INCLUDES
export-preqs = \
  $(call mkdir_deps,system_wrappers) \
  $(NULL)

export:: $(export-preqs)
	$(PYTHON) -m mozbuild.action.preprocessor $(DEFINES) $(ACDEFINES) \
		-DMOZ_TREE_CAIRO=$(MOZ_TREE_CAIRO) \
		-DMOZ_TREE_PIXMAN=$(MOZ_TREE_PIXMAN) \
		-DMOZ_NATIVE_HUNSPELL=$(MOZ_NATIVE_HUNSPELL) \
		-DMOZ_NATIVE_BZ2=$(MOZ_NATIVE_BZ2) \
		-DMOZ_NATIVE_ZLIB=$(MOZ_NATIVE_ZLIB) \
		-DMOZ_NATIVE_PNG=$(MOZ_NATIVE_PNG) \
		-DMOZ_NATIVE_JPEG=$(MOZ_NATIVE_JPEG) \
		-DMOZ_NATIVE_LIBEVENT=$(MOZ_NATIVE_LIBEVENT) \
		-DMOZ_NATIVE_LIBVPX=$(MOZ_NATIVE_LIBVPX) \
		-DMOZ_NATIVE_ICU=$(MOZ_NATIVE_ICU) \
		$(srcdir)/system-headers | $(PERL) $(topsrcdir)/nsprpub/config/make-system-wrappers.pl system_wrappers
	$(INSTALL) system_wrappers $(DIST)

GARBAGE_DIRS += system_wrappers
endif

ifdef WRAP_STL_INCLUDES
ifdef GNU_CXX
stl_compiler = gcc
else
ifdef _MSC_VER
stl_compiler = msvc
endif
endif
endif

ifdef stl_compiler
STL_WRAPPERS_SENTINEL = $(DIST)/stl_wrappers/sentinel

$(STL_WRAPPERS_SENTINEL): $(srcdir)/make-stl-wrappers.py $(srcdir)/$(stl_compiler)-stl-wrapper.template.h $(srcdir)/stl-headers $(GLOBAL_DEPS)
	$(PYTHON) $(srcdir)/make-stl-wrappers.py stl_wrappers $(stl_compiler) $(srcdir)/$(stl_compiler)-stl-wrapper.template.h $(srcdir)/stl-headers
	$(PYTHON) $(srcdir)/nsinstall.py -t stl_wrappers $(DIST)
	touch $(STL_WRAPPERS_SENTINEL)

export:: $(STL_WRAPPERS_SENTINEL)

GARBAGE += $(STL_WRAPPERS_SENTINEL)
GARBAGE_DIRS += stl_wrappers
endif

GARBAGE += \
  $(FINAL_LINK_COMPS) $(FINAL_LINK_LIBS) $(FINAL_LINK_COMP_NAMES) buildid $(srcdir)/*.pyc *.pyc

FORCE:

ifndef JS_STANDALONE
check-preqs += check-jar-mn
endif
check-preqs += check-makefiles

check:: $(check-preqs)

check-jar-mn::
	$(MAKE) -C tests/src-simple check-jar
	$(MAKE) -C tests/src-simple check-flat
	$(MAKE) -C tests/src-simple check-flat USE_EXTENSION_MANIFEST=1
ifneq (,$(filter-out WINNT,$(OS_ARCH)))
	$(MAKE) -C tests/src-simple check-symlink
endif

check-makefiles:
	$(MAKE) -C tests/makefiles/autodeps check