Re: [PATCH] selftests: Makefile: create OUTPUT dir

From: Shuah Khan
Date: Thu Oct 03 2024 - 20:03:17 EST


On 10/2/24 00:15, Anders Roxell wrote:
On Wed, 25 Sept 2024 at 19:26, Shuah Khan <skhan@xxxxxxxxxxxxxxxxxxx> wrote:

On 9/20/24 04:38, Jakub Kicinski wrote:
On Thu, 19 Sep 2024 09:51:47 -0600 Shuah Khan wrote:
@@ -261,6 +261,7 @@ ifdef INSTALL_PATH
@ret=1; \
for TARGET in $(TARGETS) $(INSTALL_DEP_TARGETS); do \
BUILD_TARGET=$$BUILD/$$TARGET; \
+ mkdir -p $$BUILD_TARGET; \
$(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET install \
INSTALL_PATH=$(INSTALL_PATH)/$$TARGET \
SRC_PATH=$(shell readlink -e $$(pwd)) \

Doesn't the "all" target mkdir work for this case? Why do we need another mkdir here?

I was wondering about that, too. Looks like the code from the all
target is copy/pasted in the install target except the mkdir line.
Best fix would be to make the dependency work, I don't understand
why it doesn't already, tho.

I think this could be the issue:

net main Makefile doesn't have handling for subdirs. It looks
like the way this is handled is by adding an entry to the main
Makefile:

TARGETS += net/af_unix
TARGETS += net/forwarding
TARGETS += net/hsr
TARGETS += net/mptcp
TARGETS += net/openvswitch
TARGETS += net/tcp_ao
TARGETS += net/netfilter

So the solution would be similar adding net/lib to the main
Makefile.

Anders, can you try the above and see if it works.

Sadly that didn't help.


Okay. I tried the following:

make kselftest-all TARGETS=net/lib O=/tmp

I see /tmp/kselftest/net/lib/csum

Can you give me the exact command you are running?

The following from selftests/Makefile should take care of this.

# Networking tests want the net/lib target, include it automatically
ifneq ($(filter net drivers/net drivers/net/hw,$(TARGETS)),)
ifeq ($(filter net/lib,$(TARGETS)),)
INSTALL_DEP_TARGETS := net/lib
endif
endif

thanks,
-- Shuah