build: Use target-specific VALAFLAGS rather than AM_VALAFLAGS
authorPhilip Withnall <philip@tecnocode.co.uk>
Thu, 20 Jun 2013 16:21:41 +0000 (17:21 +0100)
committerPhilip Withnall <philip@tecnocode.co.uk>
Fri, 5 Jul 2013 20:46:22 +0000 (21:46 +0100)
This allows automake to parse the flags for each target and generate
appropriate rules. For example, by explicitly specifying “--vapi foo.vapi” in
foo_VALAFLAGS (not just specifying “--library foo”), dependency and clean-up
rules for foo.vapi will be generated by automake. Accordingly, this commit
also adds missing --vapi flags.

Helps: https://bugzilla.gnome.org/show_bug.cgi?id=701099

16 files changed:
backends/eds/Makefile.am
backends/eds/lib/Makefile.am
backends/libsocialweb/Makefile.am
backends/libsocialweb/lib/Makefile.am
backends/telepathy/Makefile.am
backends/telepathy/lib/Makefile.am
backends/tracker/Makefile.am
backends/tracker/lib/Makefile.am
folks/Makefile.am
tests/lib/Makefile.am
tests/lib/eds/Makefile.am
tests/lib/key-file/Makefile.am
tests/lib/libsocialweb/Makefile.am
tests/lib/telepathy/Makefile.am
tests/lib/tracker/Makefile.am
tests/telepathy/Makefile.am

index 60c9426..af242ff 100644 (file)
@@ -2,34 +2,32 @@ SUBDIRS = lib
 
 BACKEND_NAME = "eds"
 
-AM_VALAFLAGS += \
+backenddir = $(BACKEND_DIR)/eds
+backend_LTLIBRARIES = eds.la
+
+eds_la_VALAFLAGS = \
+       $(AM_VALAFLAGS) \
        $(ERROR_VALAFLAGS) \
        --vapidir=. \
        --vapidir=$(top_builddir)/backends/eds/lib \
        --vapidir=$(top_srcdir)/folks \
-       $(addprefix --pkg ,$(eds_deps)) \
+       --vapidir=$(top_builddir)/folks \
+       --pkg folks \
+       --pkg folks-internal \
+       --pkg folks-eds \
+       --pkg gee-0.8 \
+       --pkg gio-2.0 \
+       --pkg gobject-2.0 \
+       --pkg libebook-1.2 \
+       --pkg libedataserver-1.2 \
+       --pkg libxml-2.0 \
        $(NULL)
 
-backenddir = $(BACKEND_DIR)/eds
-backend_LTLIBRARIES = eds.la
-
 eds_la_SOURCES = \
        eds-backend.vala \
        eds-backend-factory.vala \
        $(NULL)
 
-eds_deps = \
-       folks \
-       folks-internal \
-       folks-eds \
-       gee-0.8 \
-       gio-2.0 \
-       gobject-2.0 \
-       libebook-1.2 \
-       libedataserver-1.2 \
-       libxml-2.0 \
-       $(NULL)
-
 eds_la_CPPFLAGS = \
        -I$(top_srcdir) \
        -I$(top_srcdir)/folks \
index 4223bda..3c5718b 100644 (file)
@@ -26,8 +26,6 @@ pkgconfig_in = folks-eds.pc.in
 pkgconfigdir = $(libdir)/pkgconfig
 pkgconfig_DATA = $(pkgconfig_in:.in=)
 
-libfolks_eds_la_vala.stamp:
-
 folks_eds_valasources = \
        edsf-namespace.vala \
        edsf-persona.vala \
@@ -39,10 +37,6 @@ libfolks_eds_la_SOURCES = \
        $(folks_eds_valasources) \
        $(NULL)
 
-# XXX: it would be nice to do something like this below:
-#    $(addprefix --pkg ,$(folks_backend_eds_deps)) \
-# to factor out repetition, but automake's Vala support doesn't like it
-# because it assumes it can simply match every flag in any _VALAFLAGS string.
 libfolks_eds_la_VALAFLAGS = \
        $(AM_VALAFLAGS) \
        $(ERROR_VALAFLAGS) \
