Skip to content
This repository was archived by the owner on May 22, 2018. It is now read-only.

Commit cff115e

Browse files
committed
Xen 4.1: Add configure-time option to use system installed Xen library bindings.
Could be made to auto detect the Xen version but for now requires the user to explicitly opt in. Signed-off-by: Ian Campbell <[email protected]> Signed-off-by: Zheng Li <[email protected]>
1 parent c370d1c commit cff115e

File tree

31 files changed

+159
-28
lines changed

31 files changed

+159
-28
lines changed

Makefile.in

+42
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,13 @@ HAVE_LINUX_CDROM = @LINUX_CDROM@
55
HAVE_XMLM = @OCAML_PKG_xmlm@
66
HAVE_TYPECONV = @OCAML_PKG_type_conv@
77

8+
include config.mk
9+
810
.PHONY: all
911
all:
12+
ifeq ($(WITH_XEN_SYSTEM_BINDINGS),0)
1013
$(MAKE) -C uuid
14+
endif
1115
ifeq ($(HAVE_TYPECONV),type-conv)
1216
$(MAKE) -C rpc-light
1317
endif
@@ -36,20 +40,28 @@ endif
3640
.PHONY: allxen
3741
allxen:
3842
ifeq ($(HAVE_XEN),1)
43+
ifeq ($(WITH_XEN_SYSTEM_BINDINGS),0)
3944
$(MAKE) -C mmap
45+
endif
4046
$(MAKE) -C netdev
47+
ifeq ($(WITH_XEN_SYSTEM_BINDINGS),0)
4148
$(MAKE) -C xc
4249
$(MAKE) -C xb
4350
$(MAKE) -C xs
51+
endif
4452
$(MAKE) -C xsrpc
53+
ifeq ($(WITH_XEN_SYSTEM_BINDINGS),0)
4554
$(MAKE) -C eventchn
55+
endif
4656
$(MAKE) -C cpuid
4757
$(MAKE) -C vhd
4858
$(MAKE) -C tapctl
4959
endif
5060

5161
install:
62+
ifeq ($(WITH_XEN_SYSTEM_BINDINGS),0)
5263
$(MAKE) -C uuid install
64+
endif
5365
$(MAKE) -C stdext install
5466
$(MAKE) -C log install
5567
$(MAKE) -C stunnel install
@@ -76,20 +88,28 @@ endif
7688

7789
installxen:
7890
ifeq ($(HAVE_XEN),1)
91+
ifeq ($(WITH_XEN_SYSTEM_BINDINGS),0)
7992
$(MAKE) -C mmap install
93+
endif
8094
$(MAKE) -C netdev install
95+
ifeq ($(WITH_XEN_SYSTEM_BINDINGS),0)
8196
$(MAKE) -C xc install
8297
$(MAKE) -C xb install
8398
$(MAKE) -C xs install
99+
endif
84100
$(MAKE) -C xsrpc install
101+
ifeq ($(WITH_XEN_SYSTEM_BINDINGS),0)
85102
$(MAKE) -C eventchn install
103+
endif
86104
$(MAKE) -C cpuid install
87105
$(MAKE) -C vhd install
88106
$(MAKE) -C tapctl install
89107
endif
90108

91109
uninstall:
110+
ifeq ($(WITH_XEN_SYSTEM_BINDINGS),0)
92111
$(MAKE) -C uuid uninstall
112+
endif
93113
$(MAKE) -C stdext uninstall
94114
$(MAKE) -C log uninstall
95115
$(MAKE) -C stunnel uninstall
@@ -116,13 +136,19 @@ endif
116136

117137
uninstallxen:
118138
ifeq ($(HAVE_XEN),1)
139+
ifeq ($(WITH_XEN_SYSTEM_BINDINGS),0)
119140
$(MAKE) -C eventchn uninstall
141+
endif
120142
$(MAKE) -C xsrpc uninstall
121143
$(MAKE) -C netdev uninstall
144+
ifeq ($(WITH_XEN_SYSTEM_BINDINGS),0)
122145
$(MAKE) -C xs uninstall
123146
$(MAKE) -C xb uninstall
124147
$(MAKE) -C xc uninstall
148+
endif
149+
ifeq ($(WITH_XEN_SYSTEM_BINDINGS),0)
125150
$(MAKE) -C mmap uninstall
151+
endif
126152
$(MAKE) -C cpuid uninstall
127153
$(MAKE) -C vhd uninstall
128154
$(MAKE) -C tapctl uninstall
@@ -153,24 +179,32 @@ binuninstall:
153179

