[Xfce4-commits] <xfce4-screenshooter:master> Revert "Use a non-recursive Makefile.am to build the sources."

Jérôme Guelfucci jeromeg at xfce.org
Fri Aug 14 00:26:01 CEST 2009


Updating branch refs/heads/master
         to ccbfc4ac8f00e3f3e73bdbbe7708a723c740d554 (commit)
       from f6a458b16c09c6b0d6e2e9730fc20b998a6d5f76 (commit)

commit ccbfc4ac8f00e3f3e73bdbbe7708a723c740d554
Author: Jérôme Guelfucci <jeromeg at xfce.org>
Date:   Thu Aug 13 23:53:50 2009 +0200

    Revert "Use a non-recursive Makefile.am to build the sources."
    
    This reverts commit f6a458b16c09c6b0d6e2e9730fc20b998a6d5f76.

 ChangeLog                |   12 ----
 Makefile.am              |  160 +++-------------------------------------------
 configure.ac.in          |    2 +
 lib/Makefile.am          |   76 ++++++++++++++++++++++
 panel-plugin/Makefile.am |   44 +++++++++++++
 src/Makefile.am          |   42 ++++++++++++
 6 files changed, 174 insertions(+), 162 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 4389b55..89b8320 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -6,18 +6,6 @@ Fixed the Indonesian documentation sub-directory, the autotools scripts were
 incomplete.
 Updated Italian and Galician documentation translation.
 
-2009-07-31 jeromeg
-
-Use a non-recursive Makefile.am to build the sources.
-
-The non-recursive Makefile.am is used to build the convenience library,
-the main application and the panel plugin. This reduces the build time
-and it is no longer necessary to clean the whole project before build
-to test changes in the convenience library.
-
-Recursive make files are still used for the translations, the 
-documentation and the icons.
-
 2009-07-30 jeromeg
 
 Fix all warnings when running the autogen script.
diff --git a/Makefile.am b/Makefile.am
index 0169a90..d31b0d7 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,10 +1,6 @@
 @SET_MAKE@
 
-AUTOMAKE_OPTIONS = subdir-objects
-
-SUBDIRS = po po-doc icons docs
-
-bin_PROGRAMS = src/xfce4-screenshooter
+SUBDIRS = lib src panel-plugin po po-doc icons docs
 
 distclean-local:
 	rm -rf *.cache *~
@@ -15,152 +11,16 @@ dist-bz2: dist
 distcheck-bz2: distcheck
 	zcat $(PACKAGE)-$(VERSION).tar.gz | bzip2 --best -c > $(PACKAGE)-$(VERSION).tar.bz2
 
