xref: /openbmc/linux/tools/hv/Makefile (revision 07588a58ef6d744638940c030619edd46a35b87a)
1b2441318SGreg Kroah-Hartman# SPDX-License-Identifier: GPL-2.0
23eb2094cSBjarke Istrup Pedersen# Makefile for Hyper-V tools
39b543419SAndy Shevchenkoinclude ../scripts/Makefile.include
450fe6dd1SKamal Mostafa
539b759caSVitaly Kuznetsovsbindir ?= /usr/sbin
639b759caSVitaly Kuznetsovlibexecdir ?= /usr/libexec
739b759caSVitaly Kuznetsovsharedstatedir ?= /var/lib
839b759caSVitaly Kuznetsov
99b543419SAndy Shevchenkoifeq ($(srctree),)
109b543419SAndy Shevchenkosrctree := $(patsubst %/,%,$(dir $(CURDIR)))
119b543419SAndy Shevchenkosrctree := $(patsubst %/,%,$(dir $(srctree)))
129b543419SAndy Shevchenkoendif
139b543419SAndy Shevchenko
149b543419SAndy Shevchenko# Do not use make's built-in rules
159b543419SAndy Shevchenko# (this improves performance and avoids hard-to-debug behaviour);
169b543419SAndy ShevchenkoMAKEFLAGS += -r
179b543419SAndy Shevchenko
189b543419SAndy Shevchenkooverride CFLAGS += -O2 -Wall -g -D_GNU_SOURCE -I$(OUTPUT)include
199b543419SAndy Shevchenko
209b543419SAndy ShevchenkoALL_TARGETS := hv_kvp_daemon hv_vss_daemon hv_fcopy_daemon
219b543419SAndy ShevchenkoALL_PROGRAMS := $(patsubst %,$(OUTPUT)%,$(ALL_TARGETS))
2239b759caSVitaly Kuznetsov
2339b759caSVitaly KuznetsovALL_SCRIPTS := hv_get_dhcp_info.sh hv_get_dns_info.sh hv_set_ifconfig.sh
2439b759caSVitaly Kuznetsov
2539b759caSVitaly Kuznetsovall: $(ALL_PROGRAMS)
2639b759caSVitaly Kuznetsov
279b543419SAndy Shevchenkoexport srctree OUTPUT CC LD CFLAGS
289b543419SAndy Shevchenkoinclude $(srctree)/tools/build/Makefile.include
299b543419SAndy Shevchenko
309b543419SAndy ShevchenkoHV_KVP_DAEMON_IN := $(OUTPUT)hv_kvp_daemon-in.o
319b543419SAndy Shevchenko$(HV_KVP_DAEMON_IN): FORCE
329b543419SAndy Shevchenko	$(Q)$(MAKE) $(build)=hv_kvp_daemon
339b543419SAndy Shevchenko$(OUTPUT)hv_kvp_daemon: $(HV_KVP_DAEMON_IN)
349b543419SAndy Shevchenko	$(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) $< -o $@
359b543419SAndy Shevchenko
369b543419SAndy ShevchenkoHV_VSS_DAEMON_IN := $(OUTPUT)hv_vss_daemon-in.o
379b543419SAndy Shevchenko$(HV_VSS_DAEMON_IN): FORCE
389b543419SAndy Shevchenko	$(Q)$(MAKE) $(build)=hv_vss_daemon
399b543419SAndy Shevchenko$(OUTPUT)hv_vss_daemon: $(HV_VSS_DAEMON_IN)
409b543419SAndy Shevchenko	$(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) $< -o $@
419b543419SAndy Shevchenko
429b543419SAndy ShevchenkoHV_FCOPY_DAEMON_IN := $(OUTPUT)hv_fcopy_daemon-in.o
439b543419SAndy Shevchenko$(HV_FCOPY_DAEMON_IN): FORCE
449b543419SAndy Shevchenko	$(Q)$(MAKE) $(build)=hv_fcopy_daemon
459b543419SAndy Shevchenko$(OUTPUT)hv_fcopy_daemon: $(HV_FCOPY_DAEMON_IN)
469b543419SAndy Shevchenko	$(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) $< -o $@
473eb2094cSBjarke Istrup Pedersen
483eb2094cSBjarke Istrup Pedersenclean:
499b543419SAndy Shevchenko	rm -f $(ALL_PROGRAMS)
50*532ba43dSzhang jiao	find $(or $(OUTPUT),.) -name '*.o' -delete -o -name '\.*.d' -delete -o -name '\.*.cmd' -delete
5139b759caSVitaly Kuznetsov
529b543419SAndy Shevchenkoinstall: $(ALL_PROGRAMS)
5339b759caSVitaly Kuznetsov	install -d -m 755 $(DESTDIR)$(sbindir); \
5439b759caSVitaly Kuznetsov	install -d -m 755 $(DESTDIR)$(libexecdir)/hypervkvpd; \
5539b759caSVitaly Kuznetsov	install -d -m 755 $(DESTDIR)$(sharedstatedir); \
5639b759caSVitaly Kuznetsov	for program in $(ALL_PROGRAMS); do \
5739b759caSVitaly Kuznetsov		install $$program -m 755 $(DESTDIR)$(sbindir);	\
5839b759caSVitaly Kuznetsov	done; \
5939b759caSVitaly Kuznetsov	install -m 755 lsvmbus $(DESTDIR)$(sbindir); \
6039b759caSVitaly Kuznetsov	for script in $(ALL_SCRIPTS); do \
6139b759caSVitaly Kuznetsov		install $$script -m 755 $(DESTDIR)$(libexecdir)/hypervkvpd/$${script%.sh}; \
6239b759caSVitaly Kuznetsov	done
639b543419SAndy Shevchenko
649b543419SAndy ShevchenkoFORCE:
659b543419SAndy Shevchenko
669b543419SAndy Shevchenko.PHONY: all install clean FORCE prepare
67