-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
64 lines (48 loc) · 1.19 KB
/
Makefile
File metadata and controls
64 lines (48 loc) · 1.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
NAME = libasm
LIB = libasm.a
SRCS = ./ft_strlen.s \
./ft_strcmp.s \
./ft_strcpy.s \
./ft_strdup.s \
./ft_write.s \
./ft_read.s
NASM = nasm
NFLAGS = -f macho64
CC = gcc
CFLAGS = -Wall -Werror -Wextra
ECHO = echo
RM = rm -f
C_RESET = \033[0m
C_PENDING = \033[0;36m
C_SUCCESS = \033[0;32m
ES_ERASE = "\033[A\033[K\033[A"
ERASE = $(ECHO) $(ES_ERASE)
OBJ = $(SRCS:.s=.o)
%.o : %.s
$(NASM) $(NFLAGS) $< -o $@
all: $(NAME)
$(NAME): $(OBJ)
@ar rcs $(LIB) $(OBJ)
cc:
@$(ECHO) "Compiling...\t[$(C_PENDING) ⌛︎ $(C_RESET)]"
@$(CC) $(CFLAGS) main.c $(LIB)
@$(ERASE)
@$(ECHO) "Compiling...\t[$(C_SUCCESS) ✅ $(C_RESET)]"
test: fclean all cc
@$(ECHO) "Execute...\t[$(C_PENDING) ⌛︎ $(C_RESET)]"
@./a.out
@$(ERASE)
@$(ECHO) "Execute...\t[$(C_SUCCESS) ✅ $(C_RESET)]"
clean:
@$(ECHO) "Deleting OBJS\t[$(C_PENDING) ⌛︎ $(C_RESET)]"
@$(RM) $(OBJ)
@$(ERASE)
@$(ECHO) "Deleting OBJS\t[$(C_SUCCESS) ✅ $(C_RESET)]"
fclean: clean
@$(ECHO) "Deleting LIB\t[$(C_PENDING) ⌛︎ $(C_RESET)]"
@$(RM) $(LIB)
@$(RM) ./a.out
@$(ERASE)
@$(ECHO) "Deleting LIB\t[$(C_SUCCESS) ✅ $(C_RESET)]"
re: fclean all
.PHONY: all clean fclean re