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