# $Id: Makefile,v 1.23 2003/11/07 01:05:14 a_eric Exp $
CAMLC=ocamlc
CAMLLEX=ocamllex
CAMLOPT=ocamlopt
CAMLP4O=camlp4o
CPP=cpp
# things defined to for the preprocessor
# add HAVE_KERBEROS to compile with kerberos support
PPDEFINES=
.SUFFIXES: .ml .mli .cmo .cmi .cmx .o
.PHONY: all install tags clean test
.mll.ml:
$(CAMLLEX) $<
.mli.cmi:
$(CAMLC) -ccopt "$(CFLAGS)" -c $<
.ml.cmo:
$(CAMLC) -ccopt "$(CFLAGS)" -c $<
.ml.cmx:
$(CAMLOPT) -inline 100 -ccopt "$(CFLAGS)" -c $<
.c.o:
$(CAMLC) -ccopt "$(CFLAGS) $(PPDEFINES)" -c $<
all: ocamldap.cma ocamldap.cmxa testbc testopt testoo testoobc
dep: ocamldap ocamldap.i
install: all
ocamlfind install $(DESTDIR) ocamldap ocamldap.mli ocamldap.cmi ooldap.mli ooldif.mli ooldap.cmi ooldif.cmi ocamldap.cma ocamldap.cmxa ocamldap.a libocamldap.a schemaparser.cmi META
# preprocess
ocamldap.i:
$(CPP) -traditional-cpp $(PPDEFINES) ocamldap.mli4 | grep -v "^\#.*" >ocamldap.mli
ocamldap:
$(CPP) -traditional-cpp $(PPDEFINES) ocamldap.ml4 | grep -v "^\#.*" >ocamldap.ml
schemalexer.ml:
$(CAMLLEX) schemalexer.mll
ocamldap.cma: ulist.cmo schemalexer.ml schemalexer.cmo schemaparser.cmo ocamldap_tags.h ocamldap.cmi \
ooldap.cmi ooldif.cmi ocamldap.cmo ooldap.cmo ldifparser.cmo ooldif.cmo libocamldap.a
$(CAMLC) -a -o ocamldap.cma -cclib -lldap -cclib -llber -cclib -locamldap ocamldap.cmo \
ldifparser.cmo schemalexer.cmo schemaparser.cmo ulist.cmo ooldap.cmo ooldif.cmo
ocamldap.cmxa: ulist.cmx schemalexer.ml schemalexer.cmx schemaparser.cmx ocamldap_tags.h ocamldap.cmi \
ooldap.cmi ooldif.cmi ocamldap.cmx ooldap.cmx ldifparser.cmx ooldif.cmx libocamldap.a
$(CAMLOPT) -a -o ocamldap.cmxa -cclib -lldap -cclib -llber -cclib -locamldap \
ocamldap.cmx schemalexer.cmx schemaparser.cmx ulist.cmx ooldap.cmx ldifparser.cmx ooldif.cmx
libocamldap.a: libocamldap.o
ar r libocamldap.a libocamldap.o
ranlib libocamldap.a
ocamldap_tags.h: varcc
./varcc < ocamldap_tags.var -c ocamldap_tags.c -h ocamldap_tags.h
testbc: ocamldap.cma test.cmo
$(CAMLC) -o testbc -custom -ccopt "-L. $(CFLAGS)" ocamldap.cma test.ml
testopt: ocamldap.cmxa test.cmx
$(CAMLOPT) -o testopt -ccopt "-L. $(CFLAGS)" ocamldap.cmxa test.ml
testoo: ocamldap.cmxa
$(CAMLOPT) -o testoo -ccopt "-L. $(CFLAGS)" str.cmxa ocamldap.cmxa testoo.ml
testoobc: ocamldap.cma
$(CAMLC) -o testoobc -custom -ccopt "-L. $(CFLAGS)" str.cma ocamldap.cma testoo.ml
test: testbc testopt testoobc testoo
@echo "*** testing the bytecode library ***"
./testbc
@echo "*** bytecode library test passed ***"
@echo
@echo "*** testing the native library ***"
./testopt
@echo "*** native library test passed ***"
varcc:
$(CAMLP4O) pr_o.cmo -impl varcc.ml4 -o varcc.ml
$(CAMLC) -labels -o $@ varcc.ml
rm -f *_tags.h *_tags.c
clean:
rm -f *.[ao] *.cm[aio] *.cmx* *_tags.[ch] testoobc testoo testbc testopt varcc varcc.ml varcc.c* ocamldap.mli ocamldap.ml schemalexer.ml