summaryrefslogtreecommitdiff
path: root/Makefile
blob: 8b60c8aa44666851f8a6d41e1c7850ea50b6b50b (plain)
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
CC = gcc
LD = gcc
CFLAGS = -Wall -Wextra -Werror -MMD
LDFLAGS = -Lminilibx -lmlx -Llibft -lft -lXext -lX11 -lm
SRC := badeline.c game.c game_draw.c main.c map.c map_count.c map_draw.c \
       map_get.c map_pathfind.c map_spawn.c map_verify.c player.c \
       player_collect.c player_collide_badeline.c player_collide.c \
       player_collide_exit.c player_erase.c readall.c sily.c sily_clear.c \
       sily_draw_text.c sily_expose.c sily_input.c sprite.c spritesheet.c
MSRC := sily_time.c
BSRC := sily_time_bonus.c
OBJ := $(patsubst %.c,%.o,$(SRC))
MOBJ := $(patsubst %.c,%.o,$(MSRC))
BOBJ := $(patsubst %.c,%.o,$(BSRC))
DEP := $(patsubst %.c,%.d,$(SRC) $(MSRC) $(BSRC))
NAME = so_long
LIBS.A = minilibx/libmlx.a libft/libft.a

all: $(NAME)

bonus: $(NAME)_bonus

$(NAME): $(LIBS.A) $(OBJ) $(MOBJ)
	$(LD) -o $(NAME) $(OBJ) $(MOBJ) $(LDFLAGS)

$(NAME)_bonus: $(LIBS.A) $(OBJ) $(BOBJ)
	$(LD) -o $(NAME)_bonus $(OBJ) $(BOBJ) $(LDFLAGS)

%.o: %.c minilibx/mlx.h
	$(CC) $(CFLAGS) -c -o $@ $<

minilibx/mlx.h:
	rm -rf minilibx
	tar xvf minilibx.tgz
	mv minilibx-linux minilibx

minilibx/libmlx.a: minilibx/mlx.h
	make -C minilibx

libft/libft.a:
	make -C libft

run: $(NAME)
	./$(NAME) map.ber

clean:
	rm -f $(OBJ) $(MOBJ) $(BOBJ) $(DEP)
	make -C libft clean
	rm -f minilibx/*.o

fclean:
	rm -f $(OBJ) $(MOBJ) $(BOBJ) $(DEP) $(NAME) $(NAME)_bonus
	make -C libft fclean
	rm -rf minilibx

re:
	make fclean
	make all

.PHONY: all bonus run clean fclean re

-include $(DEP)