[arch-releng] [archiso] [PATCH] Makefile: Refactor hook handling

Lukas Fleischer archlinux at cryptocrack.de
Sat Aug 18 05:48:30 EDT 2012


Move all hooks into a list and create shell commands dynamically instead
of specifying all of them in every recipe.

Signed-off-by: Lukas Fleischer <archlinux at cryptocrack.de>
---
 Makefile | 57 +++++++++++++++++++++++----------------------------------
 1 file changed, 23 insertions(+), 34 deletions(-)

diff --git a/Makefile b/Makefile
index 309f890..552d8cc 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,24 @@
 V=1
 
+HOOKS = \
+	hooks/archiso \
+	install/archiso \
+	archiso_shutdown \
+	hooks/archiso_shutdown \
+	install/archiso_shutdown \
+	archiso_pxe_nbd \
+	hooks/archiso_pxe_common \
+	install/archiso_pxe_common \
+	hooks/archiso_pxe_nbd \
+	install/archiso_pxe_nbd \
+	hooks/archiso_pxe_http \
+	install/archiso_pxe_http \
+	hooks/archiso_pxe_nfs \
+	install/archiso_pxe_nfs \
+	hooks/archiso_loop_mnt \
+	install/archiso_loop_mnt \
+	install/archiso_kms
+
 all:
 
 install: install-program install-hooks install-examples install-doc
@@ -9,23 +28,9 @@ install-program:
 
 install-hooks:
 	# hooks/install are needed by mkinitcpio
-	install -D -m 644 archiso/hooks/archiso $(DESTDIR)/usr/lib/initcpio/hooks/archiso
-	install -D -m 644 archiso/install/archiso $(DESTDIR)/usr/lib/initcpio/install/archiso
-	install -D -m 755 archiso/archiso_shutdown $(DESTDIR)/usr/lib/initcpio/archiso_shutdown
-	install -D -m 644 archiso/hooks/archiso_shutdown $(DESTDIR)/usr/lib/initcpio/hooks/archiso_shutdown
-	install -D -m 644 archiso/install/archiso_shutdown $(DESTDIR)/usr/lib/initcpio/install/archiso_shutdown
-	install -D -m 644 archiso/archiso_pxe_nbd $(DESTDIR)/usr/lib/initcpio/archiso_pxe_nbd
-	install -D -m 644 archiso/hooks/archiso_pxe_common $(DESTDIR)/usr/lib/initcpio/hooks/archiso_pxe_common
-	install -D -m 644 archiso/install/archiso_pxe_common $(DESTDIR)/usr/lib/initcpio/install/archiso_pxe_common
-	install -D -m 644 archiso/hooks/archiso_pxe_nbd $(DESTDIR)/usr/lib/initcpio/hooks/archiso_pxe_nbd
-	install -D -m 644 archiso/install/archiso_pxe_nbd $(DESTDIR)/usr/lib/initcpio/install/archiso_pxe_nbd
-	install -D -m 644 archiso/hooks/archiso_pxe_http $(DESTDIR)/usr/lib/initcpio/hooks/archiso_pxe_http
-	install -D -m 644 archiso/install/archiso_pxe_http $(DESTDIR)/usr/lib/initcpio/install/archiso_pxe_http
-	install -D -m 644 archiso/hooks/archiso_pxe_nfs $(DESTDIR)/usr/lib/initcpio/hooks/archiso_pxe_nfs
-	install -D -m 644 archiso/install/archiso_pxe_nfs $(DESTDIR)/usr/lib/initcpio/install/archiso_pxe_nfs
-	install -D -m 644 archiso/hooks/archiso_loop_mnt $(DESTDIR)/usr/lib/initcpio/hooks/archiso_loop_mnt
-	install -D -m 644 archiso/install/archiso_loop_mnt $(DESTDIR)/usr/lib/initcpio/install/archiso_loop_mnt
-	install -D -m 644 archiso/install/archiso_kms $(DESTDIR)/usr/lib/initcpio/install/archiso_kms
+	$(foreach hook,$(HOOKS), \
+		install -D -m 644 archiso/$(hook) $(DESTDIR)/usr/lib/initcpio/$(hook) ; \
+	)
 
 install-examples:
 	install -d -m 755 $(DESTDIR)/usr/share/archiso/
@@ -37,23 +42,7 @@ install-doc:
 
 uninstall:
 	rm -f $(DESTDIR)/usr/sbin/mkarchiso
-	rm -f $(DESTDIR)/usr/lib/initcpio/hooks/archiso
-	rm -f $(DESTDIR)/usr/lib/initcpio/install/archiso
-	rm -f $(DESTDIR)/usr/lib/initcpio/archiso_shutdown
-	rm -f $(DESTDIR)/usr/lib/initcpio/hooks/archiso_shutdown
-	rm -f $(DESTDIR)/usr/lib/initcpio/install/archiso_shutdown
-	rm -f $(DESTDIR)/usr/lib/initcpio/archiso_pxe_nbd
-	rm -f $(DESTDIR)/usr/lib/initcpio/hooks/archiso_pxe_common
-	rm -f $(DESTDIR)/usr/lib/initcpio/install/archiso_pxe_common
-	rm -f $(DESTDIR)/usr/lib/initcpio/hooks/archiso_pxe_nbd
-	rm -f $(DESTDIR)/usr/lib/initcpio/install/archiso_pxe_nbd
-	rm -f $(DESTDIR)/usr/lib/initcpio/hooks/archiso_pxe_http
-	rm -f $(DESTDIR)/usr/lib/initcpio/install/archiso_pxe_http
-	rm -f $(DESTDIR)/usr/lib/initcpio/hooks/archiso_pxe_nfs
-	rm -f $(DESTDIR)/usr/lib/initcpio/install/archiso_pxe_nfs
-	rm -f $(DESTDIR)/usr/lib/initcpio/hooks/archiso_loop_mnt
-	rm -f $(DESTDIR)/usr/lib/initcpio/install/archiso_loop_mnt
-	rm -f $(DESTDIR)/usr/lib/initcpio/install/archiso_kms
+	$(foreach hook,$(HOOKS),rm -f $(DESTDIR)/usr/lib/initcpio/$(hook) ; )
 	rm -rf $(DESTDIR)/usr/share/archiso/
 	rm -f $(DESTDIR)/usr/share/doc/archiso/README
 
-- 
1.7.11.5



More information about the arch-releng mailing list