diff options
| author | Charles Cabergs <me@cacharle.xyz> | 2020-10-11 15:52:52 +0200 |
|---|---|---|
| committer | Charles Cabergs <me@cacharle.xyz> | 2020-10-11 15:52:52 +0200 |
| commit | c98de126d2252fe47dc2a9094a5f9a8fa6b4b60a (patch) | |
| tree | 12f1c827ee063ed3e7038f6a704014e611e4f388 /libft/Makefile | |
| parent | a4ceb5974d1b7dcdd12cc81b7eb07893ea16c8ad (diff) | |
| download | minishell-c98de126d2252fe47dc2a9094a5f9a8fa6b4b60a.tar.gz minishell-c98de126d2252fe47dc2a9094a5f9a8fa6b4b60a.tar.bz2 minishell-c98de126d2252fe47dc2a9094a5f9a8fa6b4b60a.zip | |
Removing libft/minishell_test submodules, Removing subject/README/etc
Diffstat (limited to 'libft/Makefile')
| -rw-r--r-- | libft/Makefile | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/libft/Makefile b/libft/Makefile new file mode 100644 index 0000000..aa03c59 --- /dev/null +++ b/libft/Makefile @@ -0,0 +1,98 @@ +# **************************************************************************** # +# # +# ::: :::::::: # +# Makefile :+: :+: :+: # +# +:+ +:+ +:+ # +# By: cacharle <marvin@42.fr> +#+ +:+ +#+ # +# +#+#+#+#+#+ +#+ # +# Created: 2019/10/08 15:45:53 by cacharle #+# #+# # +# Updated: 2020/10/11 14:51:18 by cacharle ### ########.fr # +# # +# **************************************************************************** # + +LIB = ar rcs +RM = rm -f +NORM = norminette +MAKE = make +MAKE_ARGS = --no-print-directory +DOXYGEN = doxygen +DOXYGEN_FILE = Doxyfile + +SRC_DIR = src +INCLUDE_DIR = include +OBJ_DIR = obj +SCRIPT_DIR = script +TEST_DIR = test +DOC_DIR = doc + +INCLUDE_DIR = include + + +CC = gcc +OFLAG ?= -g -O1 +CCFLAGS = $(OFLAG) -I$(INCLUDE_DIR) -Wall -Wextra -Werror +ifeq ($(TRAVIS_COMPILER),gcc) +CCFLAGS += -Wno-unused-result +endif + +IGNORE_FILE = .libftignore +IGNORE_DEFAULT = ft_printf + +NAME = libft.a + +SRC = $(shell find $(SRC_DIR) -type f -name '*.c') +OBJ = $(SRC:$(SRC_DIR)/%.c=$(OBJ_DIR)/%.o) + +INCLUDE = $(shell find $(INCLUDE_DIR) -name "*.h") + +all: prebuild + @$(MAKE) -j$(JOBS) allnopre + +allnopre: $(NAME) + +.PHONY: test +test: all + @echo "Testing" + @$(MAKE) -C $(TEST_DIR) run + +norm: + @if [ `command -v $(NORM)` ]; \ + then echo "Running norminette"; \ + $(NORM) $(SRC) $(INCLUDE); \ + else echo "$(NORM) not installed"; fi + +prebuild: + @for dir in $$(find $(SRC_DIR)/* $(FIND_ARGS) -type d | \ + sed 's_$(SRC_DIR)/_$(OBJ_DIR)/_g'); \ + do \ + if [ ! -d "$$dir" ]; then \ + mkdir -p $$dir; echo "Making build dir: $$dir"; fi \ + done + +$(NAME): $(OBJ) $(INCLUDE) + @echo "Linking: $@" + @$(LIB) $@ $(OBJ) + +$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c $(INCLUDE) + @echo "Compiling: $@" + @$(CC) $(CCFLAGS) -c -o $@ $< + +clean: + @echo "Removing objects" + @$(RM) -r $(OBJ_DIR) + +fclean: clean + @echo "Removing $(NAME)" + @$(RM) $(NAME) + +re: fclean all + +.PHONY: doc +doc: + mkdir -p tmp + for f in $(SRC) $(INCLUDE); do mkdir -p tmp/`dirname $$f` && sed 's_^/\*$$_/**_' $$f > tmp/$$f; done + $(DOXYGEN) $(DOXYGEN_FILE) + +doc_clean: + $(RM) -r $(DOC_DIR) + |
