blob: c4af24d97fcade4c64a8de09b9eae55e5c936783 [file] [log] [blame]
include $(srcdir)/Source/JavaScriptCore/GNUmakefile.list.am
lib_LTLIBRARIES += \
libjavascriptcoregtk-@WEBKITGTK_API_MAJOR_VERSION@.@WEBKITGTK_API_MINOR_VERSION@.la
jsc_lib_for_dep = libjavascriptcoregtk-@WEBKITGTK_API_MAJOR_VERSION@.@WEBKITGTK_API_MINOR_VERSION@.la
$(jsc_lib_for_dep): $(srcdir)/Source/JavaScriptCore/GNUmakefile.list.am
# We are going to make everything public for now. When
# https://bugs.webkit.org/show_bug.cgi?id=27551 is fixed we'll able to
# simply rely on the usual symbol visibility flags.
libjavascriptcoregtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_LDFLAGS = \
-version-info @LIBJAVASCRIPTCOREGTK_VERSION@ \
$(no_undefined)
nodist_EXTRA_libjavascriptcoregtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_SOURCES = \
$(javascriptcore_built_nosources)
nodist_libjavascriptcoregtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_SOURCES = \
$(javascriptcore_built_sources)
libjavascriptcoregtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_ladir = $(libwebkitgtkincludedir)/JavaScriptCore
libjavascriptcoregtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_HEADERS = $(javascriptcore_h_api)
libjavascriptcoregtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_SOURCES = \
$(javascriptcore_sources)
libjavascriptcoregtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_LIBADD = \
-lpthread \
libWTF.la \
$(GLIB_LIBS) \
$(LLVM_LIBS) \
$(UNICODE_LIBS) \
$(WINMM_LIBS)
libjavascriptcoregtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_CXXFLAGS = \
$(global_cxxflags) \
$(libjavascriptcoregtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_CFLAGS)
libjavascriptcoregtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_CFLAGS = \
$(javascriptcore_cflags)
libjavascriptcoregtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_CPPFLAGS = \
$(global_cppflags) \
$(javascriptcore_cppflags)
javascriptcore_cppflags += \
-I$(srcdir)/Source \
-I$(srcdir)/Source/JavaScriptCore \
-I$(srcdir)/Source/JavaScriptCore/API \
-I$(srcdir)/Source/JavaScriptCore/ForwardingHeaders \
-I$(srcdir)/Source/JavaScriptCore/assembler \
-I$(srcdir)/Source/JavaScriptCore/bindings \
-I$(srcdir)/Source/JavaScriptCore/builtins \
-I$(srcdir)/Source/JavaScriptCore/bytecode \
-I$(srcdir)/Source/JavaScriptCore/bytecompiler \
-I$(srcdir)/Source/JavaScriptCore/debugger \
-I$(srcdir)/Source/JavaScriptCore/dfg \
-I$(srcdir)/Source/JavaScriptCore/disassembler \
-I$(srcdir)/Source/JavaScriptCore/disassembler/udis86 \
-I$(srcdir)/Source/JavaScriptCore/ftl \
-I$(srcdir)/Source/JavaScriptCore/heap \
-I$(srcdir)/Source/JavaScriptCore/inspector \
-I$(srcdir)/Source/JavaScriptCore/inspector/agents \
-I$(srcdir)/Source/JavaScriptCore/interpreter \
-I$(srcdir)/Source/JavaScriptCore/jit \
-I$(srcdir)/Source/JavaScriptCore/llint \
-I$(srcdir)/Source/JavaScriptCore/parser \
-I$(srcdir)/Source/JavaScriptCore/profiler \
-I$(srcdir)/Source/JavaScriptCore/runtime \
-I$(srcdir)/Source/JavaScriptCore/tools \
-I$(srcdir)/Source/JavaScriptCore/yarr \
-I$(top_builddir)/DerivedSources/JavaScriptCore \
-I$(srcdir)/Source/WTF \
$(LLVM_CFLAGS)
# FIXME: the -fomit-frame-pointer and -ftree-dce optimizations are disabled after they've been causing
# trouble with the merged jsCStack code. The former is required due to otherwise incorrectly compiled
# operationCallEval function, while the latter is required when using GCC 4.8. See bugs #127777 and
# #127909 for more information.
javascriptcore_cppflags += \
-fno-omit-frame-pointer
if COMPILER_GCC
javascriptcore_cppflags += \
-fno-tree-dce
endif
javascriptcore_cflags += \
$(global_cflags) \
$(GLIB_CFLAGS) \
$(LLVM_CFLAGS) \
$(UNICODE_CFLAGS)
pkgconfig_DATA += Source/JavaScriptCore/javascriptcoregtk-@WEBKITGTK_API_VERSION@.pc
$(shell mkdir -p DerivedSources/JavaScriptCore)
DerivedSources/JavaScriptCore/Bytecodes.h: $(srcdir)/Source/JavaScriptCore/generate-bytecode-files $(srcdir)/Source/JavaScriptCore/bytecode/BytecodeList.json
$(AM_V_GEN)$(PYTHON) $(srcdir)/Source/JavaScriptCore/generate-bytecode-files --bytecodes_h $@ $(srcdir)/Source/JavaScriptCore/bytecode/BytecodeList.json
DerivedSources/JavaScriptCore/InitBytecodes.asm: $(srcdir)/Source/JavaScriptCore/generate-bytecode-files $(srcdir)/Source/JavaScriptCore/bytecode/BytecodeList.json
$(AM_V_GEN)$(PYTHON) $(srcdir)/Source/JavaScriptCore/generate-bytecode-files --init_bytecodes_asm $@ $(srcdir)/Source/JavaScriptCore/bytecode/BytecodeList.json
DerivedSources/JavaScriptCore/Lexer.lut.h: $(srcdir)/Source/JavaScriptCore/create_hash_table $(srcdir)/Source/JavaScriptCore/parser/Keywords.table
$(AM_V_GEN)$(PERL) $^ > $@
DerivedSources/JavaScriptCore/%.lut.h: $(srcdir)/Source/JavaScriptCore/create_hash_table $(srcdir)/Source/JavaScriptCore/runtime/%.cpp
$(AM_V_GEN)$(PERL) $^ -i > $@
DerivedSources/JavaScriptCore/RegExpJitTables.h: $(srcdir)/Source/JavaScriptCore/create_regex_tables
$(AM_V_GEN)$(PYTHON) $^ > $@
DerivedSources/JavaScriptCore/KeywordLookup.h: $(srcdir)/Source/JavaScriptCore/KeywordLookupGenerator.py $(srcdir)/Source/JavaScriptCore/parser/Keywords.table
$(AM_V_GEN)$(PYTHON) $^ > $@
DerivedSources/JavaScriptCore/LLIntDesiredOffsets.h: $(javascriptcore_sources) $(llint_nosources) $(offlineasm_nosources)
$(AM_V_GEN)$(RUBY) $(srcdir)/Source/JavaScriptCore/offlineasm/generate_offset_extractor.rb $(srcdir)/Source/JavaScriptCore/llint/LowLevelInterpreter.asm $@
$(AM_V_at)touch $@
$(Programs_LLIntOffsetsExtractor_OBJECTS): DerivedSources/JavaScriptCore/LLIntDesiredOffsets.h DerivedSources/JavaScriptCore/Bytecodes.h
DerivedSources/JavaScriptCore/LLIntAssembly.h: Programs/LLIntOffsetsExtractor$(EXEEXT) DerivedSources/JavaScriptCore/InitBytecodes.asm
$(AM_V_GEN)$(RUBY) $(srcdir)/Source/JavaScriptCore/offlineasm/asm.rb $(srcdir)/Source/JavaScriptCore/llint/LowLevelInterpreter.asm Programs/LLIntOffsetsExtractor$(EXEEXT) $@
$(AM_V_at)touch $@
DerivedSources/JavaScriptCore/JSCBuiltins.h: DerivedSources/JavaScriptCore/JSCBuiltins.cpp
DerivedSources/JavaScriptCore/JSCBuiltins.cpp: $(srcdir)/Source/JavaScriptCore/generate-js-builtins $(javascriptcore_builtins_js_nosources)
$(AM_V_GEN)$(PYTHON) $^ $@
DerivedSources/JavaScriptCore/udis86_itab.h: DerivedSources/JavaScriptCore/udis86_itab.c
DerivedSources/JavaScriptCore/udis86_itab.c: $(udis86_nosources)
$(AM_V_GEN)$(PYTHON) $(srcdir)/Source/JavaScriptCore/disassembler/udis86/itab.py --outputDir DerivedSources/JavaScriptCore $(srcdir)/Source/JavaScriptCore/disassembler/udis86/optable.xml
$(libjavascriptcoregtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_OBJECTS): DerivedSources/JavaScriptCore/LLIntAssembly.h
jsc: $(javascriptcore_built_nosources) Programs/jsc$(EXEEXT)
bin_PROGRAMS += \
Programs/jsc-@WEBKITGTK_API_MAJOR_VERSION@$(EXEEXT)
noinst_PROGRAMS += \
Programs/jsc \
Programs/minidom \
Programs/LLIntOffsetsExtractor
Programs_minidom_CPPFLAGS = \
$(global_cppflags) \
$(javascriptcore_cppflags)
Programs_minidom_CFLAGS = \
-ansi \
-fno-strict-aliasing \
$(global_cflags) \
$(GLOBALDEPS_CFLAGS)
Programs_minidom_LDADD = \
libjavascriptcoregtk-@WEBKITGTK_API_MAJOR_VERSION@.@WEBKITGTK_API_MINOR_VERSION@.la \
$(WINMM_LIBS) \
-lm \
-lpthread \
-lstdc++
Programs_minidom_LDFLAGS = \
-no-install
Programs_LLIntOffsetsExtractor_CPPFLAGS = \
$(global_cppflags) \
$(javascriptcore_cppflags)
Programs_LLIntOffsetsExtractor_CFLAGS = \
-ansi \
-fno-strict-aliasing \
$(global_cflags) \
$(GLOBALDEPS_CFLAGS)
Programs_LLIntOffsetsExtractor_LDADD = \
-lpthread \
libWTF.la \
$(UNICODE_LIBS) \
$(GLIB_LIBS) \
$(WINMM_LIBS) \
-lm \
-lpthread \
-lstdc++
Programs_LLIntOffsetsExtractor_LDFLAGS = \
-no-install
# jsc
Programs/jsc$(EXEEXT): Programs/jsc-@WEBKITGTK_API_MAJOR_VERSION@$(EXEEXT)
$(AM_V_GEN)cp -f Programs/jsc-@WEBKITGTK_API_MAJOR_VERSION@$(EXEEXT) Programs/jsc$(EXEEXT)
Programs_jsc_LDADD =
Programs_jsc_SOURCES =
Programs_jsc_@WEBKITGTK_API_MAJOR_VERSION@_CPPFLAGS = \
$(global_cppflags) \
$(javascriptcore_cppflags)
Programs_jsc_@WEBKITGTK_API_MAJOR_VERSION@_CXXFLAGS = \
-fno-strict-aliasing \
$(global_cxxflags) \
$(global_cflags) \
$(GLOBALDEPS_CFLAGS) \
$(UNICODE_CFLAGS)
Programs_jsc_@WEBKITGTK_API_MAJOR_VERSION@_LDADD = \
-lpthread \
libjavascriptcoregtk-@WEBKITGTK_API_MAJOR_VERSION@.@WEBKITGTK_API_MINOR_VERSION@.la \
$(WINMM_LIBS)
EXTRA_DIST += \
Source/JavaScriptCore/AUTHORS \
Source/JavaScriptCore/ChangeLog \
Source/JavaScriptCore/COPYING.LIB \
Source/JavaScriptCore/create_hash_table \
Source/JavaScriptCore/create_regex_tables \
Source/JavaScriptCore/icu/LICENSE \
Source/JavaScriptCore/icu/README \
Source/JavaScriptCore/inspector/InjectedScriptSource.js \
Source/JavaScriptCore/inspector/protocol/Console.json \
Source/JavaScriptCore/inspector/protocol/Debugger.json \
Source/JavaScriptCore/inspector/protocol/GenericTypes.json \
Source/JavaScriptCore/inspector/protocol/InspectorDomain.json \
Source/JavaScriptCore/inspector/protocol/Runtime.json \
Source/JavaScriptCore/inspector/scripts/CodeGeneratorInspector.py \
Source/JavaScriptCore/inspector/scripts/CodeGeneratorInspectorStrings.py \
Source/JavaScriptCore/inspector/scripts/cssmin.py \
Source/JavaScriptCore/inspector/scripts/generate-combined-inspector-json.py \
Source/JavaScriptCore/inspector/scripts/inline-and-minify-stylesheets-and-scripts.py \
Source/JavaScriptCore/inspector/scripts/jsmin.py \
Source/JavaScriptCore/inspector/scripts/xxd.pl \
Source/JavaScriptCore/KeywordLookupGenerator.py \
Source/JavaScriptCore/parser/Keywords.table \
Source/JavaScriptCore/THANKS \
$(javascriptcore_builtins_js_nosources) \
$(llint_nosources) \
$(offlineasm_nosources) \
$(udis86_nosources)
CLEANFILES += \
$(javascriptcore_built_nosources) \
Programs/jsc \
Programs/jsc-@WEBKITGTK_API_MAJOR_VERSION@ \
Programs/LLIntOffsetsExtractor \
Programs/minidom
DISTCLEANFILES += \
$(top_builddir)/Source/JavaScriptCore/javascriptcoregtk-@WEBKITGTK_API_VERSION@.pc
if ENABLE_INTROSPECTION
# The GIR file is generated via autoconf, as we don't need to run the scanner against non-GObject libraries.
JavaScriptCore-@WEBKITGTK_API_VERSION@.typelib: JavaScriptCore-@WEBKITGTK_API_VERSION@.gir $(G_IR_COMPILER)
$(AM_V_GEN)$(G_IR_COMPILER) --includedir $(WebKit) --includedir $(top_builddir) $< -o $@
gir_DATA += JavaScriptCore-@WEBKITGTK_API_VERSION@.gir
typelibs_DATA += JavaScriptCore-@WEBKITGTK_API_VERSION@.typelib
CLEANFILES += JavaScriptCore-@WEBKITGTK_API_VERSION@.gir JavaScriptCore-@WEBKITGTK_API_VERSION@.typelib
endif
# Inspector Interfaces
JavaScriptCore_INSPECTOR_DOMAINS := \
$(JavaScriptCore)/inspector/protocol/Console.json \
$(JavaScriptCore)/inspector/protocol/Debugger.json \
$(JavaScriptCore)/inspector/protocol/GenericTypes.json \
$(JavaScriptCore)/inspector/protocol/InspectorDomain.json \
$(JavaScriptCore)/inspector/protocol/Runtime.json
# The combined JSON file depends on the actual set of domains and their file contents, so that
# adding, modifying, or removing domains will trigger regeneration of inspector files.
.PHONY: force
EnabledInspectorDomains : force
echo '$(INSPECTOR_DOMAINS)' | cmp -s - $@ || echo '$(INSPECTOR_DOMAINS)' > $@
DerivedSources/JavaScriptCore/InspectorJS.json: $(INSPECTOR_SCRIPTS_DIR)/generate-combined-inspector-json.py $(JavaScriptCore_INSPECTOR_DOMAINS) EnabledInspectorDomains
$(AM_V_GEN)$(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/generate-combined-inspector-json.py $(JavaScriptCore)/inspector/protocol > $(GENSOURCES_JAVASCRIPTCORE)/InspectorJS.json
# Inspector Backend Dispatchers, Frontend Dispatchers, Type Builders
# Copy generated header files to DerivedSources/JavaScriptCore/inspector so that WebCore's ForwardingHeader style of #include <inspector/Foo.h> will work.
DerivedSources/JavaScriptCore/InspectorJSBackendDispatchers.cpp: DerivedSources/JavaScriptCore/InspectorJS.json $(INSPECTOR_SCRIPTS_DIR)/CodeGeneratorInspector.py $(INSPECTOR_SCRIPTS_DIR)/CodeGeneratorInspectorStrings.py
$(AM_V_GEN)$(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/CodeGeneratorInspector.py $< --output_h_dir $(GENSOURCES_JAVASCRIPTCORE) --output_cpp_dir $(GENSOURCES_JAVASCRIPTCORE) --output_js_dir $(GENSOURCES_JAVASCRIPTCORE) --output_type JavaScript
$(AM_V_at)touch $@
mkdir -p DerivedSources/JavaScriptCore/inspector
cp DerivedSources/JavaScriptCore/InspectorJSTypeBuilders.h DerivedSources/JavaScriptCore/InspectorJSFrontendDispatchers.h DerivedSources/JavaScriptCore/InspectorJSBackendDispatchers.h DerivedSources/JavaScriptCore/inspector
DerivedSources/JavaScriptCore/InspectorJSTypeBuilders.h: DerivedSources/JavaScriptCore/InspectorJSTypeBuilders.cpp
DerivedSources/JavaScriptCore/InspectorJSTypeBuilders.cpp: DerivedSources/JavaScriptCore/InspectorJSFrontendDispatchers.h
DerivedSources/JavaScriptCore/InspectorJSFrontendDispatchers.h: DerivedSources/JavaScriptCore/InspectorJSFrontendDispatchers.cpp
DerivedSources/JavaScriptCore/InspectorJSFrontendDispatchers.cpp: DerivedSources/JavaScriptCore/InspectorJSBackendCommands.js
DerivedSources/JavaScriptCore/InspectorJSBackendCommands.js: DerivedSources/JavaScriptCore/InspectorJSBackendDispatchers.h
DerivedSources/JavaScriptCore/InspectorJSBackendDispatchers.h: DerivedSources/JavaScriptCore/InspectorJSBackendDispatchers.cpp
DerivedSources/JavaScriptCore/InjectedScriptSource.h: $(JavaScriptCore)/inspector/InjectedScriptSource.js $(INSPECTOR_SCRIPTS_DIR)/xxd.pl $(INSPECTOR_SCRIPTS_DIR)/jsmin.py
$(AM_V_GEN)$(PYTHON) $(INSPECTOR_SCRIPTS_DIR)/jsmin.py < $< > $(GENSOURCES_JAVASCRIPTCORE)/InjectedScriptSource.min.js
$(AM_V_at)$(PERL) $(INSPECTOR_SCRIPTS_DIR)/xxd.pl InjectedScriptSource_js $(GENSOURCES_JAVASCRIPTCORE)/InjectedScriptSource.min.js $@
$(AM_V_at)rm -rf $(GENSOURCES_JAVASCRIPTCORE)/InjectedScriptSource.min.js