mirror of
https://github.com/Ladebeze66/ft_irc.git
synced 2025-12-16 05:58:09 +01:00
54 lines
1.9 KiB
Makefile
54 lines
1.9 KiB
Makefile
# **************************************************************************** #
|
|
# #
|
|
# ::: :::::::: #
|
|
# Makefile :+: :+: :+: #
|
|
# +:+ +:+ +:+ #
|
|
# By: fgras-ca <fgras-ca@student.42.fr> +#+ +:+ +#+ #
|
|
# +#+#+#+#+#+ +#+ #
|
|
# Created: 2024/05/09 13:54:36 by fgras-ca #+# #+# #
|
|
# Updated: 2024/05/12 18:19:36 by fgras-ca ### ########.fr #
|
|
# #
|
|
# **************************************************************************** #
|
|
|
|
# Nom de l'exécutable à générer
|
|
NAME := ircserv
|
|
|
|
# Compilateur C++ et options de compilation
|
|
CXX := g++
|
|
CXXFLAGS := -Wall -Wextra -Werror -std=c++98
|
|
|
|
# Dossiers
|
|
SRC_DIR := src
|
|
OBJ_DIR := build
|
|
INC_DIR := include
|
|
|
|
# Trouver les fichiers source (.cpp) et les transformer en fichiers objet (.o)
|
|
SOURCES := $(wildcard $(SRC_DIR)/*.cpp)
|
|
OBJECTS := $(SOURCES:$(SRC_DIR)/%.cpp=$(OBJ_DIR)/%.o)
|
|
|
|
# Inclure les headers du dossier 'include'
|
|
CPPFLAGS := -I$(INC_DIR)
|
|
|
|
# L'exécutable final dépend des fichiers objet
|
|
$(NAME): $(OBJECTS)
|
|
$(CXX) $(OBJECTS) -o $@
|
|
|
|
# Compilation des fichiers source en fichiers objet
|
|
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp
|
|
@mkdir -p $(OBJ_DIR)
|
|
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -g -c $< -o $@
|
|
|
|
# Commande pour nettoyer le projet (supprimer les fichiers objet et l'exécutable)
|
|
clean:
|
|
@rm -rf $(OBJ_DIR)
|
|
|
|
# Commande pour supprimer tout ce qui a été construit, reconstruire tout
|
|
fclean: clean
|
|
@rm -f $(NAME)
|
|
|
|
# Commande pour recompiler tout le projet
|
|
re: fclean $(NAME)
|
|
|
|
# Éviter les conflits de noms avec des fichiers
|
|
.PHONY: clean fclean re
|