javascriptcore_cppflags += \
	-I$(srcdir)/JavaScriptCore/API \
	-I$(srcdir)/JavaScriptCore/ForwardingHeaders \
	-I$(srcdir)/JavaScriptCore/interpreter \
	-I$(srcdir)/JavaScriptCore/bytecode \
	-I$(srcdir)/JavaScriptCore/bytecompiler \
	-I$(srcdir)/JavaScriptCore/debugger \
	-I$(srcdir)/JavaScriptCore/jit \
	-I$(srcdir)/JavaScriptCore/pcre \
	-I$(srcdir)/JavaScriptCore/profiler \
	-I$(srcdir)/JavaScriptCore/runtime \
	-I$(srcdir)/JavaScriptCore/wrec \
	-I$(srcdir)/JavaScriptCore/jit \
	-I$(srcdir)/JavaScriptCore/assembler \
	-I$(srcdir)/JavaScriptCore/wtf/unicode \
	-I$(top_builddir)/JavaScriptCore/pcre \
	-I$(top_builddir)/JavaScriptCore/parser \
	-I$(top_builddir)/JavaScriptCore/runtime

javascriptcore_h_api += \
	JavaScriptCore/API/JSBase.h \
	JavaScriptCore/API/JSContextRef.h \
	JavaScriptCore/API/JSObjectRef.h \
	JavaScriptCore/API/JSStringRef.h \
	JavaScriptCore/API/JSStringRefBSTR.h \
	JavaScriptCore/API/JSStringRefCF.h \
	JavaScriptCore/API/JSValueRef.h \
	JavaScriptCore/API/JavaScript.h \
	JavaScriptCore/API/JavaScriptCore.h \
	JavaScriptCore/API/WebKitAvailability.h

javascriptcore_built_nosources += \
	DerivedSources/Lexer.lut.h \
	JavaScriptCore/runtime/ArrayPrototype.lut.h \
	JavaScriptCore/runtime/DatePrototype.lut.h \
	JavaScriptCore/runtime/MathObject.lut.h \
	JavaScriptCore/runtime/NumberConstructor.lut.h \
	JavaScriptCore/runtime/RegExpConstructor.lut.h \
	JavaScriptCore/runtime/RegExpObject.lut.h \
	JavaScriptCore/runtime/StringPrototype.lut.h \
	JavaScriptCore/pcre/chartables.c

