diff options
Diffstat (limited to 'recipes/webkit/webkit-gtk/GNUmakefile.am')
-rw-r--r-- | recipes/webkit/webkit-gtk/GNUmakefile.am | 520 |
1 files changed, 520 insertions, 0 deletions
diff --git a/recipes/webkit/webkit-gtk/GNUmakefile.am b/recipes/webkit/webkit-gtk/GNUmakefile.am new file mode 100644 index 0000000000..c74e1fa428 --- /dev/null +++ b/recipes/webkit/webkit-gtk/GNUmakefile.am @@ -0,0 +1,520 @@ +# Top-level Makefile rule for automake +# +# Variable conventions: +# +# _h_api = API headers that will be installed and included in the distribution +# _cppflags = flags that will be passed to the C/CXX Preprocessor +# _sources = sources that will be compiled and included in the distribution +# _built_sources = files that will be autogenerated by the build system and +# will be part of the _SOURCES primary +# _built_nosources = files that are autogenerated but are not part of the +# _SOURCES primary +# _cleanfiles = files that will be removed by the clean target +# +# Sources, headers, flags, etc... should be added to the respective variables +# with the above suffix, e.g, webcore-specific sources should go to +# webcore_sources, gtk port API and WebCoreSupport parts to webkitgtk_sources, +# etc... The only exceptions are the global variables. See Global Variables +# below. +# +# Global Variables +# +# global_cppflags = CPPFLAGS that apply to JSC, WebCore, and to any +# specific port +# global_cflags = CFLAGS that apply to JSC, WebCore, and to +# any specific port +# global_cxxflags = CXXFLAGS that apply to JSC, WebCore, and to any +# specific port + +srcdir = @srcdir@ +VPATH = @srcdir@ + +# Directory for autogenerated sources +GENSOURCES := $(top_builddir)/DerivedSources +GENPROGRAMS := $(top_builddir)/Programs + +# Script for creating hash tables +CREATE_HASH_TABLE = $(srcdir)/JavaScriptCore/create_hash_table + +# Libraries and support components +bin_PROGRAMS := + +noinst_PROGRAMS := + +noinst_HEADERS := + +lib_LIBRARIES := + +IDL_BINDINGS := + +# Global flags to CPP +global_cppflags := + +global_cppflags += \ + -DWTF_USE_ICU_UNICODE=1 + +# Default compiler flags +global_cflags := \ + -Wall -W -Wcast-align -Wchar-subscripts -Wreturn-type \ + -Wformat -Wformat-security -Wno-format-y2k -Wundef \ + -Wmissing-format-attribute -Wpointer-arith -Wwrite-strings \ + -Wno-unused-parameter -Wno-parentheses \ + -fno-exceptions + +global_cxxflags := \ + $(SYMBOL_VISIBILITY_INLINES) \ + -fno-rtti + +if !ENABLE_DEBUG +global_cflags += \ + $(SYMBOL_VISIBILITY) +endif + +# -no-undefined required for building DLLs on Windows +# It breaks the build on other platforms, so we use it conditionally +if OS_WIN32 +no_undefined = -no-undefined +endif + +if OS_GNU +version_script = -Wl,--version-script,$(srcdir)/autotools/symbols.filter +endif + +# Shared libraries +lib_LTLIBRARIES = \ + libwebkit-1.0.la + +# Convenience libraries +noinst_LTLIBRARIES = \ + libJavaScriptCore.la \ + libWebCore.la + +# +# JavaScriptCore +javascriptcore_h_api := +javascriptcore_cppflags:= +javascriptcore_sources := +javascriptcore_built_sources := +javascriptcore_built_nosources := +javascriptcore_dist := + +javascriptcore_cppflags += \ + -I$(srcdir)/JavaScriptCore \ + -I$(srcdir)/JavaScriptCore/ForwardingHeaders \ + -I$(srcdir)/JavaScriptCore/parser \ + -I$(srcdir)/JavaScriptCore/wtf \ + -I$(top_builddir)/DerivedSources + +# The variables above are already included below so no need to touch +# these variables unless you really have to +nodist_EXTRA_libJavaScriptCore_la_SOURCES = \ + $(javascriptcore_built_nosources) + +nodist_libJavaScriptCore_la_SOURCES = \ + $(javascriptcore_built_sources) + +libJavaScriptCore_ladir = $(prefix)/include/webkit-1.0/JavaScriptCore +libJavaScriptCore_la_HEADERS = $(javascriptcore_h_api) + +libJavaScriptCore_la_SOURCES = \ + $(javascriptcore_sources) + +libJavaScriptCore_la_LIBADD = \ + $(UNICODE_LIBS) \ + $(GLIB_LIBS) \ + -lpthread + +libJavaScriptCore_la_CXXFLAGS = \ + $(global_cxxflags) \ + $(libJavaScriptCore_la_CFLAGS) + +libJavaScriptCore_la_CFLAGS = \ + -fstrict-aliasing \ + -O3 \ + $(global_cflags) \ + $(GLIB_CFLAGS) \ + $(UNICODE_CFLAGS) + +libJavaScriptCore_la_CPPFLAGS = \ + $(global_cppflags) \ + $(javascriptcore_cppflags) + +# +# WebCore +webcore_cppflags := +webcore_sources := +webcore_libadd := +webcore_built_sources := +webcore_built_nosources := +webcore_dist := +webcoregtk_cppflags := +webcoregtk_sources := + +nodist_EXTRA_libWebCore_la_SOURCES = \ + $(webcore_built_nosources) + +nodist_libWebCore_la_SOURCES = \ + $(webcore_built_sources) + +libWebCore_la_SOURCES = \ + $(webcore_sources) \ + $(webcoregtk_sources) + +libWebCore_la_CXXFLAGS = \ + $(global_cxxflags) \ + $(libWebCore_la_CFLAGS) + +libWebCore_la_CFLAGS = \ + -fno-strict-aliasing \ + $(global_cflags) \ + $(GLIB_CFLAGS) \ + $(UNICODE_CFLAGS) \ + $(LIBXML_CFLAGS) \ + $(CAIRO_CFLAGS) \ + $(PANGO_CFLAGS) \ + $(GTK_CFLAGS) \ + $(XT_CFLAGS) \ + $(LIBCURL_CFLAGS) \ + $(LIBSOUP_CFLAGS) \ + $(FREETYPE_CFLAGS) \ + $(SQLITE3_CFLAGS) \ + $(GSTREAMER_CFLAGS) \ + $(LIBXSLT_CFLAGS) \ + $(COVERAGE_CFLAGS) \ + $(HILDON_CFLAGS) \ + $(GEOCLUE_CFLAGS) + +libWebCore_la_CPPFLAGS = \ + $(global_cppflags) \ + $(webcore_cppflags) \ + $(javascriptcore_cppflags) \ + $(webcoregtk_cppflags) \ + $(HILDON_CPPFLAGS) + +libWebCore_la_LIBADD = \ + libJavaScriptCore.la \ + libWebCoreJS.la \ + $(webcore_libadd) \ + $(GLIB_LIBS) \ + $(LIBXML_LIBS) \ + $(CAIRO_LIBS) \ + $(PANGO_LIBS) \ + $(GTK_LIBS) \ + $(XT_LIBS) \ + $(LIBCURL_LIBS) \ + $(LIBSOUP_LIBS) \ + $(FREETYPE_LIBS) \ + $(UNICODE_LIBS) \ + $(SQLITE3_LIBS) \ + $(GSTREAMER_LIBS) \ + $(LIBXSLT_LIBS) \ + $(HILDON_LIBS) \ + $(JPEG_LIBS) \ + $(PNG_LIBS) \ + $(GEOCLUE_LIBS) \ + -lpthread + +# WebKit +webkitgtk_h_api := +webkitgtk_sources := +webkitgtk_cppflags := +webkitgtk_built_sources := +webkitgtk_built_nosources := +webkitgtk_cleanfiles := + +nodist_libwebkit_1_0_la_SOURCES = \ + $(webkitgtk_built_sources) + +libwebkit_1_0_ladir = $(prefix)/include/webkit-1.0/webkit +libwebkit_1_0_la_HEADERS = \ + $(webkitgtk_h_api) \ + WebKit/gtk/webkit/webkitenumtypes.h + +libwebkit_1_0_la_SOURCES = \ + $(webkitgtk_sources) + +libwebkit_1_0_la_CXXFLAGS = \ + $(libWebCore_la_CXXFLAGS) + +libwebkit_1_0_la_CFLAGS = \ + $(libWebCore_la_CFLAGS) + +libwebkit_1_0_la_CPPFLAGS = \ + $(libWebCore_la_CPPFLAGS) \ + $(webkitgtk_cppflags) + +libwebkit_1_0_la_LDFLAGS = \ + $(COVERAGE_LDFLAGS) \ + -version-info @LIBWEBKITGTK_VERSION@ \ + $(version_script) \ + $(no_undefined) + +libwebkit_1_0_la_LIBADD = \ + libWebCore.la + +# +# Extra checks and flags +global_cppflags += \ + -DBUILDING_CAIRO__=1 \ + -DBUILDING_GTK__=1 \ + -DWTF_CHANGES + +if !ENABLE_FAST_MALLOC +global_cppflags += \ + -DUSE_SYSTEM_MALLOC +endif + +if TARGET_X11 +global_cppflags += -DXP_UNIX +endif + +if !ENABLE_DEBUG +global_cppflags += -DNDEBUG +else +webcoregtk_cppflags += \ + -DG_DISABLE_DEPRECATED \ + -DGDK_PIXBUF_DISABLE_DEPRECATED \ + -DGDK_DISABLE_DEPRECATED \ + -DGTK_DISABLE_DEPRECATED \ + -DPANGO_DISABLE_DEPRECATED + +# Might be useful in the future +# -DGDK_MULTIHEAD_SAFE \ +# -DGTK_MULTIHEAD_SAFE +endif + +if !ENABLE_DATABASE +global_cppflags += -DENABLE_DATABASE=0 +endif + +if !ENABLE_ICONDATABASE +global_cppflags += -DENABLE_ICONDATABASE=0 +endif + +if ENABLE_COVERAGE +global_cppflags += \ + -DGCC_GENERATE_TEST_COVERAGE_FILES \ + -DGCC_INSTRUMENT_PROGRAM_FLOW_ARCS +endif + +if ENABLE_VIDEO +webcore_libadd += -lgstinterfaces-0.10 -lgstvideo-0.10 +endif + +webkitgtk_h_api += \ + WebKit/gtk/webkit/webkit.h \ + WebKit/gtk/webkit/webkitdefines.h \ + WebKit/gtk/webkit/webkitnetworkrequest.h \ + WebKit/gtk/webkit/webkitversion.h \ + WebKit/gtk/webkit/webkitwebbackforwardlist.h \ + WebKit/gtk/webkit/webkitwebframe.h \ + WebKit/gtk/webkit/webkitwebhistoryitem.h \ + WebKit/gtk/webkit/webkitwebinspector.h \ + WebKit/gtk/webkit/webkitwebnavigationaction.h \ + WebKit/gtk/webkit/webkitwebpolicydecision.h \ + WebKit/gtk/webkit/webkitwebsettings.h \ + WebKit/gtk/webkit/webkitwebwindowfeatures.h \ + WebKit/gtk/webkit/webkitwebview.h + +webkitgtk_built_sources += \ + DerivedSources/webkitenumtypes.cpp \ + DerivedSources/webkitmarshal.cpp \ + DerivedSources/webkitmarshal.h \ + WebKit/gtk/webkit/webkitenumtypes.h + +webkitgtk_sources += \ + WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp \ + WebKit/gtk/WebCoreSupport/ChromeClientGtk.h \ + WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp \ + WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.h \ + WebKit/gtk/WebCoreSupport/DragClientGtk.cpp \ + WebKit/gtk/WebCoreSupport/DragClientGtk.h \ + WebKit/gtk/WebCoreSupport/EditorClientGtk.cpp \ + WebKit/gtk/WebCoreSupport/EditorClientGtk.h \ + WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp \ + WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.h \ + WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp \ + WebKit/gtk/WebCoreSupport/InspectorClientGtk.h \ + WebKit/gtk/WebCoreSupport/PasteboardHelperGtk.cpp \ + WebKit/gtk/WebCoreSupport/PasteboardHelperGtk.h \ + WebKit/gtk/webkit/webkitnetworkrequest.cpp \ + WebKit/gtk/webkit/webkitprivate.cpp \ + WebKit/gtk/webkit/webkitprivate.h \ + WebKit/gtk/webkit/webkitversion.cpp \ + WebKit/gtk/webkit/webkitwebbackforwardlist.cpp \ + WebKit/gtk/webkit/webkitwebframe.cpp \ + WebKit/gtk/webkit/webkitwebhistoryitem.cpp \ + WebKit/gtk/webkit/webkitwebinspector.cpp \ + WebKit/gtk/webkit/webkitwebnavigationaction.cpp \ + WebKit/gtk/webkit/webkitwebpolicydecision.cpp \ + WebKit/gtk/webkit/webkitwebsettings.cpp \ + WebKit/gtk/webkit/webkitwebview.cpp \ + WebKit/gtk/webkit/webkitwebwindowfeatures.cpp + +webkitgtk_cppflags += \ + -DBUILDING_WEBKIT \ + -I$(srcdir)/WebKit/gtk \ + -I$(srcdir)/WebKit/gtk/WebCoreSupport \ + -I$(srcdir)/WebKit/gtk/webkit \ + -I$(top_builddir)/WebKit/gtk/webkit + +webkitgtk_cleanfiles += \ + $(top_builddir)/Programs/GtkLauncher \ + $(top_builddir)/WebKit/gtk/webkit-1.0.pc \ + $(top_builddir)/WebKit/gtk/webkit/webkitenumtypes.h + +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = WebKit/gtk/webkit-1.0.pc + +stamp_files := \ + stamp-webkitmarshal.cpp \ + stamp-webkitmarshal.h \ + stamp-webkitenumtypes.cpp \ + stamp-webkitenumtypes.h + +WEBKIT_MARSHAL = $(GENSOURCES)/webkitmarshal +WEBKIT_MARSHAL_LIST = $(WEBKIT_MARSHAL).list + +$(WEBKIT_MARSHAL_LIST): $(webkitgtk_sources) GNUmakefile.am + ( cd $(top_srcdir) && \ + sed -n -e 's/.*webkit_marshal_\([[:upper:][:digit:]]*__[[:upper:][:digit:]_]*\).*/\1/p' \ + $(webkitgtk_sources) ) \ + | sed -e 's/__/:/' -e 'y/_/,/' | sort -u > $@.tmp + if cmp -s $@.tmp $@; then \ + rm $@.tmp; \ + else \ + mv $@.tmp $@; \ + fi + +$(WEBKIT_MARSHAL).cpp: stamp-webkitmarshal.cpp + @true + +$(WEBKIT_MARSHAL).h: stamp-webkitmarshal.h + @true + +stamp-webkitmarshal.cpp: $(WEBKIT_MARSHAL_LIST) + echo "extern \"C\" {" > $(WEBKIT_MARSHAL).cpp && \ + $(GLIB_GENMARSHAL) --prefix=webkit_marshal $(WEBKIT_MARSHAL_LIST) --body >> $(WEBKIT_MARSHAL).cpp && echo '}' >> $(WEBKIT_MARSHAL).cpp && \ + echo timestamp > $(@F) + +stamp-webkitmarshal.h: $(WEBKIT_MARSHAL_LIST) + $(GLIB_GENMARSHAL) --prefix=webkit_marshal $(WEBKIT_MARSHAL_LIST) --header > $(WEBKIT_MARSHAL).h && \ + echo timestamp > $(@F) + +WebKit/gtk/webkit/webkitenumtypes.h: stamp-webkitenumtypes.h + @true +stamp-webkitenumtypes.h: $(webkitgtk_h_api) GNUmakefile + (cd $(srcdir) \ + && glib-mkenums \ + --fhead "#ifndef WEBKIT_ENUM_TYPES_H\n" \ + --fhead "#define WEBKIT_ENUM_TYPES_H\n\n" \ + --fhead "#include <glib-object.h>\n\n" \ + --fhead "#include <webkit/webkitdefines.h>\n\n" \ + --fhead "G_BEGIN_DECLS\n\n" \ + --ftail "G_END_DECLS\n\n" \ + --ftail "#endif\n" \ + --fprod "#include <@filename@>\n\n" \ + --eprod "#define WEBKIT_TYPE_@ENUMSHORT@ @enum_name@_get_type()\n\n" \ + --eprod "WEBKIT_API GType\n@enum_name@_get_type(void);\n\n" \ + $(webkitgtk_h_api) | \ + sed 's,WebKit/gtk/,,' | \ + sed 's,web_kit,webkit,' | \ + sed 's,WEBKIT_TYPE_KIT,WEBKIT_TYPE,' \ + ) > xgen-gth \ + && (cmp -s xgen-gth WebKit/gtk/webkit/webkitenumtypes.h || cp xgen-gth WebKit/gtk/webkit/webkitenumtypes.h) \ + && rm -f xgen-gth \ + && echo timestamp > $(@F) + +DerivedSources/webkitenumtypes.cpp: $(webkitgtk_h_api) GNUmakefile + (cd $(srcdir) \ + && glib-mkenums \ + --fhead "#include <config.h>\n" \ + --fhead "#include <glib-object.h>\n" \ + --fhead "#include \"$(top_builddir)/WebKit/gtk/webkit/webkitenumtypes.h\"\n\n" \ + --fhead "extern \"C\" {\n\n" \ + --fprod "\n/* enumerations from \"@filename@\" */" \ + --vhead "static const G@Type@Value _@enum_name@_values[] = {" \ + --vprod " { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \ + --vtail " { 0, NULL, NULL }\n};\n\n" \ + --vtail "GType @enum_name@_get_type(void)\n{\n" \ + --vtail " static GType type = 0;\n\n" \ + --vtail " if (!type)\n" \ + --vtail " type = g_@type@_register_static(\"@EnumName@\", _@enum_name@_values);\n\n" \ + --vtail " return type;\n}\n\n" \ + --ftail "}\n" \ + $(webkitgtk_h_api) | \ + sed 's,web_kit,webkit,' \ + ) > xgen-gtc \ + && cp xgen-gtc $@ \ + && rm -f xgen-gtc + +# END WEBKIT GTK+ +# +# Files that will be distributed +EXTRA_DIST = \ + WebKit/LICENSE \ + $(javascriptcore_dist) \ + $(webcore_dist) \ + symbols.filter + +# Files that will be cleaned +MAINTAINERCLEANFILES := $(stamp_files) $(BUILT_SOURCES) +DISTCLEANFILES := $(stamp_files) $(BUILT_SOURCES) doltcompile doltlibtool +CLEANFILES := $(stamp_files) $(BUILT_SOURCES) + +# Include module makefiles +include JavaScriptCore/GNUmakefile.am +include WebCore/GNUmakefile.am +include WebKitTools/GNUmakefile.am + +# Build unit test +noinst_PROGRAMS += Programs/UnitTests +Programs_UnitTests_CPPFLAGS = \ + -I$(srcdir)/WebKit/gtk \ + -I$(top_builddir)/WebKit/gtk \ + $(global_cppflags) \ + $(javascriptcore_cppflags) + +Programs_UnitTests_SOURCES = \ + WebKit/gtk/tests/main.c + +Programs_UnitTests_CFLAGS = \ + -fno-strict-aliasing \ + -O2 \ + $(global_cflags) \ + $(GLIB_CFLAGS) \ + $(GTK_CFLAGS) + +Programs_UnitTests_LDADD = \ + libwebkit-1.0.la \ + $(GTK_LIBS) + +# Autogenerated sources +BUILT_SOURCES := \ + $(javascriptcore_built_sources) \ + $(javascriptcore_built_nosources) \ + $(webcore_built_sources) \ + $(webcore_built_nosources) \ + $(webkitgtk_built_sources) \ + $(webkitgtk_built_nosources) + +# Project-wide clean rules +CLEANFILES += \ + $(webkitgtk_cleanfiles) + +MAINTAINERCLEANFILES += \ + $(srcdir)/aconfig.h.in \ + configure \ + config.* \ + GNUmakefile.in \ + INSTALL \ + README + +# Older automake versions (1.7) place Plo files in a different place so we need +# to create the output directory manually. +all-local: + mkdir -p $(top_builddir)/$(DEPDIR)/DerivedSources + +# remove built sources and program directories +clean-local: + -rm -rf $(GENSOURCES) $(GENPROGRAMS) |