
CC = gcc
CFLAGS ?= -std=c2x -Wall -Wextra -pedantic
LDFLAGS ?=
MATH_TESTS = test_annex_F_iec60559 test_annex_G_complex

PROGS = $(patsubst %.c,%,$(wildcard *.c))

all: $(PROGS)

%: %.c
	$(CC) $(CFLAGS) -o $@ $< $(LDFLAGS) $(if $(findstring $@,$(MATH_TESTS)),-lm,)

test: all
	@fails=0; \
	for t in $(PROGS); do \
	  printf "Running %s...\n" "$$t"; \
	  ./$$t || { echo "$$t FAILED"; fails+=1; }; \
	done; \
	exit $$fails

clean:
	rm -f $(PROGS) *.o