index 67a3529..0f608d6 100644 (file)
@@ -2,12 +2,19 @@ SUBDIRS = lib
 
 BACKEND_NAME = "libsocialweb"
 
-AM_VALAFLAGS += \
+libsocialweb_la_VALAFLAGS = \
+       $(AM_VALAFLAGS) \
        $(ERROR_VALAFLAGS) \
        --vapidir=. \
        --vapidir=$(top_builddir)/backends/libsocialweb/lib \
        --vapidir=$(top_srcdir)/folks \
-       $(addprefix --pkg ,$(libsocialweb_deps)) \
+       --pkg folks \
+       --pkg folks-internal \
+       --pkg folks-libsocialweb \
+       --pkg gee-0.8 \
+       --pkg gio-2.0 \
+       --pkg gobject-2.0 \
+       --pkg libsocialweb-client \
        $(NULL)
 
 backenddir = $(BACKEND_DIR)/libsocialweb
@@ -18,16 +25,6 @@ libsocialweb_la_SOURCES = \
        sw-backend-factory.vala \
        $(NULL)
 
-libsocialweb_deps = \
-       folks \
-       folks-internal \
-       folks-libsocialweb \
-       gee-0.8 \
-       gio-2.0 \
-       gobject-2.0 \
-       libsocialweb-client \
-       $(NULL)
-
 libsocialweb_la_CPPFLAGS = \
        -I$(top_srcdir) \
        -I$(top_srcdir)/folks \
index 04074ce..f07cb60 100644 (file)
@@ -25,8 +25,6 @@ pkgconfig_in = folks-libsocialweb.pc.in
 pkgconfigdir = $(libdir)/pkgconfig
 pkgconfig_DATA = $(pkgconfig_in:.in=)
 
-libfolks_libsocialweb_la_vala.stamp:
-
 folks_libsocialweb_valasources = \
        swf-namespace.vala \
        swf-persona.vala \
@@ -38,27 +36,21 @@ libfolks_libsocialweb_la_SOURCES = \
        $(NULL)
 
 libfolks_libsocialweb_la_VALAFLAGS = \
+       $(AM_VALAFLAGS) \
        $(ERROR_VALAFLAGS) \
-        --vapidir=. \
-        --vapidir=$(top_srcdir)/folks \
-        --pkg folks \
-        --pkg folks-internal \
-        --pkg folks-generics \
-        --pkg gobject-2.0 \
-        --pkg gio-2.0 \
-        --pkg gee-0.8 \
-        --pkg libsocialweb-client \
-        --includedir folks \
-        --vapi folks-libsocialweb.vapi \
-        -H folks/folks-libsocialweb.h \
-        $(NULL)
-
-folks_backend_libsocialweb_deps = \
-       folks \
-       gee-0.8 \
-       gio-2.0 \
-       gobject-2.0 \
-       libsocialweb-client \
+       --vapidir=. \
+       --vapidir=$(top_srcdir)/folks \
+       --pkg folks \
+       --pkg folks-internal \
+       --pkg folks-generics \
+       --pkg gobject-2.0 \
+       --pkg gio-2.0 \
+       --pkg gee-0.8 \
+       --pkg libsocialweb-client \
+       --includedir folks \
+       --library folks-libsocialweb \
+       --vapi folks-libsocialweb.vapi \
+       -H folks/folks-libsocialweb.h \
        $(NULL)
 
 libfolks_libsocialweb_la_CFLAGS = \
index 0e5bf5a..d22d969 100644 (file)
@@ -2,7 +2,8 @@ SUBDIRS = lib
 
 BACKEND_NAME = "telepathy"
 
-AM_VALAFLAGS += \
+telepathy_la_VALAFLAGS = \
+       $(AM_VALAFLAGS) \
        $(ERROR_VALAFLAGS) \
        --vapidir=$(abs_srcdir) \
        --vapidir=$(abs_builddir) \
