xref: /linux/tools/hv/Makefile (revision fb92a1ffc121e65ffed13c6bfe01c190487d791e)
1b2441318SGreg Kroah-Hartman# SPDX-License-Identifier: GPL-2.0
23eb2094cSBjarke Istrup Pedersen# Makefile for Hyper-V tools
39b543419SAndy Shevchenkoinclude ../scripts/Makefile.include
450fe6dd1SKamal Mostafa
582b0945cSSaurabh SengarARCH := $(shell uname -m 2>/dev/null)
639b759caSVitaly Kuznetsovsbindir ?= /usr/sbin
739b759caSVitaly Kuznetsovlibexecdir ?= /usr/libexec
839b759caSVitaly Kuznetsovsharedstatedir ?= /var/lib
939b759caSVitaly Kuznetsov
109b543419SAndy Shevchenkoifeq ($(srctree),)
119b543419SAndy Shevchenkosrctree := $(patsubst %/,%,$(dir $(CURDIR)))
129b543419SAndy Shevchenkosrctree := $(patsubst %/,%,$(dir $(srctree)))
139b543419SAndy Shevchenkoendif
149b543419SAndy Shevchenko
159b543419SAndy Shevchenko# Do not use make's built-in rules
169b543419SAndy Shevchenko# (this improves performance and avoids hard-to-debug behaviour);
179b543419SAndy ShevchenkoMAKEFLAGS += -r
189b543419SAndy Shevchenko
199b543419SAndy Shevchenkooverride CFLAGS += -O2 -Wall -g -D_GNU_SOURCE -I$(OUTPUT)include
20207e03b0SSaurabh Sengaroverride CFLAGS += -Wno-address-of-packed-member
219b543419SAndy Shevchenko
2282b0945cSSaurabh SengarALL_TARGETS := hv_kvp_daemon hv_vss_daemon
2382b0945cSSaurabh Sengarifneq ($(ARCH), aarch64)
2482b0945cSSaurabh SengarALL_TARGETS += hv_fcopy_uio_daemon
2582b0945cSSaurabh Sengarendif
269b543419SAndy ShevchenkoALL_PROGRAMS := $(patsubst %,$(OUTPUT)%,$(ALL_TARGETS))
2739b759caSVitaly Kuznetsov
2839b759caSVitaly KuznetsovALL_SCRIPTS := hv_get_dhcp_info.sh hv_get_dns_info.sh hv_set_ifconfig.sh
2939b759caSVitaly Kuznetsov
3039b759caSVitaly Kuznetsovall: $(ALL_PROGRAMS)
3139b759caSVitaly Kuznetsov
329b543419SAndy Shevchenkoexport srctree OUTPUT CC LD CFLAGS
339b543419SAndy Shevchenkoinclude $(srctree)/tools/build/Makefile.include
349b543419SAndy Shevchenko
359b543419SAndy ShevchenkoHV_KVP_DAEMON_IN := $(OUTPUT)hv_kvp_daemon-in.o
369b543419SAndy Shevchenko$(HV_KVP_DAEMON_IN): FORCE
379b543419SAndy Shevchenko	$(Q)$(MAKE) $(build)=hv_kvp_daemon
389b543419SAndy Shevchenko$(OUTPUT)hv_kvp_daemon: $(HV_KVP_DAEMON_IN)
399b543419SAndy Shevchenko	$(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) $< -o $@
409b543419SAndy Shevchenko
419b543419SAndy ShevchenkoHV_VSS_DAEMON_IN := $(OUTPUT)hv_vss_daemon-in.o
429b543419SAndy Shevchenko$(HV_VSS_DAEMON_IN): FORCE
439b543419SAndy Shevchenko	$(Q)$(MAKE) $(build)=hv_vss_daemon
449b543419SAndy Shevchenko$(OUTPUT)hv_vss_daemon: $(HV_VSS_DAEMON_IN)
459b543419SAndy Shevchenko	$(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) $< -o $@
469b543419SAndy Shevchenko
4782b0945cSSaurabh SengarHV_FCOPY_UIO_DAEMON_IN := $(OUTPUT)hv_fcopy_uio_daemon-in.o
4882b0945cSSaurabh Sengar$(HV_FCOPY_UIO_DAEMON_IN): FORCE
4982b0945cSSaurabh Sengar	$(Q)$(MAKE) $(build)=hv_fcopy_uio_daemon
5082b0945cSSaurabh Sengar$(OUTPUT)hv_fcopy_uio_daemon: $(HV_FCOPY_UIO_DAEMON_IN)
519b543419SAndy Shevchenko	$(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) $< -o $@
523eb2094cSBjarke Istrup Pedersen
533eb2094cSBjarke Istrup Pedersenclean:
549b543419SAndy Shevchenko	rm -f $(ALL_PROGRAMS)
55*5e5cc1ebSzhang jiao	find $(or $(OUTPUT),.) -name '*.o' -delete -o -name '\.*.d' -delete -o -name '\.*.cmd' -delete
5639b759caSVitaly Kuznetsov
579b543419SAndy Shevchenkoinstall: $(ALL_PROGRAMS)
5839b759caSVitaly Kuznetsov	install -d -m 755 $(DESTDIR)$(sbindir); \
5939b759caSVitaly Kuznetsov	install -d -m 755 $(DESTDIR)$(libexecdir)/hypervkvpd; \
6039b759caSVitaly Kuznetsov	install -d -m 755 $(DESTDIR)$(sharedstatedir); \
6139b759caSVitaly Kuznetsov	for program in $(ALL_PROGRAMS); do \
6239b759caSVitaly Kuznetsov		install $$program -m 755 $(DESTDIR)$(sbindir);	\
6339b759caSVitaly Kuznetsov	done; \
6439b759caSVitaly Kuznetsov	install -m 755 lsvmbus $(DESTDIR)$(sbindir); \
6539b759caSVitaly Kuznetsov	for script in $(ALL_SCRIPTS); do \
6639b759caSVitaly Kuznetsov		install $$script -m 755 $(DESTDIR)$(libexecdir)/hypervkvpd/$${script%.sh}; \
6739b759caSVitaly Kuznetsov	done
689b543419SAndy Shevchenko
699b543419SAndy ShevchenkoFORCE:
709b543419SAndy Shevchenko
719b543419SAndy Shevchenko.PHONY: all install clean FORCE prepare
72