javascriptcore_sources += \
	JavaScriptCore/API/APICast.h \
	JavaScriptCore/API/JSBase.cpp \
	JavaScriptCore/API/JSBasePrivate.h \
	JavaScriptCore/API/JSCallbackConstructor.cpp \
	JavaScriptCore/API/JSCallbackConstructor.h \
	JavaScriptCore/API/JSCallbackFunction.cpp \
	JavaScriptCore/API/JSCallbackFunction.h \
	JavaScriptCore/API/JSCallbackObject.cpp \
	JavaScriptCore/API/JSCallbackObject.h \
	JavaScriptCore/API/JSCallbackObjectFunctions.h \
	JavaScriptCore/API/JSClassRef.cpp \
	JavaScriptCore/API/JSClassRef.h \
	JavaScriptCore/API/JSContextRef.cpp \
	JavaScriptCore/API/JSObjectRef.cpp \
	JavaScriptCore/API/JSRetainPtr.h \
	JavaScriptCore/API/JSStringRef.cpp \
	JavaScriptCore/API/JSValueRef.cpp \
	JavaScriptCore/API/OpaqueJSString.cpp \
	JavaScriptCore/API/OpaqueJSString.h \
	JavaScriptCore/ForwardingHeaders/JavaScriptCore/APICast.h \
	JavaScriptCore/ForwardingHeaders/JavaScriptCore/JSBase.h \
	JavaScriptCore/ForwardingHeaders/JavaScriptCore/JSContextRef.h \
	JavaScriptCore/ForwardingHeaders/JavaScriptCore/JSObjectRef.h \
	JavaScriptCore/ForwardingHeaders/JavaScriptCore/JSRetainPtr.h \
	JavaScriptCore/ForwardingHeaders/JavaScriptCore/JSStringRef.h \
	JavaScriptCore/ForwardingHeaders/JavaScriptCore/JSStringRefCF.h \
	JavaScriptCore/ForwardingHeaders/JavaScriptCore/JSValueRef.h \
	JavaScriptCore/ForwardingHeaders/JavaScriptCore/JavaScript.h \
	JavaScriptCore/ForwardingHeaders/JavaScriptCore/JavaScriptCore.h \
	JavaScriptCore/ForwardingHeaders/JavaScriptCore/OpaqueJSString.h \
	JavaScriptCore/ForwardingHeaders/JavaScriptCore/WebKitAvailability.h \
	JavaScriptCore/JavaScriptCorePrefix.h \
	JavaScriptCore/jit/ExecutableAllocator.h \
	JavaScriptCore/jit/JIT.cpp \
	JavaScriptCore/jit/JITCall.cpp \
	JavaScriptCore/jit/JITPropertyAccess.cpp \
	JavaScriptCore/jit/JITArithmetic.cpp \
	JavaScriptCore/jit/ExecutableAllocator.cpp \
	JavaScriptCore/jit/ExecutableAllocatorPosix.cpp \
	JavaScriptCore/jit/JIT.h \
	JavaScriptCore/jit/JITInlineMethods.h \
	JavaScriptCore/bytecode/StructureStubInfo.cpp \
	JavaScriptCore/bytecode/StructureStubInfo.h \
	JavaScriptCore/bytecode/CodeBlock.cpp \
	JavaScriptCore/bytecode/CodeBlock.h \
	JavaScriptCore/bytecode/JumpTable.cpp \
	JavaScriptCore/bytecode/JumpTable.h \
	JavaScriptCore/bytecode/EvalCodeCache.h \
	JavaScriptCore/runtime/ExceptionHelpers.cpp \
	JavaScriptCore/runtime/ExceptionHelpers.h \
	JavaScriptCore/bytecode/Instruction.h \
	JavaScriptCore/bytecompiler/Label.h \
	JavaScriptCore/interpreter/Interpreter.cpp \
	JavaScriptCore/interpreter/Interpreter.h \
	JavaScriptCore/bytecode/Opcode.cpp \
	JavaScriptCore/bytecode/Opcode.h \
	JavaScriptCore/interpreter/Register.h \
	JavaScriptCore/bytecompiler/RegisterID.h \
	JavaScriptCore/bytecode/SamplingTool.cpp \
	JavaScriptCore/bytecode/SamplingTool.h \
	JavaScriptCore/bytecompiler/SegmentedVector.h \
	JavaScriptCore/config.h \
	JavaScriptCore/debugger/DebuggerCallFrame.cpp \
	JavaScriptCore/debugger/DebuggerCallFrame.h \
	JavaScriptCore/icu/unicode/parseerr.h \
	JavaScriptCore/icu/unicode/platform.h \
	JavaScriptCore/icu/unicode/putil.h \
	JavaScriptCore/icu/unicode/uchar.h \
	JavaScriptCore/icu/unicode/ucnv.h \
	JavaScriptCore/icu/unicode/ucnv_err.h \
	JavaScriptCore/icu/unicode/ucol.h \
	JavaScriptCore/icu/unicode/uconfig.h \
	JavaScriptCore/icu/unicode/uenum.h \
	JavaScriptCore/icu/unicode/uiter.h \
	JavaScriptCore/icu/unicode/uloc.h \
	JavaScriptCore/icu/unicode/umachine.h \
	JavaScriptCore/icu/unicode/unorm.h \
	JavaScriptCore/icu/unicode/urename.h \
	JavaScriptCore/icu/unicode/uset.h \
	JavaScriptCore/icu/unicode/ustring.h \
	JavaScriptCore/icu/unicode/utf.h \
	JavaScriptCore/icu/unicode/utf16.h \
	JavaScriptCore/icu/unicode/utf8.h \
	JavaScriptCore/icu/unicode/utf_old.h \
	JavaScriptCore/icu/unicode/utypes.h \
	JavaScriptCore/icu/unicode/uversion.h \
	JavaScriptCore/assembler/X86Assembler.h \
	JavaScriptCore/assembler/AssemblerBuffer.h \
	JavaScriptCore/assembler/MacroAssembler.h \
	JavaScriptCore/os-win32/stdbool.h \
	JavaScriptCore/os-win32/stdint.h \
	JavaScriptCore/pcre/pcre.h \
	JavaScriptCore/pcre/pcre_compile.cpp \
	JavaScriptCore/pcre/pcre_exec.cpp \
	JavaScriptCore/pcre/pcre_internal.h \
	JavaScriptCore/pcre/pcre_tables.cpp \
	JavaScriptCore/pcre/pcre_ucp_searchfuncs.cpp \
	JavaScriptCore/pcre/pcre_xclass.cpp \
	JavaScriptCore/pcre/ucpinternal.h \
	JavaScriptCore/profiler/CallIdentifier.h \
	JavaScriptCore/profiler/HeavyProfile.cpp \
	JavaScriptCore/profiler/HeavyProfile.h \
	JavaScriptCore/profiler/Profile.cpp \
	JavaScriptCore/profiler/Profile.h \
	JavaScriptCore/profiler/ProfileGenerator.cpp \
	JavaScriptCore/profiler/ProfileGenerator.h \
	JavaScriptCore/profiler/ProfileNode.cpp \
	JavaScriptCore/profiler/ProfileNode.h \
	JavaScriptCore/profiler/Profiler.cpp \
	JavaScriptCore/profiler/Profiler.h \
	JavaScriptCore/profiler/TreeProfile.cpp \
	JavaScriptCore/profiler/TreeProfile.h \
	JavaScriptCore/interpreter/CallFrame.cpp \
	JavaScriptCore/interpreter/CallFrame.h \
	JavaScriptCore/runtime/InitializeThreading.cpp \
	JavaScriptCore/runtime/InitializeThreading.h \
	JavaScriptCore/runtime/JSActivation.cpp \
	JavaScriptCore/runtime/JSActivation.h \
	JavaScriptCore/runtime/JSGlobalData.cpp \
	JavaScriptCore/runtime/JSGlobalData.h \
	JavaScriptCore/runtime/JSNotAnObject.cpp \
	JavaScriptCore/runtime/JSNotAnObject.h \
	JavaScriptCore/runtime/JSPropertyNameIterator.cpp \
	JavaScriptCore/runtime/JSPropertyNameIterator.h \
	JavaScriptCore/runtime/SmallStrings.cpp \
	JavaScriptCore/runtime/SmallStrings.h \
	JavaScriptCore/runtime/Structure.cpp \
	JavaScriptCore/runtime/Structure.h \
	JavaScriptCore/runtime/StructureChain.cpp \
	JavaScriptCore/runtime/StructureChain.h \
	JavaScriptCore/runtime/StructureTransitionTable.h \
	JavaScriptCore/runtime/TypeInfo.h \
	JavaScriptCore/wrec/CharacterClass.cpp \
	JavaScriptCore/wrec/CharacterClass.h \
	JavaScriptCore/wrec/CharacterClassConstructor.cpp \
	JavaScriptCore/wrec/CharacterClassConstructor.h \
	JavaScriptCore/wrec/Escapes.h \
	JavaScriptCore/wrec/Quantifier.h \
	JavaScriptCore/wrec/WREC.cpp \
	JavaScriptCore/wrec/WREC.h \
	JavaScriptCore/wrec/WRECFunctors.cpp \
	JavaScriptCore/wrec/WRECFunctors.h \
	JavaScriptCore/wrec/WRECGenerator.cpp \
	JavaScriptCore/wrec/WRECGenerator.h \
	JavaScriptCore/wrec/WRECParser.cpp \
	JavaScriptCore/wrec/WRECParser.h \
	JavaScriptCore/wtf/ASCIICType.h \
	JavaScriptCore/wtf/AVLTree.h \
	JavaScriptCore/wtf/AlwaysInline.h \
	JavaScriptCore/wtf/Assertions.cpp \
	JavaScriptCore/wtf/Assertions.h \
	JavaScriptCore/wtf/CurrentTime.cpp \
	JavaScriptCore/wtf/CurrentTime.h \
	JavaScriptCore/wtf/Deque.h \
	JavaScriptCore/wtf/DisallowCType.h \
	JavaScriptCore/wtf/Forward.h \
	JavaScriptCore/wtf/GOwnPtr.cpp \
	JavaScriptCore/wtf/GOwnPtr.h \
	JavaScriptCore/wtf/GetPtr.h \
	JavaScriptCore/wtf/HashCountedSet.h \
	JavaScriptCore/wtf/HashFunctions.h \
	JavaScriptCore/wtf/HashIterators.h \
	JavaScriptCore/wtf/HashMap.h \
	JavaScriptCore/wtf/HashSet.h \
	JavaScriptCore/wtf/HashTable.cpp \
	JavaScriptCore/wtf/HashTable.h \
	JavaScriptCore/wtf/HashTraits.h \
	JavaScriptCore/wtf/ListHashSet.h \
	JavaScriptCore/wtf/ListRefPtr.h \
	JavaScriptCore/wtf/Locker.h \
	JavaScriptCore/wtf/MainThread.cpp \
	JavaScriptCore/wtf/MainThread.h \
	JavaScriptCore/wtf/MathExtras.h \
	JavaScriptCore/wtf/MessageQueue.h \
	JavaScriptCore/wtf/Noncopyable.h \
	JavaScriptCore/wtf/NotFound.h \
	JavaScriptCore/wtf/OwnArrayPtr.h \
	JavaScriptCore/wtf/OwnPtr.h \
	JavaScriptCore/wtf/PassRefPtr.h \
	JavaScriptCore/wtf/Platform.h \
	JavaScriptCore/wtf/PtrAndFlags.h \
	JavaScriptCore/wtf/RandomNumber.cpp \
	JavaScriptCore/wtf/RandomNumber.h \
	JavaScriptCore/wtf/RandomNumberSeed.h \
	JavaScriptCore/wtf/RefCounted.h \
	JavaScriptCore/wtf/RefCountedLeakCounter.cpp \
	JavaScriptCore/wtf/RefCountedLeakCounter.h \
	JavaScriptCore/wtf/RefPtr.h \
	JavaScriptCore/wtf/RefPtrHashMap.h \
	JavaScriptCore/wtf/RetainPtr.h \
	JavaScriptCore/wtf/StdLibExtras.h \
	JavaScriptCore/wtf/StringExtras.h \
	JavaScriptCore/wtf/TCPackedCache.h \
	JavaScriptCore/wtf/TCPageMap.h \
	JavaScriptCore/wtf/TCSpinLock.h \
	JavaScriptCore/wtf/ThreadSpecific.h \
	JavaScriptCore/wtf/Threading.h \
	JavaScriptCore/wtf/Threading.cpp \
	JavaScriptCore/wtf/ThreadingGtk.cpp \
	JavaScriptCore/wtf/ThreadingPthreads.cpp \
	JavaScriptCore/wtf/UnusedParam.h \
	JavaScriptCore/wtf/Vector.h \
	JavaScriptCore/wtf/VectorTraits.h \
	JavaScriptCore/wtf/gtk/MainThreadGtk.cpp \
	JavaScriptCore/wtf/unicode/Collator.h \
	JavaScriptCore/wtf/unicode/CollatorDefault.cpp \
	JavaScriptCore/wtf/unicode/UTF8.cpp \
	JavaScriptCore/wtf/unicode/UTF8.h \
	JavaScriptCore/wtf/unicode/Unicode.h \
	JavaScriptCore/wtf/unicode/icu/CollatorICU.cpp \
	JavaScriptCore/wtf/unicode/icu/UnicodeIcu.h

