#!/usr/bin/env make

SRC_DIR  := .
OBJ_DIR  := obj
CPPFLAGS :=

CFLAGS   := -MMD -MP
MODULESC := $(wildcard $(SRC_DIR)/*.c)
MODULESI := $(SRC_DIR)/curve-specific.inc
OBJECTSC := $(MODULESC:$(SRC_DIR)/%.c=$(OBJ_DIR)/%.o)
OBJECTSI := $(MODULESI:$(SRC_DIR)/%.inc=$(OBJ_DIR)/%.o)
OBJECTS  := $(OBJECTSC) $(OBJECTSI)

libuECC.a: $(OBJECTS)
	ar rcs $@ $^

$(OBJECTSC): $(OBJ_DIR)/%.o: $(SRC_DIR)/%.c
	@mkdir -p $(@D)
	@$(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $<

$(OBJECTSI): $(OBJ_DIR)/%.o: $(SRC_DIR)/%.inc
	@mkdir -p $(@D)
	@$(CC) -x c $(CPPFLAGS) $(CFLAGS) -c -o $@ $<

clean:
	rm obj/*
	rm libuECC.a

.PHONY: clean

-include $(OBJECTS:.o=.d)
