1XEN_ROOT = $(CURDIR)/../../.. 2OCAML_TOPLEVEL = $(CURDIR)/.. 3include $(OCAML_TOPLEVEL)/common.make 4 5# Include configure output (config.h) 6CFLAGS += -include $(XEN_ROOT)/tools/config.h 7CFLAGS-$(CONFIG_SYSTEMD) += $(CFLAGS_xeninclude) 8 9CFLAGS += $(CFLAGS-y) 10CFLAGS += $(APPEND_CFLAGS) 11LDFLAGS += $(LDFLAGS-y) 12LDFLAGS += $(APPEND_LDFLAGS) 13 14OCAMLINCLUDE += \ 15 -I $(OCAML_TOPLEVEL)/libs/xb \ 16 -I $(OCAML_TOPLEVEL)/libs/mmap \ 17 -I $(OCAML_TOPLEVEL)/libs/xc \ 18 -I $(OCAML_TOPLEVEL)/libs/eventchn 19 20LIBS = syslog.cma syslog.cmxa poll.cma poll.cmxa 21syslog_OBJS = syslog 22syslog_C_OBJS = syslog_stubs 23poll_OBJS = poll 24poll_C_OBJS = select_stubs 25OCAML_LIBRARY = syslog poll 26 27LIBS += systemd.cma systemd.cmxa 28systemd_OBJS = systemd 29systemd_C_OBJS = systemd_stubs 30OCAML_LIBRARY += systemd 31 32LIBS_systemd += $(LDFLAGS-y) 33 34OBJS = paths \ 35 define \ 36 stdext \ 37 trie \ 38 config \ 39 packet \ 40 logging \ 41 quota \ 42 perms \ 43 symbol \ 44 utils \ 45 store \ 46 disk \ 47 transaction \ 48 event \ 49 domain \ 50 domains \ 51 connection \ 52 connections \ 53 history \ 54 parse_arg \ 55 process \ 56 xenstored 57 58INTF = symbol.cmi trie.cmi syslog.cmi systemd.cmi poll.cmi 59 60XENSTOREDLIBS = \ 61 unix.cmxa \ 62 -ccopt -L -ccopt . syslog.cmxa \ 63 -ccopt -L -ccopt . systemd.cmxa \ 64 -ccopt -L -ccopt . poll.cmxa \ 65 -ccopt -L -ccopt $(OCAML_TOPLEVEL)/libs/mmap $(OCAML_TOPLEVEL)/libs/mmap/xenmmap.cmxa \ 66 -ccopt -L -ccopt $(OCAML_TOPLEVEL)/libs/eventchn $(OCAML_TOPLEVEL)/libs/eventchn/xeneventchn.cmxa \ 67 -ccopt -L -ccopt $(OCAML_TOPLEVEL)/libs/xc $(OCAML_TOPLEVEL)/libs/xc/xenctrl.cmxa \ 68 -ccopt -L -ccopt $(OCAML_TOPLEVEL)/libs/xb $(OCAML_TOPLEVEL)/libs/xb/xenbus.cmxa \ 69 -ccopt -L -ccopt $(XEN_ROOT)/tools/libs/ctrl 70 71PROGRAMS = oxenstored 72 73oxenstored_LIBS = $(XENSTOREDLIBS) 74# use ocamldep to figure out link order, otherwise the Makefile would have 75# to be continously adjusted for security patches that introduce new 76# dependencies between files 77oxenstored_MLSORTED = $(shell $(OCAMLDEP) -sort $(OBJS:=.ml)) 78oxenstored_OBJS = $(oxenstored_MLSORTED:.ml=) 79 80OCAML_PROGRAM = oxenstored 81 82all: $(INTF) $(LIBS) $(PROGRAMS) 83 84bins: $(PROGRAMS) 85 86libs: $(LIBS) 87 88install: all 89 $(INSTALL_DIR) $(DESTDIR)$(sbindir) 90 $(INSTALL_PROG) oxenstored $(DESTDIR)$(sbindir) 91 $(INSTALL_DIR) $(DESTDIR)$(XEN_CONFIG_DIR) 92 $(INSTALL_DATA) oxenstored.conf $(DESTDIR)$(XEN_CONFIG_DIR) 93 94uninstall: 95 rm -f $(DESTDIR)$(XEN_CONFIG_DIR)/oxenstored.conf 96 rm -f $(DESTDIR)$(sbindir)/oxenstored 97 98include $(OCAML_TOPLEVEL)/Makefile.rules 99