@@ -10,7 +11,13 @@ AM_VALAFLAGS += \
        --vapidir=$(abs_top_builddir)/backends/telepathy/lib \
        --vapidir=$(abs_top_srcdir)/folks \
        --vapidir=$(abs_top_builddir)/folks \
-       $(addprefix --pkg ,$(telepathy_deps)) \
+       --pkg folks \
+       --pkg folks-internal \
+       --pkg folks-telepathy \
+       --pkg gee-0.8 \
+       --pkg gio-2.0 \
+       --pkg gobject-2.0 \
+       --pkg telepathy-glib \
        $(NULL)
 
 backenddir = $(BACKEND_DIR)/telepathy
@@ -21,16 +28,6 @@ telepathy_la_SOURCES = \
        tp-backend-factory.vala \
        $(NULL)
 
-telepathy_deps = \
-       folks \
-       folks-internal \
-       folks-telepathy \
-       gee-0.8 \
-       gio-2.0 \
-       gobject-2.0 \
-       telepathy-glib \
-       $(NULL)
-
 telepathy_la_CPPFLAGS = \
        -I$(top_srcdir) \
        -I$(top_srcdir)/folks \
index 24e2897..020af79 100644 (file)
@@ -112,6 +112,7 @@ libfolks_telepathy_la_VALAFLAGS = \
        --pkg telepathy-glib \
        $(ZEITGEIST_PKG) \
        --includedir folks \
+       --library folks-telepathy \
        --vapi folks-telepathy.vapi \
        -H folks/folks-telepathy.h \
        $(NULL)
index 4fa10d3..fc8ff0b 100644 (file)
@@ -2,33 +2,30 @@ SUBDIRS = lib
 
 BACKEND_NAME = "tracker"
 
-AM_VALAFLAGS += \
+backenddir = $(BACKEND_DIR)/tracker
+backend_LTLIBRARIES = tracker.la
+
+tracker_la_VALAFLAGS = \
+       $(AM_VALAFLAGS) \
        $(ERROR_VALAFLAGS) \
        --vapidir=. \
        --vapidir=vapi \
        --vapidir=$(top_builddir)/backends/tracker/lib \
        --vapidir=$(top_srcdir)/folks \
-       $(addprefix --pkg ,$(tracker_deps)) \
+       --pkg folks \
+       --pkg folks-internal \
+       --pkg folks-tracker \
+       --pkg gee-0.8 \
+       --pkg gio-2.0 \
+       --pkg gobject-2.0 \
+       --pkg tracker-sparql-$(TRACKER_SPARQL_MAJOR) \
        $(NULL)
 
-backenddir = $(BACKEND_DIR)/tracker
-backend_LTLIBRARIES = tracker.la
-
 tracker_la_SOURCES = \
        tr-backend.vala \
        tr-backend-factory.vala \
        $(NULL)
 
-tracker_deps = \
-       folks \
-       folks-internal \
-       folks-tracker \
-       gee-0.8 \
-       gio-2.0 \
-       gobject-2.0 \
-       tracker-sparql-$(TRACKER_SPARQL_MAJOR) \
-       $(NULL)
-
 tracker_la_CPPFLAGS = \
        -I$(top_srcdir) \
        -I$(top_srcdir)/folks \
index 13b3df8..470d673 100644 (file)
@@ -7,8 +7,6 @@ pkgconfig_in = folks-tracker.pc.in
 pkgconfigdir = $(libdir)/pkgconfig
 pkgconfig_DATA = $(pkgconfig_in:.in=)
 
-libfolks_tracker_la_vala.stamp:
-
 folks_tracker_valasources = \
        trf-namespace.vala \
        trf-persona.vala \
@@ -33,18 +31,11 @@ libfolks_tracker_la_VALAFLAGS = \
        --pkg gee-0.8 \
        --pkg tracker-sparql-$(TRACKER_SPARQL_MAJOR) \
        --includedir folks \
