1
0
Fork 0
forked from fun/fun
fun/Makefile
2025-09-13 05:09:20 +02:00

38 lines
690 B
Makefile

# Compiler & flags
CC = gcc
CFLAGS = -Wall -Wextra -g -Isrc
SRC = src/vm.c src/bytecode.c src/value.c
OBJ = $(SRC:.c=.o)
# Tests
TEST_SRC = src/test.c src/test_opcodes.c
TEST_BIN = $(TEST_SRC:src/%.c=%)
.PHONY: all test clean
# Default: build main demo
all: main
main: $(OBJ) src/main.c
$(CC) $(CFLAGS) -o $@ $^
# Compile object files
%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
# Test target
tests: $(OBJ) $(TEST_BIN)
@for t in $(TEST_BIN); do \
echo "Running $$t..."; \
./$$t; \
echo "--------------------------------"; \
done
# Build each test executable
$(TEST_BIN): %: src/%.c $(OBJ)
$(CC) $(CFLAGS) -o $@ $(OBJ) $<
# Clean everything
clean:
rm -f $(OBJ) fun $(TEST_BIN)