X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=Makefile.in;h=695d4272e80dfadf485552c5d34a5eea9df9e57b;hb=ec13c41509db2b7fae9138cde2a8ea0b6d3b3699;hp=c60a315d19b3b0d1800bea2a0b0ae4cad0df9cb0;hpb=0fb4b24ebe3b85c935786f8e3e472d0d2292744e;p=ocaml-bitstring.git diff --git a/Makefile.in b/Makefile.in index c60a315..695d427 100644 --- a/Makefile.in +++ b/Makefile.in @@ -24,6 +24,13 @@ OCAMLFIND = @OCAMLFIND@ OCAMLMKLIB = @OCAMLMKLIB@ OCAMLDOC = @OCAMLDOC@ INSTALL = @INSTALL@ +TIME = @TIME@ +GPROF = @GPROF@ + +BYTESWAP_H = @BYTESWAP_H@ + +OCAMLLIB = @OCAMLLIB@ +top_srcdir = @top_srcdir@ pkg_cil = @pkg_cil@ pkg_extlib = @pkg_extlib@ @@ -35,6 +42,14 @@ OCAMLOPTPACKAGES = OCAMLDOCFLAGS = -html -sort +CC = @CC@ +CFLAGS = @CFLAGS@ -Wall -Werror -fPIC -I$(top_srcdir) -I$(OCAMLLIB) + +LIBRARY_PATH = @abs_top_builddir@ +LD_LIBRARY_PATH = @abs_top_builddir@ +export LIBRARY_PATH +export LD_LIBRARY_PATH + SUBDIRS = ifneq ($(pkg_cil),no) ifneq ($(pkg_extlib),no) @@ -46,15 +61,18 @@ EXAMPLES = $(patsubst %.ml,%,$(wildcard examples/*.ml)) TESTS = $(patsubst %.ml,%,$(wildcard tests/*.ml)) -all: bitstring.cma bitstring_persistent.cma \ +BENCHMARKS = $(patsubst %.ml,%,$(wildcard benchmarks/*.ml)) + +all: $(BYTESWAP_H) \ + bitstring.cma bitstring_persistent.cma \ bitstring.cmxa bitstring_persistent.cmxa \ pa_bitstring.cmo \ bitstring-objinfo @for d in $(SUBDIRS); do $(MAKE) -C $$d $@; done -bitstring.cma: bitstring_types.cmo bitstring_config.cmo bitstring.cmo \ - bitmatch.cmo - $(OCAMLFIND) ocamlc -a -o $@ $^ +bitstring.cma: bitstring_types.cmo bitstring_config.cmo \ + bitstring_c.o bitstring.cmo bitmatch.cmo + $(OCAMLMKLIB) -o bitstring $^ bitstring_persistent.cma: bitstring_persistent.cmo $(OCAMLFIND) ocamlc -a -o $@ $^ @@ -63,9 +81,9 @@ bitstring_persistent.cmo: bitstring_persistent.ml $(OCAMLFIND) ocamlc $(OCAMLCFLAGS) $(OCAMLCPACKAGES) \ -I +camlp4 -pp camlp4of -c $< -bitstring.cmxa: bitstring_types.cmx bitstring_config.cmx bitstring.cmx \ - bitmatch.cmx - $(OCAMLFIND) ocamlopt -a -o $@ $^ +bitstring.cmxa: bitstring_types.cmx bitstring_config.cmx \ + bitstring_c.o bitstring.cmx bitmatch.cmx + $(OCAMLMKLIB) -o bitstring $^ bitstring_persistent.cmxa: bitstring_persistent.cmx $(OCAMLFIND) ocamlopt -a -o $@ $^ @@ -87,6 +105,15 @@ bitstring-objinfo: bitstring_objinfo.cmo bitstring.cma bitstring_persistent.cma bitstring.cma bitstring_persistent.cma \ $< -o $@ +# Create byteswap.h if the system doesn't have this file. +# From gnulib, license is LGPLv2+. + +byteswap.h: byteswap.in.h + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + cat $(srcdir)/byteswap.in.h; \ + } > $@-t + mv -f $@-t $@ + # Tests and examples. PP = -pp "camlp4o bitstring.cma bitstring_persistent.cma pa_bitstring.cmo" @@ -143,12 +170,44 @@ print-examples: pa_bitstring.cmo if [ $$? -ne 0 ]; then exit 1; fi; \ done +# Benchmarks. + +ifneq ($(TIME),no) + +benchmarks: pa_bitstring.cmo bitstring.cma bitstring_persistent.cma + @for f in $(BENCHMARKS); do \ + $(OCAMLFIND) ocamlopt $(OCAMLOPTFLAGS) $(PP) \ + -package unix -linkpkg -I . bitstring.cmxa $$f.ml -o $$f.opt; \ + if [ $$? -ne 0 ]; then exit 1; fi; \ + $(TIME) -f "$$f: %e seconds" $$f.opt; \ + if [ $$? -ne 0 ]; then exit 1; fi; \ + done +ifneq ($(GPROF),no) + @for f in $(BENCHMARKS); do \ + $(OCAMLFIND) ocamlopt $(OCAMLOPTFLAGS) $(PP) -p \ + -package unix -linkpkg -I . bitstring.cmxa $$f.ml -o $$f.opt.p; \ + if [ $$? -ne 0 ]; then exit 1; fi; \ + rm -f gmon.out; \ + $$f.opt.p; \ + if [ $$? -ne 0 ]; then exit 1; fi; \ + gprof $$f.opt.p > $$f.profile; \ + if [ $$? -ne 0 ]; then exit 1; fi; \ + echo "Wrote profile of $$f"; \ + echo " to $$f.profile"; \ + rm -f gmon.out; \ + done +endif + +endif + # 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) + rm -f benchmarks/*~ benchmarks/*.cmi benchmarks/*.cmo + rm -f benchmarks/*.opt benchmarks/*.opt.p benchmarks/*.profile @for d in $(SUBDIRS); do $(MAKE) -C $$d $@; done distclean: clean @@ -165,13 +224,13 @@ doc: rm -rf html mkdir html $(OCAMLDOC) $(OCAMLDOCFLAGS) -d html -I +camlp4 \ - bitstring.mli bitstring_persistent.mli + bitstring.mli bitstring_persistent.mli bitmatch.ml endif # Install. install: - ocamlfind install bitstring META *.mli *.cmx *.cma *.cmxa *.a \ + ocamlfind install bitstring META *.mli *.cmx *.cma *.cmxa *.a *.so \ bitstring.cmi \ bitstring_persistent.cmi \ pa_bitstring.cmo @@ -227,6 +286,6 @@ check-manifest: exit $$rv .PHONY: depend dist check-manifest dpkg doc \ - print-examples print-tests examples test + print-examples print-tests examples test benchmarks .SUFFIXES: .cmo .cmi .cmx .ml .mli .mll