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