28 lines
484 B
Makefile
28 lines
484 B
Makefile
CC = gcc
|
|
CFLAGS = -Wall -Wextra -std=c11 -g
|
|
SRC = main.c tree.c
|
|
OBJ = $(SRC:.c=.o)
|
|
EXEC = tree
|
|
|
|
# Main target
|
|
all: $(EXEC)
|
|
|
|
# Build executable
|
|
$(EXEC): $(OBJ)
|
|
$(CC) $(CFLAGS) -o $@ $^
|
|
|
|
# Run test suite
|
|
test: all
|
|
@cd test && ./run_tests.sh
|
|
|
|
# Clean object files and executable
|
|
clean:
|
|
rm -f $(OBJ) $(EXEC)
|
|
|
|
# Full cleanup (also test artifacts)
|
|
distclean: clean
|
|
cd test && rm -f actual_output.txt valgrind.log expected_output.txt && rm -rf testdir
|
|
|
|
.PHONY: all test clean distclean
|
|
|