diff options
Diffstat (limited to 'test/Makefile')
| -rw-r--r-- | test/Makefile | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/test/Makefile b/test/Makefile new file mode 100644 index 0000000..3f31059 --- /dev/null +++ b/test/Makefile @@ -0,0 +1,52 @@ +MAKE_ARGS = --no-print-directory + +NAME = test_libft + +BUILD_DIR = build +LIBFT_DIR = .. +CTEST_DIR = ctest + +CC = gcc +CCFLAGS = -Wall -Wextra -I$(LIBFT_DIR)/include -I$(CTEST_DIR) +LDFLAGS = -L$(LIBFT_DIR) -lft + +HEADER = $(shell find . -name "*.h") +SRC = $(shell find . -name "*_test.c") +SRC += $(shell find $(CTEST_DIR) -name "*.c") +OBJ = $(SRC:%.c=$(BUILD_DIR)/%.o) + +all: make_build_dirs $(NAME) + +run_raw: all + @./$(NAME) + +make_build_dirs: + @for dir in $$(find . -not -path "*build*" -type d | sed 's/.*/$(BUILD_DIR)\/&/'); \ + do \ + if [ ! -d "$$dir" ]; then \ + mkdir -p $$dir; echo "Making build dir: $$dir"; fi \ + done + +$(NAME): $(OBJ) libft_all + @echo "Test: Linking $@" + @$(CC) -o $@ $(OBJ) $(LDFLAGS) + +$(BUILD_DIR)/%.o: %.c $(HEADER) + @echo "Test: Compiling: $@" + @$(CC) $(CCFLAGS) -c -o $@ $< + +clean: + @echo "Test: Removing objects" + @$(RM) -r $(BUILD_DIR) + +fclean: clean + @echo "Test: Removing library" + @$(RM) $(NAME) + @echo "Test: Removing libft" + @$(MAKE) $(MAKE_ARGS) -C $(LIBFT_DIR) fclean + +re: fclean all + +libft_all: + @echo "Test: Making libft" + @$(MAKE) $(MAKE_ARGS) -C $(LIBFT_DIR) all |
