Initial commit
This commit is contained in:
51
Makefile
Normal file
51
Makefile
Normal file
@ -0,0 +1,51 @@
|
||||
# -- 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
|
Reference in New Issue
Block a user