# **************************************************************************** # # # # ::: :::::::: # # Makefile :+: :+: :+: # # +:+ +:+ +:+ # # By: whaffman +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2024/07/09 16:25:07 by whaffman #+# #+# # # Updated: 2024/07/09 17:08:01 by whaffman ### ########.fr # # # # **************************************************************************** # CC = cc CFLAGS = -Wall -Werror -Wextra # Add any other static library in the same fashion - 1 # INCLUDE: .h files or .a library folders # SRC: .c files SRC_DIR = src OBJ_DIR = obj OBJ_SO_DIR = obj_so INC_DIR = include SRC_FILES = $(wildcard $(SRC_DIR)/*.c) OBJ_FILES = $(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.o,$(SRC_FILES)) OBJ_FILES_SO = $(patsubst $(SRC_DIR)/%.c,$(OBJ_SO_DIR)/%.o,$(SRC_FILES)) # Add any other static library in the same fashion - 2 NAME = libft.a NAME_SO = libft.so .PHONY: all clean fclean re so all: $(NAME) so: $(NAME_SO) $(NAME): $(OBJ_FILES) ar rcs $(NAME) $(OBJ_FILES) $(OBJ_DIR)/%.o: $(SRC_DIR)/%.c mkdir -p $(OBJ_DIR) $(CC) $(CFLAGS) -I$(INC_DIR) -O3 -c -o $@ $< $(NAME_SO): $(OBJ_FILES_SO) $(CC) -shared -o $(NAME_SO) $(OBJ_FILES_SO) $(OBJ_SO_DIR)/%.o: $(SRC_DIR)/%.c mkdir -p $(OBJ_SO_DIR) $(CC) -fPIC $(CFLAGS) -I$(INC_DIR) -c -o $@ $< clean: $(RM) -r $(OBJ_DIR) $(RM) -r $(OBJ_SO_DIR) fclean: clean $(RM) $(NAME) $(RM) $(NAME_SO) re: fclean all