minitalk/Makefile
2023-10-26 18:33:25 +02:00

57 lines
1.9 KiB
Makefile

# **************************************************************************** #
# #
# .--. _ #
# Makefile :+: :+: #
# |:_/ || |_ _ ___ __ #
# By: djonker <djonker@student.codam.nl> // \ \ __| | | \ \/ / #
# (| | )|_| |_| |> < #
# Created: 2021/08/19 15:20:20 by djonker /'\_ _/`\__|\__,_/_/\_\ #
# Updated: 2023/10/26 18:01:29 by houtworm ######## odam.nl #
# #
# **************************************************************************** #
NAME =minitalk
CC =gcc
CFLAGS =-Wall -Werror -Wextra# -fsanitize=address
RM =rm -f
SSRC =src/server/server.c
SOBJ =$(SSRC:src/%.c=obj/%.o)
CSRC =src/client/client.c
COBJ =$(CSRC:src/%.c=obj/%.o)
all: $(NAME)
clean:
@$(RM) -r obj
@printf "\e[1;35mCleaned Object Files\n\e[0;00m"
fclean: clean
@$(RM) server client
@printf "\e[1;31mCleaned Executables\n\e[0;00m"
re: fclean all
$(NAME): server client
$(SOBJ): $(SSRC) minitalk.h Makefile
@mkdir -p $(dir $@)
@printf "\e[1;34mBuilding $@\n\e[0;00m"
@$(CC) $(CFLAGS) -c $(@:obj/%.o=src/%.c) -o $@
server: $(SOBJ)
@printf "\e[1;36mCompiling $@\n\e[0;00m"
@$(CC) $(CFLAGS) $^ -o $@
@printf "\e[1;32mDone\e[0;00m\n"
$(COBJ): $(CSRC)
@mkdir -p $(dir $@)
@printf "\e[1;34mBuilding $@\n\e[0;00m"
@$(CC) $(CFLAGS) -c $(@:obj/%.o=src/%.c) -o $@
client: $(COBJ)
@printf "\e[1;36mCompiling $@\n\e[0;00m"
@$(CC) $(CFLAGS) $^ -o $@
@printf "\e[1;32mDone\e[0;00m\n"
.PHONY: all clean fclean re $(NAME)