1#
2# tools/xl/Makefile
3#
4
5XEN_ROOT = $(CURDIR)/../..
6include $(XEN_ROOT)/tools/Rules.mk
7
8CFLAGS += -Werror -Wno-format-zero-length -Wmissing-declarations \
9	-Wno-declaration-after-statement -Wformat-nonliteral
10CFLAGS += -I. -fPIC
11
12CFLAGS += $(PTHREAD_CFLAGS)
13LDFLAGS += $(PTHREAD_LDFLAGS)
14
15CFLAGS_XL += $(CFLAGS_libxenlight)
16CFLAGS_XL += -Wshadow
17
18XL_OBJS-$(CONFIG_X86) = xl_psr.o
19XL_OBJS = xl.o xl_cmdtable.o xl_sxp.o xl_utils.o $(XL_OBJS-y)
20XL_OBJS += xl_tmem.o xl_parse.o xl_cpupool.o xl_flask.o
21XL_OBJS += xl_vtpm.o xl_block.o xl_nic.o xl_usb.o
22XL_OBJS += xl_sched.o xl_pci.o xl_vcpu.o xl_cdrom.o xl_mem.o
23XL_OBJS += xl_info.o xl_console.o xl_misc.o
24XL_OBJS += xl_vmcontrol.o xl_saverestore.o xl_migrate.o
25XL_OBJS += xl_vdispl.o
26
27$(XL_OBJS): CFLAGS += $(CFLAGS_libxentoollog)
28$(XL_OBJS): CFLAGS += $(CFLAGS_XL)
29$(XL_OBJS): CFLAGS += -include $(XEN_ROOT)/tools/config.h # libxl_json.h needs it.
30
31genpath-target = $(call buildmakevars2header,_paths.h)
32$(eval $(genpath-target))
33
34$(XL_OBJS): _paths.h
35
36.PHONY: all
37all: xl
38
39xl: $(XL_OBJS)
40	$(CC) $(LDFLAGS) -o $@ $(XL_OBJS) $(LDLIBS_libxlutil) $(LDLIBS_libxenlight) $(LDLIBS_libxentoollog) -lyajl $(APPEND_LDFLAGS)
41
42.PHONY: install
43install: all
44	$(INSTALL_DIR) $(DESTDIR)$(sbindir)
45	$(INSTALL_DIR) $(DESTDIR)$(BASH_COMPLETION_DIR)
46	$(INSTALL_PROG) xl $(DESTDIR)$(sbindir)
47	$(INSTALL_DATA) bash-completion $(DESTDIR)$(BASH_COMPLETION_DIR)/xl.sh
48
49.PHONY: uninstall
50uninstall:
51	rm -f $(DESTDIR)$(BASH_COMPLETION_DIR)/xl.sh
52	rm -f $(DESTDIR)$(sbindir)/xl
53
54.PHONY: clean
55clean:
56	$(RM) -f *.o xl _paths.h $(DEPS_RM)
57
58distclean: clean
59
60
61-include $(DEPS_INCLUDE)
62