# Makefile for assess - works on Linux and macOS (Intel + Apple Silicon)

CC       ?= cc
CFLAGS   ?= -Wall -Wextra -Wpedantic -O2 -std=gnu11
CPPFLAGS += -D_POSIX_C_SOURCE=200809L -D_DEFAULT_SOURCE
LDFLAGS  ?=

# Auto-detect libcurl via pkg-config.
# Falls back to bare -lcurl if pkg-config isn't installed (Linux usually has libcurl in default path).
# On Apple Silicon macOS, pkg-config picks up /opt/homebrew/lib/libcurl correctly.
ifneq ($(shell command -v pkg-config 2>/dev/null),)
  CPPFLAGS += $(shell pkg-config --cflags libcurl 2>/dev/null)
  LDLIBS    = $(shell pkg-config --libs   libcurl 2>/dev/null)
endif
ifeq ($(LDLIBS),)
  LDLIBS = -lcurl
endif

# Vendor cJSON to avoid -dev package dependency on minimal systems
OBJ = assess.o cJSON.o

PREFIX ?= /usr/local

all: assess

assess: $(OBJ)
	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJ) $(LDLIBS)

%.o: %.c
	$(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@

# assess.o also depends on cJSON.h
assess.o: assess.c cJSON.h

install: assess
	install -d $(DESTDIR)$(PREFIX)/bin
	install -m 0755 assess $(DESTDIR)$(PREFIX)/bin/assess
	@echo "Installed to $(DESTDIR)$(PREFIX)/bin/assess"
	@echo ""
	@echo "Verify with:  assess --version"

uninstall:
	rm -f $(DESTDIR)$(PREFIX)/bin/assess

clean:
	rm -f assess $(OBJ)

.PHONY: all install uninstall clean
