mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
Use the apply-build-vars make macro to replace the @xxx@ markers in most *.in files only at build time. As some of the markers are local to tools/configure, introduce config/Tools-paths.mk.in and add the related make variables to it. Add Tools-paths to the PATH_FILES make variable in order to include the definitions for replacing them in the *.in files. Add the generated files to the distclean target. Signed-off-by: Juergen Gross <jgross@suse.com> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
111 lines
2.7 KiB
Makefile
111 lines
2.7 KiB
Makefile
XEN_ROOT = $(CURDIR)/../../..
|
|
OCAML_TOPLEVEL = $(CURDIR)/..
|
|
include $(OCAML_TOPLEVEL)/common.make
|
|
|
|
# Include configure output (config.h)
|
|
CFLAGS += -include $(XEN_ROOT)/tools/config.h
|
|
CFLAGS-$(CONFIG_SYSTEMD) += $(CFLAGS_xeninclude)
|
|
|
|
CFLAGS += $(CFLAGS-y)
|
|
CFLAGS += $(APPEND_CFLAGS)
|
|
LDFLAGS += $(LDFLAGS-y)
|
|
LDFLAGS += $(APPEND_LDFLAGS)
|
|
|
|
OCAMLINCLUDE += \
|
|
-I $(OCAML_TOPLEVEL)/libs/xb \
|
|
-I $(OCAML_TOPLEVEL)/libs/mmap \
|
|
-I $(OCAML_TOPLEVEL)/libs/xc \
|
|
-I $(OCAML_TOPLEVEL)/libs/eventchn \
|
|
-I $(OCAML_TOPLEVEL)/libs/xsd_glue
|
|
|
|
LIBS = syslog.cma syslog.cmxa poll.cma poll.cmxa
|
|
syslog_OBJS = syslog
|
|
syslog_C_OBJS = syslog_stubs
|
|
poll_OBJS = poll
|
|
poll_C_OBJS = select_stubs
|
|
OCAML_LIBRARY = syslog poll
|
|
|
|
LIBS += systemd.cma systemd.cmxa
|
|
systemd_OBJS = systemd
|
|
systemd_C_OBJS = systemd_stubs
|
|
OCAML_LIBRARY += systemd
|
|
|
|
LIBS_systemd += $(LDFLAGS-y)
|
|
|
|
OBJS = paths \
|
|
define \
|
|
stdext \
|
|
trie \
|
|
config \
|
|
packet \
|
|
logging \
|
|
quota \
|
|
perms \
|
|
symbol \
|
|
utils \
|
|
store \
|
|
disk \
|
|
transaction \
|
|
event \
|
|
domain \
|
|
domains \
|
|
connection \
|
|
connections \
|
|
history \
|
|
parse_arg \
|
|
process \
|
|
poll \
|
|
xenstored
|
|
|
|
INTF = symbol.cmi trie.cmi syslog.cmi systemd.cmi poll.cmi
|
|
|
|
XENSTOREDLIBS = \
|
|
unix.cmxa \
|
|
dynlink.cmxa \
|
|
-ccopt -L -ccopt . syslog.cmxa \
|
|
-ccopt -L -ccopt . systemd.cmxa \
|
|
-ccopt -L -ccopt . poll.cmxa \
|
|
-ccopt -L -ccopt $(OCAML_TOPLEVEL)/libs/mmap $(OCAML_TOPLEVEL)/libs/mmap/xenmmap.cmxa \
|
|
-ccopt -L -ccopt $(OCAML_TOPLEVEL)/libs/eventchn $(OCAML_TOPLEVEL)/libs/eventchn/xeneventchn.cmxa \
|
|
-ccopt -L -ccopt $(OCAML_TOPLEVEL)/libs/xc $(OCAML_TOPLEVEL)/libs/xc/xenctrl.cmxa \
|
|
-ccopt -L -ccopt $(OCAML_TOPLEVEL)/libs/xb $(OCAML_TOPLEVEL)/libs/xb/xenbus.cmxa \
|
|
-ccopt -L -ccopt $(OCAML_TOPLEVEL)/libs/xsd_glue $(OCAML_TOPLEVEL)/libs/xsd_glue/plugin_interface_v1.cmxa \
|
|
-ccopt -L -ccopt $(XEN_ROOT)/tools/libs/ctrl
|
|
|
|
IN_TARGETS := paths.ml
|
|
IN_TARGETS += oxenstored.conf
|
|
|
|
PROGRAMS = oxenstored
|
|
|
|
oxenstored_LIBS = $(XENSTOREDLIBS)
|
|
# use ocamldep to figure out link order, otherwise the Makefile would have
|
|
# to be continously adjusted for security patches that introduce new
|
|
# dependencies between files
|
|
oxenstored_MLSORTED = $(shell $(OCAMLDEP) -sort $(OBJS:=.ml))
|
|
oxenstored_OBJS = $(oxenstored_MLSORTED:.ml=)
|
|
|
|
OCAML_PROGRAM = oxenstored
|
|
|
|
all: $(IN_TARGETS) $(INTF) $(LIBS) $(PROGRAMS)
|
|
|
|
$(foreach file,$(IN_TARGETS),$(eval $(call apply-build-vars,$(file))))
|
|
|
|
bins: $(PROGRAMS)
|
|
|
|
libs: $(LIBS)
|
|
|
|
install: all
|
|
$(INSTALL_DIR) $(DESTDIR)$(sbindir)
|
|
$(INSTALL_PROG) oxenstored $(DESTDIR)$(sbindir)
|
|
$(INSTALL_DIR) $(DESTDIR)$(XEN_CONFIG_DIR)
|
|
$(INSTALL_DATA) oxenstored.conf $(DESTDIR)$(XEN_CONFIG_DIR)
|
|
|
|
uninstall:
|
|
rm -f $(DESTDIR)$(XEN_CONFIG_DIR)/oxenstored.conf
|
|
rm -f $(DESTDIR)$(sbindir)/oxenstored
|
|
|
|
distclean:
|
|
$(RM) $(IN_TARGETS)
|
|
|
|
include $(OCAML_TOPLEVEL)/Makefile.rules
|