CMOFILES=ast.cmo clexer.cmo pcoq.cmo extend.cmo esyntax.cmo egrammar.cmo \
         g_prim.cmo g_command.cmo g_multiple_case.cmo g_tactic.cmo \
         g_basevernac.cmo g_vernac.cmo
ZLIBS= -I ../lib/util

BASEOBJS=pp_control.cmo pp.cmo std.cmo more_util.cmo hashcons.cmo \
         listmap.cmo dyn.cmo
OBJSQ1=coqAst.cmo clexer.cmo pcoq.cmo q_CoqAst.cmo g_prim.cmo
       
OBJSQ2=$(OBJSQ1) ast.cmo g_command.cmo g_multiple_case.cmo g_tactic.cmo \
       g_basevernac.cmo g_vernac.cmo

byte: q_ast.cma $(CMOFILES) q_CoqAst.cma
opt: lib-util q_ast.cma $(CMOFILES:.cmo=.cmx) q_CoqAst.cma

lib-util::
	(cd ../lib/util; $(MAKE) $(BASEOBJS))

q_ast.cma: $(OBJSQ1)
	$(CAMLC) $(ZFLAGS) $(BASEOBJS) $(OBJSQ1) -linkall -a -o $@

q_CoqAst.cma: $(OBJSQ2)
	$(CAMLC) $(ZFLAGS) $(BASEOBJS) $(OBJSQ2) -linkall -a -o $@

# Special compil. for g_vernac.cmx and g_tactic.cmx because too large for PPC
g_vernac.cmx:
	$(P4) -o $*.ppo $(OSDEPP4OPTFLAGS) $<
	$(CAMLOPTC) $(ZFLAGS) -impl $*.ppo
	rm $*.ppo

g_tactic.cmx:
	$(P4) -o $*.ppo $(OSDEPP4OPTFLAGS) $<
	$(CAMLOPTC) $(ZFLAGS) -impl $*.ppo
	rm $*.ppo

include ../../config
include ../Makefile.src
include .depend
