36 lines
952 B
Makefile
36 lines
952 B
Makefile
SRCDIR = ./compiler
|
|
COMPILER_SRCS != find $(SRCDIR) -type f -name '*.c'
|
|
COMPILER_OBJS := $(COMPILER_SRCS:.c=.o)
|
|
COMPILER_DEPS := $(COMPILER_OBJS:.o=.d)
|
|
|
|
ASAN = -fsanitize=address,undefined
|
|
CFLAGS := -Wall -Wextra -Wstrict-prototypes -Wold-style-definition -Wvla -Wwrite-strings \
|
|
-Wnull-dereference -pipe -O0 -ggdb3 -std=c11 $(ASAN)
|
|
LDFLAGS := $(ASAN)
|
|
|
|
all: rutilec ast2dot
|
|
|
|
rutilec: ./rutilec.c $(COMPILER_OBJS)
|
|
$(CC) $(LDFLAGS) $^ -o $@$(EXE)
|
|
|
|
ast2dot: tools/ast2dot.c $(COMPILER_OBJS)
|
|
$(CC) $(CFLAGS) $(LDFLAGS) $(COMPILER_OBJS) $< -o $@$(EXE)
|
|
|
|
clean:
|
|
rm -f $(COMPILER_OBJS) $(COMPILER_DEPS) ./rutilec$(EXE) ./ast2dot$(EXE)
|
|
|
|
options:
|
|
@echo "Build options:"
|
|
@echo "CC = $(CC)"
|
|
@echo "CFLAGS = $(CFLAGS)"
|
|
@echo "LDFLAGS = $(LDFLAGS)"
|
|
@echo "ASan flags = $(ASAN)"
|
|
@echo "SRCS = $(COMPILER_SRCS)"
|
|
@echo "OBJS = $(COMPILER_OBJS)"
|
|
|
|
.PHONY: all clean options
|
|
|
|
-include $(COMPILER_DEPS)
|
|
|
|
%.o: %.c Makefile
|
|
$(CC) $(CFLAGS) -MMD -MP -c -o $@ $<
|