started conversion of functions to data structure system still WIP added first iteration of int parser does not check for int overflow
124 lines
3.2 KiB
Makefile
124 lines
3.2 KiB
Makefile
#******************************************************************************#
|
|
# #
|
|
# ::: :::::::: #
|
|
# Makefile :+: :+: :+: #
|
|
# +:+ +:+ +:+ #
|
|
# By: tmaze <tmaze@student.42.fr> +#+ +:+ +#+ #
|
|
# +#+#+#+#+#+ +#+ #
|
|
# Created: 2019/02/23 14:30:57 by tmaze #+# #+# #
|
|
# Updated: 2019/02/23 14:54:34 by tmaze ### ########.fr #
|
|
# #
|
|
#******************************************************************************#
|
|
|
|
NAME1 = checker
|
|
NAME2 = push_swap
|
|
|
|
# Make options
|
|
MAKEFLAGS += --no-print-directory
|
|
|
|
# Output
|
|
UNAME := $(shell uname)
|
|
ifeq ($(UNAME), Darwin)
|
|
ECHO = @echo
|
|
endif
|
|
|
|
ifeq ($(UNAME), Linux)
|
|
ECHO = @echo -e
|
|
endif
|
|
|
|
# Compilator
|
|
CC = gcc
|
|
FLAGS = -Wall -Wextra -g
|
|
|
|
# Folders
|
|
LIBDIR = libft
|
|
SRCDIR = srcs
|
|
OBJDIR = objs
|
|
INCDIR = includes libft
|
|
|
|
# Source files
|
|
SRC = ps_push.c \
|
|
ps_rot.c \
|
|
ps_rerot.c \
|
|
ps_swap.c \
|
|
ps_stktools.c \
|
|
\
|
|
checker.c
|
|
|
|
MAIN1 = checker.c
|
|
MAIN2 = push_swap.c
|
|
|
|
OBJ = $(SRC:.c=.o)
|
|
|
|
OBJ1 = $(MAIN1:.c=.o)
|
|
OBJ2 = $(MAIN2:.c=.o)
|
|
|
|
LIB = ft
|
|
LIBFILE = libft.a
|
|
|
|
# Prefixes
|
|
OBJP = $(addprefix $(OBJDIR)/, $(SRC:.c=.o))
|
|
OBJP1 = $(addprefix $(OBJDIR)/, $(MAIN1:.c=.o))
|
|
OBJP2 = $(addprefix $(OBJDIR)/, $(MAIN2:.c=.o))
|
|
INCP = $(foreach dir, $(INCDIR), -I$(dir))
|
|
OBJS_DIRS = $(sort $(dir $(OBJP)))
|
|
# Default Rule
|
|
DRULE = all
|
|
|
|
# Main rules
|
|
default :
|
|
@echo -e "$(PUR)===> $(GRE)$(NAME) : $(PUR) START RULE : $(DRULE) <===$(DEF)"
|
|
@make $(DRULE)
|
|
@echo -e "$(PUR)===> $(GRE)$(NAME) : $(PUR) END RULE : $(DRULE) <===$(DEF)"
|
|
|
|
all : $(NAME1) $(NAME2)
|
|
|
|
re : fclean default
|
|
|
|
# Compilation rules
|
|
|
|
$(OBJDIR)/%.o : $(SRCDIR)/%.c $(OBJDIR)
|
|
$(CC) $(FLAGS) -c -o $@ $< $(INCP)
|
|
|
|
$(OBJDIR) :
|
|
@echo -e "$(YEL)===> $(GRE)$(NAME) : $(YEL) Objects Compilation <===$(DEF)"
|
|
@mkdir -p $(OBJDIR)
|
|
@mkdir -p $(OBJS_DIRS)
|
|
|
|
$(LIBDIR)/$(LIBFILE) :
|
|
@echo -e "$(YEL)===> $(GRE)$(NAME) : $(YEL) Librairy Compilation <===$(DEFOB)"
|
|
$(MAKE) -C $(LIBDIR) all
|
|
|
|
$(NAME1) : $(OBJP1) $(OBJP) $(LIBDIR)/$(LIBFILE)
|
|
@echo -e "$(YEL)===> $(GRE)$(NAME) : $(YEL) Binary Compilation <===$(DEF)"
|
|
$(CC) $(FLAGS) -c $@ $^ $(INCP) -L$(LIBDIR) -l$(LIB)
|
|
|
|
$(NAME2) : $(OBJP2) $(OBJP) $(LIBDIR)/$(LIBFILE)
|
|
@echo -e "$(YEL)===> $(GRE)$(NAME) : $(YEL) Binary Compilation <===$(DEF)"
|
|
$(CC) $(FLAGS) -c $@ $^ $(INCP) -L$(LIBDIR) -l$(LIB)
|
|
|
|
# Cleaner rules
|
|
clean :
|
|
@echo -e "$(RED)===> $(GRE)$(NAME) : $(RED) Delete Object Files <===$(DEF)"
|
|
@rm -rf $(OBJDIR)
|
|
|
|
fclean : clean
|
|
@echo -e "$(RED)===> $(GRE)$(NAME) : $(RED) Delete Binary File <===$(DEF)"
|
|
@rm -f $(NAME1) $(NAME2)
|
|
|
|
# Phony
|
|
.PHONY = default all re clean fclean $(OBJDIR) $(NAME)
|
|
# Color
|
|
DEF = \033[0m
|
|
BLA = \033[30m
|
|
BLI = \033[5m
|
|
BLU = \033[34m
|
|
CYA = \033[36m
|
|
GRA = \033[1m
|
|
GRE = \033[32m
|
|
PUR = \033[35m
|
|
RED = \033[31m
|
|
SOU = \033[4m
|
|
WHI = \033[37m
|
|
YEL = \033[33m
|