![Owen W. Taylor](/assets/img/avatar_default.png)
We were going to great effort to include the normal directories in the GJS search path and the code to to do this broke recently when jsdir and jsnativedir were moved to gjs-internals-1.0.pc. However, it was actually unnecessary since the standard directories are appended to the default path. (We continue to use a GNOME_SHELL_JS envvar separate from GJS_PATH for the Shell to enable the somewhat unlikely case where someone wants to invoke the shell specifying a GJS_PATH.) https://bugzilla.gnome.org/show_bug.cgi?id=635367
306 lines
8.5 KiB
Makefile
306 lines
8.5 KiB
Makefile
NULL =
|
|
BUILT_SOURCES =
|
|
CLEANFILES =
|
|
EXTRA_DIST =
|
|
libexec_PROGRAMS =
|
|
noinst_LTLIBRARIES =
|
|
noinst_PROGRAMS =
|
|
|
|
.AUTOPARALLEL:
|
|
|
|
bin_SCRIPTS = gnome-shell gnome-shell-clock-preferences
|
|
|
|
gnome-shell: gnome-shell.in
|
|
$(AM_V_GEN) sed -e "s|@MUTTER_BIN_DIR[@]|$(MUTTER_BIN_DIR)|" \
|
|
-e "s|@datadir[@]|$(datadir)|" \
|
|
-e "s|@libexecdir[@]|$(libexecdir)|" \
|
|
-e "s|@libdir[@]|$(libdir)|" \
|
|
-e "s|@pkgdatadir[@]|$(pkgdatadir)|" \
|
|
-e "s|@PYTHON[@]|$(PYTHON)|" \
|
|
-e "s|@VERSION[@]|$(VERSION)|" \
|
|
-e "s|@sysconfdir[@]|$(sysconfdir)|" \
|
|
$< > $@ && chmod a+x $@
|
|
CLEANFILES += gnome-shell
|
|
EXTRA_DIST += gnome-shell.in
|
|
|
|
gnome-shell-clock-preferences: gnome-shell-clock-preferences.in
|
|
$(AM_V_GEN) sed -e "s|@datadir[@]|$(datadir)|" \
|
|
-e "s|@pkgdatadir[@]|$(pkgdatadir)|" \
|
|
-e "s|@localedir[@]|$(datadir)/locale|" \
|
|
-e "s|@GJS_CONSOLE[@]|$(GJS_CONSOLE)|" \
|
|
$< > $@ && chmod a+x $@
|
|
CLEANFILES += gnome-shell-clock-preferences
|
|
EXTRA_DIST += gnome-shell-clock-preferences.in
|
|
|
|
include Makefile-gdmuser.am
|
|
include Makefile-st.am
|
|
include Makefile-tray.am
|
|
include Makefile-gvc.am
|
|
|
|
gnome_shell_cflags = \
|
|
$(MUTTER_PLUGIN_CFLAGS) \
|
|
$(LIBGNOMEUI_CFLAGS) \
|
|
-I$(srcdir)/tray \
|
|
-DLOCALEDIR=\"$(datadir)/locale\" \
|
|
-DGNOME_SHELL_DATADIR=\"$(pkgdatadir)\" \
|
|
-DGNOME_SHELL_PKGLIBDIR=\"$(pkglibdir)\" \
|
|
-DJSDIR=\"$(pkgdatadir)/js\"
|
|
|
|
plugindir = $(MUTTER_PLUGIN_DIR)
|
|
plugin_LTLIBRARIES = libgnome-shell.la
|
|
|
|
shell_built_sources = \
|
|
shell-marshal.h \
|
|
shell-marshal.c \
|
|
shell-enum-types.h \
|
|
shell-enum-types.c
|
|
|
|
BUILT_SOURCES += $(shell_built_sources)
|
|
EXTRA_DIST += shell-marshal.list
|
|
|
|
shell_public_headers_h = \
|
|
shell-app.h \
|
|
shell-app-system.h \
|
|
shell-app-usage.h \
|
|
shell-arrow.h \
|
|
shell-doc-system.h \
|
|
shell-drawing.h \
|
|
shell-embedded-window.h \
|
|
shell-generic-container.h \
|
|
shell-gtk-embed.h \
|
|
shell-process.h \
|
|
shell-global.h \
|
|
shell-perf-log.h \
|
|
shell-slicer.h \
|
|
shell-stack.h \
|
|
shell-tray-icon.h \
|
|
shell-tray-manager.h \
|
|
shell-util.h \
|
|
shell-window-tracker.h \
|
|
shell-wm.h \
|
|
shell-xfixes-cursor.h
|
|
|
|
libgnome_shell_la_SOURCES = \
|
|
$(shell_built_sources) \
|
|
$(shell_public_headers_h) \
|
|
shell-app-private.h \
|
|
shell-embedded-window-private.h \
|
|
shell-global-private.h \
|
|
shell-jsapi-compat-private.h \
|
|
shell-window-tracker-private.h \
|
|
shell-wm-private.h \
|
|
gnome-shell-plugin.c \
|
|
gtk-compat.h \
|
|
shell-app.c \
|
|
shell-app-system.c \
|
|
shell-app-usage.c \
|
|
shell-arrow.c \
|
|
shell-doc-system.c \
|
|
shell-drawing.c \
|
|
shell-embedded-window.c \
|
|
shell-generic-container.c \
|
|
shell-gtk-embed.c \
|
|
shell-process.c \
|
|
shell-global.c \
|
|
shell-perf-log.c \
|
|
shell-slicer.c \
|
|
shell-stack.c \
|
|
shell-tray-icon.c \
|
|
shell-tray-manager.c \
|
|
shell-util.c \
|
|
shell-window-tracker.c \
|
|
shell-wm.c \
|
|
shell-xfixes-cursor.c
|
|
|
|
libgnome_shell_la_gir_sources = \
|
|
$(filter-out %-private.h $(shell_recorder_non_gir_sources), $(shell_public_headers_h) $(libgnome_shell_la_SOURCES))
|
|
|
|
########################################
|
|
|
|
shell_recorder_sources = \
|
|
shell-recorder.c \
|
|
shell-recorder.h
|
|
|
|
# Custom element is an internal detail
|
|
shell_recorder_non_gir_sources = \
|
|
shell-recorder-src.c \
|
|
shell-recorder-src.h
|
|
|
|
if BUILD_RECORDER
|
|
libgnome_shell_la_SOURCES += $(shell_recorder_sources) $(shell_recorder_non_gir_sources)
|
|
|
|
noinst_PROGRAMS += test-recorder
|
|
|
|
test_recorder_CPPFLAGS = $(TEST_SHELL_RECORDER_CFLAGS)
|
|
test_recorder_LDADD = $(TEST_SHELL_RECORDER_LIBS)
|
|
|
|
test_recorder_SOURCES = \
|
|
$(shell_recorder_sources) $(shell_recorder_non_gir_sources) \
|
|
test-recorder.c
|
|
endif BUILD_RECORDER
|
|
|
|
########################################
|
|
|
|
# In order to run the interactive tests for GUI components, we need to have
|
|
# an executable that exports the St components. Libtool doesn't have a way
|
|
# to include all the symbols from a convenience library into a executable
|
|
# so what we do is build a small uninstalled library that pulls in the
|
|
# St convenience library and link the test running program to that.
|
|
|
|
noinst_LTLIBRARIES += libjs-test.la
|
|
|
|
libjs_test_la_LDFLAGS = -rpath $(libdir)
|
|
libjs_test_la_CPPFLAGS = $(JS_TEST_CFLAGS)
|
|
libjs_test_la_LIBADD = $(JS_TEST_LIBS) libst-1.0.la
|
|
|
|
# The tests use or reference a couple of Shell classes
|
|
libjs_test_la_SOURCES = \
|
|
shell-generic-container.c \
|
|
shell-perf-log.c
|
|
|
|
noinst_PROGRAMS += run-js-test
|
|
|
|
run_js_test_CPPFLAGS = $(JS_TEST_CFLAGS)
|
|
run_js_test_LDADD = $(JS_TEST_LIBS) libjs-test.la
|
|
run_js_test_LDFLAGS = -export-dynamic
|
|
|
|
run_js_test_SOURCES = \
|
|
run-js-test.c
|
|
|
|
########################################
|
|
|
|
shell-marshal.h: stamp-shell-marshal.h
|
|
@true
|
|
stamp-shell-marshal.h: Makefile shell-marshal.list
|
|
$(AM_V_GEN) $(GLIB_GENMARSHAL) \
|
|
--prefix=_shell_marshal \
|
|
--header \
|
|
$(srcdir)/shell-marshal.list > xgen-smh && \
|
|
(cmp -s xgen-smh shell-marshal.h || cp -f xgen-smh shell-marshal.h) && \
|
|
rm -f xgen-smh && \
|
|
echo timestamp > $(@F)
|
|
CLEANFILES += stamp-shell-marshal.h
|
|
|
|
shell-marshal.c: Makefile shell-marshal.list
|
|
$(AM_V_GEN) (echo "#include \"shell-marshal.h\"" ; \
|
|
$(GLIB_GENMARSHAL) \
|
|
--prefix=_shell_marshal \
|
|
--body \
|
|
$(srcdir)/shell-marshal.list ) > xgen-smc && \
|
|
cp -f xgen-smc shell-marshal.c && \
|
|
rm -f xgen-smc
|
|
|
|
|
|
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) ( cd $(srcdir) && \
|
|
$(GLIB_MKENUMS) \
|
|
--template $< \
|
|
$(shell_public_headers_h) ) > $@.tmp && \
|
|
(cmp -s $@.tmp shell-enum-types.h || mv $@.tmp shell-enum-types.h) && \
|
|
rm -f $@.tmp && \
|
|
echo timestamp > $(@F)
|
|
EXTRA_DIST += shell-enum-types.h.in
|
|
CLEANFILES += stamp-shell-enum-types.h
|
|
|
|
shell-enum-types.c: shell-enum-types.c.in stamp-shell-enum-types.h
|
|
$(AM_V_GEN) ( cd $(srcdir) && \
|
|
$(GLIB_MKENUMS) \
|
|
--template $< \
|
|
$(shell_public_headers_h) ) > $@.tmp && \
|
|
mv $@.tmp $@ && \
|
|
rm -f $@.tmp
|
|
EXTRA_DIST += shell-enum-types.c.in
|
|
|
|
libgnome_shell_la_LDFLAGS = -avoid-version -module
|
|
libgnome_shell_la_LIBADD = \
|
|
-lm \
|
|
$(MUTTER_PLUGIN_LIBS) \
|
|
$(LIBGNOMEUI_LIBS) \
|
|
libst-1.0.la \
|
|
libgdmuser-1.0.la \
|
|
libtray.la \
|
|
libgvc.la
|
|
libgnome_shell_la_CPPFLAGS = $(gnome_shell_cflags)
|
|
|
|
typelibdir = $(pkglibdir)
|
|
typelib_DATA = Shell-0.1.typelib St-1.0.typelib Gdm-1.0.typelib Gvc-1.0.typelib
|
|
|
|
Shell-0.1.gir: $(mutter) $(G_IR_SCANNER) St-1.0.gir libgnome-shell.la Makefile
|
|
$(AM_V_GEN) $(G_IR_SCANNER) \
|
|
--namespace=Shell \
|
|
--nsversion=0.1 \
|
|
--warn-all \
|
|
--warn-error \
|
|
--add-include-path=$(MUTTER_LIB_DIR)/mutter/ \
|
|
--include=Clutter-1.0 \
|
|
--include=ClutterX11-1.0 \
|
|
--include=Meta-2.91 \
|
|
--libtool="$(LIBTOOL)" \
|
|
--add-include-path=$(builddir) \
|
|
--include=St-1.0 \
|
|
--program=mutter \
|
|
--program-arg=--mutter-plugins=$$(pwd)/libgnome-shell.la \
|
|
$(addprefix $(srcdir)/,$(libgnome_shell_la_gir_sources)) \
|
|
$(libgnome_shell_la_CPPFLAGS) \
|
|
-I $(srcdir) \
|
|
-o $@
|
|
CLEANFILES += Shell-0.1.gir
|
|
|
|
# The dependency on libgnome-shell.la here is because g-ir-compiler opens it
|
|
# (not the fake library, since we've already done the rewriting)
|
|
Shell-0.1.typelib: libgnome-shell.la Shell-0.1.gir
|
|
$(AM_V_GEN) \
|
|
$(G_IR_COMPILER) \
|
|
--includedir=. \
|
|
--includedir=$(MUTTER_LIB_DIR)/mutter/ \
|
|
Shell-0.1.gir -o $@
|
|
CLEANFILES += Shell-0.1.typelib
|
|
|
|
St-1.0.gir: $(mutter) $(G_IR_SCANNER) libst-1.0.la Makefile
|
|
$(AM_V_GEN) $(G_IR_SCANNER) \
|
|
--namespace=St \
|
|
--nsversion=1.0 \
|
|
--warn-all \
|
|
--warn-error \
|
|
--include=Clutter-1.0 \
|
|
--include=Gtk-3.0 \
|
|
--add-include-path=$(builddir) \
|
|
--libtool="$(LIBTOOL)" \
|
|
--library=libst-1.0.la \
|
|
-DST_COMPILATION \
|
|
$(filter-out %-private.h, $(addprefix $(srcdir)/,$(st_source_h))) \
|
|
$(addprefix $(srcdir)/,$(st_source_c)) \
|
|
$(srcdir)/st-enum-types.h \
|
|
$(st_cflags) \
|
|
-o $@
|
|
CLEANFILES += St-1.0.gir
|
|
|
|
St-1.0.typelib: St-1.0.gir
|
|
$(AM_V_GEN) $(G_IR_COMPILER) \
|
|
$< -o $@
|
|
|
|
CLEANFILES += St-1.0.typelib
|
|
|
|
Gdm-1.0.gir: $(mutter) $(G_IR_SCANNER) libgdmuser-1.0.la Makefile
|
|
$(AM_V_GEN) $(G_IR_SCANNER) \
|
|
--namespace=Gdm \
|
|
--nsversion=1.0 \
|
|
--warn-all \
|
|
--warn-error \
|
|
--include=GObject-2.0 \
|
|
--include=GdkPixbuf-2.0 \
|
|
--libtool="$(LIBTOOL)" \
|
|
--library=libgdmuser-1.0.la \
|
|
$(filter-out %-private.h, $(addprefix $(srcdir)/,$(gdmuser_source_h))) \
|
|
$(addprefix $(srcdir)/,$(gdmuser_source_c)) \
|
|
$(gdmuser_cflags) \
|
|
-o $@
|
|
CLEANFILES += Gdm-1.0.gir
|
|
|
|
Gdm-1.0.typelib: Gdm-1.0.gir
|
|
$(AM_V_GEN) $(G_IR_COMPILER) Gdm-1.0.gir -o $@
|
|
CLEANFILES += Gdm-1.0.typelib
|
|
|