1#
2# Copyright 2016, 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=iterator_sum
12
13SRC=iterator_sum.cogent
14OUTPUT=generated # $(SRC:.cogent=-gen)
15COUTPUT=$(addsuffix .c, $(OUTPUT))
16HOUTPUT=$(addsuffix .h, $(OUTPUT))
17
18LIBGUM=$(shell cogent --libgum-dir)
19
20AHFILES=
21ACFILES=main.ac
22
23PP=$(ACFILES:.ac=_pp.ac)
24PPINFER=$(ACFILES:.ac=_pp_inferred.c)
25
26ABSDIR=./abstract
27
28OBJ=$(ACFILES:.ac=_pp_inferred.o)
29
30CFLAGS+=-I. -I$(LIBGUM) -std=gnu99
31
32.PHONY: default cogent clean gen-anti test
33.SECONDARY:
34
35default: all
36
37all: gen-anti $(OBJ)
38	$(CC) -o $(NAME) $(OBJ)
39
40test: gen-anti $(OBJ)
41
42%c:
43	$(CC) -c $< -o $@
44
45gen-anti:
46	mkdir -p $(ABSDIR)
47	cogent -g $(SRC) --infer-c-types="$(AHFILES)" --infer-c-funcs="$(ACFILES)" --cpp-args="\$$CPPIN -o \$$CPPOUT -E -P $(CFLAGS)" --ext-types=types.cfg -O1 -ogenerated
48
49clean:
50	rm -f $(COUTPUT) $(HOUTPUT) $(PP) $(PPINFER) $(OBJ)
51	@# rm -f *-gen.*
52	rm -rf $(ABSDIR)
53	rm -f $(NAME)
54
55