Bit-matching test.
[ocaml-bitstring.git] / Makefile.in
index 5634f74..89fcab3 100644 (file)
-# $Id: Makefile.in,v 1.1 2008-04-02 07:20:26 rjones Exp $
-
-PACKAGE        = ocaml-bitmatch
-VERSION        = 0.1
-
-OCAMLFIND = ocamlfind
-OCAMLMKLIB = ocamlmklib
-
-OCAMLCFLAGS = -g
-OCAMLCPACKAGES =
-OCAMLOPTFLAGS =
+# Bitmatch syntax extension.
+# Copyright (C) 2008 Red Hat Inc., Richard W.M. Jones
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
+#
+# $Id$
+
+PACKAGE                = @PACKAGE_NAME@
+VERSION                = @PACKAGE_VERSION@
+
+OCAMLFIND      = @OCAMLFIND@
+OCAMLMKLIB     = @OCAMLMKLIB@
+OCAMLDOC       = @OCAMLDOC@
+INSTALL                = @INSTALL@
+
+OCAMLCFLAGS    = -g
+OCAMLCPACKAGES =
+OCAMLOPTFLAGS  =
 OCAMLOPTPACKAGES =
 
-EXAMPLES := $(wildcard examples/*.ml)
+OCAMLDOCFLAGS  = -html -sort
 
-TESTS  := $(patsubst %.ml,%,$(wildcard tests/*.ml))
+EXAMPLES       = $(patsubst %.ml,%,$(wildcard examples/*.ml))
 
-all:   pa_bitmatch.cmo bitmatch.cma bitmatch.cmxa
+TESTS          = $(patsubst %.ml,%,$(wildcard tests/*.ml))
 
-pa_bitmatch.cmo: pa_bitmatch.ml
-       ocamlfind ocamlc -I +camlp4 camlp4lib.cma -pp camlp4of.opt -c $< -o $@
+all:   bitmatch.cma bitmatch.cmxa pa_bitmatch.cmo
 
-bitmatch.cma: bitmatch.cmo
+bitmatch.cma: bitmatch_types.cmo bitmatch_config.cmo bitmatch.cmo
        $(OCAMLFIND) ocamlc -a -o $@ $^
 
-bitmatch.cmxa: bitmatch.cmx
+bitmatch.cmxa: bitmatch_types.cmx bitmatch_config.cmx bitmatch.cmx
        $(OCAMLFIND) ocamlopt -a -o $@ $^
 
+pa_bitmatch.cmo: pa_bitmatch.ml bitmatch.cma
+       $(OCAMLFIND) ocamlc bitmatch.cma -I +camlp4 camlp4lib.cma \
+         -pp camlp4of.opt -c $< -o $@
+
+# Tests and examples.
+
+PP     = -pp "camlp4o bitmatch.cma pa_bitmatch.cmo"
+
 test: pa_bitmatch.cmo bitmatch.cma
        @for f in $(TESTS); do \
-         echo Test: $$f; \
-         $(OCAMLFIND) ocamlc $(OCAMLCFLAGS) -pp "camlp4o pa_bitmatch.cmo" \
-           -I . bitmatch.cma $$f.ml -o $$f; \
+         echo Building $$f; \
+         $(OCAMLFIND) ocamlc $(OCAMLCFLAGS) $(PP) \
+           -package unix -linkpkg -I . bitmatch.cma $$f.ml -o $$f; \
          if [ $$? -ne 0 ]; then exit 1; fi; \
+         echo Running $$f; \
          $$f; \
          if [ $$? -ne 0 ]; then exit 1; fi; \
        done
 
+examples: pa_bitmatch.cmo bitmatch.cma
+       @for f in $(EXAMPLES); do \
+         echo Building $$f; \
+         $(OCAMLFIND) ocamlc $(OCAMLFLAGS) $(PP) \
+           -package unix -linkpkg -I . bitmatch.cma $$f.ml -o $$f; \
+         if [ $$? -ne 0 ]; then exit 1; fi; \
+       done
+
 print-tests: pa_bitmatch.cmo
        @for f in $(TESTS); do \
          echo Test: $$f.ml; \
-         cmd="camlp4o pa_bitmatch.cmo -printer pr_o.cmo $$f.ml"; \
+         cmd="camlp4o bitmatch.cma pa_bitmatch.cmo -printer pr_o.cmo $$f.ml"; \
          echo $$cmd; \
          $$cmd; \
        done
 
 print-examples: pa_bitmatch.cmo
        @for f in $(EXAMPLES); do \
-         echo Example: $$f; \
-         camlp4o pa_bitmatch.cmo -printer pr_o.cmo $$f; \
+         echo Example: $$f.ml; \
+         camlp4o bitmatch.cma pa_bitmatch.cmo -printer pr_o.cmo $$f.ml; \
+         if [ $$? -ne 0 ]; then exit 1; fi; \
        done
 
+# Clean.
+
+clean:
+       rm -f core *~ *.cmi *.cmo *.cmx *.cma *.cmxa *.a *.o
+       rm -f tests/*~ tests/*.cmi tests/*.cmo $(TESTS)
+       rm -f examples/*~ examples/*.cmi examples/*.cmo $(EXAMPLES)
+
+distclean: clean
+       rm -rf autom4te.cache
+       rm -f config.log config.status
+       rm -f config.h Makefile META bitmatch_config.ml
+
+# Documentation.
+
+ifneq ($(OCAMLDOC),)
+doc:
+       rm -rf html
+       mkdir html
+       $(OCAMLDOC) $(OCAMLDOCFLAGS) -d html bitmatch.mli bitmatch.ml
+endif
+
+# Install.
+
+install:
+       ocamlfind install bitmatch META *.mli *.cmx *.cma *.cmxa *.a \
+               bitmatch.cmi \
+               pa_bitmatch.cmo
+
+# Standard rules.
+
 .mli.cmi:
        $(OCAMLFIND) ocamlc $(OCAMLCFLAGS) $(OCAMLCPACKAGES) -c $<
 .ml.cmo:
@@ -75,21 +141,19 @@ dist:
        mkdir $(PACKAGE)-$(VERSION)
        tar -cf - -T MANIFEST | tar -C $(PACKAGE)-$(VERSION) -xf -
        $(INSTALL) -m 0755 configure $(PACKAGE)-$(VERSION)/
+       $(INSTALL) -m 0644 config.h.in $(PACKAGE)-$(VERSION)/
        tar zcf $(PACKAGE)-$(VERSION).tar.gz $(PACKAGE)-$(VERSION)
        rm -rf $(PACKAGE)-$(VERSION)
        ls -l $(PACKAGE)-$(VERSION).tar.gz
 
 check-manifest:
-       @for d in `find -type d -name CVS`; do \
-       b=`dirname $$d`/; \
-       awk -F/ '$$1 != "D" {print $$2}' $$d/Entries | \
-       sed -e "s|^|$$b|" -e "s|^\./||"; \
-       done | sort > .check-manifest; \
+       svn -R list | grep -v '/$$' | sort > .check-manifest
        sort MANIFEST > .orig-manifest; \
        diff -u .orig-manifest .check-manifest; rv=$$?; \
        rm -f .orig-manifest .check-manifest; \
        exit $$rv
 
-.PHONY: depend dist check-manifest dpkg doc print-examples print-tests test
+.PHONY: depend dist check-manifest dpkg doc \
+       print-examples print-tests examples test
 
 .SUFFIXES:      .cmo .cmi .cmx .ml .mli .mll