diff options
| author | Charles <sircharlesaze@gmail.com> | 2020-01-30 18:36:30 +0100 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2020-01-30 18:36:30 +0100 |
| commit | aa244ec3fb071a7fd08494d04cc865b281502804 (patch) | |
| tree | 4050030647cb9649b374b576c4dad7470840fc44 /Makefile | |
| parent | aa9613efb6fb39bd96fc4836b5d38c3746af1b15 (diff) | |
| download | libft-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-- | Makefile | 49 |
1 files changed, 10 insertions, 39 deletions
@@ -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" |
