1
# JavaScriptCore - Qt4 build info
4
CONFIG(debug, debug|release) {
5
isEmpty(GENERATED_SOURCES_DIR):GENERATED_SOURCES_DIR = generated$${QMAKE_DIR_SEP}debug
6
OBJECTS_DIR = obj/debug
8
isEmpty(GENERATED_SOURCES_DIR):GENERATED_SOURCES_DIR = generated$${QMAKE_DIR_SEP}release
9
OBJECTS_DIR = obj/release
29
$$PWD/ForwardingHeaders \
30
$$GENERATED_SOURCES_DIR \
33
DEFINES += BUILDING_QT__ BUILDING_JavaScriptCore BUILDING_WTF
35
GENERATED_SOURCES_DIR_SLASH = $${GENERATED_SOURCES_DIR}$${QMAKE_DIR_SEP}
39
contains(JAVASCRIPTCORE_JIT,yes) {
41
DEFINES+=ENABLE_YARR_JIT=1
43
contains(JAVASCRIPTCORE_JIT,no) {
45
DEFINES+=ENABLE_YARR_JIT=0
48
# In debug mode JIT disabled until crash fixed
50
CONFIG(debug):!contains(DEFINES, ENABLE_JIT=1): DEFINES+=ENABLE_JIT=0
53
# Rules when JIT enabled (not disabled)
54
!contains(DEFINES, ENABLE_JIT=0) {
55
linux-g++*:greaterThan(QT_GCC_MAJOR_VERSION,3):greaterThan(QT_GCC_MINOR_VERSION,0) {
56
QMAKE_CXXFLAGS += -fno-stack-protector
57
QMAKE_CFLAGS += -fno-stack-protector
62
SOURCES += $$QT_SOURCE_TREE/src/3rdparty/ce-compat/ce_time.cpp
66
include(pcre/pcre.pri)
69
runtime/DatePrototype.cpp \
70
runtime/JSONObject.cpp \
71
runtime/NumberConstructor.cpp \
72
runtime/StringPrototype.cpp \
73
runtime/ArrayPrototype.cpp \
74
runtime/MathObject.cpp \
75
runtime/RegExpConstructor.cpp \
76
runtime/RegExpObject.cpp
89
wtf/RandomNumber.cpp \
90
wtf/RefCountedLeakCounter.cpp \
92
wtf/unicode/CollatorDefault.cpp \
93
wtf/unicode/icu/CollatorICU.cpp \
94
wtf/unicode/UTF8.cpp \
96
API/JSCallbackConstructor.cpp \
97
API/JSCallbackFunction.cpp \
98
API/JSCallbackObject.cpp \
100
API/JSContextRef.cpp \
101
API/JSObjectRef.cpp \
102
API/JSStringRef.cpp \
104
API/OpaqueJSString.cpp \
105
runtime/InitializeThreading.cpp \
106
runtime/JSGlobalData.cpp \
107
runtime/JSGlobalObject.cpp \
108
runtime/JSStaticScopeObject.cpp \
109
runtime/JSVariableObject.cpp \
110
runtime/JSActivation.cpp \
111
runtime/JSNotAnObject.cpp \
112
runtime/JSONObject.cpp \
113
runtime/LiteralParser.cpp \
114
runtime/MarkStack.cpp \
115
runtime/TimeoutChecker.cpp \
116
bytecode/CodeBlock.cpp \
117
bytecode/StructureStubInfo.cpp \
118
bytecode/JumpTable.cpp \
119
assembler/ARMAssembler.cpp \
120
assembler/MacroAssemblerARM.cpp \
123
jit/JITArithmetic.cpp \
125
jit/JITPropertyAccess.cpp \
126
jit/ExecutableAllocator.cpp \
128
bytecompiler/BytecodeGenerator.cpp \
129
runtime/ExceptionHelpers.cpp \
130
runtime/JSPropertyNameIterator.cpp \
131
interpreter/Interpreter.cpp \
132
bytecode/Opcode.cpp \
133
bytecode/SamplingTool.cpp \
134
yarr/RegexCompiler.cpp \
135
yarr/RegexInterpreter.cpp \
137
interpreter/RegisterFile.cpp
140
SOURCES += jit/ExecutableAllocatorWin.cpp \
141
runtime/MarkStackWin.cpp
143
SOURCES += jit/ExecutableAllocatorPosix.cpp \
144
runtime/MarkStackPosix.cpp
147
!contains(DEFINES, USE_SYSTEM_MALLOC) {
148
SOURCES += wtf/TCSystemAlloc.cpp
151
# AllInOneFile.cpp helps gcc analize and optimize code
152
# Other compilers may be able to do this at link time
154
runtime/ArgList.cpp \
155
runtime/Arguments.cpp \
156
runtime/ArrayConstructor.cpp \
157
runtime/ArrayPrototype.cpp \
158
runtime/BooleanConstructor.cpp \
159
runtime/BooleanObject.cpp \
160
runtime/BooleanPrototype.cpp \
161
runtime/CallData.cpp \
162
runtime/Collector.cpp \
163
runtime/CommonIdentifiers.cpp \
164
runtime/ConstructData.cpp \
165
wtf/CurrentTime.cpp \
166
runtime/DateConstructor.cpp \
167
runtime/DateConversion.cpp \
168
runtime/DateInstance.cpp \
169
runtime/DatePrototype.cpp \
170
debugger/Debugger.cpp \
171
debugger/DebuggerCallFrame.cpp \
172
debugger/DebuggerActivation.cpp \
175
runtime/ErrorConstructor.cpp \
176
runtime/ErrorInstance.cpp \
177
runtime/ErrorPrototype.cpp \
178
interpreter/CallFrame.cpp \
179
runtime/Executable.cpp \
180
runtime/FunctionConstructor.cpp \
181
runtime/FunctionPrototype.cpp \
182
runtime/GetterSetter.cpp \
183
runtime/GlobalEvalFunction.cpp \
184
runtime/Identifier.cpp \
185
runtime/InternalFunction.cpp \
186
runtime/Completion.cpp \
187
runtime/JSArray.cpp \
188
runtime/JSAPIValueWrapper.cpp \
189
runtime/JSByteArray.cpp \
191
runtime/JSFunction.cpp \
192
runtime/JSGlobalObjectFunctions.cpp \
193
runtime/JSImmediate.cpp \
195
runtime/JSNumberCell.cpp \
196
runtime/JSObject.cpp \
197
runtime/JSString.cpp \
198
runtime/JSValue.cpp \
199
runtime/JSWrapperObject.cpp \
202
runtime/MathObject.cpp \
203
runtime/NativeErrorConstructor.cpp \
204
runtime/NativeErrorPrototype.cpp \
206
runtime/NumberConstructor.cpp \
207
runtime/NumberObject.cpp \
208
runtime/NumberPrototype.cpp \
209
runtime/ObjectConstructor.cpp \
210
runtime/ObjectPrototype.cpp \
211
runtime/Operations.cpp \
213
parser/ParserArena.cpp \
214
runtime/PropertyDescriptor.cpp \
215
runtime/PropertyNameArray.cpp \
216
runtime/PropertySlot.cpp \
217
runtime/PrototypeFunction.cpp \
219
runtime/RegExpConstructor.cpp \
220
runtime/RegExpObject.cpp \
221
runtime/RegExpPrototype.cpp \
222
runtime/ScopeChain.cpp \
223
runtime/SmallStrings.cpp \
224
runtime/StringConstructor.cpp \
225
runtime/StringObject.cpp \
226
runtime/StringPrototype.cpp \
227
runtime/Structure.cpp \
228
runtime/StructureChain.cpp \
229
runtime/UString.cpp \
230
profiler/HeavyProfile.cpp \
231
profiler/Profile.cpp \
232
profiler/ProfileGenerator.cpp \
233
profiler/ProfileNode.cpp \
234
profiler/Profiler.cpp \
235
profiler/TreeProfile.cpp \
239
wtf/qt/MainThreadQt.cpp
241
!contains(DEFINES, ENABLE_SINGLE_THREADED=1) {
242
SOURCES += wtf/qt/ThreadingQt.cpp
244
DEFINES += ENABLE_JSC_MULTIPLE_THREADS=0
245
SOURCES += wtf/ThreadingNone.cpp
248
# GENERATOR 1-A: LUT creator
249
lut.output = $${GENERATED_SOURCES_DIR}$${QMAKE_DIR_SEP}${QMAKE_FILE_BASE}.lut.h
250
lut.commands = perl $$PWD/create_hash_table ${QMAKE_FILE_NAME} -i > ${QMAKE_FILE_OUT}
251
lut.depend = ${QMAKE_FILE_NAME}
252
lut.input = LUT_FILES
253
lut.CONFIG += no_link
254
addExtraCompiler(lut)
256
# GENERATOR 1-B: particular LUT creator (for 1 file only)
257
keywordlut.output = $${GENERATED_SOURCES_DIR}$${QMAKE_DIR_SEP}Lexer.lut.h
258
keywordlut.commands = perl $$PWD/create_hash_table ${QMAKE_FILE_NAME} -i > ${QMAKE_FILE_OUT}
259
keywordlut.depend = ${QMAKE_FILE_NAME}
260
keywordlut.input = KEYWORDLUT_FILES
261
keywordlut.CONFIG += no_link
262
addExtraCompiler(keywordlut)
264
# GENERATOR 2: bison grammar
265
jscbison.output = $${GENERATED_SOURCES_DIR}$${QMAKE_DIR_SEP}${QMAKE_FILE_BASE}.cpp
266
jscbison.commands = bison -d -p jscyy ${QMAKE_FILE_NAME} -o $${GENERATED_SOURCES_DIR}$${QMAKE_DIR_SEP}${QMAKE_FILE_BASE}.tab.c && $(MOVE) $${GENERATED_SOURCES_DIR}$${QMAKE_DIR_SEP}${QMAKE_FILE_BASE}.tab.c ${QMAKE_FILE_OUT} && $(MOVE) $${GENERATED_SOURCES_DIR}$${QMAKE_DIR_SEP}${QMAKE_FILE_BASE}.tab.h $${GENERATED_SOURCES_DIR}$${QMAKE_DIR_SEP}${QMAKE_FILE_BASE}.h
267
jscbison.depend = ${QMAKE_FILE_NAME}
268
jscbison.input = JSCBISON
269
jscbison.variable_out = GENERATED_SOURCES
270
jscbison.dependency_type = TYPE_C
271
jscbison.CONFIG = target_predeps
272
addExtraCompilerWithHeader(jscbison)