github to gitea
This commit is contained in:
@@ -0,0 +1,187 @@
|
||||
CC = gcc
|
||||
CFLAGS = -Wall -Wextra -Werror
|
||||
NAME = cub3d
|
||||
|
||||
SRCDIR = srcs
|
||||
INCDIR = includes
|
||||
LIBFT = libft/libft.a
|
||||
GNL = gnl/gnl.a
|
||||
MLX_DIR = minilibx-linux
|
||||
MLX = $(MLX_DIR)/libmlx_Linux.a
|
||||
MLX_REPO = https://git.gasoff.ovh/lfirmin/mlx_42.git
|
||||
|
||||
# Flags pour MLX (Linux)
|
||||
MLX_FLAGS = -lXext -lX11 -lm
|
||||
|
||||
# Couleurs
|
||||
RED = \033[0;31m
|
||||
GREEN = \033[0;32m
|
||||
YELLOW = \033[0;33m
|
||||
BLUE = \033[0;34m
|
||||
MAGENTA = \033[0;35m
|
||||
CYAN = \033[0;36m
|
||||
WHITE = \033[0;37m
|
||||
RESET = \033[0m
|
||||
BOLD = \033[1m
|
||||
|
||||
SRCS = \
|
||||
$(SRCDIR)/main.c \
|
||||
$(SRCDIR)/parsing/parsing.c \
|
||||
$(SRCDIR)/parsing/check_file.c \
|
||||
$(SRCDIR)/parsing/init_parsing.c \
|
||||
$(SRCDIR)/parsing/get_map.c \
|
||||
$(SRCDIR)/parsing/get_map_2.c \
|
||||
$(SRCDIR)/parsing/line_detect.c \
|
||||
$(SRCDIR)/parsing/get_textures.c \
|
||||
$(SRCDIR)/parsing/check_colors.c \
|
||||
$(SRCDIR)/parsing/check_map.c \
|
||||
$(SRCDIR)/parsing/check_map_2.c \
|
||||
$(SRCDIR)/utils/init.c \
|
||||
$(SRCDIR)/utils/utils.c \
|
||||
$(SRCDIR)/exec/draw.c \
|
||||
$(SRCDIR)/exec/hooks.c \
|
||||
$(SRCDIR)/exec/image.c \
|
||||
$(SRCDIR)/exec/init.c \
|
||||
$(SRCDIR)/exec/loop.c \
|
||||
$(SRCDIR)/exec/player.c \
|
||||
$(SRCDIR)/exec/raycast.c \
|
||||
$(SRCDIR)/exec/textures.c \
|
||||
$(SRCDIR)/exec/world.c
|
||||
|
||||
# === Includes ===
|
||||
INCS = \
|
||||
$(INCDIR)/parsing.h \
|
||||
$(INCDIR)/cub.h \
|
||||
$(INCDIR)/exec.h \
|
||||
$(INCDIR)/keys.h
|
||||
|
||||
# Animation de chargement
|
||||
define loading_animation
|
||||
@echo "$(1)"
|
||||
@for i in 1 2 3 4 5 6 7 8 9 10; do \
|
||||
printf "$(CYAN)["; \
|
||||
for j in $$(seq 1 $$i); do printf "█"; done; \
|
||||
for j in $$(seq $$i 9); do printf " "; done; \
|
||||
printf "] $$(($$i * 10))%%$(RESET)\r"; \
|
||||
sleep 0.1; \
|
||||
done
|
||||
@echo ""
|
||||
endef
|
||||
|
||||
all:
|
||||
@echo "$(BOLD)$(MAGENTA)"
|
||||
@echo "╔════════════════════════════════════════╗"
|
||||
@echo "║ 🎮 CUB3D BUILD 🎮 ║"
|
||||
@echo "╚════════════════════════════════════════╝"
|
||||
@echo "$(RESET)"
|
||||
@$(MAKE) -s $(NAME)
|
||||
|
||||
$(MLX_DIR):
|
||||
@echo "$(BOLD)$(CYAN)📦 Cloning MLX42...$(RESET)"
|
||||
$(call loading_animation,$(YELLOW)⬇️ Downloading MLX42 library...)
|
||||
@if [ ! -d "$(MLX_DIR)/.git" ]; then \
|
||||
rm -rf $(MLX_DIR) > /dev/null 2>&1; \
|
||||
git clone $(MLX_REPO) $(MLX_DIR) > /dev/null 2>&1; \
|
||||
fi
|
||||
@echo "$(GREEN)✅ MLX42 cloned successfully!$(RESET)"
|
||||
@echo ""
|
||||
|
||||
$(MLX): $(MLX_DIR)
|
||||
@echo "$(BOLD)$(BLUE)🔨 Building MLX42...$(RESET)"
|
||||
$(call loading_animation,$(YELLOW)⚙️ Compiling MLX42...)
|
||||
@$(MAKE) -s -C $(MLX_DIR) > /dev/null 2>&1
|
||||
@echo "$(GREEN)✅ MLX42 built successfully!$(RESET)"
|
||||
@echo ""
|
||||
|
||||
$(LIBFT):
|
||||
@echo "$(BOLD)$(BLUE)📚 Building libft...$(RESET)"
|
||||
@$(MAKE) -s -C libft > /dev/null 2>&1 & \
|
||||
PID=$$!; \
|
||||
for i in 1 2 3 4 5 6 7 8 9 10; do \
|
||||
printf "$(CYAN)["; \
|
||||
for j in $$(seq 1 $$i); do printf "█"; done; \
|
||||
for j in $$(seq $$i 9); do printf " "; done; \
|
||||
printf "] $$(($$i * 10))%%$(RESET)\r"; \
|
||||
sleep 0.1; \
|
||||
done; \
|
||||
wait $$PID; \
|
||||
echo ""
|
||||
@echo ""
|
||||
|
||||
$(GNL):
|
||||
@echo "$(BOLD)$(BLUE)📚 Building gnl...$(RESET)"
|
||||
@$(MAKE) -s -C gnl > /dev/null 2>&1 & \
|
||||
PID=$$!; \
|
||||
for i in 1 2 3 4 5 6 7 8 9 10; do \
|
||||
printf "$(CYAN)["; \
|
||||
for j in $$(seq 1 $$i); do printf "█"; done; \
|
||||
for j in $$(seq $$i 9); do printf " "; done; \
|
||||
printf "] $$(($$i * 10))%%$(RESET)\r"; \
|
||||
sleep 0.1; \
|
||||
done; \
|
||||
wait $$PID; \
|
||||
echo ""
|
||||
@echo ""
|
||||
|
||||
$(NAME): $(MLX) $(LIBFT) $(GNL) $(SRCS) $(INCS)
|
||||
@echo "$(BOLD)$(BLUE)🎯 Building $(NAME)...$(RESET)"
|
||||
$(call loading_animation,$(YELLOW)🚀 Compiling main executable...)
|
||||
@$(CC) -g -I$(INCDIR) -I$(MLX_DIR)/include $(SRCS) -o $(NAME) $(LIBFT) $(GNL) $(MLX) $(MLX_FLAGS)
|
||||
@echo "$(BOLD)$(GREEN)"
|
||||
@echo "╔════════════════════════════════════════╗"
|
||||
@echo "║ 🎉 BUILD SUCCESSFUL! 🎉 ║"
|
||||
@echo "║ ║"
|
||||
@echo "║ Your $(NAME) is ready to use! 🚀 ║"
|
||||
@echo "╚════════════════════════════════════════╝"
|
||||
@echo "$(RESET)"
|
||||
|
||||
clean:
|
||||
@echo "$(BOLD)$(YELLOW)"
|
||||
@echo "╔════════════════════════════════════════╗"
|
||||
@echo "║ 🧹 CLEANING UP 🧹 ║"
|
||||
@echo "╚════════════════════════════════════════╝"
|
||||
@echo "$(RESET)"
|
||||
$(call loading_animation,$(YELLOW)🗑️ Cleaning object files...)
|
||||
@rm -f $(NAME)
|
||||
@make clean -s -C libft > /dev/null 2>&1
|
||||
@make clean -s -C gnl > /dev/null 2>&1
|
||||
@if [ -d "$(MLX_DIR)" ]; then make clean -s -C $(MLX_DIR) > /dev/null 2>&1; fi
|
||||
@echo "$(GREEN)✅ Clean completed!$(RESET)"
|
||||
|
||||
clean1:
|
||||
@echo "$(CYAN)🗑️ Removing executable...$(RESET)"
|
||||
@rm -f $(NAME)
|
||||
@echo "$(GREEN)✅ Executable removed!$(RESET)"
|
||||
|
||||
fclean:
|
||||
@echo "$(BOLD)$(RED)"
|
||||
@echo "╔════════════════════════════════════════╗"
|
||||
@echo "║ 💣 DEEP CLEAN 💣 ║"
|
||||
@echo "╚════════════════════════════════════════╝"
|
||||
@echo "$(RESET)"
|
||||
@$(MAKE) -s clean1
|
||||
$(call loading_animation,$(RED)🔥 Full cleanup in progress...)
|
||||
@make fclean -s -C libft > /dev/null 2>&1
|
||||
@make fclean -s -C gnl > /dev/null 2>&1
|
||||
@if [ -d "$(MLX_DIR)/minilibx-linux" ]; then make fclean -s -C $(MLX_DIR)/minilibx-linux > /dev/null 2>&1; fi
|
||||
@rm -rf $(MLX_DIR)
|
||||
@echo ""
|
||||
@echo "$(BOLD)$(GREEN)"
|
||||
@echo "╔════════════════════════════════════════╗"
|
||||
@echo "║ ✨ DEEP CLEAN COMPLETE! ✨ ║"
|
||||
@echo "║ ║"
|
||||
@echo "║ All files have been removed! 🗑️ ║"
|
||||
@echo "╚════════════════════════════════════════╝"
|
||||
@echo "$(RESET)"
|
||||
|
||||
re:
|
||||
@echo "$(BOLD)$(MAGENTA)"
|
||||
@echo "╔════════════════════════════════════════╗"
|
||||
@echo "║ 🔄 REBUILDING 🔄 ║"
|
||||
@echo "╚════════════════════════════════════════╝"
|
||||
@echo "$(RESET)"
|
||||
@$(MAKE) -s fclean
|
||||
@echo ""
|
||||
@$(MAKE) -s all
|
||||
|
||||
.PHONY: all clean fclean re clean1
|
||||
Reference in New Issue
Block a user