-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
executable file
·63 lines (47 loc) · 1.16 KB
/
Makefile
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
NAME = pathfinder
CFLG = -std=c11 -Wall -Wextra -Werror -Wpedantic
COMP = clang
SRCD = src
INCD = inc
OBJD = obj
LMXD = libmx
LMXA:= $(LMXD)/libmx.a
LMXI:= $(LMXD)/inc
INC = pathfinder.h
INCS = $(addprefix $(INCD)/, $(INC))
SRC = mx_create_isl_matrix.c \
mx_get_arr_islands.c \
mx_errors.c \
mx_algorithm.c \
mx_get_matrix.c \
mx_path_split.c \
mx_get_allpaths.c \
main.c \
mx_printpaths.c \
mx_empty_lines.c \
mx_printerr_line.c \
mx_err_check.c \
mx_check_minus.c \
mx_check_comma.c \
mx_swaps.c \
mx_sort_fifo.c
SRCS = $(addprefix $(SRCD)/, $(SRC))
OBJS = $(addprefix $(OBJD)/, $(SRC:%.c=%.o))
all: install
install: $(LMXA) $(NAME)
$(NAME): $(OBJS)
@$(COMP) $(CFLG) $(OBJS) -L$(LMXD) -lmx -o $@
$(OBJD)/%.o: $(SRCD)/%.c $(INCS)
@$(COMP) $(CFLG) -c $< -o $@ -I$(INCD) -I$(LMXI)
$(OBJS): | $(OBJD)
$(OBJD):
@mkdir -p $@
$(LMXA):
@make -sC $(LMXD)
clean:
@make -sC $(LMXD) $@
@rm -rf $(OBJD)
uninstall: clean
@make -sC $(LMXD) $@
@rm -rf $(NAME)
reinstall: uninstall install