Commit Graph

5 Commits

Author SHA1 Message Date
Ted Mielczarek
cb9e3ef789 bug 471188 - stop calling 'make install' for spidermonkey. r=bsmedberg,jimb 2009-01-08 13:51:27 -05:00
Jim Blandy
dba865e0ba Bug 463339: Have js/src use symlinks when installing in dist. r=bsmedberg
A directory's 'libs' target should create symlinks in the top-level
dist/bin and dist/lib directories to the libraries (and any other
generated files) in the build tree, so that when one has changed
sources in $src/js/src, simply running 'make' in $obj/js/src and then
re-running $obj/dist/bin/firefox will pick up the new libraries.

The js/src/Makefile.in 'install' target has many double-colon rules
with commands; we'd like to use these all in two circumstances:

. For 'make install' in a stand-alone js/src build.  Since we're
  following GNU behavior, this should copy the files it's installing.

. For 'make libs' in an in-tree js/src build.  To interact properly
  with the rest of the Mozilla build system, this should create
  symlinks as explained above.

To accomplish this, we use plain old $(INSTALL) in all the install
targets, have js/src/Makefile.in set NSDISTMODE to copy (to get the
GNU behavior), and then have config/js/Makefile.in override that (to
get the Mozilla in-tree behavior).
2008-12-08 09:35:58 -08:00
Robert O'Callahan
80c680c75d Backing out bug 463339 due to Mac build failure 2008-11-19 14:52:16 +13:00
Jim Blandy
937b00cab6 Bug 463339. Have js/src use symlinks when installing in dist. r=bsmedberg,a=sayrer 2008-11-19 14:14:04 +13:00
Jim Blandy
3ba206cdb7 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