-
Notifications
You must be signed in to change notification settings - Fork 54
/
Copy pathmoz.build
102 lines (83 loc) · 2.68 KB
/
moz.build
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# vim: set filetype=python:
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
CONFIGURE_SUBST_FILES += [
'js-config',
'js.pc',
]
LIBRARY_DEFINES['EXPORT_JS_API'] = True
if not CONFIG['JS_STANDALONE']:
LIBRARY_DEFINES['MOZ_HAS_MOZGLUE'] = True
# 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.
#
# In fact, we now build both a static and a shared library, as the
# JS shell would like to link to the static library.
if CONFIG['JS_SHARED_LIBRARY']:
GeckoSharedLibrary('js', linkage=None)
SHARED_LIBRARY_NAME = CONFIG['JS_LIBRARY_NAME']
# Ensure symbol versions of shared library on Linux do not conflict
# with those in libxul.
if CONFIG['OS_TARGET'] == 'Linux':
GENERATED_FILES += ['symverscript']
GENERATED_FILES['symverscript'].script = '/build/gen_symverscript.py'
GENERATED_FILES['symverscript'].inputs = ['symverscript.in']
GENERATED_FILES['symverscript'].flags = [
CONFIG['JS_LIBRARY_NAME'].replace('-', '_'),
]
SYMBOLS_FILE = '!symverscript'
else:
Library('js')
FORCE_STATIC_LIB = True
STATIC_LIBRARY_NAME = 'js_static'
if CONFIG['ENABLE_INTL_API']:
USE_LIBS += [
'icu',
]
if CONFIG['ENABLE_BIGINT']:
OS_LIBS += [
'gmp',
]
USE_LIBS += [
'nspr',
'zlib',
]
if CONFIG['OS_ARCH'] not in ('WINNT', 'HP-UX'):
OS_LIBS += [
'm',
]
if CONFIG['OS_ARCH'] == 'FreeBSD':
OS_LIBS += [
'-pthread',
]
if CONFIG['OS_ARCH'] == 'Linux':
OS_LIBS += [
'dl',
]
if CONFIG['OS_ARCH'] == 'SunOS':
OS_LIBS += [
'posix4',
'dl',
'nsl',
'socket',
]
if CONFIG['MOZ_NEEDS_LIBATOMIC']:
OS_LIBS += ['atomic']
OS_LIBS += CONFIG['REALTIME_LIBS']
NO_EXPAND_LIBS = True
DIST_INSTALL = True
# Run SpiderMonkey style checker after linking the static library. This avoids
# running the script for no-op builds.
GENERATED_FILES += ['spidermonkey_checks']
run_checks = GENERATED_FILES['spidermonkey_checks']
run_checks.script = '/config/run_spidermonkey_checks.py'
run_checks.inputs += [
'!%sjs_static.%s' % (CONFIG['LIB_PREFIX'], CONFIG['LIB_SUFFIX']),
'/config/check_spidermonkey_style.py',
'/config/check_macroassembler_style.py',
'/config/check_js_opcode.py'
]