154180
.PHONY: doc
155181
doc:
182+
ifeq ($(WITH_XEN_SYSTEM_BINDINGS),0)
156183
$(MAKE) -C uuid doc
184+
endif
157185
$(MAKE) -C stdext doc
158186
$(MAKE) -C sexpr doc
159187
$(MAKE) -C log doc
188+
ifeq ($(WITH_XEN_SYSTEM_BINDINGS),0)
160189
$(MAKE) -C xb doc
161190
$(MAKE) -C xc doc
162191
$(MAKE) -C xs doc
192+
endif
163193
$(MAKE) -C xml-light2 doc
164194
$(MAKE) -C rpc-light doc
165195
$(MAKE) -C http-svr doc
166196
$(MAKE) -C camldm doc
167197
$(MAKE) -C cdrom doc
198+
ifeq ($(WITH_XEN_SYSTEM_BINDINGS),0)
168199
$(MAKE) -C eventchn doc
200+
endif
169201
$(MAKE) -C pciutil doc
170202
$(MAKE) -C rss doc
171203
$(MAKE) -C stunnel doc
172204
$(MAKE) -C xsrpc doc
205+
ifeq ($(WITH_XEN_SYSTEM_BINDINGS),0)
173206
$(MAKE) -C mmap doc
207+
endif
174208
$(MAKE) -C netdev doc
175209
$(MAKE) -C forking_executioner doc
176210
$(MAKE) -C mlvm doc
@@ -181,7 +215,9 @@ doc:
181215

182216
.PHONY: clean
183217
clean:
218+
ifeq ($(WITH_XEN_SYSTEM_BINDINGS),0)
184219
$(MAKE) -C uuid clean
220+
endif
185221
$(MAKE) -C camldm clean
186222
$(MAKE) -C stdext clean
187223
$(MAKE) -C log clean
@@ -203,13 +239,19 @@ clean:
203239
$(MAKE) -C xen-utils clean
204240

205241
cleanxen:
242+
ifeq ($(WITH_XEN_SYSTEM_BINDINGS),0)
206243
$(MAKE) -C mmap clean
244+
endif
207245
$(MAKE) -C netdev clean
246+
ifeq ($(WITH_XEN_SYSTEM_BINDINGS),0)
208247
$(MAKE) -C xc clean
209248
$(MAKE) -C xb clean
210249
$(MAKE) -C xs clean
250+
endif
211251
$(MAKE) -C xsrpc clean
252+
ifeq ($(WITH_XEN_SYSTEM_BINDINGS),0)
212253
$(MAKE) -C eventchn clean
254+
endif
213255

214256
RPM_SPECSDIR=$(shell rpm --eval='%_specdir')
215257
RPM_SOURCEDIR=$(shell rpm --eval='%_sourcedir')

camldm/Makefile

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
include ../config.mk
2+
13
CC = gcc
24
CFLAGS = -Wall -fPIC -O2 -I/usr/lib/ocaml
35
OCAMLC = ocamlc -g

cdrom/Makefile

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
include ../config.mk
2+
13
LDFLAGS = -cclib -L./
24

35
VERSION := $(shell git show-ref --head | grep -E " HEAD$$" | cut -f 1 -d " " || echo 0)

close-and-exec/Makefile

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
include ../config.mk
2+
13
IPROG=install -m 755
24
CC = gcc
35
CFLAGS = -Wall -fPIC -O2 -I/opt/xensource/lib/ocaml
@@ -29,7 +31,7 @@ bins: $(PROGRAMS)
2931
libs: $(LIBS)
3032

