1XEN_ROOT=$(CURDIR)/../..
2include $(XEN_ROOT)/tools/Rules.mk
3
4# Include configure output (config.h)
5CFLAGS += -include $(XEN_ROOT)/tools/config.h
6CFLAGS += $(CFLAGS_libxenevtchn)
7CFLAGS += $(CFLAGS_libxenctrl)
8CFLAGS += $(CFLAGS_libxenguest)
9CFLAGS += $(CFLAGS_xeninclude)
10CFLAGS += $(CFLAGS_libxenstore)
11
12# Everything to be installed in regular bin/
13INSTALL_BIN-$(CONFIG_X86)      += xen-cpuid
14INSTALL_BIN-$(CONFIG_X86)      += xen-detect
15INSTALL_BIN                    += xencov_split
16INSTALL_BIN += $(INSTALL_BIN-y)
17
18# Everything to be installed in regular sbin/
19INSTALL_SBIN-$(CONFIG_MIGRATE) += xen-hptool
20INSTALL_SBIN-$(CONFIG_X86)     += xen-hvmcrash
21INSTALL_SBIN-$(CONFIG_X86)     += xen-hvmctx
22INSTALL_SBIN-$(CONFIG_X86)     += xen-lowmemd
23INSTALL_SBIN-$(CONFIG_X86)     += xen-mceinj
24INSTALL_SBIN-$(CONFIG_X86)     += xen-memshare
25INSTALL_SBIN-$(CONFIG_X86)     += xen-mfndump
26INSTALL_SBIN-$(CONFIG_X86)     += xen-ucode
27INSTALL_SBIN-$(CONFIG_X86)     += xen-vmtrace
28INSTALL_SBIN                   += xencov
29INSTALL_SBIN                   += xenhypfs
30INSTALL_SBIN                   += xenlockprof
31INSTALL_SBIN                   += xenperf
32INSTALL_SBIN                   += xenpm
33INSTALL_SBIN                   += xenwatchdogd
34INSTALL_SBIN                   += xen-access
35INSTALL_SBIN                   += xen-livepatch
36INSTALL_SBIN                   += xen-diag
37INSTALL_SBIN += $(INSTALL_SBIN-y)
38
39# Everything to be installed
40TARGETS_ALL := $(INSTALL_BIN) $(INSTALL_SBIN)
41
42# Everything which only needs copying to install
43TARGETS_COPY += xencov_split
44
45# Everything which needs to be built
46TARGETS := $(filter-out $(TARGETS_COPY),$(TARGETS_ALL))
47
48.PHONY: all
49all: $(TARGETS)
50
51.PHONY: install
52install: all
53	$(INSTALL_DIR) $(DESTDIR)$(bindir)
54	$(INSTALL_DIR) $(DESTDIR)$(sbindir)
55	$(INSTALL_DIR) $(DESTDIR)$(LIBEXEC_BIN)
56	$(INSTALL_PYTHON_PROG) $(INSTALL_BIN) $(DESTDIR)$(bindir)
57	$(INSTALL_PYTHON_PROG) $(INSTALL_SBIN) $(DESTDIR)$(sbindir)
58
59.PHONY: uninstall
60uninstall:
61	rm -f $(addprefix $(DESTDIR)$(sbindir)/, $(INSTALL_SBIN))
62	rm -f $(addprefix $(DESTDIR)$(bindir)/, $(INSTALL_BIN))
63
64.PHONY: clean
65clean:
66	$(RM) *.o $(TARGETS) $(DEPS_RM)
67
68.PHONY: distclean
69distclean: clean
70
71xen-access: xen-access.o
72	$(CC) $(LDFLAGS) -o $@ $< $(LDLIBS_libxenctrl) $(LDLIBS_libxenguest) $(LDLIBS_libxenevtchn) $(APPEND_LDFLAGS)
73
74xen-cpuid: xen-cpuid.o
75	$(CC) $(LDFLAGS) -o $@ $< $(LDLIBS_libxenctrl) $(LDLIBS_libxenguest) $(APPEND_LDFLAGS)
76
77xen-detect: xen-detect.o
78	$(CC) $(LDFLAGS) -o $@ $< $(APPEND_LDFLAGS)
79
80xen-hvmctx: xen-hvmctx.o
81	$(CC) $(LDFLAGS) -o $@ $< $(LDLIBS_libxenctrl) $(APPEND_LDFLAGS)
82
83xen-hvmcrash: xen-hvmcrash.o
84	$(CC) $(LDFLAGS) -o $@ $< $(LDLIBS_libxenctrl) $(LDLIBS_libxendevicemodel) $(APPEND_LDFLAGS)
85
86xen-memshare: xen-memshare.o
87	$(CC) $(LDFLAGS) -o $@ $< $(LDLIBS_libxenctrl) $(APPEND_LDFLAGS)
88
89xen-vmtrace: xen-vmtrace.o
90	$(CC) $(LDFLAGS) -o $@ $< $(LDLIBS_libxenctrl) $(LDLIBS_libxenforeignmemory) $(APPEND_LDFLAGS)
91
92xen-mceinj: xen-mceinj.o
93	$(CC) $(LDFLAGS) -o $@ $< $(LDLIBS_libxenctrl) $(LDLIBS_libxenguest) $(LDLIBS_libxenstore) $(APPEND_LDFLAGS)
94
95xenperf: xenperf.o
96	$(CC) $(LDFLAGS) -o $@ $< $(LDLIBS_libxenctrl) $(APPEND_LDFLAGS)
97
98xenpm: xenpm.o
99	$(CC) $(LDFLAGS) -o $@ $< $(LDLIBS_libxenctrl) $(APPEND_LDFLAGS)
100
101xenhypfs: xenhypfs.o
102	$(CC) $(LDFLAGS) -o $@ $< $(LDLIBS_libxenhypfs) $(APPEND_LDFLAGS)
103
104xenlockprof: xenlockprof.o
105	$(CC) $(LDFLAGS) -o $@ $< $(LDLIBS_libxenctrl) $(APPEND_LDFLAGS)
106
107xen-hptool: xen-hptool.o
108	$(CC) $(LDFLAGS) -o $@ $< $(LDLIBS_libxenevtchn) $(LDLIBS_libxenctrl) $(LDLIBS_libxenguest) $(LDLIBS_libxenstore) $(APPEND_LDFLAGS)
109
110xenhypfs.o: CFLAGS += $(CFLAGS_libxenhypfs)
111
112xen-mfndump: xen-mfndump.o
113	$(CC) $(LDFLAGS) -o $@ $< $(LDLIBS_libxenevtchn) $(LDLIBS_libxenctrl) $(LDLIBS_libxenguest) $(APPEND_LDFLAGS)
114
115xenwatchdogd: xenwatchdogd.o
116	$(CC) $(LDFLAGS) -o $@ $< $(LDLIBS_libxenctrl) $(APPEND_LDFLAGS)
117
118xen-livepatch: xen-livepatch.o
119	$(CC) $(LDFLAGS) -o $@ $< $(LDLIBS_libxenctrl) $(APPEND_LDFLAGS)
120
121xen-diag: xen-diag.o
122	$(CC) $(LDFLAGS) -o $@ $< $(LDLIBS_libxenctrl) $(APPEND_LDFLAGS)
123
124xen-lowmemd: xen-lowmemd.o
125	$(CC) $(LDFLAGS) -o $@ $< $(LDLIBS_libxenevtchn) $(LDLIBS_libxenctrl) $(LDLIBS_libxenstore) $(APPEND_LDFLAGS)
126
127xencov: xencov.o
128	$(CC) $(LDFLAGS) -o $@ $< $(LDLIBS_libxenctrl) $(APPEND_LDFLAGS)
129
130xen-ucode: xen-ucode.o
131	$(CC) $(LDFLAGS) -o $@ $< $(LDLIBS_libxenctrl) $(APPEND_LDFLAGS)
132
133-include $(DEPS_INCLUDE)
134