-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathMakefile1
76 lines (60 loc) · 1.91 KB
/
Makefile1
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
65
66
67
68
69
70
71
72
73
74
75
76
#******************************************************************************#
# #
# ::: :::::::: #
# Makefile :+: :+: :+: #
# +:+ +:+ +:+ #
# By: evilsbol <evilsbol@student.42.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2013/12/16 19:38:04 by evilsbol #+# #+# #
# Updated: 2014/01/06 15:31:09 by evilsbol ### ########.fr #
# #
#******************************************************************************#
# PERSONNAL VARIABLES
LIBS = -L./
HEAD = -Iincludes
TEST =
EXEC = main.c
BINA =
NAME =
SRCS =
# NORME COMPLIANT VARIABLES
CC = gcc -Wall -Wextra -Werror -pedantic
AR = ar -cvq
RM = rm -rf
SRCDIR = srcs
OBJDIR = objs
OBJS = $(addprefix $(OBJDIR)/, $(SRCS:.c=.o))
NOW := $(shell date +"%c" | tr ' :' '_')
# START RULES
.PHONY: depend clean fclean re build run save
all: lib $(EXEC)
$(BINA): $(NAME)
@$(CC) -o $(BINA) $(EXEC) $(LIBS) $(HEAD)
$(NAME): $(OBJS)
@$(AR) $@ $^
@ranlib $@
$(OBJS): | $(OBJDIR)
$(OBJDIR):
@mkdir -p $(OBJDIR)
$(addprefix $(OBJDIR)/, %.o): $(addprefix $(SRCDIR)/, %.c)
@$(CC) -o $@ -c $^ $(HEAD)
lib:
@make -C
clean:
@$(RM) $(OBJS)
@echo object files removed
fclean: clean
@$(RM) $(NAME) $(BINA)
@echo archive and executable files removed
re: fclean
@make all
# Personnal rules
save:
@git add --all
@git commit -m 'saving $(NOW)'
@echo all files added and commited
run:
@echo "\033[32mSTART TEST\n"
@make all && ./$(BINA) $(TEST)
@echo "\033[32m\nEND TEST"
# DO NOT DELETE THIS LINE -- make depends on it