+       --library folks-tracker \
        --vapi folks-tracker.vapi \
        -H folks/folks-tracker.h \
        $(NULL)
 
-folks_backend_tracker_deps = \
-       folks \
-       gee-0.8 \
-       gio-2.0 \
-       gobject-2.0 \
-       tracker-sparql-$(TRACKER_SPARQL_MAJOR) \
-       $(NULL)
-
 libfolks_tracker_la_CPPFLAGS = \
        -I$(top_srcdir) \
        -I$(top_srcdir)/folks \
index f91f3d7..29833bc 100644 (file)
@@ -173,13 +173,6 @@ EXTRA_DIST = \
        redeclare-internal-api.h \
        $(NULL)
 
-BUILT_SOURCES = \
-       folks-internal.h \
-       folks-internal.vapi \
-       folks.h \
-       folks.vapi \
-       $(NULL)
-
 CLEANFILES =
 MAINTAINERCLEANFILES =
 
@@ -208,10 +201,6 @@ nodist_typelib_DATA = $(GIRS:.gir=.typelib)
 CLEANFILES += $(nodist_typelib_DATA)
 endif
 
-MAINTAINERCLEANFILES += \
-       $(BUILT_SOURCES) \
-       $(NULL)
-
 ##################################################
 # GSettings
 ##################################################
index efd22de..0ce1099 100644 (file)
@@ -84,13 +84,18 @@ libfolks_test_la_VALAFLAGS = \
        --pkg folks \
        --pkg build-conf \
        --library folks-test \
+       --vapi folks-test.vapi \
        -H folks-test.h \
        -h folks-test-internal.h \
        -g \
        $(NULL)
 
+# According to the following document, this is the best way to ensure that this header
+# gets built when compiling the Vala sources to C but before we try to compile
+# all the C files (in case of parallel builds):
+#     http://www.lug.or.kr/docs/automake/Dependency-Tracking-Evolution.html
 BUILT_SOURCES = \
-       libfolks_test_la_vala.stamp \
+       folks-test-internal.h \
        $(NULL)
 
 MAINTAINERCLEANFILES = \
index 7157b09..6cc994c 100644 (file)
@@ -1,7 +1,11 @@
-AM_VALAFLAGS += \
+noinst_LTLIBRARIES = libeds-test.la
+
+libeds_test_la_VALAFLAGS = \
        $(ERROR_VALAFLAGS) \
-       --library=eds-test \
-       --header=eds-test.h \
+       $(AM_VALAFLAGS) \
+       --library eds-test \
+       --vapi eds-test.vapi \
+       --header eds-test.h \
        --vapidir=$(top_srcdir)/folks \
        --vapidir=$(top_srcdir)/backends/eds/lib \
        --vapidir=$(top_srcdir)/backends/eds/vapi \
@@ -20,8 +24,6 @@ AM_VALAFLAGS += \
        -g \
        $(NULL)
 
-noinst_LTLIBRARIES = libeds-test.la
-
 libeds_test_la_SOURCES = \
        backend.vala \
        test-case.vala \
index e7de2a5..52a3047 100644 (file)
@@ -1,7 +1,11 @@
-AM_VALAFLAGS += \
+noinst_LTLIBRARIES = libkf-test.la
+
+libkf_test_la_VALAFLAGS = \
        $(ERROR_VALAFLAGS) \
-       --library=kf-test \
-       --header=kf-test.h \
+       $(AM_VALAFLAGS) \
+       --library kf-test \
+       --vapi kf-test.vapi \
+       --header kf-test.h \
        --vapidir=$(abs_srcdir) \
        --vapidir=$(abs_builddir) \
        --vapidir=$(abs_top_srcdir)/folks \
@@ -12,8 +16,6 @@ AM_VALAFLAGS += \
        -g \
        $(NULL)
 
-noinst_LTLIBRARIES = libkf-test.la
-
 libkf_test_la_SOURCES = \
        backend.vala \
        test-case.vala \
