48 lines
762 B
Makefile
Executable File
48 lines
762 B
Makefile
Executable File
NAME := sl_editor
|
|
|
|
CC := gcc
|
|
|
|
#-static -fsanitize=thread
|
|
CFLAGS := -g -ggdb -fsanitize=address -fsanitize=undefined -Og -Wall -Wextra -Werror -std=c99 -pedantic
|
|
|
|
LDFLAGS :=
|
|
|
|
LDLIBS := -lasan -lubsan -lpthread -lreadline -lncurses
|
|
|
|
SRC_DIR := source
|
|
|
|
OBJ_DIR := obj
|
|
|
|
BUILD_DIR := build
|
|
|
|
SRC := $(wildcard $(SRC_DIR)/*.c)
|
|
|
|
OBJ := $(SRC:$(SRC_DIR)/%.c=$(OBJ_DIR)/%.o)
|
|
|
|
all: $(NAME)
|
|
|
|
$(NAME): $(OBJ) | $(BUILD_DIR)
|
|
$(CC) $(OBJ) $(LDFLAGS) $(LDLIBS) -o $(BUILD_DIR)/$(NAME)
|
|
|
|
$(OBJ_DIR)/%.o : $(SRC_DIR)/%.c $(wildcard $(SRC_DIR)/*.h)
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
$(OBJ_DIR):
|
|
mkdir $(OBJ_DIR)
|
|
|
|
$(BUILD_DIR):
|
|
mkdir $(BUILD_DIR)
|
|
|
|
$(OBJ): | $(OBJ_DIR)
|
|
|
|
clean:
|
|
rm -f myshell
|
|
|
|
fclean: clean
|
|
rm -rf $(OBJ_DIR)
|
|
|
|
re: fclean all
|
|
|
|
.PHONY: all clean fclean re $(NAME)
|
|
|