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
|
# -*- MakeFile -*-
# MACRO = substitute with this
# directories
LIBALX_INC_DIR = $(LIBALX_DIR)/inc/
PLAY_INC_DIR = $(PLAY_DIR)/inc/
SAVE_INC_DIR = $(SAVE_DIR)/inc/
XYZZY_INC_DIR = $(XYZZY_DIR)/inc/
INC_DIR = $(GAME_DIR)/inc/
SRC_DIR = $(GAME_DIR)/src/
# dependencies
_ALL = game.o game_iface.o
ALL = $(_ALL) game_mod.o
GAME_INC_LIBALX = libalx/alx_seed.h
GAME_INC_SAVE = save.h
GAME_INC = game.h
GAME_DEPS = $(SRC_DIR)/game.c \
$(patsubst %,$(INC_DIR)/%,$(GAME_INC)) \
$(patsubst %,$(LIBALX_INC_DIR)/%,$(GAME_INC_LIBALX)) \
$(patsubst %,$(SAVE_INC_DIR)/%,$(GAME_INC_SAVE))
GAME_INC_DIRS = -I $(INC_DIR) \
-I $(SAVE_INC_DIR) \
-I $(LIBALX_INC_DIR)
GAMEI_INC_PLAY = player_iface.h
GAMEI_INC_SAVE = save.h score.h
GAMEI_INC_XYZZY = xyzzy.h
GAMEI_INC = game_iface.h game.h
GAMEI_DEPS = $(SRC_DIR)/game_iface.c \
$(patsubst %,$(INC_DIR)/%,$(GAME_INC)) \
$(patsubst %,$(PLAY_INC_DIR)/%,$(GAMEI_INC_PLAY)) \
$(patsubst %,$(SAVE_INC_DIR)/%,$(GAME_INC_SAVE)) \
$(patsubst %,$(XYZZY_INC_DIR)/%,$(GAMEI_INC_XYZZY))
GAMEI_INC_DIRS = -I $(INC_DIR) \
-I $(PLAY_INC_DIR) \
-I $(SAVE_INC_DIR) \
-I $(XYZZY_INC_DIR)
# target: dependencies
# action
all: $(ALL)
game_mod.o: $(_ALL)
$(Q)$(LD) -r $^ -o $@
@echo " LD $@"
game.s: $(GAME_DEPS)
$(Q)$(CC) $(CFLAGS) $(GAME_INC_DIRS) -S $< -o $@
@echo " CC $@"
game.o: game.s
$(Q)$(AS) $< -o $@
@echo " AS $@"
game_iface.s: $(GAMEI_DEPS)
$(Q)$(CC) $(CFLAGS) $(GAMEI_INC_DIRS) -S $< -o $@
@echo " CC $@"
game_iface.o: game_iface.s
$(Q)$(AS) $< -o $@
@echo " AS $@"
clean:
$(Q)rm -f *.o *.s
|