# Debug build
if ENABLE_DEBUG
javascriptcore_built_sources += \
	DerivedSources/Grammar.cpp \
	DerivedSources/Grammar.h

javascriptcore_sources += \
	JavaScriptCore/interpreter/RegisterFile.cpp \
	JavaScriptCore/interpreter/RegisterFile.h \
	JavaScriptCore/bytecompiler/BytecodeGenerator.cpp \
	JavaScriptCore/bytecompiler/BytecodeGenerator.h \
	JavaScriptCore/bytecompiler/LabelScope.h \
	JavaScriptCore/debugger/Debugger.cpp \
	JavaScriptCore/debugger/Debugger.h \
	JavaScriptCore/parser/Lexer.cpp \
	JavaScriptCore/parser/Lexer.h \
	JavaScriptCore/parser/NodeInfo.h \
	JavaScriptCore/parser/Nodes.cpp \
	JavaScriptCore/parser/Nodes.h \
	JavaScriptCore/parser/Parser.cpp \
	JavaScriptCore/parser/Parser.h \
	JavaScriptCore/parser/ResultType.h \
	JavaScriptCore/parser/SourceCode.h \
	JavaScriptCore/parser/SourceProvider.h \
	JavaScriptCore/runtime/ArgList.cpp \
	JavaScriptCore/runtime/ArgList.h \
	JavaScriptCore/runtime/Arguments.cpp \
	JavaScriptCore/runtime/Arguments.h \
	JavaScriptCore/runtime/ArrayConstructor.cpp \
	JavaScriptCore/runtime/ArrayConstructor.h \
	JavaScriptCore/runtime/ArrayPrototype.cpp \
	JavaScriptCore/runtime/ArrayPrototype.h \
	JavaScriptCore/runtime/BatchedTransitionOptimizer.h \
	JavaScriptCore/runtime/BooleanConstructor.cpp \
	JavaScriptCore/runtime/BooleanConstructor.h \
	JavaScriptCore/runtime/BooleanObject.cpp \
	JavaScriptCore/runtime/BooleanObject.h \
	JavaScriptCore/runtime/BooleanPrototype.cpp \
	JavaScriptCore/runtime/BooleanPrototype.h \
	JavaScriptCore/runtime/ByteArray.cpp \
	JavaScriptCore/runtime/ByteArray.h \
	JavaScriptCore/runtime/CallData.cpp \
	JavaScriptCore/runtime/CallData.h \
	JavaScriptCore/runtime/ClassInfo.h \
	JavaScriptCore/runtime/Collector.cpp \
	JavaScriptCore/runtime/Collector.h \
	JavaScriptCore/runtime/CollectorHeapIterator.h \
	JavaScriptCore/runtime/CommonIdentifiers.cpp \
	JavaScriptCore/runtime/CommonIdentifiers.h \
	JavaScriptCore/runtime/Completion.h \
	JavaScriptCore/runtime/ConstructData.cpp \
	JavaScriptCore/runtime/ConstructData.h \
	JavaScriptCore/runtime/DateConstructor.cpp \
	JavaScriptCore/runtime/DateConstructor.h \
	JavaScriptCore/runtime/DateInstance.cpp \
	JavaScriptCore/runtime/DateInstance.h \
	JavaScriptCore/runtime/DateMath.cpp \
	JavaScriptCore/runtime/DateMath.h \
	JavaScriptCore/runtime/DatePrototype.cpp \
	JavaScriptCore/runtime/DatePrototype.h \
	JavaScriptCore/runtime/Error.cpp \
	JavaScriptCore/runtime/Error.h \
	JavaScriptCore/runtime/ErrorConstructor.cpp \
	JavaScriptCore/runtime/ErrorConstructor.h \
	JavaScriptCore/runtime/ErrorInstance.cpp \
	JavaScriptCore/runtime/ErrorInstance.h \
	JavaScriptCore/runtime/ErrorPrototype.cpp \
	JavaScriptCore/runtime/ErrorPrototype.h \
	JavaScriptCore/runtime/FunctionConstructor.cpp \
	JavaScriptCore/runtime/FunctionConstructor.h \
	JavaScriptCore/runtime/FunctionPrototype.cpp \
	JavaScriptCore/runtime/FunctionPrototype.h \
	JavaScriptCore/runtime/GetterSetter.cpp \
	JavaScriptCore/runtime/GetterSetter.h \
	JavaScriptCore/runtime/GlobalEvalFunction.cpp \
	JavaScriptCore/runtime/GlobalEvalFunction.h \
	JavaScriptCore/runtime/Identifier.cpp \
	JavaScriptCore/runtime/Identifier.h \
	JavaScriptCore/runtime/InternalFunction.cpp \
	JavaScriptCore/runtime/InternalFunction.h \
	JavaScriptCore/runtime/Completion.cpp \
	JavaScriptCore/runtime/JSArray.cpp \
	JavaScriptCore/runtime/JSArray.h \
	JavaScriptCore/runtime/JSByteArray.cpp \
	JavaScriptCore/runtime/JSByteArray.h \
	JavaScriptCore/runtime/JSCell.cpp \
	JavaScriptCore/runtime/JSCell.h \
	JavaScriptCore/runtime/JSFunction.cpp \
	JavaScriptCore/runtime/JSFunction.h \
	JavaScriptCore/runtime/JSGlobalObject.cpp \
	JavaScriptCore/runtime/JSGlobalObject.h \
	JavaScriptCore/runtime/JSGlobalObjectFunctions.cpp \
	JavaScriptCore/runtime/JSGlobalObjectFunctions.h \
	JavaScriptCore/runtime/JSImmediate.cpp \
	JavaScriptCore/runtime/JSImmediate.h \
	JavaScriptCore/runtime/JSLock.cpp \
	JavaScriptCore/runtime/JSLock.h \
	JavaScriptCore/runtime/JSNumberCell.cpp \
	JavaScriptCore/runtime/JSNumberCell.h \
	JavaScriptCore/runtime/JSObject.cpp \
	JavaScriptCore/runtime/JSObject.h \
	JavaScriptCore/runtime/JSStaticScopeObject.cpp \
	JavaScriptCore/runtime/JSStaticScopeObject.h \
	JavaScriptCore/runtime/JSString.cpp \
	JavaScriptCore/runtime/JSString.h \
	JavaScriptCore/runtime/JSType.h \
	JavaScriptCore/runtime/JSValue.cpp \
	JavaScriptCore/runtime/JSValue.h \
	JavaScriptCore/runtime/JSVariableObject.cpp \
	JavaScriptCore/runtime/JSVariableObject.h \
	JavaScriptCore/runtime/JSWrapperObject.cpp \
	JavaScriptCore/runtime/JSWrapperObject.h \
	JavaScriptCore/runtime/Lookup.cpp \
	JavaScriptCore/runtime/Lookup.h \
	JavaScriptCore/runtime/MathObject.cpp \
	JavaScriptCore/runtime/MathObject.h \
	JavaScriptCore/runtime/NativeErrorConstructor.cpp \
	JavaScriptCore/runtime/NativeErrorConstructor.h \
	JavaScriptCore/runtime/NativeErrorPrototype.cpp \
	JavaScriptCore/runtime/NativeErrorPrototype.h \
	JavaScriptCore/runtime/NumberConstructor.cpp \
	JavaScriptCore/runtime/NumberConstructor.h \
	JavaScriptCore/runtime/NumberObject.cpp \
	JavaScriptCore/runtime/NumberObject.h \
	JavaScriptCore/runtime/NumberPrototype.cpp \
	JavaScriptCore/runtime/NumberPrototype.h \
	JavaScriptCore/runtime/ObjectConstructor.cpp \
	JavaScriptCore/runtime/ObjectConstructor.h \
	JavaScriptCore/runtime/ObjectPrototype.cpp \
	JavaScriptCore/runtime/ObjectPrototype.h \
	JavaScriptCore/runtime/Operations.cpp \
	JavaScriptCore/runtime/Operations.h \
	JavaScriptCore/runtime/PropertyMapHashTable.h \
	JavaScriptCore/runtime/PropertyNameArray.cpp \
	JavaScriptCore/runtime/PropertyNameArray.h \
	JavaScriptCore/runtime/PropertySlot.cpp \
	JavaScriptCore/runtime/PropertySlot.h \
	JavaScriptCore/runtime/Protect.h \
	JavaScriptCore/runtime/PrototypeFunction.cpp \
	JavaScriptCore/runtime/PrototypeFunction.h \
	JavaScriptCore/runtime/PutPropertySlot.h \
	JavaScriptCore/runtime/RegExp.cpp \
	JavaScriptCore/runtime/RegExp.h \
	JavaScriptCore/runtime/RegExpConstructor.cpp \
	JavaScriptCore/runtime/RegExpConstructor.h \
	JavaScriptCore/runtime/RegExpMatchesArray.h \
	JavaScriptCore/runtime/RegExpObject.cpp \
	JavaScriptCore/runtime/RegExpObject.h \
	JavaScriptCore/runtime/RegExpPrototype.cpp \
	JavaScriptCore/runtime/RegExpPrototype.h \
	JavaScriptCore/runtime/ScopeChain.cpp \
	JavaScriptCore/runtime/ScopeChain.h \
	JavaScriptCore/runtime/ScopeChainMark.h \
	JavaScriptCore/runtime/StringConstructor.cpp \
	JavaScriptCore/runtime/StringConstructor.h \
	JavaScriptCore/runtime/StringObject.cpp \
	JavaScriptCore/runtime/StringObject.h \
	JavaScriptCore/runtime/StringObjectThatMasqueradesAsUndefined.h \
	JavaScriptCore/runtime/StringPrototype.cpp \
	JavaScriptCore/runtime/StringPrototype.h \
	JavaScriptCore/runtime/SymbolTable.h \
	JavaScriptCore/runtime/Tracing.h \
	JavaScriptCore/runtime/UString.cpp \
	JavaScriptCore/runtime/UString.h \
	JavaScriptCore/wtf/FastMalloc.cpp \
	JavaScriptCore/wtf/FastMalloc.h \
	JavaScriptCore/wtf/MallocZoneSupport.h \
	JavaScriptCore/wtf/TCSystemAlloc.cpp \
	JavaScriptCore/wtf/TCSystemAlloc.h \
	JavaScriptCore/wtf/dtoa.cpp \
	JavaScriptCore/wtf/dtoa.h

