HARNESS_ENTRY = harness HARNESS_FILE = <__FUNCTION_NAME__>_harness # This should be a unique identifier for this proof, and will appear on the # Litani dashboard. It can be human-readable and contain spaces if you wish. PROOF_UID = <__FUNCTION_NAME__> DEFINES += INCLUDES += REMOVE_FUNCTION_BODY += UNWINDSET += PROOF_SOURCES += $(PROOFDIR)/$(HARNESS_FILE).c PROJECT_SOURCES += $(SRCDIR)/<__PATH_TO_SOURCE_FILE__> # If this proof is found to consume huge amounts of RAM, you can set the # EXPENSIVE variable. With new enough versions of the proof tools, this will # restrict the number of EXPENSIVE CBMC jobs running at once. See the # documentation in Makefile.common under the "Job Pools" heading for details. # EXPENSIVE = true # If you require access to a file-local ("static") function or object to conduct # your proof, set the following (and do not include the original source file # ("<__PATH_TO_SOURCE_FILE__>") in PROJECT_SOURCES). # REWRITTEN_SOURCES = $(PROOFDIR)/<__SOURCE_FILE_BASENAME__>.i # include <__PATH_TO_MAKEFILE__>/Makefile.common # $(PROOFDIR)/<__SOURCE_FILE_BASENAME__>.i_SOURCE = $(SRCDIR)/<__PATH_TO_SOURCE_FILE__> # $(PROOFDIR)/<__SOURCE_FILE_BASENAME__>.i_FUNCTIONS = foo bar # $(PROOFDIR)/<__SOURCE_FILE_BASENAME__>.i_OBJECTS = baz # Care is required with variables on the left-hand side: REWRITTEN_SOURCES must # be set before including Makefile.common, but any use of variables on the # left-hand side requires those variables to be defined. Hence, _SOURCE, # _FUNCTIONS, _OBJECTS is set after including Makefile.common. include <__PATH_TO_MAKEFILE__>/Makefile.common