Version 0.2.0.
[virt-dmesg.git] / src / Makefile.am
1 # virt-dmesg
2 # Copyright (C) 2008-2011 Red Hat Inc.
3 #
4 # This program is free software; you can redistribute it and/or modify
5 # it under the terms of the GNU General Public License as published by
6 # the Free Software Foundation; either version 2 of the License, or
7 # (at your option) any later version.
8 #
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 # GNU General Public License for more details.
13 #
14 # You should have received a copy of the GNU General Public License
15 # along with this program; if not, write to the Free Software
16 # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
17
18 bin_SCRIPTS = virt-dmesg
19
20 # In alphabetical order.  Includes *.mli files.
21 SOURCES = \
22         config.ml \
23         counter.ml \
24         counter.mli \
25         c_utils.c \
26         kernel.ml \
27         kernel.mli \
28         kallsyms.ml \
29         kallsyms.mli \
30         ksyms.ml \
31         ksyms.mli \
32         main.ml \
33         search.ml \
34         search.mli \
35         utils.ml \
36         utils.mli
37
38 # In build dependency order.
39 OBJECTS = \
40         c_utils.o \
41         config.cmo \
42         counter.cmo \
43         utils.cmo \
44         kernel.cmo \
45         ksyms.cmo \
46         kallsyms.cmo \
47         search.cmo \
48         main.cmo
49
50 if HAVE_OCAMLOPT
51 XOBJECTS = $(OBJECTS:.cmo=.cmx)
52 endif
53
54 OCAMLPACKAGES = -package unix,libvirt
55 OCAMLCFLAGS   = -g -warn-error CDEFLMPSUVYZX
56 OCAMLOPTFLAGS = -warn-error CDEFLMPSUVYZX
57 OCAMLCLIBS    = -linkpkg -cclib -lz
58 OCAMLOPTLIBS  = -linkpkg -cclib -lz
59
60 if PROFILING
61 # ocamlc doesn't support gprof
62 OCAMLOPTFLAGS += -p
63 PROF_CFLAGS   = -pg
64 endif
65
66 EXTRA_DIST = $(SOURCES)
67
68 if HAVE_OCAMLOPT
69 virt-dmesg: $(XOBJECTS)
70         ocamlfind opt $(OCAMLOPTFLAGS) $(OCAMLPACKAGES) $(OCAMLOPTLIBS) \
71             -o $@ $^
72 else
73 virt-dmesg: $(OBJECTS)
74         ocamlfind c $(OCAMLCFLAGS) $(OCAMLPACKAGES) $(OCAMLCLIBS) \
75             -o $@ $^
76 endif
77
78 .mli.cmi:
79         $(OCAMLFIND) c $(OCAMLCFLAGS) $(OCAMLPACKAGES) -c $<
80 .ml.cmo:
81         $(OCAMLFIND) c $(OCAMLCFLAGS) $(OCAMLPACKAGES) -c $<
82 .ml.cmx:
83         $(OCAMLFIND) opt $(OCAMLOPTFLAGS) $(OCAMLPACKAGES) -c $<
84
85 # automake will decide we don't need C support in this file.  Really
86 # we do, so we have to provide it ourselves.
87
88 DEFAULT_INCLUDES = -I. -I$(top_builddir) -I$(shell $(OCAMLC) -where)
89
90 .c.o:
91         $(CC) $(CFLAGS) $(PROF_CFLAGS) $(DEFAULT_INCLUDES) -c $< -o $@
92
93 SUFFIXES = .cmo .cmi .cmx .ml .mli
94
95 # Dependencies.
96
97 depend: .depend
98
99 .depend: $(wildcard *.mli) $(wildcard *.ml)
100         rm -f .depend
101         $(OCAMLFIND) ocamldep $(OCAMLCPACKAGES) $(OCAMLDEPFLAGS) $^ > $@-t
102         mv $@-t $@
103
104 include .depend
105
106 # Clean.
107
108 CLEANFILES = *~ *.o *.cmi *.cmo *.cmx virt-dmesg
109
110 # Link virt-uname to virt-dmesg when installing.
111
112 install-exec-hook:
113         ln $(DESTDIR)$(bindir)/virt-dmesg$(EXEEXT) \
114            $(DESTDIR)$(bindir)/virt-uname$(EXEEXT)