# -*- Mode: python; c-basic-offset: 4; 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/. DIRS += ['config'] if CONFIG['DEHYDRA_PATH']: DIRS += ['analysis-tests'] if CONFIG['JS_NATIVE_EDITLINE']: DIRS += ['editline'] # editline needs to get built before the shell if not CONFIG['JS_DISABLE_SHELL']: DIRS += ['shell'] TEST_DIRS += ['jsapi-tests', 'tests', 'gdb'] MODULE = 'js' if CONFIG['JS_STANDALONE']: LIBRARY_NAME = 'mozjs-%s.%s%s' % (CONFIG['MOZJS_MAJOR_VERSION'], CONFIG['MOZJS_MINOR_VERSION'], CONFIG['MOZJS_ALPHA']) else: LIBRARY_NAME = 'mozjs' CONFIGURE_SUBST_FILES += ['devtools/rootAnalysis/Makefile'] # Changes to internal header files, used externally, massively slow down # browser builds. Don't add new files here unless you know what you're # doing! EXPORTS += [ 'js.msg', 'jsalloc.h', 'jsapi.h', 'jsbytecode.h', 'jsclist.h', 'jscpucfg.h', 'jsfriendapi.h', 'jsprf.h', 'jsprototypes.h', 'jsproxy.h', 'jspubtd.h', 'jstypes.h', 'jsversion.h', 'jswrapper.h', 'perf/jsperf.h', ] # If you add a header here, add it to js/src/jsapi-tests/testIntTypesABI.cpp so # that we ensure we don't over-expose our internal integer typedefs. Note that # LegacyIntTypes.h below is deliberately exempted from this requirement. EXPORTS.js += [ '../public/Anchor.h', '../public/CallArgs.h', '../public/CallNonGenericMethod.h', '../public/CharacterEncoding.h', '../public/Class.h', '../public/Date.h', '../public/GCAPI.h', '../public/HashTable.h', '../public/HeapAPI.h', '../public/Id.h', '../public/LegacyIntTypes.h', '../public/MemoryMetrics.h', '../public/OldDebugAPI.h', '../public/ProfilingStack.h', '../public/PropertyKey.h', '../public/RequiredDefines.h', '../public/RootingAPI.h', '../public/StructuredClone.h', '../public/Tracer.h', '../public/TypeDecls.h', '../public/Utility.h', '../public/Value.h', '../public/Vector.h', ] CPP_SOURCES += [ 'vm/ArgumentsObject.cpp', 'gc/Barrier.cpp', 'frontend/BytecodeCompiler.cpp', 'frontend/BytecodeEmitter.cpp', 'vm/CallNonGenericMethod.cpp', 'vm/CharacterEncoding.cpp', 'vm/DateTime.cpp', 'vm/Debugger.cpp', 'builtin/Eval.cpp', 'assembler/jit/ExecutableAllocator.cpp', 'frontend/FoldConstants.cpp', 'vm/ForkJoin.cpp', 'vm/GlobalObject.cpp', 'vm/Id.cpp', 'vm/Interpreter.cpp', 'builtin/Intl.cpp', 'gc/Iteration.cpp', 'ds/LifoAlloc.cpp', 'builtin/MapObject.cpp', 'gc/Marking.cpp', 'gc/Memory.cpp', 'vm/MemoryMetrics.cpp', 'builtin/Module.cpp', 'vm/Monitor.cpp', 'frontend/NameFunctions.cpp', 'gc/Nursery.cpp', 'builtin/Object.cpp', 'vm/ObjectImpl.cpp', 'vm/OldDebugAPI.cpp', 'yarr/PageBlock.cpp', 'builtin/ParallelArray.cpp', 'frontend/ParseMaps.cpp', 'frontend/ParseNode.cpp', 'frontend/Parser.cpp', 'vm/Probes.cpp', 'builtin/Profilers.cpp', 'vm/PropertyKey.cpp', 'vm/ProxyObject.cpp', 'builtin/RegExp.cpp', 'vm/RegExpObject.cpp', 'vm/RegExpStatics.cpp', 'gc/RootMarking.cpp', 'vm/Runtime.cpp', 'vm/SPSProfiler.cpp', 'vm/ScopeObject.cpp', 'vm/SelfHosting.cpp', 'vm/Shape.cpp', 'vm/Stack.cpp', 'gc/Statistics.cpp', 'gc/StoreBuffer.cpp', 'vm/String.cpp', 'vm/StringBuffer.cpp', 'vm/StructuredClone.cpp', 'builtin/TestingFunctions.cpp', 'vm/ThreadPool.cpp', 'frontend/TokenStream.cpp', 'gc/Tracer.cpp', 'builtin/TypeRepresentation.cpp', 'vm/TypedArrayObject.cpp', 'builtin/TypedObject.cpp', 'vm/Unicode.cpp', 'vm/Value.cpp', 'gc/Verifier.cpp', 'vm/Xdr.cpp', 'yarr/YarrCanonicalizeUCS2.cpp', 'yarr/YarrInterpreter.cpp', 'yarr/YarrPattern.cpp', 'yarr/YarrSyntaxChecker.cpp', 'gc/Zone.cpp', 'jsalloc.cpp', 'jsanalyze.cpp', 'jsapi.cpp', 'jsarray.cpp', 'jsatom.cpp', 'jsbool.cpp', 'jscntxt.cpp', 'jscompartment.cpp', 'jscrashreport.cpp', 'jsdate.cpp', 'jsdtoa.cpp', 'jsexn.cpp', 'jsfriendapi.cpp', 'jsfun.cpp', 'jsgc.cpp', 'jsinfer.cpp', 'jsiter.cpp', 'jsmath.cpp', 'jsnativestack.cpp', 'jsnum.cpp', 'jsobj.cpp', 'json.cpp', 'jsonparser.cpp', 'jsopcode.cpp', 'perf/jsperf.cpp', 'jsprf.cpp', 'jspropertytree.cpp', 'jsproxy.cpp', 'jsreflect.cpp', 'jsscript.cpp', 'jsstr.cpp', 'jsutil.cpp', 'jswatchpoint.cpp', 'jsweakmap.cpp', 'jsworkers.cpp', 'jswrapper.cpp', 'prmjtime.cpp', 'devtools/sharkctl.cpp', ] if CONFIG['MOZ_INSTRUMENTS']: CPP_SOURCES += [ 'devtools/Instruments.cpp', ] if CONFIG['ENABLE_TRACE_LOGGING']: CPP_SOURCES += [ 'TraceLogging.cpp', ] if CONFIG['ENABLE_ION']: CPP_SOURCES += [ 'jit/AliasAnalysis.cpp', 'jit/AsmJS.cpp', 'jit/AsmJSLink.cpp', 'jit/AsmJSModule.cpp', 'jit/AsmJSSignalHandlers.cpp', 'jit/BacktrackingAllocator.cpp', 'jit/Bailouts.cpp', 'jit/BaselineBailouts.cpp', 'jit/shared/BaselineCompiler-shared.cpp', 'jit/BaselineCompiler.cpp', 'jit/BaselineFrame.cpp', 'jit/BaselineFrameInfo.cpp', 'jit/BaselineIC.cpp', 'jit/BaselineInspector.cpp', 'jit/BaselineJIT.cpp', 'jit/BitSet.cpp', 'jit/BytecodeAnalysis.cpp', 'jit/C1Spewer.cpp', 'jit/shared/CodeGenerator-shared.cpp', 'jit/CodeGenerator.cpp', 'jit/EdgeCaseAnalysis.cpp', 'jit/EffectiveAddressAnalysis.cpp', 'jit/Ion.cpp', 'jit/IonAnalysis.cpp', 'jit/IonBuilder.cpp', 'jit/IonCaches.cpp', 'jit/IonFrames.cpp', 'jit/IonMacroAssembler.cpp', 'jit/IonSpewer.cpp', 'jit/JSONSpewer.cpp', 'jit/PerfSpewer.cpp', 'jit/LICM.cpp', 'jit/LIR.cpp', 'jit/LinearScan.cpp', 'jit/LiveRangeAllocator.cpp', 'jit/shared/Lowering-shared.cpp', 'jit/Lowering.cpp', 'jit/MCallOptimize.cpp', 'jit/MIR.cpp', 'jit/MIRGraph.cpp', 'jit/MoveResolver.cpp', 'jit/ParallelSafetyAnalysis.cpp', 'jit/ParallelFunctions.cpp', 'jit/RangeAnalysis.cpp', 'jit/RegisterAllocator.cpp', 'jit/Safepoints.cpp', 'jit/Snapshots.cpp', 'jit/StupidAllocator.cpp', 'jit/TypePolicy.cpp', 'jit/TypeRepresentationSet.cpp', 'jit/UnreachableCodeElimination.cpp', 'jit/VMFunctions.cpp', 'jit/ValueNumbering.cpp', ] if CONFIG['TARGET_CPU'].find('86') != -1: CPP_SOURCES += [ 'jit/shared/Assembler-x86-shared.cpp', 'jit/shared/BaselineCompiler-x86-shared.cpp', 'jit/shared/BaselineIC-x86-shared.cpp', 'jit/shared/CodeGenerator-x86-shared.cpp', 'jit/shared/IonFrames-x86-shared.cpp', 'jit/shared/Lowering-x86-shared.cpp', 'jit/shared/MoveEmitter-x86-shared.cpp', ] if CONFIG['TARGET_CPU'] == 'x86_64': CPP_SOURCES += [ 'jit/x64/Assembler-x64.cpp', 'jit/x64/Bailouts-x64.cpp', 'jit/x64/BaselineCompiler-x64.cpp', 'jit/x64/BaselineIC-x64.cpp', 'jit/x64/CodeGenerator-x64.cpp', 'jit/x64/Lowering-x64.cpp', 'jit/x64/MacroAssembler-x64.cpp', 'jit/x64/Trampoline-x64.cpp', ] else: CPP_SOURCES += [ 'jit/x86/Assembler-x86.cpp', 'jit/x86/Bailouts-x86.cpp', 'jit/x86/BaselineCompiler-x86.cpp', 'jit/x86/BaselineIC-x86.cpp', 'jit/x86/CodeGenerator-x86.cpp', 'jit/x86/Lowering-x86.cpp', 'jit/x86/MacroAssembler-x86.cpp', 'jit/x86/Trampoline-x86.cpp', ] elif CONFIG['TARGET_CPU'].find('arm') != -1: CPP_SOURCES += [ 'jit/arm/Architecture-arm.cpp', 'jit/arm/Assembler-arm.cpp', 'jit/arm/Bailouts-arm.cpp', 'jit/arm/BaselineCompiler-arm.cpp', 'jit/arm/BaselineIC-arm.cpp', 'jit/arm/CodeGenerator-arm.cpp', 'jit/arm/IonFrames-arm.cpp', 'jit/arm/Lowering-arm.cpp', 'jit/arm/MacroAssembler-arm.cpp', 'jit/arm/MoveEmitter-arm.cpp', 'jit/arm/Trampoline-arm.cpp', ] if CONFIG['OS_ARCH'] == 'WINNT': CPP_SOURCES += [ 'assembler/jit/ExecutableAllocatorWin.cpp', 'yarr/OSAllocatorWin.cpp', ] elif CONFIG['OS_ARCH'] == 'OS2': CPP_SOURCES += [ 'assembler/jit/ExecutableAllocatorOS2.cpp', 'yarr/OSAllocatorOS2.cpp', ] else: CPP_SOURCES += [ 'assembler/jit/ExecutableAllocatorPosix.cpp', 'yarr/OSAllocatorPosix.cpp', ] if CONFIG['ENABLE_ION'] or CONFIG['ENABLE_YARR_JIT']: CPP_SOURCES += [ 'assembler/assembler/ARMAssembler.cpp', 'assembler/assembler/MacroAssemblerARM.cpp', 'assembler/assembler/MacroAssemblerX86Common.cpp', ] if CONFIG['ENABLE_YARR_JIT']: CPP_SOURCES += [ 'yarr/YarrJIT.cpp' ] if CONFIG['JS_HAS_CTYPES']: CPP_SOURCES += [ 'ctypes/CTypes.cpp', 'ctypes/Library.cpp', ] if CONFIG['MOZ_VTUNE']: CSRCS += [ 'vtune/jitprofiling.c' ] if CONFIG['HAVE_LINUX_PERF_EVENT_H']: CPP_SOURCES += [ 'perf/pm_linux.cpp' ] else: CPP_SOURCES += [ 'perf/pm_stub.cpp' ] MSVC_ENABLE_PGO = True HOST_CPPSRCS += [ 'jskwgen.cpp', 'jsoplengen.cpp', ]