diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..8a0ee05 --- /dev/null +++ b/Makefile @@ -0,0 +1,31 @@ +CC = clang +CFLAGS = -Wall -Wextra -Werror -O3 +LDFLAGS = -flto +SRC_DIR = srcs +OBJ_DIR = obj +BUILD_DIR = build +HDR_DIR = hdrs +SRCS = $(wildcard $(SRC_DIR)/*.c) +OBJS = $(SRCS:$(SRC_DIR)/%.c=$(OBJ_DIR)/%.o) +LIBRARY = $(BUILD_DIR)/libft.a + +all: $(LIBRARY) + +$(OBJ_DIR) $(BUILD_DIR): + @mkdir -p $@ + +$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c $(HDR_DIR)/*.h | $(OBJ_DIR) + $(CC) $(CFLAGS) -I$(HDR_DIR) -c $< -o $@ + +$(LIBRARY): $(OBJS) | $(BUILD_DIR) + $(AR) rcs $(LIBRARY) $(OBJS) + +clean: + rm -rf $(OBJ_DIR)/*.o + +fclean: clean + rm -rf $(BUILD_DIR) + +re: fclean all + +.PHONY: all clean fclean re