4aa0e48337649e60d1a4bcc69c4ad42eae9268b9
[virt-df.git] / lib / Makefile.in
1 # Diskimage library.
2 # @configure_input@
3 # Copyright (C) 2008 Red Hat Inc., Richard W.M. Jones
4 #
5 # This program is free software; you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; either version 2 of the License, or
8 # (at your option) any later version.
9 #
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 # GNU General Public License for more details.
14 #
15 # You should have received a copy of the GNU General Public License
16 # along with this program; if not, write to the Free Software
17 # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18
19 PACKAGE         := @PACKAGE_NAME@
20 VERSION         := @PACKAGE_VERSION@
21
22 INSTALL         := @INSTALL@
23 HAVE_PERLDOC    := @HAVE_PERLDOC@
24
25 OCAML_WORD_SIZE := @OCAML_WORD_SIZE@
26
27 prefix          = @prefix@
28 exec_prefix     = @exec_prefix@
29 bindir          = @bindir@
30
31 #OCAMLCPACKAGES := -package unix,extlib,bitmatch
32 OCAMLCPACKAGES  := -package unix,extlib -I +bitmatch
33
34 #----------------------------------------------------------------------
35 # Build up the list of object files.
36
37 OBJS            := int63.cmo \
38                    diskimage_impl.cmo
39
40 # Plugin objects.
41 OBJS            += diskimage_ext2.cmo \
42                    diskimage_linux_swap.cmo \
43                    diskimage_linux_swsuspend.cmo \
44                    diskimage_lvm2_metadata.cmo \
45                    diskimage_lvm2_parser.cmo \
46                    diskimage_lvm2_lexer.cmo \
47                    diskimage_lvm2.cmo \
48                    diskimage_mbr.cmo
49
50 OBJS            += diskimage.cmo
51
52 XOBJS           := $(OBJS:.cmo=.cmx)
53
54 #----------------------------------------------------------------------
55
56 SYNTAX          := -pp "camlp4o -I`ocamlc -where`/bitmatch pa_bitmatch.cmo"
57
58 OCAMLCFLAGS     := @OCAMLCFLAGS@ $(SYNTAX)
59 #OCAMLCLIBS     := -linkpkg
60 OCAMLCLIBS      := -linkpkg bitmatch.cma
61
62 OCAMLOPTPACKAGES := $(OCAMLCPACKAGES)
63 OCAMLOPTFLAGS   := @OCAMLOPTFLAGS@ $(SYNTAX)
64 #OCAMLOPTLIBS   := $(OCAMLCLIBS)
65 OCAMLOPTLIBS    := -linkpkg bitmatch.cmxa
66
67 OCAMLDEPFLAGS   := $(SYNTAX)
68
69 OCAMLDOCFLAGS   += $(SYNTAX) -I +extlib -I +bitmatch
70 OCAMLDOCFILES   := int63.mli diskimage.mli
71
72 BYTE_TARGETS    := diskimage.cma
73 OPT_TARGETS     := diskimage.cmxa
74
75 all: $(BYTE_TARGETS)
76
77 opt: $(OPT_TARGETS)
78
79 diskimage.cma: $(OBJS)
80         ocamlfind ocamlc $(OCAMLCPACKAGES) $(OCAMLCFLAGS) $(OCAMLCLIBS) \
81           -a -o $@ $^
82
83 diskimage.cmxa: $(XOBJS)
84         ocamlfind ocamlopt \
85           $(OCAMLOPTPACKAGES) $(OCAMLOPTFLAGS) \
86           -a -o $@ $^
87
88 # 'make depend' doesn't catch these dependencies because the .mli file
89 # is auto-generated.
90 diskimage_lvm2_parser.cmo: diskimage_lvm2_parser.cmi
91 diskimage_lvm2_parser.cmx: diskimage_lvm2_parser.cmi
92 diskimage_lvm2_parser.cmi: diskimage_lvm2_parser.mli
93
94 # Int63 module is defined differently on 32 and 64 bit platforms.
95 int63.ml: int63_on_$(OCAML_WORD_SIZE).ml Makefile
96         rm -f $@
97         echo "(* WARNING: THIS FILE IS GENERATED FROM $< *)" | \
98         cat - $< > $@
99
100 int63.mli: int63_on_$(OCAML_WORD_SIZE).mli Makefile
101         rm -f $@
102         echo "(* WARNING: THIS FILE IS GENERATED FROM $< *)" | \
103         cat - $< > $@
104
105 int63.cmo: int63.cmi
106 int63.cmx: int63.cmi
107 int63.cmi: int63.ml int63.mli
108
109 #test_int63.opt: int63.cmx test_int63.cmx
110 #       $(OCAMLFIND) ocamlopt $^ -o $@
111
112 install:
113         ocamlfind install diskimage META *.mli *.cma *.cmx *.cmxa *.a
114
115 include ../Make.rules