# SPDX-License-Identifier: MIT

CC = gcc
CFLAGS = -Wall -Wextra -Werror -Wno-unused-parameter 
CFLAGS += -Wno-unused-variable -Wno-unused-function 
CFLAGS += -Wno-unused-but-set-variable -Wno-unused-value -Wno-unused-label

C_SOURCES = $(wildcard *.c)
C_HEADERS = $(wildcard *.h)
OBJECTS = $(C_SOURCES:.c=.o)
ASMS = $(C_SOURCES:.c=.s)

all: $(OBJECTS)

%.o: %.c $(C_HEADERS)
	@echo "CC $<"
	@$(CC) $(CFLAGS) -c $< -o $@

%.s: %.c $(C_HEADERS)
	@echo "CC $<"
	@$(CC) $(CFLAGS) -S -masm=intel $<

clean:
	rm -f $(OBJECTS)

asm: $(ASMS)

format:
	clang-format -i $(C_SOURCES) $(C_HEADERS)

.PHONY: all clean format asm