-# Convienence library for the application and the panel plugin
-noinst_LTLIBRARIES = lib/libscreenshooter.la
-
-lib_libscreenshooter_la_SOURCES =	\
-	$(lib_libscreenshooter_built_sources) \
-  lib/exo-job.c lib/exo-job.h \
-	lib/exo-simple-job.c lib/exo-simple-job.h \
-	lib/katze-throbber.c lib/katze-throbber.h \
-	lib/libscreenshooter.h \
-  lib/sexy-url-label.c lib/sexy-url-label.h \
-	lib/screenshooter-actions.c lib/screenshooter-actions.h \
-	lib/screenshooter-capture.c lib/screenshooter-capture.h \
-  lib/screenshooter-dialogs.c lib/screenshooter-dialogs.h \
-	lib/screenshooter-global.h \
-	lib/screenshooter-job.c lib/screenshooter-job.h \
-	lib/screenshooter-simple-job.c lib/screenshooter-simple-job.h \
-	lib/screenshooter-utils.c lib/screenshooter-utils.h \
-	lib/screenshooter-zimagez.c lib/screenshooter-zimagez.h
-
-lib_libscreenshooter_la_CFLAGS = \
-	-I$(top_srcdir)	\
-  @GTK_CFLAGS@ \
-	@GLIB_CFLAGS@ \
-	@LIBXFCE4UTIL_CFLAGS@ \
-	@LIBXFCEGUI4_CFLAGS@ \
-	@SOUP_CFLAGS@ \
-  -DPACKAGE_LOCALE_DIR=\"$(localedir)\"
-
-lib_libscreenshooter_la_LIBADD = \
-  @GTK_LIBS@ \
-	@LIBXFCE4UTIL_LIBS@ \
-	@LIBXFCEGUI4_LIBS@ \
-  @GLIB_LIBS@ \
-	@SOUP_LIBS@
-
-lib_libscreenshooter_built_sources = \
-	lib/screenshooter-marshal.c lib/screenshooter-marshal.h
-
-#Autogenerated sources for the library
-BUILT_SOURCES =	$(lib_libscreenshooter_built_sources)
-
-lib/screenshooter-marshal.h: lib/stamp-screenshooter-marshal.h
-	@true
-lib/stamp-screenshooter-marshal.h: lib/screenshooter-marshal.list
-	( cd $(top_srcdir)/lib && glib-genmarshal \
-		--prefix=_screenshooter_marshal \
-		--header screenshooter-marshal.list ) >> xgen-emh \
-	&& ( cmp -s xgen-emh screenshooter-marshal.h || cp xgen-emh screenshooter-marshal.h ) \
-	&& rm -f xgen-emh \
-	&& echo timestamp > $(@F)
-
-lib/screenshooter-marshal.c: lib/screenshooter-marshal.list
-	cd $(top_srcdir)/lib \
-	&& echo "#include \"screenshooter-marshal.h\"" > xgen-emc \
-	&& glib-genmarshal \
-	--prefix=_screenshooter_marshal \
-	--body screenshooter-marshal.list >> xgen-emc \
-	&& cp xgen-emc screenshooter-marshal.c \
-	&& rm -f xgen-emc
-
-# Main application
-src_xfce4_screenshooter_CFLAGS = \
-	-I$(top_srcdir)/lib \
-	@GTK_CFLAGS@ \
-	@GLIB_CFLAGS@ \
-	@LIBXFCE4UTIL_CFLAGS@ \
-	@LIBXFCEGUI4_CFLAGS@ \
-	@GTHREAD_CFLAGS@ \
-	@SOUP_CFLAGS@ \
-	-DPACKAGE_LOCALE_DIR=\"$(localedir)\"
-	
-src_xfce4_screenshooter_LDFLAGS = \
-	$(top_builddir)/lib/libscreenshooter.la \
-	@GTK_LIBS@ \
-	@GLIB_LIBS@ \
-	@GTHREAD_LIBS@ \
-	@SOUP_LIBS@ \
-	@LIBXFCE4UTIL_LIBS@ \
-	@LIBXFCEGUI4_LIBS@
-	
-src_xfce4_screenshooter_SOURCES	= \
-	src/main.c
-
-# Desktop file for the application
-app_desktopdir = $(datadir)/applications
-app_desktop_in_in_files = src/xfce4-screenshooter.desktop.in.in
-app_desktop_in_files = $(app_desktop_in_in_files:.desktop.in.in=.desktop.in)
-app_desktop_DATA = $(app_desktop_in_files:.desktop.in=.desktop)
- at INTLTOOL_DESKTOP_RULE@
-
-src/xfce4-screenshooter.desktop.in: src/xfce4-screenshooter.desktop.in.in
-	sed -e "s^@PLUGIN_PATH@^$(libexecdir)/applications^" 	\
-		$< > $@
-
-# Panel plugin
-plugindir = $(libexecdir)/xfce4/panel-plugins
-plugin_PROGRAMS = panel-plugin/xfce4-screenshooter-plugin
-
-panel_plugin_xfce4_screenshooter_plugin_CFLAGS =	\
-	-DPACKAGE_LOCALE_DIR=\"$(localedir)\"	\
-	-I$(top_srcdir)	\
-	-I$(top_srcdir)/lib	\
-	@LIBXFCE4PANEL_CFLAGS@ \
-	@GTHREAD_CFLAGS@ \
-	@SOUP_CFLAGS@
-
-panel_plugin_xfce4_screenshooter_plugin_LDFLAGS = \
-	$(top_builddir)/lib/libscreenshooter.la \
-	@LIBXFCE4PANEL_LIBS@ \
-	@GTHREAD_LIBS@ \
-	@SOUP_LIBS@
-
-panel_plugin_xfce4_screenshooter_plugin_SOURCES = \
-	panel-plugin/screenshooter-plugin.c
-
-# Panel plugin desktop file
-panel_desktop_in_in_files = panel-plugin/screenshooter.desktop.in.in
-panel_desktop_in_files = $(desktop_in_in_files:.desktop.in.in=.desktop.in)
-
-panel_desktopdir = $(datadir)/xfce4/panel-plugins
-panel_desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)
- at INTLTOOL_DESKTOP_RULE@
-
-panel-plugin/screenshooter.desktop.in: panel-plugin/screenshooter.desktop.in.in
-	sed -e "s^@PLUGIN_PATH@^$(libexecdir)/xfce4/panel-plugins^" 	\
-		$< > $@
-
-# Extra dist and distclean rules
-EXTRA_DIST = \
-	README	\
-	intltool-extract.in	\
-	intltool-merge.in	\
-	intltool-update.in \
-	lib/screenshooter-marshal.list \
-	$(app_desktop_in_in_files) \
-	$(panel_desktop_in_in_files)
+EXTRA_DIST = 								\
+	README								\
+	intltool-extract.in						\
+	intltool-merge.in						\
+	intltool-update.in
 
