cub3d/Makefile

59 lines
2.0 KiB
Makefile
Raw Normal View History

2023-10-25 13:56:45 +02:00
# **************************************************************************** #
# #
2023-10-26 11:01:31 +02:00
# :::::::: #
2023-10-25 13:56:45 +02:00
# Makefile :+: :+: #
2023-10-26 11:01:31 +02:00
# +:+ #
# By: houtworm <codam@houtworm.net> +#+ #
# +#+ #
# Created: 2023/10/26 10:46:29 by houtworm #+# #+# #
# Updated: 2023/10/26 16:56:54 by houtworm ######## odam.nl #
2023-10-25 13:56:45 +02:00
# #
# **************************************************************************** #
2023-10-25 14:07:29 +02:00
NAME =cub3d
2023-10-25 13:56:45 +02:00
CC =gcc
2023-10-26 11:01:31 +02:00
FC =-Wall -Werror -Wextra -Wunreachable-code -Ofast -g #-fsanitize=address
2023-10-25 13:56:45 +02:00
HEAD =-I ./include -I $(MLX)/include
RM =rm -rf
LIB =libft/libft.a mlx/build/libmlx42.a -ldl -lglfw -pthread -lm
SRC =src/main.c\
src/init.c\
src/parse.c\
src/keys.c\
src/draw.c
2023-10-25 13:56:45 +02:00
OBJ =$(SRC:src/%.c=obj/%.o)
2023-10-26 11:01:31 +02:00
all: libft mlx/build/mlx42.a $(NAME)
2023-10-25 13:56:45 +02:00
clean:
2023-10-26 11:01:31 +02:00
@$(RM) obj
2023-10-25 13:56:45 +02:00
@$(MAKE) -C libft clean > /dev/null
@$(MAKE) -C mlx/build clean > /dev/null
@printf "\e[1;35mCleaned Object Files\n\e[0;00m"
fclean: clean
2023-10-25 14:07:29 +02:00
@$(RM) $(NAME) mlx/build > /dev/null
2023-10-25 13:56:45 +02:00
@$(MAKE) -C libft fclean > /dev/null
@printf "\e[1;31mCleaned Executables\n\e[0;00m"
re: fclean all
$(OBJ): $(SRC)
@mkdir -p $(dir $@)
@printf "\e[1;34mBuilding $@\n\e[0;00m"
@$(CC) $(CFLAGS) -c $(@:obj/%.o=src/%.c) -o $@
$(NAME): $(OBJ)
@printf "\e[1;36mCompiling $@\e[0;00m\n"
@$(CC) $(FC) -o $(NAME) $(SRC) $(LIB) $(HEAD)
@printf "\e[1;32mDone\e[0;00m\n"
libft:
@$(MAKE) -C libft all
2023-10-26 11:01:31 +02:00
mlx/build/mlx42.a:
2023-10-25 13:56:45 +02:00
@cmake -S mlx -B mlx/build
@$(MAKE) -C mlx/build -j4
.PHONY: libft