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 (83 lines) | stat: -rw-r--r-- 2,108 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
82
83
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: Apache-2.0.

.PHONY: batch-yaml ci-yaml

################################################################
# Launching cbmc on cbmc-batch
BATCH ?= cbmc-batch

BATCHFLAGS ?= \
	--batchpkg $(BATCHPKG) \
	--blddir $(SRCDIR) \
	--bucket $(BUCKET) \
	--cbmcflags $(call encode_options,$(CBMCFLAGS)) \
	--cbmcpkg $(CBMCPKG) \
	--coverage-memory $(COVMEM) \
	--goto $(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: $(ENTRY).goto Makefile
	echo 'batchpkg: $(BATCHPKG)' > $@
	echo 'build: true' >> $@
	echo 'cbmcflags: $(call yaml_encode_options,$(CBMCFLAGS))' >> $@
	echo 'cbmcpkg: $(CBMCPKG)' >> $@
	echo 'coverage_memory: $(COVMEM)' >> $@
	echo 'expected: "SUCCESSFUL"' >> $@
	echo 'goto: $(ENTRY).goto' >> $@
	echo 'jobos: ubuntu16' >> $@
	echo 'property_memory: $(PROPMEM)' >> $@
	echo 'viewerpkg: $(VIEWERPKG)' >> $@

batch-yaml: $(ENTRY).yaml

cbmc-batch.yaml: $(ENTRY).goto Makefile
	echo 'cbmcflags: $(strip $(call yaml_encode_options,$(CBMCFLAGS)))' > $@
	echo 'expected: "SUCCESSFUL"' >> $@
	echo 'goto: $(ENTRY).goto' >> $@
	echo 'jobos: ubuntu16' >> $@

ci-yaml: cbmc-batch.yaml

launch: $(ENTRY).goto Makefile
	mkdir -p $(WS)
	cp $(ENTRY).goto $(WS)
	$(BATCH) $(BATCHFLAGS)

launch-clean:
	for d in $(ENTRY)*; do \
	  if [ -d $$d ]; then \
	    for f in $$d.json $$d.yaml Makefile-$$d; do \
	      if [ -f $$f ]; then mv $$f $$d; fi \
	    done\
	  fi \
	done
	$(RM) Makefile-$(ENTRY)-[0-7]*-[0-7]*
	$(RM) $(ENTRY)-[0-7]*-[0-7]*.json $(ENTRY)-[0-7]*-[0-7]*.yaml
	$(RM) -r $(WS)

launch-veryclean: launch-clean
	$(RM) -r $(ENTRY)-[0-7]*-[0-7]*