# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-bin_PROGRAMS = virt-dmesg
-virt_dmesg_SOURCES = \
- main.c
+bin_SCRIPTS = virt-dmesg
-virt_dmesg_CFLAGS = $(LIBVIRT_CFLAGS)
+# In alphabetical order. Includes *.mli files.
+SOURCES = \
+ config.ml \
+ counter.ml \
+ counter.mli \
+ c_utils.c \
+ kernel.ml \
+ kernel.mli \
+ kallsyms.ml \
+ kallsyms.mli \
+ ksyms.ml \
+ ksyms.mli \
+ main.ml \
+ search.ml \
+ search.mli \
+ utils.ml \
+ utils.mli
-virt_dmesg_LDADD = $(LIBVIRT_LIBS)
+# In build dependency order.
+OBJECTS = \
+ c_utils.o \
+ config.cmo \
+ counter.cmo \
+ utils.cmo \
+ kernel.cmo \
+ ksyms.cmo \
+ kallsyms.cmo \
+ search.cmo \
+ main.cmo
+
+if HAVE_OCAMLOPT
+XOBJECTS = $(OBJECTS:.cmo=.cmx)
+endif
+
+OCAMLPACKAGES = -package unix,libvirt
+OCAMLCFLAGS = -g -warn-error CDEFLMPSUVYZX
+OCAMLOPTFLAGS = -warn-error CDEFLMPSUVYZX
+OCAMLCLIBS = -linkpkg -cclib -lz
+OCAMLOPTLIBS = -linkpkg -cclib -lz
+
+if PROFILING
+# ocamlc doesn't support gprof
+OCAMLOPTFLAGS += -p
+PROF_CFLAGS = -pg
+endif
+
+EXTRA_DIST = $(SOURCES)
+
+if HAVE_OCAMLOPT
+virt-dmesg: $(XOBJECTS)
+ ocamlfind opt $(OCAMLOPTFLAGS) $(OCAMLPACKAGES) $(OCAMLOPTLIBS) \
+ -o $@ $^
+else
+virt-dmesg: $(OBJECTS)
+ ocamlfind c $(OCAMLCFLAGS) $(OCAMLPACKAGES) $(OCAMLCLIBS) \
+ -o $@ $^
+endif
+
+.mli.cmi:
+ $(OCAMLFIND) c $(OCAMLCFLAGS) $(OCAMLPACKAGES) -c $<
+.ml.cmo:
+ $(OCAMLFIND) c $(OCAMLCFLAGS) $(OCAMLPACKAGES) -c $<
+.ml.cmx:
+ $(OCAMLFIND) opt $(OCAMLOPTFLAGS) $(OCAMLPACKAGES) -c $<
+
+# automake will decide we don't need C support in this file. Really
+# we do, so we have to provide it ourselves.
+
+DEFAULT_INCLUDES = -I. -I$(top_builddir) -I$(shell $(OCAMLC) -where)
+
+.c.o:
+ $(CC) $(CFLAGS) $(PROF_CFLAGS) $(DEFAULT_INCLUDES) -c $< -o $@
+
+SUFFIXES = .cmo .cmi .cmx .ml .mli
+
+# Dependencies.
+
+depend: .depend
+
+.depend: $(wildcard *.mli) $(wildcard *.ml)
+ rm -f .depend
+ $(OCAMLFIND) ocamldep $(OCAMLCPACKAGES) $(OCAMLDEPFLAGS) $^ > $@-t
+ mv $@-t $@
+
+include .depend
+
+# Clean.
+
+CLEANFILES = *~ *.o *.cmi *.cmo *.cmx virt-dmesg
+
+# Link virt-uname to virt-dmesg when installing.
+
+install-exec-hook:
+ ln $(DESTDIR)$(bindir)/virt-dmesg$(EXEEXT) \
+ $(DESTDIR)$(bindir)/virt-uname$(EXEEXT)