# make            → build/liballowid.a
# make conformance conformance_cpp
CC ?= cc
CXX ?= c++
CFLAGS ?= -O2 -Wall -Wextra -Wpedantic -std=c99 -D_POSIX_C_SOURCE=200809L -D_DEFAULT_SOURCE
CXXFLAGS ?= -O2 -Wall -Wextra -std=c++17
CURL_LIBS ?= $(shell curl-config --libs 2>/dev/null || echo -lcurl)
CURL_CFLAGS ?= $(shell curl-config --cflags 2>/dev/null)

build/liballowid.a: src/allowid.c include/allowid.h
	@mkdir -p build
	$(CC) $(CFLAGS) $(CURL_CFLAGS) -Iinclude -c src/allowid.c -o build/allowid.o
	ar rcs $@ build/allowid.o

conformance: build/liballowid.a examples/conformance.c
	$(CC) $(CFLAGS) $(CURL_CFLAGS) -Iinclude examples/conformance.c build/liballowid.a $(CURL_LIBS) -o build/conformance

conformance_cpp: build/liballowid.a examples/conformance.cpp include/allowid.hpp
	$(CXX) $(CXXFLAGS) $(CURL_CFLAGS) -Iinclude examples/conformance.cpp build/liballowid.a $(CURL_LIBS) -o build/conformance_cpp

clean:
	rm -rf build

.PHONY: conformance conformance_cpp clean
