CC = gcc

CFLAGS = -std=c23 \
         -Wall \
         -Wextra \
         -pedantic-errors \
         -g \
         -fsanitize=address

BUILD_DIR = build
TARGET = $(BUILD_DIR)/main
SRC = main.c parse.c ir.c arena.c codegen_x86.c jit_x86.c

all: $(TARGET)

$(BUILD_DIR):
	mkdir -p $(BUILD_DIR)

$(TARGET): $(SRC) | $(BUILD_DIR)
	$(CC) $(CFLAGS) $(SRC) -o $(TARGET)

clean:
	rm -rf $(BUILD_DIR)

.PHONY: all clean