# Instructions:

# Before starting, see "Dependencies" below.

# In the shell, execute
# make
# to create and certify all books.
# To clean up (removing files *.cert, *.o, *.fasl, etc., and generated .lisp
#    files), in the shell execute
# make clean

include ../../../../../Makefile-generic

ACL2 = ../../../../../../saved_acl2

BOOKS = defs-in inputs lemmas-in defs-out defs-eq lemmas-out 

all: check.txt

# Compare generated .lisp files against expected files, in ../output/ directory.
check.txt: defs-eq.cert defs-out.cert lemmas-in.cert defs-in.cert inputs.cert lemmas-out.cert 
	diff defs-out.lisp ../output/defs-out.lisp
	diff defs-eq.lisp ../output/defs-eq.lisp
	diff lemmas-out.lisp ../output/lemmas-out.lisp
	touch check.txt

# Dependencies:

defs-eq.cert: defs-eq.lisp
defs-eq.cert: defs-in.cert
defs-eq.cert: defs-out.cert

defs-eq.lisp: defs-out.lisp

defs-in.cert: defs-in.lisp
defs-in.cert: inputs.cert

defs-out.cert: defs-out.lisp

defs-out.lisp: defs-in.cert ../../../../../misc/simplify-defuns.cert
	$(ACL2) < defs-out.cmds > defs-out.lisp.out

inputs.cert: inputs.lisp

lemmas-in.cert: lemmas-in.lisp
lemmas-in.cert: defs-in.cert

lemmas-out.cert: lemmas-out.lisp

# Created manually:
lemmas-out.lisp: defs-out.lisp
lemmas-out.lisp: lemmas-in.lisp
lemmas-out.lisp: defs-eq.lisp

clean: clean-more

clean-more:
	rm -f defs-out.lisp defs-eq.lisp lemmas-out.lisp
