1# ------------------------------------------------------------------- 2# Derived sources for JavaScriptSource 3# 4# See 'Tools/qmake/README' for an overview of the build system 5# ------------------------------------------------------------------- 6 7TEMPLATE = derived 8 9LUT_FILES += \ 10 runtime/ArrayConstructor.cpp \ 11 runtime/ArrayPrototype.cpp \ 12 runtime/BooleanPrototype.cpp \ 13 runtime/DateConstructor.cpp \ 14 runtime/DatePrototype.cpp \ 15 runtime/ErrorPrototype.cpp \ 16 runtime/JSGlobalObject.cpp \ 17 runtime/JSONObject.cpp \ 18 runtime/MathObject.cpp \ 19 runtime/NamePrototype.cpp \ 20 runtime/NumberConstructor.cpp \ 21 runtime/NumberPrototype.cpp \ 22 runtime/ObjectConstructor.cpp \ 23 runtime/RegExpConstructor.cpp \ 24 runtime/RegExpObject.cpp \ 25 runtime/RegExpPrototype.cpp \ 26 runtime/StringConstructor.cpp \ 27 28KEYWORDLUT_FILES += \ 29 parser/Keywords.table 30 31JIT_STUB_FILES += \ 32 jit/JITStubs.cpp 33 34LLINT_ASSEMBLER = $$PWD/llint/LowLevelInterpreter.asm 35 36LLINT_DEPENDENCY = \ 37 $$PWD/llint/LowLevelInterpreter32_64.asm \ 38 $$PWD/llint/LowLevelInterpreter64.asm \ 39 $$LLINT_ASSEMBLER 40 41DISASSEMBLER_FILES = \ 42 disassembler/udis86/optable.xml 43 44DISASSEMBLER_DEPENDENCY = \ 45 $$PWD/disassembler/udis86/ud_opcode.py \ 46 $$PWD/disassembler/udis86/ud_optable.py 47 48# GENERATOR 1-A: LUT creator 49lut.output = ${QMAKE_FILE_BASE}.lut.h 50lut.input = LUT_FILES 51lut.script = $$PWD/create_hash_table 52lut.commands = perl $$lut.script ${QMAKE_FILE_NAME} -i > ${QMAKE_FILE_OUT} 53lut.depends = ${QMAKE_FILE_NAME} 54GENERATORS += lut 55 56# GENERATOR 1-B: particular LUT creator (for 1 file only) 57keywordlut.output = Lexer.lut.h 58keywordlut.input = KEYWORDLUT_FILES 59keywordlut.script = $$PWD/create_hash_table 60keywordlut.commands = perl $$keywordlut.script ${QMAKE_FILE_NAME} -i > ${QMAKE_FILE_OUT} 61keywordlut.depends = ${QMAKE_FILE_NAME} 62GENERATORS += keywordlut 63 64# GENERATOR 2-A: JIT Stub functions for RVCT 65rvctstubs.output = Generated${QMAKE_FILE_BASE}_RVCT.h 66rvctstubs.script = $$PWD/create_jit_stubs 67rvctstubs.commands = perl -i $$rvctstubs.script --prefix RVCT ${QMAKE_FILE_NAME} > ${QMAKE_FILE_OUT} 68rvctstubs.depends = ${QMAKE_FILE_NAME} 69rvctstubs.input = JIT_STUB_FILES 70rvctstubs.CONFIG += no_link 71GENERATORS += rvctstubs 72 73# GENERATOR 2-B: JIT Stub functions for MSVC 74msvcstubs.output = Generated${QMAKE_FILE_BASE}_MSVC.asm 75msvcstubs.script = $$PWD/create_jit_stubs 76msvcstubs.commands = perl -i $$msvcstubs.script --prefix MSVC ${QMAKE_FILE_NAME} > ${QMAKE_FILE_OUT} 77msvcstubs.depends = ${QMAKE_FILE_NAME} 78msvcstubs.input = JIT_STUB_FILES 79msvcstubs.CONFIG += no_link 80GENERATORS += msvcstubs 81 82#GENERATOR: "RegExpJitTables.h": tables used by Yarr 83retgen.output = RegExpJitTables.h 84retgen.script = $$PWD/create_regex_tables 85retgen.input = retgen.script 86retgen.commands = python $$retgen.script > ${QMAKE_FILE_OUT} 87GENERATORS += retgen 88 89#GENERATOR: "KeywordLookup.h": decision tree used by the lexer 90klgen.output = KeywordLookup.h 91klgen.script = $$PWD/KeywordLookupGenerator.py 92klgen.input = KEYWORDLUT_FILES 93klgen.commands = python $$klgen.script ${QMAKE_FILE_NAME} > ${QMAKE_FILE_OUT} 94GENERATORS += klgen 95 96EXTRACTOR_BINARY = LLIntOffsetsExtractor$$BIN_EXTENSION 97DIRS = $$OUT_PWD $$OUT_PWD/debug $$OUT_PWD/release 98for(dir, DIRS) { 99 file = $$dir/$$EXTRACTOR_BINARY 100 exists($$file): LLINT_FILES += $$file 101} 102 103#GENERATOR: LLInt 104llint.output = ${QMAKE_FILE_IN_PATH}$${QMAKE_DIR_SEP}LLIntAssembly.h 105llint.script = $$PWD/offlineasm/asm.rb 106llint.input = LLINT_FILES 107llint.depends = $$LLINT_DEPENDENCY 108llint.commands = ruby $$llint.script $$LLINT_ASSEMBLER ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT} 109GENERATORS += llint 110 111linux-*:if(isEqual(QT_ARCH, "i386")|isEqual(QT_ARCH, "x86_64")) { 112 # GENERATOR: disassembler 113 disassembler.output = udis86_itab.c 114 disassembler.input = DISASSEMBLER_FILES 115 disassembler.script = $$PWD/disassembler/udis86/itab.py 116 disassembler.depends = $$DISASSEMBLER_DEPENDENCY 117 disassembler.commands = python $$disassembler.script ${QMAKE_FILE_NAME} --outputDir ${QMAKE_FUNC_FILE_OUT_PATH} 118 disassembler.CONFIG += no_link 119 GENERATORS += disassembler 120} 121