aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2020-01-30 18:36:30 +0100
committerCharles <sircharlesaze@gmail.com>2020-01-30 18:36:30 +0100
commitaa244ec3fb071a7fd08494d04cc865b281502804 (patch)
tree4050030647cb9649b374b576c4dad7470840fc44 /Makefile
parentaa9613efb6fb39bd96fc4836b5d38c3746af1b15 (diff)
downloadlibft-aa244ec3fb071a7fd08494d04cc865b281502804.tar.gz
libft-aa244ec3fb071a7fd08494d04cc865b281502804.tar.bz2
libft-aa244ec3fb071a7fd08494d04cc865b281502804.zip
renaming header files, .libftignore file for simpler features selection
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile49
1 files changed, 10 insertions, 39 deletions
diff --git a/Makefile b/Makefile
index f7e97c6..27ac82e 100644
--- a/Makefile
+++ b/Makefile
@@ -17,55 +17,26 @@ MAKE_ARGS = --no-print-directory
CC = gcc
CCFLAGS = -I$(INCLUDE_DIR) -Wall -Wextra -Werror
-NAME = libft.a
SRC_DIR = src
INCLUDE_DIR = include
-BUILD_DIR = build
-TEST_DIR = test
-
-# AVAILABLE_FEATURES = get_next_line ft_printf ft_lst
-CONF_FILE = libft.conf
+OBJ_DIR = obj
+SCRIPT_DIR = script
-ifndef (FEATURES)
-endif
-ifeq ($(wildcard $(CONF_FILE)),)
-$(warning "No configuration file found with name $(CONF_FILE), using default")
- FEATURES = get_next_line
- CCFLAGS += -D FT_FEATURES_FT_GET_NEXT_LINE
-else
- FEATURES = $(shell sed -n 's/FEATURES=//p' $(CONF_FILE))
-endif
+IGNORE_FILE = .libftignore
+IGNORE_DEFAULT = ft_printf
-ifeq ($(findstring get_next_line,$(FEATURES)),)
- FIND_ARGS += -not -name "ft_get_next_line.c"
-else
- CCFLAGS += -D FT_FEATURES_FT_GET_NEXT_LINE
-endif
-ifeq ($(findstring ft_printf,$(FEATURES)),)
- FIND_ARGS += -not -path "*printf*"
-else
- CCFLAGS += -D FT_FEATURES_FT_PRINTF
-endif
-ifeq ($(findstring ft_lst,$(FEATURES)),)
- FIND_ARGS += -not -name "ft_lst*.c"
-else
- CCFLAGS += -D FT_FEATURES_FT_LST
-endif
+NAME = libft.a
-SRC = $(shell find $(SRC_DIR) $(FIND_ARGS) -name "*.c")
-OBJ = $(SRC:$(SRC_DIR)/%.c=$(BUILD_DIR)/%.o)
+SRC = $(shell sh $(SCRIPT_DIR)/find_src.sh $(IGNORE_FILE))
+OBJ = $(SRC:$(SRC_DIR)/%.c=$(OBJ_DIR)/%.o)
HEADER = $(shell find $(INCLUDE_DIR) -name "*.h")
all: make_build_dirs $(NAME)
-.PHONY: test
-test:
- @$(MAKE) $(MAKE_ARGS) -C $(TEST_DIR) run_raw
-
make_build_dirs:
@for dir in $$(find $(SRC_DIR)/* $(FIND_ARGS) -type d | \
- sed 's_$(SRC_DIR)/_$(BUILD_DIR)/_g'); \
+ sed 's_$(SRC_DIR)/_$(OBJ_DIR)/_g'); \
do \
if [ ! -d "$$dir" ]; then \
mkdir -p $$dir; echo "Making build dir: $$dir"; fi \
@@ -75,13 +46,13 @@ $(NAME): $(OBJ) $(HEADER)
@echo "Linking: $@"
@$(LIB) $@ $(OBJ)
-$(BUILD_DIR)/%.o: $(SRC_DIR)/%.c
+$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c
@echo "Compiling: $@"
@$(CC) $(CCFLAGS) -c -o $@ $<
clean:
@echo "Removing objects"
- @$(RM) -r $(BUILD_DIR)
+ @$(RM) -r $(OBJ_DIR)
fclean: clean
@echo "Removing library"