hc
2024-11-01 a01b5c9f91adaee088a817861603a5dbe14775c2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
################################################################################
#
# hv_fcopy_daemon
#
################################################################################
 
LINUX_TOOLS += hv
 
# The programs to build, as known by the kernel:
HV_PROGS_$(BR2_PACKAGE_LINUX_TOOLS_HV_KVP_DAEMON) += hv_kvp_daemon
HV_PROGS_$(BR2_PACKAGE_LINUX_TOOLS_HV_FCOPY_DAEMON) += hv_fcopy_daemon
HV_PROGS_$(BR2_PACKAGE_LINUX_TOOLS_HV_VSS_DAEMON) += hv_vss_daemon
 
# Give each tools the name most distros install them as:
HV_hv_kvp_daemon = hypervkvpd
HV_hv_fcopy_daemon = hypervfcopyd
HV_hv_vss_daemon = hypervvssd
 
HV_MAKE_OPTS = CC="$(TARGET_CC)" CFLAGS="$(filter-out -g%,$(TARGET_CFLAGS))"
 
define HV_BUILD_CMDS
   $(Q)for prog in $(HV_PROGS_y); do \
       if test ! -f $(LINUX_DIR)/tools/hv/$${prog}.c ; then \
           printf "Your kernel version is too old and does not have the HyperV %s tool." "$${prog}" ; \
           exit 1 ; \
       fi; \
   done
 
   $(TARGET_MAKE_ENV) $(MAKE) -C $(LINUX_DIR)/tools/hv \
       $(HV_MAKE_OPTS) \
       $(HV_PROGS_y)
endef
 
ifeq ($(BR2_PACKAGE_LINUX_TOOLS_HV_KVP_DAEMON),y)
define HV_KVP_HELPER
   @mkdir -p $(TARGET_DIR)/usr/libexec/hypervkvpd
   $(Q)ln -sf /bin/true $(TARGET_DIR)/usr/libexec/hypervkvpd/hv_set_ifconfig
endef
endif
 
define HV_INSTALL_TARGET_CMDS
   $(foreach prog,$(HV_PROGS_y), \
       $(INSTALL) -m 0755 -D $(LINUX_DIR)/tools/hv/$(prog) \
           $(TARGET_DIR)/usr/sbin/$(HV_$(prog))
   )
   $(HV_KVP_HELPER)
endef
 
define HV_INSTALL_INIT_SYSTEMD
   $(foreach prog,$(HV_PROGS_y), \
       $(INSTALL) -m 0644 -D package/linux-tools/$(HV_$(prog)).service \
           $(TARGET_DIR)/usr/lib/systemd/system/$(HV_$(prog)).service
   )
endef
 
define HV_INSTALL_INIT_SYSV
   $(INSTALL) -m 0755 -D package/linux-tools/S10hyperv \
       $(TARGET_DIR)/etc/init.d/S10hyperv
   $(SED) 's/@PROGS@/$(foreach prog,$(HV_PROGS_y),$(HV_$(prog)))/' \
       $(TARGET_DIR)/etc/init.d/S10hyperv
endef