1 # SPDX-License-Identifier: GPL-2.0
3 test: virtio_test vringh_test vhost_net_test
4 virtio_test
: virtio_ring.o virtio_test.o
5 vringh_test
: vringh_test.o vringh.o virtio_ring.o
6 vhost_net_test
: virtio_ring.o vhost_net_test.o
8 try-run
= $(shell set
-e
; \
9 if
($(1)) >/dev
/null
2>&1; \
14 __cc-option
= $(call try-run
,\
15 $(1) -Werror
$(2) -c
-x c
/dev
/null
-o
/dev
/null
,$(2),)
16 cc-option
= $(call __cc-option
, $(CC
),$(1))
18 CFLAGS
+= -g
-O2
-Werror
-Wno-maybe-uninitialized
-Wall
-I.
-I..
/include/ -I ..
/..
/usr
/include/ -Wno-pointer-sign
-fno-strict-overflow
-fno-strict-aliasing
-fno-common
-MMD
-U_FORTIFY_SOURCE
-include ..
/..
/include/linux
/kconfig.h
$(call cc-option
,-mfunction-return
=thunk
) $(call cc-option
,-fcf-protection
=none
) $(call cc-option
,-mindirect-branch-register
)
22 vpath
%.c ..
/..
/drivers
/virtio ..
/..
/drivers
/vhost
24 ${MAKE} -C
`pwd`/..
/.. M
=`pwd`/vhost_test V
=${V}
26 #oot: build vhost as an out of tree module for a distro kernel
27 #no effort is taken to make it actually build or work, but tends to mostly work
28 #if the distro kernel is very close to upstream
29 #unsupported! this is a development tool only, don't use the
30 #resulting modules in production!
31 OOT_KSRC
=/lib
/modules
/$$(uname
-r
)/build
32 OOT_VHOST
=`pwd`/..
/..
/drivers
/vhost
33 #Everyone depends on vhost
34 #Tweak the below to enable more modules
39 CONFIG_VHOST_VSOCK
=n \
41 OOT_BUILD
=KCFLAGS
="-I "${OOT_VHOST} ${MAKE} -C
${OOT_KSRC} V
=${V}
43 echo
"UNSUPPORTED! Don't use the resulting modules in production!"
44 ${OOT_BUILD} M
=`pwd`/vhost_test
45 ${OOT_BUILD} M
=${OOT_VHOST} ${OOT_CONFIGS}
49 oot-clean
: OOT_BUILD
+=clean
51 .PHONY
: all test mod
clean vhost oot oot-clean oot-build
53 ${RM} *.o vringh_test virtio_test vhost_net_test vhost_test
/*.o \
54 vhost_test
/.
*.cmd vhost_test
/Module.symvers \
55 vhost_test
/modules.order
*.d