Home | History | Annotate | Download | only in JavaScriptCore
      1 ##
      2 ## Copyright 2009, The Android Open Source Project
      3 ##
      4 ## Redistribution and use in source and binary forms, with or without
      5 ## modification, are permitted provided that the following conditions
      6 ## are met:
      7 ##  * Redistributions of source code must retain the above copyright
      8 ##    notice, this list of conditions and the following disclaimer.
      9 ##  * Redistributions in binary form must reproduce the above copyright
     10 ##    notice, this list of conditions and the following disclaimer in the
     11 ##    documentation and/or other materials provided with the distribution.
     12 ##
     13 ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
     14 ## EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     15 ## IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     16 ## PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
     17 ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
     18 ## EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
     19 ## PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
     20 ## PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
     21 ## OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     22 ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     23 ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     24 ##
     25 
     26 LOCAL_SRC_FILES := \
     27 	API/JSValueRef.cpp \
     28 	API/JSCallbackObject.cpp \
     29 	API/OpaqueJSString.cpp \
     30 	\
     31 	bytecode/CodeBlock.cpp \
     32 	bytecode/JumpTable.cpp \
     33 	bytecode/Opcode.cpp \
     34 	bytecode/SamplingTool.cpp \
     35 	bytecode/StructureStubInfo.cpp \
     36 	\
     37 	bytecompiler/BytecodeGenerator.cpp \
     38 	bytecompiler/NodesCodegen.cpp \
     39 	\
     40 	debugger/Debugger.cpp \
     41 	debugger/DebuggerActivation.cpp \
     42 	debugger/DebuggerCallFrame.cpp \
     43 	\
     44 	interpreter/CallFrame.cpp \
     45 	interpreter/Interpreter.cpp \
     46 	interpreter/RegisterFile.cpp \
     47 	\
     48 	jit/ExecutableAllocator.cpp\
     49 	jit/ExecutableAllocatorFixedVMPool.cpp \
     50 	jit/ExecutableAllocatorPosix.cpp \
     51 	jit/JIT.cpp \
     52 	jit/JITArithmetic.cpp \
     53 	jit/JITCall.cpp \
     54 	jit/JITOpcodes.cpp \
     55 	jit/JITPropertyAccess.cpp \
     56 	jit/JITStubs.cpp \
     57 	\
     58 	parser/Lexer.cpp \
     59 	parser/Nodes.cpp \
     60 	parser/Parser.cpp \
     61 	parser/ParserArena.cpp \
     62 	\
     63 	pcre/pcre_compile.cpp \
     64 	pcre/pcre_exec.cpp \
     65 	pcre/pcre_tables.cpp \
     66 	pcre/pcre_ucp_searchfuncs.cpp \
     67 	pcre/pcre_xclass.cpp \
     68 	\
     69 	profiler/Profile.cpp \
     70 	profiler/ProfileGenerator.cpp \
     71 	profiler/ProfileNode.cpp \
     72 	profiler/Profiler.cpp \
     73 	\
     74 	runtime/ArgList.cpp \
     75 	runtime/Arguments.cpp \
     76 	runtime/ArrayConstructor.cpp \
     77 	runtime/ArrayPrototype.cpp \
     78 	runtime/BooleanConstructor.cpp \
     79 	runtime/BooleanObject.cpp \
     80 	runtime/BooleanPrototype.cpp \
     81 	runtime/CallData.cpp \
     82 	runtime/Collector.cpp \
     83 	runtime/CommonIdentifiers.cpp \
     84 	runtime/Completion.cpp \
     85 	runtime/ConstructData.cpp \
     86 	runtime/DateConstructor.cpp \
     87 	runtime/DateConversion.cpp \
     88 	runtime/DateInstance.cpp \
     89 	runtime/DatePrototype.cpp \
     90 	runtime/Error.cpp \
     91 	runtime/ErrorConstructor.cpp \
     92 	runtime/ErrorInstance.cpp \
     93 	runtime/ErrorPrototype.cpp \
     94 	runtime/ExceptionHelpers.cpp \
     95 	runtime/Executable.cpp \
     96 	runtime/FunctionConstructor.cpp \
     97 	runtime/FunctionPrototype.cpp \
     98 	runtime/GetterSetter.cpp \
     99 	runtime/GlobalEvalFunction.cpp \
    100 	runtime/Identifier.cpp \
    101 	runtime/InitializeThreading.cpp \
    102 	runtime/InternalFunction.cpp \
    103 	runtime/JSAPIValueWrapper.cpp \
    104 	runtime/JSActivation.cpp \
    105 	runtime/JSArray.cpp \
    106 	runtime/JSByteArray.cpp \
    107 	runtime/JSCell.cpp \
    108 	runtime/JSFunction.cpp \
    109 	runtime/JSGlobalData.cpp \
    110 	runtime/JSGlobalObject.cpp \
    111 	runtime/JSGlobalObjectFunctions.cpp \
    112 	runtime/JSImmediate.cpp \
    113 	runtime/JSLock.cpp \
    114 	runtime/JSNotAnObject.cpp \
    115 	runtime/JSNumberCell.cpp \
    116 	runtime/JSONObject.cpp \
    117 	runtime/JSObject.cpp \
    118 	runtime/JSPropertyNameIterator.cpp \
    119 	runtime/JSStaticScopeObject.cpp \
    120 	runtime/JSString.cpp \
    121 	runtime/JSValue.cpp \
    122 	runtime/JSVariableObject.cpp \
    123 	runtime/JSWrapperObject.cpp \
    124 	runtime/LiteralParser.cpp \
    125 	runtime/Lookup.cpp \
    126 	runtime/MarkStack.cpp \
    127 	runtime/MarkStackPosix.cpp \
    128 	runtime/MathObject.cpp \
    129 	runtime/NativeErrorConstructor.cpp \
    130 	runtime/NativeErrorPrototype.cpp \
    131 	runtime/NumberConstructor.cpp \
    132 	runtime/NumberObject.cpp \
    133 	runtime/NumberPrototype.cpp \
    134 	runtime/ObjectConstructor.cpp \
    135 	runtime/ObjectPrototype.cpp \
    136 	runtime/Operations.cpp \
    137 	runtime/PropertyDescriptor.cpp \
    138 	runtime/PropertyNameArray.cpp \
    139 	runtime/PropertySlot.cpp \
    140 	runtime/PrototypeFunction.cpp \
    141 	runtime/RegExp.cpp \
    142 	runtime/RegExpConstructor.cpp \
    143 	runtime/RegExpObject.cpp \
    144 	runtime/RegExpPrototype.cpp \
    145 	runtime/ScopeChain.cpp \
    146 	runtime/SmallStrings.cpp \
    147 	runtime/StringConstructor.cpp \
    148 	runtime/StringObject.cpp \
    149 	runtime/StringPrototype.cpp \
    150 	runtime/Structure.cpp \
    151 	runtime/StructureChain.cpp \
    152 	runtime/TimeoutChecker.cpp \
    153 	runtime/UString.cpp \
    154 	runtime/UStringImpl.cpp \
    155 	\
    156 	wrec/CharacterClass.cpp \
    157 	wrec/CharacterClassConstructor.cpp \
    158 	wrec/WREC.cpp \
    159 	wrec/WRECFunctors.cpp \
    160 	wrec/WRECGenerator.cpp \
    161 	wrec/WRECParser.cpp \
    162 	\
    163 	wtf/Assertions.cpp \
    164 	wtf/ByteArray.cpp \
    165 	wtf/CurrentTime.cpp \
    166 	wtf/DateMath.cpp \
    167 	wtf/FastMalloc.cpp \
    168 	wtf/HashTable.cpp \
    169 	wtf/MainThread.cpp \
    170 	wtf/RandomNumber.cpp \
    171 	wtf/RefCountedLeakCounter.cpp \
    172 	wtf/TCSystemAlloc.cpp \
    173 	wtf/ThreadIdentifierDataPthreads.cpp \
    174 	wtf/Threading.cpp \
    175 	wtf/ThreadingPthreads.cpp \
    176 	\
    177 	wtf/TypeTraits.cpp \
    178 	wtf/dtoa.cpp \
    179 	\
    180 	wtf/android/MainThreadAndroid.cpp \
    181 	\
    182 	wtf/unicode/CollatorDefault.cpp \
    183 	wtf/unicode/UTF8.cpp \
    184 	\
    185 	wtf/unicode/icu/CollatorICU.cpp \
    186 	\
    187 	yarr/RegexCompiler.cpp \
    188 	yarr/RegexInterpreter.cpp \
    189 	yarr/RegexJIT.cpp
    190 
    191 # Rule to build grammar.y with our custom bison.
    192 GEN := $(intermediates)/parser/Grammar.cpp
    193 $(GEN) : PRIVATE_YACCFLAGS := -p jscyy
    194 $(GEN) : $(LOCAL_PATH)/parser/Grammar.y
    195 	$(call local-transform-y-to-cpp,.cpp)
    196 $(GEN) : $(LOCAL_BISON)
    197 LOCAL_GENERATED_SOURCES += $(GEN)
    198 
    199 # generated headers
    200 JSC_OBJECTS := $(addprefix $(intermediates)/runtime/, \
    201 				ArrayPrototype.lut.h \
    202 				DatePrototype.lut.h \
    203 				JSONObject.lut.h \
    204 				MathObject.lut.h \
    205 				NumberConstructor.lut.h \
    206 				RegExpConstructor.lut.h \
    207 				RegExpObject.lut.h \
    208 				StringPrototype.lut.h \
    209 			)
    210 $(JSC_OBJECTS): PRIVATE_PATH := $(LOCAL_PATH)
    211 $(JSC_OBJECTS): PRIVATE_CUSTOM_TOOL = perl $(PRIVATE_PATH)/create_hash_table $< -i > $@
    212 $(JSC_OBJECTS): $(LOCAL_PATH)/create_hash_table
    213 $(JSC_OBJECTS): $(intermediates)/%.lut.h : $(LOCAL_PATH)/%.cpp
    214 	$(transform-generated-source)
    215 
    216 
    217 LEXER_HEADER := $(intermediates)/Lexer.lut.h
    218 $(LEXER_HEADER): PRIVATE_PATH := $(LOCAL_PATH)
    219 $(LEXER_HEADER): PRIVATE_CUSTOM_TOOL = perl $(PRIVATE_PATH)/create_hash_table $< -i > $@
    220 $(LEXER_HEADER): $(LOCAL_PATH)/create_hash_table
    221 $(LEXER_HEADER): $(intermediates)/%.lut.h : $(LOCAL_PATH)/parser/Keywords.table
    222 	$(transform-generated-source)
    223 
    224 CHARTABLES := $(intermediates)/chartables.c
    225 $(CHARTABLES): PRIVATE_PATH := $(LOCAL_PATH)
    226 $(CHARTABLES): PRIVATE_CUSTOM_TOOL = perl $(PRIVATE_PATH)/pcre/dftables $@
    227 $(CHARTABLES): $(LOCAL_PATH)/pcre/dftables
    228 $(CHARTABLES): $(LOCAL_PATH)/pcre/pcre_internal.h
    229 	$(transform-generated-source)
    230 
    231 LOCAL_GENERATED_SOURCES += $(JSC_OBJECTS) $(LEXER_HEADER) $(CHARTABLES)
    232