else
javascriptcore_built_nosources += \
	DerivedSources/Grammar.cpp \
	DerivedSources/Grammar.h

javascriptcore_sources += \
	JavaScriptCore/runtime/ByteArray.cpp \
	JavaScriptCore/runtime/ByteArray.h \
	JavaScriptCore/runtime/JSByteArray.cpp \
	JavaScriptCore/runtime/JSByteArray.h \
	JavaScriptCore/AllInOneFile.cpp
endif # END ENABLE_DEBUG

DerivedSources/Grammar.h: DerivedSources/Grammar.cpp;

DerivedSources/Grammar.cpp: $(srcdir)/JavaScriptCore/parser/Grammar.y
	$(BISON) -d -p jscyy $(srcdir)/JavaScriptCore/parser/Grammar.y -o $@ > bison_out.txt 2>&1
	$(PERL) -p -e 'END { if ($$conflict) { unlink "Grammar.cpp"; die; } } $$conflict ||= /conflict/' < bison_out.txt
	cat $(GENSOURCES)/Grammar.hpp > $(GENSOURCES)/Grammar.h
	rm -f $(GENSOURCES)/Grammar.hpp bison_out.txt

DerivedSources/Lexer.lut.h: $(CREATE_HASH_TABLE) $(srcdir)/JavaScriptCore/parser/Keywords.table
	$(PERL) $^ > $@

