1# 2# Copyright 2017, NICTA 3# 4# This software may be distributed and modified according to the terms of 5# the GNU General Public License version 2. Note that NO WARRANTY is provided. 6# See "LICENSE_GPLv2.txt" for details. 7# 8# @TAG(NICTA_GPL) 9# 10 11NAME=static-array 12 13SRC=StaticArray.cogent 14 15LIBGUM=$(shell cogent --libgum-dir) 16 17ACFILES=main.ac 18 19PP=$(ACFILES:.ac=_pp.ac) 20PPINFER=$(ACFILES:.ac=_pp_inferred.c) 21 22ABSDIR=./abstract 23 24OBJ=$(PPINFER:.c=.o) 25 26CFLAGS+=-I. -I$(LIBGUM) -std=gnu99 27 28.PHONY: default clean gen-anti test 29.SECONDARY: 30 31default: all 32 33all: gen-anti $(OBJ) 34 $(CC) -o $(NAME) $(OBJ) 35 36test: gen-anti $(OBJ) 37 38$(OBJ): $(PPINFER) 39 40gen-anti: 41 mkdir -p $(ABSDIR) 42 cogent $(SRC) -g -Od -ogenerated --fno-fncall-as-macro --ffunc-purity-attr \ 43 --infer-c-types="$(AHFILES)" \ 44 --Wno-warn --infer-c-funcs="$(ACFILES)" \ 45 --cpp-args="\$$CPPIN -o \$$CPPOUT -E -P $(CFLAGS)" \ 46 --ext-types=types.cfg \ 47 --entry-funcs=entrypoints.cfg \ 48 49clean: 50 rm -f $(COUTPUT) $(HOUTPUT) $(PP) $(PPINFER) $(OBJ) 51 rm -rf generated.h generated.c 52 rm -rf $(ABSDIR) 53 rm -f $(NAME) 54