You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
885 B
48 lines
885 B
NAME = minishell
|
|
LIBFT = libft.a
|
|
SRCS = minishell.c lexer.c lexer_2.c lexer_3.c parser.c caller.c
|
|
SRCS += built-in.c env.c utils.c errors.c
|
|
OBJS = ${SRCS:.c=.o}
|
|
|
|
|
|
UNAME_S := $(shell uname -s)
|
|
ifeq ($(UNAME_S), Linux)
|
|
LIB = -lreadline -lhistory -L. -lft
|
|
endif
|
|
ifeq ($(UNAME_S), Darwin)
|
|
READLINE_INC = -I ~/.brew/opt/readline/include
|
|
LIB = -L ~/.brew/lib -lreadline -L ~/.brew/lib -lhistory -L. -lft
|
|
endif
|
|
|
|
all: $(NAME)
|
|
|
|
$(VERBOSE).SILENT:
|
|
|
|
$(NAME): $(LIBFT) $(OBJS)
|
|
echo Making Minishell...
|
|
gcc -g ${OBJS} ${LIB} -o ${NAME}
|
|
echo ✅
|
|
|
|
$(LIBFT):
|
|
${MAKE} -C ./libft
|
|
cp ./libft/libft.a .
|
|
|
|
|
|
%.o: %.c
|
|
gcc -Werror -Wextra -Wall -g -c $< ${READLINE_INC}
|
|
|
|
clean:
|
|
echo Cleaning objects...
|
|
rm -rf ${OBJS}
|
|
echo ✅
|
|
|
|
fclean: clean
|
|
${MAKE} -C ./libft fclean
|
|
rm -rf libft.a
|
|
echo Cleaning binary...
|
|
rm -rf ${NAME}
|
|
echo ✅
|
|
|
|
re: fclean all
|
|
|
|
.PHONY: all clean fclean re
|
|
|