JavaScriptCore/%.lut.h: $(CREATE_HASH_TABLE) $(srcdir)/JavaScriptCore/%.cpp
	$(PERL) $^ -i > $@

JavaScriptCore/pcre/chartables.c: $(srcdir)/JavaScriptCore/pcre/dftables
	$(PERL) $^ $@

bin_PROGRAMS += \
	Programs/jsc

noinst_PROGRAMS += \
	Programs/minidom

# minidom
Programs_minidom_SOURCES = \
	JavaScriptCore/API/tests/JSNode.c \
	JavaScriptCore/API/tests/JSNode.h \
	JavaScriptCore/API/tests/JSNodeList.c \
	JavaScriptCore/API/tests/JSNodeList.h \
	JavaScriptCore/API/tests/Node.c \
	JavaScriptCore/API/tests/Node.h \
	JavaScriptCore/API/tests/NodeList.c \
	JavaScriptCore/API/tests/NodeList.h \
	JavaScriptCore/API/tests/minidom.c

Programs_minidom_CPPFLAGS = \
	$(global_cppflags) \
	$(javascriptcore_cppflags)

Programs_minidom_CFLAGS = \
	-ansi \
	-fno-strict-aliasing \
	-O2 \
	$(global_cflags) \
	$(GLOBALDEPS_CFLAGS)

