^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) # SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) # Makefile for Hyper-V tools
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) include ../scripts/Makefile.include
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) sbindir ?= /usr/sbin
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) libexecdir ?= /usr/libexec
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) sharedstatedir ?= /var/lib
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) ifeq ($(srctree),)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) srctree := $(patsubst %/,%,$(dir $(CURDIR)))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) srctree := $(patsubst %/,%,$(dir $(srctree)))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) # Do not use make's built-in rules
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) # (this improves performance and avoids hard-to-debug behaviour);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) MAKEFLAGS += -r
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) override CFLAGS += -O2 -Wall -g -D_GNU_SOURCE -I$(OUTPUT)include
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) ALL_TARGETS := hv_kvp_daemon hv_vss_daemon hv_fcopy_daemon
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) ALL_PROGRAMS := $(patsubst %,$(OUTPUT)%,$(ALL_TARGETS))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) ALL_SCRIPTS := hv_get_dhcp_info.sh hv_get_dns_info.sh hv_set_ifconfig.sh
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) all: $(ALL_PROGRAMS)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) export srctree OUTPUT CC LD CFLAGS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) include $(srctree)/tools/build/Makefile.include
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) HV_KVP_DAEMON_IN := $(OUTPUT)hv_kvp_daemon-in.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) $(HV_KVP_DAEMON_IN): FORCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) $(Q)$(MAKE) $(build)=hv_kvp_daemon
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) $(OUTPUT)hv_kvp_daemon: $(HV_KVP_DAEMON_IN)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) $(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) $< -o $@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) HV_VSS_DAEMON_IN := $(OUTPUT)hv_vss_daemon-in.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) $(HV_VSS_DAEMON_IN): FORCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) $(Q)$(MAKE) $(build)=hv_vss_daemon
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) $(OUTPUT)hv_vss_daemon: $(HV_VSS_DAEMON_IN)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) $(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) $< -o $@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) HV_FCOPY_DAEMON_IN := $(OUTPUT)hv_fcopy_daemon-in.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) $(HV_FCOPY_DAEMON_IN): FORCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) $(Q)$(MAKE) $(build)=hv_fcopy_daemon
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) $(OUTPUT)hv_fcopy_daemon: $(HV_FCOPY_DAEMON_IN)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) $(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) $< -o $@
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) clean:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) rm -f $(ALL_PROGRAMS)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) find $(if $(OUTPUT),$(OUTPUT),.) -name '*.o' -delete -o -name '\.*.d' -delete
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) install: $(ALL_PROGRAMS)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) install -d -m 755 $(DESTDIR)$(sbindir); \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) install -d -m 755 $(DESTDIR)$(libexecdir)/hypervkvpd; \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) install -d -m 755 $(DESTDIR)$(sharedstatedir); \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) for program in $(ALL_PROGRAMS); do \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) install $$program -m 755 $(DESTDIR)$(sbindir); \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) done; \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) install -m 755 lsvmbus $(DESTDIR)$(sbindir); \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) for script in $(ALL_SCRIPTS); do \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) install $$script -m 755 $(DESTDIR)$(libexecdir)/hypervkvpd/$${script%.sh}; \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) done
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) FORCE:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) .PHONY: all install clean FORCE prepare