boot: Add --console and --viewer parameters.
[mclu.git] / Makefile.am
1 # mclu: Mini Cloud
2 # Copyright (C) 2014-2015 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17
18 CLEANFILES = *~ *.cmi *.cmo *.cmx
19
20 ACLOCAL_AMFLAGS = -I m4
21
22 EXTRA_DIST = \
23         $(SOURCES_MLI) \
24         $(SOURCES_ML) \
25         templates/rawhide.sh
26
27 # In alphabetical order.
28 SOURCES_MLI = \
29         mclu_boot.mli \
30         mclu_conf.mli \
31         mclu_console.mli \
32         mclu_destroy.mli \
33         mclu_list.mli \
34         mclu_onoff.mli \
35         mclu_reboot.mli \
36         mclu_status.mli \
37         mclu_viewer.mli \
38         parallel.mli \
39         template.mli \
40         utils.mli
41
42 # These must appear in dependency order.
43 SOURCES_ML = \
44         config.ml \
45         utils.ml \
46         parallel.ml \
47         template.ml \
48         mclu_conf.ml \
49         mclu_list.ml \
50         mclu_status.ml \
51         mclu_onoff.ml \
52         mclu_destroy.ml \
53         mclu_reboot.ml \
54         mclu_console.ml \
55         mclu_viewer.ml \
56         mclu_boot.ml \
57         mclu.ml
58
59 OCAMLPACKAGES = -package unix,pcre,libvirt
60 OCAMLFLAGS = -g -warn-error CDEFLMPSUVYZX-3
61
62 BOBJECTS = $(SOURCES_ML:.ml=.cmo)
63 XOBJECTS = $(BOBJECTS:.cmo=.cmx)
64 if !HAVE_OCAMLOPT
65 OBJECTS  = $(BOBJECTS)
66 BEST     = ocamlc
67 else
68 OBJECTS  = $(XOBJECTS)
69 BEST     = ocamlopt
70 endif
71
72 bin_PROGRAMS = mclu
73 # Since there are no real C sources (at least, not yet) we have a
74 # token C file that is empty, just to keep automake happy.  The real
75 # sources are *.ml files.
76 mclu_SOURCES = empty.c
77 mclu_DEPENDENCIES = $(OBJECTS)
78 mclu_LINK = \
79         ./link.sh \
80           $(OCAMLFIND) $(BEST) $(OCAMLFLAGS) $(OCAMLPACKAGES) \
81           $(OBJECTS) -o $@
82
83 .mli.cmi:
84         $(OCAMLFIND) ocamlc $(OCAMLFLAGS) $(OCAMLPACKAGES) -c $< -o $@
85 .ml.cmo:
86         $(OCAMLFIND) ocamlc $(OCAMLFLAGS) $(OCAMLPACKAGES) -c $< -o $@
87 if HAVE_OCAMLOPT
88 .ml.cmx:
89         $(OCAMLFIND) ocamlopt $(OCAMLFLAGS) $(OCAMLPACKAGES) -c $< -o $@
90 endif
91
92 # Dependencies.
93 depend: .depend
94
95 .depend: $(SOURCES_MLI) $(SOURCES_ML)
96         rm -f $@ $@-t
97         $(OCAMLFIND) ocamldep -I $(abs_srcdir) -I . $^ | \
98           $(SED) 's/ *$$//' | \
99           $(SED) -e :a -e '/ *\\$$/N; s/ *\\\n */ /; ta' | \
100           $(SED) -e 's,$(abs_srcdir)/,$(builddir)/,g' | \
101           sort > $@-t
102         mv $@-t $@
103
104 -include .depend
105
106 DISTCLEANFILES = .depend
107 .PHONY: depend
108
109 # Configuration file.
110 sysconf_DATA = mclu.conf
111
112 # Documentation.
113 man_MANS = mclu.1
114
115 mclu.1: mclu.pod
116         $(POD2MAN) \
117             -c "Virtualization Support" \
118             --release "$(PACKAGE)-$(VERSION)" \
119             $< > $@-t
120         mv $@-t $@