AR=ar
OCAMLC=ocamlc
OCAMLOPT=ocamlopt

VERSION=1.0
DISTNAME=ocamlpam-$(VERSION)

SOURCES=pam.mli pam.ml
BASENAME=pam_stubs
LIBNAME=lib$(BASENAME).a

.PHONY: all dist clean

all: byte opt

$(LIBNAME): pam_stubs.c
	$(OCAMLC) -c pam_stubs.c
	$(AR) rc $(LIBNAME) pam_stubs.o

byte: $(LIBNAME) $(SOURCES)
	$(OCAMLC) -c pam.mli
	$(OCAMLC) -c pam.ml
	$(OCAMLC) -a -o pam.cma -custom pam.cmo -cclib -lpam -cclib -l$(BASENAME)

opt: $(LIBNAME) $(SOURCES)
	$(OCAMLOPT) -c pam.mli
	$(OCAMLOPT) -c pam.ml
	$(OCAMLOPT) -a -o pam.cmxa pam.cmx -cclib -lpam -cclib -l$(BASENAME)

dist: clean
	mkdir -p $(DISTNAME)
	-cp * $(DISTNAME)
	tar cvzf $(DISTNAME).tar.gz $(DISTNAME)
	zip -r $(DISTNAME).zip $(DISTNAME)
	rm -fr $(DISTNAME)

clean:
	-rm -fr *.cm* *.a *.o $(DISTNAME).tar.gz $(DISTNAME).zip $(DISTNAME)
