[libblockdev 06/10] Use pattern rules to generate plugin boilerplate.

mulhern amulhern at redhat.com
Wed Jun 25 21:35:35 UTC 2014


Signed-off-by: mulhern <amulhern at redhat.com>
---
 Makefile | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/Makefile b/Makefile
index f1b5a4a..056d6dc 100644
--- a/Makefile
+++ b/Makefile
@@ -1,9 +1,11 @@
+PLUGINS = crypto loop lvm swap
 SIZES_FILES = src/utils/sizes.c src/utils/sizes.h
 LVM_PLUGIN_FILES = src/plugins/lvm.h src/plugins/lvm.c
 SWAP_PLUGIN_FILES = src/plugins/swap.h src/plugins/swap.c
 LOOP_PLUGIN_FILES = src/plugins/loop.h src/plugins/loop.c
 CRYPTO_PLUGIN_FILES = src/plugins/crypto.h src/plugins/crypto.c
 LIBRARY_FILES = src/lib/blockdev.c src/lib/blockdev.h src/lib/plugins.h src/lib/plugin_apis/lvm.h
+PLUGIN_SOURCE_FILES = $(addprefix src/lib/plugin_apis/, $(addsuffix .c, ${PLUGINS}))
 
 build-plugins: ${LVM_PLUGIN_FILES} ${SWAP_PLUGIN_FILES} ${LOOP_PLUGIN_FILES} ${SIZES_FILES}
 	gcc -c -Wall -Wextra -fPIC -I src/utils/ -I src/plugins/ -lm `pkg-config --libs --cflags glib-2.0 gobject-2.0`\
@@ -22,13 +24,10 @@ build-plugins: ${LVM_PLUGIN_FILES} ${SWAP_PLUGIN_FILES} ${LOOP_PLUGIN_FILES} ${S
 		src/plugins/crypto.c
 	gcc -shared -o src/plugins/libbd_crypto.so crypto.o
 
-generate-boilerplate-code: src/lib/plugin_apis/lvm.h src/lib/plugin_apis/swap.h
-	./boilerplate_generator.py src/lib/plugin_apis/lvm.h > src/lib/plugin_apis/lvm.c
-	./boilerplate_generator.py src/lib/plugin_apis/swap.h > src/lib/plugin_apis/swap.c
-	./boilerplate_generator.py src/lib/plugin_apis/loop.h > src/lib/plugin_apis/loop.c
-	./boilerplate_generator.py src/lib/plugin_apis/crypto.h > src/lib/plugin_apis/crypto.c
+src/lib/plugin_apis/%.c: src/lib/plugin_apis/%.h
+	./boilerplate_generator.py $< > $@
 
-build-library: generate-boilerplate-code ${LIBRARY_FILES}
+build-library: ${PLUGIN_SOURCE_FILES} ${LIBRARY_FILES}
 	gcc -fPIC -c `pkg-config --libs --cflags glib-2.0` -ldl src/lib/blockdev.c
 	gcc -shared -o src/lib/libblockdev.so blockdev.o
 
@@ -62,7 +61,7 @@ test-loop-plugin: ${LOOP_PLUGIN_FILES}
 	./test_loop_plugin
 	@rm test_loop_plugin
 
-test-library: generate-boilerplate-code build-plugins
+test-library: ${PLUGIN_SOURCE_FILES} build-plugins
 	gcc -DTESTING_LIB -o test_library `pkg-config --libs --cflags glib-2.0 gobject-2.0` -ldl src/lib/blockdev.c
 	@echo "***Running tests***"
 	LD_LIBRARY_PATH=src/plugins/ ./test_library
-- 
1.9.3



More information about the anaconda-patches mailing list