[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