From e1f3547e236671697c66e27ba02b6a151e59af04 Mon Sep 17 00:00:00 2001 From: Charles Date: Sat, 20 Jun 2020 11:08:06 +0200 Subject: Initial commit --- Makefile | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 Makefile (limited to 'Makefile') diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..78da46f --- /dev/null +++ b/Makefile @@ -0,0 +1,44 @@ +RM = rm -f + +INCDIR = inc +SRCDIR = src +OBJDIR = obj +OBJDIRS = $(shell find $(SRCDIR) -type d | sed 's/src/$(OBJDIR)/') + +INC = $(shell find $(INCLUDEDIR) -name "*.h") +SRC = $(shell find $(SRCDIR) -name "*.c") +OBJ = $(SRC:$(SRCDIR)/%.c=$(OBJDIR)/%.o) + +CC = gcc +CCFLAGS = -g -I$(INCDIR) --std=c99 -Wall -Wextra -Wpedantic #-Werror +LDFLAGS = -L$(LIBFTDIR) -lft + +NAME = tar + +all: prebuild $(NAME) + +prebuild: + @echo "Making dir $$subdir"; mkdir -p $(OBJDIR) + @for subdir in $(OBJDIRS); do echo "Making dir $$subdir"; mkdir -p $$subdir; done + +$(NAME): $(OBJ) + @echo "Linking: $@" + @$(CC) -o $@ $(OBJ) $(LDFLAGS) + +$(OBJDIR)/%.o: $(SRCDIR)/%.c $(INC) + @echo "Compiling: $@" + @$(CC) $(CCFLAGS) -c -o $@ $< + +clean: + @echo "Removing objects" + @$(RM) -r $(OBJDIR) + +fclean: + @echo "Removing objects" + @$(RM) -r $(OBJDIR) + @echo "Removing exectable" + @$(RM) $(NAME) + +re: fclean all + +.PHONY: all prebuild clean fclean re -- cgit