index daf5346..4f2e31c 100644 (file)
@@ -1,7 +1,11 @@
-AM_VALAFLAGS += \
+noinst_LTLIBRARIES = libsocialweb-test.la
+
+libsocialweb_test_la_VALAFLAGS = \
        $(ERROR_VALAFLAGS) \
-       --library=libsocialweb-test \
-       --header=libsocialweb-test.h \
+       $(AM_VALAFLAGS) \
+       --library libsocialweb-test \
+       --vapi libsocialweb-test.vapi \
+       --header libsocialweb-test.h \
        --vapidir=$(top_srcdir)/folks \
        --vapidir=$(top_srcdir)/backends/libsocialweb/lib \
        --vapidir=$(abs_top_srcdir)/tests/lib \
@@ -17,8 +21,6 @@ AM_VALAFLAGS += \
        -g \
        $(NULL)
 
-noinst_LTLIBRARIES = libsocialweb-test.la
-
 libsocialweb_test_la_SOURCES = \
        backend.vala \
        test-case.vala \
index cd5368f..1174bcc 100644 (file)
@@ -1,11 +1,15 @@
 SUBDIRS = \
-        contactlist \
-        $(NULL)
+       contactlist \
+       $(NULL)
+
+noinst_LTLIBRARIES = libtpf-test.la
 
-AM_VALAFLAGS += \
+libtpf_test_la_VALAFLAGS = \
        $(ERROR_VALAFLAGS) \
-       --library=tpf-test \
-       --header=tpf-test.h \
+       $(AM_VALAFLAGS) \
+       --library tpf-test \
+       --vapi tpf-test.vapi \
+       --header tpf-test.h \
        --vapidir=$(abs_srcdir) \
        --vapidir=$(abs_builddir) \
        --vapidir=$(abs_srcdir)/contactlist \
@@ -22,8 +26,6 @@ AM_VALAFLAGS += \
        -g \
        $(NULL)
 
-noinst_LTLIBRARIES = libtpf-test.la
-
 libtpf_test_la_SOURCES = \
        test-case.vala \
        $(NULL)
index 14f2358..ddd9549 100644 (file)
@@ -1,7 +1,11 @@
-AM_VALAFLAGS += \
+noinst_LTLIBRARIES = libtracker-test.la
+
+libtracker_test_la_VALAFLAGS = \
        $(ERROR_VALAFLAGS) \
-       --library=tracker-test \
-       --header=tracker-test.h \
+       $(AM_VALAFLAGS) \
+       --library tracker-test \
+       --vapi tracker-test.vapi \
+       --header tracker-test.h \
        --vapidir=$(top_srcdir)/folks \
        --vapidir=$(top_srcdir)/backends/tracker/lib \
        --vapidir=$(abs_top_srcdir)/tests/lib \
@@ -17,8 +21,6 @@ AM_VALAFLAGS += \
        -g \
        $(NULL)
 
-noinst_LTLIBRARIES = libtracker-test.la
-
 libtracker_test_la_SOURCES = \
        backend.vala \
        test-case.vala \
@@ -46,10 +48,6 @@ libtracker_test_la_LIBADD = \
        $(top_builddir)/tests/lib/libfolks-test.la \
        $(NULL)
 
-# XXX: automake's Vala support should make these unnecessary
-tracker-test.vapi: libtracker_test_la_vala.stamp
-tracker-test.h: libtracker_test_la_vala.stamp
-
 dist_noinst_DATA = \
        tracker-test.vapi \
        $(NULL)
index f3339e4..7049780 100644 (file)
@@ -104,15 +104,6 @@ persona_store_capabilities_SOURCES = \
        persona-store-capabilities.vala \
        $(NULL)
 
-BUILT_SOURCES = \
-       fake_tp_backend_vala.stamp \
-       individual_properties_vala.stamp \
-       individual_retrieval_vala.stamp \
-       individual_zeitgeist_vala.stamp \
-       init_vala.stamp \
-       persona_store_capabilities_vala.stamp \
-       $(NULL)
-
 CLEANFILES = \
        *.pid \
        *.address \