From a24679ddf8b96590fc6bf5ed7fadc8724a40445c Mon Sep 17 00:00:00 2001 From: Olivier Fourdan Date: Fri, 15 Sep 2017 10:39:50 +0200 Subject: [PATCH 1/2] Revert "build: Drop autotools support" This reverts commit cf010cfd8fc1440373c1ed44540a54a5341cf3eb. --- Makefile.am | 33 ++++ autogen.sh | 35 ++++ browser-plugin/Makefile.am | 23 +++ configure.ac | 280 +++++++++++++++++++++++++++++++ data/Makefile.am | 136 +++++++++++++++ docs/Makefile.am | 1 + docs/reference/Makefile.am | 1 + docs/reference/shell/Makefile.am | 139 ++++++++++++++++ docs/reference/st/Makefile.am | 104 ++++++++++++ gtk-doc.make | 304 ++++++++++++++++++++++++++++++++++ js/Makefile.am | 39 +++++ man/Makefile.am | 19 +++ src/Makefile.am | 349 +++++++++++++++++++++++++++++++++++++++ tests/Makefile.am | 45 +++++ 14 files changed, 1508 insertions(+) create mode 100644 Makefile.am create mode 100755 autogen.sh create mode 100644 browser-plugin/Makefile.am create mode 100644 configure.ac create mode 100644 data/Makefile.am create mode 100644 docs/Makefile.am create mode 100644 docs/reference/Makefile.am create mode 100644 docs/reference/shell/Makefile.am create mode 100644 docs/reference/st/Makefile.am create mode 100644 gtk-doc.make create mode 100644 js/Makefile.am create mode 100644 man/Makefile.am create mode 100644 src/Makefile.am create mode 100644 tests/Makefile.am diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 000000000..eba7d2b28 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,33 @@ +# Point to our macro directory and pick up user flags from the environment +ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} + +SUBDIRS = data js subprojects/gvc src tests po docs + +if BUILD_BROWSER_PLUGIN +SUBDIRS += browser-plugin +endif + +if ENABLE_MAN +SUBDIRS += man +endif + +EXTRA_DIST = \ + .project \ + .settings \ + autogen.sh \ + tools/check-for-missing.py + +# These are files checked into Git that we don't want to distribute +DIST_EXCLUDE = \ + .gitignore \ + .gitmodules \ + gnome-shell.doap \ + HACKING \ + MAINTAINERS \ + tools/build/* + +distcheck-hook: + @echo "Checking disted files against files in git" + @$(srcdir)/tools/check-for-missing.py $(srcdir) $(distdir) $(DIST_EXCLUDE) + +DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc --enable-man diff --git a/autogen.sh b/autogen.sh new file mode 100755 index 000000000..9794dc3b9 --- /dev/null +++ b/autogen.sh @@ -0,0 +1,35 @@ +#!/bin/sh +# Run this to generate all the initial makefiles, etc. + +srcdir=`dirname $0` +test -z "$srcdir" && srcdir=. + +olddir="$(pwd)" + +cd "${srcdir}" + +(test -f configure.ac \ + && test -d src) || { + echo -n "**Error**: Directory "\`$srcdir\'" does not look like the" + echo " top-level gnome-shell directory" + exit 1 +} + +# Fetch submodules if needed +if test ! -f subprojects/gvc/Makefile.am || test ! -f data/theme/gnome-shell-sass/COPYING; +then + echo "+ Setting up submodules" + git submodule init +fi +git submodule update + +aclocal --install || exit 1 +gtkdocize --copy || exit 1 +intltoolize --force --copy --automake || exit 1 +autoreconf --verbose --force --install || exit 1 + +cd "${olddir}" + +if [ "$NOCONFIGURE" = "" ]; then + "${srcdir}/configure" "$@" || exit 1 +fi diff --git a/browser-plugin/Makefile.am b/browser-plugin/Makefile.am new file mode 100644 index 000000000..6ed1d6340 --- /dev/null +++ b/browser-plugin/Makefile.am @@ -0,0 +1,23 @@ + +mozillalibdir = $(BROWSER_PLUGIN_DIR) + +mozillalib_LTLIBRARIES = libgnome-shell-browser-plugin.la + +# Browsers can unload and reload the module while browsing, which is not supported by GObject. +# We pass -Wl,-z,nodelete to the linker to ensure the module is never unloaded. +# https://bugzilla.gnome.org/show_bug.cgi?id=737932 +libgnome_shell_browser_plugin_la_LDFLAGS = -module -avoid-version -no-undefined -Wl,-z,nodelete + +libgnome_shell_browser_plugin_la_LIBADD = \ + $(BROWSER_PLUGIN_LIBS) + +libgnome_shell_browser_plugin_la_SOURCES = \ + browser-plugin.c \ + npapi/npapi.h \ + npapi/npfunctions.h \ + npapi/npruntime.h \ + npapi/nptypes.h + +libgnome_shell_browser_plugin_la_CFLAGS = \ + $(BROWSER_PLUGIN_CFLAGS) \ + -DG_LOG_DOMAIN=\"GnomeShellBrowserPlugin\" diff --git a/configure.ac b/configure.ac new file mode 100644 index 000000000..6372c4dff --- /dev/null +++ b/configure.ac @@ -0,0 +1,280 @@ +AC_PREREQ(2.63) +AC_INIT([gnome-shell],[3.25.4],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell]) +AX_IS_RELEASE([git-directory]) + +AC_CONFIG_HEADERS([config.h]) +AC_CONFIG_SRCDIR([src/shell-global.c]) +AC_CONFIG_MACRO_DIR([m4]) +AC_CONFIG_AUX_DIR([config]) + +AC_SUBST([PACKAGE_NAME], ["$PACKAGE_NAME"]) +AC_SUBST([PACKAGE_VERSION], ["$PACKAGE_VERSION"]) + +AM_INIT_AUTOMAKE([1.11 no-dist-gzip dist-xz tar-ustar foreign]) +AM_MAINTAINER_MODE([enable]) + +m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])]) + +# Checks for programs. +AC_PROG_CC + +# Initialize libtool +LT_PREREQ([2.2.6]) +LT_INIT([disable-static]) + +# i18n +GETTEXT_PACKAGE=gnome-shell +AC_SUBST(GETTEXT_PACKAGE) +AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", + [The prefix for our gettext translation domains.]) + +AM_GNU_GETTEXT_VERSION([0.19.6]) +AM_GNU_GETTEXT([external]) + +PKG_PROG_PKG_CONFIG([0.22]) + +AC_PATH_PROG([XSLTPROC], [xsltproc]) + +GLIB_GSETTINGS + +# Get a value to substitute into gnome-shell.in +AM_PATH_PYTHON([3]) +AC_SUBST(PYTHON) + +# We depend on a specific version of the libmutter API. The mutter variants of +# the Cogl and Clutter libraries also use this API version. +LIBMUTTER_API_VERSION=1 + +LIBMUTTER=libmutter-$LIBMUTTER_API_VERSION +LIBMUTTER_COGL=mutter-cogl-$LIBMUTTER_API_VERSION +LIBMUTTER_COGL_PANGO=mutter-cogl-pango-$LIBMUTTER_API_VERSION +LIBMUTTER_CLUTTER=mutter-clutter-$LIBMUTTER_API_VERSION + +# We need at least this, since gst_plugin_register_static() was added +# in 0.10.16, but nothing older than 0.10.21 has been tested. +GSTREAMER_MIN_VERSION=0.11.92 + +recorder_modules= +build_recorder=false +AC_MSG_CHECKING([for GStreamer (needed for recording functionality)]) +if $PKG_CONFIG --exists gstreamer-1.0 '>=' $GSTREAMER_MIN_VERSION ; then + AC_MSG_RESULT(yes) + build_recorder=true + recorder_modules="gstreamer-1.0 gstreamer-base-1.0 x11 gtk+-3.0" +else + AC_MSG_RESULT(no) +fi + +AM_CONDITIONAL(BUILD_RECORDER, $build_recorder) + +AC_ARG_ENABLE([systemd], + AS_HELP_STRING([--enable-systemd], [Use systemd]), + [enable_systemd=$enableval], + [enable_systemd=auto]) +AS_IF([test x$enable_systemd != xno], [ + AC_MSG_CHECKING([for libsystemd]) + PKG_CHECK_EXISTS([libsystemd], + [have_systemd=yes + AC_DEFINE([HAVE_SYSTEMD], [1], [Define if we have systemd])], + [have_systemd=no]) + AC_MSG_RESULT($have_systemd) +]) + +AC_MSG_RESULT($enable_systemd) + +GOBJECT_INTROSPECTION_MIN_VERSION=1.49.1 +GJS_MIN_VERSION=1.47.0 +MUTTER_MIN_VERSION=3.25.3 +GTK_MIN_VERSION=3.15.0 +GIO_MIN_VERSION=2.53.0 +LIBECAL_MIN_VERSION=3.5.3 +LIBEDATASERVER_MIN_VERSION=3.17.2 +POLKIT_MIN_VERSION=0.100 +STARTUP_NOTIFICATION_MIN_VERSION=0.11 +GCR_MIN_VERSION=3.7.5 +GNOME_DESKTOP_REQUIRED_VERSION=3.7.90 +NETWORKMANAGER_MIN_VERSION=0.9.8 +PULSE_MIN_VERS=2.0 + +# Collect more than 20 libraries for a prize! +SHARED_PCS="gio-unix-2.0 >= $GIO_MIN_VERSION + libxml-2.0 + gtk+-3.0 >= $GTK_MIN_VERSION + atk-bridge-2.0 + gjs-1.0 >= $GJS_MIN_VERSION + $recorder_modules + gdk-x11-3.0 libsoup-2.4 + $LIBMUTTER_CLUTTER >= $MUTTER_MIN_VERSION + $LIBMUTTER_COGL_PANGO + libstartup-notification-1.0 >= $STARTUP_NOTIFICATION_MIN_VERSION + gobject-introspection-1.0 >= $GOBJECT_INTROSPECTION_MIN_VERSION + libcanberra libcanberra-gtk3 + polkit-agent-1 >= $POLKIT_MIN_VERSION + gcr-base-3 >= $GCR_MIN_VERSION" +if test x$have_systemd = xyes; then + SHARED_PCS="${SHARED_PCS} libsystemd" +fi + +PKG_CHECK_MODULES(GNOME_SHELL, $SHARED_PCS) +PKG_CHECK_MODULES(MUTTER, $LIBMUTTER >= $MUTTER_MIN_VERSION) + +PKG_CHECK_MODULES(GNOME_SHELL_JS, gio-2.0 gjs-1.0 >= $GJS_MIN_VERSION) +PKG_CHECK_MODULES(ST, $LIBMUTTER_CLUTTER gtk+-3.0 libcroco-0.6 >= 0.6.8 x11) +PKG_CHECK_MODULES(SHELL_PERF_HELPER, gtk+-3.0 gio-2.0) +PKG_CHECK_MODULES(SHELL_HOTPLUG_SNIFFER, gio-2.0 gdk-pixbuf-2.0) +PKG_CHECK_MODULES(TRAY, $LIBMUTTER_CLUTTER gtk+-3.0) +PKG_CHECK_MODULES(GVC, libpulse >= $PULSE_MIN_VERS libpulse-mainloop-glib gobject-2.0) +PKG_CHECK_MODULES(DESKTOP_SCHEMAS, gsettings-desktop-schemas >= 3.21.3) + +AC_SUBST(LIBMUTTER_API_VERSION) + +AC_ARG_ENABLE(browser-plugin, + [AS_HELP_STRING([--enable-browser-plugin], + [Enable browser plugin [default=yes]])],, + enable_browser_plugin=yes) +AS_IF([test x$enable_browser_plugin = xyes], [ + PKG_CHECK_MODULES(BROWSER_PLUGIN, gio-2.0 >= $GIO_MIN_VERSION json-glib-1.0 >= 0.13.2) +]) +AM_CONDITIONAL(BUILD_BROWSER_PLUGIN, test x$enable_browser_plugin = xyes) + +PKG_CHECK_MODULES(BLUETOOTH, gnome-bluetooth-1.0 >= 3.9.0, + [AC_DEFINE([HAVE_BLUETOOTH],[1],[Define if you have libgnome-bluetooth-applet]) + AC_SUBST([HAVE_BLUETOOTH],[1])], + [AC_DEFINE([HAVE_BLUETOOTH],[0]) + AC_SUBST([HAVE_BLUETOOTH],[0])]) + +PKG_CHECK_MODULES(CALENDAR_SERVER, libecal-1.2 >= $LIBECAL_MIN_VERSION libedataserver-1.2 >= $LIBEDATASERVER_MIN_VERSION gio-2.0) +AC_SUBST(CALENDAR_SERVER_CFLAGS) +AC_SUBST(CALENDAR_SERVER_LIBS) + +GNOME_KEYBINDINGS_KEYSDIR=`$PKG_CONFIG --variable keysdir gnome-keybindings` +AC_SUBST([GNOME_KEYBINDINGS_KEYSDIR]) + +GOBJECT_INTROSPECTION_CHECK([$GOBJECT_INTROSPECTION_MIN_VERSION]) + +MUTTER_GIR_DIR=`$PKG_CONFIG --variable=girdir $LIBMUTTER` +AC_SUBST(MUTTER_GIR_DIR) + +MUTTER_TYPELIB_DIR=`$PKG_CONFIG --variable=typelibdir $LIBMUTTER` +AC_SUBST(MUTTER_TYPELIB_DIR) + +GLIB_COMPILE_RESOURCES=`$PKG_CONFIG --variable glib_compile_resources gio-2.0` +AC_SUBST(GLIB_COMPILE_RESOURCES) + +AC_CHECK_FUNCS(fdwalk) +AC_CHECK_FUNCS(mallinfo) +AC_CHECK_HEADERS([sys/resource.h]) + +# _NL_TIME_FIRST_WEEKDAY is an enum and not a define +AC_MSG_CHECKING([for _NL_TIME_FIRST_WEEKDAY]) +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], + [[nl_langinfo(_NL_TIME_FIRST_WEEKDAY);]])], + [langinfo_ok=yes], [langinfo_ok=no]) +AC_MSG_RESULT($langinfo_ok) +if test "$langinfo_ok" = "yes"; then + AC_DEFINE([HAVE__NL_TIME_FIRST_WEEKDAY], [1], + [Define if _NL_TIME_FIRST_WEEKDAY is available]) +fi + +AC_ARG_ENABLE(networkmanager, + AS_HELP_STRING([--disable-networkmanager], + [disable NetworkManager support @<:@default=auto@:>@]),, + [enable_networkmanager=auto]) + +if test "x$enable_networkmanager" != "xno"; then + PKG_CHECK_MODULES(NETWORKMANAGER, + [libnm-glib + libnm-util >= $NETWORKMANAGER_MIN_VERSION + libnm-gtk >= $NETWORKMANAGER_MIN_VERSION + libsecret-1 >= 0.18], + [have_networkmanager=yes], + [have_networkmanager=no]) + + GNOME_SHELL_CFLAGS="$GNOME_SHELL_CFLAGS $NETWORKMANAGER_CFLAGS" + GNOME_SHELL_LIBS="$GNOME_SHELL_LIBS $NETWORKMANAGER_LIBS" +else + have_networkmanager="no (disabled)" +fi + +if test "x$have_networkmanager" = "xyes"; then + AC_DEFINE(HAVE_NETWORKMANAGER, [1], [Define if we have NetworkManager]) + AC_SUBST([HAVE_NETWORKMANAGER], [1]) +else + if test "x$enable_networkmanager" = "xyes"; then + AC_MSG_ERROR([Couldn't find NetworkManager.]) + fi + AC_SUBST([HAVE_NETWORKMANAGER], [0]) +fi + +AM_CONDITIONAL(HAVE_NETWORKMANAGER, test "$have_networkmanager" = "yes") + +# Sets GLIB_GENMARSHAL and GLIB_MKENUMS +AM_PATH_GLIB_2_0() + +GTK_DOC_CHECK([1.15], [--flavour no-tmpl]) + +AC_ARG_ENABLE(man, + [AS_HELP_STRING([--enable-man], + [generate man pages [default=yes]])],, + enable_man=yes) +if test "$enable_man" != no; then + AC_PATH_PROG([XSLTPROC], [xsltproc]) + if test -z "$XSLTPROC"; then + AC_MSG_ERROR([xsltproc is required for --enable-man]) + fi +fi +AM_CONDITIONAL(ENABLE_MAN, test "$enable_man" != no) + +AX_COMPILER_FLAGS() +case "$WARN_CFLAGS" in + *-Werror*) + WARN_CFLAGS="$WARN_CFLAGS -Wno-error=deprecated-declarations" + ;; +esac + +AM_CFLAGS="$AM_CFLAGS $WARN_CFLAGS" +AC_SUBST(AM_CFLAGS) + +if test -z "${BROWSER_PLUGIN_DIR}"; then + BROWSER_PLUGIN_DIR="\${libdir}/mozilla/plugins" +fi +AC_ARG_VAR([BROWSER_PLUGIN_DIR],[Where to install the plugin to]) + +AC_ARG_VAR([GDBUS_CODEGEN],[the gdbus-codegen programme]) +AC_PATH_PROG([GDBUS_CODEGEN],[gdbus-codegen],[]) +if test -z "$GDBUS_CODEGEN"; then + AC_MSG_ERROR([gdbus-codegen not found]) +fi + +AC_PATH_PROG([SASSC],[sassc],[]) + +AC_CONFIG_FILES([ + Makefile + data/Makefile + docs/Makefile + docs/reference/Makefile + docs/reference/shell/Makefile + docs/reference/shell/version.xml + docs/reference/st/Makefile + docs/reference/st/version.xml + js/Makefile + src/Makefile + subprojects/gvc/Makefile + browser-plugin/Makefile + tests/Makefile + po/Makefile.in + man/Makefile +]) +AC_OUTPUT + +echo " +Build configuration: + + Prefix: ${prefix} + Source code location: ${srcdir} + Compiler: ${CC} + Compiler Warnings: $ax_enable_compile_warnings + + Support for NetworkManager: $have_networkmanager + Support for GStreamer recording: $build_recorder +" diff --git a/data/Makefile.am b/data/Makefile.am new file mode 100644 index 000000000..8c01e49d1 --- /dev/null +++ b/data/Makefile.am @@ -0,0 +1,136 @@ +CLEANFILES = +NULL = + +portaldir = $(datadir)/xdg-desktop-portal/portals +portal_DATA = gnome-shell.portal + +desktopdir=$(datadir)/applications +desktop_DATA = org.gnome.Shell.desktop gnome-shell-extension-prefs.desktop + +if HAVE_NETWORKMANAGER +desktop_DATA += org.gnome.Shell.PortalHelper.desktop + +servicedir = $(datadir)/dbus-1/services +service_DATA = org.gnome.Shell.PortalHelper.service + +CLEANFILES += \ + org.gnome.Shell.PortalHelper.service \ + org.gnome.Shell.PortalHelper.desktop \ + org.gnome.Shell.PortalHelper.desktop.in \ + $(NULL) + +endif + +%.service: %.service.in + $(AM_V_GEN) sed -e "s|@libexecdir[@]|$(libexecdir)|" \ + $< > $@ || rm $@ + +# We substitute in bindir so it works as an autostart +# file when built in a non-system prefix +%.desktop.in:%.desktop.in.in + $(AM_V_GEN) sed -e "s|@bindir[@]|$(bindir)|" \ + -e "s|@VERSION[@]|$(VERSION)|" \ + $< > $@ || rm $@ + +%.desktop:%.desktop.in + $(AM_V_GEN) $(MSGFMT) --desktop --template $(builddir)/$< \ + -d $(top_srcdir)/po -o $@ + +introspectiondir = $(datadir)/dbus-1/interfaces +introspection_DATA = \ + org.gnome.Shell.PadOsd.xml \ + org.gnome.Shell.Screencast.xml \ + org.gnome.Shell.Screenshot.xml \ + org.gnome.ShellSearchProvider.xml \ + org.gnome.ShellSearchProvider2.xml \ + $(NULL) + +theme_sources = \ + theme/gnome-shell-high-contrast.scss \ + theme/gnome-shell.scss \ + theme/gnome-shell-sass/_colors.scss \ + theme/gnome-shell-sass/_common.scss \ + theme/gnome-shell-sass/_drawing.scss \ + theme/gnome-shell-sass/_high-contrast-colors.scss \ + $(NULL) + +dist_theme_files = \ + $(theme_sources) \ + theme/HACKING \ + theme/README \ + theme/gnome-shell-sass/COPYING \ + theme/gnome-shell-sass/HACKING \ + theme/gnome-shell-sass/NEWS \ + theme/gnome-shell-sass/README \ + theme/gnome-shell-sass/gnome-shell-sass.doap \ + theme/pad-osd.css \ + theme/parse-sass.sh \ + $(NULL) + +%.css: %.scss $(theme_sources) + @if test -n "$(SASSC)"; then \ + if $(AM_V_P); then PS4= set -x; else echo " GEN $@"; fi; \ + $(SASSC) -a $< $@; \ + fi + +resource_files = $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir)/theme --generate-dependencies $(srcdir)/gnome-shell-theme.gresource.xml) +gnome-shell-theme.gresource: gnome-shell-theme.gresource.xml $(resource_files) + $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir)/theme $< +resourcedir = $(pkgdatadir) +resource_DATA = gnome-shell-theme.gresource + +backgrounddir = $(pkgdatadir) +background_DATA = perf-background.xml + +perf-background.xml: perf-background.xml.in + $(AM_V_GEN) sed -e "s|@datadir[@]|$(datadir)|" \ + $< > $@ || rm $@ + +keysdir = @GNOME_KEYBINDINGS_KEYSDIR@ +keys_DATA = 50-gnome-shell-system.xml + +gsettings_SCHEMAS = org.gnome.shell.gschema.xml + +%.gschema.xml: %.gschema.xml.in Makefile + $(AM_V_GEN) sed -e 's|@GETTEXT_PACKAGE[@]|$(GETTEXT_PACKAGE)|g' \ + $< > $@ || rm $@ + +@GSETTINGS_RULES@ + +# We need to compile schemas at make time +# to run from source tree +gschemas.compiled: $(gsettings_SCHEMAS:.xml=.valid) + $(AM_V_GEN) $(GLIB_COMPILE_SCHEMAS) --targetdir=. . + +all-local: gschemas.compiled + +convertdir = $(datadir)/GConf/gsettings +convert_DATA = gnome-shell-overrides.convert + +EXTRA_DIST = \ + org.gnome.Shell.desktop.in.in \ + gnome-shell-extension-prefs.desktop.in.in \ + $(portal_DATA) \ + $(introspection_DATA) \ + $(menu_DATA) \ + $(convert_DATA) \ + $(keys_DATA) \ + $(dist_theme_files) \ + perf-background.xml.in \ + org.gnome.Shell.PortalHelper.desktop.in.in \ + org.gnome.Shell.PortalHelper.service.in \ + org.gnome.shell.gschema.xml.in \ + gnome-shell-theme.gresource.xml \ + $(resource_files) \ + $(NULL) + +CLEANFILES += \ + org.gnome.Shell.desktop.in \ + gnome-shell-extension-prefs.in \ + $(desktop_DATA) \ + $(gsettings_SCHEMAS) \ + perf-background.xml \ + gschemas.compiled \ + org.gnome.shell.gschema.valid \ + gnome-shell-theme.gresource \ + $(NULL) diff --git a/docs/Makefile.am b/docs/Makefile.am new file mode 100644 index 000000000..f3ddc22dd --- /dev/null +++ b/docs/Makefile.am @@ -0,0 +1 @@ +SUBDIRS = reference diff --git a/docs/reference/Makefile.am b/docs/reference/Makefile.am new file mode 100644 index 000000000..2721dc0e0 --- /dev/null +++ b/docs/reference/Makefile.am @@ -0,0 +1 @@ +SUBDIRS = shell st diff --git a/docs/reference/shell/Makefile.am b/docs/reference/shell/Makefile.am new file mode 100644 index 000000000..715e3f26c --- /dev/null +++ b/docs/reference/shell/Makefile.am @@ -0,0 +1,139 @@ +## Process this file with automake to produce Makefile.in + +# We require automake 1.6 at least. +AUTOMAKE_OPTIONS = 1.6 + +# This is a blank Makefile.am for using gtk-doc. +# Copy this to your project's API docs directory and modify the variables to +# suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples +# of using the various options. + +# The name of the module, e.g. 'glib'. +DOC_MODULE=shell + +# Uncomment for versioned docs and specify the version of the module, e.g. '2'. +#DOC_MODULE_VERSION=2 + + +# The top-level SGML file. You can change this if you want to. +DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml + +# Directories containing the source code +# gtk-doc will search all .c and .h files beneath these paths +# for inline comments documenting functions and macros. +DOC_SOURCE_DIR=$(top_srcdir)/src + +# Extra options to pass to gtkdoc-scangobj. Not normally needed. +SCANGOBJ_OPTIONS= + +# Extra options to supply to gtkdoc-scan. +# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED" +SCAN_OPTIONS=--rebuild-types + +# Extra options to supply to gtkdoc-mkdb. +# e.g. MKDB_OPTIONS=--xml-mode --output-format=xml +MKDB_OPTIONS=--xml-mode --output-format=xml + +# Extra options to supply to gtkdoc-mktmpl +# e.g. MKTMPL_OPTIONS=--only-section-tmpl +MKTMPL_OPTIONS= + +# Extra options to supply to gtkdoc-mkhtml +MKHTML_OPTIONS= + +# Extra options to supply to gtkdoc-fixref. Not normally needed. +# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html +FIXXREF_OPTIONS= + +# Used for dependencies. The docs will be rebuilt if any of these change. +# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h +# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c +HFILE_GLOB=$(top_srcdir)/src/*.h +CFILE_GLOB=$(top_srcdir)/src/*.c + +# Extra header to include when scanning, which are not under DOC_SOURCE_DIR +# e.g. EXTRA_HFILES=$(top_srcdir}/contrib/extra.h +EXTRA_HFILES= + +# Header files or dirs to ignore when scanning. Use base file/dir names +# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h private_code +IGNORE_HFILES= \ + calendar-server \ + gvc \ + hotplug-sniffer \ + st \ + tray \ + gactionmuxer.h \ + gactionobservable.h \ + gactionobserver.h \ + shell-network-agent.h \ + shell-recorder-src.h + +if !BUILD_RECORDER +IGNORE_HFILES += shell-recorder.h +endif + +# Images to copy into HTML directory. +# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png +HTML_IMAGES= + +doc-gen-org.gnome.Shell.SearchProvider.xml: $(top_srcdir)/data/org.gnome.ShellSearchProvider.xml + gdbus-codegen \ + --interface-prefix org.gnome.ShellSearchProvider. \ + --generate-docbook doc-gen \ + $(top_srcdir)/data/org.gnome.ShellSearchProvider.xml + +doc-gen-org.gnome.Shell.SearchProvider2.xml: $(top_srcdir)/data/org.gnome.ShellSearchProvider2.xml + gdbus-codegen \ + --interface-prefix org.gnome.ShellSearchProvider2. \ + --generate-docbook doc-gen \ + $(top_srcdir)/data/org.gnome.ShellSearchProvider2.xml + +doc-gen-org.gnome.Shell.Screenshot.xml: $(top_srcdir)/data/org.gnome.Shell.Screenshot.xml + gdbus-codegen \ + --interface-prefix org.gnome.Shell.Screenshot. \ + --generate-docbook doc-gen \ + $(top_srcdir)/data/org.gnome.Shell.Screenshot.xml + +# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). +# e.g. content_files=running.sgml building.sgml changes-2.0.sgml +content_files= \ + doc-gen-org.gnome.Shell.SearchProvider.xml \ + doc-gen-org.gnome.Shell.SearchProvider2.xml \ + doc-gen-org.gnome.Shell.Screenshot.xml + +# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded +# These files must be listed here *and* in content_files +# e.g. expand_content_files=running.sgml +expand_content_files= + +# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. +# Only needed if you are using gtkdoc-scangobj to dynamically query widget +# signals and properties. +# e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS) +# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib) +GTKDOC_CFLAGS=$(GNOME_SHELL_CFLAGS) +GTKDOC_LIBS=$(GNOME_SHELL_LIBS) $(top_builddir)/src/libgnome-shell-menu.la $(top_builddir)/src/libgnome-shell.la -rpath $(MUTTER_TYPELIB_DIR) + +# This includes the standard gtk-doc make rules, copied by gtkdocize. +include $(top_srcdir)/gtk-doc.make + +# Other files to distribute +# e.g. EXTRA_DIST += version.xml.in +EXTRA_DIST += version.xml.in + +# Files not to distribute +# for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types +# for --rebuild-sections in $(SCAN_OPTIONS) e.g. $(DOC_MODULE)-sections.txt +DISTCLEANFILES = $(DOC_MODULE).types + +# Comment this out if you want 'make check' to test you doc status +# and run some sanity checks +if ENABLE_GTK_DOC +TESTS_ENVIRONMENT = cd $(srcdir) && \ + DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \ + SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir) +#TESTS = $(GTKDOC_CHECK) +endif + +-include $(top_srcdir)/git.mk diff --git a/docs/reference/st/Makefile.am b/docs/reference/st/Makefile.am new file mode 100644 index 000000000..df2d357d5 --- /dev/null +++ b/docs/reference/st/Makefile.am @@ -0,0 +1,104 @@ +## Process this file with automake to produce Makefile.in + +# We require automake 1.6 at least. +AUTOMAKE_OPTIONS = 1.6 + +# This is a blank Makefile.am for using gtk-doc. +# Copy this to your project's API docs directory and modify the variables to +# suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples +# of using the various options. + +# The name of the module, e.g. 'glib'. +DOC_MODULE=st + +# Uncomment for versioned docs and specify the version of the module, e.g. '2'. +#DOC_MODULE_VERSION=2 + + +# The top-level SGML file. You can change this if you want to. +DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml + +# Directories containing the source code +# gtk-doc will search all .c and .h files beneath these paths +# for inline comments documenting functions and macros. +DOC_SOURCE_DIR=$(top_srcdir)/src/st + +# Extra options to pass to gtkdoc-scangobj. Not normally needed. +SCANGOBJ_OPTIONS= + +# Extra options to supply to gtkdoc-scan. +# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED" +SCAN_OPTIONS=--rebuild-types --rebuild-sections + +# Extra options to supply to gtkdoc-mkdb. +# e.g. MKDB_OPTIONS=--xml-mode --output-format=xml +MKDB_OPTIONS=--xml-mode --output-format=xml + +# Extra options to supply to gtkdoc-mktmpl +# e.g. MKTMPL_OPTIONS=--only-section-tmpl +MKTMPL_OPTIONS= + +# Extra options to supply to gtkdoc-mkhtml +MKHTML_OPTIONS= + +# Extra options to supply to gtkdoc-fixref. Not normally needed. +# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html +FIXXREF_OPTIONS= + +# Used for dependencies. The docs will be rebuilt if any of these change. +# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h +# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c +HFILE_GLOB=$(top_srcdir)/src/st/*.h +CFILE_GLOB=$(top_srcdir)/src/st/*.c + +# Extra header to include when scanning, which are not under DOC_SOURCE_DIR +# e.g. EXTRA_HFILES=$(top_srcdir}/contrib/extra.h +EXTRA_HFILES= + +# Header files or dirs to ignore when scanning. Use base file/dir names +# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h private_code +IGNORE_HFILES=st-private.h st-theme-node-private.h + +# Images to copy into HTML directory. +# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png +HTML_IMAGES= + +# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). +# e.g. content_files=running.sgml building.sgml changes-2.0.sgml +content_files= + +# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded +# These files must be listed here *and* in content_files +# e.g. expand_content_files=running.sgml +expand_content_files= + +# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. +# Only needed if you are using gtkdoc-scangobj to dynamically query widget +# signals and properties. +# e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS) +# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib) +GTKDOC_CFLAGS= +GTKDOC_LIBS=$(top_builddir)/src/libst-1.0.la -rpath $(MUTTER_TYPELIB_DIR) + +# This includes the standard gtk-doc make rules, copied by gtkdocize. +include $(top_srcdir)/gtk-doc.make + +# Other files to distribute +# e.g. EXTRA_DIST += version.xml.in +EXTRA_DIST += version.xml.in + +# Files not to distribute +# for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types +# for --rebuild-sections in $(SCAN_OPTIONS) e.g. $(DOC_MODULE)-sections.txt +DISTCLEANFILES = $(DOC_MODULE).types $(DOC_MODULE)-sections.txt + +# Comment this out if you want 'make check' to test you doc status +# and run some sanity checks +if ENABLE_GTK_DOC +TESTS_ENVIRONMENT = cd $(srcdir) && \ + DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \ + SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir) +#TESTS = $(GTKDOC_CHECK) +endif + +-include $(top_srcdir)/git.mk diff --git a/gtk-doc.make b/gtk-doc.make new file mode 100644 index 000000000..e4a12a5b2 --- /dev/null +++ b/gtk-doc.make @@ -0,0 +1,304 @@ +# -*- mode: makefile -*- + +#################################### +# Everything below here is generic # +#################################### + +if GTK_DOC_USE_LIBTOOL +GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +GTKDOC_RUN = $(LIBTOOL) --mode=execute +else +GTKDOC_CC = $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +GTKDOC_LD = $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +GTKDOC_RUN = +endif + +# We set GPATH here; this gives us semantics for GNU make +# which are more like other make's VPATH, when it comes to +# whether a source that is a target of one rule is then +# searched for in VPATH/GPATH. +# +GPATH = $(srcdir) + +TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE) + +SETUP_FILES = \ + $(content_files) \ + $(expand_content_files) \ + $(DOC_MAIN_SGML_FILE) \ + $(DOC_MODULE)-sections.txt \ + $(DOC_MODULE)-overrides.txt + +EXTRA_DIST = \ + $(HTML_IMAGES) \ + $(SETUP_FILES) + +DOC_STAMPS=setup-build.stamp scan-build.stamp sgml-build.stamp \ + html-build.stamp pdf-build.stamp \ + sgml.stamp html.stamp pdf.stamp + +SCANOBJ_FILES = \ + $(DOC_MODULE).args \ + $(DOC_MODULE).hierarchy \ + $(DOC_MODULE).interfaces \ + $(DOC_MODULE).prerequisites \ + $(DOC_MODULE).signals + +REPORT_FILES = \ + $(DOC_MODULE)-undocumented.txt \ + $(DOC_MODULE)-undeclared.txt \ + $(DOC_MODULE)-unused.txt + +gtkdoc-check.test: Makefile + $(AM_V_GEN)echo "#!/bin/sh -e" > $@; \ + echo "$(GTKDOC_CHECK_PATH) || exit 1" >> $@; \ + chmod +x $@ + +CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) gtkdoc-check.test + +if GTK_DOC_BUILD_HTML +HTML_BUILD_STAMP=html-build.stamp +else +HTML_BUILD_STAMP= +endif +if GTK_DOC_BUILD_PDF +PDF_BUILD_STAMP=pdf-build.stamp +else +PDF_BUILD_STAMP= +endif + +all-gtk-doc: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) +.PHONY: all-gtk-doc + +if ENABLE_GTK_DOC +all-local: all-gtk-doc +endif + +docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) + +$(REPORT_FILES): sgml-build.stamp + +#### setup #### + +GTK_DOC_V_SETUP=$(GTK_DOC_V_SETUP_$(V)) +GTK_DOC_V_SETUP_=$(GTK_DOC_V_SETUP_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_SETUP_0=@echo " DOC Preparing build"; + +setup-build.stamp: + -$(GTK_DOC_V_SETUP)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ + files=`echo $(SETUP_FILES) $(DOC_MODULE).types`; \ + if test "x$$files" != "x" ; then \ + for file in $$files ; do \ + destdir=`dirname $(abs_builddir)/$$file`; \ + test -d "$$destdir" || mkdir -p "$$destdir"; \ + test -f $(abs_srcdir)/$$file && \ + cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \ + done; \ + fi; \ + fi + $(AM_V_at)touch setup-build.stamp + + +#### scan #### + +GTK_DOC_V_SCAN=$(GTK_DOC_V_SCAN_$(V)) +GTK_DOC_V_SCAN_=$(GTK_DOC_V_SCAN_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_SCAN_0=@echo " DOC Scanning header files"; + +GTK_DOC_V_INTROSPECT=$(GTK_DOC_V_INTROSPECT_$(V)) +GTK_DOC_V_INTROSPECT_=$(GTK_DOC_V_INTROSPECT_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_INTROSPECT_0=@echo " DOC Introspecting gobjects"; + +scan-build.stamp: setup-build.stamp $(HFILE_GLOB) $(CFILE_GLOB) + $(GTK_DOC_V_SCAN)_source_dir='' ; \ + for i in $(DOC_SOURCE_DIR) ; do \ + _source_dir="$${_source_dir} --source-dir=$$i" ; \ + done ; \ + gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES) + $(GTK_DOC_V_INTROSPECT)if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \ + scanobj_options=""; \ + gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \ + if test "$$?" = "0"; then \ + if test "x$(V)" = "x1"; then \ + scanobj_options="--verbose"; \ + fi; \ + fi; \ + CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \ + gtkdoc-scangobj $(SCANGOBJ_OPTIONS) $$scanobj_options --module=$(DOC_MODULE); \ + else \ + for i in $(SCANOBJ_FILES) ; do \ + test -f $$i || touch $$i ; \ + done \ + fi + $(AM_V_at)touch scan-build.stamp + +$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp + @true + +#### xml #### + +GTK_DOC_V_XML=$(GTK_DOC_V_XML_$(V)) +GTK_DOC_V_XML_=$(GTK_DOC_V_XML_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_XML_0=@echo " DOC Building XML"; + +sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files) xml/gtkdocentities.ent + $(GTK_DOC_V_XML)_source_dir='' ; \ + for i in $(DOC_SOURCE_DIR) ; do \ + _source_dir="$${_source_dir} --source-dir=$$i" ; \ + done ; \ + gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS) + $(AM_V_at)touch sgml-build.stamp + +sgml.stamp: sgml-build.stamp + @true + +xml/gtkdocentities.ent: Makefile + $(GTK_DOC_V_XML)$(MKDIR_P) $(@D) && ( \ + echo ""; \ + echo ""; \ + echo ""; \ + echo ""; \ + echo ""; \ + echo ""; \ + echo ""; \ + ) > $@ + +#### html #### + +GTK_DOC_V_HTML=$(GTK_DOC_V_HTML_$(V)) +GTK_DOC_V_HTML_=$(GTK_DOC_V_HTML_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_HTML_0=@echo " DOC Building HTML"; + +GTK_DOC_V_XREF=$(GTK_DOC_V_XREF_$(V)) +GTK_DOC_V_XREF_=$(GTK_DOC_V_XREF_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_XREF_0=@echo " DOC Fixing cross-references"; + +html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files) + $(GTK_DOC_V_HTML)rm -rf html && mkdir html && \ + mkhtml_options=""; \ + gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-verbose"; \ + if test "$$?" = "0"; then \ + if test "x$(V)" = "x1"; then \ + mkhtml_options="$$mkhtml_options --verbose"; \ + fi; \ + fi; \ + gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \ + if test "$$?" = "0"; then \ + mkhtml_options="$$mkhtml_options --path=\"$(abs_srcdir)\""; \ + fi; \ + cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) + -@test "x$(HTML_IMAGES)" = "x" || \ + for file in $(HTML_IMAGES) ; do \ + if test -f $(abs_srcdir)/$$file ; then \ + cp $(abs_srcdir)/$$file $(abs_builddir)/html; \ + fi; \ + if test -f $(abs_builddir)/$$file ; then \ + cp $(abs_builddir)/$$file $(abs_builddir)/html; \ + fi; \ + done; + $(GTK_DOC_V_XREF)gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) + $(AM_V_at)touch html-build.stamp + +#### pdf #### + +GTK_DOC_V_PDF=$(GTK_DOC_V_PDF_$(V)) +GTK_DOC_V_PDF_=$(GTK_DOC_V_PDF_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_PDF_0=@echo " DOC Building PDF"; + +pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files) + $(GTK_DOC_V_PDF)rm -f $(DOC_MODULE).pdf && \ + mkpdf_options=""; \ + gtkdoc-mkpdf 2>&1 --help | grep >/dev/null "\-\-verbose"; \ + if test "$$?" = "0"; then \ + if test "x$(V)" = "x1"; then \ + mkpdf_options="$$mkpdf_options --verbose"; \ + fi; \ + fi; \ + if test "x$(HTML_IMAGES)" != "x"; then \ + for img in $(HTML_IMAGES); do \ + part=`dirname $$img`; \ + echo $$mkpdf_options | grep >/dev/null "\-\-imgdir=$$part "; \ + if test $$? != 0; then \ + mkpdf_options="$$mkpdf_options --imgdir=$$part"; \ + fi; \ + done; \ + fi; \ + gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS) + $(AM_V_at)touch pdf-build.stamp + +############## + +clean-local: + @rm -f *~ *.bak + @rm -rf .libs + @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-types" ; then \ + rm -f $(DOC_MODULE).types; \ + fi + @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-sections" ; then \ + rm -f $(DOC_MODULE)-sections.txt; \ + fi + +distclean-local: + @rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \ + $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt + @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ + rm -f $(SETUP_FILES) $(DOC_MODULE).types; \ + fi + +maintainer-clean-local: + @rm -rf xml html + +install-data-local: + @installfiles=`echo $(builddir)/html/*`; \ + if test "$$installfiles" = '$(builddir)/html/*'; \ + then echo 1>&2 'Nothing to install' ; \ + else \ + if test -n "$(DOC_MODULE_VERSION)"; then \ + installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ + else \ + installdir="$(DESTDIR)$(TARGET_DIR)"; \ + fi; \ + $(mkinstalldirs) $${installdir} ; \ + for i in $$installfiles; do \ + echo ' $(INSTALL_DATA) '$$i ; \ + $(INSTALL_DATA) $$i $${installdir}; \ + done; \ + if test -n "$(DOC_MODULE_VERSION)"; then \ + mv -f $${installdir}/$(DOC_MODULE).devhelp2 \ + $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp2; \ + fi; \ + $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir}; \ + fi + +uninstall-local: + @if test -n "$(DOC_MODULE_VERSION)"; then \ + installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ + else \ + installdir="$(DESTDIR)$(TARGET_DIR)"; \ + fi; \ + rm -rf $${installdir} + +# +# Require gtk-doc when making dist +# +if HAVE_GTK_DOC +dist-check-gtkdoc: docs +else +dist-check-gtkdoc: + @echo "*** gtk-doc is needed to run 'make dist'. ***" + @echo "*** gtk-doc was not found when 'configure' ran. ***" + @echo "*** please install gtk-doc and rerun 'configure'. ***" + @false +endif + +dist-hook: dist-check-gtkdoc all-gtk-doc dist-hook-local + @mkdir $(distdir)/html + @cp ./html/* $(distdir)/html + @-cp ./$(DOC_MODULE).pdf $(distdir)/ + @-cp ./$(DOC_MODULE).types $(distdir)/ + @-cp ./$(DOC_MODULE)-sections.txt $(distdir)/ + @cd $(distdir) && rm -f $(DISTCLEANFILES) + @$(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html + +.PHONY : dist-hook-local docs diff --git a/js/Makefile.am b/js/Makefile.am new file mode 100644 index 000000000..6369c7502 --- /dev/null +++ b/js/Makefile.am @@ -0,0 +1,39 @@ +NULL = +BUILT_SOURCES = + +misc/config.js: misc/config.js.in Makefile + [ -d $(@D) ] || $(mkdir_p) $(@D) ; \ + sed -e "s|[@]PACKAGE_NAME@|$(PACKAGE_NAME)|g" \ + -e "s|[@]PACKAGE_VERSION@|$(PACKAGE_VERSION)|g" \ + -e "s|[@]HAVE_BLUETOOTH@|$(HAVE_BLUETOOTH)|g" \ + -e "s|[@]HAVE_NETWORKMANAGER@|$(HAVE_NETWORKMANAGER)|g" \ + -e "s|[@]GETTEXT_PACKAGE@|$(GETTEXT_PACKAGE)|g" \ + -e "s|[@]datadir@|$(datadir)|g" \ + -e "s|[@]libexecdir@|$(libexecdir)|g" \ + -e "s|[@]sysconfdir@|$(sysconfdir)|g" \ + -e "s|[@]LIBMUTTER_API_VERSION@|$(LIBMUTTER_API_VERSION)|g" \ + $< > $@ + +js_resource_files = $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir) --sourcedir=$(builddir) --generate-dependencies $(srcdir)/js-resources.gresource.xml) +js-resources.h: js-resources.gresource.xml $(js_resource_files) misc/config.js + $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir) --sourcedir=$(builddir) --generate --c-name shell_js_resources $< +js-resources.c: js-resources.gresource.xml $(js_resource_files) misc/config.js + $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir) --sourcedir=$(builddir) --generate --c-name shell_js_resources $< + +js_built_sources = js-resources.c js-resources.h + +BUILT_SOURCES += $(js_built_sources) + +all-local: $(js_built_sources) + +js_resource_dist_files = $(filter-out misc/config.js, $(js_resource_files)) + +EXTRA_DIST = \ + $(js_resource_dist_files) \ + js-resources.gresource.xml \ + misc/config.js.in \ + $(NULL) + +CLEANFILES = \ + $(js_built_sources) \ + $(NULL) diff --git a/man/Makefile.am b/man/Makefile.am new file mode 100644 index 000000000..166b66cf8 --- /dev/null +++ b/man/Makefile.am @@ -0,0 +1,19 @@ +XSLTPROC_FLAGS = \ + --nonet \ + --stringparam man.output.quietly 1 \ + --stringparam funcsynopsis.style ansi \ + --stringparam man.th.extra1.suppress 1 \ + --stringparam man.authors.section.enabled 0 \ + --stringparam man.copyright.section.enabled 0 + +.xml.1: + $(AM_V_GEN) $(XSLTPROC) $(XSLTPROC_FLAGS) http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $< + +man_MANS = \ + gnome-shell.1 + +xml_files = $(man_MANS:.1=.xml) + +EXTRA_DIST = $(xml_files) + +DISTCLEANFILES = $(man_MANS) diff --git a/src/Makefile.am b/src/Makefile.am new file mode 100644 index 000000000..24628ccc9 --- /dev/null +++ b/src/Makefile.am @@ -0,0 +1,349 @@ +NULL = +BUILT_SOURCES = +CLEANFILES = +EXTRA_DIST = +bin_SCRIPTS = +libexec_PROGRAMS = +noinst_LTLIBRARIES = +noinst_PROGRAMS = +service_in_files = + +-include $(INTROSPECTION_MAKEFILE) +INTROSPECTION_GIRS = +INTROSPECTION_SCANNER_ARGS = --warn-all --warn-error --add-include-path=$(srcdir) --add-include-path=$(MUTTER_GIR_DIR) -L$(MUTTER_TYPELIB_DIR) +INTROSPECTION_COMPILER_ARGS = --includedir=$(srcdir) --includedir=$(MUTTER_TYPELIB_DIR) + +typelibdir = $(pkglibdir) +typelib_DATA = $(INTROSPECTION_GIRS:.gir=.typelib) + +servicedir = $(datadir)/dbus-1/services +service_DATA = $(service_in_files:.service.in=.service) + +%.service: %.service.in Makefile + $(AM_V_GEN) \ + [ -d $(@D) ] || $(mkdir_p) $(@D) ; \ + sed -e "s|\@libexecdir\@|$(libexecdir)|" $< > $@.tmp && mv $@.tmp $@ +CLEANFILES += $(service_DATA) + +CLEANFILES += $(gir_DATA) $(typelib_DATA) + +bin_SCRIPTS += gnome-shell-extension-tool gnome-shell-perf-tool +EXTRA_DIST += gnome-shell-extension-tool.in gnome-shell-perf-tool.in +bin_PROGRAMS = gnome-shell gnome-shell-extension-prefs + +generated_script_substitutions = \ + -e "s|@bindir[@]|$(bindir)|g" \ + -e "s|@datadir[@]|$(datadir)|g" \ + -e "s|@libexecdir[@]|$(libexecdir)|g" \ + -e "s|@libdir[@]|$(libdir)|g" \ + -e "s|@pkglibdir[@]|$(pkglibdir)|g" \ + -e "s|@pkgdatadir[@]|$(pkgdatadir)|g" \ + -e "s|@PYTHON[@]|$(PYTHON)|g" \ + -e "s|@VERSION[@]|$(VERSION)|g" \ + -e "s|@sysconfdir[@]|$(sysconfdir)|g" + +gnome-shell-extension-tool: gnome-shell-extension-tool.in Makefile + $(AM_V_GEN) sed $(generated_script_substitutions) $< > $@.tmp && mv $@.tmp $@ && chmod a+x $@ + +gnome-shell-perf-tool: gnome-shell-perf-tool.in Makefile + $(AM_V_GEN) sed $(generated_script_substitutions) $< > $@.tmp && mv $@.tmp $@ && chmod a+x $@ + +org-gtk-application.c org-gtk-application.h: org.gtk.Application.xml Makefile + $(AM_V_GEN) $(GDBUS_CODEGEN) \ + --generate-c-code org-gtk-application \ + --c-namespace Shell \ + $< + +EXTRA_DIST += org.gtk.Application.xml +CLEANFILES += gnome-shell $(bin_SCRIPTS) + +include Makefile-st.am +include Makefile-tray.am +include Makefile-calendar-server.am +include Makefile-hotplug-sniffer.am + +gnome_shell_cflags = \ + $(GNOME_SHELL_CFLAGS) \ + -I$(srcdir)/tray \ + -DCLUTTER_ENABLE_EXPERIMENTAL_API \ + -DCOGL_ENABLE_EXPERIMENTAL_API \ + -DVERSION=\"$(VERSION)\" \ + -DLOCALEDIR=\"$(datadir)/locale\" \ + -DDATADIR=\"$(datadir)\" \ + -DGNOME_SHELL_LIBEXECDIR=\"$(libexecdir)\" \ + -DGNOME_SHELL_DATADIR=\"$(pkgdatadir)\" \ + -DGNOME_SHELL_PKGLIBDIR=\"$(pkglibdir)\" + +privlibdir = $(pkglibdir) +privlib_LTLIBRARIES = libgnome-shell-menu.la libgnome-shell.la + +shell_built_sources = \ + org-gtk-application.h \ + org-gtk-application.c \ + shell-enum-types.h \ + shell-enum-types.c + +BUILT_SOURCES += $(shell_built_sources) + +shell_public_headers_h = \ + shell-app.h \ + shell-app-system.h \ + shell-app-usage.h \ + shell-embedded-window.h \ + shell-generic-container.h \ + shell-glsl-quad.h \ + shell-gtk-embed.h \ + shell-global.h \ + shell-invert-lightness-effect.h \ + shell-action-modes.h \ + shell-mount-operation.h \ + shell-perf-log.h \ + shell-screenshot.h \ + shell-stack.h \ + shell-tray-icon.h \ + shell-tray-manager.h \ + shell-util.h \ + shell-window-tracker.h \ + shell-wm.h \ + $(NULL) + +if HAVE_NETWORKMANAGER +shell_public_headers_h += shell-network-agent.h +endif + +libgnome_shell_menu_la_SOURCES = \ + gtkactionmuxer.h \ + gtkactionmuxer.c \ + gtkactionobservable.h \ + gtkactionobservable.c \ + gtkactionobserver.h \ + gtkactionobserver.c \ + gtkmenutrackeritem.c \ + gtkmenutrackeritem.h \ + gtkmenutracker.c \ + gtkmenutracker.h \ + $(NULL) + +libgnome_shell_sources = \ + $(shell_public_headers_h) \ + $(shell_private_sources) \ + gnome-shell-plugin.c \ + shell-app.c \ + shell-app-private.h \ + shell-app-system.c \ + shell-app-system-private.h \ + shell-app-usage.c \ + shell-embedded-window-private.h \ + shell-embedded-window.c \ + shell-generic-container.c \ + shell-global.c \ + shell-global-private.h \ + shell-glsl-quad.c \ + shell-gtk-embed.c \ + shell-invert-lightness-effect.c \ + shell-keyring-prompt.h \ + shell-keyring-prompt.c \ + shell-menu-tracker.c \ + shell-menu-tracker.h \ + shell-mount-operation.c \ + shell-perf-log.c \ + shell-polkit-authentication-agent.h \ + shell-polkit-authentication-agent.c \ + shell-screenshot.c \ + shell-secure-text-buffer.c \ + shell-secure-text-buffer.h \ + shell-stack.c \ + shell-tray-icon.c \ + shell-tray-manager.c \ + shell-util.c \ + shell-window-tracker.c \ + shell-window-tracker-private.h \ + shell-wm.c \ + shell-wm-private.h \ + $(NULL) + +if HAVE_NETWORKMANAGER +libgnome_shell_sources += shell-network-agent.c +endif + + +libgnome_shell_built_sources = \ + $(shell_built_sources) \ + $(top_builddir)/js/js-resources.c \ + $(top_builddir)/js/js-resources.h \ + $(NULL) + +libgnome_shell_la_SOURCES = $(libgnome_shell_sources) +nodist_libgnome_shell_la_SOURCES = $(libgnome_shell_built_sources) + +shell_no_gir_sources = \ + org-gtk-application.h \ + org-gtk-application.c + +libgnome_shell_la_gir_sources = \ + $(filter-out %-private.h $(shell_private_sources) $(shell_no_gir_sources), $(shell_public_headers_h) $(libgnome_shell_sources) $(libgnome_shell_built_sources)) + +gnome_shell_SOURCES = main.c +gnome_shell_CPPFLAGS = \ + -DMUTTER_TYPELIB_DIR=\"$(MUTTER_TYPELIB_DIR)\" \ + $(MUTTER_CFLAGS) \ + $(gnome_shell_cflags) + +# Here, and after, we repeat mutter and bluetooth libraries just for the rpath +# The dependency is already pulled in by libtool +gnome_shell_LDADD = libgnome-shell.la $(GNOME_SHELL_LIBS) $(MUTTER_LIBS) +gnome_shell_LDFLAGS = -rpath $(MUTTER_TYPELIB_DIR) +gnome_shell_DEPENDENCIES = libgnome-shell.la + +gnome_shell_extension_prefs_SOURCES = \ + gnome-shell-extension-prefs.c \ + $(NULL) +nodist_gnome_shell_extension_prefs_SOURCES = \ + $(top_builddir)/js/js-resources.c \ + $(top_builddir)/js/js-resources.h \ + $(NULL) +gnome_shell_extension_prefs_CPPFLAGS = $(gnome_shell_cflags) +gnome_shell_extension_prefs_LDADD = $(GNOME_SHELL_LIBS) +gnome_shell_extension_prefs_LDFLAGS = -rpath $(MUTTER_TYPELIB_DIR) + +if HAVE_NETWORKMANAGER + +libexec_PROGRAMS += gnome-shell-portal-helper +gnome_shell_portal_helper_SOURCES = \ + gnome-shell-portal-helper.c \ + $(NULL) +nodist_gnome_shell_portal_helper_SOURCES = \ + $(top_builddir)/js/js-resources.c \ + $(top_builddir)/js/js-resources.h \ + $(NULL) +gnome_shell_portal_helper_CPPFLAGS = $(gnome_shell_cflags) +gnome_shell_portal_helper_LDADD = $(GNOME_SHELL_LIBS) +gnome_shell_portal_helper_LDFLAGS = -rpath $(MUTTER_TYPELIB_DIR) + +endif + +######################################## + +shell_recorder_sources = \ + shell-recorder.c \ + shell-recorder.h + +# Custom element is an internal detail + +if BUILD_RECORDER +libgnome_shell_sources += $(shell_recorder_sources) + +shell_recorder_private_sources = \ + shell-recorder-src.c \ + shell-recorder-src.h \ + $(NULL) + +shell_private_sources = $(shell_recorder_private_sources) + +endif BUILD_RECORDER + +######################################## + +libexec_PROGRAMS += gnome-shell-perf-helper + +gnome_shell_perf_helper_SOURCES = shell-perf-helper.c +gnome_shell_perf_helper_CPPFLAGS = $(SHELL_PERF_HELPER_CFLAGS) +gnome_shell_perf_helper_LDADD = $(SHELL_PERF_HELPER_LIBS) -lm + +######################################## + +noinst_PROGRAMS += run-js-test + +run_js_test_CPPFLAGS = $(MUTTER_CFLAGS) $(gnome_shell_cflags) +run_js_test_LDADD = libgnome-shell.la $(GNOME_SHELL_JS_LIBS) $(MUTTER_LIBS) +run_js_test_LDFLAGS = -export-dynamic -rpath $(MUTTER_TYPELIB_DIR) + +run_js_test_SOURCES = \ + run-js-test.c + +######################################## + +shell-enum-types.h: stamp-shell-enum-types.h Makefile + @true +stamp-shell-enum-types.h: $(srcdir)/shell-enum-types.h.in $(shell_public_headers_h) + $(AM_V_GEN) ( \ + $(GLIB_MKENUMS) \ + --template $< \ + $(addprefix $(srcdir)/,$(shell_public_headers_h)) ) > $(@F).tmp && \ + (cmp -s $(@F).tmp shell-enum-types.h || mv $(@F).tmp shell-enum-types.h) && \ + rm -f $(@F).tmp && \ + echo timestamp > $(@F) +EXTRA_DIST += shell-enum-types.h.in +CLEANFILES += stamp-shell-enum-types.h + +shell-enum-types.c: $(srcdir)/shell-enum-types.c.in stamp-shell-enum-types.h + $(AM_V_GEN) ( \ + $(GLIB_MKENUMS) \ + --template $< \ + $(addprefix $(srcdir)/,$(shell_public_headers_h)) ) > $(@F).tmp && \ + mv $(@F).tmp $(@F) && \ + rm -f $(@F).tmp +EXTRA_DIST += shell-enum-types.c.in + +gvcdir = $(top_builddir)/subprojects/gvc + +libgnome_shell_ldflags = -avoid-version +libgnome_shell_libadd = \ + -lm \ + $(GNOME_SHELL_LIBS) \ + libgnome-shell-menu.la \ + libst-1.0.la \ + libtray.la \ + $(gvcdir)/libgvc.la \ + $(NULL) + +libgnome_shell_menu_la_LDFLAGS = $(libgnome_shell_ldflags) +libgnome_shell_menu_la_LIBADD = $(GNOME_SHELL_LIBS) +libgnome_shell_menu_la_CPPFLAGS = $(GNOME_SHELL_CFLAGS) + +libgnome_shell_la_LDFLAGS = $(libgnome_shell_ldflags) +libgnome_shell_la_LIBADD = $(GNOME_SHELL_LIBS) $(MUTTER_LIBS) $(libgnome_shell_libadd) +libgnome_shell_la_CPPFLAGS = $(MUTTER_CFLAGS) $(gnome_shell_cflags) + +ShellMenu-0.1.gir: libgnome-shell-menu.la +ShellMenu_0_1_gir_INCLUDES = Gio-2.0 +ShellMenu_0_1_gir_CFLAGS = $(libgnome_shell_menu_la_CPPFLAGS) -I $(srcdir) +ShellMenu_0_1_gir_LIBS = libgnome-shell-menu.la +ShellMenu_0_1_gir_FILES = \ + gtkactionmuxer.h \ + gtkactionmuxer.c \ + gtkactionobservable.h \ + gtkactionobservable.c \ + gtkactionobserver.h \ + gtkactionobserver.c \ + gtkmenutrackeritem.c \ + gtkmenutrackeritem.h \ + $(NULL) +ShellMenu_0_1_gir_SCANNERFLAGS = \ + --namespace=ShellMenu --identifier-prefix=Gtk +INTROSPECTION_GIRS += ShellMenu-0.1.gir +CLEANFILES += ShellMenu-0.1.gir + +Shell-0.1.gir: gnome-shell St-1.0.gir ShellMenu-0.1.gir +Shell_0_1_gir_INCLUDES = Clutter-$(LIBMUTTER_API_VERSION) ClutterX11-$(LIBMUTTER_API_VERSION) Meta-$(LIBMUTTER_API_VERSION) Soup-2.4 +if HAVE_NETWORKMANAGER +Shell_0_1_gir_INCLUDES += NetworkManager-1.0 NMClient-1.0 +endif +Shell_0_1_gir_CFLAGS = $(libgnome_shell_la_CPPFLAGS) -I $(srcdir) +Shell_0_1_gir_LIBS = libgnome-shell.la +Shell_0_1_gir_FILES = $(libgnome_shell_la_gir_sources) +Shell_0_1_gir_SCANNERFLAGS = \ + --include-uninstalled=$(builddir)/St-1.0.gir \ + --include-uninstalled=$(builddir)/ShellMenu-0.1.gir \ + --add-include-path=$(MUTTER_GIR_DIR) +INTROSPECTION_GIRS += Shell-0.1.gir +CLEANFILES += Shell-0.1.gir + +St-1.0.gir: libst-1.0.la +St_1_0_gir_INCLUDES = Clutter-$(LIBMUTTER_API_VERSION) Gtk-3.0 +St_1_0_gir_CFLAGS = $(st_cflags) -DST_COMPILATION +St_1_0_gir_LIBS = libst-1.0.la +St_1_0_gir_FILES = $(filter-out %-private.h $(st_non_gir_sources), $(addprefix $(srcdir)/,$(st_source_h))) \ + $(addprefix $(srcdir)/,$(st_source_c)) +INTROSPECTION_GIRS += St-1.0.gir +CLEANFILES += St-1.0.gir diff --git a/tests/Makefile.am b/tests/Makefile.am new file mode 100644 index 000000000..22ef81d30 --- /dev/null +++ b/tests/Makefile.am @@ -0,0 +1,45 @@ +noinst_SCRIPTS = run-test.sh +EXTRA_DIST = run-test.sh.in + +TEST_JS = \ + interactive/background-repeat.js \ + interactive/background-size.js \ + interactive/borders.js \ + interactive/border-radius.js \ + interactive/border-width.js \ + interactive/box-layout.js \ + interactive/box-shadow-animated.js \ + interactive/box-shadows.js \ + interactive/calendar.js \ + interactive/css-fonts.js \ + interactive/entry.js \ + interactive/gapplication.js \ + interactive/icons.js \ + interactive/inline-style.js \ + interactive/scrolling.js \ + interactive/scroll-view-sizing.js \ + interactive/test-title.js \ + interactive/transitions.js \ + testcommon/100-200.svg \ + testcommon/200-100.svg \ + testcommon/200-200.svg \ + testcommon/border-image.png \ + testcommon/face-plain.png \ + testcommon/ui.js \ + unit/insertSorted.js \ + unit/markup.js \ + unit/jsParse.js \ + unit/url.js +EXTRA_DIST += $(TEST_JS) + +TEST_MISC = \ + testcommon/test.css +EXTRA_DIST += $(TEST_MISC) + +run-test.sh: run-test.sh.in + $(AM_V_GEN) sed \ + -e "s|@MUTTER_TYPELIB_DIR[@]|$(MUTTER_TYPELIB_DIR)|" \ + -e "s|@srcdir[@]|$(srcdir)|" \ + $< > $@ && chmod a+x $@ + +CLEANFILES = run-test.sh -- 2.13.5