47
43
noinst_DATA = mlguestfs.cma mlguestfs.cmxa META
49
OBJS = guestfs_c.o guestfs_c_actions.o guestfs.cmo
50
XOBJS = $(OBJS:.cmo=.cmx)
52
mlguestfs.cma: $(OBJS)
53
$(OCAMLMKLIB) -o mlguestfs $^ -L$(top_builddir)/src/.libs -lguestfs
55
mlguestfs.cmxa: $(XOBJS)
56
$(OCAMLMKLIB) -o mlguestfs $^ -L$(top_builddir)/src/.libs -lguestfs
58
guestfs_c.o: guestfs_c.c
59
$(CC) $(AM_CPPFLAGS) $(CFLAGS) -fPIC -Wall -c $<
61
guestfs_c_actions.o: guestfs_c_actions.c
62
$(CC) $(AM_CPPFLAGS) $(CFLAGS) -fPIC -Wall -c $(srcdir)/$<
45
# Build the C part into a library, so that automake handles the C
46
# compilation step for us. Note that we don't directly use this
47
# library; we link with the object files that it generates.
48
noinst_LIBRARIES = libguestfsocaml.a
50
mlguestfs.cma: libguestfsocaml.a guestfs.cmo
51
$(OCAMLMKLIB) -o mlguestfs \
52
$(libguestfsocaml_a_OBJECTS) guestfs.cmo \
53
-L$(top_builddir)/src/.libs -lguestfs
55
mlguestfs.cmxa: libguestfsocaml.a guestfs.cmx
56
$(OCAMLMKLIB) -o mlguestfs \
57
$(libguestfsocaml_a_OBJECTS) guestfs.cmx \
58
-L$(top_builddir)/src/.libs -lguestfs
60
libguestfsocaml_a_CFLAGS = \
61
-I$(top_builddir) -I$(OCAMLLIB) -I$(top_srcdir)/ocaml \
62
-I$(top_srcdir)/src -I$(top_builddir)/src \
63
$(WARN_CFLAGS) $(WERROR_CFLAGS) \
65
libguestfsocaml_a_SOURCES = guestfs_c.c guestfs_c_actions.c
73
76
TESTS_ENVIRONMENT = \
74
LD_LIBRARY_PATH=$(top_builddir)/src/.libs \
75
LIBGUESTFS_PATH=$(top_builddir)/appliance \
76
TMPDIR=$(top_builddir) \
77
CAML_LD_LIBRARY_PATH=. \
79
TESTS = run-bindtests \
80
82
t/guestfs_005_load \
81
83
t/guestfs_080_optargs \
82
84
t/guestfs_400_events
84
86
if ENABLE_APPLIANCE
85
TESTS += t/guestfs_010_basic \
86
t/guestfs_070_threads \
87
t/guestfs_400_progress
90
noinst_DATA += bindtests \
92
88
t/guestfs_010_basic \
93
89
t/guestfs_070_threads \
94
t/guestfs_080_optargs \
95
t/guestfs_400_events \
96
90
t/guestfs_400_progress
98
bindtests: bindtests.cmx mlguestfs.cmxa
100
$(OCAMLFIND) ocamlopt $(OCAMLOPTFLAGS) -cclib -L$(top_builddir)/src/.libs -I . -package unix -linkpkg mlguestfs.cmxa $< -o $@
102
t/guestfs_005_load: t/guestfs_005_load.cmx mlguestfs.cmxa
104
$(OCAMLFIND) ocamlopt $(OCAMLOPTFLAGS) -cclib -L$(top_builddir)/src/.libs -I . -package unix -linkpkg mlguestfs.cmxa $< -o $@
106
t/guestfs_010_basic: t/guestfs_010_basic.cmx mlguestfs.cmxa
108
$(OCAMLFIND) ocamlopt $(OCAMLOPTFLAGS) -cclib -L$(top_builddir)/src/.libs -I . -package unix -linkpkg mlguestfs.cmxa $< -o $@
110
t/guestfs_070_threads: t/guestfs_070_threads.cmx mlguestfs.cmxa
93
TESTS = run-bindtests \
95
$(patsubst %,%.bc,$(test_progs)) \
96
$(patsubst %,%.opt,$(test_progs)))
99
bindtests.bc bindtests.opt \
100
$(test_progs:%=%.bc) \
101
$(test_progs:%=%.opt)
103
bindtests.bc: bindtests.cmo mlguestfs.cma
105
LD_LIBRARY_PATH=../src/.libs \
106
$(OCAMLFIND) ocamlc $(OCAMLCFLAGS) -I . -package unix -linkpkg mlguestfs.cma $< -o $@
108
bindtests.opt: bindtests.cmx mlguestfs.cmxa
110
$(OCAMLFIND) ocamlopt $(OCAMLOPTFLAGS) -cclib -L$(top_builddir)/src/.libs -I . -package unix -linkpkg mlguestfs.cmxa $< -o $@
112
t/guestfs_005_load.bc: t/guestfs_005_load.cmo mlguestfs.cma
114
LD_LIBRARY_PATH=../src/.libs \
115
$(OCAMLFIND) ocamlc $(OCAMLCFLAGS) -I . -package unix -linkpkg mlguestfs.cma $< -o $@
117
t/guestfs_005_load.opt: t/guestfs_005_load.cmx mlguestfs.cmxa
119
$(OCAMLFIND) ocamlopt $(OCAMLOPTFLAGS) -cclib -L$(top_builddir)/src/.libs -I . -package unix -linkpkg mlguestfs.cmxa $< -o $@
121
t/guestfs_010_basic.bc: t/guestfs_010_basic.cmo mlguestfs.cma
123
LD_LIBRARY_PATH=../src/.libs \
124
$(OCAMLFIND) ocamlc $(OCAMLCFLAGS) -I . -package unix -linkpkg mlguestfs.cma $< -o $@
126
t/guestfs_010_basic.opt: t/guestfs_010_basic.cmx mlguestfs.cmxa
128
$(OCAMLFIND) ocamlopt $(OCAMLOPTFLAGS) -cclib -L$(top_builddir)/src/.libs -I . -package unix -linkpkg mlguestfs.cmxa $< -o $@
130
t/guestfs_070_threads.bc: t/guestfs_070_threads.cmo mlguestfs.cma
132
LD_LIBRARY_PATH=../src/.libs \
133
$(OCAMLFIND) ocamlc $(OCAMLCFLAGS) -I . -package unix,threads -thread -linkpkg mlguestfs.cma $< -o $@
135
t/guestfs_070_threads.opt: t/guestfs_070_threads.cmx mlguestfs.cmxa
112
137
$(OCAMLFIND) ocamlopt $(OCAMLOPTFLAGS) -cclib -L$(top_builddir)/src/.libs -I . -package unix,threads -thread -linkpkg mlguestfs.cmxa $< -o $@
114
t/guestfs_080_optargs: t/guestfs_080_optargs.cmx mlguestfs.cmxa
116
$(OCAMLFIND) ocamlopt $(OCAMLOPTFLAGS) -cclib -L$(top_builddir)/src/.libs -I . -package unix -linkpkg mlguestfs.cmxa $< -o $@
118
t/guestfs_400_events: t/guestfs_400_events.cmx mlguestfs.cmxa
120
$(OCAMLFIND) ocamlopt $(OCAMLOPTFLAGS) -cclib -L$(top_builddir)/src/.libs -I . -package unix -linkpkg mlguestfs.cmxa $< -o $@
122
t/guestfs_400_progress: t/guestfs_400_progress.cmx mlguestfs.cmxa
124
$(OCAMLFIND) ocamlopt $(OCAMLOPTFLAGS) -cclib -L$(top_builddir)/src/.libs -I . -package unix -linkpkg mlguestfs.cmxa $< -o $@
126
# Need to rebuild the tests from source if the main library has
127
# changed at all, otherwise we get inconsistent assumptions.
139
t/guestfs_080_optargs.bc: t/guestfs_080_optargs.cmo mlguestfs.cma
141
LD_LIBRARY_PATH=../src/.libs \
142
$(OCAMLFIND) ocamlc $(OCAMLCFLAGS) -I . -package unix -linkpkg mlguestfs.cma $< -o $@
144
t/guestfs_080_optargs.opt: t/guestfs_080_optargs.cmx mlguestfs.cmxa
146
$(OCAMLFIND) ocamlopt $(OCAMLOPTFLAGS) -cclib -L$(top_builddir)/src/.libs -I . -package unix -linkpkg mlguestfs.cmxa $< -o $@
148
t/guestfs_400_events.bc: t/guestfs_400_events.cmo mlguestfs.cma
150
LD_LIBRARY_PATH=../src/.libs \
151
$(OCAMLFIND) ocamlc $(OCAMLCFLAGS) -I . -package unix -linkpkg mlguestfs.cma $< -o $@
153
t/guestfs_400_events.opt: t/guestfs_400_events.cmx mlguestfs.cmxa
155
$(OCAMLFIND) ocamlopt $(OCAMLOPTFLAGS) -cclib -L$(top_builddir)/src/.libs -I . -package unix -linkpkg mlguestfs.cmxa $< -o $@
157
t/guestfs_400_progress.bc: t/guestfs_400_progress.cmo mlguestfs.cma
159
LD_LIBRARY_PATH=../src/.libs \
160
$(OCAMLFIND) ocamlc $(OCAMLCFLAGS) -I . -package unix -linkpkg mlguestfs.cma $< -o $@
162
t/guestfs_400_progress.opt: t/guestfs_400_progress.cmx mlguestfs.cmxa
164
$(OCAMLFIND) ocamlopt $(OCAMLOPTFLAGS) -cclib -L$(top_builddir)/src/.libs -I . -package unix -linkpkg mlguestfs.cmxa $< -o $@
166
# Explicit rules for this test which requires 'threads' package.
167
t/guestfs_070_threads.cmo: t/guestfs_070_threads.ml mlguestfs.cma
168
$(OCAMLFIND) ocamlc $(OCAMLCFLAGS) -package unix,threads -thread -linkpkg -c $< -o $@
128
170
t/guestfs_070_threads.cmx: t/guestfs_070_threads.ml mlguestfs.cmxa
129
171
$(OCAMLFIND) ocamlopt $(OCAMLOPTFLAGS) -package unix,threads -thread -linkpkg -c $< -o $@
131
t/%.cmx: t/%.ml mlguestfs.cmxa
132
$(OCAMLFIND) ocamlopt $(OCAMLOPTFLAGS) -package unix -linkpkg -c $< -o $(builddir)/$@
135
174
$(OCAMLFIND) ocamlc $(OCAMLCFLAGS) -package unix -c $< -o $(builddir)/$@
175
%.cmo: %.ml mlguestfs.cma
137
176
$(OCAMLFIND) ocamlc $(OCAMLCFLAGS) -package unix -c $< -o $(builddir)/$@
177
%.cmx: %.ml mlguestfs.cmxa
139
178
$(OCAMLFIND) ocamlopt $(OCAMLOPTFLAGS) -package unix -c $< -o $(builddir)/$@
143
.depend: $(wildcard *.mli) $(wildcard *.ml)
182
.depend: $(wildcard $(abs_srcdir)/*.mli) $(wildcard $(abs_srcdir)/*.ml)
145
$(OCAMLFIND) ocamldep $^ | \
146
$(SED) -e 's/ *$$//' | \
184
$(OCAMLFIND) ocamldep -I ../ocaml -I $(abs_srcdir) $^ | \
185
$(SED) 's/ *$$//' | \
147
186
$(SED) -e :a -e '/ *\\$$/N; s/ *\\\n */ /; ta' | \
187
$(SED) -e 's,$(abs_srcdir)/,$(builddir)/,g' | \
153
193
SUFFIXES = .cmo .cmi .cmx .ml .mli .mll .mly