blob: 2e1df09e753812a56319e71b0b7a4c679a25b48f [file] [log] [blame]
# -*- 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)