1 # SPDX-License-Identifier: GPL-2.0
2 # Makefile for Hyper-V tools
3 include ..
/scripts
/Makefile.
include
5 ARCH
:= $(shell uname
-m
2>/dev
/null
)
7 libexecdir ?
= /usr
/libexec
8 sharedstatedir ?
= /var
/lib
11 srctree
:= $(patsubst %/,%,$(dir $(CURDIR
)))
12 srctree
:= $(patsubst %/,%,$(dir $(srctree
)))
15 # Do not use make's built-in rules
16 # (this improves performance and avoids hard-to-debug behaviour);
19 override CFLAGS
+= -O2
-Wall
-g
-D_GNU_SOURCE
-I
$(OUTPUT
)include
20 override CFLAGS
+= -Wno-address-of-packed-member
22 ALL_TARGETS
:= hv_kvp_daemon hv_vss_daemon
23 ifneq ($(ARCH
), aarch64
)
24 ALL_TARGETS
+= hv_fcopy_uio_daemon
26 ALL_PROGRAMS
:= $(patsubst %,$(OUTPUT
)%,$(ALL_TARGETS
))
28 ALL_SCRIPTS
:= hv_get_dhcp_info.sh hv_get_dns_info.sh hv_set_ifconfig.sh
32 export srctree OUTPUT CC LD CFLAGS
33 include $(srctree
)/tools
/build
/Makefile.
include
35 HV_KVP_DAEMON_IN
:= $(OUTPUT
)hv_kvp_daemon-in.o
36 $(HV_KVP_DAEMON_IN
): FORCE
37 $(Q
)$(MAKE
) $(build
)=hv_kvp_daemon
38 $(OUTPUT
)hv_kvp_daemon
: $(HV_KVP_DAEMON_IN
)
39 $(QUIET_LINK
)$(CC
) $(CFLAGS
) $(LDFLAGS
) $< -o
$@
41 HV_VSS_DAEMON_IN
:= $(OUTPUT
)hv_vss_daemon-in.o
42 $(HV_VSS_DAEMON_IN
): FORCE
43 $(Q
)$(MAKE
) $(build
)=hv_vss_daemon
44 $(OUTPUT
)hv_vss_daemon
: $(HV_VSS_DAEMON_IN
)
45 $(QUIET_LINK
)$(CC
) $(CFLAGS
) $(LDFLAGS
) $< -o
$@
47 HV_FCOPY_UIO_DAEMON_IN
:= $(OUTPUT
)hv_fcopy_uio_daemon-in.o
48 $(HV_FCOPY_UIO_DAEMON_IN
): FORCE
49 $(Q
)$(MAKE
) $(build
)=hv_fcopy_uio_daemon
50 $(OUTPUT
)hv_fcopy_uio_daemon
: $(HV_FCOPY_UIO_DAEMON_IN
)
51 $(QUIET_LINK
)$(CC
) $(CFLAGS
) $(LDFLAGS
) $< -o
$@
55 find
$(or
$(OUTPUT
),.
) -name
'*.o' -delete
-o
-name
'\.*.d' -delete
-o
-name
'\.*.cmd' -delete
57 install: $(ALL_PROGRAMS
)
58 install -d
-m
755 $(DESTDIR
)$(sbindir
); \
59 install -d
-m
755 $(DESTDIR
)$(libexecdir
)/hypervkvpd
; \
60 install -d
-m
755 $(DESTDIR
)$(sharedstatedir
); \
61 for program in
$(ALL_PROGRAMS
); do \
62 install $$program -m
755 $(DESTDIR
)$(sbindir
); \
64 install -m
755 lsvmbus
$(DESTDIR
)$(sbindir
); \
65 for script in
$(ALL_SCRIPTS
); do \
66 install $$script -m
755 $(DESTDIR
)$(libexecdir
)/hypervkvpd
/$${script
%.sh
}; \
71 .PHONY
: all install clean FORCE prepare