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