File: Makefile.cbmc_batch

package info (click to toggle)
aws-crt-python 0.20.4%2Bdfsg-1~bpo12%2B1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm-backports
  • size: 72,656 kB
  • sloc: ansic: 381,805; python: 23,008; makefile: 6,251; sh: 4,536; cpp: 699; ruby: 208; java: 77; perl: 73; javascript: 46; xml: 11
file content (81 lines) | stat: -rw-r--r-- 2,442 bytes parent folder | download | duplicates (3)
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