/[jscoverage]/trunk/js/Makefile.in
ViewVC logotype

Contents of /trunk/js/Makefile.in

Parent Directory Parent Directory | Revision Log Revision Log


Revision 460 - (show annotations)
Sat Sep 26 23:15:22 2009 UTC (11 years ago) by siliconforks
File size: 17754 byte(s)
Upgrade to SpiderMonkey from Firefox 3.5.3.

1 # -*- Mode: makefile -*-
2 #
3 # ***** BEGIN LICENSE BLOCK *****
4 # Version: MPL 1.1/GPL 2.0/LGPL 2.1
5 #
6 # The contents of this file are subject to the Mozilla Public License Version
7 # 1.1 (the "License"); you may not use this file except in compliance with
8 # the License. You may obtain a copy of the License at
9 # http://www.mozilla.org/MPL/
10 #
11 # Software distributed under the License is distributed on an "AS IS" basis,
12 # WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
13 # for the specific language governing rights and limitations under the
14 # License.
15 #
16 # The Original Code is Mozilla Communicator client code, released
17 # March 31, 1998.
18 #
19 # The Initial Developer of the Original Code is
20 # Netscape Communications Corporation.
21 # Portions created by the Initial Developer are Copyright (C) 1998
22 # the Initial Developer. All Rights Reserved.
23 #
24 # Contributor(s):
25 #
26 # Alternatively, the contents of this file may be used under the terms of
27 # either of the GNU General Public License Version 2 or later (the "GPL"),
28 # or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
29 # in which case the provisions of the GPL or the LGPL are applicable instead
30 # of those above. If you wish to allow use of your version of this file only
31 # under the terms of either the GPL or the LGPL, and not to allow others to
32 # use your version of this file under the terms of the MPL, indicate your
33 # decision by deleting the provisions above and replace them with the notice
34 # and other provisions required by the GPL or the LGPL. If you do not delete
35 # the provisions above, a recipient may use your version of this file under
36 # the terms of any one of the MPL, the GPL or the LGPL.
37 #
38 # ***** END LICENSE BLOCK *****
39
40 DEPTH = .
41 topsrcdir = @top_srcdir@
42 srcdir = @srcdir@
43
44 DIRS = config
45
46 include $(DEPTH)/config/autoconf.mk
47
48 MODULE = js
49 LIBRARY_NAME = mozjs
50 GRE_MODULE = 1
51
52 PROGRAM = js$(BIN_SUFFIX)
53 # The shell uses some 'HIDDEN' symbols to produce statistics, so we
54 # link directly against the .o files, not against the JS shared
55 # library.
56 PROGOBJS = js.$(OBJ_SUFFIX) $(OBJS)
57 LIBS = $(NSPR_LIBS)
58
59 ifdef WINCE
60 EXTRA_LIBS += $(JEMALLOC_LIBS)
61 endif
62
63 ifdef GNU_CXX
64 ifdef INTEL_CXX
65 # icc gets special optimize flags
66 ifdef MOZ_PROFILE_GENERATE
67 MODULE_OPTIMIZE_FLAGS = -O0
68 else
69 MODULE_OPTIMIZE_FLAGS = -O2 -ip
70 #XXX: do we want different INTERP_OPTIMIZER flags here?
71 endif
72 else # not INTEL_CXX
73 MODULE_OPTIMIZE_FLAGS = -Os -fstrict-aliasing $(MOZ_OPTIMIZE_SIZE_TWEAK)
74 # Special optimization flags for jsinterp.c
75 INTERP_OPTIMIZER = -O3 -fstrict-aliasing
76 endif
77 else # not GNU_CXX
78 ifeq ($(OS_ARCH),SunOS)
79 MODULE_OPTIMIZE_FLAGS = -xO4
80 endif
81 ifeq ($(OS_ARCH),WINNT)
82 ifdef WINCE
83 # -GL is not supported on windows mobile while we are using the arm-wince-link command
84 MODULE_OPTIMIZE_FLAGS = -O2
85 else
86 MODULE_OPTIMIZE_FLAGS = -O2 -GL
87 endif
88 endif
89 endif
90
91
92 ifeq (,$(filter-out WINNT WINCE,$(OS_ARCH)))
93 LIBRARY_NAME = js$(MOZ_BITS)$(VERSION_NUMBER)
94 RESFILE = js$(MOZ_BITS)40.res
95 endif
96
97 # JavaScript must be built shared, even for static builds, as it is used by
98 # other modules which are always built shared. Failure to do so results in
99 # the js code getting copied into xpinstall and jsd as well as mozilla-bin,
100 # and then the static data cells used for locking no longer work.
101
102 ifndef JS_STATIC_BUILD
103 FORCE_SHARED_LIB = 1
104 endif
105
106 VPATH = $(srcdir)
107
108 CPPSRCS = \
109 jsapi.cpp \
110 jsarena.cpp \
111 jsarray.cpp \
112 jsatom.cpp \
113 jsbool.cpp \
114 jscntxt.cpp \
115 jsdate.cpp \
116 jsdbgapi.cpp \
117 jsdhash.cpp \
118 jsdtoa.cpp \
119 jsemit.cpp \
120 jsexn.cpp \
121 jsfun.cpp \
122 jsgc.cpp \
123 jshash.cpp \
124 jsinterp.cpp \
125 jsinvoke.cpp \
126 jsiter.cpp \
127 jslock.cpp \
128 jslog2.cpp \
129 jsmath.cpp \
130 jsnum.cpp \
131 jsobj.cpp \
132 json.cpp \
133 jsopcode.cpp \
134 jsparse.cpp \
135 jsprf.cpp \
136 jsregexp.cpp \
137 jsscan.cpp \
138 jsscope.cpp \
139 jsscript.cpp \
140 jsstr.cpp \
141 jsutil.cpp \
142 jsxdrapi.cpp \
143 jsxml.cpp \
144 prmjtime.cpp \
145 $(NULL)
146
147 ifdef HAVE_DTRACE
148 CSRCS += \
149 jsdtracef.c
150 endif
151
152 INSTALLED_HEADERS = \
153 js-config.h \
154 jsautocfg.h \
155 $(CURDIR)/jsautokw.h \
156 js.msg \
157 jsapi.h \
158 jsarray.h \
159 jsarena.h \
160 jsatom.h \
161 jsbit.h \
162 jsbool.h \
163 jsclist.h \
164 jscntxt.h \
165 jscompat.h \
166 jsdate.h \
167 jsdbgapi.h \
168 jsdhash.h \
169 jsdtoa.h \
170 jsemit.h \
171 jsfun.h \
172 jsgc.h \
173 jshash.h \
174 jsinterp.h \
175 jsiter.h \
176 jslock.h \
177 jslong.h \
178 jsmath.h \
179 jsnum.h \
180 jsobj.h \
181 json.h \
182 jsopcode.tbl \
183 jsopcode.h \
184 jsotypes.h \
185 jsparse.h \
186 jsprf.h \
187 jsproto.tbl \
188 jsprvtd.h \
189 jspubtd.h \
190 jsregexp.h \
191 jsscan.h \
192 jsscope.h \
193 jsscript.h \
194 jsstaticcheck.h \
195 jsstddef.h \
196 jsstdint.h \
197 jsstr.h \
198 jstracer.h \
199 jstypes.h \
200 jsutil.h \
201 jsversion.h \
202 jsxdrapi.h \
203 jsxml.h \
204 $(NULL)
205
206 ifdef ENABLE_JIT
207 VPATH += $(srcdir)/nanojit
208
209 INSTALLED_HEADERS += \
210 builtins.tbl \
211 jsbuiltins.h \
212 Assembler.h \
213 LIR.h \
214 avmplus.h \
215 Fragmento.h \
216 Native.h \
217 Native$(NANOJIT_ARCH).h \
218 RegAlloc.h \
219 nanojit.h \
220 TraceTreeDrawer.h \
221 $(NULL)
222
223 CPPSRCS += \
224 jstracer.cpp \
225 Assembler.cpp \
226 Fragmento.cpp \
227 LIR.cpp \
228 RegAlloc.cpp \
229 avmplus.cpp \
230 Native$(NANOJIT_ARCH).cpp \
231 jsbuiltins.cpp \
232 $(NULL)
233
234 ifdef WINCE
235 # don't need -c
236 AS_DASH_C_FLAG =
237 ASFILES += jswince.asm
238 endif
239
240 ifdef DEBUG
241 CPPSRCS += TraceTreeDrawer.cpp
242 endif
243
244 DEFINES += -DFEATURE_NANOJIT -DJS_TRACER
245 endif
246
247 ifdef HAVE_DTRACE
248 INSTALLED_HEADERS += \
249 jsdtracef.h \
250 $(CURDIR)/javascript-trace.h \
251 $(NULL)
252 endif
253
254 ifeq (,$(filter-out WINNT WINCE,$(OS_ARCH)))
255 INSTALLED_HEADERS += jscpucfg.h
256 endif
257
258 EXPORTS = $(INSTALLED_HEADERS)
259
260 JS_SAFE_ARENA = 1
261
262 DASH_R = -r
263
264 ifneq (,$(filter OS2 WINCE WINNT,$(OS_ARCH)))
265 SDK_LIBRARY = $(IMPORT_LIBRARY)
266 else
267 SDK_LIBRARY = $(SHARED_LIBRARY)
268 endif
269
270 include $(topsrcdir)/config/config.mk
271
272 EXTRA_DSO_LDOPTS += $(NSPR_LIBS)
273
274 ifdef MOZ_MEMORY
275 ifeq ($(OS_ARCH),SunOS)
276 EXTRA_DSO_LDOPTS += $(call EXPAND_LIBNAME_PATH,jemalloc,$(DIST)/lib)
277 endif
278 endif
279
280 # When using gcc the assembly is inlined in the C-file (see jslock.cpp)
281 ifeq ($(OS_ARCH),SunOS)
282 ifneq (86,$(findstring 86,$(OS_TEST)))
283 ifndef GNU_CC
284 ASFILES = lock_$(OS_ARCH).s
285 endif
286 endif
287 endif
288
289 ifndef BUILD_OPT
290 MOCHAFILE = 1
291 endif
292
293 ifndef NSBUILDROOT
294 JSJAVA_STUBHEADERS = \
295 -I$(topsrcdir)/sun-java/include/_gen \
296 -I$(topsrcdir)/sun-java/netscape/javascript/_jri \
297 -I$(topsrcdir)/sun-java/netscape/security/_jri
298 else
299 JSJAVA_STUBHEADERS = -I$(JRI_GEN_DIR) -I$(JDK_GEN_DIR)
300 endif
301
302 JSJAVA_CFLAGS = \
303 -I$(topsrcdir)/sun-java/md-include \
304 -I$(topsrcdir)/sun-java/include \
305 $(JSJAVA_STUBHEADERS)
306
307 # Define keyword generator before rules.mk, see bug 323979 comment 50
308
309 HOST_SIMPLE_PROGRAMS += host_jskwgen$(HOST_BIN_SUFFIX)
310 GARBAGE += jsautokw.h host_jskwgen$(HOST_BIN_SUFFIX)
311
312 HOST_SIMPLE_PROGRAMS += host_jsoplengen$(HOST_BIN_SUFFIX)
313 GARBAGE += jsautooplen.h host_jsoplengen$(HOST_BIN_SUFFIX)
314
315 USE_HOST_CXX = 1
316
317 ifdef HAVE_DTRACE
318 ifneq ($(OS_ARCH),Darwin)
319 DTRACE_PROBE_OBJ = $(LIBRARY_NAME)-dtrace.$(OBJ_SUFFIX)
320 endif
321 MOZILLA_DTRACE_SRC = $(srcdir)/javascript-trace.d
322 endif
323
324 include $(topsrcdir)/config/rules.mk
325
326 # nsinstall doesn't get built until we enter config/ in the exports phase,
327 # so we'll have to manually ensure it gets built here if we want to use
328 # $(EXPORTS)
329 ifneq (,$(CROSS_COMPILE)$(filter-out WINNT OS2,$(OS_ARCH)))
330 ifneq ($(OS_ARCH), WINCE)
331 $(EXPORTS) $(PUBLIC): config/nsinstall$(HOST_BIN_SUFFIX)
332
333 config/nsinstall$(HOST_BIN_SUFFIX): $(srcdir)/config/nsinstall.c $(srcdir)/config/pathsub.c
334 $(MAKE) -C config/ nsinstall$(HOST_BIN_SUFFIX)
335 endif
336 endif
337
338 ifdef MOZ_SYNC_BUILD_FILES
339 # Because the SpiderMonkey can be distributed and built independently
340 # of the Mozilla source tree, it contains its own copies of many of
341 # the files used by the top-level Mozilla build process, from the
342 # 'config' and 'build' subtrees.
343 #
344 # To make it simpler to keep the copies in sync, we follow the policy
345 # that the SpiderMonkey copies must always be exact copies of those in
346 # the containing Mozilla tree. If you've made a change in one, it
347 # belongs in the other as well. If the change isn't right for both
348 # places, then that's something to bring up with the other developers.
349 #
350 # Some files are reasonable to diverge; for example,
351 # js/config/autoconf.mk.in doesn't need most of the stuff in
352 # config/autoconf.mk.in.
353 check-sync-dirs = $(PYTHON) $(srcdir)/config/check-sync-dirs.py
354 check::
355 $(check-sync-dirs) $(srcdir)/config $(MOZ_SYNC_BUILD_FILES)/config
356 $(check-sync-dirs) $(srcdir)/build $(MOZ_SYNC_BUILD_FILES)/build
357 endif
358
359 # Temporarily disable - backout of bug 473989.
360 #ifdef ENABLE_JIT
361 #check::
362 # $(wildcard $(RUN_TEST_PROGRAM)) ./js$(BIN_SUFFIX) -j -e \
363 # "var gSrcdir='$(srcdir)'; var gSkipSlowTests=true; var gReportSummary=false;" \
364 # $(srcdir)/trace-test.js
365 #endif
366
367 # our build system doesn't handle subdir srcs very gracefully today
368 export::
369 mkdir -p nanojit
370
371 DEFINES += -DEXPORT_JS_API
372
373 INCLUDES += -I$(srcdir)
374
375 GARBAGE += jscpucfg.o jsautocfg.h jsautocfg.tmp jscpucfg
376
377 ifneq (,$(CROSS_COMPILE)$(filter-out WINNT,$(OS_ARCH)))
378 TARGETS += jscpucfg$(HOST_BIN_SUFFIX)
379 endif
380
381 ifdef JS_SAFE_ARENA
382 DEFINES += -DJS_USE_SAFE_ARENA
383 endif
384
385 ifdef JS_THREADSAFE
386 DEFINES += -DJS_THREADSAFE
387 endif
388
389 ifdef JS_NO_THIN_LOCKS
390 DEFINES += -DJS_USE_ONLY_NSPR_LOCKS
391 endif
392
393 ifdef JS_VERSION
394 DEFINES += -DJS_VERSION=$(JS_VERSION)
395 endif
396
397 ifneq ($(findstring -L,$(NSPR_LIBS)),)
398 NSPR_STATIC_PATH = $(subst -L,,$(findstring -L,$(NSPR_LIBS)))
399 else
400 NSPR_STATIC_PATH = $(DIST)/lib
401 endif
402
403 ifdef MOZ_SHARK
404 CFLAGS += -F/System/Library/PrivateFrameworks
405 CXXFLAGS += -F/System/Library/PrivateFrameworks
406 LDFLAGS += -F/System/Library/PrivateFrameworks -framework CHUD
407 endif
408
409 ifdef MOZ_VTUNE
410 CXXFLAGS += -IC:/Program\ Files/Intel/VTune/Analyzer/Include
411 EXTRA_DSO_LDOPTS += C:/Program\ Files/Intel/VTune/Analyzer/Lib/VtuneApi.lib
412 LIBS += C:/Program\ Files/Intel/VTune/Analyzer/Lib/VtuneApi.lib
413 endif
414
415 # BeOS and HP-UX do not require the extra linking of "-lm"
416 ifeq (,$(filter BeOS HP-UX WINNT WINCE OpenVMS,$(OS_ARCH)))
417 EXTRA_LIBS += -lm
418 endif
419
420 # Prevent floating point errors caused by VC++ optimizations
421 ifeq ($(OS_ARCH)_$(GNU_CC),WINNT_)
422 ifeq (,$(filter-out 1200 1300 1310,$(_MSC_VER)))
423 CFLAGS += -Op
424 else
425 CFLAGS += -fp:precise
426 endif
427 endif # WINNT
428
429 ifeq ($(OS_ARCH),FreeBSD)
430 EXTRA_LIBS += -pthread
431 endif
432 ifeq ($(OS_ARCH),IRIX)
433 ifdef USE_N32
434 DASH_R += -n32
435 endif
436 endif
437 ifeq ($(OS_ARCH),Linux)
438 EXTRA_LIBS += -ldl
439 endif
440 ifeq ($(OS_ARCH),OSF1)
441 EXTRA_LIBS += -lc_r
442 endif
443 ifeq ($(OS_ARCH),SunOS)
444 ifeq ($(TARGET_CPU),sparc)
445
446 ifdef JS_ULTRASPARC_OPTS
447 DEFINES += -DULTRA_SPARC
448 ifdef GNU_CC
449 CFLAGS += -Wa,-xarch=v8plus,-DULTRA_SPARC,-P,-L,-D_ASM,-D__STDC__=0
450 CXXFLAGS += -Wa,-xarch=v8plus,-DULTRA_SPARC,-P,-L,-D_ASM,-D__STDC__=0,-K,PIC
451 else
452 ASFLAGS += -xarch=v8plus -DULTRA_SPARC -P -L -D_ASM -D__STDC__=0 -K PIC
453 endif # GNU_CC
454 endif # JS_ULTRASPARC_OPTS
455
456 endif
457 ifeq ($(OS_RELEASE),4.1)
458 EXTRA_LIBS += -ldl -lnsl
459 else
460 EXTRA_LIBS += -lposix4 -ldl -lnsl -lsocket
461 endif
462 endif
463
464 ifdef MOZ_MEMORY
465 ifeq ($(OS_ARCH),Darwin)
466 LDFLAGS += -ljemalloc
467 endif
468 endif
469
470 # Sun Studio x86 has an optimization bug with LIR.cpp, use -xO2 instead.
471 ifeq ($(OS_ARCH),SunOS)
472 ifeq (86,$(findstring 86,$(OS_TEST)))
473 ifndef GNU_CC
474 LIR.o: LIR.cpp Makefile.in
475 $(REPORT_BUILD)
476 @$(MAKE_DEPS_AUTO_CXX)
477 $(CXX) -o $@ -c $(patsubst -xO%,-xO2,$(COMPILE_CFLAGS)) $<
478 endif
479 endif
480 endif
481
482 # Allow building jsinterp.c with special optimization flags
483 ifdef INTERP_OPTIMIZER
484 jsinterp.$(OBJ_SUFFIX): MODULE_OPTIMIZE_FLAGS=$(INTERP_OPTIMIZER)
485 endif
486
487 ifeq ($(OS_ARCH),IRIX)
488 ifndef GNU_CC
489 _COMPILE_CFLAGS = $(patsubst -O%,-O1,$(COMPILE_CFLAGS))
490 jsapi.o jsxdrapi.o jsarena.o jsarray.o jsatom.o jsemit.o jsfun.o jsinterp.o jsregexp.o jsparse.o jsopcode.o jsscript.o: %.o: %.cpp Makefile.in
491 $(REPORT_BUILD)
492 @$(MAKE_DEPS_AUTO_CXX)
493 $(CXX) -o $@ -c $(_COMPILE_CFLAGS) $<
494 endif
495 endif
496
497 # An AIX Optimization bug causes PR_dtoa() & JS_dtoa to produce wrong result.
498 # This suppresses optimization for this single compilation unit.
499 ifeq ($(OS_ARCH),AIX)
500 jsatom.o: jsatom.cpp Makefile.in
501 $(REPORT_BUILD)
502 @$(MAKE_DEPS_AUTO_CXX)
503 $(CXX) -o $@ -c $(filter-out $(MOZ_OPTIMIZE_FLAGS), $(COMPILE_CFLAGS)) $<
504 jsdtoa.o: jsdtoa.cpp Makefile.in
505 $(REPORT_BUILD)
506 @$(MAKE_DEPS_AUTO_CXX)
507 $(CXX) -o $@ -c $(filter-out $(MOZ_OPTIMIZE_FLAGS), $(COMPILE_CFLAGS)) $<
508 endif
509
510 jsopcode.h jsopcode.cpp: jsopcode.tbl
511
512 export:: jsautocfg.h
513
514 ifeq (,$(CROSS_COMPILE)$(filter-out WINNT,$(OS_ARCH)))
515 jsautocfg.h:
516 touch $@
517 else
518 ifeq ($(OS_ARCH),WINCE)
519 jsautocfg.h:
520 touch $@
521 else
522 jsautocfg.h: jscpucfg$(HOST_BIN_SUFFIX)
523 @rm -f $@ jsautocfg.tmp
524 ./jscpucfg > jsautocfg.tmp
525 mv jsautocfg.tmp $@
526 endif
527 endif
528
529 # jscpucfg is a strange target
530 # Needs to be built with the host compiler but needs to include
531 # the mdcpucfg for the target so it needs the appropriate target defines
532 ifdef HOST_NSPR_MDCPUCFG
533 HOST_CXX := $(HOST_CXX) -DMDCPUCFG=$(TARGET_NSPR_MDCPUCFG)
534 HOST_CXXFLAGS := $(patsubst -DXP_%,,$(HOST_CXXFLAGS))
535 endif
536
537 ifdef CROSS_COMPILE
538 # jscpucfg needs to know when it's supposed to produce a config for the target
539 JSCPUCFG_DEFINES = $(ACDEFINES)
540 endif
541
542 ifeq ($(OS_ARCH),QNX)
543 ifneq ($(OS_TARGET),NTO)
544 # QNX's compiler apparently can't build a binary directly from a source file.
545 jscpucfg.o: jscpucfg.cpp Makefile.in
546 $(HOST_CXX) $(HOST_CXXFLAGS) -c $(JSCPUCFG_DEFINES) $(DEFINES) $(NSPR_CFLAGS) -o $@ $<
547
548 jscpucfg: jscpucfg.o
549 $(HOST_CXX) $(HOST_CXXFLAGS) $(JSCPUCFG_DEFINES) $(DEFINES) -o $@ $<
550 endif
551 else
552 ifeq ($(OS_ARCH),WINCE)
553 jscpucfg$(HOST_BIN_SUFFIX):
554 echo no need to build jscpucfg $<
555 else
556 jscpucfg$(HOST_BIN_SUFFIX): jscpucfg.cpp Makefile.in
557 $(HOST_CXX) $(HOST_CXXFLAGS) $(JSCPUCFG_DEFINES) $(DEFINES) $(NSPR_CFLAGS) $(HOST_OUTOPTION)$@ $<
558 endif
559 endif
560
561 # Compute the linker flags that programs linking against SpiderMonkey should
562 # pass to get SpiderMonkey and its dependencies, beyond just the -L and -l
563 # for the SpiderMonkey library itself.
564 # - EXTRA_DSO_LDOPTS includes the NSPR -L and -l flags.
565 # - OS_LIBS includes libraries selected by the configure script.
566 # - EXTRA_LIBS includes libraries selected by this Makefile.
567 JS_CONFIG_LIBS=$(EXTRA_DSO_LDOPTS) $(OS_LIBS) $(EXTRA_LIBS)
568
569 # The configure script invokes this rule explicitly at configure time!
570 # It's important that js-config be ready by the time we're done
571 # configuring, because we may be running other configure scripts that
572 # would like to run js-config themselves, before js is built.
573 #
574 # This file and rules.mk go through a certain amount of work to decide
575 # which libraries to build, what to name them, and what flags to pass
576 # when linking them (and thus what flags its own clients must pass).
577 # All this information needs to go into the js-config script. To
578 # avoid trying to re-compute all that in the configure script, we just
579 # have the configure script generate this Makefile, and then invoke
580 # this rule.
581 at=@
582 js-config: js-config.in Makefile $(DEPTH)/config/autoconf.mk $(topsrcdir)/config/config.mk $(topsrcdir)/config/rules.mk
583 rm -f js-config.tmp
584 sed < $< > js-config.tmp \
585 -e 's|$(at)prefix$(at)|$(prefix)|' \
586 -e 's|$(at)exec_prefix$(at)|$(exec_prefix)|' \
587 -e 's|$(at)includedir$(at)|$(includedir)|' \
588 -e 's|$(at)libdir$(at)|$(libdir)|' \
589 -e 's|$(at)MOZILLA_VERSION$(at)|$(MOZILLA_VERSION)|' \
590 -e 's|$(at)LIBRARY_NAME$(at)|$(LIBRARY_NAME)|' \
591 -e 's|$(at)NSPR_CFLAGS$(at)|$(NSPR_CFLAGS)|' \
592 -e 's|$(at)JS_CONFIG_LIBS$(at)|$(JS_CONFIG_LIBS)|' \
593 -e 's|$(at)MOZ_JS_LIBS$(at)|$(MOZ_JS_LIBS)|' \
594 && mv js-config.tmp $@ && chmod +x $@
595
596 SCRIPTS = js-config
597 SDK_BINARY = js-config
598
599 install:: $(INSTALLED_HEADERS)
600 $(SYSINSTALL) $(IFLAGS1) $^ $(includedir)/$(MODULE)
601
602 install:: $(SCRIPTS)
603 $(SYSINSTALL) $(IFLAGS2) $^ $(bindir)
604
605 install:: $(LIBRARY) $(SHARED_LIBRARY) $(IMPORT_LIBRARY)
606 ifneq (,$(LIBRARY))
607 $(SYSINSTALL) $(IFLAGS1) $(LIBRARY) $(libdir)
608 endif
609 ifneq (,$(SHARED_LIBRARY))
610 $(SYSINSTALL) $(IFLAGS2) $(SHARED_LIBRARY) $(libdir)
611 endif
612 ifneq (,$(IMPORT_LIBRARY))
613 $(SYSINSTALL) $(IFLAGS2) $(IMPORT_LIBRARY) $(libdir)
614 endif
615
616 # Extra dependancies and rules for auto-generated headers
617 host_jskwgen.$(OBJ_SUFFIX): jsversion.h jskeyword.tbl
618
619 # Use CURDIR to avoid finding a jsautokw.h in the source tree (from a
620 # previous build?) via VPATH when we're building in a separate tree.
621 $(CURDIR)/jsautokw.h: host_jskwgen$(HOST_BIN_SUFFIX)
622 ./host_jskwgen$(HOST_BIN_SUFFIX) $@
623
624 host_jsoplengen.$(OBJ_SUFFIX): jsopcode.tbl
625
626 # Use CURDIR to avoid finding a jsautooplen.h in the source tree (from
627 # a previous build?) via VPATH when we're building in a separate tree.
628 $(CURDIR)/jsautooplen.h: host_jsoplengen$(HOST_BIN_SUFFIX)
629 ./host_jsoplengen$(HOST_BIN_SUFFIX) $@
630
631 # Force auto-header generation before compiling any source that may use them
632 $(CPPSRCS:%.cpp=%.$(OBJ_SUFFIX)): $(CURDIR)/jsautokw.h $(CURDIR)/jsautooplen.h
633
634 ifdef HAVE_DTRACE
635 $(CURDIR)/javascript-trace.h: $(srcdir)/javascript-trace.d
636 dtrace -h -s $(srcdir)/javascript-trace.d -o javascript-trace.h.in
637 sed 's/if _DTRACE_VERSION/ifdef INCLUDE_MOZILLA_DTRACE/' \
638 javascript-trace.h.in > javascript-trace.h
639
640 $(CPPSRCS:%.cpp=%.$(OBJ_SUFFIX)): $(CURDIR)/javascript-trace.h
641 endif
642
643 ifdef GNU_CC
644 imacro_asm.js: imacro_asm.js.in jsopcode.tbl
645 $(CC) -c -x c -E -P -I$(srcdir) $< > $@
646
647 GARBAGE += imacros.c.out imacro_asm.js
648
649 ifndef CROSS_COMPILE
650 # Obsolete comment: if you replace update-imacros with libs, this would apply
651 # but then parallel gmake would sometimes try to run $(DIST)/bin/js before it
652 # had been built and installed. Want a fix for this, de-automating for now.
653
654 # Build imacros.c.out after descending into DIRS and building the js shell.
655 # This may result in an updated imacros.c.out file that requires a re-build
656 # to stabilize.
657 update-imacros:: imacros.c.out
658 @cmp -s imacros.c.out $(srcdir)/$< || cp imacros.c.out $(srcdir)
659
660 %.c.out: %.jsasm imacro_asm.js
661 $(DIST)/bin/js imacro_asm.js $< > $@
662 endif
663 endif

  ViewVC Help
Powered by ViewVC 1.1.24