blob: 29048254b62c0d6805d760f4ae65a3eb891296a3 [file] [log] [blame] [edit]
#
# Copyright 2017, NICTA
#
# This software may be distributed and modified according to the terms of
# the GNU General Public License version 2. Note that NO WARRANTY is provided.
# See "LICENSE_GPLv2.txt" for details.
#
# @TAG(NICTA_GPL)
#
NAME=adder
SRC=Adder.cogent
OUTPUT=generated # $(SRC:.cogent=-gen)
COUTPUT=$(addsuffix .c, $(OUTPUT))
HOUTPUT=$(addsuffix .h, $(OUTPUT))
LIBGUM=$(shell cogent --libgum-dir)
PLATLIBGUM=../plat/console/libgum
#AHFILES=$(LIBGUM)/gum/anti/abstract/Array.ah
ACFILES=main.ac
PP=$(ACFILES:.ac=_pp.ac)
PPINFER=$(ACFILES:.ac=_pp_inferred.c)
ABSDIR=./abstract
OBJ=$(PPINFER:.c=.o)
CFLAGS=-I. -I$(LIBGUM) -std=gnu99 # -I../plat/console -I$(LIBGUM)/gum/anti
.PHONY: default cogent clean gen-anti test
.SECONDARY:
default: all
all: gen-anti $(OBJ)
$(CC) -o $(NAME) $(OBJ)
test: gen-anti $(OBJ)
$(OBJ): $(PPINFER)
gen-anti:
mkdir -p $(ABSDIR)
cogent $(SRC) -g -ogenerated \
--Wno-warn --infer-c-funcs="$(ACFILES)" \
--cpp-args="\$$CPPIN -o \$$CPPOUT -P $(CFLAGS)" \
--ext-types=types.cfg \
--entry-funcs=entrypoints.cfg
gen-type-proof:
cogent $(SRC) --type-proof --root-dir=../../..
gen-c-proof:
cogent $(SRC) --all -g --type-proof --c-refinement --root-dir=../../.. --fake-header-dir=../../lib
clean:
rm -f $(COUTPUT) $(HOUTPUT) $(PP) $(PPINFER) $(OBJ)
@# rm -f *-gen.*
rm -f $(ABSDIR)/*.h
rm -f $(NAME)
rm -f *.thy
rm -f ROOT
rm -f BUILD_INFO