Rubber-stamped by Brady Eidson.
[webbrowser.git] / JavaScriptCore / JavaScriptCore.pri
blobaecf01ceed9b7aea211e8c089fcbca10dbb62884
1 # JavaScriptCore - Qt4 build info
2 VPATH += $$PWD
4 CONFIG(debug, debug|release) {
5     isEmpty(GENERATED_SOURCES_DIR):GENERATED_SOURCES_DIR = generated$${QMAKE_DIR_SEP}debug
6     OBJECTS_DIR = obj/debug
7 } else { # Release
8     isEmpty(GENERATED_SOURCES_DIR):GENERATED_SOURCES_DIR = generated$${QMAKE_DIR_SEP}release
9     OBJECTS_DIR = obj/release
12 symbian: {
13     # Need to guarantee this comes before system includes of /epoc32/include
14     MMP_RULES += "USERINCLUDE ../JavaScriptCore/profiler"
17 INCLUDEPATH = \
18     $$PWD \
19     $$PWD/.. \
20     $$PWD/assembler \
21     $$PWD/bytecode \
22     $$PWD/bytecompiler \
23     $$PWD/debugger \
24     $$PWD/interpreter \
25     $$PWD/jit \
26     $$PWD/parser \
27     $$PWD/profiler \
28     $$PWD/runtime \
29     $$PWD/wrec \
30     $$PWD/wtf \
31     $$PWD/wtf/unicode \
32     $$PWD/yarr \
33     $$PWD/API \
34     $$PWD/ForwardingHeaders \
35     $$GENERATED_SOURCES_DIR \
36     $$INCLUDEPATH
38 DEFINES += BUILDING_QT__ BUILDING_JavaScriptCore BUILDING_WTF
40 GENERATED_SOURCES_DIR_SLASH = $${GENERATED_SOURCES_DIR}$${QMAKE_DIR_SEP}
41 win32-* {
42     LIBS += -lwinmm
44 contains(JAVASCRIPTCORE_JIT,yes) {
45     DEFINES+=ENABLE_JIT=1
46     DEFINES+=ENABLE_YARR_JIT=1
47     DEFINES+=ENABLE_YARR=1
49 contains(JAVASCRIPTCORE_JIT,no) {
50     DEFINES+=ENABLE_JIT=0
51     DEFINES+=ENABLE_YARR_JIT=0
52     DEFINES+=ENABLE_YARR=0
55 # In debug mode JIT disabled until crash fixed
56 win32-* {
57     CONFIG(debug):!contains(DEFINES, ENABLE_JIT=1): DEFINES+=ENABLE_JIT=0
60 # Rules when JIT enabled (not disabled)
61 !contains(DEFINES, ENABLE_JIT=0) {
62     linux*-g++*:greaterThan(QT_GCC_MAJOR_VERSION,3):greaterThan(QT_GCC_MINOR_VERSION,0) {
63         QMAKE_CXXFLAGS += -fno-stack-protector
64         QMAKE_CFLAGS += -fno-stack-protector
65     }
68 wince* {
69     INCLUDEPATH += $$QT_SOURCE_TREE/src/3rdparty/ce-compat
70     SOURCES += $$QT_SOURCE_TREE/src/3rdparty/ce-compat/ce_time.c
71     DEFINES += WINCEBASIC
74 include(pcre/pcre.pri)
76 LUT_FILES += \
77     runtime/ArrayPrototype.cpp \
78     runtime/DatePrototype.cpp \
79     runtime/JSONObject.cpp \
80     runtime/MathObject.cpp \
81     runtime/NumberConstructor.cpp \
82     runtime/RegExpConstructor.cpp \
83     runtime/RegExpObject.cpp \
84     runtime/StringPrototype.cpp
86 KEYWORDLUT_FILES += \
87     parser/Keywords.table
89 JSCBISON += \
90     parser/Grammar.y
92 SOURCES += \
93     API/JSBase.cpp \
94     API/JSCallbackConstructor.cpp \
95     API/JSCallbackFunction.cpp \
96     API/JSCallbackObject.cpp \
97     API/JSClassRef.cpp \
98     API/JSContextRef.cpp \
99     API/JSObjectRef.cpp \
100     API/JSStringRef.cpp \
101     API/JSValueRef.cpp \
102     API/OpaqueJSString.cpp \
103     assembler/ARMAssembler.cpp \
104     assembler/MacroAssemblerARM.cpp \
105     bytecode/CodeBlock.cpp \
106     bytecode/JumpTable.cpp \
107     bytecode/Opcode.cpp \
108     bytecode/SamplingTool.cpp \
109     bytecode/StructureStubInfo.cpp \
110     bytecompiler/BytecodeGenerator.cpp \
111     bytecompiler/NodesCodegen.cpp \
112     debugger/DebuggerActivation.cpp \
113     debugger/DebuggerCallFrame.cpp \
114     debugger/Debugger.cpp \
115     interpreter/CallFrame.cpp \
116     interpreter/Interpreter.cpp \
117     interpreter/RegisterFile.cpp \
118     jit/ExecutableAllocator.cpp \
119     jit/JITArithmetic.cpp \
120     jit/JITCall.cpp \
121     jit/JIT.cpp \
122     jit/JITOpcodes.cpp \
123     jit/JITPropertyAccess.cpp \
124     jit/JITStubs.cpp \
125     parser/Lexer.cpp \
126     parser/Nodes.cpp \
127     parser/ParserArena.cpp \
128     parser/Parser.cpp \
129     profiler/HeavyProfile.cpp \
130     profiler/Profile.cpp \
131     profiler/ProfileGenerator.cpp \
132     profiler/ProfileNode.cpp \
133     profiler/Profiler.cpp \
134     profiler/TreeProfile.cpp \
135     runtime/ArgList.cpp \
136     runtime/Arguments.cpp \
137     runtime/ArrayConstructor.cpp \
138     runtime/ArrayPrototype.cpp \
139     runtime/BooleanConstructor.cpp \
140     runtime/BooleanObject.cpp \
141     runtime/BooleanPrototype.cpp \
142     runtime/CallData.cpp \
143     runtime/Collector.cpp \
144     runtime/CommonIdentifiers.cpp \
145     runtime/Completion.cpp \
146     runtime/ConstructData.cpp \
147     runtime/DateConstructor.cpp \
148     runtime/DateConversion.cpp \
149     runtime/DateInstance.cpp \
150     runtime/DatePrototype.cpp \
151     runtime/ErrorConstructor.cpp \
152     runtime/Error.cpp \
153     runtime/ErrorInstance.cpp \
154     runtime/ErrorPrototype.cpp \
155     runtime/ExceptionHelpers.cpp \
156     runtime/Executable.cpp \
157     runtime/FunctionConstructor.cpp \
158     runtime/FunctionPrototype.cpp \
159     runtime/GetterSetter.cpp \
160     runtime/GlobalEvalFunction.cpp \
161     runtime/Identifier.cpp \
162     runtime/InitializeThreading.cpp \
163     runtime/InternalFunction.cpp \
164     runtime/JSActivation.cpp \
165     runtime/JSAPIValueWrapper.cpp \
166     runtime/JSArray.cpp \
167     runtime/JSByteArray.cpp \
168     runtime/JSCell.cpp \
169     runtime/JSFunction.cpp \
170     runtime/JSGlobalData.cpp \
171     runtime/JSGlobalObject.cpp \
172     runtime/JSGlobalObjectFunctions.cpp \
173     runtime/JSImmediate.cpp \
174     runtime/JSLock.cpp \
175     runtime/JSNotAnObject.cpp \
176     runtime/JSNumberCell.cpp \
177     runtime/JSObject.cpp \
178     runtime/JSONObject.cpp \
179     runtime/JSPropertyNameIterator.cpp \
180     runtime/JSStaticScopeObject.cpp \
181     runtime/JSString.cpp \
182     runtime/JSValue.cpp \
183     runtime/JSVariableObject.cpp \
184     runtime/JSWrapperObject.cpp \
185     runtime/LiteralParser.cpp \
186     runtime/Lookup.cpp \
187     runtime/MarkStack.cpp \
188     runtime/MathObject.cpp \
189     runtime/NativeErrorConstructor.cpp \
190     runtime/NativeErrorPrototype.cpp \
191     runtime/NumberConstructor.cpp \
192     runtime/NumberObject.cpp \
193     runtime/NumberPrototype.cpp \
194     runtime/ObjectConstructor.cpp \
195     runtime/ObjectPrototype.cpp \
196     runtime/Operations.cpp \
197     runtime/PropertyDescriptor.cpp \
198     runtime/PropertyNameArray.cpp \
199     runtime/PropertySlot.cpp \
200     runtime/PrototypeFunction.cpp \
201     runtime/RegExpConstructor.cpp \
202     runtime/RegExp.cpp \
203     runtime/RegExpObject.cpp \
204     runtime/RegExpPrototype.cpp \
205     runtime/ScopeChain.cpp \
206     runtime/SmallStrings.cpp \
207     runtime/StringConstructor.cpp \
208     runtime/StringObject.cpp \
209     runtime/StringPrototype.cpp \
210     runtime/StructureChain.cpp \
211     runtime/Structure.cpp \
212     runtime/TimeoutChecker.cpp \
213     runtime/UString.cpp \
214     wtf/Assertions.cpp \
215     wtf/ByteArray.cpp \
216     wtf/CurrentTime.cpp \
217     wtf/DateMath.cpp \
218     wtf/dtoa.cpp \
219     wtf/FastMalloc.cpp \
220     wtf/HashTable.cpp \
221     wtf/MainThread.cpp \
222     wtf/qt/MainThreadQt.cpp \
223     wtf/RandomNumber.cpp \
224     wtf/RefCountedLeakCounter.cpp \
225     wtf/Threading.cpp \
226     wtf/TypeTraits.cpp \
227     wtf/unicode/CollatorDefault.cpp \
228     wtf/unicode/icu/CollatorICU.cpp \
229     wtf/unicode/UTF8.cpp \
230     yarr/RegexCompiler.cpp \
231     yarr/RegexInterpreter.cpp \
232     yarr/RegexJIT.cpp
234 symbian {
235     SOURCES += jit/ExecutableAllocatorSymbian.cpp \
236               runtime/MarkStackSymbian.cpp
237 } else {
238     win32-*|wince* {
239         SOURCES += jit/ExecutableAllocatorWin.cpp \
240                   runtime/MarkStackWin.cpp
241     } else {
242         SOURCES += jit/ExecutableAllocatorPosix.cpp \
243                   runtime/MarkStackPosix.cpp
244     }
247 !contains(DEFINES, USE_SYSTEM_MALLOC) {
248     SOURCES += wtf/TCSystemAlloc.cpp
251 !contains(DEFINES, ENABLE_SINGLE_THREADED=1) {
252     SOURCES += wtf/qt/ThreadingQt.cpp
253 } else {
254     DEFINES += ENABLE_JSC_MULTIPLE_THREADS=0
255     SOURCES += wtf/ThreadingNone.cpp
258 # GENERATOR 1-A: LUT creator
259 lut.output = $${GENERATED_SOURCES_DIR}$${QMAKE_DIR_SEP}${QMAKE_FILE_BASE}.lut.h
260 lut.commands = perl $$PWD/create_hash_table ${QMAKE_FILE_NAME} -i > ${QMAKE_FILE_OUT}
261 lut.depend = ${QMAKE_FILE_NAME}
262 lut.input = LUT_FILES
263 lut.CONFIG += no_link
264 addExtraCompiler(lut)
266 # GENERATOR 1-B: particular LUT creator (for 1 file only)
267 keywordlut.output = $${GENERATED_SOURCES_DIR}$${QMAKE_DIR_SEP}Lexer.lut.h
268 keywordlut.commands = perl $$PWD/create_hash_table ${QMAKE_FILE_NAME} -i > ${QMAKE_FILE_OUT}
269 keywordlut.depend = ${QMAKE_FILE_NAME}
270 keywordlut.input = KEYWORDLUT_FILES
271 keywordlut.CONFIG += no_link
272 addExtraCompiler(keywordlut)
274 # GENERATOR 2: bison grammar
275 jscbison.output = $${GENERATED_SOURCES_DIR}$${QMAKE_DIR_SEP}${QMAKE_FILE_BASE}.cpp
276 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
277 jscbison.depend = ${QMAKE_FILE_NAME}
278 jscbison.input = JSCBISON
279 jscbison.variable_out = GENERATED_SOURCES
280 jscbison.dependency_type = TYPE_C
281 jscbison.CONFIG = target_predeps
282 addExtraCompilerWithHeader(jscbison)