# $Id: Makefile,v 1.5 2002/07/19 14:53:47 mauny Exp $

include ../config/Makefile

INCLUDES=
OCAMLCFLAGS=-warn-error A $(INCLUDES)
OBJS=stdpp.cmo token.cmo plexer.cmo gramext.cmo grammar.cmo extfold.cmo extfun.cmo fstream.cmo
OBJS.CMX=stdpp.cmx token.cmx plexer.cmx gramext.cmx grammar.cmx extfold.cmx extfun.cmx fstream.cmx
OBJS.CMI=stdpp.cmi token.cmi plexer.cmi gramext.cmi grammar.cmi extfold.cmi extfun.cmi fstream.cmi
SHELL=/bin/sh
TARGET=gramlib.cma
TARGET.CMXA=gramlib.cmxa
TARGET.LIB=gramlib.lib
TARGET.A=gramlib.a

all: $(TARGET)
opt: $(TARGET.CMXA)

$(TARGET): $(OBJS)
	$(OCAMLC) $(OBJS) -a -o $(TARGET)

$(TARGET.CMXA): $(OBJS.CMX)
	$(OCAMLOPT) $(OBJS.CMX) -a -o $(TARGET.CMXA)

clean::
	rm -f *.cm[ioax] *.cmxa *.pp[io] *.o *.a *.bak .*.bak $(TARGET)

depend:
	cp .depend .depend.bak
	> .depend
	@for i in *.mli *.ml; do \
	  ../tools/apply.sh pr_depend.cmo -- $(INCLUDES) $$i >> .depend; \
	done

promote:
	cp $(OBJS) $(OBJS.CMI) ../boot/.

compare:
	@for j in $(OBJS) $(OBJS.CMI); do \
		if cmp $$j ../boot/$$j; then :; else exit 1; fi; \
	done

install:
	-$(MKDIR) $(LIBDIR)/camlp4
	cp $(TARGET) *.mli $(LIBDIR)/camlp4/.
	cp *.cmi $(LIBDIR)/camlp4/.
	if test -f $(TARGET.CMXA); then $(MAKE) installopt LIBDIR=$(LIBDIR); fi

installopt:
	cp $(TARGET.CMXA) *.cmx $(LIBDIR)/camlp4/.
	if test -f $(TARGET.LIB); then \
	  cp $(TARGET.LIB) $(LIBDIR)/camlp4/.; \
	else \
	  tar cf - $(TARGET.A) | (cd $(LIBDIR)/camlp4/.; tar xf -); \
	fi

include .depend