-DISTCLEANFILES = \
-	intltool-extract \
-	intltool-merge \
-	intltool-update \
-	stamp-screenshooter-marshal.h \
-	$(lib_libscreenshooter_built_sources) \
-	$(app_desktop_DATA) $(app_desktop_in_files) \
-	$(panel_desktop_DATA) $(panel_desktop_in_files)
+DISTCLEANFILES =							\
+	intltool-extract						\
+	intltool-merge							\
+	intltool-update
 
-# Man pages
 dist_man_MANS = xfce4-screenshooter.1
 
diff --git a/configure.ac.in b/configure.ac.in
index 4889fc7..83e4366 100644
--- a/configure.ac.in
+++ b/configure.ac.in
@@ -119,6 +119,8 @@ docs/manual/tr/images/Makefile
 icons/Makefile
 icons/48x48/Makefile
 icons/scalable/Makefile
+lib/Makefile
+src/Makefile
 panel-plugin/Makefile
 po/Makefile.in
 po-doc/Makefile
diff --git a/lib/Makefile.am b/lib/Makefile.am
new file mode 100644
index 0000000..c559eea
--- /dev/null
+++ b/lib/Makefile.am
@@ -0,0 +1,76 @@
+noinst_LTLIBRARIES = \
+	libscreenshooter.la
+
+libscreenshooter_la_SOURCES =	\
+	$(libscreenshooter_built_sources) \
+  exo-job.c exo-job.h \
+	exo-simple-job.c exo-simple-job.h \
+	katze-throbber.c katze-throbber.h \
+	libscreenshooter.h \
+  sexy-url-label.c sexy-url-label.h \
+	screenshooter-actions.c screenshooter-actions.h \
+	screenshooter-capture.c screenshooter-capture.h \
+  screenshooter-dialogs.c screenshooter-dialogs.h \
+	screenshooter-global.h \
+	screenshooter-job.c screenshooter-job.h \
+	screenshooter-simple-job.c screenshooter-simple-job.h \
+	screenshooter-utils.c screenshooter-utils.h \
+	screenshooter-zimagez.c screenshooter-zimagez.h
+
+libscreenshooter_la_CFLAGS = \
+	-I$(top_srcdir)	\
+  @GTK_CFLAGS@ \
+	@GLIB_CFLAGS@ \
+	@LIBXFCE4UTIL_CFLAGS@ \
+	@LIBXFCEGUI4_CFLAGS@ \
+	@SOUP_CFLAGS@ \
+  -DPACKAGE_LOCALE_DIR=\"$(localedir)\"
+	
+libscreenshooter_la_LIBADD = \
+  @GTK_LIBS@ \
+	@LIBXFCE4UTIL_LIBS@ \
+	@LIBXFCEGUI4_LIBS@ \
+  @GLIB_LIBS@ \
+	@SOUP_LIBS@
+
+libscreenshooter_built_sources = \
+	screenshooter-marshal.c screenshooter-marshal.h
+
+##
+## Rules to auto-generate built sources
+##
+## This is a bit tricky with automake, and non-trivial to implement. The
+## rules below seem to work fine and don't seem to break the build, but
+## they are only enabled in maintainer mode, so arbitrary users don't get
+## trapped in automake's oddities. Therefore we ship the autogenerated
+## files as part of the dist tarball.
+##
+
+DISTCLEANFILES =	\
+	stamp-screenshooter-marshal.h \
+	$(libscreenshooter_built_sources)
+
+BUILT_SOURCES = \
+	$(libscreenshooter_built_sources)
+
+screenshooter-marshal.h: stamp-screenshooter-marshal.h
+	@true
+stamp-screenshooter-marshal.h: screenshooter-marshal.list Makefile
+	( cd $(srcdir) && glib-genmarshal \
+		--prefix=_screenshooter_marshal \
+		--header screenshooter-marshal.list ) >> xgen-emh \
+	&& ( cmp -s xgen-emh screenshooter-marshal.h || cp xgen-emh screenshooter-marshal.h ) \
+	&& rm -f xgen-emh \
+	&& echo timestamp > $(@F)
+
+screenshooter-marshal.c: screenshooter-marshal.list Makefile
+	cd $(srcdir) \
+	&& echo "#include \"screenshooter-marshal.h\"" > xgen-emc \
+	&& glib-genmarshal \
+	--prefix=_screenshooter_marshal \
+	--body screenshooter-marshal.list >> xgen-emc \
+	&& cp xgen-emc screenshooter-marshal.c \
+	&& rm -f xgen-emc
+
+EXTRA_DIST = \
+	screenshooter-marshal.list
diff --git a/panel-plugin/Makefile.am b/panel-plugin/Makefile.am
new file mode 100644
index 0000000..6c15555
--- /dev/null
+++ b/panel-plugin/Makefile.am
@@ -0,0 +1,44 @@
+plugindir = $(libexecdir)/xfce4/panel-plugins
+plugin_PROGRAMS = xfce4-screenshooter-plugin
+
+xfce4_screenshooter_plugin_CFLAGS =	\
+	-DPACKAGE_LOCALE_DIR=\"$(localedir)\"	\
+	-I$(top_srcdir)	\
+	-I$(top_srcdir)/lib	\
+	@LIBXFCE4PANEL_CFLAGS@ \
+	@GTHREAD_CFLAGS@ \
+	@SOUP_CFLAGS@
+
+xfce4_screenshooter_plugin_LDFLAGS = \
+	$(top_builddir)/lib/libscreenshooter.la \
+	@LIBXFCE4PANEL_LIBS@ \
+	@GTHREAD_LIBS@ \
+	@SOUP_LIBS@
+
+xfce4_screenshooter_plugin_SOURCES = \
+	screenshooter-plugin.c
+	
+# .desktop file
+#
+# Some automake trickery here. Because we cannot use $(libexecdir) in the
+# automake stage, we'll use sed to get the full path into the .desktop file.
+# We also need to let intltool merge the translated fields, so we add an
+# additional level of indirection: a <name>.desktop.in.in file.
+#
+desktop_in_in_files = screenshooter.desktop.in.in
+desktop_in_files = $(desktop_in_in_files:.desktop.in.in=.desktop.in)
+
+desktopdir = $(datadir)/xfce4/panel-plugins
+desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)
+ at INTLTOOL_DESKTOP_RULE@
+
+# get full path into .desktop file
+screenshooter.desktop.in: screenshooter.desktop.in.in
+	sed -e "s^@PLUGIN_PATH@^$(libexecdir)/xfce4/panel-plugins^" 	\
+		$< > $@
+
+EXTRA_DIST =								\
+	$(desktop_in_in_files)
+
+DISTCLEANFILES =							\
+	$(desktop_DATA) $(desktop_in_files)
diff --git a/src/Makefile.am b/src/Makefile.am
new file mode 100644
index 0000000..c9a26d8
--- /dev/null
+++ b/src/Makefile.am
@@ -0,0 +1,42 @@
+bin_PROGRAMS = xfce4-screenshooter
+	
+xfce4_screenshooter_CFLAGS = \
+	-I$(top_srcdir)/lib \
+	@GTK_CFLAGS@ \
+	@GLIB_CFLAGS@ \
+	@LIBXFCE4UTIL_CFLAGS@ \
+	@LIBXFCEGUI4_CFLAGS@ \
+	@GTHREAD_CFLAGS@ \
+	@SOUP_CFLAGS@ \
+	-DPACKAGE_LOCALE_DIR=\"$(localedir)\"
+	
+xfce4_screenshooter_LDFLAGS = \
+	$(top_builddir)/lib/libscreenshooter.la \
+	@GTK_LIBS@ \
+	@GLIB_LIBS@ \
+	@GTHREAD_LIBS@ \
+	@SOUP_LIBS@ \
+	@LIBXFCE4UTIL_LIBS@ \
+	@LIBXFCEGUI4_LIBS@
+
+	
+xfce4_screenshooter_SOURCES	= \
+	main.c		
+
+desktopdir = $(datadir)/applications
+desktop_in_in_files = xfce4-screenshooter.desktop.in.in
+desktop_in_files = $(desktop_in_in_files:.desktop.in.in=.desktop.in)
+desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)
+ at INTLTOOL_DESKTOP_RULE@
+
+# get full path into .desktop file
+xfce4-screenshooter.desktop.in: xfce4-screenshooter.desktop.in.in
+	sed -e "s^@PLUGIN_PATH@^$(libexecdir)/applications^" 	\
+		$< > $@
+	
+EXTRA_DIST =								\
+	$(desktop_in_in_files)
+
+DISTCLEANFILES =							\
+	$(desktop_DATA) $(desktop_in_files)
+



More information about the Xfce4-commits mailing list