--- /dev/null
+[submodule "minilibx-linux"]
+ path = minilibx-linux
+ url = https://github.com/Kycilak/minilibx-linux
+ branch = 58-repair-invalid-read
+[submodule "Libft"]
+ path = Libft
+ url = git://ljiriste.work/Libft
--- /dev/null
+CC := gcc
+CFLAGS = -std=c99 -Wall -Wextra -Werror -Wpedantic
+
+INCGRAPH := minilibx-linux /usr/include Libft/inc
+LINKGRAPH := -Lminilibx-linux -lmlx -L/usr/lib -lXext -lX11 -lm -lbsd -LLibft -lft
+
+ifneq ("$(wildcard .debug)","")
+ CFLAGS += -g
+endif
+
+RM := rm -f
+
+MLXDIR := minilibx-linux/
+MLX := $(MLXDIR)libmlx_Linux.a
+LFTDIR := Libft/
+LFT := $(LFTDIR)libft.a
+
+INCDIR := inc $(LFTDIR)inc/ $(MLXDIR)
+INCLUDE := $(addprefix -I, $(INCDIR))
+
+SRCDIR := src
+
+SOURCES := main.c \
+
+SOURCES := $(addprefix $(SRCDIR)/, $(SOURCES))
+
+OBJECTS := $(SOURCES:.c=.o)
+
+NAME := miniRT
+
+all : $(NAME)
+
+debug : .debug
+ $(MAKE) -C Libft debug
+ $(MAKE) all
+
+nodebug :
+ $(MAKE) -C Libft nodebug
+ $(RM) .debug
+ $(MAKE) shallow_re
+
+.% :
+ $(MAKE) shallow_fclean
+ touch $@
+
+$(NAME) : $(OBJECTS) $(LFT) $(MLX)
+ $(CC) $(CFLAGS) -o $@ $^ $(LINKS)
+
+FORCE: ;
+
+$(LFT) : FORCE | $(LFTDIR)Makefile
+ $(MAKE) -C $(LFTDIR)
+
+$(MLX) : FORCE | $(MLXDIR)Makefile
+ $(MAKE) -C $(MLXDIR)
+
+%.o : %.c | $(MLXDIR)Makefile $(LFTDIR)Makefile
+ $(CC) $(CFLAGS) -o $@ -c $< $(INCLUDE)
+
+%/Makefile :
+ git submodule update --init $($@%/Makefile=%)
+
+clean :
+ $(RM) $(OBJECTS)
+
+fclean : clean
+ $(RM) $(NAME)
+ $(MAKE) -C $(LFTDIR) fclean
+ $(MAKE) -C $(MLXDIR) clean
+
+re : fclean
+ $(MAKE) all
+
+shallow_fclean : clean
+ $(RM) $(NAME)
+
+shallow_re : shallow_fclean
+ $(MAKE) all