RE: [PATCH] test/vsock: add install target

From: Peng Fan
Date: Wed Jul 10 2024 - 04:11:50 EST


> Subject: Re: [PATCH] test/vsock: add install target
>
> On Tue, Jul 09, 2024 at 09:50:51PM GMT, Peng Fan (OSS) wrote:
> >From: Peng Fan <peng.fan@xxxxxxx>
> >
> >Add install target for vsock to make Yocto easy to install the images.
> >
> >Signed-off-by: Peng Fan <peng.fan@xxxxxxx>
> >---
> > tools/testing/vsock/Makefile | 12 ++++++++++++
> > 1 file changed, 12 insertions(+)
> >
> >diff --git a/tools/testing/vsock/Makefile
> >b/tools/testing/vsock/Makefile index a7f56a09ca9f..5c8442fa9460
> 100644
> >--- a/tools/testing/vsock/Makefile
> >+++ b/tools/testing/vsock/Makefile
> >@@ -8,8 +8,20 @@ vsock_perf: vsock_perf.o
> msg_zerocopy_common.o
> > vsock_uring_test: LDLIBS = -luring
> > vsock_uring_test: control.o util.o vsock_uring_test.o timeout.o
> >msg_zerocopy_common.o
> >
> >+VSOCK_INSTALL_PATH ?= $(abspath .)
> >+# Avoid changing the rest of the logic here and lib.mk.
> >+INSTALL_PATH := $(VSOCK_INSTALL_PATH)
> >+
> > CFLAGS += -g -O2 -Werror -Wall -I. -I../../include
> > -I../../../usr/include -Wno-pointer-sign -fno-strict-overflow
> > -fno-strict-aliasing -fno-common -MMD -U_FORTIFY_SOURCE -
> D_GNU_SOURCE
> > .PHONY: all test clean
> > clean:
> > ${RM} *.o *.d vsock_test vsock_diag_test vsock_perf
> vsock_uring_test
> > -include *.d
> >+
> >+install: all
> >+ @# Ask all targets to install their files
> >+ mkdir -p $(INSTALL_PATH)/vsock
>
> why using the "vsock" subdir?
>
> IIUC you were inspired by selftests/Makefile, but it installs under
> $(INSTALL_PATH)/kselftest/ the scripts used by the main one
> `run_kselftest.sh`, which is installed in $(INSTALL_PATH instead.
> So in this case I would install everything in $(INSTALL_PATH).
>
> WDYT?

I agree.

>
> >+ install -m 744 vsock_test $(INSTALL_PATH)/vsock/
> >+ install -m 744 vsock_perf $(INSTALL_PATH)/vsock/
> >+ install -m 744 vsock_diag_test $(INSTALL_PATH)/vsock/
> >+ install -m 744 vsock_uring_test $(INSTALL_PATH)/vsock/
>
> Also from selftests/Makefile, what about using the ifdef instead of
> using $(abspath .) as default place?
>
> I mean this:
>
> install: all
> ifdef INSTALL_PATH
> ...
> else
> $(error Error: set INSTALL_PATH to use install) endif

Is the following looks good to you?

# Avoid conflict with INSTALL_PATH set by the main Makefile
VSOCK_INSTALL_PATH ?=
INSTALL_PATH := $(VSOCK_INSTALL_PATH)

install: all
ifdef INSTALL_PATH
mkdir -p $(INSTALL_PATH)
install -m 744 vsock_test $(INSTALL_PATH)
install -m 744 vsock_perf $(INSTALL_PATH)
install -m 744 vsock_diag_test $(INSTALL_PATH)
install -m 744 vsock_uring_test $(INSTALL_PATH)
else
$(error Error: set INSTALL_PATH to use install)
Endif

Thanks,
Peng.
>
> Thanks,
> Stefano