Added csvtool for using CSV files on the command line.
[ocaml-csv.git] / Makefile
1 # $Id: Makefile,v 1.4 2005-05-24 13:52:50 rich Exp $
2
3 PACKAGE         := ocaml-csv
4 VERSION         := 1.0.3
5
6 OCAMLC          := ocamlc
7 OCAMLCINCS      :=
8 OCAMLCFLAGS     := -w s -g
9 OCAMLCLIBS      :=
10
11 OCAMLOPT        := ocamlopt
12 OCAMLOPTINCS    := $(OCAMLCINCS)
13 OCAMLOPTFLAGS   := -w s
14 OCAMLOPTLIBS    :=
15
16 OBJS            := csv.cmo
17 XOBJS           := $(OBJS:.cmo=.cmx)
18
19 all: csv.cma csv.cmxa example csvtool
20
21 csv.cma: $(OBJS)
22         $(OCAMLC) $(OCAMLCFLAGS) -a -o $@ $^
23
24 csv.cmxa: $(XOBJS)
25         $(OCAMLOPT) $(OCAMLOPTFLAGS) -a -o $@ $^
26
27 example: csv.cma example.ml
28         $(OCAMLC) $^ -o $@
29
30 test:   csv.cma test.ml
31         $(OCAMLC) $^ -o $@
32         ./test
33
34 csvtool: csv.cmxa csvtool.ml
35         $(OCAMLOPT) $^ -o $@
36
37 # Common rules for building OCaml objects.
38
39 .mli.cmi:
40         $(OCAMLC) $(OCAMLCFLAGS) $(OCAMLCINCS) -c $<
41 .ml.cmo:
42         $(OCAMLC) $(OCAMLCFLAGS) $(OCAMLCINCS) -c $<
43 .ml.cmx:
44         $(OCAMLOPT) $(OCAMLOPTFLAGS) $(OCAMLOPTINCS) -c $<
45
46 .SUFFIXES:      .cmo .cmi .cmx .ml .mli
47
48 # Clean.
49
50 clean:
51         rm -f *.cmi *.cmo *.cmx *.cma *.cmxa *.o *~ core
52
53 # Dependencies.
54
55 depend: .depend
56
57 .depend: $(wildcard *.mli) $(wildcard *.ml)
58         rm -f .depend
59         ocamldep $^ > $@
60
61 ifeq ($(wildcard .depend),.depend)
62 include .depend
63 endif
64
65 # Build a distribution.
66
67 dist:
68         $(MAKE) check-manifest
69         rm -rf $(PACKAGE)-$(VERSION)
70         mkdir $(PACKAGE)-$(VERSION)
71         tar -cf - -T MANIFEST | tar -C $(PACKAGE)-$(VERSION) -xf -
72         tar zcf $(PACKAGE)-$(VERSION).tar.gz $(PACKAGE)-$(VERSION)
73         rm -rf $(PACKAGE)-$(VERSION)
74         ls -l $(PACKAGE)-$(VERSION).tar.gz
75
76 check-manifest:
77         @for d in `find -type d -name CVS | grep -v '^\./debian/'`; \
78         do \
79         b=`dirname $$d`/; \
80         awk -F/ '$$1 != "D" {print $$2}' $$d/Entries | \
81         sed -e "s|^|$$b|" -e "s|^\./||"; \
82         done | sort > .check-manifest; \
83         sort MANIFEST > .orig-manifest; \
84         diff -u .orig-manifest .check-manifest; rv=$$?; \
85         rm -f .orig-manifest .check-manifest; \
86         exit $$rv
87
88 .PHONY: depend dist check-manifest