#########################################################################
#                                                                       #
#                            Objective Caml                             #
#                                                                       #
#            Xavier Leroy, projet Cristal, INRIA Rocquencourt           #
#                                                                       #
#   Copyright 1999 Institut National de Recherche en Informatique et    #
#   en Automatique.  All rights reserved.  This file is distributed     #
#   under the terms of the Q Public License version 1.0.                #
#                                                                       #
#########################################################################

# $Id: Makefile.shared 10413 2010-05-17 15:49:53Z doligez $

include ../config/Makefile

CAMLC=../ocamlcomp.sh
COMPFLAGS=-warn-error A $(INCLUDES)
LINKFLAGS=-linkall -I $(UNIXDIR)
CAMLYACC=../boot/ocamlyacc
YACCFLAGS=
CAMLLEX=../boot/ocamlrun ../boot/ocamllex
CAMLDEP=../boot/ocamlrun ../tools/ocamldep
DEPFLAGS=$(INCLUDES)

INCLUDES=\
  -I ../utils -I ../parsing -I ../typing -I ../bytecomp -I ../toplevel \
  -I $(UNIXDIR)

OTHEROBJS=\
  $(UNIXDIR)/unix.cma \
  ../utils/misc.cmo ../utils/config.cmo \
  ../utils/tbl.cmo ../utils/clflags.cmo ../utils/consistbl.cmo \
  ../parsing/longident.cmo \
  ../typing/ident.cmo ../typing/path.cmo ../typing/types.cmo \
  ../typing/btype.cmo ../typing/primitive.cmo ../typing/typedtree.cmo \
  ../typing/subst.cmo ../typing/predef.cmo \
  ../typing/datarepr.cmo ../typing/env.cmo ../typing/oprint.cmo \
  ../typing/ctype.cmo ../typing/printtyp.cmo ../typing/mtype.cmo \
  ../bytecomp/runtimedef.cmo ../bytecomp/bytesections.cmo \
  ../bytecomp/dll.cmo ../bytecomp/meta.cmo ../bytecomp/symtable.cmo \
  ../bytecomp/opcodes.cmo \
  ../toplevel/genprintval.cmo


OBJS=\
	dynlink.cmo \
	int64ops.cmo \
	primitives.cmo \
	unix_tools.cmo \
	debugger_config.cmo \
	envaux.cmo \
	parameters.cmo \
	lexer.cmo \
	input_handling.cmo \
	question.cmo \
	debugcom.cmo \
	exec.cmo \
	source.cmo \
	pos.cmo \
	checkpoints.cmo \
	events.cmo \
	program_loading.cmo \
	symbols.cmo \
	breakpoints.cmo \
	trap_barrier.cmo \
	history.cmo \
	printval.cmo \
	show_source.cmo \
	time_travel.cmo \
	program_management.cmo \
	frames.cmo \
	eval.cmo \
	show_information.cmo \
	loadprinter.cmo \
	parser.cmo \
	command_line.cmo \
	main.cmo

all: ocamldebug$(EXE)

ocamldebug$(EXE): $(OBJS) $(OTHEROBJS)
	$(CAMLC) $(LINKFLAGS) -o ocamldebug$(EXE) -linkall $(OTHEROBJS) $(OBJS)

install:
	cp ocamldebug$(EXE) $(BINDIR)/ocamldebug$(EXE)

clean::
	rm -f ocamldebug$(EXE)
	rm -f *.cmo *.cmi

.SUFFIXES:
.SUFFIXES: .ml .cmo .mli .cmi

.ml.cmo:
	$(CAMLC) -c $(COMPFLAGS) $<

.mli.cmi:
	$(CAMLC) -c $(COMPFLAGS) $<

depend: beforedepend
	$(CAMLDEP) $(DEPFLAGS) *.mli *.ml \
	| sed -e 's,$(UNIXDIR)/,$$(UNIXDIR)/,' > .depend

lexer.ml: lexer.mll
	$(CAMLLEX) lexer.mll
clean::
	rm -f lexer.ml
beforedepend:: lexer.ml

parser.ml parser.mli: parser.mly
	$(CAMLYACC) parser.mly
clean::
	rm -f parser.ml parser.mli
beforedepend:: parser.ml parser.mli

dynlink.ml: ../otherlibs/dynlink/dynlink.ml
	grep -v 'REMOVE_ME for ../../debugger/dynlink.ml' \
	     ../otherlibs/dynlink/dynlink.ml >dynlink.ml
dynlink.mli: ../otherlibs/dynlink/dynlink.mli
	cp ../otherlibs/dynlink/dynlink.mli .
clean::
	rm -f dynlink.ml dynlink.mli
beforedepend:: dynlink.ml dynlink.mli

include .depend
