1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
|
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"). You may not use
# this file except in compliance with the License. A copy of the License is
# located at
#
# http://aws.amazon.com/apache2.0/
#
# or in the "license" file accompanying this file. This file is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
# implied. See the License for the specific language governing permissions and
# limitations under the License.
.PHONY: batch-yaml ci-yaml
################################################################
# Launching cbmc on cbmc-batch
BATCH ?= cbmc-batch
BATCHFLAGS ?= \
--batchpkg $(BATCHPKG) \
--blddir $(SRCDIR) \
--bucket $(BUCKET) \
--cbmcflags $(call encode_options,$(CHECKFLAGS)) \
--cbmcpkg $(CBMCPKG) \
--coverage-memory $(COVMEM) \
--goto gotos/$(ENTRY).goto \
--jobprefix $(ENTRY) \
--no-build \
--no-copysrc \
--property-memory $(PROPMEM) \
--srcdir $(SRCDIR) \
--viewerpkg $(VIEWERPKG) \
--wsdir $(WS)
BATCHPKG ?= cbmc-batch.tar.gz
BUCKET ?= cbmc
CBMCPKG ?= cbmc.tar.gz
COVMEM ?= 64000
define encode_options
'=$(shell echo $(1) | sed 's/ ,/ /g' | sed 's/ /;/g')='
endef
PROPMEM ?= 64000
VIEWERPKG ?= cbmc-viewer.tar.gz
WS ?= ws
define yaml_encode_options
"$(shell echo $(1) | sed 's/ ,/ /g' | sed 's/ /;/g')"
endef
$(ENTRY).yaml:
echo 'batchpkg: $(BATCHPKG)' > $@
echo 'build: true' >> $@
echo 'cbmcflags: $(call yaml_encode_options,$(CHECKFLAGS) $(CBMCFLAGS))' >> $@
echo 'cbmcpkg: $(CBMCPKG)' >> $@
echo 'coverage_memory: $(COVMEM)' >> $@
echo 'expected: "SUCCESSFUL"' >> $@
echo 'goto: gotos/$(GOTO).goto' >> $@
echo 'jobos: ubuntu16' >> $@
echo 'property_memory: $(PROPMEM)' >> $@
echo 'viewerpkg: $(VIEWERPKG)' >> $@
batch-yaml: $(ENTRY).yaml Makefile
cbmc-batch.yaml:
echo 'cbmcflags: $(strip $(call yaml_encode_options,$(CHECKFLAGS) $(CBMCFLAGS)))' > $@
echo 'expected: "SUCCESSFUL"' >> $@
echo 'goto: gotos/$(ENTRY).goto' >> $@
echo 'jobos: ubuntu16' >> $@
empty-cbmc-batch.yaml:
echo ':' > 'cbmc-batch.yaml'
echo ' This file marks this directory as containing a CBMC proof. This file' >> 'cbmc-batch.yaml'
echo ' is automatically clobbered in CI and replaced with parameters for' >> 'cbmc-batch.yaml'
echo ' running the proof.' >> 'cbmc-batch.yaml'
ci-yaml: cbmc-batch.yaml Makefile
.PHONY: ci-yaml batch-yaml
|