# Makefile for PVS directories
# gromit : GNU Make version 3.78.1

prffiles=Project FProject FEmployee Employee Department \
	FDepartment FlatCompany 

pvssources=\
	Configuration_model.pvs Configuration_model.prf \
	Department_model.pvs Department_model.prf \
	Employee_model.pvs Employee_model.prf \
	FDepartment_model.pvs FDepartment_model.prf \
	FEmployee_model.pvs FEmployee_model.prf \
	FProject_model.pvs FProject_model.prf \
	FlatCompany_model.pvs FlatCompany_model.prf \
	Project_model.pvs Project_model.prf \
	RelSig_theory.pvs RelSig_theory.prf \
	MapFlatSig_theory.pvs MapFlatSig_theory.prf \
	all.pvs \
	configuration_compare.pvs configuration_compare.prf \
	configuration_compare_from.pvs configuration_compare_from.prf \
	defs.pvs defs.prf \
	department-compare.pvs department-compare.prf \
	employee-compare.pvs employee-compare.prf \
	more-assert.pvs more-assert.prf \
	Makefile \
	proof_save_Department_basic \
	proof_save_Employee_basic \
	proof_save_FDepartment_basic \
	proof_save_FEmployee_basic \
	proof_save_FProject_basic \
	proof_save_FlatCompany_basic \
	proof_save_Project_basic \
	typecheck.el

ccslsources=\
	../README \
	../setof.beh \
	../company.beh ../flat_company.beh ../flat_company.beh 

dest=/tmp/tews/UML
copy:
	rm -rf $(dest)
	mkdir -p $(dest)/Pvs
	cp $(ccslsources) $(dest)
	cp $(pvssources) $(dest)/Pvs

all:
	true

clean:
	rm -f *bin
	rm -f .pvscontext
	rm -f *_adt.p*
	rm -f *_basic.p*
	rm -f ccsl_prelude.p*
	rm -f pvs-batch.*

# remove all those files that are in the cvs 
# but should not get exported in phd-online
phddistclean:
	rm -f ../*eepic ../*fig
	rm -f ../multipi ../powerset.beh
	rm -f morelist.*
	rm -f *~


prf=$${$(1)}_basic.prf
save=proof_save_$${$(1)}_basic

diff:
	for f in $(prffiles) ; do \
		echo %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ; \
		echo %%%  diff $(call prf,f) $(call save,f) ; \
		echo %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ; \
		diff $(call prf,f) $(call save,f) ; \
	done

save:
	for f in $(prffiles) ; do \
		echo cp $(call prf,f) $(call save,f) ; \
		cp $(call prf,f) $(call save,f) ; \
	done

restore:
	for f in $(prffiles) ; do \
		echo cp $(call save,f) $(call prf,f) ; \
		cp $(call save,f) $(call prf,f) ; \
	done

ccsl:
	loopc ../company.beh
	loopc ../flat_company.beh
	loopc ../flat_company.beh -class FlatCompany -dependent-assertions
	$(MAKE) restore

