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