[Spice-devel] [PATCH] Fix build when builddir != srcdir

Jonathon Jongsma jjongsma at redhat.com
Tue Nov 15 18:13:21 UTC 2016


The following build error occurs when building outside of the source
directory:

glib-mkenums --template spice-server-enums.tmpl.c ../../server/spice-server.h > spice-server-enums.c
Can't open spice-server-enums.tmpl.c: No such file or directory
Makefile:1111: recipe for target 'spice-server-enums.c' failed

GNU Make does some magic to know that the spice-server-enums.tmpl.c file
listed in the prerequisites for the rule is located in the srcdir. But
when we use the bare filename in the rule definition, it assumes that it is
in the builddir. If there was an automatic variable that we could use
(like $< that we already use for the first prerequisite), the srdir
would be automatically prepended to the filename, but there's nothing we
can use for the second prerequisite. So we need to explicitly specify
the location of the input template file.
---
 server/Makefile.am | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/server/Makefile.am b/server/Makefile.am
index 972f3e2..949e56a 100644
--- a/server/Makefile.am
+++ b/server/Makefile.am
@@ -202,10 +202,10 @@ libspice_server_la_LIBADD = libserver.la
 libspice_server_la_SOURCES =
 
 spice-server-enums.c: spice-server.h spice-server-enums.tmpl.c
-	$(AM_V_GEN)glib-mkenums --template spice-server-enums.tmpl.c $< > $@
+	$(AM_V_GEN)glib-mkenums --template $(srcdir)/spice-server-enums.tmpl.c $< > $@
 
 spice-server-enums.h: spice-server.h spice-server-enums.tmpl.h
-	$(AM_V_GEN)glib-mkenums --template spice-server-enums.tmpl.h $< > $@
+	$(AM_V_GEN)glib-mkenums --template $(srcdir)/spice-server-enums.tmpl.h $< > $@
 
 EXTRA_DIST =					\
 	spice-bitmap-utils.tmpl.c			\
-- 
2.7.4



More information about the Spice-devel mailing list