Files
ft_ping/Makefile

54 lines
1.3 KiB
Makefile

# -- Project Configuration --
# Project Meta Settings
NAME = ft_ping
RELEASE_TYPE = Release
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: $(BUILD_DIR)/$(NAME)
install: $(NAME)
re: fclean all
$(BUILD_DIR): Makefile 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