1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
| OCAMLC := ocamlc.opt
OCAMLOPT := ocamlopt.opt
OCAMLDEP := ocamldep
OCAMLLIB := /usr/lib/ocaml/3.09.2
OCAMLFIND :=
OCAMLDOC := ocamldoc
OCAMLMKLIB := ocamlmklib
OCAMLMKTOP := ocamlmktop
INSTALL := /usr/bin/install -c
INSTALL_DATA := ${INSTALL} -m 644
INSTALLDIR := $(OCAMLLIB)/site-lib/$(NAME)
CLIBS := $(filter -l%,-lbz2 -lz )
CLIBSDIR := $(filter -L%,-lbz2 -lz )
BZ_PREFIX := BZ2_
CPPFLAGS = $(if $(BZ_PREFIX),-D BZ_PREFIX)
NAME := gz
VERSION := 0.5.6
INSTALLFILES := {gz,bz}.{cmi,cmx,mli} gz.{a,cma,cmxa} dllmlgz.so libmlgz.a
DISTSRC := {gz,bz}.{ml,mli} c_{gz,bz}.c io.h \
aclocal.m4 install-sh \
Makefile.in configure configure.in \
META README LICENSE doc
ifndef OCAMLOPT
all : stub lib
else
all : stub lib libopt
endif
ifdef OCAMLFIND
install : findlib-install
else
install : normal-install
endif
stub : dllmlgz.so libmlgz.a
lib : gz.cma
libopt : gz.cmxa
libmlgz.a dllmlgz.so : c_gz.o c_bz.o
$(OCAMLMKLIB) -oc mlgz $^ $(CLIBS) $(CLIBSDIR)
gz.cma : gz.cmo bz.cmo
$(OCAMLMKLIB) -oc mlgz -o gz $^ $(CLIBS) $(CLIBSDIR)
gz.cmxa : gz.cmx bz.cmx
$(OCAMLMKLIB) -oc mlgz -o gz $^ $(CLIBS) $(CLIBSDIR)
top :
$(OCAMLMKTOP) -o ocamlgz -I $(INSTALLDIR) gz.cma
test : INCDIR= $(if $(OCAMLFIND),$(shell ocamlfind query gz),$(INSTALLDIR))
test : test.ml
$(OCAMLC) -o $@ -dllpath $(INCDIR) -I $(INCDIR) gz.cma $^
test.opt : INCDIR= $(if $(OCAMLFIND),$(shell ocamlfind query gz),$(INSTALLDIR))
test.opt : test.ml
$(OCAMLOPT) -o $@ -I $(INCDIR) gz.cmxa $^
normal-install: all
mkdir -p $(INSTALLDIR)
$(INSTALL_DATA) $(INSTALLFILES) $(INSTALLDIR)
@echo "You need to put a link to the shared stub in $$($(OCAMLC) -where)/stublibs"
findlib-install: all
-$(OCAMLFIND) remove $(NAME)
$(OCAMLFIND) install $(NAME) META $(INSTALLFILES)
clean:
rm -f *.cm* *.a *.so *.o *.opt ocamlgz test test.opt
ifdef OCAMLDOC
doc : doc/index.html
doc/index.html : gz.mli bz.mli
mkdir -p
$(OCAMLDOC) -html -d doc $^
else
doc : ; $(error "you need ocamldoc to generate the documentation")
endif
dist: doc $(NAME)-$(VERSION).tar.gz
$(NAME)-$(VERSION).tar.gz: dummy
cd .. && mv $(NAME) $(NAME)-$(VERSION) && \
tar zcvf $@ $(addprefix $(NAME)-$(VERSION)/, $(DISTSRC)) && \
mv $(NAME)-$(VERSION) $(NAME)
.PHONY: all lib libopt clean doc dist normal-install findlib-install dummy stub
%.cmo : %.ml
$(OCAMLC) -c $<
%.cmx : %.ml
$(OCAMLOPT) -c $<
%.cmi : %.mli
$(OCAMLC) -c $<
%.o : %.c
$(OCAMLC) -ccopt "$(CPPFLAGS) $(CFLAGS)" -c $<
.depend : $(wildcard *.ml *.mli)
-@$(OCAMLDEP) $^ > .depend
-include .depend
configure : configure.in aclocal.m4
autoconf
aclocal.m4 : ocaml.m4
aclocal -I . |
Partager