[master] 2a453c877 build: Less variables and more make rules for vmods

Dridi Boukelmoune dridi.boukelmoune at gmail.com
Thu Jan 7 14:16:07 UTC 2021


commit 2a453c87728bda258d78837b8bf07eda333db4a3
Author: Dridi Boukelmoune <dridi.boukelmoune at gmail.com>
Date:   Wed Jan 6 16:08:50 2021 +0100

    build: Less variables and more make rules for vmods

diff --git a/lib/libvcc/vmodtool.py b/lib/libvcc/vmodtool.py
index 4735d4322..8f2ec9ffb 100755
--- a/lib/libvcc/vmodtool.py
+++ b/lib/libvcc/vmodtool.py
@@ -67,6 +67,10 @@ libvmod_XXX_la_LDFLAGS = \\
 
 nodist_libvmod_XXX_la_SOURCES = PFX.c PFX.h
 
+EXTRA_libvmod_XXX_la_DEPENDENCIES = $(nodist_libvmod_XXX_la_SOURCES)
+
+EXTRA_DIST += $(srcdir)/VCC automake_boilerplate_XXX.am
+
 $(libvmod_XXX_la_OBJECTS): PFX.h
 
 PFX.h vmod_XXX.rst vmod_XXX.man.rst: PFX.c
@@ -74,11 +78,11 @@ PFX.h vmod_XXX.rst vmod_XXX.man.rst: PFX.c
 PFX.c: $(vmodtool) $(srcdir)/VCC
 \t at PYTHON@ $(vmodtool) $(vmodtoolargs_XXX) $(srcdir)/VCC
 
-EXTRA_DIST += $(srcdir)/VCC automake_boilerplate_XXX.am
+clean-local: clean-vmod-XXX
 
