# $Id: Makefile,v 1.19 1999/07/09 11:38:37 mohring Exp $

include ../../config

OBJS1=get_comm.cmo call_camlp4.cmo
OBJS2=get_comm.cmo camlp4dep.cmo
CMX1=$(OBJS1:.cmo=.cmx)
CMX2=$(OBJS2:.cmo=.cmx)
MAKE=make

all: $(ALL)

byte:	$(OBJS1) $(OBJS2) ocamlpp.cmo
	$(CAMLLINK) $(CAMLP4LIB)/gramlib.cma $(OBJS1) -o call_camlp4$(EXE)
	$(CAMLLINK) $(CAMLP4LIB)/gramlib.cma $(OBJS2) -o camlp4dep$(EXE)
	$(MAKE) install
	echo > byte

opt:	$(CMX1) $(CMX2) ocamlpp.cmo
	$(CAMLOPTLINK) $(CAMLP4LIB)/gramlib.cmxa $(CMX1) -o call_camlp4$(EXE)
	$(CAMLOPTLINK) $(CAMLP4LIB)/gramlib.cmxa $(CMX2) -o camlp4dep$(EXE)
	-strip call_camlp4
	-strip camlp4dep
	$(MAKE) install
	echo > opt

ocamlpp.cmo: ocamlpp.ml ../../src/config/coq_config.cmo
	camlp4o pa_extend.cmo  -o $*.ppo $< 
	$(CAMLC) -I ../../src/config -I $(CAMLP4LIB)  -impl $*.ppo
	rm $*.ppo

install:
	cp call_camlp4$(EXE) $(COQTOP)/bin/$(ARCH)
	cp camlp4dep$(EXE) $(COQTOP)/bin/$(ARCH)

archclean:
	rm -f *.out *.o *.cmx opt call_camlp4 camlp4dep

clean:
	rm -f *.cm[oix] *.out *.o byte opt call_camlp4 camlp4dep

depend:
	echo "*** dependences not computed ***"
#       ocamldep does not work on camlp4 files 
#	ocamldep *.ml >.depend

.SUFFIXES: .ml .cmo .cmx

.ml.cmo:
	camlp4r -o $*.ppo $<
	$(CAMLC) -I $(CAMLP4LIB) -impl $*.ppo
	rm $*.ppo
.ml.cmx:
	camlp4r -o $*.ppo $<
	$(CAMLOPTC) -I $(CAMLP4LIB) -impl $*.ppo
	rm $*.ppo

include .depend
