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]*
|