-CLEANFILES += $(builddir)/PFX.c $(builddir)/PFX.h \\
-\t$(builddir)/vmod_XXX.rst \\
-\t$(builddir)/vmod_XXX.man.rst
+clean-vmod-XXX:
+	rm -f $(nodist_libvmod_XXX_la_SOURCES)
+	rm -f vmod_XXX.rst vmod_XXX.man.rst
 '''
 
 PRIVS = {
diff --git a/vmod/Makefile.am b/vmod/Makefile.am
index 8bf96c96e..8a4ab5f41 100644
--- a/vmod/Makefile.am
+++ b/vmod/Makefile.am
@@ -4,6 +4,8 @@ TESTS = @VMOD_TESTS@
 
 include $(top_srcdir)/vtc.am
 
+EXTRA_DIST = $(TESTS)
+
 AM_LDFLAGS  = $(AM_LT_LDFLAGS)
 
 AM_CPPFLAGS = \
@@ -29,19 +31,6 @@ libvmod_blob_la_SOURCES = \
 libvmod_cookie_la_SOURCES = \
 	vmod_cookie.c
 
-.vsc.c:
-	$(PYTHON) $(top_srcdir)/lib/libvcc/vsctool.py -c $<
-
-.vsc.h:
-	$(PYTHON) $(top_srcdir)/lib/libvcc/vsctool.py -h $<
-
-libvmod_debug_extra_sources = \
-	VSC_debug.vsc
-
-libvmod_debug_built_sources = \
-	VSC_debug.c \
-	VSC_debug.h
-
 libvmod_debug_la_SOURCES = \
 	vmod_debug.c \
 	vmod_debug_obj.c \
@@ -81,17 +70,10 @@ libvmod_vtc_la_SOURCES = \
 	vmod_vtc.c
 
 #
-# Prepare build variables
+# Use vmodtool.py generated automake boilerplate
 #
 
 vmod_LTLIBRARIES =
-EXTRA_DIST = $(libvmod_debug_extra_sources) $(TESTS)
-CLEANFILES = $(libvmod_debug_built_sources)
-BUILT_SOURCES = $(libvmod_debug_built_sources)
-
-#
-# Use vmodtool.py generated automake boilerplate
-#
 
 include $(srcdir)/automake_boilerplate_blob.am
 include $(srcdir)/automake_boilerplate_cookie.am
@@ -107,7 +89,16 @@ include $(srcdir)/automake_boilerplate_vtc.am
 # Post-boilerplate tweaks
 #
 
-nodist_libvmod_debug_la_SOURCES += $(libvmod_debug_built_sources)
+.vsc.c:
+	$(PYTHON) $(top_srcdir)/lib/libvcc/vsctool.py -c $<
+
+.vsc.h:
+	$(PYTHON) $(top_srcdir)/lib/libvcc/vsctool.py -h $<
+
+EXTRA_DIST += VSC_debug.vsc
+nodist_libvmod_debug_la_SOURCES += \
+	VSC_debug.c \
+	VSC_debug.h
 
 # Allow Vmod_wrong*_Data to be exported
 vmod_debug_symbols_regex = 'Vmod_.*_Data'
diff --git a/vmod/automake_boilerplate_blob.am b/vmod/automake_boilerplate_blob.am
index e0e88e4ff..81ec37e56 100644
--- a/vmod/automake_boilerplate_blob.am
+++ b/vmod/automake_boilerplate_blob.am
@@ -16,6 +16,10 @@ libvmod_blob_la_LDFLAGS = \
 
 nodist_libvmod_blob_la_SOURCES = vcc_blob_if.c vcc_blob_if.h
 
+EXTRA_libvmod_blob_la_DEPENDENCIES = $(nodist_libvmod_blob_la_SOURCES)
+
+EXTRA_DIST += $(srcdir)/vmod_blob.vcc automake_boilerplate_blob.am
+
 $(libvmod_blob_la_OBJECTS): vcc_blob_if.h
 
 vcc_blob_if.h vmod_blob.rst vmod_blob.man.rst: vcc_blob_if.c
@@ -23,8 +27,8 @@ vcc_blob_if.h vmod_blob.rst vmod_blob.man.rst: vcc_blob_if.c
 vcc_blob_if.c: $(vmodtool) $(srcdir)/vmod_blob.vcc
 	@PYTHON@ $(vmodtool) $(vmodtoolargs_blob) $(srcdir)/vmod_blob.vcc
 
-EXTRA_DIST += $(srcdir)/vmod_blob.vcc automake_boilerplate_blob.am
+clean-local: clean-vmod-blob
 
-CLEANFILES += $(builddir)/vcc_blob_if.c $(builddir)/vcc_blob_if.h \
-	$(builddir)/vmod_blob.rst \
-	$(builddir)/vmod_blob.man.rst
+clean-vmod-blob:
+	rm -f $(nodist_libvmod_blob_la_SOURCES)
+	rm -f vmod_blob.rst vmod_blob.man.rst
diff --git a/vmod/automake_boilerplate_cookie.am b/vmod/automake_boilerplate_cookie.am
index 9c2f4822d..fb9b156b5 100644
--- a/vmod/automake_boilerplate_cookie.am
+++ b/vmod/automake_boilerplate_cookie.am
@@ -16,6 +16,10 @@ libvmod_cookie_la_LDFLAGS = \
 
 nodist_libvmod_cookie_la_SOURCES = vcc_cookie_if.c vcc_cookie_if.h
 
+EXTRA_libvmod_cookie_la_DEPENDENCIES = $(nodist_libvmod_cookie_la_SOURCES)
+
+EXTRA_DIST += $(srcdir)/vmod_cookie.vcc automake_boilerplate_cookie.am
+
 $(libvmod_cookie_la_OBJECTS): vcc_cookie_if.h
 
 vcc_cookie_if.h vmod_cookie.rst vmod_cookie.man.rst: vcc_cookie_if.c
@@ -23,8 +27,8 @@ vcc_cookie_if.h vmod_cookie.rst vmod_cookie.man.rst: vcc_cookie_if.c
 vcc_cookie_if.c: $(vmodtool) $(srcdir)/vmod_cookie.vcc
 	@PYTHON@ $(vmodtool) $(vmodtoolargs_cookie) $(srcdir)/vmod_cookie.vcc
 
-EXTRA_DIST += $(srcdir)/vmod_cookie.vcc automake_boilerplate_cookie.am
+clean-local: clean-vmod-cookie
 
-CLEANFILES += $(builddir)/vcc_cookie_if.c $(builddir)/vcc_cookie_if.h \
-	$(builddir)/vmod_cookie.rst \
-	$(builddir)/vmod_cookie.man.rst
+clean-vmod-cookie:
+	rm -f $(nodist_libvmod_cookie_la_SOURCES)
+	rm -f vmod_cookie.rst vmod_cookie.man.rst
diff --git a/vmod/automake_boilerplate_debug.am b/vmod/automake_boilerplate_debug.am
index c3f2a4a46..950cf4ede 100644
--- a/vmod/automake_boilerplate_debug.am
+++ b/vmod/automake_boilerplate_debug.am
@@ -16,6 +16,10 @@ libvmod_debug_la_LDFLAGS = \
 
 nodist_libvmod_debug_la_SOURCES = vcc_debug_if.c vcc_debug_if.h
 
+EXTRA_libvmod_debug_la_DEPENDENCIES = $(nodist_libvmod_debug_la_SOURCES)
+
+EXTRA_DIST += $(srcdir)/vmod_debug.vcc automake_boilerplate_debug.am
+
 $(libvmod_debug_la_OBJECTS): vcc_debug_if.h
 
 vcc_debug_if.h vmod_debug.rst vmod_debug.man.rst: vcc_debug_if.c
@@ -23,8 +27,8 @@ vcc_debug_if.h vmod_debug.rst vmod_debug.man.rst: vcc_debug_if.c
 vcc_debug_if.c: $(vmodtool) $(srcdir)/vmod_debug.vcc
 	@PYTHON@ $(vmodtool) $(vmodtoolargs_debug) $(srcdir)/vmod_debug.vcc
 
-EXTRA_DIST += $(srcdir)/vmod_debug.vcc automake_boilerplate_debug.am
+clean-local: clean-vmod-debug
 
-CLEANFILES += $(builddir)/vcc_debug_if.c $(builddir)/vcc_debug_if.h \
-	$(builddir)/vmod_debug.rst \
-	$(builddir)/vmod_debug.man.rst
+clean-vmod-debug:
+	rm -f $(nodist_libvmod_debug_la_SOURCES)
+	rm -f vmod_debug.rst vmod_debug.man.rst
diff --git a/vmod/automake_boilerplate_directors.am b/vmod/automake_boilerplate_directors.am
index 0f6869805..5ba173349 100644
--- a/vmod/automake_boilerplate_directors.am
+++ b/vmod/automake_boilerplate_directors.am
@@ -16,6 +16,10 @@ libvmod_directors_la_LDFLAGS = \
 
 nodist_libvmod_directors_la_SOURCES = vcc_directors_if.c vcc_directors_if.h
 
+EXTRA_libvmod_directors_la_DEPENDENCIES = $(nodist_libvmod_directors_la_SOURCES)
+
+EXTRA_DIST += $(srcdir)/vmod_directors.vcc automake_boilerplate_directors.am
+
 $(libvmod_directors_la_OBJECTS): vcc_directors_if.h
 
 vcc_directors_if.h vmod_directors.rst vmod_directors.man.rst: vcc_directors_if.c
@@ -23,8 +27,8 @@ vcc_directors_if.h vmod_directors.rst vmod_directors.man.rst: vcc_directors_if.c
 vcc_directors_if.c: $(vmodtool) $(srcdir)/vmod_directors.vcc
 	@PYTHON@ $(vmodtool) $(vmodtoolargs_directors) $(srcdir)/vmod_directors.vcc
 
-EXTRA_DIST += $(srcdir)/vmod_directors.vcc automake_boilerplate_directors.am
+clean-local: clean-vmod-directors
 
-CLEANFILES += $(builddir)/vcc_directors_if.c $(builddir)/vcc_directors_if.h \
-	$(builddir)/vmod_directors.rst \
-	$(builddir)/vmod_directors.man.rst
+clean-vmod-directors:
+	rm -f $(nodist_libvmod_directors_la_SOURCES)
+	rm -f vmod_directors.rst vmod_directors.man.rst
diff --git a/vmod/automake_boilerplate_proxy.am b/vmod/automake_boilerplate_proxy.am
index 9e1ae138a..83f2217c0 100644
--- a/vmod/automake_boilerplate_proxy.am
+++ b/vmod/automake_boilerplate_proxy.am
@@ -16,6 +16,10 @@ libvmod_proxy_la_LDFLAGS = \
 
 nodist_libvmod_proxy_la_SOURCES = vcc_proxy_if.c vcc_proxy_if.h
 
+EXTRA_libvmod_proxy_la_DEPENDENCIES = $(nodist_libvmod_proxy_la_SOURCES)
+
+EXTRA_DIST += $(srcdir)/vmod_proxy.vcc automake_boilerplate_proxy.am
+
 $(libvmod_proxy_la_OBJECTS): vcc_proxy_if.h
 
 vcc_proxy_if.h vmod_proxy.rst vmod_proxy.man.rst: vcc_proxy_if.c
@@ -23,8 +27,8 @@ vcc_proxy_if.h vmod_proxy.rst vmod_proxy.man.rst: vcc_proxy_if.c
 vcc_proxy_if.c: $(vmodtool) $(srcdir)/vmod_proxy.vcc
 	@PYTHON@ $(vmodtool) $(vmodtoolargs_proxy) $(srcdir)/vmod_proxy.vcc
 
-EXTRA_DIST += $(srcdir)/vmod_proxy.vcc automake_boilerplate_proxy.am
+clean-local: clean-vmod-proxy
 
-CLEANFILES += $(builddir)/vcc_proxy_if.c $(builddir)/vcc_proxy_if.h \
-	$(builddir)/vmod_proxy.rst \
-	$(builddir)/vmod_proxy.man.rst
+clean-vmod-proxy:
+	rm -f $(nodist_libvmod_proxy_la_SOURCES)
+	rm -f vmod_proxy.rst vmod_proxy.man.rst
diff --git a/vmod/automake_boilerplate_purge.am b/vmod/automake_boilerplate_purge.am
index 3256cd271..afe7bf60b 100644
--- a/vmod/automake_boilerplate_purge.am
+++ b/vmod/automake_boilerplate_purge.am
@@ -16,6 +16,10 @@ libvmod_purge_la_LDFLAGS = \
 
 nodist_libvmod_purge_la_SOURCES = vcc_purge_if.c vcc_purge_if.h
 
+EXTRA_libvmod_purge_la_DEPENDENCIES = $(nodist_libvmod_purge_la_SOURCES)
+
+EXTRA_DIST += $(srcdir)/vmod_purge.vcc automake_boilerplate_purge.am
+
 $(libvmod_purge_la_OBJECTS): vcc_purge_if.h
 
 vcc_purge_if.h vmod_purge.rst vmod_purge.man.rst: vcc_purge_if.c
@@ -23,8 +27,8 @@ vcc_purge_if.h vmod_purge.rst vmod_purge.man.rst: vcc_purge_if.c
 vcc_purge_if.c: $(vmodtool) $(srcdir)/vmod_purge.vcc
 	@PYTHON@ $(vmodtool) $(vmodtoolargs_purge) $(srcdir)/vmod_purge.vcc
 
-EXTRA_DIST += $(srcdir)/vmod_purge.vcc automake_boilerplate_purge.am
+clean-local: clean-vmod-purge
 
-CLEANFILES += $(builddir)/vcc_purge_if.c $(builddir)/vcc_purge_if.h \
-	$(builddir)/vmod_purge.rst \
-	$(builddir)/vmod_purge.man.rst
+clean-vmod-purge:
+	rm -f $(nodist_libvmod_purge_la_SOURCES)
+	rm -f vmod_purge.rst vmod_purge.man.rst
diff --git a/vmod/automake_boilerplate_std.am b/vmod/automake_boilerplate_std.am
index 777280cf2..a5760bf78 100644
--- a/vmod/automake_boilerplate_std.am
+++ b/vmod/automake_boilerplate_std.am
@@ -16,6 +16,10 @@ libvmod_std_la_LDFLAGS = \
 
 nodist_libvmod_std_la_SOURCES = vcc_std_if.c vcc_std_if.h
 
+EXTRA_libvmod_std_la_DEPENDENCIES = $(nodist_libvmod_std_la_SOURCES)
+
+EXTRA_DIST += $(srcdir)/vmod_std.vcc automake_boilerplate_std.am
+
 $(libvmod_std_la_OBJECTS): vcc_std_if.h
 
 vcc_std_if.h vmod_std.rst vmod_std.man.rst: vcc_std_if.c
@@ -23,8 +27,8 @@ vcc_std_if.h vmod_std.rst vmod_std.man.rst: vcc_std_if.c
 vcc_std_if.c: $(vmodtool) $(srcdir)/vmod_std.vcc
 	@PYTHON@ $(vmodtool) $(vmodtoolargs_std) $(srcdir)/vmod_std.vcc
 
-EXTRA_DIST += $(srcdir)/vmod_std.vcc automake_boilerplate_std.am
+clean-local: clean-vmod-std
 
-CLEANFILES += $(builddir)/vcc_std_if.c $(builddir)/vcc_std_if.h \
-	$(builddir)/vmod_std.rst \
-	$(builddir)/vmod_std.man.rst
+clean-vmod-std:
+	rm -f $(nodist_libvmod_std_la_SOURCES)
+	rm -f vmod_std.rst vmod_std.man.rst
diff --git a/vmod/automake_boilerplate_unix.am b/vmod/automake_boilerplate_unix.am
index 6281665b2..b2937a270 100644
--- a/vmod/automake_boilerplate_unix.am
+++ b/vmod/automake_boilerplate_unix.am
@@ -16,6 +16,10 @@ libvmod_unix_la_LDFLAGS = \
 
 nodist_libvmod_unix_la_SOURCES = vcc_unix_if.c vcc_unix_if.h
 
+EXTRA_libvmod_unix_la_DEPENDENCIES = $(nodist_libvmod_unix_la_SOURCES)
+
+EXTRA_DIST += $(srcdir)/vmod_unix.vcc automake_boilerplate_unix.am
+
 $(libvmod_unix_la_OBJECTS): vcc_unix_if.h
 
 vcc_unix_if.h vmod_unix.rst vmod_unix.man.rst: vcc_unix_if.c
@@ -23,8 +27,8 @@ vcc_unix_if.h vmod_unix.rst vmod_unix.man.rst: vcc_unix_if.c
 vcc_unix_if.c: $(vmodtool) $(srcdir)/vmod_unix.vcc
 	@PYTHON@ $(vmodtool) $(vmodtoolargs_unix) $(srcdir)/vmod_unix.vcc
 
-EXTRA_DIST += $(srcdir)/vmod_unix.vcc automake_boilerplate_unix.am
+clean-local: clean-vmod-unix
 
-CLEANFILES += $(builddir)/vcc_unix_if.c $(builddir)/vcc_unix_if.h \
-	$(builddir)/vmod_unix.rst \
-	$(builddir)/vmod_unix.man.rst
+clean-vmod-unix:
+	rm -f $(nodist_libvmod_unix_la_SOURCES)
+	rm -f vmod_unix.rst vmod_unix.man.rst
diff --git a/vmod/automake_boilerplate_vtc.am b/vmod/automake_boilerplate_vtc.am
index 9b71914b0..e8479ba10 100644
--- a/vmod/automake_boilerplate_vtc.am
+++ b/vmod/automake_boilerplate_vtc.am
@@ -16,6 +16,10 @@ libvmod_vtc_la_LDFLAGS = \
 
 nodist_libvmod_vtc_la_SOURCES = vcc_vtc_if.c vcc_vtc_if.h
 
+EXTRA_libvmod_vtc_la_DEPENDENCIES = $(nodist_libvmod_vtc_la_SOURCES)
+
+EXTRA_DIST += $(srcdir)/vmod_vtc.vcc automake_boilerplate_vtc.am
+
 $(libvmod_vtc_la_OBJECTS): vcc_vtc_if.h
 
 vcc_vtc_if.h vmod_vtc.rst vmod_vtc.man.rst: vcc_vtc_if.c
@@ -23,8 +27,8 @@ vcc_vtc_if.h vmod_vtc.rst vmod_vtc.man.rst: vcc_vtc_if.c
 vcc_vtc_if.c: $(vmodtool) $(srcdir)/vmod_vtc.vcc
 	@PYTHON@ $(vmodtool) $(vmodtoolargs_vtc) $(srcdir)/vmod_vtc.vcc
 
-EXTRA_DIST += $(srcdir)/vmod_vtc.vcc automake_boilerplate_vtc.am
+clean-local: clean-vmod-vtc
 
-CLEANFILES += $(builddir)/vcc_vtc_if.c $(builddir)/vcc_vtc_if.h \
-	$(builddir)/vmod_vtc.rst \
-	$(builddir)/vmod_vtc.man.rst
+clean-vmod-vtc:
+	rm -f $(nodist_libvmod_vtc_la_SOURCES)
+	rm -f vmod_vtc.rst vmod_vtc.man.rst


More information about the varnish-commit mailing list