| # -*- Mode: 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/. |
| |
| DEPTH = @DEPTH@ |
| topsrcdir = @top_srcdir@ |
| srcdir = @srcdir@ |
| VPATH = @srcdir@ |
| |
| include $(DEPTH)/config/autoconf.mk |
| |
| ifdef _MSC_VER |
| # unnecessary PGO for js shell. But gcc cannot turn off pgo because it is |
| # necessary to link PGO lib on gcc when a object/static lib are compiled |
| # for PGO. |
| NO_PROFILE_GUIDED_OPTIMIZE := 1 |
| endif |
| |
| DEFINES += -DEXPORT_JS_API |
| # Building against js_static requires that we declare mfbt sybols "exported" |
| # on its behalf. |
| DEFINES += -DIMPL_MFBT |
| |
| LIBS = $(NSPR_LIBS) $(EDITLINE_LIBS) $(DEPTH)/$(LIB_PREFIX)js_static.$(LIB_SUFFIX) $(MOZ_ZLIB_LIBS) |
| ifdef MOZ_NATIVE_FFI |
| EXTRA_LIBS += $(MOZ_FFI_LIBS) |
| endif |
| |
| LOCAL_INCLUDES += -I$(topsrcdir) -I.. |
| |
| ifeq ($(OS_ARCH),Darwin) |
| ifeq ($(TARGET_CPU),x86_64) |
| DARWIN_EXE_LDFLAGS += -pagezero_size 10000 -image_base 100000000 |
| endif |
| endif |
| |
| ifdef QEMU_EXE |
| MOZ_POST_PROGRAM_COMMAND = $(topsrcdir)/build/qemu-wrap --qemu $(QEMU_EXE) --libdir $(CROSS_LIB) |
| endif |
| |
| # Place a GDB Python auto-load file next to the shell executable, both in |
| # the build directory and in the dist/bin directory. |
| PP_TARGETS += SHELL_AUTOLOAD |
| SHELL_AUTOLOAD := js-gdb.py.in |
| SHELL_AUTOLOAD_FLAGS := -Dtopsrcdir=$(abspath $(topsrcdir)) |
| |
| INSTALL_TARGETS += SHELL_INSTALL_AUTOLOAD |
| SHELL_INSTALL_AUTOLOAD_FILES := $(CURDIR)/js-gdb.py |
| SHELL_INSTALL_AUTOLOAD_DEST := $(DIST)/bin |
| |
| include $(topsrcdir)/config/rules.mk |
| |
| ifdef MOZ_VTUNE |
| ifeq ($(OS_ARCH), WINNT) |
| EXTRA_DSO_LDOPTS += $(VTUNE_LIBRARIES) |
| LIBS += $(VTUNE_LIBRARIES) |
| else |
| SHARED_LIBRARY_LIBS += $(VTUNE_LIBRARIES) |
| endif # WINNT |
| endif # MOZ_VTUNE |
| |
| # People expect the js shell to wind up in the top-level JS dir. |
| libs:: |
| $(INSTALL) $(IFLAGS2) $(PROGRAM) $(DEPTH) |
| |
| GARBAGE += $(DEPTH)/$(PROGRAM) |
| |
| install:: $(PROGRAM) |
| $(SYSINSTALL) $^ $(DESTDIR)$(bindir) |