Programs_minidom_LDADD = \
	 libJavaScriptCore.la \
	 -lm \
	 -lstdc++

# jsc
Programs_jsc_SOURCES = \
	JavaScriptCore/jsc.cpp

Programs_jsc_CPPFLAGS = \
	$(global_cppflags) \
	$(javascriptcore_cppflags)

Programs_jsc_CXXFLAGS = \
	-fno-strict-aliasing \
	-O2 \
	$(global_cxxflags) \
	$(global_cflags) \
	$(GLOBALDEPS_CFLAGS) \
	$(UNICODE_CFLAGS)

Programs_jsc_LDADD = \
	libJavaScriptCore.la

javascriptcore_dist += \
	$(CREATE_HASH_TABLE) \
	JavaScriptCore/AUTHORS \
	JavaScriptCore/COPYING.LIB \
	JavaScriptCore/ChangeLog \
	JavaScriptCore/THANKS \
	JavaScriptCore/icu/LICENSE \
	JavaScriptCore/icu/README \
	JavaScriptCore/pcre/COPYING \
	JavaScriptCore/pcre/AUTHORS \
	JavaScriptCore/pcre/dftables \
	JavaScriptCore/pcre/ucptable.cpp \
	JavaScriptCore/parser/Grammar.y \
	JavaScriptCore/parser/Keywords.table

# Clean rules for JavaScriptCore
CLEANFILES += \
	JavaScriptCore/runtime/ArrayPrototype.lut.h \
	JavaScriptCore/runtime/DatePrototype.lut.h \
	JavaScriptCore/runtime/MathObject.lut.h \
	JavaScriptCore/runtime/NumberConstructor.lut.h \
	JavaScriptCore/runtime/RegExpConstructor.lut.h \
	JavaScriptCore/runtime/RegExpObject.lut.h \
	JavaScriptCore/runtime/StringPrototype.lut.h \
	JavaScriptCore/pcre/chartables.c \
	Programs/jsc \
	Programs/minidom
