| # |
| # 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 |