# -- Project Configuration -- # Project Meta Settings NAME = ft_ping RELEASE_TYPE = Debug CURRENT_DIR = ${CURDIR} # Project Build Output Settings BUILD_DIR = build INSTALL_DIR = ${CURRENT_DIR} # Project Build Settings GENERATOR_TYPE = Ninja WORKERS = 4 # Project C Settings CFLAGS = -Wall -Wextra -Werror C_SRCS = srcs/main.c INCLUDE_DIRS = includes INCLUDE_SRCS = includes/main.h # Project Subdirectory Settings SUBDIRECTORIES = # -- Make Recipes -- # DO NOT TOUCH BELOW UNLESS YOU KNOW WHAT YOU ARE DOING :) all: $(NAME) re: fclean all $(BUILD_DIR): CMakeLists.txt $(C_SRCS) $(INCLUDES) $(SUBDIRECTORIES) @MAKE_NAME="$(NAME)" MAKE_C_SRCS="$(C_SRCS)" MAKE_CFLAGS="$(CFLAGS)" MAKE_INCLUDE_DIRS="$(INCLUDE_DIRS)" \ MAKE_INCLUDE_SRCS="$(INCLUDE_SRCS)" MAKE_INSTALL_DIR="$(INSTALL_DIR)" MAKE_NAME="$(NAME)" \ MAKE_SUBDIRECTORIES="$(SUBDIRECTORIES)" \ cmake -G "$(GENERATOR_TYPE)" -DCMAKE_BUILD_TYPE=$(RELEASE_TYPE) -S . -B $(BUILD_DIR) $(BUILD_DIR)/$(NAME): $(BUILD_DIR) @cmake --build $(BUILD_DIR) -- -j $(WORKERS) $(NAME): $(BUILD_DIR)/$(NAME) @sudo cmake --build $(BUILD_DIR) --target install --config $(RELEASE_TYPE) fclean: @rm -rf $(NAME) @rm -rf $(BUILD_DIR) clean: @cmake --build $(BUILD_DIR) -- clean .PHONY: all re fclean clean