SterlingLang/Makefile

32 lines
571 B
Makefile

NAME := SterlingCompiler
SRC := $(wildcard source/*.c)
OBJ := $(SRC:source/%.c=obj/%.o)
CC := gcc
CFLAG := -ggdb -Wall -Wextra -Werror -Wpedantic -I include -Og -fsignaling-nans -fsanitize=address -fsanitize=undefined
LDFLAG := -lasan -lubsan -lpthread
all: $(NAME)
obj/%.o : source/%.c | makedir
$(CC) $(CFLAG) -c $< -o $@
$(NAME): $(OBJ)
$(CC) $(OBJ) $(LDFLAG) -o build/$(NAME)
makedir:
mkdir -p obj
mkdir -p build
clean:
rm -rf obj/
fclean: clean
rm -rf build/
re: fclean all
.PHONY: all $(NAME) clean fclean makedir