Sat, 03 Jan 2015 20:18:00 +0100
Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.
michael@0 | 1 | # -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*- |
michael@0 | 2 | # vim: set filetype=python: |
michael@0 | 3 | # This Source Code Form is subject to the terms of the Mozilla Public |
michael@0 | 4 | # License, v. 2.0. If a copy of the MPL was not distributed with this |
michael@0 | 5 | # file, You can obtain one at http://mozilla.org/MPL/2.0/. |
michael@0 | 6 | |
michael@0 | 7 | if CONFIG['DEHYDRA_PATH']: |
michael@0 | 8 | DIRS += ['analysis-tests'] |
michael@0 | 9 | |
michael@0 | 10 | if CONFIG['JS_NATIVE_EDITLINE']: |
michael@0 | 11 | DIRS += ['editline'] |
michael@0 | 12 | |
michael@0 | 13 | # editline needs to get built before the shell |
michael@0 | 14 | if not CONFIG['JS_DISABLE_SHELL']: |
michael@0 | 15 | DIRS += ['shell'] |
michael@0 | 16 | |
michael@0 | 17 | TEST_DIRS += ['jsapi-tests', 'tests', 'gdb'] |
michael@0 | 18 | |
michael@0 | 19 | LOCAL_INCLUDES += ['../../mfbt/double-conversion'] |
michael@0 | 20 | |
michael@0 | 21 | LIBRARY_NAME = CONFIG['JS_LIBRARY_NAME'] |
michael@0 | 22 | |
michael@0 | 23 | CONFIGURE_SUBST_FILES += [ |
michael@0 | 24 | 'devtools/rootAnalysis/Makefile', |
michael@0 | 25 | 'js-confdefs.h', |
michael@0 | 26 | 'js-config', |
michael@0 | 27 | 'js.pc', |
michael@0 | 28 | ] |
michael@0 | 29 | |
michael@0 | 30 | if CONFIG['JS_STANDALONE']: |
michael@0 | 31 | DEFINES['IMPL_MFBT'] = True |
michael@0 | 32 | else: |
michael@0 | 33 | CONFIGURE_SUBST_FILES += [ |
michael@0 | 34 | '../../config/autoconf-js.mk', |
michael@0 | 35 | '../../config/emptyvars-js.mk', |
michael@0 | 36 | ] |
michael@0 | 37 | |
michael@0 | 38 | CONFIGURE_DEFINE_FILES += [ |
michael@0 | 39 | 'js-config.h', |
michael@0 | 40 | ] |
michael@0 | 41 | |
michael@0 | 42 | # Changes to internal header files, used externally, massively slow down |
michael@0 | 43 | # browser builds. Don't add new files here unless you know what you're |
michael@0 | 44 | # doing! |
michael@0 | 45 | EXPORTS += [ |
michael@0 | 46 | 'js.msg', |
michael@0 | 47 | 'jsalloc.h', |
michael@0 | 48 | 'jsapi.h', |
michael@0 | 49 | 'jsbytecode.h', |
michael@0 | 50 | 'jsclist.h', |
michael@0 | 51 | 'jscpucfg.h', |
michael@0 | 52 | 'jsfriendapi.h', |
michael@0 | 53 | 'jsprf.h', |
michael@0 | 54 | 'jsprototypes.h', |
michael@0 | 55 | 'jsproxy.h', |
michael@0 | 56 | 'jspubtd.h', |
michael@0 | 57 | 'jstypes.h', |
michael@0 | 58 | 'jsversion.h', |
michael@0 | 59 | 'jswrapper.h', |
michael@0 | 60 | 'perf/jsperf.h', |
michael@0 | 61 | ] |
michael@0 | 62 | |
michael@0 | 63 | # If you add a header here, add it to js/src/jsapi-tests/testIntTypesABI.cpp so |
michael@0 | 64 | # that we ensure we don't over-expose our internal integer typedefs. Note that |
michael@0 | 65 | # LegacyIntTypes.h below is deliberately exempted from this requirement. |
michael@0 | 66 | EXPORTS.js += [ |
michael@0 | 67 | '../public/Anchor.h', |
michael@0 | 68 | '../public/CallArgs.h', |
michael@0 | 69 | '../public/CallNonGenericMethod.h', |
michael@0 | 70 | '../public/CharacterEncoding.h', |
michael@0 | 71 | '../public/Class.h', |
michael@0 | 72 | '../public/Date.h', |
michael@0 | 73 | '../public/GCAPI.h', |
michael@0 | 74 | '../public/HashTable.h', |
michael@0 | 75 | '../public/HeapAPI.h', |
michael@0 | 76 | '../public/Id.h', |
michael@0 | 77 | '../public/LegacyIntTypes.h', |
michael@0 | 78 | '../public/MemoryMetrics.h', |
michael@0 | 79 | '../public/OldDebugAPI.h', |
michael@0 | 80 | '../public/Principals.h', |
michael@0 | 81 | '../public/ProfilingStack.h', |
michael@0 | 82 | '../public/PropertyKey.h', |
michael@0 | 83 | '../public/RequiredDefines.h', |
michael@0 | 84 | '../public/RootingAPI.h', |
michael@0 | 85 | '../public/SliceBudget.h', |
michael@0 | 86 | '../public/StructuredClone.h', |
michael@0 | 87 | '../public/TracingAPI.h', |
michael@0 | 88 | '../public/TypeDecls.h', |
michael@0 | 89 | '../public/Utility.h', |
michael@0 | 90 | '../public/Value.h', |
michael@0 | 91 | '../public/Vector.h', |
michael@0 | 92 | '../public/WeakMapPtr.h', |
michael@0 | 93 | ] |
michael@0 | 94 | |
michael@0 | 95 | UNIFIED_SOURCES += [ |
michael@0 | 96 | 'assembler/jit/ExecutableAllocator.cpp', |
michael@0 | 97 | 'builtin/Eval.cpp', |
michael@0 | 98 | 'builtin/Intl.cpp', |
michael@0 | 99 | 'builtin/MapObject.cpp', |
michael@0 | 100 | 'builtin/Object.cpp', |
michael@0 | 101 | 'builtin/Profilers.cpp', |
michael@0 | 102 | 'builtin/SIMD.cpp', |
michael@0 | 103 | 'builtin/TestingFunctions.cpp', |
michael@0 | 104 | 'builtin/TypedObject.cpp', |
michael@0 | 105 | 'devtools/sharkctl.cpp', |
michael@0 | 106 | 'ds/LifoAlloc.cpp', |
michael@0 | 107 | 'frontend/BytecodeCompiler.cpp', |
michael@0 | 108 | 'frontend/BytecodeEmitter.cpp', |
michael@0 | 109 | 'frontend/FoldConstants.cpp', |
michael@0 | 110 | 'frontend/NameFunctions.cpp', |
michael@0 | 111 | 'frontend/ParseMaps.cpp', |
michael@0 | 112 | 'frontend/ParseNode.cpp', |
michael@0 | 113 | 'frontend/TokenStream.cpp', |
michael@0 | 114 | 'gc/Barrier.cpp', |
michael@0 | 115 | 'gc/Iteration.cpp', |
michael@0 | 116 | 'gc/Marking.cpp', |
michael@0 | 117 | 'gc/Memory.cpp', |
michael@0 | 118 | 'gc/Nursery.cpp', |
michael@0 | 119 | 'gc/RootMarking.cpp', |
michael@0 | 120 | 'gc/Statistics.cpp', |
michael@0 | 121 | 'gc/StoreBuffer.cpp', |
michael@0 | 122 | 'gc/Tracer.cpp', |
michael@0 | 123 | 'gc/Verifier.cpp', |
michael@0 | 124 | 'gc/Zone.cpp', |
michael@0 | 125 | 'jsalloc.cpp', |
michael@0 | 126 | 'jsanalyze.cpp', |
michael@0 | 127 | 'jsapi.cpp', |
michael@0 | 128 | 'jsbool.cpp', |
michael@0 | 129 | 'jscntxt.cpp', |
michael@0 | 130 | 'jscompartment.cpp', |
michael@0 | 131 | 'jscrashreport.cpp', |
michael@0 | 132 | 'jsdate.cpp', |
michael@0 | 133 | 'jsdtoa.cpp', |
michael@0 | 134 | 'jsexn.cpp', |
michael@0 | 135 | 'jsfriendapi.cpp', |
michael@0 | 136 | 'jsfun.cpp', |
michael@0 | 137 | 'jsgc.cpp', |
michael@0 | 138 | 'jsinfer.cpp', |
michael@0 | 139 | 'jsiter.cpp', |
michael@0 | 140 | 'jsnativestack.cpp', |
michael@0 | 141 | 'jsnum.cpp', |
michael@0 | 142 | 'jsobj.cpp', |
michael@0 | 143 | 'json.cpp', |
michael@0 | 144 | 'jsonparser.cpp', |
michael@0 | 145 | 'jsopcode.cpp', |
michael@0 | 146 | 'jsprf.cpp', |
michael@0 | 147 | 'jspropertytree.cpp', |
michael@0 | 148 | 'jsproxy.cpp', |
michael@0 | 149 | 'jsreflect.cpp', |
michael@0 | 150 | 'jsscript.cpp', |
michael@0 | 151 | 'jsstr.cpp', |
michael@0 | 152 | 'jswatchpoint.cpp', |
michael@0 | 153 | 'jsweakmap.cpp', |
michael@0 | 154 | 'jsworkers.cpp', |
michael@0 | 155 | 'jswrapper.cpp', |
michael@0 | 156 | 'perf/jsperf.cpp', |
michael@0 | 157 | 'prmjtime.cpp', |
michael@0 | 158 | 'vm/ArgumentsObject.cpp', |
michael@0 | 159 | 'vm/ArrayBufferObject.cpp', |
michael@0 | 160 | 'vm/CallNonGenericMethod.cpp', |
michael@0 | 161 | 'vm/CharacterEncoding.cpp', |
michael@0 | 162 | 'vm/Compression.cpp', |
michael@0 | 163 | 'vm/DateTime.cpp', |
michael@0 | 164 | 'vm/Debugger.cpp', |
michael@0 | 165 | 'vm/DebuggerMemory.cpp', |
michael@0 | 166 | 'vm/ErrorObject.cpp', |
michael@0 | 167 | 'vm/ForkJoin.cpp', |
michael@0 | 168 | 'vm/GlobalObject.cpp', |
michael@0 | 169 | 'vm/Id.cpp', |
michael@0 | 170 | 'vm/Interpreter.cpp', |
michael@0 | 171 | 'vm/MemoryMetrics.cpp', |
michael@0 | 172 | 'vm/Monitor.cpp', |
michael@0 | 173 | 'vm/ObjectImpl.cpp', |
michael@0 | 174 | 'vm/OldDebugAPI.cpp', |
michael@0 | 175 | 'vm/PIC.cpp', |
michael@0 | 176 | 'vm/Probes.cpp', |
michael@0 | 177 | 'vm/PropertyKey.cpp', |
michael@0 | 178 | 'vm/ProxyObject.cpp', |
michael@0 | 179 | 'vm/RegExpObject.cpp', |
michael@0 | 180 | 'vm/RegExpStatics.cpp', |
michael@0 | 181 | 'vm/Runtime.cpp', |
michael@0 | 182 | 'vm/SavedStacks.cpp', |
michael@0 | 183 | 'vm/ScopeObject.cpp', |
michael@0 | 184 | 'vm/SelfHosting.cpp', |
michael@0 | 185 | 'vm/Shape.cpp', |
michael@0 | 186 | 'vm/SharedArrayObject.cpp', |
michael@0 | 187 | 'vm/SPSProfiler.cpp', |
michael@0 | 188 | 'vm/Stack.cpp', |
michael@0 | 189 | 'vm/String.cpp', |
michael@0 | 190 | 'vm/StringBuffer.cpp', |
michael@0 | 191 | 'vm/StructuredClone.cpp', |
michael@0 | 192 | 'vm/ThreadPool.cpp', |
michael@0 | 193 | 'vm/TypedArrayObject.cpp', |
michael@0 | 194 | 'vm/Unicode.cpp', |
michael@0 | 195 | 'vm/Value.cpp', |
michael@0 | 196 | 'vm/WeakMapPtr.cpp', |
michael@0 | 197 | 'vm/Xdr.cpp', |
michael@0 | 198 | 'yarr/PageBlock.cpp', |
michael@0 | 199 | 'yarr/YarrCanonicalizeUCS2.cpp', |
michael@0 | 200 | 'yarr/YarrInterpreter.cpp', |
michael@0 | 201 | 'yarr/YarrPattern.cpp', |
michael@0 | 202 | 'yarr/YarrSyntaxChecker.cpp', |
michael@0 | 203 | ] |
michael@0 | 204 | |
michael@0 | 205 | # jsarray.cpp and jsatom.cpp cannot be built in unified mode because |
michael@0 | 206 | # xpcshell is broken during packaging when compiled with gcc-4.8.2 |
michael@0 | 207 | # builtin/RegExp.cpp cannot be built in unified mode because it is built |
michael@0 | 208 | # without PGO |
michael@0 | 209 | # frontend/Parser.cpp cannot be built in unified mode because of explicit |
michael@0 | 210 | # template instantiations. |
michael@0 | 211 | # jsmath.cpp cannot be built in unified mode because it needs to pull rand_s |
michael@0 | 212 | # from <stdlib.h> on Windows through a preprocessor define. |
michael@0 | 213 | # jsutil.cpp cannot be built in unified mode because it is needed for |
michael@0 | 214 | # check-vanilla-allocations. |
michael@0 | 215 | SOURCES += [ |
michael@0 | 216 | 'builtin/RegExp.cpp', |
michael@0 | 217 | 'frontend/Parser.cpp', |
michael@0 | 218 | 'jsarray.cpp', |
michael@0 | 219 | 'jsatom.cpp', |
michael@0 | 220 | 'jsmath.cpp', |
michael@0 | 221 | 'jsutil.cpp', |
michael@0 | 222 | ] |
michael@0 | 223 | |
michael@0 | 224 | if CONFIG['JS_POSIX_NSPR']: |
michael@0 | 225 | UNIFIED_SOURCES += [ |
michael@0 | 226 | 'vm/PosixNSPR.cpp', |
michael@0 | 227 | ] |
michael@0 | 228 | |
michael@0 | 229 | if CONFIG['MOZ_INSTRUMENTS']: |
michael@0 | 230 | SOURCES += [ |
michael@0 | 231 | 'devtools/Instruments.cpp', |
michael@0 | 232 | ] |
michael@0 | 233 | |
michael@0 | 234 | if CONFIG['ENABLE_TRACE_LOGGING']: |
michael@0 | 235 | SOURCES += [ |
michael@0 | 236 | 'vm/TraceLogging.cpp', |
michael@0 | 237 | ] |
michael@0 | 238 | |
michael@0 | 239 | if CONFIG['ENABLE_ION']: |
michael@0 | 240 | UNIFIED_SOURCES += [ |
michael@0 | 241 | 'jit/AliasAnalysis.cpp', |
michael@0 | 242 | 'jit/AsmJS.cpp', |
michael@0 | 243 | 'jit/AsmJSLink.cpp', |
michael@0 | 244 | 'jit/AsmJSModule.cpp', |
michael@0 | 245 | 'jit/AsmJSSignalHandlers.cpp', |
michael@0 | 246 | 'jit/BacktrackingAllocator.cpp', |
michael@0 | 247 | 'jit/Bailouts.cpp', |
michael@0 | 248 | 'jit/BaselineBailouts.cpp', |
michael@0 | 249 | 'jit/BaselineCompiler.cpp', |
michael@0 | 250 | 'jit/BaselineDebugModeOSR.cpp', |
michael@0 | 251 | 'jit/BaselineFrame.cpp', |
michael@0 | 252 | 'jit/BaselineFrameInfo.cpp', |
michael@0 | 253 | 'jit/BaselineIC.cpp', |
michael@0 | 254 | 'jit/BaselineInspector.cpp', |
michael@0 | 255 | 'jit/BaselineJIT.cpp', |
michael@0 | 256 | 'jit/BitSet.cpp', |
michael@0 | 257 | 'jit/BytecodeAnalysis.cpp', |
michael@0 | 258 | 'jit/C1Spewer.cpp', |
michael@0 | 259 | 'jit/CodeGenerator.cpp', |
michael@0 | 260 | 'jit/CompileWrappers.cpp', |
michael@0 | 261 | 'jit/EdgeCaseAnalysis.cpp', |
michael@0 | 262 | 'jit/EffectiveAddressAnalysis.cpp', |
michael@0 | 263 | 'jit/Ion.cpp', |
michael@0 | 264 | 'jit/IonAnalysis.cpp', |
michael@0 | 265 | 'jit/IonBuilder.cpp', |
michael@0 | 266 | 'jit/IonCaches.cpp', |
michael@0 | 267 | 'jit/IonFrames.cpp', |
michael@0 | 268 | 'jit/IonMacroAssembler.cpp', |
michael@0 | 269 | 'jit/IonOptimizationLevels.cpp', |
michael@0 | 270 | 'jit/IonSpewer.cpp', |
michael@0 | 271 | 'jit/JitOptions.cpp', |
michael@0 | 272 | 'jit/JSONSpewer.cpp', |
michael@0 | 273 | 'jit/LICM.cpp', |
michael@0 | 274 | 'jit/LinearScan.cpp', |
michael@0 | 275 | 'jit/LIR.cpp', |
michael@0 | 276 | 'jit/LiveRangeAllocator.cpp', |
michael@0 | 277 | 'jit/Lowering.cpp', |
michael@0 | 278 | 'jit/MCallOptimize.cpp', |
michael@0 | 279 | 'jit/MIR.cpp', |
michael@0 | 280 | 'jit/MIRGraph.cpp', |
michael@0 | 281 | 'jit/MoveResolver.cpp', |
michael@0 | 282 | 'jit/ParallelFunctions.cpp', |
michael@0 | 283 | 'jit/ParallelSafetyAnalysis.cpp', |
michael@0 | 284 | 'jit/PerfSpewer.cpp', |
michael@0 | 285 | 'jit/RangeAnalysis.cpp', |
michael@0 | 286 | 'jit/Recover.cpp', |
michael@0 | 287 | 'jit/RegisterAllocator.cpp', |
michael@0 | 288 | 'jit/RematerializedFrame.cpp', |
michael@0 | 289 | 'jit/Safepoints.cpp', |
michael@0 | 290 | 'jit/shared/BaselineCompiler-shared.cpp', |
michael@0 | 291 | 'jit/shared/CodeGenerator-shared.cpp', |
michael@0 | 292 | 'jit/shared/Lowering-shared.cpp', |
michael@0 | 293 | 'jit/Snapshots.cpp', |
michael@0 | 294 | 'jit/StupidAllocator.cpp', |
michael@0 | 295 | 'jit/TypeDescrSet.cpp', |
michael@0 | 296 | 'jit/TypePolicy.cpp', |
michael@0 | 297 | 'jit/UnreachableCodeElimination.cpp', |
michael@0 | 298 | 'jit/ValueNumbering.cpp', |
michael@0 | 299 | 'jit/VMFunctions.cpp', |
michael@0 | 300 | ] |
michael@0 | 301 | if CONFIG['JS_CODEGEN_X86'] or CONFIG['JS_CODEGEN_X64']: |
michael@0 | 302 | UNIFIED_SOURCES += [ |
michael@0 | 303 | 'jit/shared/Assembler-x86-shared.cpp', |
michael@0 | 304 | 'jit/shared/BaselineCompiler-x86-shared.cpp', |
michael@0 | 305 | 'jit/shared/BaselineIC-x86-shared.cpp', |
michael@0 | 306 | 'jit/shared/CodeGenerator-x86-shared.cpp', |
michael@0 | 307 | 'jit/shared/Lowering-x86-shared.cpp', |
michael@0 | 308 | 'jit/shared/MacroAssembler-x86-shared.cpp', |
michael@0 | 309 | 'jit/shared/MoveEmitter-x86-shared.cpp', |
michael@0 | 310 | ] |
michael@0 | 311 | if CONFIG['JS_CODEGEN_X64']: |
michael@0 | 312 | UNIFIED_SOURCES += [ |
michael@0 | 313 | 'jit/x64/Assembler-x64.cpp', |
michael@0 | 314 | 'jit/x64/Bailouts-x64.cpp', |
michael@0 | 315 | 'jit/x64/BaselineCompiler-x64.cpp', |
michael@0 | 316 | 'jit/x64/BaselineIC-x64.cpp', |
michael@0 | 317 | 'jit/x64/CodeGenerator-x64.cpp', |
michael@0 | 318 | 'jit/x64/Lowering-x64.cpp', |
michael@0 | 319 | 'jit/x64/MacroAssembler-x64.cpp', |
michael@0 | 320 | 'jit/x64/Trampoline-x64.cpp', |
michael@0 | 321 | ] |
michael@0 | 322 | else: |
michael@0 | 323 | UNIFIED_SOURCES += [ |
michael@0 | 324 | 'jit/x86/Assembler-x86.cpp', |
michael@0 | 325 | 'jit/x86/Bailouts-x86.cpp', |
michael@0 | 326 | 'jit/x86/BaselineCompiler-x86.cpp', |
michael@0 | 327 | 'jit/x86/BaselineIC-x86.cpp', |
michael@0 | 328 | 'jit/x86/CodeGenerator-x86.cpp', |
michael@0 | 329 | 'jit/x86/Lowering-x86.cpp', |
michael@0 | 330 | 'jit/x86/MacroAssembler-x86.cpp', |
michael@0 | 331 | 'jit/x86/Trampoline-x86.cpp', |
michael@0 | 332 | ] |
michael@0 | 333 | elif CONFIG['JS_CODEGEN_ARM']: |
michael@0 | 334 | UNIFIED_SOURCES += [ |
michael@0 | 335 | 'jit/arm/Architecture-arm.cpp', |
michael@0 | 336 | 'jit/arm/Assembler-arm.cpp', |
michael@0 | 337 | 'jit/arm/Bailouts-arm.cpp', |
michael@0 | 338 | 'jit/arm/BaselineCompiler-arm.cpp', |
michael@0 | 339 | 'jit/arm/BaselineIC-arm.cpp', |
michael@0 | 340 | 'jit/arm/CodeGenerator-arm.cpp', |
michael@0 | 341 | 'jit/arm/Lowering-arm.cpp', |
michael@0 | 342 | 'jit/arm/MacroAssembler-arm.cpp', |
michael@0 | 343 | 'jit/arm/MoveEmitter-arm.cpp', |
michael@0 | 344 | 'jit/arm/Trampoline-arm.cpp', |
michael@0 | 345 | ] |
michael@0 | 346 | if CONFIG['JS_ARM_SIMULATOR']: |
michael@0 | 347 | UNIFIED_SOURCES += [ |
michael@0 | 348 | 'jit/arm/Simulator-arm.cpp' |
michael@0 | 349 | ] |
michael@0 | 350 | |
michael@0 | 351 | if CONFIG['OS_ARCH'] == 'WINNT': |
michael@0 | 352 | SOURCES += [ |
michael@0 | 353 | 'assembler/jit/ExecutableAllocatorWin.cpp', |
michael@0 | 354 | 'yarr/OSAllocatorWin.cpp', |
michael@0 | 355 | ] |
michael@0 | 356 | # _CRT_RAND_S must be #defined before #including stdlib.h to get rand_s() |
michael@0 | 357 | DEFINES['_CRT_RAND_S'] = True |
michael@0 | 358 | else: |
michael@0 | 359 | SOURCES += [ |
michael@0 | 360 | 'assembler/jit/ExecutableAllocatorPosix.cpp', |
michael@0 | 361 | 'yarr/OSAllocatorPosix.cpp', |
michael@0 | 362 | ] |
michael@0 | 363 | |
michael@0 | 364 | if CONFIG['ENABLE_ION'] or CONFIG['ENABLE_YARR_JIT']: |
michael@0 | 365 | if CONFIG['JS_CODEGEN_X86'] or CONFIG['JS_CODEGEN_X64']: |
michael@0 | 366 | SOURCES += [ |
michael@0 | 367 | 'assembler/assembler/MacroAssemblerX86Common.cpp', |
michael@0 | 368 | ] |
michael@0 | 369 | elif CONFIG['JS_CODEGEN_ARM']: |
michael@0 | 370 | SOURCES += [ |
michael@0 | 371 | 'assembler/assembler/ARMAssembler.cpp', |
michael@0 | 372 | 'assembler/assembler/MacroAssemblerARM.cpp', |
michael@0 | 373 | ] |
michael@0 | 374 | |
michael@0 | 375 | if CONFIG['ENABLE_YARR_JIT']: |
michael@0 | 376 | SOURCES += [ |
michael@0 | 377 | 'yarr/YarrJIT.cpp' |
michael@0 | 378 | ] |
michael@0 | 379 | |
michael@0 | 380 | if CONFIG['JS_HAS_CTYPES']: |
michael@0 | 381 | SOURCES += [ |
michael@0 | 382 | 'ctypes/CTypes.cpp', |
michael@0 | 383 | 'ctypes/Library.cpp', |
michael@0 | 384 | ] |
michael@0 | 385 | if not CONFIG['MOZ_NATIVE_FFI']: |
michael@0 | 386 | GENERATED_INCLUDES += [ |
michael@0 | 387 | 'ctypes/libffi/include', |
michael@0 | 388 | ] |
michael@0 | 389 | |
michael@0 | 390 | if CONFIG['MOZ_VTUNE']: |
michael@0 | 391 | SOURCES += [ |
michael@0 | 392 | 'vtune/jitprofiling.c' |
michael@0 | 393 | ] |
michael@0 | 394 | |
michael@0 | 395 | if CONFIG['HAVE_LINUX_PERF_EVENT_H']: |
michael@0 | 396 | SOURCES += [ |
michael@0 | 397 | 'perf/pm_linux.cpp' |
michael@0 | 398 | ] |
michael@0 | 399 | SOURCES['perf/pm_linux.cpp'].flags += [CONFIG['LINUX_HEADERS_INCLUDES']] |
michael@0 | 400 | else: |
michael@0 | 401 | SOURCES += [ |
michael@0 | 402 | 'perf/pm_stub.cpp' |
michael@0 | 403 | ] |
michael@0 | 404 | |
michael@0 | 405 | MSVC_ENABLE_PGO = True |
michael@0 | 406 | |
michael@0 | 407 | HOST_SOURCES += [ |
michael@0 | 408 | 'jskwgen.cpp', |
michael@0 | 409 | ] |
michael@0 | 410 | |
michael@0 | 411 | HOST_SIMPLE_PROGRAMS += [ |
michael@0 | 412 | 'host_%s' % f.replace('.cpp', '') for f in HOST_SOURCES |
michael@0 | 413 | ] |
michael@0 | 414 | |
michael@0 | 415 | # JavaScript must be built shared, even for static builds, as it is used by |
michael@0 | 416 | # other modules which are always built shared. Failure to do so results in |
michael@0 | 417 | # the js code getting copied into xpinstall and jsd as well as mozilla-bin, |
michael@0 | 418 | # and then the static data cells used for locking no longer work. |
michael@0 | 419 | # |
michael@0 | 420 | # In fact, we now build both a static and a shared library, as the |
michael@0 | 421 | # JS shell would like to link to the static library. |
michael@0 | 422 | |
michael@0 | 423 | if CONFIG['JS_SHARED_LIBRARY']: |
michael@0 | 424 | FORCE_SHARED_LIB = True |
michael@0 | 425 | |
michael@0 | 426 | FORCE_STATIC_LIB = True |
michael@0 | 427 | |
michael@0 | 428 | if CONFIG['MOZ_ETW']: |
michael@0 | 429 | GENERATED_FILES = [ |
michael@0 | 430 | 'ETWProvider.h', |
michael@0 | 431 | ] |
michael@0 | 432 | # This will get the ETW provider resources into the library mozjs.dll |
michael@0 | 433 | RESFILE = 'ETWProvider.res' |
michael@0 | 434 | |
michael@0 | 435 | if CONFIG['NIGHTLY_BUILD']: |
michael@0 | 436 | DEFINES['ENABLE_PARALLEL_JS'] = True |
michael@0 | 437 | DEFINES['ENABLE_BINARYDATA'] = True |
michael@0 | 438 | DEFINES['ENABLE_SHARED_ARRAY_BUFFER'] = True |
michael@0 | 439 | |
michael@0 | 440 | DEFINES['EXPORT_JS_API'] = True |
michael@0 | 441 | |
michael@0 | 442 | if CONFIG['JS_THREADSAFE']: |
michael@0 | 443 | DEFINES['JS_THREADSAFE'] = True |
michael@0 | 444 | |
michael@0 | 445 | if CONFIG['JS_HAS_CTYPES']: |
michael@0 | 446 | DEFINES['JS_HAS_CTYPES'] = True |
michael@0 | 447 | for var in ('DLL_PREFIX', 'DLL_SUFFIX'): |
michael@0 | 448 | DEFINES[var] = '"%s"' % CONFIG[var] |
michael@0 | 449 | |
michael@0 | 450 | if CONFIG['MOZ_LINKER']: |
michael@0 | 451 | DEFINES['MOZ_LINKER'] = True |
michael@0 | 452 | |
michael@0 | 453 | if CONFIG['_MSC_VER']: |
michael@0 | 454 | if CONFIG['CPU_ARCH'] == 'x86': |
michael@0 | 455 | SOURCES['builtin/RegExp.cpp'].no_pgo = True # Bug 772303 |
michael@0 | 456 | elif CONFIG['CPU_ARCH'] == 'x86_64' and CONFIG['JS_HAS_CTYPES']: |
michael@0 | 457 | SOURCES['ctypes/CTypes.cpp'].no_pgo = True # Bug 810661 |
michael@0 | 458 | |
michael@0 | 459 | # Needed to "configure" it correctly. Unfortunately these |
michael@0 | 460 | # flags wind up being applied to all code in js/src, not just |
michael@0 | 461 | # the code in js/src/assembler. |
michael@0 | 462 | DEFINES['USE_SYSTEM_MALLOC'] = 1 |
michael@0 | 463 | DEFINES['ENABLE_ASSEMBLER'] = 1 |
michael@0 | 464 | |
michael@0 | 465 | if CONFIG['ENABLE_YARR_JIT']: |
michael@0 | 466 | DEFINES['ENABLE_JIT'] = 1 |