Use pkg-config to detect Augeas and libxml2.
[ocaml-augeas.git] / Makefile.in
1 # Augeas OCaml bindings.
2 # Copyright (C) 2008 Red Hat Inc., Richard W.M. Jones
3 #
4 # This library is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU Lesser General Public
6 # License as published by the Free Software Foundation; either
7 # version 2 of the License, or (at your option) any later version.
8 #
9 # This library 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 GNU
12 # Lesser General Public License for more details.
13 #
14 # You should have received a copy of the GNU Lesser General Public
15 # License along with this library; if not, write to the Free Software
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
17 #
18 # $Id: Makefile.in,v 1.2 2008/05/06 10:48:20 rjones Exp $
19
20 PACKAGE         = @PACKAGE_NAME@
21 VERSION         = @PACKAGE_VERSION@
22
23 OCAMLFIND       = @OCAMLFIND@
24 OCAMLMKLIB      = @OCAMLMKLIB@
25 OCAMLDOC        = @OCAMLDOC@
26 INSTALL         = @INSTALL@
27
28 CC              = @CC@
29 CFLAGS          = @CFLAGS@ @AUGEAS_CFLAGS@ @LIBXML2_CFLAGS@ \
30                   -fPIC -I$(shell ocamlc -where) -Wall -Werror
31 LDFLAGS         = @LDFLAGS@
32 LIBS            = @AUGEAS_LIBS@ @LIBXML2_LIBS@ @LIBS@
33
34 OCAMLCFLAGS     = -g
35 OCAMLCPACKAGES  =
36 OCAMLOPTFLAGS   =
37 OCAMLOPTPACKAGES =
38
39 OCAMLDOCFLAGS   = -html -sort
40
41 export LIBRARY_PATH = .
42
43 all:    mlaugeas.cma mlaugeas.cmxa test_augeas
44
45 mlaugeas.cma: augeas_c.o augeas.cmo
46         ocamlmklib $(LDFLAGS) $(LIBS) -o mlaugeas $^
47
48 mlaugeas.cmxa: augeas_c.o augeas.cmx
49         ocamlmklib $(LDFLAGS) $(LIBS) -o mlaugeas $^
50
51 # Test program.
52
53 test_augeas: test_augeas.cmo test_root
54         $(OCAMLFIND) ocamlc -o $@ mlaugeas.cma $<
55
56 test_root:
57         rm -rf $@
58         mkdir $@
59         mkdir $@/etc
60         cp /etc/hosts $@/etc/
61
62 # Clean.
63
64 clean:
65         rm -f core *~ *.cmi *.cmo *.cmx *.cma *.cmxa *.a *.o *.so *.opt
66         rm -f test_augeas
67         rm -rf test_root
68
69 # Documentation.
70
71 ifneq ($(OCAMLDOC),)
72 doc:
73         rm -rf html
74         mkdir html
75         $(OCAMLDOC) $(OCAMLDOCFLAGS) -d html augeas.mli augeas.ml
76 endif
77
78 # Install.
79
80 install:
81         ocamlfind install augeas \
82           META *.mli *.cmx *.cma *.cmxa *.a augeas.cmi *.so
83
84 # Standard rules.
85
86 .mli.cmi:
87         $(OCAMLFIND) ocamlc $(OCAMLCFLAGS) $(OCAMLCPACKAGES) -c $<
88 .ml.cmo:
89         $(OCAMLFIND) ocamlc $(OCAMLCFLAGS) $(OCAMLCPACKAGES) -c $<
90 .ml.cmx:
91         $(OCAMLFIND) ocamlopt $(OCAMLOPTFLAGS) $(OCAMLOPTPACKAGES) -c $<
92
93 depend: .depend
94
95 .depend: augeas.mli augeas.ml
96         rm -f .depend
97         $(OCAMLFIND) ocamldep $(OCAMLCPACKAGES) $^ > $@
98
99 ifeq ($(wildcard .depend),.depend)
100 include .depend
101 endif
102
103 # Distribution.
104
105 dist:
106         $(MAKE) check-manifest
107         rm -rf $(PACKAGE)-$(VERSION)
108         mkdir $(PACKAGE)-$(VERSION)
109         tar -cf - -T MANIFEST | tar -C $(PACKAGE)-$(VERSION) -xf -
110         $(INSTALL) -m 0755 configure $(PACKAGE)-$(VERSION)/
111         $(INSTALL) -m 0644 config.h.in $(PACKAGE)-$(VERSION)/
112         tar zcf $(PACKAGE)-$(VERSION).tar.gz $(PACKAGE)-$(VERSION)
113         rm -rf $(PACKAGE)-$(VERSION)
114         ls -l $(PACKAGE)-$(VERSION).tar.gz
115
116 check-manifest:
117         hg manifest | sort > .check-manifest; \
118         sort MANIFEST > .orig-manifest; \
119         diff -u .orig-manifest .check-manifest; rv=$$?; \
120         rm -f .orig-manifest .check-manifest; \
121         exit $$rv
122
123 .PHONY: depend dist check-manifest dpkg doc
124
125 .SUFFIXES:      .cmo .cmi .cmx .ml .mli .mll