From 25f515831cef1faf6f2e73c8a6b58a0db803786f Mon Sep 17 00:00:00 2001 From: David Gibson Date: Tue, 14 Jun 2022 15:12:22 +1000 Subject: [PATCH] Makefile: Use $(BIN) and $(MANPAGES) variable to simplify several targets There are several places which explicitly list the various generated binaries, even though a $(BIN) variable already lists them. There are several more places that list all the manpage files, introduce a $(MANPAGES) variable to remove that repetition as well. Tweak the generation of pasta.1 as a link to passt.1 so it's not just made as a side effect of the pasta target. Signed-off-by: David Gibson [sbrivio: add passt.1 and qrap.1 to guest files for distro tests] Signed-off-by: Stefano Brivio --- Makefile | 26 ++++++++++++-------------- test/distro/debian | 2 +- test/distro/fedora | 2 +- test/distro/opensuse | 2 +- test/distro/ubuntu | 2 +- 5 files changed, 16 insertions(+), 18 deletions(-) diff --git a/Makefile b/Makefile index e8ed7a9..dad6b53 100644 --- a/Makefile +++ b/Makefile @@ -37,6 +37,8 @@ PASST_SRCS = arch.c arp.c checksum.c conf.c dhcp.c dhcpv6.c icmp.c igmp.c \ QRAP_SRCS = qrap.c SRCS = $(PASST_SRCS) $(QRAP_SRCS) +MANPAGES = passt.1 pasta.1 qrap.1 + PASST_HEADERS = arch.h arp.h checksum.h conf.h dhcp.h dhcpv6.h icmp.h \ ndp.h netlink.h packet.h passt.h pasta.h pcap.h siphash.h \ tap.h tcp.h tcp_splice.h udp.h util.h @@ -83,13 +85,13 @@ endif prefix ?= /usr/local ifeq ($(TARGET_ARCH),X86_64) -all: passt passt.avx2 pasta pasta.avx2 qrap BIN := passt passt.avx2 pasta pasta.avx2 qrap else -all: passt pasta qrap BIN := passt pasta qrap endif +all: $(BIN) $(MANPAGES) + static: CFLAGS += -static -DGLIBC_NO_STATIC_NSS static: clean all @@ -110,6 +112,8 @@ pasta.avx2: passt.avx2 pasta: passt ln -s passt pasta + +pasta.1: passt.1 ln -s passt.1 pasta.1 qrap: $(QRAP_SRCS) passt.h @@ -123,28 +127,22 @@ valgrind: all .PHONY: clean clean: - -${RM} passt passt.avx2 *.o seccomp.h qrap pasta pasta.avx2 pasta.1 \ + -${RM} $(BIN) *.o seccomp.h pasta.1 \ passt.tar passt.tar.gz *.deb *.rpm -install: $(BIN) +install: $(BIN) $(MANPAGES) mkdir -p $(DESTDIR)$(prefix)/bin $(DESTDIR)$(prefix)/share/man/man1 cp -d $(BIN) $(DESTDIR)$(prefix)/bin - cp -d passt.1 pasta.1 qrap.1 $(DESTDIR)$(prefix)/share/man/man1 + cp -d $(MANPAGES) $(DESTDIR)$(prefix)/share/man/man1 uninstall: - -${RM} $(DESTDIR)$(prefix)/bin/passt - -${RM} $(DESTDIR)$(prefix)/bin/passt.avx2 - -${RM} $(DESTDIR)$(prefix)/bin/pasta - -${RM} $(DESTDIR)$(prefix)/bin/pasta.avx2 - -${RM} $(DESTDIR)$(prefix)/bin/qrap - -${RM} $(DESTDIR)$(prefix)/share/man/man1/passt.1 - -${RM} $(DESTDIR)$(prefix)/share/man/man1/pasta.1 - -${RM} $(DESTDIR)$(prefix)/share/man/man1/qrap.1 + -${RM} $(BIN:%=$(DESTDIR)$(prefix)/bin/%) + -${RM} $(MANPAGES:%=$(DESTDIR)$(prefix)/share/man/man1/%) pkgs: static tar cf passt.tar -P --xform 's//\/usr\/bin\//' $(BIN) tar rf passt.tar -P --xform 's//\/usr\/share\/man\/man1\//' \ - passt.1 pasta.1 qrap.1 + $(MANPAGES) gzip passt.tar EMAIL="sbrivio@redhat.com" fakeroot alien --to-deb \ --description="User-mode networking for VMs and namespaces" \ diff --git a/test/distro/debian b/test/distro/debian index f748dea..efbd057 100644 --- a/test/distro/debian +++ b/test/distro/debian @@ -39,7 +39,7 @@ endef hostb ./passt -P __PIDFILE__ & sleep 1 host echo -hout GUEST_FILES ls -1 *.c *.h *.sh Makefile | tr '\n' ' '; echo +hout GUEST_FILES ls -1 *.c *.h *.sh passt.1 qrap.1 Makefile | tr '\n' ' '; echo test Debian GNU/Linux 8 (jessie), amd64 diff --git a/test/distro/fedora b/test/distro/fedora index 7a5eaef..c82d973 100644 --- a/test/distro/fedora +++ b/test/distro/fedora @@ -60,7 +60,7 @@ hostb ./passt -P __PIDFILE__ & sleep 1 host echo hout DNS6 sed -n 's/^nameserver \([^:]*:\)\([^%]*\).*/\1\2/p' /etc/resolv.conf | head -1 -hout GUEST_FILES ls -1 *.c *.h *.sh Makefile | tr '\n' ' '; echo +hout GUEST_FILES ls -1 *.c *.h *.sh passt.1 qrap.1 Makefile | tr '\n' ' '; echo test Fedora 26, x86_64 diff --git a/test/distro/opensuse b/test/distro/opensuse index 39f059a..2b49a5b 100644 --- a/test/distro/opensuse +++ b/test/distro/opensuse @@ -39,7 +39,7 @@ hostb ./passt -P __PIDFILE__ & sleep 1 host echo hout DNS6 sed -n 's/^nameserver \([^:]*:\)\([^%]*\).*/\1\2/p' /etc/resolv.conf | head -1 -hout GUEST_FILES ls -1 *.c *.h *.sh Makefile | tr '\n' ' '; echo +hout GUEST_FILES ls -1 *.c *.h *.sh passt.1 qrap.1 Makefile | tr '\n' ' '; echo test OpenSUSE Leap 15.1 diff --git a/test/distro/ubuntu b/test/distro/ubuntu index c9a2b4d..448409a 100644 --- a/test/distro/ubuntu +++ b/test/distro/ubuntu @@ -38,7 +38,7 @@ endef hostb ./passt -P __PIDFILE__ & sleep 1 host echo -hout GUEST_FILES ls -1 *.c *.h *.sh Makefile | tr '\n' ' '; echo +hout GUEST_FILES ls -1 *.c *.h *.sh passt.1 qrap.1 Makefile | tr '\n' ' '; echo test Ubuntu 14.04.5 LTS (Trusty Tahr), amd64