2007-03-22 10:30:00 -07:00
|
|
|
# -*- 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 *****
|
|
|
|
|
Bug 97954: Allow SpiderMonkey to be built on its own, or as part of Mozilla.
Give SpiderMonkey its own configure script and top-level Makefile.
Adjust js/src/Makefile as appropriate for life as a stand-alone
makefile, instead of a 'make export; make libs'-style Mozilla tier
makefile. Have the configure script accept '--with-nspr-cflags' and
'--with-nspr-libs' options for using an in-tree NSPR. Also accept
'--with-system-nspr', '--with-nspr-prefix', and
'--with-nspr-exec-prefix' flags for using an installed NSPR. Default
to --disable-jemalloc, assuming we don't have that part of the tree
available; have the top-level configure script pass --enable-jemalloc
as needed.
Since we no longer have an export phase to copy header files into
dist/include/js before we build the library, we need to be able to
find nanojit.h in the nanojit directory; fix references in
jsbuiltins.h and jstracer.cpp.
Give SpiderMonkey it its own copies of many of the files from ./config
and ./build. These are all exact copies, except as follows:
. js/src/config/Makefile.in: js/src only has a subset of
js/src/config, and thus a subset of the makefile targets.
. js/src/config/autoconf.mk.in: js/src/configure.in has its own make
variables to set, not set by the top-level configure script, so it
needs a custom automake.mk template.
. js/src/config/make-system-wrappers.pl: a copy from nsprpub/config,
so that we can build without having an NSPR source tree handy.
Invoke js/src/configure from ./configure, passing the values computed
for NSPR_CFLAGS and NSPR_LIBS by the top-level configure script.
Treat js/src as a static directory of the js tier, and create a new
config/js (just a Makefile) to be the js tier's non-static directory.
Let js/src/configure generate SpiderMonkey's makefiles, not
./configure.
Generate a 'js-config' script, which clients can call to find the
CFLAGS and LIBS values necessary to compile and link against an
installed SpiderMonkey library. Don't include the js-config script in
Macintosh packages.
Teach client.mk how to rebuild js/src/configure.
Tell Mercurial to ignore files generated by autoconf in js/src.
Further work:
. Right now, callers must define JS_THREADSAFE when #including jsapi.h.
This is fixed in a subsequent patch.
. js/src/configure is a trimmed copy of ./configure. It could be
trimmed more.
--HG--
rename : build/autoconf/acoutput-fast.pl => js/src/build/autoconf/acoutput-fast.pl
rename : build/autoconf/altoptions.m4 => js/src/build/autoconf/altoptions.m4
rename : build/autoconf/config.guess => js/src/build/autoconf/config.guess
rename : build/autoconf/config.sub => js/src/build/autoconf/config.sub
rename : build/autoconf/glib.m4 => js/src/build/autoconf/glib.m4
rename : build/autoconf/install-sh => js/src/build/autoconf/install-sh
rename : build/autoconf/make-makefile => js/src/build/autoconf/make-makefile
rename : build/autoconf/match-dir.sh => js/src/build/autoconf/match-dir.sh
rename : build/autoconf/nspr.m4 => js/src/build/autoconf/nspr.m4
rename : build/autoconf/pkg.m4 => js/src/build/autoconf/pkg.m4
rename : build/autoconf/update-makefile.sh => js/src/build/autoconf/update-makefile.sh
rename : build/cygwin-wrapper => js/src/build/cygwin-wrapper
rename : build/hcc => js/src/build/hcc
rename : build/hcpp => js/src/build/hcpp
rename : build/unix/mddepend.pl => js/src/build/unix/mddepend.pl
rename : build/unix/uniq.pl => js/src/build/unix/uniq.pl
rename : config/Makefile.in => js/src/config/Makefile.in
rename : config/Moz/Milestone.pm => js/src/config/Moz/Milestone.pm
rename : config/autoconf.mk.in => js/src/config/autoconf.mk.in
rename : config/config.mk => js/src/config/config.mk
rename : config/elf-dynstr-gc.c => js/src/config/elf-dynstr-gc.c
rename : config/fastcwd.pl => js/src/config/fastcwd.pl
rename : config/gcc_hidden.h => js/src/config/gcc_hidden.h
rename : config/insure.mk => js/src/config/insure.mk
rename : nsprpub/config/make-system-wrappers.pl => js/src/config/make-system-wrappers.pl
rename : config/milestone.pl => js/src/config/milestone.pl
rename : config/milestone.txt => js/src/config/milestone.txt
rename : config/mkdepend/Makefile.in => js/src/config/mkdepend/Makefile.in
rename : config/mkdepend/cppsetup.c => js/src/config/mkdepend/cppsetup.c
rename : config/mkdepend/def.h => js/src/config/mkdepend/def.h
rename : config/mkdepend/ifparser.c => js/src/config/mkdepend/ifparser.c
rename : config/mkdepend/ifparser.h => js/src/config/mkdepend/ifparser.h
rename : config/mkdepend/imakemdep.h => js/src/config/mkdepend/imakemdep.h
rename : config/mkdepend/include.c => js/src/config/mkdepend/include.c
rename : config/mkdepend/main.c => js/src/config/mkdepend/main.c
rename : config/mkdepend/mkdepend.man => js/src/config/mkdepend/mkdepend.man
rename : config/mkdepend/parse.c => js/src/config/mkdepend/parse.c
rename : config/mkdepend/pr.c => js/src/config/mkdepend/pr.c
rename : config/nfspwd.pl => js/src/config/nfspwd.pl
rename : config/nsinstall.c => js/src/config/nsinstall.c
rename : config/nsinstall.py => js/src/config/nsinstall.py
rename : config/pathsub.c => js/src/config/pathsub.c
rename : config/pathsub.h => js/src/config/pathsub.h
rename : config/preprocessor.pl => js/src/config/preprocessor.pl
rename : config/revdepth-nt.pl => js/src/config/revdepth-nt.pl
rename : config/revdepth.pl => js/src/config/revdepth.pl
rename : config/rules.mk => js/src/config/rules.mk
rename : config/system-headers => js/src/config/system-headers
rename : config/version.mk => js/src/config/version.mk
rename : config/version_win.pl => js/src/config/version_win.pl
rename : configure.in => js/src/configure.in
2008-10-29 08:29:22 -07:00
|
|
|
DEPTH = .
|
2007-03-22 10:30:00 -07:00
|
|
|
topsrcdir = @top_srcdir@
|
|
|
|
srcdir = @srcdir@
|
|
|
|
|
2009-08-06 13:17:22 -07:00
|
|
|
run_for_side_effects := $(shell echo "MAKE: $(MAKE)")
|
2008-12-17 10:27:26 -08:00
|
|
|
include $(DEPTH)/config/autoconf.mk
|
|
|
|
|
Bug 97954: Allow SpiderMonkey to be built on its own, or as part of Mozilla.
Give SpiderMonkey its own configure script and top-level Makefile.
Adjust js/src/Makefile as appropriate for life as a stand-alone
makefile, instead of a 'make export; make libs'-style Mozilla tier
makefile. Have the configure script accept '--with-nspr-cflags' and
'--with-nspr-libs' options for using an in-tree NSPR. Also accept
'--with-system-nspr', '--with-nspr-prefix', and
'--with-nspr-exec-prefix' flags for using an installed NSPR. Default
to --disable-jemalloc, assuming we don't have that part of the tree
available; have the top-level configure script pass --enable-jemalloc
as needed.
Since we no longer have an export phase to copy header files into
dist/include/js before we build the library, we need to be able to
find nanojit.h in the nanojit directory; fix references in
jsbuiltins.h and jstracer.cpp.
Give SpiderMonkey it its own copies of many of the files from ./config
and ./build. These are all exact copies, except as follows:
. js/src/config/Makefile.in: js/src only has a subset of
js/src/config, and thus a subset of the makefile targets.
. js/src/config/autoconf.mk.in: js/src/configure.in has its own make
variables to set, not set by the top-level configure script, so it
needs a custom automake.mk template.
. js/src/config/make-system-wrappers.pl: a copy from nsprpub/config,
so that we can build without having an NSPR source tree handy.
Invoke js/src/configure from ./configure, passing the values computed
for NSPR_CFLAGS and NSPR_LIBS by the top-level configure script.
Treat js/src as a static directory of the js tier, and create a new
config/js (just a Makefile) to be the js tier's non-static directory.
Let js/src/configure generate SpiderMonkey's makefiles, not
./configure.
Generate a 'js-config' script, which clients can call to find the
CFLAGS and LIBS values necessary to compile and link against an
installed SpiderMonkey library. Don't include the js-config script in
Macintosh packages.
Teach client.mk how to rebuild js/src/configure.
Tell Mercurial to ignore files generated by autoconf in js/src.
Further work:
. Right now, callers must define JS_THREADSAFE when #including jsapi.h.
This is fixed in a subsequent patch.
. js/src/configure is a trimmed copy of ./configure. It could be
trimmed more.
--HG--
rename : build/autoconf/acoutput-fast.pl => js/src/build/autoconf/acoutput-fast.pl
rename : build/autoconf/altoptions.m4 => js/src/build/autoconf/altoptions.m4
rename : build/autoconf/config.guess => js/src/build/autoconf/config.guess
rename : build/autoconf/config.sub => js/src/build/autoconf/config.sub
rename : build/autoconf/glib.m4 => js/src/build/autoconf/glib.m4
rename : build/autoconf/install-sh => js/src/build/autoconf/install-sh
rename : build/autoconf/make-makefile => js/src/build/autoconf/make-makefile
rename : build/autoconf/match-dir.sh => js/src/build/autoconf/match-dir.sh
rename : build/autoconf/nspr.m4 => js/src/build/autoconf/nspr.m4
rename : build/autoconf/pkg.m4 => js/src/build/autoconf/pkg.m4
rename : build/autoconf/update-makefile.sh => js/src/build/autoconf/update-makefile.sh
rename : build/cygwin-wrapper => js/src/build/cygwin-wrapper
rename : build/hcc => js/src/build/hcc
rename : build/hcpp => js/src/build/hcpp
rename : build/unix/mddepend.pl => js/src/build/unix/mddepend.pl
rename : build/unix/uniq.pl => js/src/build/unix/uniq.pl
rename : config/Makefile.in => js/src/config/Makefile.in
rename : config/Moz/Milestone.pm => js/src/config/Moz/Milestone.pm
rename : config/autoconf.mk.in => js/src/config/autoconf.mk.in
rename : config/config.mk => js/src/config/config.mk
rename : config/elf-dynstr-gc.c => js/src/config/elf-dynstr-gc.c
rename : config/fastcwd.pl => js/src/config/fastcwd.pl
rename : config/gcc_hidden.h => js/src/config/gcc_hidden.h
rename : config/insure.mk => js/src/config/insure.mk
rename : nsprpub/config/make-system-wrappers.pl => js/src/config/make-system-wrappers.pl
rename : config/milestone.pl => js/src/config/milestone.pl
rename : config/milestone.txt => js/src/config/milestone.txt
rename : config/mkdepend/Makefile.in => js/src/config/mkdepend/Makefile.in
rename : config/mkdepend/cppsetup.c => js/src/config/mkdepend/cppsetup.c
rename : config/mkdepend/def.h => js/src/config/mkdepend/def.h
rename : config/mkdepend/ifparser.c => js/src/config/mkdepend/ifparser.c
rename : config/mkdepend/ifparser.h => js/src/config/mkdepend/ifparser.h
rename : config/mkdepend/imakemdep.h => js/src/config/mkdepend/imakemdep.h
rename : config/mkdepend/include.c => js/src/config/mkdepend/include.c
rename : config/mkdepend/main.c => js/src/config/mkdepend/main.c
rename : config/mkdepend/mkdepend.man => js/src/config/mkdepend/mkdepend.man
rename : config/mkdepend/parse.c => js/src/config/mkdepend/parse.c
rename : config/mkdepend/pr.c => js/src/config/mkdepend/pr.c
rename : config/nfspwd.pl => js/src/config/nfspwd.pl
rename : config/nsinstall.c => js/src/config/nsinstall.c
rename : config/nsinstall.py => js/src/config/nsinstall.py
rename : config/pathsub.c => js/src/config/pathsub.c
rename : config/pathsub.h => js/src/config/pathsub.h
rename : config/preprocessor.pl => js/src/config/preprocessor.pl
rename : config/revdepth-nt.pl => js/src/config/revdepth-nt.pl
rename : config/revdepth.pl => js/src/config/revdepth.pl
rename : config/rules.mk => js/src/config/rules.mk
rename : config/system-headers => js/src/config/system-headers
rename : config/version.mk => js/src/config/version.mk
rename : config/version_win.pl => js/src/config/version_win.pl
rename : configure.in => js/src/configure.in
2008-10-29 08:29:22 -07:00
|
|
|
DIRS = config
|
|
|
|
|
2008-12-17 10:27:26 -08:00
|
|
|
ifdef DEHYDRA_PATH
|
|
|
|
DIRS += analysis-tests
|
|
|
|
endif
|
2007-03-22 10:30:00 -07:00
|
|
|
|
2008-12-03 05:55:27 -08:00
|
|
|
ifdef JS_NATIVE_EDITLINE
|
|
|
|
DIRS += editline
|
|
|
|
endif
|
|
|
|
|
|
|
|
# editline needs to get built before the shell
|
2009-05-18 11:07:39 -07:00
|
|
|
ifndef JS_DISABLE_SHELL
|
2008-12-03 05:55:27 -08:00
|
|
|
DIRS += shell
|
2009-05-18 11:07:39 -07:00
|
|
|
endif
|
2008-12-03 05:55:27 -08:00
|
|
|
|
2009-09-09 09:48:04 -07:00
|
|
|
# FIXME: bug 515383 covers getting these working on wince
|
2010-04-02 15:09:05 -07:00
|
|
|
# bug 530688 covers Android
|
|
|
|
ifneq (,$(filter-out WINCE ANDROID,$(OS_ARCH)))
|
2009-08-20 15:20:14 -07:00
|
|
|
ifdef ENABLE_TESTS
|
|
|
|
DIRS += jsapi-tests
|
|
|
|
endif
|
2009-09-09 09:48:04 -07:00
|
|
|
endif
|
2009-08-20 15:20:14 -07:00
|
|
|
|
2009-09-26 15:54:12 -07:00
|
|
|
ifdef ENABLE_TESTS
|
|
|
|
DIRS += tests
|
|
|
|
endif
|
|
|
|
|
2008-12-03 05:55:27 -08:00
|
|
|
MODULE = js
|
|
|
|
LIBRARY_NAME = mozjs
|
|
|
|
STATIC_LIBRARY_NAME = js_static
|
|
|
|
GRE_MODULE = 1
|
|
|
|
|
2009-03-31 09:27:25 -07:00
|
|
|
LIBS = $(NSPR_LIBS)
|
|
|
|
|
2008-11-14 14:15:02 -08:00
|
|
|
ifdef GNU_CXX
|
|
|
|
ifdef INTEL_CXX
|
2008-03-18 12:36:57 -07:00
|
|
|
# icc gets special optimize flags
|
|
|
|
ifdef MOZ_PROFILE_GENERATE
|
|
|
|
MODULE_OPTIMIZE_FLAGS = -O0
|
|
|
|
else
|
|
|
|
MODULE_OPTIMIZE_FLAGS = -O2 -ip
|
|
|
|
endif
|
2008-11-14 14:15:02 -08:00
|
|
|
else # not INTEL_CXX
|
2010-09-10 11:57:12 -07:00
|
|
|
|
|
|
|
MODULE_OPTIMIZE_FLAGS = -O3 -fstrict-aliasing
|
|
|
|
|
|
|
|
# We normally want -fomit-frame-pointer, but we want an explicit
|
|
|
|
# -fno-omit-frame-pointer if we're using a sampling profiler.
|
2010-10-15 18:44:10 -07:00
|
|
|
ifndef MOZ_PROFILING
|
2010-09-10 11:57:12 -07:00
|
|
|
MODULE_OPTIMIZE_FLAGS += -fomit-frame-pointer
|
|
|
|
else
|
|
|
|
MODULE_OPTIMIZE_FLAGS += -fno-omit-frame-pointer
|
|
|
|
endif
|
|
|
|
|
2008-03-18 12:36:57 -07:00
|
|
|
endif
|
2008-11-14 14:15:02 -08:00
|
|
|
else # not GNU_CXX
|
2007-12-13 19:22:52 -08:00
|
|
|
ifeq ($(OS_ARCH),SunOS)
|
2008-04-01 01:16:17 -07:00
|
|
|
MODULE_OPTIMIZE_FLAGS = -xO4
|
2007-12-13 19:22:52 -08:00
|
|
|
endif
|
|
|
|
ifeq ($(OS_ARCH),WINNT)
|
2008-10-30 14:41:21 -07:00
|
|
|
MODULE_OPTIMIZE_FLAGS = -O2
|
2007-12-13 19:22:52 -08:00
|
|
|
endif
|
2008-10-30 14:41:21 -07:00
|
|
|
endif
|
|
|
|
|
2007-12-13 19:22:52 -08:00
|
|
|
|
2007-03-22 10:30:00 -07:00
|
|
|
# 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.
|
2008-12-03 05:55:27 -08:00
|
|
|
#
|
|
|
|
# In fact, we now build both a static and a shared library, as the
|
|
|
|
# JS shell would like to link to the static library.
|
2007-03-22 10:30:00 -07:00
|
|
|
|
2010-08-13 21:18:05 -07:00
|
|
|
ifdef JS_SHARED_LIBRARY
|
2007-03-22 10:30:00 -07:00
|
|
|
FORCE_SHARED_LIB = 1
|
2010-08-13 21:18:05 -07:00
|
|
|
endif
|
2008-12-03 05:55:27 -08:00
|
|
|
FORCE_STATIC_LIB = 1
|
2010-08-13 21:18:05 -07:00
|
|
|
DIST_INSTALL = 1
|
2007-03-22 10:30:00 -07:00
|
|
|
|
2008-08-25 15:51:30 -07:00
|
|
|
VPATH = $(srcdir)
|
|
|
|
|
2007-07-16 11:40:49 -07:00
|
|
|
CPPSRCS = \
|
2010-10-26 12:00:54 -07:00
|
|
|
jsanalyze.cpp \
|
2007-07-16 11:40:49 -07:00
|
|
|
jsapi.cpp \
|
|
|
|
jsarena.cpp \
|
|
|
|
jsarray.cpp \
|
|
|
|
jsatom.cpp \
|
|
|
|
jsbool.cpp \
|
2010-09-30 17:47:10 -07:00
|
|
|
jsclone.cpp \
|
2007-07-16 11:40:49 -07:00
|
|
|
jscntxt.cpp \
|
2010-12-23 13:41:57 -08:00
|
|
|
jscompartment.cpp \
|
2007-07-16 11:40:49 -07:00
|
|
|
jsdate.cpp \
|
|
|
|
jsdbgapi.cpp \
|
|
|
|
jsdhash.cpp \
|
|
|
|
jsdtoa.cpp \
|
|
|
|
jsemit.cpp \
|
|
|
|
jsexn.cpp \
|
2010-12-23 13:41:57 -08:00
|
|
|
jsfriendapi.cpp \
|
2007-07-16 11:40:49 -07:00
|
|
|
jsfun.cpp \
|
|
|
|
jsgc.cpp \
|
2010-04-12 13:59:19 -07:00
|
|
|
jsgcchunk.cpp \
|
2010-08-24 18:57:14 -07:00
|
|
|
jsgcstats.cpp \
|
2007-07-16 11:40:49 -07:00
|
|
|
jshash.cpp \
|
|
|
|
jsinterp.cpp \
|
2008-03-05 13:00:01 -08:00
|
|
|
jsinvoke.cpp \
|
2007-07-16 11:40:49 -07:00
|
|
|
jsiter.cpp \
|
|
|
|
jslock.cpp \
|
|
|
|
jslog2.cpp \
|
|
|
|
jsmath.cpp \
|
2010-05-19 01:29:05 -07:00
|
|
|
jsnativestack.cpp \
|
2007-07-16 11:40:49 -07:00
|
|
|
jsnum.cpp \
|
|
|
|
jsobj.cpp \
|
2008-09-30 23:13:58 -07:00
|
|
|
json.cpp \
|
2007-07-16 11:40:49 -07:00
|
|
|
jsopcode.cpp \
|
|
|
|
jsparse.cpp \
|
2010-05-18 19:21:43 -07:00
|
|
|
jsproxy.cpp \
|
2007-07-16 11:40:49 -07:00
|
|
|
jsprf.cpp \
|
2010-09-01 14:09:54 -07:00
|
|
|
jsprobes.cpp \
|
2010-03-24 14:16:01 -07:00
|
|
|
jspropertycache.cpp \
|
2010-03-22 11:11:44 -07:00
|
|
|
jspropertytree.cpp \
|
2010-06-15 13:32:32 -07:00
|
|
|
jsreflect.cpp \
|
2007-07-16 11:40:49 -07:00
|
|
|
jsregexp.cpp \
|
|
|
|
jsscan.cpp \
|
|
|
|
jsscope.cpp \
|
|
|
|
jsscript.cpp \
|
|
|
|
jsstr.cpp \
|
2010-01-09 13:01:37 -08:00
|
|
|
jstypedarray.cpp \
|
2007-07-16 11:40:49 -07:00
|
|
|
jsutil.cpp \
|
2010-06-03 15:27:29 -07:00
|
|
|
jswrapper.cpp \
|
2007-07-16 11:40:49 -07:00
|
|
|
jsxdrapi.cpp \
|
|
|
|
jsxml.cpp \
|
|
|
|
prmjtime.cpp \
|
2011-01-14 17:58:40 -08:00
|
|
|
sharkctl.cpp \
|
2007-03-22 10:30:00 -07:00
|
|
|
$(NULL)
|
|
|
|
|
Bug 97954: Allow SpiderMonkey to be built on its own, or as part of Mozilla.
Give SpiderMonkey its own configure script and top-level Makefile.
Adjust js/src/Makefile as appropriate for life as a stand-alone
makefile, instead of a 'make export; make libs'-style Mozilla tier
makefile. Have the configure script accept '--with-nspr-cflags' and
'--with-nspr-libs' options for using an in-tree NSPR. Also accept
'--with-system-nspr', '--with-nspr-prefix', and
'--with-nspr-exec-prefix' flags for using an installed NSPR. Default
to --disable-jemalloc, assuming we don't have that part of the tree
available; have the top-level configure script pass --enable-jemalloc
as needed.
Since we no longer have an export phase to copy header files into
dist/include/js before we build the library, we need to be able to
find nanojit.h in the nanojit directory; fix references in
jsbuiltins.h and jstracer.cpp.
Give SpiderMonkey it its own copies of many of the files from ./config
and ./build. These are all exact copies, except as follows:
. js/src/config/Makefile.in: js/src only has a subset of
js/src/config, and thus a subset of the makefile targets.
. js/src/config/autoconf.mk.in: js/src/configure.in has its own make
variables to set, not set by the top-level configure script, so it
needs a custom automake.mk template.
. js/src/config/make-system-wrappers.pl: a copy from nsprpub/config,
so that we can build without having an NSPR source tree handy.
Invoke js/src/configure from ./configure, passing the values computed
for NSPR_CFLAGS and NSPR_LIBS by the top-level configure script.
Treat js/src as a static directory of the js tier, and create a new
config/js (just a Makefile) to be the js tier's non-static directory.
Let js/src/configure generate SpiderMonkey's makefiles, not
./configure.
Generate a 'js-config' script, which clients can call to find the
CFLAGS and LIBS values necessary to compile and link against an
installed SpiderMonkey library. Don't include the js-config script in
Macintosh packages.
Teach client.mk how to rebuild js/src/configure.
Tell Mercurial to ignore files generated by autoconf in js/src.
Further work:
. Right now, callers must define JS_THREADSAFE when #including jsapi.h.
This is fixed in a subsequent patch.
. js/src/configure is a trimmed copy of ./configure. It could be
trimmed more.
--HG--
rename : build/autoconf/acoutput-fast.pl => js/src/build/autoconf/acoutput-fast.pl
rename : build/autoconf/altoptions.m4 => js/src/build/autoconf/altoptions.m4
rename : build/autoconf/config.guess => js/src/build/autoconf/config.guess
rename : build/autoconf/config.sub => js/src/build/autoconf/config.sub
rename : build/autoconf/glib.m4 => js/src/build/autoconf/glib.m4
rename : build/autoconf/install-sh => js/src/build/autoconf/install-sh
rename : build/autoconf/make-makefile => js/src/build/autoconf/make-makefile
rename : build/autoconf/match-dir.sh => js/src/build/autoconf/match-dir.sh
rename : build/autoconf/nspr.m4 => js/src/build/autoconf/nspr.m4
rename : build/autoconf/pkg.m4 => js/src/build/autoconf/pkg.m4
rename : build/autoconf/update-makefile.sh => js/src/build/autoconf/update-makefile.sh
rename : build/cygwin-wrapper => js/src/build/cygwin-wrapper
rename : build/hcc => js/src/build/hcc
rename : build/hcpp => js/src/build/hcpp
rename : build/unix/mddepend.pl => js/src/build/unix/mddepend.pl
rename : build/unix/uniq.pl => js/src/build/unix/uniq.pl
rename : config/Makefile.in => js/src/config/Makefile.in
rename : config/Moz/Milestone.pm => js/src/config/Moz/Milestone.pm
rename : config/autoconf.mk.in => js/src/config/autoconf.mk.in
rename : config/config.mk => js/src/config/config.mk
rename : config/elf-dynstr-gc.c => js/src/config/elf-dynstr-gc.c
rename : config/fastcwd.pl => js/src/config/fastcwd.pl
rename : config/gcc_hidden.h => js/src/config/gcc_hidden.h
rename : config/insure.mk => js/src/config/insure.mk
rename : nsprpub/config/make-system-wrappers.pl => js/src/config/make-system-wrappers.pl
rename : config/milestone.pl => js/src/config/milestone.pl
rename : config/milestone.txt => js/src/config/milestone.txt
rename : config/mkdepend/Makefile.in => js/src/config/mkdepend/Makefile.in
rename : config/mkdepend/cppsetup.c => js/src/config/mkdepend/cppsetup.c
rename : config/mkdepend/def.h => js/src/config/mkdepend/def.h
rename : config/mkdepend/ifparser.c => js/src/config/mkdepend/ifparser.c
rename : config/mkdepend/ifparser.h => js/src/config/mkdepend/ifparser.h
rename : config/mkdepend/imakemdep.h => js/src/config/mkdepend/imakemdep.h
rename : config/mkdepend/include.c => js/src/config/mkdepend/include.c
rename : config/mkdepend/main.c => js/src/config/mkdepend/main.c
rename : config/mkdepend/mkdepend.man => js/src/config/mkdepend/mkdepend.man
rename : config/mkdepend/parse.c => js/src/config/mkdepend/parse.c
rename : config/mkdepend/pr.c => js/src/config/mkdepend/pr.c
rename : config/nfspwd.pl => js/src/config/nfspwd.pl
rename : config/nsinstall.c => js/src/config/nsinstall.c
rename : config/nsinstall.py => js/src/config/nsinstall.py
rename : config/pathsub.c => js/src/config/pathsub.c
rename : config/pathsub.h => js/src/config/pathsub.h
rename : config/preprocessor.pl => js/src/config/preprocessor.pl
rename : config/revdepth-nt.pl => js/src/config/revdepth-nt.pl
rename : config/revdepth.pl => js/src/config/revdepth.pl
rename : config/rules.mk => js/src/config/rules.mk
rename : config/system-headers => js/src/config/system-headers
rename : config/version.mk => js/src/config/version.mk
rename : config/version_win.pl => js/src/config/version_win.pl
rename : configure.in => js/src/configure.in
2008-10-29 08:29:22 -07:00
|
|
|
INSTALLED_HEADERS = \
|
2008-10-29 08:29:37 -07:00
|
|
|
js-config.h \
|
2007-03-22 10:30:00 -07:00
|
|
|
jsautocfg.h \
|
2009-01-08 10:51:27 -08:00
|
|
|
$(CURDIR)/jsautokw.h \
|
2007-03-22 10:30:00 -07:00
|
|
|
js.msg \
|
2010-10-26 12:00:54 -07:00
|
|
|
jsanalyze.h \
|
2007-03-22 10:30:00 -07:00
|
|
|
jsapi.h \
|
|
|
|
jsarray.h \
|
|
|
|
jsarena.h \
|
|
|
|
jsatom.h \
|
|
|
|
jsbit.h \
|
|
|
|
jsbool.h \
|
|
|
|
jsclist.h \
|
2010-09-30 17:47:10 -07:00
|
|
|
jsclone.h \
|
2007-03-22 10:30:00 -07:00
|
|
|
jscntxt.h \
|
|
|
|
jscompat.h \
|
|
|
|
jsdate.h \
|
|
|
|
jsdbgapi.h \
|
|
|
|
jsdhash.h \
|
2007-12-27 13:34:03 -08:00
|
|
|
jsdtoa.h \
|
2007-03-22 10:30:00 -07:00
|
|
|
jsemit.h \
|
|
|
|
jsfun.h \
|
2010-12-23 13:41:57 -08:00
|
|
|
jsfriendapi.h \
|
2007-03-22 10:30:00 -07:00
|
|
|
jsgc.h \
|
2010-09-24 10:54:39 -07:00
|
|
|
jscell.h \
|
2010-06-07 02:17:15 -07:00
|
|
|
jsgcchunk.h \
|
2010-08-24 18:57:14 -07:00
|
|
|
jsgcstats.h \
|
2010-09-24 10:54:39 -07:00
|
|
|
jscompartment.h \
|
2007-03-22 10:30:00 -07:00
|
|
|
jshash.h \
|
|
|
|
jsinterp.h \
|
Bug 479258: Don't define <stdint.h> types in public headers. r=brendan
On systems that don't have <stdint.h> (i.e., Microsoft, which is
tragically underfunded and cannot spare the resources necessary to
provide and support this header: http://tinyurl.com/absoh8),
SpiderMonkey header files should not introduce definitions for these
types, as doing so may conflict with client code's attempts to provide
its own definitions for these types.
Instead, have jstypes.h define JS{Int,Uint}{8,16,32,64,Ptr} types
based on configure's results, and make jsstdint.h into an uninstalled
header for use within SpiderMonkey that does whatever is necessary to
get definitions for the <stdint.h> types.
The changes to make the appropriate SpiderMonkey .cpp files #include
"jsstdint.h" explicitly are in a separate patch, for ease of review.
2009-03-18 11:38:15 -07:00
|
|
|
jsinttypes.h \
|
2007-03-22 10:30:00 -07:00
|
|
|
jsiter.h \
|
|
|
|
jslock.h \
|
|
|
|
jslong.h \
|
|
|
|
jsmath.h \
|
|
|
|
jsobj.h \
|
2009-11-18 12:29:58 -08:00
|
|
|
jsobjinlines.h \
|
2008-09-30 23:13:58 -07:00
|
|
|
json.h \
|
2007-03-22 10:30:00 -07:00
|
|
|
jsopcode.tbl \
|
|
|
|
jsopcode.h \
|
2010-09-29 13:21:36 -07:00
|
|
|
jsopcodeinlines.h \
|
2007-03-22 10:30:00 -07:00
|
|
|
jsotypes.h \
|
|
|
|
jsparse.h \
|
2010-05-18 19:21:43 -07:00
|
|
|
jsproxy.h \
|
2007-03-22 10:30:00 -07:00
|
|
|
jsprf.h \
|
2010-09-01 14:09:54 -07:00
|
|
|
jsprobes.h \
|
2010-03-24 14:16:01 -07:00
|
|
|
jspropertycache.h \
|
|
|
|
jspropertycacheinlines.h \
|
2010-03-22 11:11:44 -07:00
|
|
|
jspropertytree.h \
|
2007-03-22 10:30:00 -07:00
|
|
|
jsproto.tbl \
|
|
|
|
jsprvtd.h \
|
|
|
|
jspubtd.h \
|
2010-06-15 13:32:32 -07:00
|
|
|
jsreflect.h \
|
2007-03-22 10:30:00 -07:00
|
|
|
jsregexp.h \
|
|
|
|
jsscan.h \
|
|
|
|
jsscope.h \
|
|
|
|
jsscript.h \
|
2009-09-09 16:52:55 -07:00
|
|
|
jsscriptinlines.h \
|
2008-12-09 08:38:32 -08:00
|
|
|
jsstaticcheck.h \
|
2010-06-30 18:23:30 -07:00
|
|
|
jsstdint.h \
|
2007-03-22 10:30:00 -07:00
|
|
|
jsstr.h \
|
2008-06-06 15:12:48 -07:00
|
|
|
jstracer.h \
|
2011-01-05 14:09:38 -08:00
|
|
|
jshotloop.h \
|
2010-01-09 13:01:37 -08:00
|
|
|
jstypedarray.h \
|
2007-03-22 10:30:00 -07:00
|
|
|
jstypes.h \
|
|
|
|
jsutil.h \
|
2009-10-20 17:29:36 -07:00
|
|
|
jsvector.h \
|
2010-02-06 10:14:05 -08:00
|
|
|
jstl.h \
|
2010-02-06 10:14:05 -08:00
|
|
|
jshashtable.h \
|
2008-09-05 10:19:17 -07:00
|
|
|
jsversion.h \
|
2010-06-03 15:27:29 -07:00
|
|
|
jswrapper.h \
|
2007-03-22 10:30:00 -07:00
|
|
|
jsxdrapi.h \
|
|
|
|
jsxml.h \
|
2010-06-30 17:52:02 -07:00
|
|
|
jsval.h \
|
2010-06-30 15:25:47 -07:00
|
|
|
jsvalue.h \
|
2010-05-27 13:15:51 -07:00
|
|
|
prmjtime.h \
|
2008-07-10 20:05:27 -07:00
|
|
|
$(NULL)
|
|
|
|
|
2010-02-09 16:48:56 -08:00
|
|
|
ifdef ENABLE_TRACEJIT
|
2010-10-28 18:28:36 -07:00
|
|
|
VPATH += \
|
|
|
|
$(srcdir)/tracejit \
|
|
|
|
$(srcdir)/nanojit \
|
2008-08-25 15:51:30 -07:00
|
|
|
|
Bug 97954: Allow SpiderMonkey to be built on its own, or as part of Mozilla.
Give SpiderMonkey its own configure script and top-level Makefile.
Adjust js/src/Makefile as appropriate for life as a stand-alone
makefile, instead of a 'make export; make libs'-style Mozilla tier
makefile. Have the configure script accept '--with-nspr-cflags' and
'--with-nspr-libs' options for using an in-tree NSPR. Also accept
'--with-system-nspr', '--with-nspr-prefix', and
'--with-nspr-exec-prefix' flags for using an installed NSPR. Default
to --disable-jemalloc, assuming we don't have that part of the tree
available; have the top-level configure script pass --enable-jemalloc
as needed.
Since we no longer have an export phase to copy header files into
dist/include/js before we build the library, we need to be able to
find nanojit.h in the nanojit directory; fix references in
jsbuiltins.h and jstracer.cpp.
Give SpiderMonkey it its own copies of many of the files from ./config
and ./build. These are all exact copies, except as follows:
. js/src/config/Makefile.in: js/src only has a subset of
js/src/config, and thus a subset of the makefile targets.
. js/src/config/autoconf.mk.in: js/src/configure.in has its own make
variables to set, not set by the top-level configure script, so it
needs a custom automake.mk template.
. js/src/config/make-system-wrappers.pl: a copy from nsprpub/config,
so that we can build without having an NSPR source tree handy.
Invoke js/src/configure from ./configure, passing the values computed
for NSPR_CFLAGS and NSPR_LIBS by the top-level configure script.
Treat js/src as a static directory of the js tier, and create a new
config/js (just a Makefile) to be the js tier's non-static directory.
Let js/src/configure generate SpiderMonkey's makefiles, not
./configure.
Generate a 'js-config' script, which clients can call to find the
CFLAGS and LIBS values necessary to compile and link against an
installed SpiderMonkey library. Don't include the js-config script in
Macintosh packages.
Teach client.mk how to rebuild js/src/configure.
Tell Mercurial to ignore files generated by autoconf in js/src.
Further work:
. Right now, callers must define JS_THREADSAFE when #including jsapi.h.
This is fixed in a subsequent patch.
. js/src/configure is a trimmed copy of ./configure. It could be
trimmed more.
--HG--
rename : build/autoconf/acoutput-fast.pl => js/src/build/autoconf/acoutput-fast.pl
rename : build/autoconf/altoptions.m4 => js/src/build/autoconf/altoptions.m4
rename : build/autoconf/config.guess => js/src/build/autoconf/config.guess
rename : build/autoconf/config.sub => js/src/build/autoconf/config.sub
rename : build/autoconf/glib.m4 => js/src/build/autoconf/glib.m4
rename : build/autoconf/install-sh => js/src/build/autoconf/install-sh
rename : build/autoconf/make-makefile => js/src/build/autoconf/make-makefile
rename : build/autoconf/match-dir.sh => js/src/build/autoconf/match-dir.sh
rename : build/autoconf/nspr.m4 => js/src/build/autoconf/nspr.m4
rename : build/autoconf/pkg.m4 => js/src/build/autoconf/pkg.m4
rename : build/autoconf/update-makefile.sh => js/src/build/autoconf/update-makefile.sh
rename : build/cygwin-wrapper => js/src/build/cygwin-wrapper
rename : build/hcc => js/src/build/hcc
rename : build/hcpp => js/src/build/hcpp
rename : build/unix/mddepend.pl => js/src/build/unix/mddepend.pl
rename : build/unix/uniq.pl => js/src/build/unix/uniq.pl
rename : config/Makefile.in => js/src/config/Makefile.in
rename : config/Moz/Milestone.pm => js/src/config/Moz/Milestone.pm
rename : config/autoconf.mk.in => js/src/config/autoconf.mk.in
rename : config/config.mk => js/src/config/config.mk
rename : config/elf-dynstr-gc.c => js/src/config/elf-dynstr-gc.c
rename : config/fastcwd.pl => js/src/config/fastcwd.pl
rename : config/gcc_hidden.h => js/src/config/gcc_hidden.h
rename : config/insure.mk => js/src/config/insure.mk
rename : nsprpub/config/make-system-wrappers.pl => js/src/config/make-system-wrappers.pl
rename : config/milestone.pl => js/src/config/milestone.pl
rename : config/milestone.txt => js/src/config/milestone.txt
rename : config/mkdepend/Makefile.in => js/src/config/mkdepend/Makefile.in
rename : config/mkdepend/cppsetup.c => js/src/config/mkdepend/cppsetup.c
rename : config/mkdepend/def.h => js/src/config/mkdepend/def.h
rename : config/mkdepend/ifparser.c => js/src/config/mkdepend/ifparser.c
rename : config/mkdepend/ifparser.h => js/src/config/mkdepend/ifparser.h
rename : config/mkdepend/imakemdep.h => js/src/config/mkdepend/imakemdep.h
rename : config/mkdepend/include.c => js/src/config/mkdepend/include.c
rename : config/mkdepend/main.c => js/src/config/mkdepend/main.c
rename : config/mkdepend/mkdepend.man => js/src/config/mkdepend/mkdepend.man
rename : config/mkdepend/parse.c => js/src/config/mkdepend/parse.c
rename : config/mkdepend/pr.c => js/src/config/mkdepend/pr.c
rename : config/nfspwd.pl => js/src/config/nfspwd.pl
rename : config/nsinstall.c => js/src/config/nsinstall.c
rename : config/nsinstall.py => js/src/config/nsinstall.py
rename : config/pathsub.c => js/src/config/pathsub.c
rename : config/pathsub.h => js/src/config/pathsub.h
rename : config/preprocessor.pl => js/src/config/preprocessor.pl
rename : config/revdepth-nt.pl => js/src/config/revdepth-nt.pl
rename : config/revdepth.pl => js/src/config/revdepth.pl
rename : config/rules.mk => js/src/config/rules.mk
rename : config/system-headers => js/src/config/system-headers
rename : config/version.mk => js/src/config/version.mk
rename : config/version_win.pl => js/src/config/version_win.pl
rename : configure.in => js/src/configure.in
2008-10-29 08:29:22 -07:00
|
|
|
INSTALLED_HEADERS += \
|
2008-10-08 15:08:33 -07:00
|
|
|
jsbuiltins.h \
|
2008-08-25 15:51:30 -07:00
|
|
|
Assembler.h \
|
2009-07-15 16:50:01 -07:00
|
|
|
Allocator.h \
|
|
|
|
CodeAlloc.h \
|
2009-08-04 06:31:29 -07:00
|
|
|
Containers.h \
|
2008-08-25 15:51:30 -07:00
|
|
|
LIR.h \
|
2010-10-28 18:28:36 -07:00
|
|
|
LIRopcode.tbl \
|
2008-08-25 15:51:30 -07:00
|
|
|
avmplus.h \
|
|
|
|
Fragmento.h \
|
|
|
|
Native.h \
|
2010-10-06 17:39:28 -07:00
|
|
|
NativeCommon.h \
|
2008-08-25 15:51:30 -07:00
|
|
|
Native$(NANOJIT_ARCH).h \
|
2010-10-28 18:28:36 -07:00
|
|
|
njconfig.h \
|
|
|
|
njcpudetect.h \
|
2008-08-25 15:51:30 -07:00
|
|
|
RegAlloc.h \
|
|
|
|
nanojit.h \
|
2009-09-30 17:45:17 -07:00
|
|
|
VMPI.h \
|
2010-10-28 18:28:36 -07:00
|
|
|
Writer.h \
|
2007-03-22 10:30:00 -07:00
|
|
|
$(NULL)
|
|
|
|
|
2008-07-10 20:05:27 -07:00
|
|
|
CPPSRCS += \
|
|
|
|
jstracer.cpp \
|
2008-08-25 15:51:30 -07:00
|
|
|
Assembler.cpp \
|
2009-07-15 16:50:01 -07:00
|
|
|
Allocator.cpp \
|
|
|
|
CodeAlloc.cpp \
|
2009-08-04 06:31:29 -07:00
|
|
|
Containers.cpp \
|
2008-08-25 15:51:30 -07:00
|
|
|
Fragmento.cpp \
|
|
|
|
LIR.cpp \
|
2010-02-15 20:07:14 -08:00
|
|
|
njconfig.cpp \
|
2008-08-25 15:51:30 -07:00
|
|
|
RegAlloc.cpp \
|
|
|
|
avmplus.cpp \
|
|
|
|
Native$(NANOJIT_ARCH).cpp \
|
2010-10-28 18:28:36 -07:00
|
|
|
jsbuiltins.cpp \
|
2009-09-30 17:45:17 -07:00
|
|
|
VMPI.cpp \
|
2010-10-28 18:28:36 -07:00
|
|
|
Writer.cpp \
|
2008-07-10 20:05:27 -07:00
|
|
|
$(NULL)
|
|
|
|
|
2009-03-20 15:53:33 -07:00
|
|
|
ifdef WINCE
|
|
|
|
# don't need -c
|
|
|
|
AS_DASH_C_FLAG =
|
2009-08-20 19:19:56 -07:00
|
|
|
ASFLAGS += -arch 6
|
2009-03-20 15:53:33 -07:00
|
|
|
ASFILES += jswince.asm
|
|
|
|
endif
|
|
|
|
|
2010-02-09 16:48:56 -08:00
|
|
|
endif # ENABLE_TRACEJIT
|
2010-05-22 15:56:42 -07:00
|
|
|
ifdef ENABLE_METHODJIT
|
|
|
|
|
|
|
|
###############################################
|
2010-08-12 11:42:16 -07:00
|
|
|
# BEGIN include sources for the method JIT
|
2010-05-22 15:56:42 -07:00
|
|
|
#
|
2010-08-12 11:42:16 -07:00
|
|
|
VPATH += $(srcdir)/methodjit
|
2010-05-22 15:56:42 -07:00
|
|
|
|
2010-08-12 11:42:16 -07:00
|
|
|
CPPSRCS += MethodJIT.cpp \
|
2010-05-26 17:08:08 -07:00
|
|
|
StubCalls.cpp \
|
2010-05-22 17:09:52 -07:00
|
|
|
Compiler.cpp \
|
2010-05-25 14:14:13 -07:00
|
|
|
FrameState.cpp \
|
2010-06-25 18:23:35 -07:00
|
|
|
FastArithmetic.cpp \
|
2010-05-25 14:14:13 -07:00
|
|
|
FastOps.cpp \
|
2010-05-26 17:08:08 -07:00
|
|
|
StubCompiler.cpp \
|
2010-06-12 19:00:30 -07:00
|
|
|
MonoIC.cpp \
|
2010-06-19 21:58:55 -07:00
|
|
|
PolyIC.cpp \
|
2010-06-15 01:40:39 -07:00
|
|
|
ImmutableSync.cpp \
|
2010-06-17 18:36:28 -07:00
|
|
|
InvokeHelpers.cpp \
|
2010-07-21 03:04:39 -07:00
|
|
|
Retcon.cpp \
|
|
|
|
TrampolineCompiler.cpp \
|
2010-05-22 17:09:52 -07:00
|
|
|
$(NULL)
|
|
|
|
# PICStubCompiler.cpp \
|
2010-05-22 15:56:42 -07:00
|
|
|
|
|
|
|
ifeq (86, $(findstring 86,$(TARGET_CPU)))
|
|
|
|
ifeq (x86_64, $(TARGET_CPU))
|
2010-08-22 23:43:43 -07:00
|
|
|
ifdef _MSC_VER
|
2010-05-22 15:56:42 -07:00
|
|
|
ASFILES += TrampolineMasmX64.asm
|
|
|
|
endif
|
2010-06-29 21:02:49 -07:00
|
|
|
ifdef SOLARIS_SUNPRO_CXX
|
|
|
|
ASFILES += TrampolineSUNWX64.s
|
|
|
|
endif
|
2010-05-22 15:56:42 -07:00
|
|
|
#CPPSRCS += only_on_x86_64.cpp
|
|
|
|
else
|
|
|
|
#CPPSRCS += only_on_x86.cpp
|
2010-06-29 21:02:49 -07:00
|
|
|
ifdef SOLARIS_SUNPRO_CXX
|
|
|
|
ASFILES += TrampolineSUNWX86.s
|
|
|
|
endif
|
2010-05-22 15:56:42 -07:00
|
|
|
endif
|
|
|
|
endif
|
|
|
|
ifeq (arm, $(TARGET_CPU))
|
|
|
|
#CPPSRCS += only_on_arm.cpp
|
|
|
|
endif
|
|
|
|
#
|
2010-08-12 11:42:16 -07:00
|
|
|
# END enclude sources for the method JIT
|
|
|
|
#############################################
|
|
|
|
|
|
|
|
endif
|
2008-07-10 06:12:53 -07:00
|
|
|
|
2010-09-15 11:49:12 -07:00
|
|
|
###############################################
|
|
|
|
# BEGIN include sources for V8 dtoa
|
|
|
|
#
|
|
|
|
VPATH += $(srcdir)/v8-dtoa \
|
|
|
|
$(NONE)
|
|
|
|
|
|
|
|
CPPSRCS += checks.cc \
|
|
|
|
conversions.cc \
|
|
|
|
diy-fp.cc \
|
|
|
|
v8-dtoa.cc \
|
|
|
|
fast-dtoa.cc \
|
|
|
|
platform.cc \
|
|
|
|
utils.cc \
|
|
|
|
$(NONE)
|
|
|
|
|
|
|
|
#
|
|
|
|
# END enclude sources for V8 dtoa
|
|
|
|
#############################################
|
|
|
|
|
2010-09-01 09:59:14 -07:00
|
|
|
ifeq (,$(filter-out powerpc sparc,$(TARGET_CPU)))
|
2010-08-11 15:44:32 -07:00
|
|
|
|
|
|
|
VPATH += $(srcdir)/assembler \
|
|
|
|
$(srcdir)/assembler/wtf \
|
|
|
|
$(srcdir)/yarr/pcre \
|
|
|
|
$(NULL)
|
|
|
|
|
|
|
|
CPPSRCS += pcre_compile.cpp \
|
|
|
|
pcre_exec.cpp \
|
|
|
|
pcre_tables.cpp \
|
|
|
|
pcre_xclass.cpp \
|
|
|
|
pcre_ucp_searchfuncs.cpp \
|
|
|
|
$(NULL)
|
|
|
|
else
|
|
|
|
|
2010-08-11 13:30:07 -07:00
|
|
|
###############################################
|
|
|
|
# BEGIN include sources for the Nitro assembler
|
|
|
|
#
|
|
|
|
VPATH += $(srcdir)/assembler \
|
|
|
|
$(srcdir)/assembler/wtf \
|
|
|
|
$(srcdir)/assembler/jit \
|
|
|
|
$(srcdir)/assembler/assembler \
|
|
|
|
$(srcdir)/methodjit \
|
|
|
|
$(srcdir)/yarr \
|
|
|
|
$(srcdir)/yarr/yarr \
|
|
|
|
$(srcdir)/yarr/pcre \
|
|
|
|
$(srcdir)/yarr/wtf \
|
2010-08-11 15:44:32 -07:00
|
|
|
$(NONE)
|
2010-08-11 13:30:07 -07:00
|
|
|
|
|
|
|
CPPSRCS += Assertions.cpp \
|
|
|
|
ExecutableAllocatorPosix.cpp \
|
|
|
|
ExecutableAllocatorWin.cpp \
|
2010-09-21 13:08:00 -07:00
|
|
|
ExecutableAllocatorOS2.cpp \
|
2010-08-11 13:30:07 -07:00
|
|
|
ExecutableAllocator.cpp \
|
|
|
|
ARMAssembler.cpp \
|
|
|
|
Logging.cpp \
|
|
|
|
MacroAssemblerARM.cpp \
|
|
|
|
MacroAssemblerX86Common.cpp \
|
|
|
|
RegexCompiler.cpp \
|
|
|
|
RegexJIT.cpp \
|
2010-08-11 16:00:58 -07:00
|
|
|
pcre_compile.cpp \
|
|
|
|
pcre_exec.cpp \
|
|
|
|
pcre_tables.cpp \
|
|
|
|
pcre_xclass.cpp \
|
|
|
|
pcre_ucp_searchfuncs.cpp \
|
2010-08-11 15:44:32 -07:00
|
|
|
$(NONE)
|
2010-08-11 13:30:07 -07:00
|
|
|
|
|
|
|
ifeq (86, $(findstring 86,$(TARGET_CPU)))
|
|
|
|
ifeq (x86_64, $(TARGET_CPU))
|
|
|
|
#CPPSRCS += only_on_x86_64.cpp
|
|
|
|
else
|
|
|
|
#CPPSRCS += only_on_x86.cpp
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
ifeq (arm, $(TARGET_CPU))
|
|
|
|
#CPPSRCS += only_on_arm.cpp
|
|
|
|
endif
|
|
|
|
#
|
2010-05-22 15:56:42 -07:00
|
|
|
# END enclude sources for the Nitro assembler
|
|
|
|
#############################################
|
|
|
|
|
|
|
|
endif
|
2008-07-10 06:12:53 -07:00
|
|
|
|
2010-04-02 12:02:17 -07:00
|
|
|
ifdef JS_HAS_CTYPES
|
2010-04-26 13:26:53 -07:00
|
|
|
VPATH += $(srcdir)/ctypes
|
|
|
|
|
2010-04-02 12:02:17 -07:00
|
|
|
CPPSRCS += \
|
2010-04-26 13:26:53 -07:00
|
|
|
CTypes.cpp \
|
|
|
|
Library.cpp \
|
2010-04-02 12:02:17 -07:00
|
|
|
$(NULL)
|
|
|
|
|
|
|
|
LOCAL_INCLUDES = \
|
|
|
|
-Ictypes/libffi/include \
|
2010-05-12 06:49:36 -07:00
|
|
|
-I. \
|
2010-04-02 12:02:17 -07:00
|
|
|
$(NULL)
|
|
|
|
|
|
|
|
ifeq ($(OS_ARCH),OS2)
|
2010-04-14 10:36:48 -07:00
|
|
|
SHARED_LIBRARY_LIBS += \
|
|
|
|
ctypes/libffi/.libs/ffi.a \
|
|
|
|
$(NULL)
|
|
|
|
else
|
2010-04-08 16:03:06 -07:00
|
|
|
SHARED_LIBRARY_LIBS += \
|
2010-04-02 12:02:17 -07:00
|
|
|
ctypes/libffi/.libs/libffi.$(LIB_SUFFIX) \
|
|
|
|
$(NULL)
|
2010-04-14 10:36:48 -07:00
|
|
|
endif
|
|
|
|
|
2010-04-02 12:02:17 -07:00
|
|
|
endif # JS_HAS_CTYPES
|
|
|
|
|
2007-10-19 15:24:32 -07:00
|
|
|
ifdef HAVE_DTRACE
|
Bug 97954: Allow SpiderMonkey to be built on its own, or as part of Mozilla.
Give SpiderMonkey its own configure script and top-level Makefile.
Adjust js/src/Makefile as appropriate for life as a stand-alone
makefile, instead of a 'make export; make libs'-style Mozilla tier
makefile. Have the configure script accept '--with-nspr-cflags' and
'--with-nspr-libs' options for using an in-tree NSPR. Also accept
'--with-system-nspr', '--with-nspr-prefix', and
'--with-nspr-exec-prefix' flags for using an installed NSPR. Default
to --disable-jemalloc, assuming we don't have that part of the tree
available; have the top-level configure script pass --enable-jemalloc
as needed.
Since we no longer have an export phase to copy header files into
dist/include/js before we build the library, we need to be able to
find nanojit.h in the nanojit directory; fix references in
jsbuiltins.h and jstracer.cpp.
Give SpiderMonkey it its own copies of many of the files from ./config
and ./build. These are all exact copies, except as follows:
. js/src/config/Makefile.in: js/src only has a subset of
js/src/config, and thus a subset of the makefile targets.
. js/src/config/autoconf.mk.in: js/src/configure.in has its own make
variables to set, not set by the top-level configure script, so it
needs a custom automake.mk template.
. js/src/config/make-system-wrappers.pl: a copy from nsprpub/config,
so that we can build without having an NSPR source tree handy.
Invoke js/src/configure from ./configure, passing the values computed
for NSPR_CFLAGS and NSPR_LIBS by the top-level configure script.
Treat js/src as a static directory of the js tier, and create a new
config/js (just a Makefile) to be the js tier's non-static directory.
Let js/src/configure generate SpiderMonkey's makefiles, not
./configure.
Generate a 'js-config' script, which clients can call to find the
CFLAGS and LIBS values necessary to compile and link against an
installed SpiderMonkey library. Don't include the js-config script in
Macintosh packages.
Teach client.mk how to rebuild js/src/configure.
Tell Mercurial to ignore files generated by autoconf in js/src.
Further work:
. Right now, callers must define JS_THREADSAFE when #including jsapi.h.
This is fixed in a subsequent patch.
. js/src/configure is a trimmed copy of ./configure. It could be
trimmed more.
--HG--
rename : build/autoconf/acoutput-fast.pl => js/src/build/autoconf/acoutput-fast.pl
rename : build/autoconf/altoptions.m4 => js/src/build/autoconf/altoptions.m4
rename : build/autoconf/config.guess => js/src/build/autoconf/config.guess
rename : build/autoconf/config.sub => js/src/build/autoconf/config.sub
rename : build/autoconf/glib.m4 => js/src/build/autoconf/glib.m4
rename : build/autoconf/install-sh => js/src/build/autoconf/install-sh
rename : build/autoconf/make-makefile => js/src/build/autoconf/make-makefile
rename : build/autoconf/match-dir.sh => js/src/build/autoconf/match-dir.sh
rename : build/autoconf/nspr.m4 => js/src/build/autoconf/nspr.m4
rename : build/autoconf/pkg.m4 => js/src/build/autoconf/pkg.m4
rename : build/autoconf/update-makefile.sh => js/src/build/autoconf/update-makefile.sh
rename : build/cygwin-wrapper => js/src/build/cygwin-wrapper
rename : build/hcc => js/src/build/hcc
rename : build/hcpp => js/src/build/hcpp
rename : build/unix/mddepend.pl => js/src/build/unix/mddepend.pl
rename : build/unix/uniq.pl => js/src/build/unix/uniq.pl
rename : config/Makefile.in => js/src/config/Makefile.in
rename : config/Moz/Milestone.pm => js/src/config/Moz/Milestone.pm
rename : config/autoconf.mk.in => js/src/config/autoconf.mk.in
rename : config/config.mk => js/src/config/config.mk
rename : config/elf-dynstr-gc.c => js/src/config/elf-dynstr-gc.c
rename : config/fastcwd.pl => js/src/config/fastcwd.pl
rename : config/gcc_hidden.h => js/src/config/gcc_hidden.h
rename : config/insure.mk => js/src/config/insure.mk
rename : nsprpub/config/make-system-wrappers.pl => js/src/config/make-system-wrappers.pl
rename : config/milestone.pl => js/src/config/milestone.pl
rename : config/milestone.txt => js/src/config/milestone.txt
rename : config/mkdepend/Makefile.in => js/src/config/mkdepend/Makefile.in
rename : config/mkdepend/cppsetup.c => js/src/config/mkdepend/cppsetup.c
rename : config/mkdepend/def.h => js/src/config/mkdepend/def.h
rename : config/mkdepend/ifparser.c => js/src/config/mkdepend/ifparser.c
rename : config/mkdepend/ifparser.h => js/src/config/mkdepend/ifparser.h
rename : config/mkdepend/imakemdep.h => js/src/config/mkdepend/imakemdep.h
rename : config/mkdepend/include.c => js/src/config/mkdepend/include.c
rename : config/mkdepend/main.c => js/src/config/mkdepend/main.c
rename : config/mkdepend/mkdepend.man => js/src/config/mkdepend/mkdepend.man
rename : config/mkdepend/parse.c => js/src/config/mkdepend/parse.c
rename : config/mkdepend/pr.c => js/src/config/mkdepend/pr.c
rename : config/nfspwd.pl => js/src/config/nfspwd.pl
rename : config/nsinstall.c => js/src/config/nsinstall.c
rename : config/nsinstall.py => js/src/config/nsinstall.py
rename : config/pathsub.c => js/src/config/pathsub.c
rename : config/pathsub.h => js/src/config/pathsub.h
rename : config/preprocessor.pl => js/src/config/preprocessor.pl
rename : config/revdepth-nt.pl => js/src/config/revdepth-nt.pl
rename : config/revdepth.pl => js/src/config/revdepth.pl
rename : config/rules.mk => js/src/config/rules.mk
rename : config/system-headers => js/src/config/system-headers
rename : config/version.mk => js/src/config/version.mk
rename : config/version_win.pl => js/src/config/version_win.pl
rename : configure.in => js/src/configure.in
2008-10-29 08:29:22 -07:00
|
|
|
INSTALLED_HEADERS += \
|
2008-11-13 05:51:37 -08:00
|
|
|
$(CURDIR)/javascript-trace.h \
|
2007-10-19 15:24:32 -07:00
|
|
|
$(NULL)
|
|
|
|
endif
|
|
|
|
|
2010-07-30 12:17:56 -07:00
|
|
|
# PerfMeasurement is available regardless of low-level support for it;
|
|
|
|
# it just doesn't necessarily do anything useful. There is one
|
|
|
|
# implementation source file per supported operating system, plus a stub
|
|
|
|
# for unsupported OSes, plus the Javascript wrapper.
|
|
|
|
VPATH += $(srcdir)/perf
|
|
|
|
INSTALLED_HEADERS += jsperf.h
|
|
|
|
CPPSRCS += jsperf.cpp
|
|
|
|
ifdef HAVE_LINUX_PERF_EVENT_H
|
|
|
|
CPPSRCS += pm_linux.cpp
|
|
|
|
else
|
|
|
|
CPPSRCS += pm_stub.cpp
|
|
|
|
endif
|
|
|
|
|
2007-03-22 10:30:00 -07:00
|
|
|
ifeq (,$(filter-out WINNT WINCE,$(OS_ARCH)))
|
Bug 97954: Allow SpiderMonkey to be built on its own, or as part of Mozilla.
Give SpiderMonkey its own configure script and top-level Makefile.
Adjust js/src/Makefile as appropriate for life as a stand-alone
makefile, instead of a 'make export; make libs'-style Mozilla tier
makefile. Have the configure script accept '--with-nspr-cflags' and
'--with-nspr-libs' options for using an in-tree NSPR. Also accept
'--with-system-nspr', '--with-nspr-prefix', and
'--with-nspr-exec-prefix' flags for using an installed NSPR. Default
to --disable-jemalloc, assuming we don't have that part of the tree
available; have the top-level configure script pass --enable-jemalloc
as needed.
Since we no longer have an export phase to copy header files into
dist/include/js before we build the library, we need to be able to
find nanojit.h in the nanojit directory; fix references in
jsbuiltins.h and jstracer.cpp.
Give SpiderMonkey it its own copies of many of the files from ./config
and ./build. These are all exact copies, except as follows:
. js/src/config/Makefile.in: js/src only has a subset of
js/src/config, and thus a subset of the makefile targets.
. js/src/config/autoconf.mk.in: js/src/configure.in has its own make
variables to set, not set by the top-level configure script, so it
needs a custom automake.mk template.
. js/src/config/make-system-wrappers.pl: a copy from nsprpub/config,
so that we can build without having an NSPR source tree handy.
Invoke js/src/configure from ./configure, passing the values computed
for NSPR_CFLAGS and NSPR_LIBS by the top-level configure script.
Treat js/src as a static directory of the js tier, and create a new
config/js (just a Makefile) to be the js tier's non-static directory.
Let js/src/configure generate SpiderMonkey's makefiles, not
./configure.
Generate a 'js-config' script, which clients can call to find the
CFLAGS and LIBS values necessary to compile and link against an
installed SpiderMonkey library. Don't include the js-config script in
Macintosh packages.
Teach client.mk how to rebuild js/src/configure.
Tell Mercurial to ignore files generated by autoconf in js/src.
Further work:
. Right now, callers must define JS_THREADSAFE when #including jsapi.h.
This is fixed in a subsequent patch.
. js/src/configure is a trimmed copy of ./configure. It could be
trimmed more.
--HG--
rename : build/autoconf/acoutput-fast.pl => js/src/build/autoconf/acoutput-fast.pl
rename : build/autoconf/altoptions.m4 => js/src/build/autoconf/altoptions.m4
rename : build/autoconf/config.guess => js/src/build/autoconf/config.guess
rename : build/autoconf/config.sub => js/src/build/autoconf/config.sub
rename : build/autoconf/glib.m4 => js/src/build/autoconf/glib.m4
rename : build/autoconf/install-sh => js/src/build/autoconf/install-sh
rename : build/autoconf/make-makefile => js/src/build/autoconf/make-makefile
rename : build/autoconf/match-dir.sh => js/src/build/autoconf/match-dir.sh
rename : build/autoconf/nspr.m4 => js/src/build/autoconf/nspr.m4
rename : build/autoconf/pkg.m4 => js/src/build/autoconf/pkg.m4
rename : build/autoconf/update-makefile.sh => js/src/build/autoconf/update-makefile.sh
rename : build/cygwin-wrapper => js/src/build/cygwin-wrapper
rename : build/hcc => js/src/build/hcc
rename : build/hcpp => js/src/build/hcpp
rename : build/unix/mddepend.pl => js/src/build/unix/mddepend.pl
rename : build/unix/uniq.pl => js/src/build/unix/uniq.pl
rename : config/Makefile.in => js/src/config/Makefile.in
rename : config/Moz/Milestone.pm => js/src/config/Moz/Milestone.pm
rename : config/autoconf.mk.in => js/src/config/autoconf.mk.in
rename : config/config.mk => js/src/config/config.mk
rename : config/elf-dynstr-gc.c => js/src/config/elf-dynstr-gc.c
rename : config/fastcwd.pl => js/src/config/fastcwd.pl
rename : config/gcc_hidden.h => js/src/config/gcc_hidden.h
rename : config/insure.mk => js/src/config/insure.mk
rename : nsprpub/config/make-system-wrappers.pl => js/src/config/make-system-wrappers.pl
rename : config/milestone.pl => js/src/config/milestone.pl
rename : config/milestone.txt => js/src/config/milestone.txt
rename : config/mkdepend/Makefile.in => js/src/config/mkdepend/Makefile.in
rename : config/mkdepend/cppsetup.c => js/src/config/mkdepend/cppsetup.c
rename : config/mkdepend/def.h => js/src/config/mkdepend/def.h
rename : config/mkdepend/ifparser.c => js/src/config/mkdepend/ifparser.c
rename : config/mkdepend/ifparser.h => js/src/config/mkdepend/ifparser.h
rename : config/mkdepend/imakemdep.h => js/src/config/mkdepend/imakemdep.h
rename : config/mkdepend/include.c => js/src/config/mkdepend/include.c
rename : config/mkdepend/main.c => js/src/config/mkdepend/main.c
rename : config/mkdepend/mkdepend.man => js/src/config/mkdepend/mkdepend.man
rename : config/mkdepend/parse.c => js/src/config/mkdepend/parse.c
rename : config/mkdepend/pr.c => js/src/config/mkdepend/pr.c
rename : config/nfspwd.pl => js/src/config/nfspwd.pl
rename : config/nsinstall.c => js/src/config/nsinstall.c
rename : config/nsinstall.py => js/src/config/nsinstall.py
rename : config/pathsub.c => js/src/config/pathsub.c
rename : config/pathsub.h => js/src/config/pathsub.h
rename : config/preprocessor.pl => js/src/config/preprocessor.pl
rename : config/revdepth-nt.pl => js/src/config/revdepth-nt.pl
rename : config/revdepth.pl => js/src/config/revdepth.pl
rename : config/rules.mk => js/src/config/rules.mk
rename : config/system-headers => js/src/config/system-headers
rename : config/version.mk => js/src/config/version.mk
rename : config/version_win.pl => js/src/config/version_win.pl
rename : configure.in => js/src/configure.in
2008-10-29 08:29:22 -07:00
|
|
|
INSTALLED_HEADERS += jscpucfg.h
|
2007-03-22 10:30:00 -07:00
|
|
|
endif
|
|
|
|
|
2009-01-08 10:51:27 -08:00
|
|
|
EXPORTS = $(INSTALLED_HEADERS)
|
|
|
|
|
2007-03-22 10:30:00 -07:00
|
|
|
DASH_R = -r
|
|
|
|
|
2007-09-05 08:56:56 -07:00
|
|
|
ifneq (,$(filter OS2 WINCE WINNT,$(OS_ARCH)))
|
|
|
|
SDK_LIBRARY = $(IMPORT_LIBRARY)
|
|
|
|
else
|
|
|
|
SDK_LIBRARY = $(SHARED_LIBRARY)
|
|
|
|
endif
|
|
|
|
|
2007-03-22 10:30:00 -07:00
|
|
|
include $(topsrcdir)/config/config.mk
|
|
|
|
|
|
|
|
EXTRA_DSO_LDOPTS += $(NSPR_LIBS)
|
|
|
|
|
|
|
|
ifndef BUILD_OPT
|
|
|
|
MOCHAFILE = 1
|
|
|
|
endif
|
|
|
|
|
|
|
|
# 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)
|
2008-06-20 02:55:49 -07:00
|
|
|
|
|
|
|
HOST_SIMPLE_PROGRAMS += host_jsoplengen$(HOST_BIN_SUFFIX)
|
|
|
|
GARBAGE += jsautooplen.h host_jsoplengen$(HOST_BIN_SUFFIX)
|
|
|
|
|
2007-07-16 11:40:49 -07:00
|
|
|
USE_HOST_CXX = 1
|
2007-03-22 10:30:00 -07:00
|
|
|
|
2007-10-19 15:24:32 -07:00
|
|
|
ifdef HAVE_DTRACE
|
2007-11-01 23:36:49 -07:00
|
|
|
ifneq ($(OS_ARCH),Darwin)
|
2007-10-19 15:24:32 -07:00
|
|
|
DTRACE_PROBE_OBJ = $(LIBRARY_NAME)-dtrace.$(OBJ_SUFFIX)
|
2007-11-01 23:36:49 -07:00
|
|
|
endif
|
2007-10-19 15:24:32 -07:00
|
|
|
MOZILLA_DTRACE_SRC = $(srcdir)/javascript-trace.d
|
|
|
|
endif
|
|
|
|
|
2009-02-19 07:33:11 -08:00
|
|
|
default::
|
2007-03-22 10:30:00 -07:00
|
|
|
|
2009-02-19 07:33:11 -08:00
|
|
|
ifneq (,$(CROSS_COMPILE)$(filter-out WINNT OS2,$(OS_ARCH)))
|
2009-05-18 11:07:39 -07:00
|
|
|
ifneq (,$(filter-out SYMBIAN WINCE,$(OS_ARCH)))
|
2009-01-08 10:51:27 -08:00
|
|
|
# nsinstall doesn't get built until we enter config/ in the exports phase,
|
|
|
|
# so we'll have to manually ensure it gets built here if we want to use
|
|
|
|
# $(EXPORTS)
|
2009-02-19 07:33:11 -08:00
|
|
|
export:: config/nsinstall$(HOST_BIN_SUFFIX)
|
2009-02-19 18:52:17 -08:00
|
|
|
$(PUBLIC) $(SDK_PUBLIC): config/nsinstall$(HOST_BIN_SUFFIX)
|
2009-01-08 10:51:27 -08:00
|
|
|
|
|
|
|
config/nsinstall$(HOST_BIN_SUFFIX): $(srcdir)/config/nsinstall.c $(srcdir)/config/pathsub.c
|
|
|
|
$(MAKE) -C config/ nsinstall$(HOST_BIN_SUFFIX)
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
|
2009-02-19 07:33:11 -08:00
|
|
|
include $(topsrcdir)/config/rules.mk
|
|
|
|
|
2010-04-02 12:02:17 -07:00
|
|
|
ifdef JS_HAS_CTYPES
|
|
|
|
# Build libffi proper as part of the 'exports' target, so things get built
|
2010-04-08 16:03:06 -07:00
|
|
|
# in the right order.
|
2010-04-02 12:02:17 -07:00
|
|
|
export::
|
2010-04-08 16:03:06 -07:00
|
|
|
$(call SUBMAKE,,ctypes/libffi)
|
2010-04-02 12:02:17 -07:00
|
|
|
|
2010-04-29 00:18:29 -07:00
|
|
|
distclean clean::
|
|
|
|
$(call SUBMAKE,$@,ctypes/libffi)
|
2010-04-02 12:02:17 -07:00
|
|
|
endif
|
|
|
|
|
2008-10-29 08:40:39 -07:00
|
|
|
ifdef MOZ_SYNC_BUILD_FILES
|
|
|
|
# Because the SpiderMonkey can be distributed and built independently
|
|
|
|
# of the Mozilla source tree, it contains its own copies of many of
|
|
|
|
# the files used by the top-level Mozilla build process, from the
|
|
|
|
# 'config' and 'build' subtrees.
|
|
|
|
#
|
|
|
|
# To make it simpler to keep the copies in sync, we follow the policy
|
|
|
|
# that the SpiderMonkey copies must always be exact copies of those in
|
|
|
|
# the containing Mozilla tree. If you've made a change in one, it
|
|
|
|
# belongs in the other as well. If the change isn't right for both
|
|
|
|
# places, then that's something to bring up with the other developers.
|
|
|
|
#
|
2009-08-13 15:42:51 -07:00
|
|
|
# Some files are reasonable to diverge; for example,
|
2008-10-29 08:40:39 -07:00
|
|
|
# js/config/autoconf.mk.in doesn't need most of the stuff in
|
|
|
|
# config/autoconf.mk.in.
|
|
|
|
check-sync-dirs = $(PYTHON) $(srcdir)/config/check-sync-dirs.py
|
|
|
|
check::
|
|
|
|
$(check-sync-dirs) $(srcdir)/config $(MOZ_SYNC_BUILD_FILES)/config
|
|
|
|
$(check-sync-dirs) $(srcdir)/build $(MOZ_SYNC_BUILD_FILES)/build
|
2009-09-21 11:32:09 -07:00
|
|
|
|
|
|
|
check-valgrind::
|
|
|
|
$(check-sync-dirs) $(srcdir)/config $(MOZ_SYNC_BUILD_FILES)/config
|
|
|
|
$(check-sync-dirs) $(srcdir)/build $(MOZ_SYNC_BUILD_FILES)/build
|
2008-10-29 08:40:39 -07:00
|
|
|
endif
|
|
|
|
|
2011-01-17 19:44:10 -08:00
|
|
|
# The "find any vanilla new/new[] calls" script is tailored to Linux, so
|
|
|
|
# only run it there. That should be enough to catch any such calls that
|
|
|
|
# creep in.
|
|
|
|
ifeq ($(OS_ARCH),Linux)
|
|
|
|
check::
|
|
|
|
$(srcdir)/config/find_vanilla_new_calls $(LIBRARY)
|
|
|
|
endif
|
|
|
|
|
2010-02-09 16:48:56 -08:00
|
|
|
ifdef ENABLE_TRACEJIT
|
2010-03-10 12:35:31 -08:00
|
|
|
ifndef WINCE
|
2009-06-26 12:37:58 -07:00
|
|
|
check::
|
2010-10-20 20:40:51 -07:00
|
|
|
$(wildcard $(RUN_TEST_PROGRAM)) $(PYTHON) -u $(srcdir)/jit-test/jit_test.py \
|
2010-12-27 11:31:36 -08:00
|
|
|
--no-slow --no-progress --tinderbox --jitflags=m,j,mj,mjp,mjd $(DIST)/bin/js$(BIN_SUFFIX)
|
2009-09-21 11:32:09 -07:00
|
|
|
|
|
|
|
check-valgrind::
|
2010-10-20 20:40:51 -07:00
|
|
|
$(wildcard $(RUN_TEST_PROGRAM)) $(PYTHON) -u $(srcdir)/jit-test/jit_test.py \
|
2010-12-27 11:31:36 -08:00
|
|
|
--valgrind --no-slow --no-progress --tinderbox --jitflags=m,j,mj,mjp,mjd $(DIST)/bin/js$(BIN_SUFFIX)
|
2009-06-25 12:47:00 -07:00
|
|
|
endif
|
2010-03-10 10:36:45 -08:00
|
|
|
endif
|
2009-03-03 18:59:28 -08:00
|
|
|
|
2009-07-13 04:46:23 -07:00
|
|
|
DIST_GARBAGE = config.cache config.log config.status \
|
2010-04-10 13:00:49 -07:00
|
|
|
config/autoconf.mk \
|
2009-07-29 11:35:05 -07:00
|
|
|
unallmakefiles js-config js-config.h js-confdefs.h
|
2009-07-13 04:46:23 -07:00
|
|
|
|
|
|
|
distclean::
|
|
|
|
cat unallmakefiles | $(XARGS) rm -f
|
|
|
|
rm -f $(DIST_GARBAGE)
|
|
|
|
|
2008-07-10 06:12:53 -07:00
|
|
|
# our build system doesn't handle subdir srcs very gracefully today
|
|
|
|
export::
|
|
|
|
mkdir -p nanojit
|
2007-03-22 10:30:00 -07:00
|
|
|
|
2010-07-12 16:06:23 -07:00
|
|
|
DEFINES += -DEXPORT_JS_API
|
|
|
|
|
|
|
|
# Some platforms that have stdint.h include it in system headers. So
|
|
|
|
# to reliably get limit macros defined, we'd always have to define the
|
|
|
|
# one below before including any header, but that's obscure and
|
|
|
|
# fragile, so we do it here.
|
|
|
|
DEFINES += -D__STDC_LIMIT_MACROS
|
2008-07-10 04:56:36 -07:00
|
|
|
|
2007-03-22 10:30:00 -07:00
|
|
|
INCLUDES += -I$(srcdir)
|
|
|
|
|
|
|
|
GARBAGE += jscpucfg.o jsautocfg.h jsautocfg.tmp jscpucfg
|
|
|
|
|
|
|
|
ifneq (,$(CROSS_COMPILE)$(filter-out WINNT,$(OS_ARCH)))
|
|
|
|
TARGETS += jscpucfg$(HOST_BIN_SUFFIX)
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifdef JS_THREADSAFE
|
|
|
|
DEFINES += -DJS_THREADSAFE
|
|
|
|
endif
|
|
|
|
|
2010-04-02 12:02:17 -07:00
|
|
|
ifdef JS_HAS_CTYPES
|
|
|
|
DEFINES += -DJS_HAS_CTYPES
|
2010-07-13 09:03:41 -07:00
|
|
|
DEFINES += -DDLL_PREFIX=\"$(DLL_PREFIX)\" -DDLL_SUFFIX=\"$(DLL_SUFFIX)\"
|
2010-04-02 12:02:17 -07:00
|
|
|
endif
|
|
|
|
|
2007-03-22 10:30:00 -07:00
|
|
|
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
|
|
|
|
|
2008-07-29 15:19:26 -07:00
|
|
|
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
|
|
|
|
|
2007-03-22 10:30:00 -07:00
|
|
|
# BeOS and HP-UX do not require the extra linking of "-lm"
|
2009-09-22 06:57:05 -07:00
|
|
|
ifeq (,$(filter BeOS HP-UX WINNT WINCE OpenVMS OS2,$(OS_ARCH)))
|
2008-08-26 14:34:36 -07:00
|
|
|
EXTRA_LIBS += -lm
|
2007-03-22 10:30:00 -07:00
|
|
|
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)
|
2008-08-26 14:34:36 -07:00
|
|
|
EXTRA_LIBS += -pthread
|
2007-03-22 10:30:00 -07:00
|
|
|
endif
|
|
|
|
ifeq ($(OS_ARCH),IRIX)
|
|
|
|
ifdef USE_N32
|
|
|
|
DASH_R += -n32
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
ifeq ($(OS_ARCH),Linux)
|
2008-08-26 14:34:36 -07:00
|
|
|
EXTRA_LIBS += -ldl
|
2007-03-22 10:30:00 -07:00
|
|
|
endif
|
|
|
|
ifeq ($(OS_ARCH),OSF1)
|
2008-08-26 14:34:36 -07:00
|
|
|
EXTRA_LIBS += -lc_r
|
2007-03-22 10:30:00 -07:00
|
|
|
endif
|
|
|
|
ifeq ($(OS_ARCH),SunOS)
|
|
|
|
ifeq ($(TARGET_CPU),sparc)
|
|
|
|
|
|
|
|
ifdef GNU_CC
|
2009-07-24 02:41:42 -07:00
|
|
|
CFLAGS += -mcpu=v9
|
|
|
|
CXXFLAGS += -mcpu=v9
|
2007-03-22 10:30:00 -07:00
|
|
|
endif # GNU_CC
|
|
|
|
|
|
|
|
endif
|
|
|
|
ifeq ($(OS_RELEASE),4.1)
|
2008-08-26 14:34:36 -07:00
|
|
|
EXTRA_LIBS += -ldl -lnsl
|
2007-03-22 10:30:00 -07:00
|
|
|
else
|
2008-08-26 14:34:36 -07:00
|
|
|
EXTRA_LIBS += -lposix4 -ldl -lnsl -lsocket
|
2007-03-22 10:30:00 -07:00
|
|
|
endif
|
|
|
|
endif
|
|
|
|
|
2008-06-20 10:34:42 -07:00
|
|
|
ifdef MOZ_MEMORY
|
|
|
|
ifeq ($(OS_ARCH),Darwin)
|
|
|
|
LDFLAGS += -ljemalloc
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
|
2009-09-25 00:30:35 -07:00
|
|
|
ifdef SOLARIS_SUNPRO_CXX
|
2010-09-28 23:22:28 -07:00
|
|
|
ifeq ($(TARGET_CPU),sparc)
|
2009-09-25 00:30:35 -07:00
|
|
|
# Sun Studio SPARC doesn't work well with gcc inline asm, use lock_SunOS_sparc*.il
|
|
|
|
jslock.o: jslock.cpp Makefile.in lock_sparcv8plus.il lock_sparcv9.il
|
|
|
|
$(REPORT_BUILD)
|
|
|
|
@$(MAKE_DEPS_AUTO_CXX)
|
|
|
|
ifeq (sparcv9,$(findstring sparcv9,$(OS_TEST)))
|
|
|
|
$(CXX) -o $@ -c $(COMPILE_CFLAGS) $(srcdir)/lock_sparcv9.il $<
|
|
|
|
else
|
|
|
|
$(CXX) -o $@ -c $(COMPILE_CFLAGS) $(srcdir)/lock_sparcv8plus.il $<
|
|
|
|
endif # sparcv9
|
2010-09-28 03:03:51 -07:00
|
|
|
endif # sparc
|
2009-09-25 00:30:35 -07:00
|
|
|
endif # SOLARIS_SUNPRO_CXX
|
2008-09-05 16:56:03 -07:00
|
|
|
|
2007-03-22 10:30:00 -07:00
|
|
|
ifeq ($(OS_ARCH),IRIX)
|
|
|
|
ifndef GNU_CC
|
|
|
|
_COMPILE_CFLAGS = $(patsubst -O%,-O1,$(COMPILE_CFLAGS))
|
2010-06-15 13:32:32 -07:00
|
|
|
jsapi.o jsxdrapi.o jsarena.o jsarray.o jsatom.o jsemit.o jsfun.o jsinterp.o jsreflect.o jsregexp.o jsparse.o jsopcode.o jsscript.o: %.o: %.cpp Makefile.in
|
2007-03-22 10:30:00 -07:00
|
|
|
$(REPORT_BUILD)
|
2007-08-21 11:08:45 -07:00
|
|
|
@$(MAKE_DEPS_AUTO_CXX)
|
2007-07-16 11:40:49 -07:00
|
|
|
$(CXX) -o $@ -c $(_COMPILE_CFLAGS) $<
|
2007-03-22 10:30:00 -07:00
|
|
|
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)
|
2007-07-16 11:40:49 -07:00
|
|
|
jsatom.o: jsatom.cpp Makefile.in
|
2007-03-22 10:30:00 -07:00
|
|
|
$(REPORT_BUILD)
|
2007-08-21 11:08:45 -07:00
|
|
|
@$(MAKE_DEPS_AUTO_CXX)
|
2007-07-16 11:40:49 -07:00
|
|
|
$(CXX) -o $@ -c $(filter-out $(MOZ_OPTIMIZE_FLAGS), $(COMPILE_CFLAGS)) $<
|
|
|
|
jsdtoa.o: jsdtoa.cpp Makefile.in
|
2007-03-22 10:30:00 -07:00
|
|
|
$(REPORT_BUILD)
|
2007-08-21 11:08:45 -07:00
|
|
|
@$(MAKE_DEPS_AUTO_CXX)
|
2007-07-16 11:40:49 -07:00
|
|
|
$(CXX) -o $@ -c $(filter-out $(MOZ_OPTIMIZE_FLAGS), $(COMPILE_CFLAGS)) $<
|
2007-03-22 10:30:00 -07:00
|
|
|
endif
|
|
|
|
|
Bug 97954: Allow SpiderMonkey to be built on its own, or as part of Mozilla.
Give SpiderMonkey its own configure script and top-level Makefile.
Adjust js/src/Makefile as appropriate for life as a stand-alone
makefile, instead of a 'make export; make libs'-style Mozilla tier
makefile. Have the configure script accept '--with-nspr-cflags' and
'--with-nspr-libs' options for using an in-tree NSPR. Also accept
'--with-system-nspr', '--with-nspr-prefix', and
'--with-nspr-exec-prefix' flags for using an installed NSPR. Default
to --disable-jemalloc, assuming we don't have that part of the tree
available; have the top-level configure script pass --enable-jemalloc
as needed.
Since we no longer have an export phase to copy header files into
dist/include/js before we build the library, we need to be able to
find nanojit.h in the nanojit directory; fix references in
jsbuiltins.h and jstracer.cpp.
Give SpiderMonkey it its own copies of many of the files from ./config
and ./build. These are all exact copies, except as follows:
. js/src/config/Makefile.in: js/src only has a subset of
js/src/config, and thus a subset of the makefile targets.
. js/src/config/autoconf.mk.in: js/src/configure.in has its own make
variables to set, not set by the top-level configure script, so it
needs a custom automake.mk template.
. js/src/config/make-system-wrappers.pl: a copy from nsprpub/config,
so that we can build without having an NSPR source tree handy.
Invoke js/src/configure from ./configure, passing the values computed
for NSPR_CFLAGS and NSPR_LIBS by the top-level configure script.
Treat js/src as a static directory of the js tier, and create a new
config/js (just a Makefile) to be the js tier's non-static directory.
Let js/src/configure generate SpiderMonkey's makefiles, not
./configure.
Generate a 'js-config' script, which clients can call to find the
CFLAGS and LIBS values necessary to compile and link against an
installed SpiderMonkey library. Don't include the js-config script in
Macintosh packages.
Teach client.mk how to rebuild js/src/configure.
Tell Mercurial to ignore files generated by autoconf in js/src.
Further work:
. Right now, callers must define JS_THREADSAFE when #including jsapi.h.
This is fixed in a subsequent patch.
. js/src/configure is a trimmed copy of ./configure. It could be
trimmed more.
--HG--
rename : build/autoconf/acoutput-fast.pl => js/src/build/autoconf/acoutput-fast.pl
rename : build/autoconf/altoptions.m4 => js/src/build/autoconf/altoptions.m4
rename : build/autoconf/config.guess => js/src/build/autoconf/config.guess
rename : build/autoconf/config.sub => js/src/build/autoconf/config.sub
rename : build/autoconf/glib.m4 => js/src/build/autoconf/glib.m4
rename : build/autoconf/install-sh => js/src/build/autoconf/install-sh
rename : build/autoconf/make-makefile => js/src/build/autoconf/make-makefile
rename : build/autoconf/match-dir.sh => js/src/build/autoconf/match-dir.sh
rename : build/autoconf/nspr.m4 => js/src/build/autoconf/nspr.m4
rename : build/autoconf/pkg.m4 => js/src/build/autoconf/pkg.m4
rename : build/autoconf/update-makefile.sh => js/src/build/autoconf/update-makefile.sh
rename : build/cygwin-wrapper => js/src/build/cygwin-wrapper
rename : build/hcc => js/src/build/hcc
rename : build/hcpp => js/src/build/hcpp
rename : build/unix/mddepend.pl => js/src/build/unix/mddepend.pl
rename : build/unix/uniq.pl => js/src/build/unix/uniq.pl
rename : config/Makefile.in => js/src/config/Makefile.in
rename : config/Moz/Milestone.pm => js/src/config/Moz/Milestone.pm
rename : config/autoconf.mk.in => js/src/config/autoconf.mk.in
rename : config/config.mk => js/src/config/config.mk
rename : config/elf-dynstr-gc.c => js/src/config/elf-dynstr-gc.c
rename : config/fastcwd.pl => js/src/config/fastcwd.pl
rename : config/gcc_hidden.h => js/src/config/gcc_hidden.h
rename : config/insure.mk => js/src/config/insure.mk
rename : nsprpub/config/make-system-wrappers.pl => js/src/config/make-system-wrappers.pl
rename : config/milestone.pl => js/src/config/milestone.pl
rename : config/milestone.txt => js/src/config/milestone.txt
rename : config/mkdepend/Makefile.in => js/src/config/mkdepend/Makefile.in
rename : config/mkdepend/cppsetup.c => js/src/config/mkdepend/cppsetup.c
rename : config/mkdepend/def.h => js/src/config/mkdepend/def.h
rename : config/mkdepend/ifparser.c => js/src/config/mkdepend/ifparser.c
rename : config/mkdepend/ifparser.h => js/src/config/mkdepend/ifparser.h
rename : config/mkdepend/imakemdep.h => js/src/config/mkdepend/imakemdep.h
rename : config/mkdepend/include.c => js/src/config/mkdepend/include.c
rename : config/mkdepend/main.c => js/src/config/mkdepend/main.c
rename : config/mkdepend/mkdepend.man => js/src/config/mkdepend/mkdepend.man
rename : config/mkdepend/parse.c => js/src/config/mkdepend/parse.c
rename : config/mkdepend/pr.c => js/src/config/mkdepend/pr.c
rename : config/nfspwd.pl => js/src/config/nfspwd.pl
rename : config/nsinstall.c => js/src/config/nsinstall.c
rename : config/nsinstall.py => js/src/config/nsinstall.py
rename : config/pathsub.c => js/src/config/pathsub.c
rename : config/pathsub.h => js/src/config/pathsub.h
rename : config/preprocessor.pl => js/src/config/preprocessor.pl
rename : config/revdepth-nt.pl => js/src/config/revdepth-nt.pl
rename : config/revdepth.pl => js/src/config/revdepth.pl
rename : config/rules.mk => js/src/config/rules.mk
rename : config/system-headers => js/src/config/system-headers
rename : config/version.mk => js/src/config/version.mk
rename : config/version_win.pl => js/src/config/version_win.pl
rename : configure.in => js/src/configure.in
2008-10-29 08:29:22 -07:00
|
|
|
export:: jsautocfg.h
|
|
|
|
|
2009-03-11 08:56:58 -07:00
|
|
|
ifeq (,$(CROSS_COMPILE)$(GNU_CC)$(filter-out WINNT,$(OS_ARCH)))
|
2007-03-22 10:30:00 -07:00
|
|
|
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
|
2007-07-16 11:40:49 -07:00
|
|
|
HOST_CXX := $(HOST_CXX) -DMDCPUCFG=$(TARGET_NSPR_MDCPUCFG)
|
|
|
|
HOST_CXXFLAGS := $(patsubst -DXP_%,,$(HOST_CXXFLAGS))
|
2007-03-22 10:30:00 -07:00
|
|
|
endif
|
|
|
|
|
|
|
|
ifdef CROSS_COMPILE
|
|
|
|
# jscpucfg needs to know when it's supposed to produce a config for the target
|
|
|
|
JSCPUCFG_DEFINES = $(ACDEFINES)
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifeq ($(OS_ARCH),QNX)
|
|
|
|
ifneq ($(OS_TARGET),NTO)
|
|
|
|
# QNX's compiler apparently can't build a binary directly from a source file.
|
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 $@ $<
|
2007-03-22 10:30:00 -07:00
|
|
|
|
|
|
|
jscpucfg: jscpucfg.o
|
2007-07-16 11:40:49 -07:00
|
|
|
$(HOST_CXX) $(HOST_CXXFLAGS) $(JSCPUCFG_DEFINES) $(DEFINES) -o $@ $<
|
2007-03-22 10:30:00 -07:00
|
|
|
endif
|
|
|
|
else
|
|
|
|
ifeq ($(OS_ARCH),WINCE)
|
|
|
|
jscpucfg$(HOST_BIN_SUFFIX):
|
|
|
|
echo no need to build jscpucfg $<
|
|
|
|
else
|
2007-07-16 11:40:49 -07:00
|
|
|
jscpucfg$(HOST_BIN_SUFFIX): jscpucfg.cpp Makefile.in
|
2008-08-19 16:02:44 -07:00
|
|
|
$(HOST_CXX) $(HOST_CXXFLAGS) $(JSCPUCFG_DEFINES) $(DEFINES) $(NSPR_CFLAGS) $(HOST_OUTOPTION)$@ $<
|
2007-03-22 10:30:00 -07:00
|
|
|
endif
|
|
|
|
endif
|
|
|
|
|
Bug 97954: Allow SpiderMonkey to be built on its own, or as part of Mozilla.
Give SpiderMonkey its own configure script and top-level Makefile.
Adjust js/src/Makefile as appropriate for life as a stand-alone
makefile, instead of a 'make export; make libs'-style Mozilla tier
makefile. Have the configure script accept '--with-nspr-cflags' and
'--with-nspr-libs' options for using an in-tree NSPR. Also accept
'--with-system-nspr', '--with-nspr-prefix', and
'--with-nspr-exec-prefix' flags for using an installed NSPR. Default
to --disable-jemalloc, assuming we don't have that part of the tree
available; have the top-level configure script pass --enable-jemalloc
as needed.
Since we no longer have an export phase to copy header files into
dist/include/js before we build the library, we need to be able to
find nanojit.h in the nanojit directory; fix references in
jsbuiltins.h and jstracer.cpp.
Give SpiderMonkey it its own copies of many of the files from ./config
and ./build. These are all exact copies, except as follows:
. js/src/config/Makefile.in: js/src only has a subset of
js/src/config, and thus a subset of the makefile targets.
. js/src/config/autoconf.mk.in: js/src/configure.in has its own make
variables to set, not set by the top-level configure script, so it
needs a custom automake.mk template.
. js/src/config/make-system-wrappers.pl: a copy from nsprpub/config,
so that we can build without having an NSPR source tree handy.
Invoke js/src/configure from ./configure, passing the values computed
for NSPR_CFLAGS and NSPR_LIBS by the top-level configure script.
Treat js/src as a static directory of the js tier, and create a new
config/js (just a Makefile) to be the js tier's non-static directory.
Let js/src/configure generate SpiderMonkey's makefiles, not
./configure.
Generate a 'js-config' script, which clients can call to find the
CFLAGS and LIBS values necessary to compile and link against an
installed SpiderMonkey library. Don't include the js-config script in
Macintosh packages.
Teach client.mk how to rebuild js/src/configure.
Tell Mercurial to ignore files generated by autoconf in js/src.
Further work:
. Right now, callers must define JS_THREADSAFE when #including jsapi.h.
This is fixed in a subsequent patch.
. js/src/configure is a trimmed copy of ./configure. It could be
trimmed more.
--HG--
rename : build/autoconf/acoutput-fast.pl => js/src/build/autoconf/acoutput-fast.pl
rename : build/autoconf/altoptions.m4 => js/src/build/autoconf/altoptions.m4
rename : build/autoconf/config.guess => js/src/build/autoconf/config.guess
rename : build/autoconf/config.sub => js/src/build/autoconf/config.sub
rename : build/autoconf/glib.m4 => js/src/build/autoconf/glib.m4
rename : build/autoconf/install-sh => js/src/build/autoconf/install-sh
rename : build/autoconf/make-makefile => js/src/build/autoconf/make-makefile
rename : build/autoconf/match-dir.sh => js/src/build/autoconf/match-dir.sh
rename : build/autoconf/nspr.m4 => js/src/build/autoconf/nspr.m4
rename : build/autoconf/pkg.m4 => js/src/build/autoconf/pkg.m4
rename : build/autoconf/update-makefile.sh => js/src/build/autoconf/update-makefile.sh
rename : build/cygwin-wrapper => js/src/build/cygwin-wrapper
rename : build/hcc => js/src/build/hcc
rename : build/hcpp => js/src/build/hcpp
rename : build/unix/mddepend.pl => js/src/build/unix/mddepend.pl
rename : build/unix/uniq.pl => js/src/build/unix/uniq.pl
rename : config/Makefile.in => js/src/config/Makefile.in
rename : config/Moz/Milestone.pm => js/src/config/Moz/Milestone.pm
rename : config/autoconf.mk.in => js/src/config/autoconf.mk.in
rename : config/config.mk => js/src/config/config.mk
rename : config/elf-dynstr-gc.c => js/src/config/elf-dynstr-gc.c
rename : config/fastcwd.pl => js/src/config/fastcwd.pl
rename : config/gcc_hidden.h => js/src/config/gcc_hidden.h
rename : config/insure.mk => js/src/config/insure.mk
rename : nsprpub/config/make-system-wrappers.pl => js/src/config/make-system-wrappers.pl
rename : config/milestone.pl => js/src/config/milestone.pl
rename : config/milestone.txt => js/src/config/milestone.txt
rename : config/mkdepend/Makefile.in => js/src/config/mkdepend/Makefile.in
rename : config/mkdepend/cppsetup.c => js/src/config/mkdepend/cppsetup.c
rename : config/mkdepend/def.h => js/src/config/mkdepend/def.h
rename : config/mkdepend/ifparser.c => js/src/config/mkdepend/ifparser.c
rename : config/mkdepend/ifparser.h => js/src/config/mkdepend/ifparser.h
rename : config/mkdepend/imakemdep.h => js/src/config/mkdepend/imakemdep.h
rename : config/mkdepend/include.c => js/src/config/mkdepend/include.c
rename : config/mkdepend/main.c => js/src/config/mkdepend/main.c
rename : config/mkdepend/mkdepend.man => js/src/config/mkdepend/mkdepend.man
rename : config/mkdepend/parse.c => js/src/config/mkdepend/parse.c
rename : config/mkdepend/pr.c => js/src/config/mkdepend/pr.c
rename : config/nfspwd.pl => js/src/config/nfspwd.pl
rename : config/nsinstall.c => js/src/config/nsinstall.c
rename : config/nsinstall.py => js/src/config/nsinstall.py
rename : config/pathsub.c => js/src/config/pathsub.c
rename : config/pathsub.h => js/src/config/pathsub.h
rename : config/preprocessor.pl => js/src/config/preprocessor.pl
rename : config/revdepth-nt.pl => js/src/config/revdepth-nt.pl
rename : config/revdepth.pl => js/src/config/revdepth.pl
rename : config/rules.mk => js/src/config/rules.mk
rename : config/system-headers => js/src/config/system-headers
rename : config/version.mk => js/src/config/version.mk
rename : config/version_win.pl => js/src/config/version_win.pl
rename : configure.in => js/src/configure.in
2008-10-29 08:29:22 -07:00
|
|
|
# Compute the linker flags that programs linking against SpiderMonkey should
|
|
|
|
# pass to get SpiderMonkey and its dependencies, beyond just the -L and -l
|
|
|
|
# for the SpiderMonkey library itself.
|
|
|
|
# - EXTRA_DSO_LDOPTS includes the NSPR -L and -l flags.
|
|
|
|
# - OS_LIBS includes libraries selected by the configure script.
|
|
|
|
# - EXTRA_LIBS includes libraries selected by this Makefile.
|
|
|
|
JS_CONFIG_LIBS=$(EXTRA_DSO_LDOPTS) $(OS_LIBS) $(EXTRA_LIBS)
|
|
|
|
|
|
|
|
# The configure script invokes this rule explicitly at configure time!
|
|
|
|
# It's important that js-config be ready by the time we're done
|
|
|
|
# configuring, because we may be running other configure scripts that
|
|
|
|
# would like to run js-config themselves, before js is built.
|
|
|
|
#
|
|
|
|
# This file and rules.mk go through a certain amount of work to decide
|
|
|
|
# which libraries to build, what to name them, and what flags to pass
|
|
|
|
# when linking them (and thus what flags its own clients must pass).
|
|
|
|
# All this information needs to go into the js-config script. To
|
|
|
|
# avoid trying to re-compute all that in the configure script, we just
|
|
|
|
# have the configure script generate this Makefile, and then invoke
|
|
|
|
# this rule.
|
|
|
|
at=@
|
|
|
|
js-config: js-config.in Makefile $(DEPTH)/config/autoconf.mk $(topsrcdir)/config/config.mk $(topsrcdir)/config/rules.mk
|
|
|
|
rm -f js-config.tmp
|
|
|
|
sed < $< > js-config.tmp \
|
|
|
|
-e 's|$(at)prefix$(at)|$(prefix)|' \
|
|
|
|
-e 's|$(at)exec_prefix$(at)|$(exec_prefix)|' \
|
|
|
|
-e 's|$(at)includedir$(at)|$(includedir)|' \
|
|
|
|
-e 's|$(at)libdir$(at)|$(libdir)|' \
|
|
|
|
-e 's|$(at)MOZILLA_VERSION$(at)|$(MOZILLA_VERSION)|' \
|
|
|
|
-e 's|$(at)LIBRARY_NAME$(at)|$(LIBRARY_NAME)|' \
|
|
|
|
-e 's|$(at)NSPR_CFLAGS$(at)|$(NSPR_CFLAGS)|' \
|
|
|
|
-e 's|$(at)JS_CONFIG_LIBS$(at)|$(JS_CONFIG_LIBS)|' \
|
|
|
|
-e 's|$(at)MOZ_JS_LIBS$(at)|$(MOZ_JS_LIBS)|' \
|
|
|
|
&& mv js-config.tmp $@ && chmod +x $@
|
|
|
|
|
|
|
|
SCRIPTS = js-config
|
2009-01-08 10:51:27 -08:00
|
|
|
SDK_BINARY = js-config
|
Bug 97954: Allow SpiderMonkey to be built on its own, or as part of Mozilla.
Give SpiderMonkey its own configure script and top-level Makefile.
Adjust js/src/Makefile as appropriate for life as a stand-alone
makefile, instead of a 'make export; make libs'-style Mozilla tier
makefile. Have the configure script accept '--with-nspr-cflags' and
'--with-nspr-libs' options for using an in-tree NSPR. Also accept
'--with-system-nspr', '--with-nspr-prefix', and
'--with-nspr-exec-prefix' flags for using an installed NSPR. Default
to --disable-jemalloc, assuming we don't have that part of the tree
available; have the top-level configure script pass --enable-jemalloc
as needed.
Since we no longer have an export phase to copy header files into
dist/include/js before we build the library, we need to be able to
find nanojit.h in the nanojit directory; fix references in
jsbuiltins.h and jstracer.cpp.
Give SpiderMonkey it its own copies of many of the files from ./config
and ./build. These are all exact copies, except as follows:
. js/src/config/Makefile.in: js/src only has a subset of
js/src/config, and thus a subset of the makefile targets.
. js/src/config/autoconf.mk.in: js/src/configure.in has its own make
variables to set, not set by the top-level configure script, so it
needs a custom automake.mk template.
. js/src/config/make-system-wrappers.pl: a copy from nsprpub/config,
so that we can build without having an NSPR source tree handy.
Invoke js/src/configure from ./configure, passing the values computed
for NSPR_CFLAGS and NSPR_LIBS by the top-level configure script.
Treat js/src as a static directory of the js tier, and create a new
config/js (just a Makefile) to be the js tier's non-static directory.
Let js/src/configure generate SpiderMonkey's makefiles, not
./configure.
Generate a 'js-config' script, which clients can call to find the
CFLAGS and LIBS values necessary to compile and link against an
installed SpiderMonkey library. Don't include the js-config script in
Macintosh packages.
Teach client.mk how to rebuild js/src/configure.
Tell Mercurial to ignore files generated by autoconf in js/src.
Further work:
. Right now, callers must define JS_THREADSAFE when #including jsapi.h.
This is fixed in a subsequent patch.
. js/src/configure is a trimmed copy of ./configure. It could be
trimmed more.
--HG--
rename : build/autoconf/acoutput-fast.pl => js/src/build/autoconf/acoutput-fast.pl
rename : build/autoconf/altoptions.m4 => js/src/build/autoconf/altoptions.m4
rename : build/autoconf/config.guess => js/src/build/autoconf/config.guess
rename : build/autoconf/config.sub => js/src/build/autoconf/config.sub
rename : build/autoconf/glib.m4 => js/src/build/autoconf/glib.m4
rename : build/autoconf/install-sh => js/src/build/autoconf/install-sh
rename : build/autoconf/make-makefile => js/src/build/autoconf/make-makefile
rename : build/autoconf/match-dir.sh => js/src/build/autoconf/match-dir.sh
rename : build/autoconf/nspr.m4 => js/src/build/autoconf/nspr.m4
rename : build/autoconf/pkg.m4 => js/src/build/autoconf/pkg.m4
rename : build/autoconf/update-makefile.sh => js/src/build/autoconf/update-makefile.sh
rename : build/cygwin-wrapper => js/src/build/cygwin-wrapper
rename : build/hcc => js/src/build/hcc
rename : build/hcpp => js/src/build/hcpp
rename : build/unix/mddepend.pl => js/src/build/unix/mddepend.pl
rename : build/unix/uniq.pl => js/src/build/unix/uniq.pl
rename : config/Makefile.in => js/src/config/Makefile.in
rename : config/Moz/Milestone.pm => js/src/config/Moz/Milestone.pm
rename : config/autoconf.mk.in => js/src/config/autoconf.mk.in
rename : config/config.mk => js/src/config/config.mk
rename : config/elf-dynstr-gc.c => js/src/config/elf-dynstr-gc.c
rename : config/fastcwd.pl => js/src/config/fastcwd.pl
rename : config/gcc_hidden.h => js/src/config/gcc_hidden.h
rename : config/insure.mk => js/src/config/insure.mk
rename : nsprpub/config/make-system-wrappers.pl => js/src/config/make-system-wrappers.pl
rename : config/milestone.pl => js/src/config/milestone.pl
rename : config/milestone.txt => js/src/config/milestone.txt
rename : config/mkdepend/Makefile.in => js/src/config/mkdepend/Makefile.in
rename : config/mkdepend/cppsetup.c => js/src/config/mkdepend/cppsetup.c
rename : config/mkdepend/def.h => js/src/config/mkdepend/def.h
rename : config/mkdepend/ifparser.c => js/src/config/mkdepend/ifparser.c
rename : config/mkdepend/ifparser.h => js/src/config/mkdepend/ifparser.h
rename : config/mkdepend/imakemdep.h => js/src/config/mkdepend/imakemdep.h
rename : config/mkdepend/include.c => js/src/config/mkdepend/include.c
rename : config/mkdepend/main.c => js/src/config/mkdepend/main.c
rename : config/mkdepend/mkdepend.man => js/src/config/mkdepend/mkdepend.man
rename : config/mkdepend/parse.c => js/src/config/mkdepend/parse.c
rename : config/mkdepend/pr.c => js/src/config/mkdepend/pr.c
rename : config/nfspwd.pl => js/src/config/nfspwd.pl
rename : config/nsinstall.c => js/src/config/nsinstall.c
rename : config/nsinstall.py => js/src/config/nsinstall.py
rename : config/pathsub.c => js/src/config/pathsub.c
rename : config/pathsub.h => js/src/config/pathsub.h
rename : config/preprocessor.pl => js/src/config/preprocessor.pl
rename : config/revdepth-nt.pl => js/src/config/revdepth-nt.pl
rename : config/revdepth.pl => js/src/config/revdepth.pl
rename : config/rules.mk => js/src/config/rules.mk
rename : config/system-headers => js/src/config/system-headers
rename : config/version.mk => js/src/config/version.mk
rename : config/version_win.pl => js/src/config/version_win.pl
rename : configure.in => js/src/configure.in
2008-10-29 08:29:22 -07:00
|
|
|
|
|
|
|
install:: $(INSTALLED_HEADERS)
|
2009-04-20 11:08:34 -07:00
|
|
|
$(SYSINSTALL) $^ $(DESTDIR)$(includedir)/$(MODULE)
|
Bug 97954: Allow SpiderMonkey to be built on its own, or as part of Mozilla.
Give SpiderMonkey its own configure script and top-level Makefile.
Adjust js/src/Makefile as appropriate for life as a stand-alone
makefile, instead of a 'make export; make libs'-style Mozilla tier
makefile. Have the configure script accept '--with-nspr-cflags' and
'--with-nspr-libs' options for using an in-tree NSPR. Also accept
'--with-system-nspr', '--with-nspr-prefix', and
'--with-nspr-exec-prefix' flags for using an installed NSPR. Default
to --disable-jemalloc, assuming we don't have that part of the tree
available; have the top-level configure script pass --enable-jemalloc
as needed.
Since we no longer have an export phase to copy header files into
dist/include/js before we build the library, we need to be able to
find nanojit.h in the nanojit directory; fix references in
jsbuiltins.h and jstracer.cpp.
Give SpiderMonkey it its own copies of many of the files from ./config
and ./build. These are all exact copies, except as follows:
. js/src/config/Makefile.in: js/src only has a subset of
js/src/config, and thus a subset of the makefile targets.
. js/src/config/autoconf.mk.in: js/src/configure.in has its own make
variables to set, not set by the top-level configure script, so it
needs a custom automake.mk template.
. js/src/config/make-system-wrappers.pl: a copy from nsprpub/config,
so that we can build without having an NSPR source tree handy.
Invoke js/src/configure from ./configure, passing the values computed
for NSPR_CFLAGS and NSPR_LIBS by the top-level configure script.
Treat js/src as a static directory of the js tier, and create a new
config/js (just a Makefile) to be the js tier's non-static directory.
Let js/src/configure generate SpiderMonkey's makefiles, not
./configure.
Generate a 'js-config' script, which clients can call to find the
CFLAGS and LIBS values necessary to compile and link against an
installed SpiderMonkey library. Don't include the js-config script in
Macintosh packages.
Teach client.mk how to rebuild js/src/configure.
Tell Mercurial to ignore files generated by autoconf in js/src.
Further work:
. Right now, callers must define JS_THREADSAFE when #including jsapi.h.
This is fixed in a subsequent patch.
. js/src/configure is a trimmed copy of ./configure. It could be
trimmed more.
--HG--
rename : build/autoconf/acoutput-fast.pl => js/src/build/autoconf/acoutput-fast.pl
rename : build/autoconf/altoptions.m4 => js/src/build/autoconf/altoptions.m4
rename : build/autoconf/config.guess => js/src/build/autoconf/config.guess
rename : build/autoconf/config.sub => js/src/build/autoconf/config.sub
rename : build/autoconf/glib.m4 => js/src/build/autoconf/glib.m4
rename : build/autoconf/install-sh => js/src/build/autoconf/install-sh
rename : build/autoconf/make-makefile => js/src/build/autoconf/make-makefile
rename : build/autoconf/match-dir.sh => js/src/build/autoconf/match-dir.sh
rename : build/autoconf/nspr.m4 => js/src/build/autoconf/nspr.m4
rename : build/autoconf/pkg.m4 => js/src/build/autoconf/pkg.m4
rename : build/autoconf/update-makefile.sh => js/src/build/autoconf/update-makefile.sh
rename : build/cygwin-wrapper => js/src/build/cygwin-wrapper
rename : build/hcc => js/src/build/hcc
rename : build/hcpp => js/src/build/hcpp
rename : build/unix/mddepend.pl => js/src/build/unix/mddepend.pl
rename : build/unix/uniq.pl => js/src/build/unix/uniq.pl
rename : config/Makefile.in => js/src/config/Makefile.in
rename : config/Moz/Milestone.pm => js/src/config/Moz/Milestone.pm
rename : config/autoconf.mk.in => js/src/config/autoconf.mk.in
rename : config/config.mk => js/src/config/config.mk
rename : config/elf-dynstr-gc.c => js/src/config/elf-dynstr-gc.c
rename : config/fastcwd.pl => js/src/config/fastcwd.pl
rename : config/gcc_hidden.h => js/src/config/gcc_hidden.h
rename : config/insure.mk => js/src/config/insure.mk
rename : nsprpub/config/make-system-wrappers.pl => js/src/config/make-system-wrappers.pl
rename : config/milestone.pl => js/src/config/milestone.pl
rename : config/milestone.txt => js/src/config/milestone.txt
rename : config/mkdepend/Makefile.in => js/src/config/mkdepend/Makefile.in
rename : config/mkdepend/cppsetup.c => js/src/config/mkdepend/cppsetup.c
rename : config/mkdepend/def.h => js/src/config/mkdepend/def.h
rename : config/mkdepend/ifparser.c => js/src/config/mkdepend/ifparser.c
rename : config/mkdepend/ifparser.h => js/src/config/mkdepend/ifparser.h
rename : config/mkdepend/imakemdep.h => js/src/config/mkdepend/imakemdep.h
rename : config/mkdepend/include.c => js/src/config/mkdepend/include.c
rename : config/mkdepend/main.c => js/src/config/mkdepend/main.c
rename : config/mkdepend/mkdepend.man => js/src/config/mkdepend/mkdepend.man
rename : config/mkdepend/parse.c => js/src/config/mkdepend/parse.c
rename : config/mkdepend/pr.c => js/src/config/mkdepend/pr.c
rename : config/nfspwd.pl => js/src/config/nfspwd.pl
rename : config/nsinstall.c => js/src/config/nsinstall.c
rename : config/nsinstall.py => js/src/config/nsinstall.py
rename : config/pathsub.c => js/src/config/pathsub.c
rename : config/pathsub.h => js/src/config/pathsub.h
rename : config/preprocessor.pl => js/src/config/preprocessor.pl
rename : config/revdepth-nt.pl => js/src/config/revdepth-nt.pl
rename : config/revdepth.pl => js/src/config/revdepth.pl
rename : config/rules.mk => js/src/config/rules.mk
rename : config/system-headers => js/src/config/system-headers
rename : config/version.mk => js/src/config/version.mk
rename : config/version_win.pl => js/src/config/version_win.pl
rename : configure.in => js/src/configure.in
2008-10-29 08:29:22 -07:00
|
|
|
|
2009-02-02 13:56:34 -08:00
|
|
|
install:: $(SCRIPTS)
|
2009-04-20 11:08:34 -07:00
|
|
|
$(SYSINSTALL) $^ $(DESTDIR)$(bindir)
|
Bug 97954: Allow SpiderMonkey to be built on its own, or as part of Mozilla.
Give SpiderMonkey its own configure script and top-level Makefile.
Adjust js/src/Makefile as appropriate for life as a stand-alone
makefile, instead of a 'make export; make libs'-style Mozilla tier
makefile. Have the configure script accept '--with-nspr-cflags' and
'--with-nspr-libs' options for using an in-tree NSPR. Also accept
'--with-system-nspr', '--with-nspr-prefix', and
'--with-nspr-exec-prefix' flags for using an installed NSPR. Default
to --disable-jemalloc, assuming we don't have that part of the tree
available; have the top-level configure script pass --enable-jemalloc
as needed.
Since we no longer have an export phase to copy header files into
dist/include/js before we build the library, we need to be able to
find nanojit.h in the nanojit directory; fix references in
jsbuiltins.h and jstracer.cpp.
Give SpiderMonkey it its own copies of many of the files from ./config
and ./build. These are all exact copies, except as follows:
. js/src/config/Makefile.in: js/src only has a subset of
js/src/config, and thus a subset of the makefile targets.
. js/src/config/autoconf.mk.in: js/src/configure.in has its own make
variables to set, not set by the top-level configure script, so it
needs a custom automake.mk template.
. js/src/config/make-system-wrappers.pl: a copy from nsprpub/config,
so that we can build without having an NSPR source tree handy.
Invoke js/src/configure from ./configure, passing the values computed
for NSPR_CFLAGS and NSPR_LIBS by the top-level configure script.
Treat js/src as a static directory of the js tier, and create a new
config/js (just a Makefile) to be the js tier's non-static directory.
Let js/src/configure generate SpiderMonkey's makefiles, not
./configure.
Generate a 'js-config' script, which clients can call to find the
CFLAGS and LIBS values necessary to compile and link against an
installed SpiderMonkey library. Don't include the js-config script in
Macintosh packages.
Teach client.mk how to rebuild js/src/configure.
Tell Mercurial to ignore files generated by autoconf in js/src.
Further work:
. Right now, callers must define JS_THREADSAFE when #including jsapi.h.
This is fixed in a subsequent patch.
. js/src/configure is a trimmed copy of ./configure. It could be
trimmed more.
--HG--
rename : build/autoconf/acoutput-fast.pl => js/src/build/autoconf/acoutput-fast.pl
rename : build/autoconf/altoptions.m4 => js/src/build/autoconf/altoptions.m4
rename : build/autoconf/config.guess => js/src/build/autoconf/config.guess
rename : build/autoconf/config.sub => js/src/build/autoconf/config.sub
rename : build/autoconf/glib.m4 => js/src/build/autoconf/glib.m4
rename : build/autoconf/install-sh => js/src/build/autoconf/install-sh
rename : build/autoconf/make-makefile => js/src/build/autoconf/make-makefile
rename : build/autoconf/match-dir.sh => js/src/build/autoconf/match-dir.sh
rename : build/autoconf/nspr.m4 => js/src/build/autoconf/nspr.m4
rename : build/autoconf/pkg.m4 => js/src/build/autoconf/pkg.m4
rename : build/autoconf/update-makefile.sh => js/src/build/autoconf/update-makefile.sh
rename : build/cygwin-wrapper => js/src/build/cygwin-wrapper
rename : build/hcc => js/src/build/hcc
rename : build/hcpp => js/src/build/hcpp
rename : build/unix/mddepend.pl => js/src/build/unix/mddepend.pl
rename : build/unix/uniq.pl => js/src/build/unix/uniq.pl
rename : config/Makefile.in => js/src/config/Makefile.in
rename : config/Moz/Milestone.pm => js/src/config/Moz/Milestone.pm
rename : config/autoconf.mk.in => js/src/config/autoconf.mk.in
rename : config/config.mk => js/src/config/config.mk
rename : config/elf-dynstr-gc.c => js/src/config/elf-dynstr-gc.c
rename : config/fastcwd.pl => js/src/config/fastcwd.pl
rename : config/gcc_hidden.h => js/src/config/gcc_hidden.h
rename : config/insure.mk => js/src/config/insure.mk
rename : nsprpub/config/make-system-wrappers.pl => js/src/config/make-system-wrappers.pl
rename : config/milestone.pl => js/src/config/milestone.pl
rename : config/milestone.txt => js/src/config/milestone.txt
rename : config/mkdepend/Makefile.in => js/src/config/mkdepend/Makefile.in
rename : config/mkdepend/cppsetup.c => js/src/config/mkdepend/cppsetup.c
rename : config/mkdepend/def.h => js/src/config/mkdepend/def.h
rename : config/mkdepend/ifparser.c => js/src/config/mkdepend/ifparser.c
rename : config/mkdepend/ifparser.h => js/src/config/mkdepend/ifparser.h
rename : config/mkdepend/imakemdep.h => js/src/config/mkdepend/imakemdep.h
rename : config/mkdepend/include.c => js/src/config/mkdepend/include.c
rename : config/mkdepend/main.c => js/src/config/mkdepend/main.c
rename : config/mkdepend/mkdepend.man => js/src/config/mkdepend/mkdepend.man
rename : config/mkdepend/parse.c => js/src/config/mkdepend/parse.c
rename : config/mkdepend/pr.c => js/src/config/mkdepend/pr.c
rename : config/nfspwd.pl => js/src/config/nfspwd.pl
rename : config/nsinstall.c => js/src/config/nsinstall.c
rename : config/nsinstall.py => js/src/config/nsinstall.py
rename : config/pathsub.c => js/src/config/pathsub.c
rename : config/pathsub.h => js/src/config/pathsub.h
rename : config/preprocessor.pl => js/src/config/preprocessor.pl
rename : config/revdepth-nt.pl => js/src/config/revdepth-nt.pl
rename : config/revdepth.pl => js/src/config/revdepth.pl
rename : config/rules.mk => js/src/config/rules.mk
rename : config/system-headers => js/src/config/system-headers
rename : config/version.mk => js/src/config/version.mk
rename : config/version_win.pl => js/src/config/version_win.pl
rename : configure.in => js/src/configure.in
2008-10-29 08:29:22 -07:00
|
|
|
|
2009-01-08 10:51:27 -08:00
|
|
|
install:: $(LIBRARY) $(SHARED_LIBRARY) $(IMPORT_LIBRARY)
|
2008-12-25 19:49:53 -08:00
|
|
|
ifneq (,$(LIBRARY))
|
2009-04-20 11:08:34 -07:00
|
|
|
$(SYSINSTALL) $(LIBRARY) $(DESTDIR)$(libdir)
|
2008-12-25 19:49:53 -08:00
|
|
|
endif
|
Bug 97954: Allow SpiderMonkey to be built on its own, or as part of Mozilla.
Give SpiderMonkey its own configure script and top-level Makefile.
Adjust js/src/Makefile as appropriate for life as a stand-alone
makefile, instead of a 'make export; make libs'-style Mozilla tier
makefile. Have the configure script accept '--with-nspr-cflags' and
'--with-nspr-libs' options for using an in-tree NSPR. Also accept
'--with-system-nspr', '--with-nspr-prefix', and
'--with-nspr-exec-prefix' flags for using an installed NSPR. Default
to --disable-jemalloc, assuming we don't have that part of the tree
available; have the top-level configure script pass --enable-jemalloc
as needed.
Since we no longer have an export phase to copy header files into
dist/include/js before we build the library, we need to be able to
find nanojit.h in the nanojit directory; fix references in
jsbuiltins.h and jstracer.cpp.
Give SpiderMonkey it its own copies of many of the files from ./config
and ./build. These are all exact copies, except as follows:
. js/src/config/Makefile.in: js/src only has a subset of
js/src/config, and thus a subset of the makefile targets.
. js/src/config/autoconf.mk.in: js/src/configure.in has its own make
variables to set, not set by the top-level configure script, so it
needs a custom automake.mk template.
. js/src/config/make-system-wrappers.pl: a copy from nsprpub/config,
so that we can build without having an NSPR source tree handy.
Invoke js/src/configure from ./configure, passing the values computed
for NSPR_CFLAGS and NSPR_LIBS by the top-level configure script.
Treat js/src as a static directory of the js tier, and create a new
config/js (just a Makefile) to be the js tier's non-static directory.
Let js/src/configure generate SpiderMonkey's makefiles, not
./configure.
Generate a 'js-config' script, which clients can call to find the
CFLAGS and LIBS values necessary to compile and link against an
installed SpiderMonkey library. Don't include the js-config script in
Macintosh packages.
Teach client.mk how to rebuild js/src/configure.
Tell Mercurial to ignore files generated by autoconf in js/src.
Further work:
. Right now, callers must define JS_THREADSAFE when #including jsapi.h.
This is fixed in a subsequent patch.
. js/src/configure is a trimmed copy of ./configure. It could be
trimmed more.
--HG--
rename : build/autoconf/acoutput-fast.pl => js/src/build/autoconf/acoutput-fast.pl
rename : build/autoconf/altoptions.m4 => js/src/build/autoconf/altoptions.m4
rename : build/autoconf/config.guess => js/src/build/autoconf/config.guess
rename : build/autoconf/config.sub => js/src/build/autoconf/config.sub
rename : build/autoconf/glib.m4 => js/src/build/autoconf/glib.m4
rename : build/autoconf/install-sh => js/src/build/autoconf/install-sh
rename : build/autoconf/make-makefile => js/src/build/autoconf/make-makefile
rename : build/autoconf/match-dir.sh => js/src/build/autoconf/match-dir.sh
rename : build/autoconf/nspr.m4 => js/src/build/autoconf/nspr.m4
rename : build/autoconf/pkg.m4 => js/src/build/autoconf/pkg.m4
rename : build/autoconf/update-makefile.sh => js/src/build/autoconf/update-makefile.sh
rename : build/cygwin-wrapper => js/src/build/cygwin-wrapper
rename : build/hcc => js/src/build/hcc
rename : build/hcpp => js/src/build/hcpp
rename : build/unix/mddepend.pl => js/src/build/unix/mddepend.pl
rename : build/unix/uniq.pl => js/src/build/unix/uniq.pl
rename : config/Makefile.in => js/src/config/Makefile.in
rename : config/Moz/Milestone.pm => js/src/config/Moz/Milestone.pm
rename : config/autoconf.mk.in => js/src/config/autoconf.mk.in
rename : config/config.mk => js/src/config/config.mk
rename : config/elf-dynstr-gc.c => js/src/config/elf-dynstr-gc.c
rename : config/fastcwd.pl => js/src/config/fastcwd.pl
rename : config/gcc_hidden.h => js/src/config/gcc_hidden.h
rename : config/insure.mk => js/src/config/insure.mk
rename : nsprpub/config/make-system-wrappers.pl => js/src/config/make-system-wrappers.pl
rename : config/milestone.pl => js/src/config/milestone.pl
rename : config/milestone.txt => js/src/config/milestone.txt
rename : config/mkdepend/Makefile.in => js/src/config/mkdepend/Makefile.in
rename : config/mkdepend/cppsetup.c => js/src/config/mkdepend/cppsetup.c
rename : config/mkdepend/def.h => js/src/config/mkdepend/def.h
rename : config/mkdepend/ifparser.c => js/src/config/mkdepend/ifparser.c
rename : config/mkdepend/ifparser.h => js/src/config/mkdepend/ifparser.h
rename : config/mkdepend/imakemdep.h => js/src/config/mkdepend/imakemdep.h
rename : config/mkdepend/include.c => js/src/config/mkdepend/include.c
rename : config/mkdepend/main.c => js/src/config/mkdepend/main.c
rename : config/mkdepend/mkdepend.man => js/src/config/mkdepend/mkdepend.man
rename : config/mkdepend/parse.c => js/src/config/mkdepend/parse.c
rename : config/mkdepend/pr.c => js/src/config/mkdepend/pr.c
rename : config/nfspwd.pl => js/src/config/nfspwd.pl
rename : config/nsinstall.c => js/src/config/nsinstall.c
rename : config/nsinstall.py => js/src/config/nsinstall.py
rename : config/pathsub.c => js/src/config/pathsub.c
rename : config/pathsub.h => js/src/config/pathsub.h
rename : config/preprocessor.pl => js/src/config/preprocessor.pl
rename : config/revdepth-nt.pl => js/src/config/revdepth-nt.pl
rename : config/revdepth.pl => js/src/config/revdepth.pl
rename : config/rules.mk => js/src/config/rules.mk
rename : config/system-headers => js/src/config/system-headers
rename : config/version.mk => js/src/config/version.mk
rename : config/version_win.pl => js/src/config/version_win.pl
rename : configure.in => js/src/configure.in
2008-10-29 08:29:22 -07:00
|
|
|
ifneq (,$(SHARED_LIBRARY))
|
2009-04-20 11:08:34 -07:00
|
|
|
$(SYSINSTALL) $(SHARED_LIBRARY) $(DESTDIR)$(libdir)
|
Bug 97954: Allow SpiderMonkey to be built on its own, or as part of Mozilla.
Give SpiderMonkey its own configure script and top-level Makefile.
Adjust js/src/Makefile as appropriate for life as a stand-alone
makefile, instead of a 'make export; make libs'-style Mozilla tier
makefile. Have the configure script accept '--with-nspr-cflags' and
'--with-nspr-libs' options for using an in-tree NSPR. Also accept
'--with-system-nspr', '--with-nspr-prefix', and
'--with-nspr-exec-prefix' flags for using an installed NSPR. Default
to --disable-jemalloc, assuming we don't have that part of the tree
available; have the top-level configure script pass --enable-jemalloc
as needed.
Since we no longer have an export phase to copy header files into
dist/include/js before we build the library, we need to be able to
find nanojit.h in the nanojit directory; fix references in
jsbuiltins.h and jstracer.cpp.
Give SpiderMonkey it its own copies of many of the files from ./config
and ./build. These are all exact copies, except as follows:
. js/src/config/Makefile.in: js/src only has a subset of
js/src/config, and thus a subset of the makefile targets.
. js/src/config/autoconf.mk.in: js/src/configure.in has its own make
variables to set, not set by the top-level configure script, so it
needs a custom automake.mk template.
. js/src/config/make-system-wrappers.pl: a copy from nsprpub/config,
so that we can build without having an NSPR source tree handy.
Invoke js/src/configure from ./configure, passing the values computed
for NSPR_CFLAGS and NSPR_LIBS by the top-level configure script.
Treat js/src as a static directory of the js tier, and create a new
config/js (just a Makefile) to be the js tier's non-static directory.
Let js/src/configure generate SpiderMonkey's makefiles, not
./configure.
Generate a 'js-config' script, which clients can call to find the
CFLAGS and LIBS values necessary to compile and link against an
installed SpiderMonkey library. Don't include the js-config script in
Macintosh packages.
Teach client.mk how to rebuild js/src/configure.
Tell Mercurial to ignore files generated by autoconf in js/src.
Further work:
. Right now, callers must define JS_THREADSAFE when #including jsapi.h.
This is fixed in a subsequent patch.
. js/src/configure is a trimmed copy of ./configure. It could be
trimmed more.
--HG--
rename : build/autoconf/acoutput-fast.pl => js/src/build/autoconf/acoutput-fast.pl
rename : build/autoconf/altoptions.m4 => js/src/build/autoconf/altoptions.m4
rename : build/autoconf/config.guess => js/src/build/autoconf/config.guess
rename : build/autoconf/config.sub => js/src/build/autoconf/config.sub
rename : build/autoconf/glib.m4 => js/src/build/autoconf/glib.m4
rename : build/autoconf/install-sh => js/src/build/autoconf/install-sh
rename : build/autoconf/make-makefile => js/src/build/autoconf/make-makefile
rename : build/autoconf/match-dir.sh => js/src/build/autoconf/match-dir.sh
rename : build/autoconf/nspr.m4 => js/src/build/autoconf/nspr.m4
rename : build/autoconf/pkg.m4 => js/src/build/autoconf/pkg.m4
rename : build/autoconf/update-makefile.sh => js/src/build/autoconf/update-makefile.sh
rename : build/cygwin-wrapper => js/src/build/cygwin-wrapper
rename : build/hcc => js/src/build/hcc
rename : build/hcpp => js/src/build/hcpp
rename : build/unix/mddepend.pl => js/src/build/unix/mddepend.pl
rename : build/unix/uniq.pl => js/src/build/unix/uniq.pl
rename : config/Makefile.in => js/src/config/Makefile.in
rename : config/Moz/Milestone.pm => js/src/config/Moz/Milestone.pm
rename : config/autoconf.mk.in => js/src/config/autoconf.mk.in
rename : config/config.mk => js/src/config/config.mk
rename : config/elf-dynstr-gc.c => js/src/config/elf-dynstr-gc.c
rename : config/fastcwd.pl => js/src/config/fastcwd.pl
rename : config/gcc_hidden.h => js/src/config/gcc_hidden.h
rename : config/insure.mk => js/src/config/insure.mk
rename : nsprpub/config/make-system-wrappers.pl => js/src/config/make-system-wrappers.pl
rename : config/milestone.pl => js/src/config/milestone.pl
rename : config/milestone.txt => js/src/config/milestone.txt
rename : config/mkdepend/Makefile.in => js/src/config/mkdepend/Makefile.in
rename : config/mkdepend/cppsetup.c => js/src/config/mkdepend/cppsetup.c
rename : config/mkdepend/def.h => js/src/config/mkdepend/def.h
rename : config/mkdepend/ifparser.c => js/src/config/mkdepend/ifparser.c
rename : config/mkdepend/ifparser.h => js/src/config/mkdepend/ifparser.h
rename : config/mkdepend/imakemdep.h => js/src/config/mkdepend/imakemdep.h
rename : config/mkdepend/include.c => js/src/config/mkdepend/include.c
rename : config/mkdepend/main.c => js/src/config/mkdepend/main.c
rename : config/mkdepend/mkdepend.man => js/src/config/mkdepend/mkdepend.man
rename : config/mkdepend/parse.c => js/src/config/mkdepend/parse.c
rename : config/mkdepend/pr.c => js/src/config/mkdepend/pr.c
rename : config/nfspwd.pl => js/src/config/nfspwd.pl
rename : config/nsinstall.c => js/src/config/nsinstall.c
rename : config/nsinstall.py => js/src/config/nsinstall.py
rename : config/pathsub.c => js/src/config/pathsub.c
rename : config/pathsub.h => js/src/config/pathsub.h
rename : config/preprocessor.pl => js/src/config/preprocessor.pl
rename : config/revdepth-nt.pl => js/src/config/revdepth-nt.pl
rename : config/revdepth.pl => js/src/config/revdepth.pl
rename : config/rules.mk => js/src/config/rules.mk
rename : config/system-headers => js/src/config/system-headers
rename : config/version.mk => js/src/config/version.mk
rename : config/version_win.pl => js/src/config/version_win.pl
rename : configure.in => js/src/configure.in
2008-10-29 08:29:22 -07:00
|
|
|
endif
|
2008-12-25 19:49:53 -08:00
|
|
|
ifneq (,$(IMPORT_LIBRARY))
|
2009-04-20 11:08:34 -07:00
|
|
|
$(SYSINSTALL) $(IMPORT_LIBRARY) $(DESTDIR)$(libdir)
|
2008-12-25 19:49:53 -08:00
|
|
|
endif
|
Bug 97954: Allow SpiderMonkey to be built on its own, or as part of Mozilla.
Give SpiderMonkey its own configure script and top-level Makefile.
Adjust js/src/Makefile as appropriate for life as a stand-alone
makefile, instead of a 'make export; make libs'-style Mozilla tier
makefile. Have the configure script accept '--with-nspr-cflags' and
'--with-nspr-libs' options for using an in-tree NSPR. Also accept
'--with-system-nspr', '--with-nspr-prefix', and
'--with-nspr-exec-prefix' flags for using an installed NSPR. Default
to --disable-jemalloc, assuming we don't have that part of the tree
available; have the top-level configure script pass --enable-jemalloc
as needed.
Since we no longer have an export phase to copy header files into
dist/include/js before we build the library, we need to be able to
find nanojit.h in the nanojit directory; fix references in
jsbuiltins.h and jstracer.cpp.
Give SpiderMonkey it its own copies of many of the files from ./config
and ./build. These are all exact copies, except as follows:
. js/src/config/Makefile.in: js/src only has a subset of
js/src/config, and thus a subset of the makefile targets.
. js/src/config/autoconf.mk.in: js/src/configure.in has its own make
variables to set, not set by the top-level configure script, so it
needs a custom automake.mk template.
. js/src/config/make-system-wrappers.pl: a copy from nsprpub/config,
so that we can build without having an NSPR source tree handy.
Invoke js/src/configure from ./configure, passing the values computed
for NSPR_CFLAGS and NSPR_LIBS by the top-level configure script.
Treat js/src as a static directory of the js tier, and create a new
config/js (just a Makefile) to be the js tier's non-static directory.
Let js/src/configure generate SpiderMonkey's makefiles, not
./configure.
Generate a 'js-config' script, which clients can call to find the
CFLAGS and LIBS values necessary to compile and link against an
installed SpiderMonkey library. Don't include the js-config script in
Macintosh packages.
Teach client.mk how to rebuild js/src/configure.
Tell Mercurial to ignore files generated by autoconf in js/src.
Further work:
. Right now, callers must define JS_THREADSAFE when #including jsapi.h.
This is fixed in a subsequent patch.
. js/src/configure is a trimmed copy of ./configure. It could be
trimmed more.
--HG--
rename : build/autoconf/acoutput-fast.pl => js/src/build/autoconf/acoutput-fast.pl
rename : build/autoconf/altoptions.m4 => js/src/build/autoconf/altoptions.m4
rename : build/autoconf/config.guess => js/src/build/autoconf/config.guess
rename : build/autoconf/config.sub => js/src/build/autoconf/config.sub
rename : build/autoconf/glib.m4 => js/src/build/autoconf/glib.m4
rename : build/autoconf/install-sh => js/src/build/autoconf/install-sh
rename : build/autoconf/make-makefile => js/src/build/autoconf/make-makefile
rename : build/autoconf/match-dir.sh => js/src/build/autoconf/match-dir.sh
rename : build/autoconf/nspr.m4 => js/src/build/autoconf/nspr.m4
rename : build/autoconf/pkg.m4 => js/src/build/autoconf/pkg.m4
rename : build/autoconf/update-makefile.sh => js/src/build/autoconf/update-makefile.sh
rename : build/cygwin-wrapper => js/src/build/cygwin-wrapper
rename : build/hcc => js/src/build/hcc
rename : build/hcpp => js/src/build/hcpp
rename : build/unix/mddepend.pl => js/src/build/unix/mddepend.pl
rename : build/unix/uniq.pl => js/src/build/unix/uniq.pl
rename : config/Makefile.in => js/src/config/Makefile.in
rename : config/Moz/Milestone.pm => js/src/config/Moz/Milestone.pm
rename : config/autoconf.mk.in => js/src/config/autoconf.mk.in
rename : config/config.mk => js/src/config/config.mk
rename : config/elf-dynstr-gc.c => js/src/config/elf-dynstr-gc.c
rename : config/fastcwd.pl => js/src/config/fastcwd.pl
rename : config/gcc_hidden.h => js/src/config/gcc_hidden.h
rename : config/insure.mk => js/src/config/insure.mk
rename : nsprpub/config/make-system-wrappers.pl => js/src/config/make-system-wrappers.pl
rename : config/milestone.pl => js/src/config/milestone.pl
rename : config/milestone.txt => js/src/config/milestone.txt
rename : config/mkdepend/Makefile.in => js/src/config/mkdepend/Makefile.in
rename : config/mkdepend/cppsetup.c => js/src/config/mkdepend/cppsetup.c
rename : config/mkdepend/def.h => js/src/config/mkdepend/def.h
rename : config/mkdepend/ifparser.c => js/src/config/mkdepend/ifparser.c
rename : config/mkdepend/ifparser.h => js/src/config/mkdepend/ifparser.h
rename : config/mkdepend/imakemdep.h => js/src/config/mkdepend/imakemdep.h
rename : config/mkdepend/include.c => js/src/config/mkdepend/include.c
rename : config/mkdepend/main.c => js/src/config/mkdepend/main.c
rename : config/mkdepend/mkdepend.man => js/src/config/mkdepend/mkdepend.man
rename : config/mkdepend/parse.c => js/src/config/mkdepend/parse.c
rename : config/mkdepend/pr.c => js/src/config/mkdepend/pr.c
rename : config/nfspwd.pl => js/src/config/nfspwd.pl
rename : config/nsinstall.c => js/src/config/nsinstall.c
rename : config/nsinstall.py => js/src/config/nsinstall.py
rename : config/pathsub.c => js/src/config/pathsub.c
rename : config/pathsub.h => js/src/config/pathsub.h
rename : config/preprocessor.pl => js/src/config/preprocessor.pl
rename : config/revdepth-nt.pl => js/src/config/revdepth-nt.pl
rename : config/revdepth.pl => js/src/config/revdepth.pl
rename : config/rules.mk => js/src/config/rules.mk
rename : config/system-headers => js/src/config/system-headers
rename : config/version.mk => js/src/config/version.mk
rename : config/version_win.pl => js/src/config/version_win.pl
rename : configure.in => js/src/configure.in
2008-10-29 08:29:22 -07:00
|
|
|
|
2008-05-23 23:44:08 -07:00
|
|
|
# Extra dependancies and rules for auto-generated headers
|
2008-09-05 10:19:17 -07:00
|
|
|
host_jskwgen.$(OBJ_SUFFIX): jsversion.h jskeyword.tbl
|
2007-03-22 10:30:00 -07:00
|
|
|
|
2008-11-10 12:55:46 -08:00
|
|
|
# Use CURDIR to avoid finding a jsautokw.h in the source tree (from a
|
|
|
|
# previous build?) via VPATH when we're building in a separate tree.
|
|
|
|
$(CURDIR)/jsautokw.h: host_jskwgen$(HOST_BIN_SUFFIX)
|
2007-03-22 10:30:00 -07:00
|
|
|
./host_jskwgen$(HOST_BIN_SUFFIX) $@
|
2007-10-19 15:24:32 -07:00
|
|
|
|
2008-05-23 23:44:08 -07:00
|
|
|
host_jsoplengen.$(OBJ_SUFFIX): jsopcode.tbl
|
|
|
|
|
2008-11-10 12:55:46 -08:00
|
|
|
# Use CURDIR to avoid finding a jsautooplen.h in the source tree (from
|
|
|
|
# a previous build?) via VPATH when we're building in a separate tree.
|
|
|
|
$(CURDIR)/jsautooplen.h: host_jsoplengen$(HOST_BIN_SUFFIX)
|
2008-05-23 23:44:08 -07:00
|
|
|
./host_jsoplengen$(HOST_BIN_SUFFIX) $@
|
|
|
|
|
|
|
|
# Force auto-header generation before compiling any source that may use them
|
2010-09-16 21:27:46 -07:00
|
|
|
$(patsubst %.cc,%.$(OBJ_SUFFIX),$(CPPSRCS:%.cpp=%.$(OBJ_SUFFIX))): $(CURDIR)/jsautokw.h $(CURDIR)/jsautooplen.h
|
2008-05-23 23:44:08 -07:00
|
|
|
|
2007-10-19 15:24:32 -07:00
|
|
|
ifdef HAVE_DTRACE
|
2008-11-13 05:51:37 -08:00
|
|
|
$(CURDIR)/javascript-trace.h: $(srcdir)/javascript-trace.d
|
2007-10-19 15:24:32 -07:00
|
|
|
dtrace -h -s $(srcdir)/javascript-trace.d -o javascript-trace.h.in
|
2010-09-16 13:21:12 -07:00
|
|
|
sed -e 's/if _DTRACE_VERSION/ifdef INCLUDE_MOZILLA_DTRACE/' \
|
|
|
|
-e '/const/!s/char \*/const char */g' \
|
2007-10-19 15:24:32 -07:00
|
|
|
javascript-trace.h.in > javascript-trace.h
|
2008-11-13 05:51:37 -08:00
|
|
|
|
2008-12-16 11:50:21 -08:00
|
|
|
# We can't automatically generate dependencies on auto-generated headers;
|
|
|
|
# we have to list them explicitly.
|
2010-09-01 14:09:54 -07:00
|
|
|
$(addsuffix .$(OBJ_SUFFIX),jsprobes jsinterp jsobj): $(CURDIR)/javascript-trace.h
|
2007-10-19 15:24:32 -07:00
|
|
|
endif
|
2008-12-16 19:03:42 -08:00
|
|
|
|
2010-05-12 06:49:36 -07:00
|
|
|
ifdef ENABLE_TRACEJIT
|
|
|
|
# Imacro compilation.
|
2010-09-13 22:33:44 -07:00
|
|
|
$(CURDIR)/imacros.c.out: $(srcdir)/imacro_asm.py $(srcdir)/imacros.jsasm jsopcode.tbl
|
2010-05-12 06:49:36 -07:00
|
|
|
$(PYTHON) $< $(srcdir)/imacros.jsasm $(CURDIR)/imacros.c.out
|
|
|
|
$(addsuffix .$(OBJ_SUFFIX),jstracer): $(CURDIR)/imacros.c.out
|
2009-04-08 07:18:25 -07:00
|
|
|
|
2009-10-28 11:35:48 -07:00
|
|
|
# Code for importing the nanojit subtree from its repository.
|
|
|
|
NANOJIT_CENTRAL_REV=$(shell cat $(srcdir)/nanojit-import-rev)
|
2009-11-02 10:58:02 -08:00
|
|
|
NANOJIT_CENTRAL_REPO=http://hg.mozilla.org/projects/nanojit-central
|
2009-10-28 11:35:48 -07:00
|
|
|
NANOJIT_CENTRAL_LOCAL=$(CURDIR)/nanojit-central
|
|
|
|
CUR_REPO=$(srcdir)/../..
|
|
|
|
|
|
|
|
update-nanojit:
|
|
|
|
rm -Rf $(NANOJIT_CENTRAL_LOCAL) import-splicemap import-revmap
|
|
|
|
hg clone $(NANOJIT_CENTRAL_REPO) $(NANOJIT_CENTRAL_LOCAL)
|
|
|
|
python $(srcdir)/find-child.py \
|
|
|
|
--src=$(NANOJIT_CENTRAL_LOCAL) \
|
|
|
|
--dst=$(CUR_REPO) \
|
|
|
|
--start=$(NANOJIT_CENTRAL_REV) \
|
|
|
|
--filemap=$(srcdir)/nanojit-import-filemap \
|
|
|
|
>import-splicemap
|
|
|
|
hg convert --config convert.hg.saverev=True \
|
|
|
|
--config convert.hg.startrev=`cut -d ' ' -f 1 import-splicemap` \
|
|
|
|
--filemap=$(srcdir)/nanojit-import-filemap \
|
|
|
|
--splicemap=import-splicemap \
|
|
|
|
$(NANOJIT_CENTRAL_LOCAL) \
|
|
|
|
$(CUR_REPO) \
|
|
|
|
import-revmap
|
|
|
|
(cd $(srcdir) && hg up)
|
|
|
|
(cd $(NANOJIT_CENTRAL_LOCAL) && hg log -r tip --template "{node}\n") >$(srcdir)/nanojit-import-rev
|
|
|
|
(cd $(srcdir) && hg commit --message="Update nanojit-import-rev stamp." nanojit-import-rev)
|
|
|
|
|
2010-05-12 06:49:36 -07:00
|
|
|
.PHONY: update-nanojit
|
2010-03-08 15:21:38 -08:00
|
|
|
endif
|
2010-05-22 15:56:42 -07:00
|
|
|
|
|
|
|
###############################################
|
|
|
|
# BEGIN kludges for the Nitro assembler
|
|
|
|
#
|
2010-08-11 13:30:07 -07:00
|
|
|
|
2010-05-22 15:56:42 -07:00
|
|
|
# Needed to "configure" it correctly. Unfortunately these
|
|
|
|
# flags wind up being applied to all code in js/src, not just
|
|
|
|
# the code in js/src/assembler.
|
2010-08-16 15:18:10 -07:00
|
|
|
CXXFLAGS += -DUSE_SYSTEM_MALLOC=1 -DENABLE_ASSEMBLER=1 -DENABLE_JIT=1
|
2010-08-14 16:46:37 -07:00
|
|
|
|
|
|
|
INCLUDES += -I$(srcdir)/assembler -I$(srcdir)/yarr
|
2010-08-11 13:30:07 -07:00
|
|
|
|
2010-08-18 11:03:53 -07:00
|
|
|
ifdef ENABLE_METHODJIT
|
2010-05-22 15:56:42 -07:00
|
|
|
# Build a standalone test program that exercises the assembler
|
|
|
|
# sources a bit.
|
|
|
|
TESTMAIN_OBJS = \
|
|
|
|
Assertions.$(OBJ_SUFFIX) \
|
|
|
|
ExecutableAllocatorPosix.$(OBJ_SUFFIX) \
|
|
|
|
ExecutableAllocatorWin.$(OBJ_SUFFIX) \
|
|
|
|
ExecutableAllocator.$(OBJ_SUFFIX) \
|
|
|
|
ARMAssembler.$(OBJ_SUFFIX) \
|
|
|
|
MacroAssemblerARM.$(OBJ_SUFFIX) \
|
|
|
|
TestMain.$(OBJ_SUFFIX) \
|
|
|
|
jsutil.$(OBJ_SUFFIX) \
|
|
|
|
jslog2.$(OBJ_SUFFIX)
|
|
|
|
TestMain$(HOST_BIN_SUFFIX): $(TESTMAIN_OBJS)
|
|
|
|
$(CXX) -o TestMain$(HOST_BIN_SUFFIX) $(TESTMAIN_OBJS)
|
|
|
|
endif
|
2010-08-18 11:03:53 -07:00
|
|
|
|
2010-05-22 15:56:42 -07:00
|
|
|
#
|
|
|
|
# END kludges for the Nitro assembler
|
|
|
|
###############################################
|
2010-06-10 14:01:11 -07:00
|
|
|
|