gecko/js/src/Makefile.in

571 lines
13 KiB
Makefile
Raw Normal View History

# -*- Mode: makefile -*-
#
# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# The contents of this file are subject to the Mozilla Public License Version
# 1.1 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
# http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
# for the specific language governing rights and limitations under the
# License.
#
# The Original Code is Mozilla Communicator client code, released
# March 31, 1998.
#
# The Initial Developer of the Original Code is
# Netscape Communications Corporation.
# Portions created by the Initial Developer are Copyright (C) 1998
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
#
# Alternatively, the contents of this file may be used under the terms of
# either of the GNU General Public License Version 2 or later (the "GPL"),
# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****
DEPTH = ../..
topsrcdir = @top_srcdir@
srcdir = @srcdir@
include $(DEPTH)/config/autoconf.mk
MODULE = js
LIBRARY_NAME = mozjs
GRE_MODULE = 1
PROGRAM = js$(BIN_SUFFIX)
# The shell uses some 'HIDDEN' symbols to produce statistics, so we
# link directly against the .o files, not against the JS shared
# library.
PROGOBJS = js.$(OBJ_SUFFIX) $(OBJS)
LIBS = $(NSPR_LIBS)
ifdef GNU_CC
ifdef INTEL_CC
# icc gets special optimize flags
ifdef MOZ_PROFILE_GENERATE
MODULE_OPTIMIZE_FLAGS = -O0
else
MODULE_OPTIMIZE_FLAGS = -O2 -ip
#XXX: do we want different INTERP_OPTIMIZER flags here?
endif
else
MODULE_OPTIMIZE_FLAGS = -Os -fstrict-aliasing $(MOZ_OPTIMIZE_SIZE_TWEAK)
# Special optimization flags for jsinterp.c
INTERP_OPTIMIZER = -O3 -fstrict-aliasing
endif
else
ifeq ($(OS_ARCH),SunOS)
MODULE_OPTIMIZE_FLAGS = -xO4
endif
ifeq ($(OS_ARCH),WINNT)
MODULE_OPTIMIZE_FLAGS = -O2 -GL
endif
endif
ifeq (,$(filter-out WINNT WINCE,$(OS_ARCH)))
LIBRARY_NAME = js$(MOZ_BITS)$(VERSION_NUMBER)
RESFILE = js$(MOZ_BITS)40.res
endif
PACKAGE_FILE = js.pkg
# JavaScript must be built shared, even for static builds, as it is used by
# other modules which are always built shared. Failure to do so results in
# the js code getting copied into xpinstall and jsd as well as mozilla-bin,
# and then the static data cells used for locking no longer work.
ifndef JS_STATIC_BUILD
FORCE_SHARED_LIB = 1
endif
ifeq (86,$(findstring 86,$(OS_TEST)))
ifeq (64,$(findstring 64,$(OS_TEST)))
else
DEFINES += -DAVMPLUS_IA32
NANOJIT_ARCH = i386
ENABLE_JIT = 1
endif
endif
2008-09-06 01:19:29 -07:00
ifeq (arm,$(findstring arm,$(OS_TEST)))
DEFINES += -DAVMPLUS_ARM
NANOJIT_ARCH = ARM
ENABLE_JIT = 1
endif
ifneq (,$(filter Linux Darwin SunOS FreeBSD,$(OS_ARCH)))
DEFINES += -DAVMPLUS_UNIX
endif
ifeq ($(OS_ARCH),Linux)
DEFINES += -DAVMPLUS_LINUX
endif
ifeq ($(OS_ARCH),WINNT)
DEFINES += -DAVMPLUS_WIN32
endif
VPATH = $(srcdir)
Bug 387935, Always build JS as C++, r=benjamin --HG-- rename : js/src/js.c => js/src/js.cpp rename : js/src/jsapi.c => js/src/jsapi.cpp rename : js/src/jsarena.c => js/src/jsarena.cpp rename : js/src/jsarray.c => js/src/jsarray.cpp rename : js/src/jsatom.c => js/src/jsatom.cpp rename : js/src/jsbool.c => js/src/jsbool.cpp rename : js/src/jscntxt.c => js/src/jscntxt.cpp rename : js/src/jscpucfg.c => js/src/jscpucfg.cpp rename : js/src/jsdate.c => js/src/jsdate.cpp rename : js/src/jsdbgapi.c => js/src/jsdbgapi.cpp rename : js/src/jsdhash.c => js/src/jsdhash.cpp rename : js/src/jsdtoa.c => js/src/jsdtoa.cpp rename : js/src/jsemit.c => js/src/jsemit.cpp rename : js/src/jsexn.c => js/src/jsexn.cpp rename : js/src/jsfile.c => js/src/jsfile.cpp rename : js/src/jsfun.c => js/src/jsfun.cpp rename : js/src/jsgc.c => js/src/jsgc.cpp rename : js/src/jshash.c => js/src/jshash.cpp rename : js/src/jsinterp.c => js/src/jsinterp.cpp rename : js/src/jsiter.c => js/src/jsiter.cpp rename : js/src/jskwgen.c => js/src/jskwgen.cpp rename : js/src/jslock.c => js/src/jslock.cpp rename : js/src/jslog2.c => js/src/jslog2.cpp rename : js/src/jslong.c => js/src/jslong.cpp rename : js/src/jsmath.c => js/src/jsmath.cpp rename : js/src/jsnum.c => js/src/jsnum.cpp rename : js/src/jsobj.c => js/src/jsobj.cpp rename : js/src/jsopcode.c => js/src/jsopcode.cpp rename : js/src/jsparse.c => js/src/jsparse.cpp rename : js/src/jsprf.c => js/src/jsprf.cpp rename : js/src/jsregexp.c => js/src/jsregexp.cpp rename : js/src/jsscan.c => js/src/jsscan.cpp rename : js/src/jsscope.c => js/src/jsscope.cpp rename : js/src/jsscript.c => js/src/jsscript.cpp rename : js/src/jsstr.c => js/src/jsstr.cpp rename : js/src/jsutil.c => js/src/jsutil.cpp rename : js/src/jsxdrapi.c => js/src/jsxdrapi.cpp rename : js/src/jsxml.c => js/src/jsxml.cpp rename : js/src/prmjtime.c => js/src/prmjtime.cpp
2007-07-16 11:40:49 -07:00
CPPSRCS = \
jsapi.cpp \
jsarena.cpp \
jsarray.cpp \
jsatom.cpp \
jsbool.cpp \
jscntxt.cpp \
jsdate.cpp \
jsdbgapi.cpp \
jsdhash.cpp \
jsdtoa.cpp \
jsemit.cpp \
jsexn.cpp \
jsfun.cpp \
jsgc.cpp \
jshash.cpp \
jsinterp.cpp \
jsinvoke.cpp \
Bug 387935, Always build JS as C++, r=benjamin --HG-- rename : js/src/js.c => js/src/js.cpp rename : js/src/jsapi.c => js/src/jsapi.cpp rename : js/src/jsarena.c => js/src/jsarena.cpp rename : js/src/jsarray.c => js/src/jsarray.cpp rename : js/src/jsatom.c => js/src/jsatom.cpp rename : js/src/jsbool.c => js/src/jsbool.cpp rename : js/src/jscntxt.c => js/src/jscntxt.cpp rename : js/src/jscpucfg.c => js/src/jscpucfg.cpp rename : js/src/jsdate.c => js/src/jsdate.cpp rename : js/src/jsdbgapi.c => js/src/jsdbgapi.cpp rename : js/src/jsdhash.c => js/src/jsdhash.cpp rename : js/src/jsdtoa.c => js/src/jsdtoa.cpp rename : js/src/jsemit.c => js/src/jsemit.cpp rename : js/src/jsexn.c => js/src/jsexn.cpp rename : js/src/jsfile.c => js/src/jsfile.cpp rename : js/src/jsfun.c => js/src/jsfun.cpp rename : js/src/jsgc.c => js/src/jsgc.cpp rename : js/src/jshash.c => js/src/jshash.cpp rename : js/src/jsinterp.c => js/src/jsinterp.cpp rename : js/src/jsiter.c => js/src/jsiter.cpp rename : js/src/jskwgen.c => js/src/jskwgen.cpp rename : js/src/jslock.c => js/src/jslock.cpp rename : js/src/jslog2.c => js/src/jslog2.cpp rename : js/src/jslong.c => js/src/jslong.cpp rename : js/src/jsmath.c => js/src/jsmath.cpp rename : js/src/jsnum.c => js/src/jsnum.cpp rename : js/src/jsobj.c => js/src/jsobj.cpp rename : js/src/jsopcode.c => js/src/jsopcode.cpp rename : js/src/jsparse.c => js/src/jsparse.cpp rename : js/src/jsprf.c => js/src/jsprf.cpp rename : js/src/jsregexp.c => js/src/jsregexp.cpp rename : js/src/jsscan.c => js/src/jsscan.cpp rename : js/src/jsscope.c => js/src/jsscope.cpp rename : js/src/jsscript.c => js/src/jsscript.cpp rename : js/src/jsstr.c => js/src/jsstr.cpp rename : js/src/jsutil.c => js/src/jsutil.cpp rename : js/src/jsxdrapi.c => js/src/jsxdrapi.cpp rename : js/src/jsxml.c => js/src/jsxml.cpp rename : js/src/prmjtime.c => js/src/prmjtime.cpp
2007-07-16 11:40:49 -07:00
jsiter.cpp \
jslock.cpp \
jslog2.cpp \
jslong.cpp \
jsmath.cpp \
jsnum.cpp \
jsobj.cpp \
json.cpp \
Bug 387935, Always build JS as C++, r=benjamin --HG-- rename : js/src/js.c => js/src/js.cpp rename : js/src/jsapi.c => js/src/jsapi.cpp rename : js/src/jsarena.c => js/src/jsarena.cpp rename : js/src/jsarray.c => js/src/jsarray.cpp rename : js/src/jsatom.c => js/src/jsatom.cpp rename : js/src/jsbool.c => js/src/jsbool.cpp rename : js/src/jscntxt.c => js/src/jscntxt.cpp rename : js/src/jscpucfg.c => js/src/jscpucfg.cpp rename : js/src/jsdate.c => js/src/jsdate.cpp rename : js/src/jsdbgapi.c => js/src/jsdbgapi.cpp rename : js/src/jsdhash.c => js/src/jsdhash.cpp rename : js/src/jsdtoa.c => js/src/jsdtoa.cpp rename : js/src/jsemit.c => js/src/jsemit.cpp rename : js/src/jsexn.c => js/src/jsexn.cpp rename : js/src/jsfile.c => js/src/jsfile.cpp rename : js/src/jsfun.c => js/src/jsfun.cpp rename : js/src/jsgc.c => js/src/jsgc.cpp rename : js/src/jshash.c => js/src/jshash.cpp rename : js/src/jsinterp.c => js/src/jsinterp.cpp rename : js/src/jsiter.c => js/src/jsiter.cpp rename : js/src/jskwgen.c => js/src/jskwgen.cpp rename : js/src/jslock.c => js/src/jslock.cpp rename : js/src/jslog2.c => js/src/jslog2.cpp rename : js/src/jslong.c => js/src/jslong.cpp rename : js/src/jsmath.c => js/src/jsmath.cpp rename : js/src/jsnum.c => js/src/jsnum.cpp rename : js/src/jsobj.c => js/src/jsobj.cpp rename : js/src/jsopcode.c => js/src/jsopcode.cpp rename : js/src/jsparse.c => js/src/jsparse.cpp rename : js/src/jsprf.c => js/src/jsprf.cpp rename : js/src/jsregexp.c => js/src/jsregexp.cpp rename : js/src/jsscan.c => js/src/jsscan.cpp rename : js/src/jsscope.c => js/src/jsscope.cpp rename : js/src/jsscript.c => js/src/jsscript.cpp rename : js/src/jsstr.c => js/src/jsstr.cpp rename : js/src/jsutil.c => js/src/jsutil.cpp rename : js/src/jsxdrapi.c => js/src/jsxdrapi.cpp rename : js/src/jsxml.c => js/src/jsxml.cpp rename : js/src/prmjtime.c => js/src/prmjtime.cpp
2007-07-16 11:40:49 -07:00
jsopcode.cpp \
jsparse.cpp \
jsprf.cpp \
jsregexp.cpp \
jsscan.cpp \
jsscope.cpp \
jsscript.cpp \
jsstr.cpp \
jsutil.cpp \
jsxdrapi.cpp \
jsxml.cpp \
prmjtime.cpp \
$(NULL)
ifdef HAVE_DTRACE
CSRCS += \
jsdtracef.c
endif
EXPORTS = \
jsautocfg.h \
jsautokw.h \
js.msg \
jsapi.h \
jsarray.h \
jsarena.h \
jsatom.h \
jsbit.h \
jsbool.h \
jsclist.h \
jscntxt.h \
jscompat.h \
jsdate.h \
jsdbgapi.h \
jsdhash.h \
jsdtoa.h \
jsemit.h \
jsfun.h \
jsgc.h \
jshash.h \
jsinterp.h \
jsiter.h \
jslock.h \
jslong.h \
jsmath.h \
jsnum.h \
jsobj.h \
json.h \
jsopcode.tbl \
jsopcode.h \
jsotypes.h \
jsparse.h \
jsprf.h \
jsproto.tbl \
jsprvtd.h \
jspubtd.h \
jsregexp.h \
jsscan.h \
jsscope.h \
jsscript.h \
jsstddef.h \
jsstr.h \
jstracer.h \
jstypes.h \
jsutil.h \
jsversion.h \
jsxdrapi.h \
jsxml.h \
$(NULL)
ifdef ENABLE_JIT
VPATH += $(srcdir)/nanojit
EXPORTS += \
builtins.tbl \
jsbuiltins.h \
Assembler.h \
LIR.h \
avmplus.h \
Fragmento.h \
Native.h \
Native$(NANOJIT_ARCH).h \
RegAlloc.h \
nanojit.h \
TraceTreeDrawer.h \
$(NULL)
CPPSRCS += \
jstracer.cpp \
Assembler.cpp \
Fragmento.cpp \
LIR.cpp \
RegAlloc.cpp \
avmplus.cpp \
Native$(NANOJIT_ARCH).cpp \
jsbuiltins.cpp \
$(NULL)
2008-07-10 06:12:53 -07:00
ifdef DEBUG
CPPSRCS += TraceTreeDrawer.cpp
2008-07-10 06:12:53 -07:00
endif
DEFINES += -DFEATURE_NANOJIT -DJS_TRACER
2008-07-10 06:12:53 -07:00
endif
ifdef HAVE_DTRACE
EXPORTS += \
jsdtracef.h \
javascript-trace.h \
$(NULL)
endif
ifeq (,$(filter-out WINNT WINCE,$(OS_ARCH)))
EXPORTS += jscpucfg.h
endif
JS_SAFE_ARENA = 1
DASH_R = -r
ifneq (,$(filter OS2 WINCE WINNT,$(OS_ARCH)))
SDK_LIBRARY = $(IMPORT_LIBRARY)
else
SDK_LIBRARY = $(SHARED_LIBRARY)
endif
include $(topsrcdir)/config/config.mk
EXTRA_DSO_LDOPTS += $(NSPR_LIBS)
ifdef MOZ_MEMORY
ifeq ($(OS_ARCH),SunOS)
EXTRA_DSO_LDOPTS += $(call EXPAND_LIBNAME_PATH,jemalloc,$(DIST)/lib)
endif
endif
Bug 387935, Always build JS as C++, r=benjamin --HG-- rename : js/src/js.c => js/src/js.cpp rename : js/src/jsapi.c => js/src/jsapi.cpp rename : js/src/jsarena.c => js/src/jsarena.cpp rename : js/src/jsarray.c => js/src/jsarray.cpp rename : js/src/jsatom.c => js/src/jsatom.cpp rename : js/src/jsbool.c => js/src/jsbool.cpp rename : js/src/jscntxt.c => js/src/jscntxt.cpp rename : js/src/jscpucfg.c => js/src/jscpucfg.cpp rename : js/src/jsdate.c => js/src/jsdate.cpp rename : js/src/jsdbgapi.c => js/src/jsdbgapi.cpp rename : js/src/jsdhash.c => js/src/jsdhash.cpp rename : js/src/jsdtoa.c => js/src/jsdtoa.cpp rename : js/src/jsemit.c => js/src/jsemit.cpp rename : js/src/jsexn.c => js/src/jsexn.cpp rename : js/src/jsfile.c => js/src/jsfile.cpp rename : js/src/jsfun.c => js/src/jsfun.cpp rename : js/src/jsgc.c => js/src/jsgc.cpp rename : js/src/jshash.c => js/src/jshash.cpp rename : js/src/jsinterp.c => js/src/jsinterp.cpp rename : js/src/jsiter.c => js/src/jsiter.cpp rename : js/src/jskwgen.c => js/src/jskwgen.cpp rename : js/src/jslock.c => js/src/jslock.cpp rename : js/src/jslog2.c => js/src/jslog2.cpp rename : js/src/jslong.c => js/src/jslong.cpp rename : js/src/jsmath.c => js/src/jsmath.cpp rename : js/src/jsnum.c => js/src/jsnum.cpp rename : js/src/jsobj.c => js/src/jsobj.cpp rename : js/src/jsopcode.c => js/src/jsopcode.cpp rename : js/src/jsparse.c => js/src/jsparse.cpp rename : js/src/jsprf.c => js/src/jsprf.cpp rename : js/src/jsregexp.c => js/src/jsregexp.cpp rename : js/src/jsscan.c => js/src/jsscan.cpp rename : js/src/jsscope.c => js/src/jsscope.cpp rename : js/src/jsscript.c => js/src/jsscript.cpp rename : js/src/jsstr.c => js/src/jsstr.cpp rename : js/src/jsutil.c => js/src/jsutil.cpp rename : js/src/jsxdrapi.c => js/src/jsxdrapi.cpp rename : js/src/jsxml.c => js/src/jsxml.cpp rename : js/src/prmjtime.c => js/src/prmjtime.cpp
2007-07-16 11:40:49 -07:00
# When using gcc the assembly is inlined in the C-file (see jslock.cpp)
ifeq ($(OS_ARCH),SunOS)
ifneq (86,$(findstring 86,$(OS_TEST)))
ifndef GNU_CC
ASFILES = lock_$(OS_ARCH).s
endif
endif
endif
ifndef BUILD_OPT
MOCHAFILE = 1
endif
ifndef NSBUILDROOT
JSJAVA_STUBHEADERS = \
-I$(topsrcdir)/sun-java/include/_gen \
-I$(topsrcdir)/sun-java/netscape/javascript/_jri \
-I$(topsrcdir)/sun-java/netscape/security/_jri
else
JSJAVA_STUBHEADERS = -I$(JRI_GEN_DIR) -I$(JDK_GEN_DIR)
endif
JSJAVA_CFLAGS = \
-I$(topsrcdir)/sun-java/md-include \
-I$(topsrcdir)/sun-java/include \
$(JSJAVA_STUBHEADERS)
# Define keyword generator before rules.mk, see bug 323979 comment 50
HOST_SIMPLE_PROGRAMS += host_jskwgen$(HOST_BIN_SUFFIX)
GARBAGE += jsautokw.h host_jskwgen$(HOST_BIN_SUFFIX)
HOST_SIMPLE_PROGRAMS += host_jsoplengen$(HOST_BIN_SUFFIX)
GARBAGE += jsautooplen.h host_jsoplengen$(HOST_BIN_SUFFIX)
Bug 387935, Always build JS as C++, r=benjamin --HG-- rename : js/src/js.c => js/src/js.cpp rename : js/src/jsapi.c => js/src/jsapi.cpp rename : js/src/jsarena.c => js/src/jsarena.cpp rename : js/src/jsarray.c => js/src/jsarray.cpp rename : js/src/jsatom.c => js/src/jsatom.cpp rename : js/src/jsbool.c => js/src/jsbool.cpp rename : js/src/jscntxt.c => js/src/jscntxt.cpp rename : js/src/jscpucfg.c => js/src/jscpucfg.cpp rename : js/src/jsdate.c => js/src/jsdate.cpp rename : js/src/jsdbgapi.c => js/src/jsdbgapi.cpp rename : js/src/jsdhash.c => js/src/jsdhash.cpp rename : js/src/jsdtoa.c => js/src/jsdtoa.cpp rename : js/src/jsemit.c => js/src/jsemit.cpp rename : js/src/jsexn.c => js/src/jsexn.cpp rename : js/src/jsfile.c => js/src/jsfile.cpp rename : js/src/jsfun.c => js/src/jsfun.cpp rename : js/src/jsgc.c => js/src/jsgc.cpp rename : js/src/jshash.c => js/src/jshash.cpp rename : js/src/jsinterp.c => js/src/jsinterp.cpp rename : js/src/jsiter.c => js/src/jsiter.cpp rename : js/src/jskwgen.c => js/src/jskwgen.cpp rename : js/src/jslock.c => js/src/jslock.cpp rename : js/src/jslog2.c => js/src/jslog2.cpp rename : js/src/jslong.c => js/src/jslong.cpp rename : js/src/jsmath.c => js/src/jsmath.cpp rename : js/src/jsnum.c => js/src/jsnum.cpp rename : js/src/jsobj.c => js/src/jsobj.cpp rename : js/src/jsopcode.c => js/src/jsopcode.cpp rename : js/src/jsparse.c => js/src/jsparse.cpp rename : js/src/jsprf.c => js/src/jsprf.cpp rename : js/src/jsregexp.c => js/src/jsregexp.cpp rename : js/src/jsscan.c => js/src/jsscan.cpp rename : js/src/jsscope.c => js/src/jsscope.cpp rename : js/src/jsscript.c => js/src/jsscript.cpp rename : js/src/jsstr.c => js/src/jsstr.cpp rename : js/src/jsutil.c => js/src/jsutil.cpp rename : js/src/jsxdrapi.c => js/src/jsxdrapi.cpp rename : js/src/jsxml.c => js/src/jsxml.cpp rename : js/src/prmjtime.c => js/src/prmjtime.cpp
2007-07-16 11:40:49 -07:00
USE_HOST_CXX = 1
ifdef HAVE_DTRACE
ifneq ($(OS_ARCH),Darwin)
DTRACE_PROBE_OBJ = $(LIBRARY_NAME)-dtrace.$(OBJ_SUFFIX)
endif
MOZILLA_DTRACE_SRC = $(srcdir)/javascript-trace.d
endif
include $(topsrcdir)/config/rules.mk
2008-07-10 06:12:53 -07:00
# our build system doesn't handle subdir srcs very gracefully today
export::
mkdir -p nanojit
2008-07-10 06:12:53 -07:00
DEFINES += -DEXPORT_JS_API
INCLUDES += -I$(srcdir)
# MSVC '-Gy' cc flag and '/OPT:REF' linker flag cause JS_GetArgument and
# JS_GetLocalVariable to be folded to the same address by the linker,
# leading to a crash on startup. See bug 151066. So, in optimized builds,
# add the /OPT:NOICF flag, which turns off 'identical COMDAT folding'.
#
# N.B.: 'identical COMDAT folding' that folds functions whose addresses
# are taken violates the ISO C and C++ standards.
ifndef MOZ_DEBUG
ifeq (_WINNT,$(GNU_CC)_$(OS_ARCH))
LDFLAGS += -OPT:NOICF
endif
endif
GARBAGE += jscpucfg.o jsautocfg.h jsautocfg.tmp jscpucfg
ifneq (,$(CROSS_COMPILE)$(filter-out WINNT,$(OS_ARCH)))
TARGETS += jscpucfg$(HOST_BIN_SUFFIX)
endif
ifdef JS_SAFE_ARENA
DEFINES += -DJS_USE_SAFE_ARENA
endif
ifdef JS_THREADSAFE
DEFINES += -DJS_THREADSAFE
endif
ifdef JS_NO_THIN_LOCKS
DEFINES += -DJS_USE_ONLY_NSPR_LOCKS
endif
ifdef JS_VERSION
DEFINES += -DJS_VERSION=$(JS_VERSION)
endif
ifneq ($(findstring -L,$(NSPR_LIBS)),)
NSPR_STATIC_PATH = $(subst -L,,$(findstring -L,$(NSPR_LIBS)))
else
NSPR_STATIC_PATH = $(DIST)/lib
endif
ifdef MOZ_SHARK
CFLAGS += -F/System/Library/PrivateFrameworks
CXXFLAGS += -F/System/Library/PrivateFrameworks
LDFLAGS += -F/System/Library/PrivateFrameworks -framework CHUD
endif
ifdef MOZ_VTUNE
CXXFLAGS += -IC:/Program\ Files/Intel/VTune/Analyzer/Include
EXTRA_DSO_LDOPTS += C:/Program\ Files/Intel/VTune/Analyzer/Lib/VtuneApi.lib
LIBS += C:/Program\ Files/Intel/VTune/Analyzer/Lib/VtuneApi.lib
endif
# BeOS and HP-UX do not require the extra linking of "-lm"
ifeq (,$(filter BeOS HP-UX WINNT WINCE OpenVMS,$(OS_ARCH)))
EXTRA_LIBS += -lm
endif
# Prevent floating point errors caused by VC++ optimizations
ifeq ($(OS_ARCH)_$(GNU_CC),WINNT_)
ifeq (,$(filter-out 1200 1300 1310,$(_MSC_VER)))
CFLAGS += -Op
else
CFLAGS += -fp:precise
endif
endif # WINNT
ifeq ($(OS_ARCH),FreeBSD)
EXTRA_LIBS += -pthread
endif
ifeq ($(OS_ARCH),IRIX)
ifdef USE_N32
DASH_R += -n32
endif
endif
ifeq ($(OS_ARCH),Linux)
EXTRA_LIBS += -ldl
endif
ifeq ($(OS_ARCH),OSF1)
EXTRA_LIBS += -lc_r
endif
ifeq ($(OS_ARCH),SunOS)
ifeq ($(TARGET_CPU),sparc)
ifdef JS_ULTRASPARC_OPTS
DEFINES += -DULTRA_SPARC
ifdef GNU_CC
CFLAGS += -Wa,-xarch=v8plus,-DULTRA_SPARC,-P,-L,-D_ASM,-D__STDC__=0
CXXFLAGS += -Wa,-xarch=v8plus,-DULTRA_SPARC,-P,-L,-D_ASM,-D__STDC__=0,-K,PIC
else
ASFLAGS += -xarch=v8plus -DULTRA_SPARC -P -L -D_ASM -D__STDC__=0 -K PIC
endif # GNU_CC
endif # JS_ULTRASPARC_OPTS
endif
ifeq ($(OS_RELEASE),4.1)
EXTRA_LIBS += -ldl -lnsl
else
EXTRA_LIBS += -lposix4 -ldl -lnsl -lsocket
endif
endif
ifdef MOZ_MEMORY
ifeq ($(OS_ARCH),Darwin)
LDFLAGS += -ljemalloc
endif
endif
# Sun Studio x86 has an optimization bug with LIR.cpp, use -xO2 instead.
ifeq ($(OS_ARCH),SunOS)
ifeq (86,$(findstring 86,$(OS_TEST)))
ifndef GNU_CC
LIR.o: LIR.cpp Makefile.in
2008-09-11 05:12:55 -07:00
$(REPORT_BUILD)
@$(MAKE_DEPS_AUTO_CXX)
$(CXX) -o $@ -c $(patsubst -xO%,-xO2,$(COMPILE_CFLAGS)) $<
endif
endif
endif
# Allow building jsinterp.c with special optimization flags
ifdef INTERP_OPTIMIZER
jsinterp.$(OBJ_SUFFIX): MODULE_OPTIMIZE_FLAGS=$(INTERP_OPTIMIZER)
endif
ifeq ($(OS_ARCH),IRIX)
ifndef GNU_CC
_COMPILE_CFLAGS = $(patsubst -O%,-O1,$(COMPILE_CFLAGS))
Bug 387935, Always build JS as C++, r=benjamin --HG-- rename : js/src/js.c => js/src/js.cpp rename : js/src/jsapi.c => js/src/jsapi.cpp rename : js/src/jsarena.c => js/src/jsarena.cpp rename : js/src/jsarray.c => js/src/jsarray.cpp rename : js/src/jsatom.c => js/src/jsatom.cpp rename : js/src/jsbool.c => js/src/jsbool.cpp rename : js/src/jscntxt.c => js/src/jscntxt.cpp rename : js/src/jscpucfg.c => js/src/jscpucfg.cpp rename : js/src/jsdate.c => js/src/jsdate.cpp rename : js/src/jsdbgapi.c => js/src/jsdbgapi.cpp rename : js/src/jsdhash.c => js/src/jsdhash.cpp rename : js/src/jsdtoa.c => js/src/jsdtoa.cpp rename : js/src/jsemit.c => js/src/jsemit.cpp rename : js/src/jsexn.c => js/src/jsexn.cpp rename : js/src/jsfile.c => js/src/jsfile.cpp rename : js/src/jsfun.c => js/src/jsfun.cpp rename : js/src/jsgc.c => js/src/jsgc.cpp rename : js/src/jshash.c => js/src/jshash.cpp rename : js/src/jsinterp.c => js/src/jsinterp.cpp rename : js/src/jsiter.c => js/src/jsiter.cpp rename : js/src/jskwgen.c => js/src/jskwgen.cpp rename : js/src/jslock.c => js/src/jslock.cpp rename : js/src/jslog2.c => js/src/jslog2.cpp rename : js/src/jslong.c => js/src/jslong.cpp rename : js/src/jsmath.c => js/src/jsmath.cpp rename : js/src/jsnum.c => js/src/jsnum.cpp rename : js/src/jsobj.c => js/src/jsobj.cpp rename : js/src/jsopcode.c => js/src/jsopcode.cpp rename : js/src/jsparse.c => js/src/jsparse.cpp rename : js/src/jsprf.c => js/src/jsprf.cpp rename : js/src/jsregexp.c => js/src/jsregexp.cpp rename : js/src/jsscan.c => js/src/jsscan.cpp rename : js/src/jsscope.c => js/src/jsscope.cpp rename : js/src/jsscript.c => js/src/jsscript.cpp rename : js/src/jsstr.c => js/src/jsstr.cpp rename : js/src/jsutil.c => js/src/jsutil.cpp rename : js/src/jsxdrapi.c => js/src/jsxdrapi.cpp rename : js/src/jsxml.c => js/src/jsxml.cpp rename : js/src/prmjtime.c => js/src/prmjtime.cpp
2007-07-16 11:40:49 -07:00
jsapi.o jsxdrapi.o jsarena.o jsarray.o jsatom.o jsemit.o jsfun.o jsinterp.o jsregexp.o jsparse.o jsopcode.o jsscript.o: %.o: %.cpp Makefile.in
$(REPORT_BUILD)
@$(MAKE_DEPS_AUTO_CXX)
Bug 387935, Always build JS as C++, r=benjamin --HG-- rename : js/src/js.c => js/src/js.cpp rename : js/src/jsapi.c => js/src/jsapi.cpp rename : js/src/jsarena.c => js/src/jsarena.cpp rename : js/src/jsarray.c => js/src/jsarray.cpp rename : js/src/jsatom.c => js/src/jsatom.cpp rename : js/src/jsbool.c => js/src/jsbool.cpp rename : js/src/jscntxt.c => js/src/jscntxt.cpp rename : js/src/jscpucfg.c => js/src/jscpucfg.cpp rename : js/src/jsdate.c => js/src/jsdate.cpp rename : js/src/jsdbgapi.c => js/src/jsdbgapi.cpp rename : js/src/jsdhash.c => js/src/jsdhash.cpp rename : js/src/jsdtoa.c => js/src/jsdtoa.cpp rename : js/src/jsemit.c => js/src/jsemit.cpp rename : js/src/jsexn.c => js/src/jsexn.cpp rename : js/src/jsfile.c => js/src/jsfile.cpp rename : js/src/jsfun.c => js/src/jsfun.cpp rename : js/src/jsgc.c => js/src/jsgc.cpp rename : js/src/jshash.c => js/src/jshash.cpp rename : js/src/jsinterp.c => js/src/jsinterp.cpp rename : js/src/jsiter.c => js/src/jsiter.cpp rename : js/src/jskwgen.c => js/src/jskwgen.cpp rename : js/src/jslock.c => js/src/jslock.cpp rename : js/src/jslog2.c => js/src/jslog2.cpp rename : js/src/jslong.c => js/src/jslong.cpp rename : js/src/jsmath.c => js/src/jsmath.cpp rename : js/src/jsnum.c => js/src/jsnum.cpp rename : js/src/jsobj.c => js/src/jsobj.cpp rename : js/src/jsopcode.c => js/src/jsopcode.cpp rename : js/src/jsparse.c => js/src/jsparse.cpp rename : js/src/jsprf.c => js/src/jsprf.cpp rename : js/src/jsregexp.c => js/src/jsregexp.cpp rename : js/src/jsscan.c => js/src/jsscan.cpp rename : js/src/jsscope.c => js/src/jsscope.cpp rename : js/src/jsscript.c => js/src/jsscript.cpp rename : js/src/jsstr.c => js/src/jsstr.cpp rename : js/src/jsutil.c => js/src/jsutil.cpp rename : js/src/jsxdrapi.c => js/src/jsxdrapi.cpp rename : js/src/jsxml.c => js/src/jsxml.cpp rename : js/src/prmjtime.c => js/src/prmjtime.cpp
2007-07-16 11:40:49 -07:00
$(CXX) -o $@ -c $(_COMPILE_CFLAGS) $<
endif
endif
# An AIX Optimization bug causes PR_dtoa() & JS_dtoa to produce wrong result.
# This suppresses optimization for this single compilation unit.
ifeq ($(OS_ARCH),AIX)
Bug 387935, Always build JS as C++, r=benjamin --HG-- rename : js/src/js.c => js/src/js.cpp rename : js/src/jsapi.c => js/src/jsapi.cpp rename : js/src/jsarena.c => js/src/jsarena.cpp rename : js/src/jsarray.c => js/src/jsarray.cpp rename : js/src/jsatom.c => js/src/jsatom.cpp rename : js/src/jsbool.c => js/src/jsbool.cpp rename : js/src/jscntxt.c => js/src/jscntxt.cpp rename : js/src/jscpucfg.c => js/src/jscpucfg.cpp rename : js/src/jsdate.c => js/src/jsdate.cpp rename : js/src/jsdbgapi.c => js/src/jsdbgapi.cpp rename : js/src/jsdhash.c => js/src/jsdhash.cpp rename : js/src/jsdtoa.c => js/src/jsdtoa.cpp rename : js/src/jsemit.c => js/src/jsemit.cpp rename : js/src/jsexn.c => js/src/jsexn.cpp rename : js/src/jsfile.c => js/src/jsfile.cpp rename : js/src/jsfun.c => js/src/jsfun.cpp rename : js/src/jsgc.c => js/src/jsgc.cpp rename : js/src/jshash.c => js/src/jshash.cpp rename : js/src/jsinterp.c => js/src/jsinterp.cpp rename : js/src/jsiter.c => js/src/jsiter.cpp rename : js/src/jskwgen.c => js/src/jskwgen.cpp rename : js/src/jslock.c => js/src/jslock.cpp rename : js/src/jslog2.c => js/src/jslog2.cpp rename : js/src/jslong.c => js/src/jslong.cpp rename : js/src/jsmath.c => js/src/jsmath.cpp rename : js/src/jsnum.c => js/src/jsnum.cpp rename : js/src/jsobj.c => js/src/jsobj.cpp rename : js/src/jsopcode.c => js/src/jsopcode.cpp rename : js/src/jsparse.c => js/src/jsparse.cpp rename : js/src/jsprf.c => js/src/jsprf.cpp rename : js/src/jsregexp.c => js/src/jsregexp.cpp rename : js/src/jsscan.c => js/src/jsscan.cpp rename : js/src/jsscope.c => js/src/jsscope.cpp rename : js/src/jsscript.c => js/src/jsscript.cpp rename : js/src/jsstr.c => js/src/jsstr.cpp rename : js/src/jsutil.c => js/src/jsutil.cpp rename : js/src/jsxdrapi.c => js/src/jsxdrapi.cpp rename : js/src/jsxml.c => js/src/jsxml.cpp rename : js/src/prmjtime.c => js/src/prmjtime.cpp
2007-07-16 11:40:49 -07:00
jsatom.o: jsatom.cpp Makefile.in
$(REPORT_BUILD)
@$(MAKE_DEPS_AUTO_CXX)
Bug 387935, Always build JS as C++, r=benjamin --HG-- rename : js/src/js.c => js/src/js.cpp rename : js/src/jsapi.c => js/src/jsapi.cpp rename : js/src/jsarena.c => js/src/jsarena.cpp rename : js/src/jsarray.c => js/src/jsarray.cpp rename : js/src/jsatom.c => js/src/jsatom.cpp rename : js/src/jsbool.c => js/src/jsbool.cpp rename : js/src/jscntxt.c => js/src/jscntxt.cpp rename : js/src/jscpucfg.c => js/src/jscpucfg.cpp rename : js/src/jsdate.c => js/src/jsdate.cpp rename : js/src/jsdbgapi.c => js/src/jsdbgapi.cpp rename : js/src/jsdhash.c => js/src/jsdhash.cpp rename : js/src/jsdtoa.c => js/src/jsdtoa.cpp rename : js/src/jsemit.c => js/src/jsemit.cpp rename : js/src/jsexn.c => js/src/jsexn.cpp rename : js/src/jsfile.c => js/src/jsfile.cpp rename : js/src/jsfun.c => js/src/jsfun.cpp rename : js/src/jsgc.c => js/src/jsgc.cpp rename : js/src/jshash.c => js/src/jshash.cpp rename : js/src/jsinterp.c => js/src/jsinterp.cpp rename : js/src/jsiter.c => js/src/jsiter.cpp rename : js/src/jskwgen.c => js/src/jskwgen.cpp rename : js/src/jslock.c => js/src/jslock.cpp rename : js/src/jslog2.c => js/src/jslog2.cpp rename : js/src/jslong.c => js/src/jslong.cpp rename : js/src/jsmath.c => js/src/jsmath.cpp rename : js/src/jsnum.c => js/src/jsnum.cpp rename : js/src/jsobj.c => js/src/jsobj.cpp rename : js/src/jsopcode.c => js/src/jsopcode.cpp rename : js/src/jsparse.c => js/src/jsparse.cpp rename : js/src/jsprf.c => js/src/jsprf.cpp rename : js/src/jsregexp.c => js/src/jsregexp.cpp rename : js/src/jsscan.c => js/src/jsscan.cpp rename : js/src/jsscope.c => js/src/jsscope.cpp rename : js/src/jsscript.c => js/src/jsscript.cpp rename : js/src/jsstr.c => js/src/jsstr.cpp rename : js/src/jsutil.c => js/src/jsutil.cpp rename : js/src/jsxdrapi.c => js/src/jsxdrapi.cpp rename : js/src/jsxml.c => js/src/jsxml.cpp rename : js/src/prmjtime.c => js/src/prmjtime.cpp
2007-07-16 11:40:49 -07:00
$(CXX) -o $@ -c $(filter-out $(MOZ_OPTIMIZE_FLAGS), $(COMPILE_CFLAGS)) $<
jsdtoa.o: jsdtoa.cpp Makefile.in
$(REPORT_BUILD)
@$(MAKE_DEPS_AUTO_CXX)
Bug 387935, Always build JS as C++, r=benjamin --HG-- rename : js/src/js.c => js/src/js.cpp rename : js/src/jsapi.c => js/src/jsapi.cpp rename : js/src/jsarena.c => js/src/jsarena.cpp rename : js/src/jsarray.c => js/src/jsarray.cpp rename : js/src/jsatom.c => js/src/jsatom.cpp rename : js/src/jsbool.c => js/src/jsbool.cpp rename : js/src/jscntxt.c => js/src/jscntxt.cpp rename : js/src/jscpucfg.c => js/src/jscpucfg.cpp rename : js/src/jsdate.c => js/src/jsdate.cpp rename : js/src/jsdbgapi.c => js/src/jsdbgapi.cpp rename : js/src/jsdhash.c => js/src/jsdhash.cpp rename : js/src/jsdtoa.c => js/src/jsdtoa.cpp rename : js/src/jsemit.c => js/src/jsemit.cpp rename : js/src/jsexn.c => js/src/jsexn.cpp rename : js/src/jsfile.c => js/src/jsfile.cpp rename : js/src/jsfun.c => js/src/jsfun.cpp rename : js/src/jsgc.c => js/src/jsgc.cpp rename : js/src/jshash.c => js/src/jshash.cpp rename : js/src/jsinterp.c => js/src/jsinterp.cpp rename : js/src/jsiter.c => js/src/jsiter.cpp rename : js/src/jskwgen.c => js/src/jskwgen.cpp rename : js/src/jslock.c => js/src/jslock.cpp rename : js/src/jslog2.c => js/src/jslog2.cpp rename : js/src/jslong.c => js/src/jslong.cpp rename : js/src/jsmath.c => js/src/jsmath.cpp rename : js/src/jsnum.c => js/src/jsnum.cpp rename : js/src/jsobj.c => js/src/jsobj.cpp rename : js/src/jsopcode.c => js/src/jsopcode.cpp rename : js/src/jsparse.c => js/src/jsparse.cpp rename : js/src/jsprf.c => js/src/jsprf.cpp rename : js/src/jsregexp.c => js/src/jsregexp.cpp rename : js/src/jsscan.c => js/src/jsscan.cpp rename : js/src/jsscope.c => js/src/jsscope.cpp rename : js/src/jsscript.c => js/src/jsscript.cpp rename : js/src/jsstr.c => js/src/jsstr.cpp rename : js/src/jsutil.c => js/src/jsutil.cpp rename : js/src/jsxdrapi.c => js/src/jsxdrapi.cpp rename : js/src/jsxml.c => js/src/jsxml.cpp rename : js/src/prmjtime.c => js/src/prmjtime.cpp
2007-07-16 11:40:49 -07:00
$(CXX) -o $@ -c $(filter-out $(MOZ_OPTIMIZE_FLAGS), $(COMPILE_CFLAGS)) $<
endif
Bug 387935, Always build JS as C++, r=benjamin --HG-- rename : js/src/js.c => js/src/js.cpp rename : js/src/jsapi.c => js/src/jsapi.cpp rename : js/src/jsarena.c => js/src/jsarena.cpp rename : js/src/jsarray.c => js/src/jsarray.cpp rename : js/src/jsatom.c => js/src/jsatom.cpp rename : js/src/jsbool.c => js/src/jsbool.cpp rename : js/src/jscntxt.c => js/src/jscntxt.cpp rename : js/src/jscpucfg.c => js/src/jscpucfg.cpp rename : js/src/jsdate.c => js/src/jsdate.cpp rename : js/src/jsdbgapi.c => js/src/jsdbgapi.cpp rename : js/src/jsdhash.c => js/src/jsdhash.cpp rename : js/src/jsdtoa.c => js/src/jsdtoa.cpp rename : js/src/jsemit.c => js/src/jsemit.cpp rename : js/src/jsexn.c => js/src/jsexn.cpp rename : js/src/jsfile.c => js/src/jsfile.cpp rename : js/src/jsfun.c => js/src/jsfun.cpp rename : js/src/jsgc.c => js/src/jsgc.cpp rename : js/src/jshash.c => js/src/jshash.cpp rename : js/src/jsinterp.c => js/src/jsinterp.cpp rename : js/src/jsiter.c => js/src/jsiter.cpp rename : js/src/jskwgen.c => js/src/jskwgen.cpp rename : js/src/jslock.c => js/src/jslock.cpp rename : js/src/jslog2.c => js/src/jslog2.cpp rename : js/src/jslong.c => js/src/jslong.cpp rename : js/src/jsmath.c => js/src/jsmath.cpp rename : js/src/jsnum.c => js/src/jsnum.cpp rename : js/src/jsobj.c => js/src/jsobj.cpp rename : js/src/jsopcode.c => js/src/jsopcode.cpp rename : js/src/jsparse.c => js/src/jsparse.cpp rename : js/src/jsprf.c => js/src/jsprf.cpp rename : js/src/jsregexp.c => js/src/jsregexp.cpp rename : js/src/jsscan.c => js/src/jsscan.cpp rename : js/src/jsscope.c => js/src/jsscope.cpp rename : js/src/jsscript.c => js/src/jsscript.cpp rename : js/src/jsstr.c => js/src/jsstr.cpp rename : js/src/jsutil.c => js/src/jsutil.cpp rename : js/src/jsxdrapi.c => js/src/jsxdrapi.cpp rename : js/src/jsxml.c => js/src/jsxml.cpp rename : js/src/prmjtime.c => js/src/prmjtime.cpp
2007-07-16 11:40:49 -07:00
jsopcode.h jsopcode.cpp: jsopcode.tbl
ifeq (,$(CROSS_COMPILE)$(filter-out WINNT,$(OS_ARCH)))
jsautocfg.h:
touch $@
else
ifeq ($(OS_ARCH),WINCE)
jsautocfg.h:
touch $@
else
jsautocfg.h: jscpucfg$(HOST_BIN_SUFFIX)
@rm -f $@ jsautocfg.tmp
./jscpucfg > jsautocfg.tmp
mv jsautocfg.tmp $@
endif
endif
# jscpucfg is a strange target
# Needs to be built with the host compiler but needs to include
# the mdcpucfg for the target so it needs the appropriate target defines
ifdef HOST_NSPR_MDCPUCFG
Bug 387935, Always build JS as C++, r=benjamin --HG-- rename : js/src/js.c => js/src/js.cpp rename : js/src/jsapi.c => js/src/jsapi.cpp rename : js/src/jsarena.c => js/src/jsarena.cpp rename : js/src/jsarray.c => js/src/jsarray.cpp rename : js/src/jsatom.c => js/src/jsatom.cpp rename : js/src/jsbool.c => js/src/jsbool.cpp rename : js/src/jscntxt.c => js/src/jscntxt.cpp rename : js/src/jscpucfg.c => js/src/jscpucfg.cpp rename : js/src/jsdate.c => js/src/jsdate.cpp rename : js/src/jsdbgapi.c => js/src/jsdbgapi.cpp rename : js/src/jsdhash.c => js/src/jsdhash.cpp rename : js/src/jsdtoa.c => js/src/jsdtoa.cpp rename : js/src/jsemit.c => js/src/jsemit.cpp rename : js/src/jsexn.c => js/src/jsexn.cpp rename : js/src/jsfile.c => js/src/jsfile.cpp rename : js/src/jsfun.c => js/src/jsfun.cpp rename : js/src/jsgc.c => js/src/jsgc.cpp rename : js/src/jshash.c => js/src/jshash.cpp rename : js/src/jsinterp.c => js/src/jsinterp.cpp rename : js/src/jsiter.c => js/src/jsiter.cpp rename : js/src/jskwgen.c => js/src/jskwgen.cpp rename : js/src/jslock.c => js/src/jslock.cpp rename : js/src/jslog2.c => js/src/jslog2.cpp rename : js/src/jslong.c => js/src/jslong.cpp rename : js/src/jsmath.c => js/src/jsmath.cpp rename : js/src/jsnum.c => js/src/jsnum.cpp rename : js/src/jsobj.c => js/src/jsobj.cpp rename : js/src/jsopcode.c => js/src/jsopcode.cpp rename : js/src/jsparse.c => js/src/jsparse.cpp rename : js/src/jsprf.c => js/src/jsprf.cpp rename : js/src/jsregexp.c => js/src/jsregexp.cpp rename : js/src/jsscan.c => js/src/jsscan.cpp rename : js/src/jsscope.c => js/src/jsscope.cpp rename : js/src/jsscript.c => js/src/jsscript.cpp rename : js/src/jsstr.c => js/src/jsstr.cpp rename : js/src/jsutil.c => js/src/jsutil.cpp rename : js/src/jsxdrapi.c => js/src/jsxdrapi.cpp rename : js/src/jsxml.c => js/src/jsxml.cpp rename : js/src/prmjtime.c => js/src/prmjtime.cpp
2007-07-16 11:40:49 -07:00
HOST_CXX := $(HOST_CXX) -DMDCPUCFG=$(TARGET_NSPR_MDCPUCFG)
HOST_CXXFLAGS := $(patsubst -DXP_%,,$(HOST_CXXFLAGS))
endif
ifdef CROSS_COMPILE
# jscpucfg needs to know when it's supposed to produce a config for the target
JSCPUCFG_DEFINES = $(ACDEFINES)
# This is incredibly hacky. Darwin NSPR uses the same MDCPUCFG for multiple
# processors, and determines which processor to configure for based on
# #ifdef i386. This macro is among the NSPR defines, but is also automatically
# defined by the compiler when building for i386. It therefore needs to be
# defined here if targeting i386, and explicitly undefined otherwise.
ifeq ($(OS_ARCH),Darwin)
ifeq ($(TARGET_CPU),powerpc)
JSCPUCFG_DEFINES += -Ui386
else
JSCPUCFG_DEFINES += -Di386=1
endif
endif
endif
ifeq ($(OS_ARCH),QNX)
ifneq ($(OS_TARGET),NTO)
# QNX's compiler apparently can't build a binary directly from a source file.
Bug 387935, Always build JS as C++, r=benjamin --HG-- rename : js/src/js.c => js/src/js.cpp rename : js/src/jsapi.c => js/src/jsapi.cpp rename : js/src/jsarena.c => js/src/jsarena.cpp rename : js/src/jsarray.c => js/src/jsarray.cpp rename : js/src/jsatom.c => js/src/jsatom.cpp rename : js/src/jsbool.c => js/src/jsbool.cpp rename : js/src/jscntxt.c => js/src/jscntxt.cpp rename : js/src/jscpucfg.c => js/src/jscpucfg.cpp rename : js/src/jsdate.c => js/src/jsdate.cpp rename : js/src/jsdbgapi.c => js/src/jsdbgapi.cpp rename : js/src/jsdhash.c => js/src/jsdhash.cpp rename : js/src/jsdtoa.c => js/src/jsdtoa.cpp rename : js/src/jsemit.c => js/src/jsemit.cpp rename : js/src/jsexn.c => js/src/jsexn.cpp rename : js/src/jsfile.c => js/src/jsfile.cpp rename : js/src/jsfun.c => js/src/jsfun.cpp rename : js/src/jsgc.c => js/src/jsgc.cpp rename : js/src/jshash.c => js/src/jshash.cpp rename : js/src/jsinterp.c => js/src/jsinterp.cpp rename : js/src/jsiter.c => js/src/jsiter.cpp rename : js/src/jskwgen.c => js/src/jskwgen.cpp rename : js/src/jslock.c => js/src/jslock.cpp rename : js/src/jslog2.c => js/src/jslog2.cpp rename : js/src/jslong.c => js/src/jslong.cpp rename : js/src/jsmath.c => js/src/jsmath.cpp rename : js/src/jsnum.c => js/src/jsnum.cpp rename : js/src/jsobj.c => js/src/jsobj.cpp rename : js/src/jsopcode.c => js/src/jsopcode.cpp rename : js/src/jsparse.c => js/src/jsparse.cpp rename : js/src/jsprf.c => js/src/jsprf.cpp rename : js/src/jsregexp.c => js/src/jsregexp.cpp rename : js/src/jsscan.c => js/src/jsscan.cpp rename : js/src/jsscope.c => js/src/jsscope.cpp rename : js/src/jsscript.c => js/src/jsscript.cpp rename : js/src/jsstr.c => js/src/jsstr.cpp rename : js/src/jsutil.c => js/src/jsutil.cpp rename : js/src/jsxdrapi.c => js/src/jsxdrapi.cpp rename : js/src/jsxml.c => js/src/jsxml.cpp rename : js/src/prmjtime.c => js/src/prmjtime.cpp
2007-07-16 11:40:49 -07:00
jscpucfg.o: jscpucfg.cpp Makefile.in
$(HOST_CXX) $(HOST_CXXFLAGS) -c $(JSCPUCFG_DEFINES) $(DEFINES) $(NSPR_CFLAGS) -o $@ $<
jscpucfg: jscpucfg.o
Bug 387935, Always build JS as C++, r=benjamin --HG-- rename : js/src/js.c => js/src/js.cpp rename : js/src/jsapi.c => js/src/jsapi.cpp rename : js/src/jsarena.c => js/src/jsarena.cpp rename : js/src/jsarray.c => js/src/jsarray.cpp rename : js/src/jsatom.c => js/src/jsatom.cpp rename : js/src/jsbool.c => js/src/jsbool.cpp rename : js/src/jscntxt.c => js/src/jscntxt.cpp rename : js/src/jscpucfg.c => js/src/jscpucfg.cpp rename : js/src/jsdate.c => js/src/jsdate.cpp rename : js/src/jsdbgapi.c => js/src/jsdbgapi.cpp rename : js/src/jsdhash.c => js/src/jsdhash.cpp rename : js/src/jsdtoa.c => js/src/jsdtoa.cpp rename : js/src/jsemit.c => js/src/jsemit.cpp rename : js/src/jsexn.c => js/src/jsexn.cpp rename : js/src/jsfile.c => js/src/jsfile.cpp rename : js/src/jsfun.c => js/src/jsfun.cpp rename : js/src/jsgc.c => js/src/jsgc.cpp rename : js/src/jshash.c => js/src/jshash.cpp rename : js/src/jsinterp.c => js/src/jsinterp.cpp rename : js/src/jsiter.c => js/src/jsiter.cpp rename : js/src/jskwgen.c => js/src/jskwgen.cpp rename : js/src/jslock.c => js/src/jslock.cpp rename : js/src/jslog2.c => js/src/jslog2.cpp rename : js/src/jslong.c => js/src/jslong.cpp rename : js/src/jsmath.c => js/src/jsmath.cpp rename : js/src/jsnum.c => js/src/jsnum.cpp rename : js/src/jsobj.c => js/src/jsobj.cpp rename : js/src/jsopcode.c => js/src/jsopcode.cpp rename : js/src/jsparse.c => js/src/jsparse.cpp rename : js/src/jsprf.c => js/src/jsprf.cpp rename : js/src/jsregexp.c => js/src/jsregexp.cpp rename : js/src/jsscan.c => js/src/jsscan.cpp rename : js/src/jsscope.c => js/src/jsscope.cpp rename : js/src/jsscript.c => js/src/jsscript.cpp rename : js/src/jsstr.c => js/src/jsstr.cpp rename : js/src/jsutil.c => js/src/jsutil.cpp rename : js/src/jsxdrapi.c => js/src/jsxdrapi.cpp rename : js/src/jsxml.c => js/src/jsxml.cpp rename : js/src/prmjtime.c => js/src/prmjtime.cpp
2007-07-16 11:40:49 -07:00
$(HOST_CXX) $(HOST_CXXFLAGS) $(JSCPUCFG_DEFINES) $(DEFINES) -o $@ $<
endif
else
ifeq ($(OS_ARCH),WINCE)
jscpucfg$(HOST_BIN_SUFFIX):
echo no need to build jscpucfg $<
else
Bug 387935, Always build JS as C++, r=benjamin --HG-- rename : js/src/js.c => js/src/js.cpp rename : js/src/jsapi.c => js/src/jsapi.cpp rename : js/src/jsarena.c => js/src/jsarena.cpp rename : js/src/jsarray.c => js/src/jsarray.cpp rename : js/src/jsatom.c => js/src/jsatom.cpp rename : js/src/jsbool.c => js/src/jsbool.cpp rename : js/src/jscntxt.c => js/src/jscntxt.cpp rename : js/src/jscpucfg.c => js/src/jscpucfg.cpp rename : js/src/jsdate.c => js/src/jsdate.cpp rename : js/src/jsdbgapi.c => js/src/jsdbgapi.cpp rename : js/src/jsdhash.c => js/src/jsdhash.cpp rename : js/src/jsdtoa.c => js/src/jsdtoa.cpp rename : js/src/jsemit.c => js/src/jsemit.cpp rename : js/src/jsexn.c => js/src/jsexn.cpp rename : js/src/jsfile.c => js/src/jsfile.cpp rename : js/src/jsfun.c => js/src/jsfun.cpp rename : js/src/jsgc.c => js/src/jsgc.cpp rename : js/src/jshash.c => js/src/jshash.cpp rename : js/src/jsinterp.c => js/src/jsinterp.cpp rename : js/src/jsiter.c => js/src/jsiter.cpp rename : js/src/jskwgen.c => js/src/jskwgen.cpp rename : js/src/jslock.c => js/src/jslock.cpp rename : js/src/jslog2.c => js/src/jslog2.cpp rename : js/src/jslong.c => js/src/jslong.cpp rename : js/src/jsmath.c => js/src/jsmath.cpp rename : js/src/jsnum.c => js/src/jsnum.cpp rename : js/src/jsobj.c => js/src/jsobj.cpp rename : js/src/jsopcode.c => js/src/jsopcode.cpp rename : js/src/jsparse.c => js/src/jsparse.cpp rename : js/src/jsprf.c => js/src/jsprf.cpp rename : js/src/jsregexp.c => js/src/jsregexp.cpp rename : js/src/jsscan.c => js/src/jsscan.cpp rename : js/src/jsscope.c => js/src/jsscope.cpp rename : js/src/jsscript.c => js/src/jsscript.cpp rename : js/src/jsstr.c => js/src/jsstr.cpp rename : js/src/jsutil.c => js/src/jsutil.cpp rename : js/src/jsxdrapi.c => js/src/jsxdrapi.cpp rename : js/src/jsxml.c => js/src/jsxml.cpp rename : js/src/prmjtime.c => js/src/prmjtime.cpp
2007-07-16 11:40:49 -07:00
jscpucfg$(HOST_BIN_SUFFIX): jscpucfg.cpp Makefile.in
$(HOST_CXX) $(HOST_CXXFLAGS) $(JSCPUCFG_DEFINES) $(DEFINES) $(NSPR_CFLAGS) $(HOST_OUTOPTION)$@ $<
endif
endif
2008-05-23 23:44:08 -07:00
# Extra dependancies and rules for auto-generated headers
host_jskwgen.$(OBJ_SUFFIX): jsversion.h jskeyword.tbl
jsautokw.h: host_jskwgen$(HOST_BIN_SUFFIX)
./host_jskwgen$(HOST_BIN_SUFFIX) $@
2008-05-23 23:44:08 -07:00
host_jsoplengen.$(OBJ_SUFFIX): jsopcode.tbl
jsautooplen.h: host_jsoplengen$(HOST_BIN_SUFFIX)
./host_jsoplengen$(HOST_BIN_SUFFIX) $@
# Force auto-header generation before compiling any source that may use them
$(CPPSRCS:%.cpp=%.$(OBJ_SUFFIX)): jsautokw.h jsautooplen.h
ifdef HAVE_DTRACE
javascript-trace.h: $(srcdir)/javascript-trace.d
dtrace -h -s $(srcdir)/javascript-trace.d -o javascript-trace.h.in
sed 's/if _DTRACE_VERSION/ifdef INCLUDE_MOZILLA_DTRACE/' \
javascript-trace.h.in > javascript-trace.h
endif