aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2020-01-29 19:37:04 +0100
committerCharles <sircharlesaze@gmail.com>2020-01-29 19:37:04 +0100
commit396f61a507c981bab6e26e2eecf5c1eeba2fd565 (patch)
tree1103da84a64bbd42f2c1840c159f38a2d8917a61 /Makefile
downloadminishell-396f61a507c981bab6e26e2eecf5c1eeba2fd565.tar.gz
minishell-396f61a507c981bab6e26e2eecf5c1eeba2fd565.tar.bz2
minishell-396f61a507c981bab6e26e2eecf5c1eeba2fd565.zip
Initial Commit
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile69
1 files changed, 69 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..dc3a101
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,69 @@
+RM = rm -f
+MAKE = make
+
+TESTEXEC = test.sh
+
+LIBFTDIR = libft
+INCLUDEDIR = include
+SRCDIR = src
+OBJDIR = obj
+
+INCLUDEFILES = minishell.h
+INCLUDE = $(addprefix $(INCLUDEDIR)/, $(INCLUDEFILES))
+
+SRCFILES = main.c
+SRC = $(addprefix $(SRCDIR)/, $(SRCFILES))
+
+OBJ = $(SRC:$(SRCDIR)/%.c=$(OBJDIR)/%.o)
+
+CC = gcc
+CCFLAGS = -I$(LIBFTDIR)/include -I$(INCLUDEDIR) -Wall -Wextra #-Werror
+LDFLAGS = -L$(LIBFTDIR) -lft
+
+NAME = minishell
+
+.PHONY: all
+all: libft_all make_obj_dir $(NAME)
+
+.PHONY: test
+test:
+ ./$(TESTEXEC)
+
+.PHONY: make_obj_dir
+make_obj_dir:
+ @if [ ! -d "$(OBJDIR)" ]; then echo "Making object dir"; mkdir $(OBJDIR); fi
+
+$(NAME): $(OBJ)
+ @echo "Linking: $@"
+ $(CC) -o $@ $(OBJ) $(LDFLAGS)
+
+$(OBJDIR)/%.o: $(SRCDIR)/%.c $(INCLUDE)
+ @echo "Compiling: $@"
+ @$(CC) $(CCFLAGS) -c -o $@ $<
+
+.PHONY: clean
+clean: libft_clean
+ @echo "Removing objects"
+ @$(RM) -r $(OBJDIR)
+
+.PHONY: fclean
+fclean: libft_fclean
+ @echo "Removing objects"
+ @$(RM) -r $(OBJDIR)
+ @echo "Removing exectable"
+ @$(RM) $(NAME)
+
+.PHONY: re
+re: fclean all
+
+.PHONY: libft_all
+libft_all:
+ $(MAKE) -C $(LIBFTDIR) all
+
+.PHONY: libft_clean
+libft_clean:
+ $(MAKE) -C $(LIBFTDIR) clean
+
+.PHONY: libft_fclean
+libft_fclean:
+ $(MAKE) -C $(LIBFTDIR) fclean