extra-tests: Add an extra suppression for OCaml 3.11.2 in RHEL 6.
[libguestfs.git] / fish / Makefile.am
1 # libguestfs
2 # Copyright (C) 2009-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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17
18 include $(top_srcdir)/subdir-rules.mk
19
20 CLEANFILES = \
21         stamp-guestfish.pod \
22         stamp-virt-copy-in.pod \
23         stamp-virt-copy-out.pod \
24         stamp-virt-tar-in.pod \
25         stamp-virt-tar-out.pod
26
27 bin_PROGRAMS = guestfish
28
29 generator_built = \
30         cmds.c \
31         cmds_gperf.gperf \
32         completion.c \
33         event-names.c \
34         fish-cmds.h \
35         guestfish-actions.pod \
36         guestfish-commands.pod \
37         prepopts.h \
38         prepopts.c
39
40 BUILT_SOURCES = \
41         $(generator_built) \
42         cmds_gperf.c \
43         rc_protocol.h \
44         rc_protocol.c
45
46 EXTRA_DIST = \
47         $(BUILT_SOURCES) \
48         rc_protocol.x \
49         guestfish.pod \
50         guestfish-bash-completion.sh \
51         libguestfs-tools.conf \
52         virt-copy-in \
53         virt-copy-out \
54         virt-tar-in \
55         virt-tar-out \
56         virt-copy-in.pod \
57         virt-copy-out.pod \
58         virt-tar-in.pod \
59         virt-tar-out.pod
60
61 # These source files (mostly related to option parsing) are shared
62 # between guestfish, guestmount and some other virt tools.  Keep a
63 # convenient list here just so we know which ones are shared.  These
64 # files must not include other guestfish files.
65 SHARED_SOURCE_FILES = \
66         config.c \
67         inspect.c \
68         keys.c \
69         options.h \
70         options.c \
71         progress.h \
72         progress.c \
73         virt.c
74
75 guestfish_SOURCES = \
76         $(generator_built) \
77         $(SHARED_SOURCE_FILES) \
78         alloc.c \
79         cmds_gperf.h \
80         copy.c \
81         destpaths.c \
82         display.c \
83         echo.c \
84         edit.c \
85         events.c \
86         fish.c \
87         fish.h \
88         glob.c \
89         help.c \
90         hexedit.c \
91         lcd.c \
92         man.c \
93         more.c \
94         prep.c \
95         prep_disk.c \
96         prep_part.c \
97         prep_fs.c \
98         prep_lv.c \
99         prep_boot.c \
100         rc.c \
101         reopen.c \
102         setenv.c \
103         supported.c \
104         tilde.c \
105         time.c
106
107 # This convenience library is solely to compile its generated sources with
108 # custom flags.
109 librc_protocol_la_SOURCES = rc_protocol.c rc_protocol.h
110 librc_protocol_la_CFLAGS = -Wall -Wno-unused -fno-strict-aliasing
111
112 # Build the command lookup perfect hash code.  The generated code has
113 # lots of warnings so we must compile it in a separate mini-library.
114 libcmds_la_SOURCES = cmds_gperf.c
115 libcmds_la_CFLAGS =
116
117 cmds_gperf.c: cmds_gperf.gperf
118         rm -f $@
119         $(GPERF) -t $< > $@-t
120         mv $@-t $@
121
122 guestfish_CFLAGS = \
123         -DGUESTFS_WARN_DEPRECATED=1 \
124         -I$(top_srcdir)/src -I$(top_builddir)/src \
125         -I$(top_srcdir)/fish -I$(top_builddir)/fish \
126         -DLOCALEBASEDIR=\""$(datadir)/locale"\" \
127         -I$(srcdir)/../gnulib/lib -I../gnulib/lib \
128         $(WARN_CFLAGS) $(WERROR_CFLAGS) \
129         $(LIBCONFIG_CFLAGS)
130
131 guestfish_LDADD = \
132         $(LIBCONFIG_LIBS) \
133         $(LIBREADLINE) \
134         $(top_builddir)/src/libguestfs.la -lm
135
136 # Make guestfish use the convenience libraries.
137 noinst_LTLIBRARIES = libcmds.la librc_protocol.la
138 guestfish_LDADD += libcmds.la librc_protocol.la ../gnulib/lib/libgnu.la
139
140 if HAVE_RPCGEN
141 rc_protocol.c: rc_protocol.x
142         rm -f $@-t $@-t2
143         $(RPCGEN) -c -o $@-t $<
144         sed 's,\.\./\(\.\./\)*fish,.,' < $@-t > $@-t2
145         rm $@-t
146         mv $@-t2 $@
147
148 rc_protocol.h: rc_protocol.x
149         rm -f $@-t
150         $(RPCGEN) -h -o $@-t $<
151         mv $@-t $@
152 endif
153
154 # Script wrappers.
155
156 bin_SCRIPTS = virt-copy-in virt-copy-out virt-tar-in virt-tar-out
157
158 # Manual pages.
159
160 man_MANS = \
161         guestfish.1 \
162         virt-copy-in.1 \
163         virt-copy-out.1 \
164         virt-tar-in.1 \
165         virt-tar-out.1
166 noinst_DATA = \
167         $(top_builddir)/html/guestfish.1.html \
168         $(top_builddir)/html/virt-copy-in.1.html \
169         $(top_builddir)/html/virt-copy-out.1.html \
170         $(top_builddir)/html/virt-tar-in.1.html \
171         $(top_builddir)/html/virt-tar-out.1.html
172
173 guestfish.1 $(top_builddir)/html/guestfish.1.html: stamp-guestfish.pod
174
175 stamp-guestfish.pod: guestfish.pod guestfish-actions.pod guestfish-commands.pod
176         $(top_builddir)/podwrapper.sh \
177           --man guestfish.1 \
178           --html $(top_builddir)/html/guestfish.1.html \
179           --insert $(srcdir)/guestfish-actions.pod:@ACTIONS@ \
180           --insert $(srcdir)/guestfish-commands.pod:@FISH_COMMANDS@ \
181           $<
182         touch $@
183
184 virt-copy-in.1 $(top_builddir)/html/virt-copy-in.1.html: stamp-virt-copy-in.pod
185
186 stamp-virt-copy-in.pod: virt-copy-in.pod
187         $(top_builddir)/podwrapper.sh \
188           --man virt-copy-in.1 \
189           --html $(top_builddir)/html/virt-copy-in.1.html \
190           $<
191         touch $@
192
193 virt-copy-out.1 $(top_builddir)/html/virt-copy-out.1.html: stamp-virt-copy-out.pod
194
195 stamp-virt-copy-out.pod: virt-copy-out.pod
196         $(top_builddir)/podwrapper.sh \
197           --man virt-copy-out.1 \
198           --html $(top_builddir)/html/virt-copy-out.1.html \
199           $<
200         touch $@
201
202 virt-tar-in.1 $(top_builddir)/html/virt-tar-in.1.html: stamp-virt-tar-in.pod
203
204 stamp-virt-tar-in.pod: virt-tar-in.pod
205         $(top_builddir)/podwrapper.sh \
206           --man virt-tar-in.1 \
207           --html $(top_builddir)/html/virt-tar-in.1.html \
208           $<
209         touch $@
210
211 virt-tar-out.1 $(top_builddir)/html/virt-tar-out.1.html: stamp-virt-tar-out.pod
212
213 stamp-virt-tar-out.pod: virt-tar-out.pod
214         $(top_builddir)/podwrapper.sh \
215           --man virt-tar-out.1 \
216           --html $(top_builddir)/html/virt-tar-out.1.html \
217           $<
218         touch $@
219
220 # libguestfs tools config file.
221
222 toolsconfdir = $(sysconfdir)
223 toolsconf_DATA = libguestfs-tools.conf
224
225 # Bash completion script.
226
227 bashcompletiondir = $(sysconfdir)/bash_completion.d
228 bashcompletion_DATA = guestfish-bash-completion.sh