3133
closeandexec: closeandexec.cmxa closeandexec_main.cmx all
32-
$(OCAMLOPT) $(OCAMLOPTFLAGS) -thread -I ../stdext -I ../uuid uuid.cmxa unix.cmxa threads.cmxa stdext.cmxa closeandexec.cmxa closeandexec_main.cmx -o $@
34+
$(OCAMLOPT) $(OCAMLOPTFLAGS) -thread -I ../stdext $(OCAML_UUID_INC) uuid.cmxa unix.cmxa threads.cmxa stdext.cmxa closeandexec.cmxa closeandexec_main.cmx -o $@
3335

3436
closeandexec.cmxa: $(foreach obj,$(OBJS),$(obj).cmx)
3537
$(OCAMLOPT) $(OCAMLOPTFLAGS) -a -o $@ $(foreach obj,$(OBJS),$(obj).cmx)

config.mk.in

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
WITH_XEN_SYSTEM_BINDINGS = @WITH_XEN_SYSTEM_BINDINGS@
2+
3+
ifeq ($(WITH_XEN_SYSTEM_BINDINGS),0)
4+
OCAML_UUID_DIR = ../uuid
5+
OCAML_XB_DIR = ../xb
6+
OCAML_XC_DIR = ../xc
7+
OCAML_XS_DIR = ../xs
8+
else
9+
OCAML_UUID_DIR = $(shell ocamlfind query uuid)
10+
OCAML_XB_DIR = $(shell ocamlfind query xb)
11+
OCAML_XC_DIR = $(shell ocamlfind query xc)
12+
OCAML_XS_DIR = $(shell ocamlfind query xs)
13+
endif
14+
15+
OCAML_UUID_INC = -I $(OCAML_UUID_DIR)
16+
OCAML_UUID_LIB = $(OCAML_UUID_DIR)/uuid.cmxa
17+
18+
OCAML_XB_INC = -I $(OCAML_XB_DIR)
19+
OCAML_XB_LIB = $(OCAML_XB_DIR)/xb.cmxa
20+
21+
OCAML_XC_INC = -I $(OCAML_XC_DIR)
22+
OCAML_XC_LIB = $(OCAML_XC_DIR)/xc.cmxa
23+
24+
OCAML_XS_INC = -I $(OCAML_XS_DIR)
25+
OCAML_XS_LIB = $(OCAML_XS_DIR)/xs.cmxa
26+

configure.ac

+7-1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@ AC_CHECK_HEADERS([xen/xen.h],[XEN=1],[XEN=0])
3030
AC_CHECK_HEADERS([libdevmapper.h], [DEVICE_MAPPER=1], [DEVICE_MAPPER=0])
3131
AC_CHECK_HEADERS([linux/cdrom.h], [LINUX_CDROM=1], [LINUX_CDROM=0])
3232

