Version 0.2.0.
[virt-dmesg.git] / src / Makefile.am
index c8683d7..245f2f8 100644 (file)
 # 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)