#-----------------------------------------------------------------------------#
# vim: ts=8 sw=8 noexpandtab
#-----------------------------------------------------------------------------#
# Copyright (C) 1997-2002, 2007, 2010 The University of Melbourne.
# Copyright (C) 2015, 2018 The Mercury team.
# This file is distributed under the terms specified in COPYING.LIB.
#-----------------------------------------------------------------------------#

MAIN_TARGET = all

# We need to use a grade with trailing
GRADEFLAGS += --use-trail

MCFLAGS = --infer-all

# Enable C debugging
CFLAGS=-g
MLFLAGS=-g

# Link in the trailed_update library from ..
MCFLAGS += -I..
CFLAGS += -I..
MLFLAGS += --mercury-libs static
MLOBJS = ../libtrailed_update.a
VPATH = ..:$(MMAKE_VPATH)
C2INITARGS = ../trailed_update.init

# We need the following to use shared libraries on Linux
#CFLAGS += -DPIC_REG
#MLFLAGS += --shared

DIFF_OPTS=-c

#-----------------------------------------------------------------------------#

# The Mmake.params file can be used to override definitions in this file
-include ../../Mmake.params

#-----------------------------------------------------------------------------#

PROGS	=	interpreter vqueens
DEPENDS =	$(PROGS:%=%.depend)
CS	=	$(PROGS:%=%.c)
RESS	=	$(PROGS:%=%.res)

#-----------------------------------------------------------------------------#

$(PROGS): ../libtrailed_update.a

%.out: %
	./$< > $@ 2>&1;

%.res: %.exp %.out
	diff $(DIFF_OPTS) $*.exp $*.out > $@

#-----------------------------------------------------------------------------#

interpreter.out: interpreter interpreter.inp
	./interpreter interpreter.m < interpreter.inp > interpreter.out

#-----------------------------------------------------------------------------#

.PHONY: depend
depend: $(DEPENDS)

.PHONY: all
all: $(PROGS)

.PHONY: check
check: $(RESS)

.PHONY: cs
cs: $(CS)

.PHONY: clean_local
clean_local:
	rm -f *.out *.res

#-----------------------------------------------------------------------------#