33+
HAVE_XEN_SYSTEM_BINDINGS=0 # could do more intelligent detection here...
34+
AC_ARG_WITH(xen-system-bindings, AS_HELP_STRING([--without-xen-system-bindings],[do not use the system installed xen bindings]),
35+
[if test "x$withval" = "xno"; then WITH_XEN_SYSTEM_BINDINGS=0; else WITH_XEN_SYSTEM_BINDINGS=1; fi],
36+
[WITH_XEN_SYSTEM_BINDINGS=$HAVE_XEN_SYSTEM_BINDINGS])
37+
3338
# Checks for typedefs, structures, and compiler characteristics.
3439
AC_CHECK_DECLS([XS_RESTRICT],[],[],[
3540
[
@@ -54,8 +59,9 @@ fi
5459
AC_CHECK_OCAML_PKG([xmlm])
5560
AC_CHECK_OCAML_PKG([type-conv])
5661

57-
AC_CONFIG_FILES([Makefile])
62+
AC_CONFIG_FILES([Makefile config.mk])
5863
AC_SUBST([XEN])
64+
AC_SUBST([WITH_XEN_SYSTEM_BINDINGS])
5965
AC_SUBST([DEVICE_MAPPER])
6066
AC_SUBST([LINUX_CDROM])
6167
AC_SUBST([OCAML_PKG_xmlm])

cpuid/Makefile

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1+
include ../config.mk
2+
13
CC = gcc
24
CFLAGS = -Wall -fPIC -O2 -I/usr/lib/ocaml -I$(XEN_ROOT)/usr/include
35
OCAMLC = ocamlc -g
46
OCAMLOPT = ocamlopt
5-
INCLUDES = -I ../stdext -I ../xc -I ../xen-utils
7+
INCLUDES = -I ../stdext $(OCAML_XC_INC) -I ../xen-utils
68

79
LDFLAGS = -cclib -L./
810

doc/Makefile

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
include ../config.mk
2+
13
.PHONY: clean
24
clean:
35
rm -rf components.js content

eventchn/Makefile

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
include ../config.mk
2+
13
CC = gcc
24
CFLAGS = -Wall -fPIC -O2 -I/usr/lib/ocaml -I$(XEN_ROOT)/usr/include
35
OCAMLC = ocamlc -g

forking_executioner/Makefile

+7-5
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
include ../config.mk
2+
13
IPROG=install -m 755
24
CC = gcc
35
CFLAGS = -Wall -fPIC -O2 -I/opt/xensource/lib/ocaml
@@ -31,19 +33,19 @@ bins: $(PROGRAMS)
3133
libs: $(LIBS)
3234

3335
test_forker: test_forker.cmx
34-
$(OCAMLOPT) $(OCAMLOPTFLAGS) -I ../rpc-light -I ../uuid -I ../stdext uuid.cmxa rpc.cmx jsonrpc.cmx -I ../log unix.cmxa stdext.cmxa test_forker.cmx -o $@
36+
$(OCAMLOPT) $(OCAMLOPTFLAGS) -I ../rpc-light $(OCAML_UUID_INC) -I ../stdext uuid.cmxa rpc.cmx jsonrpc.cmx -I ../log unix.cmxa stdext.cmxa test_forker.cmx -o $@
3537

3638
fe: fe_debug.cmx child.cmx fe_main.cmx
37-
$(OCAMLOPT) $(OCAMLOPTFLAGS) -I ../rpc-light -I ../stdext -I ../uuid -I ../log log.cmxa uuid.cmxa unix.cmxa rpc.cmx jsonrpc.cmx stdext.cmxa fe_debug.cmx child.cmx fe_main.cmx -o $@
39+
$(OCAMLOPT) $(OCAMLOPTFLAGS) -I ../rpc-light -I ../stdext $(OCAML_UUID_INC) -I ../log log.cmxa uuid.cmxa unix.cmxa rpc.cmx jsonrpc.cmx stdext.cmxa fe_debug.cmx child.cmx fe_main.cmx -o $@
3840

3941
%.cmo: %.ml
40-
$(OCAMLC) -c -I ../log -I ../uuid -I ../stdext -thread -o $@ $<
42+
$(OCAMLC) -c -I ../log $(OCAML_UUID_INC) -I ../stdext -thread -o $@ $<
4143

4244
%.cmi: %.mli
43-
$(OCAMLC) -c -I ../log -I ../uuid -I ../stdext -o $@ $<
45+
$(OCAMLC) -c -I ../log $(OCAML_UUID_INC) -I ../stdext -o $@ $<
4446

4547
%.cmx: %.ml
46-
$(OCAMLOPT) $(OCAMLOPTFLAGS) -I ../log -I ../uuid -c -I ../stdext -o $@ $<
48+
$(OCAMLOPT) $(OCAMLOPTFLAGS) -I ../log $(OCAML_UUID_INC) -c -I ../stdext -o $@ $<
4749

4850
META: META.in
4951
sed 's/@VERSION@/$(VERSION)/g' < $< > $@

http-svr/Makefile

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
include ../config.mk
2+
13
CC = gcc
24
CFLAGS = -Wall -fPIC -O2 -I/opt/xensource/lib/ocaml
35
OCAMLC = ocamlc -g

log/Makefile

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
include ../config.mk
2+
13
CC = gcc
24
OCAMLLOC := $(shell ocamlc -where)
35
CFLAGS = -Wall -fPIC -O2 -I/opt/xensource/lib/ocaml -I$(OCAMLLOC)

mlvm/Makefile

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
include ../config.mk
12

23
CC = gcc
34
CFLAGS = -Wall -fPIC -O2 -I/opt/xensource/lib/ocaml
@@ -18,7 +19,7 @@ INTF = $(foreach obj, $(LIBOBJS),$(obj).cmi)
1819
CMDOBJS = messages.cmx mlvm.cmx
1920
OCAMLC = ocamlfind ocamlc -g
2021
OCAMLOPT = ocamlfind ocamlopt
21-
COMPFLAG = -dtypes -g -I ../stdext -I ../camldm -I ../uuid -for-pack Lvm -pp '${PP}' -I ../rpc-light
22+
COMPFLAG = -dtypes -g -I ../stdext -I ../camldm $(OCAML_UUID_INC) -for-pack Lvm -pp '${PP}' -I ../rpc-light
2223

2324
LIBS = lvm.cma lvm.cmxa
2425

@@ -27,7 +28,7 @@ DOCDIR = /myrepos/xen-api-libs/doc
2728
default : $(LIBS)
2829

2930
test_allocator: default
30-
$(OCAMLOPT) -package kaputt -linkpkg -dtypes -g -I ../stdext -I ../camldm -I ../uuid -I +kaputt unix.cmxa ../rpc-light/rpc.cmx ../rpc-light/jsonrpc.cmx ../camldm/camldm.cmxa ../uuid/uuid.cmxa ../stdext/stdext.cmxa ./lvm.cmxa test_allocator.ml -o $@
31+
$(OCAMLOPT) -package kaputt -linkpkg -dtypes -g -I ../stdext -I ../camldm $(OCAML_UUID_INC) -I +kaputt unix.cmxa ../rpc-light/rpc.cmx ../rpc-light/jsonrpc.cmx ../camldm/camldm.cmxa $(OCAML_UUID_DIR)/uuid.cmxa ../stdext/stdext.cmxa ./lvm.cmxa test_allocator.ml -o $@
3132

3233
lvm.cmx: $(foreach obj,$(LIBOBJS),$(obj).cmx)
3334
$(OCAMLOPT) -pack -g -o $@ $(foreach obj,$(LIBOBJS),$(obj).cmx)

mmap/Makefile

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
include ../config.mk
2+
13
CC = gcc
24
CFLAGS = -Wall -fPIC -O2 -I/usr/lib/ocaml
35
OCAMLC = ocamlc -g

netdev/Makefile

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
include ../config.mk
2+
13
CC = gcc
24
CFLAGS = -Wall -fPIC -O2 -I/usr/lib/ocaml
35
OCAMLC = ocamlc -g

pciutil/Makefile

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
include ../config.mk
2+
13
IPROG=install -m 755
24
CC = gcc
35
CFLAGS = -Wall -fPIC -O2 -I/opt/xensource/lib/ocaml
@@ -29,7 +31,7 @@ bins: $(PROGRAMS)
2931
libs: $(LIBS)
3032

3133
pciutil: pciutil_main.cmx
32-
$(OCAMLOPT) $(OCAMLOPTFLAGS) -I ./ -I ../stdext -I ../uuid unix.cmxa uuid.cmxa stdext.cmxa pciutil.cmx -o $@ $^
34+
$(OCAMLOPT) $(OCAMLOPTFLAGS) -I ./ -I ../stdext $(OCAML_UUID_INC) unix.cmxa uuid.cmxa stdext.cmxa pciutil.cmx -o $@ $^
3335

3436
pciutil.cmxa: $(foreach obj,$(OBJS),$(obj).cmx)
3537
$(OCAMLOPT) $(OCAMLOPTFLAGS) -a -o $@ $(foreach obj,$(OBJS),$(obj).cmx)

rpc-light/Makefile

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
include ../config.mk
2+
13
OCAMLC = ocamlfind ocamlc
24
OCAMLOPT = ocamlfind ocamlopt
35
OCAMLFLAGS = -annot -g

rss/Makefile

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
include ../config.mk
2+
13
CC = gcc
24
CFLAGS = -Wall -fPIC -O2 -I/opt/xensource/lib/ocaml
35
OCAMLC = ocamlc -g

sexpr/Makefile

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
include ../config.mk
2+
13
IPROG=install -m 755
24
CC = gcc
35
CFLAGS = -Wall -fPIC -O2 -I/opt/xensource/lib/ocaml

0 commit comments

Comments
 (0)