CFLAGS ?= -O3 -flto -march=native -Wno-unused-result -fPIC -Wall -Wextra -Werror

EXECUTABLE=sample.out

all: install

install: libaldr.a $(EXECUTABLE)
	mkdir -p build/bin build/lib build/include
	install $(EXECUTABLE) build/bin/aldr
	install libaldr.a build/lib/libaldr.a
	for f in *.h; do \
		install $$f build/include/$$f; \
	done

debug: CFLAGS := $(filter-out -O3,$(CFLAGS)) -O0 -g
debug: $(EXECUTABLE)

%.o: %.c
	gcc $(CFLAGS) -c -o $@ $^

libaldr.a: flip.o aldr.o alias.o
	ar rcs $@ $^

%.out: %.c libaldr.a
	gcc $(CFLAGS) -o $@ $^ -lm

.PHONY: clean
clean:
	$(RM) -r build/
	$(RM) *.a *.o *.out
