diff options
Diffstat (limited to 'apps/plugins/puzzles/puzzles.make')
-rw-r--r-- | apps/plugins/puzzles/puzzles.make | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/apps/plugins/puzzles/puzzles.make b/apps/plugins/puzzles/puzzles.make new file mode 100644 index 0000000000..054e53eeb1 --- /dev/null +++ b/apps/plugins/puzzles/puzzles.make | |||
@@ -0,0 +1,113 @@ | |||
1 | # __________ __ ___. | ||
2 | # Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
3 | # Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
4 | # Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
5 | # Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
6 | # \/ \/ \/ \/ \/ | ||
7 | # $Id$ | ||
8 | # | ||
9 | |||
10 | PUZZLES_SRCDIR = $(APPSDIR)/plugins/puzzles | ||
11 | PUZZLES_OBJDIR = $(BUILDDIR)/apps/plugins/puzzles | ||
12 | |||
13 | # define this as "yes" to do a monolithic build -- remember to also | ||
14 | # uncomment the sgt-puzzles loader in apps/plugins/SOURCES | ||
15 | PUZZLES_COMBINED = | ||
16 | |||
17 | ifdef PUZZLES_COMBINED | ||
18 | PUZZLES_SRC := $(call preprocess, $(PUZZLES_SRCDIR)/SOURCES, -DCOMBINED) | ||
19 | else | ||
20 | PUZZLES_SRC := $(call preprocess, $(PUZZLES_SRCDIR)/SOURCES) | ||
21 | endif | ||
22 | |||
23 | ifndef PUZZLES_COMBINED | ||
24 | PUZZLES_SHARED_OBJ := $(call c2obj, $(PUZZLES_SRC)) | ||
25 | endif | ||
26 | |||
27 | PUZZLES_GAMES_SRC := $(call preprocess, $(PUZZLES_SRCDIR)/SOURCES.games) | ||
28 | PUZZLES_SRC += $(PUZZLES_GAMES_SRC) | ||
29 | PUZZLES_OBJ := $(call c2obj, $(PUZZLES_SRC)) | ||
30 | OTHER_SRC += $(PUZZLES_SRC) | ||
31 | |||
32 | ifdef PUZZLES_COMBINED | ||
33 | ifndef APP_TYPE | ||
34 | ROCKS += $(PUZZLES_OBJDIR)/puzzles.ovl | ||
35 | PUZZLES_OUTLDS = $(PUZZLES_OBJDIR)/puzzles.link | ||
36 | PUZZLES_OVLFLAGS = -T$(PUZZLES_OUTLDS) -Wl,--gc-sections -Wl,-Map,$(basename $@).map | ||
37 | else | ||
38 | ROCKS += $(PUZZLES_OBJDIR)/puzzles.rock | ||
39 | endif | ||
40 | else | ||
41 | PUZZLES_ROCKS := $(addprefix $(PUZZLES_OBJDIR)/sgt-, $(notdir $(PUZZLES_GAMES_SRC:.c=.rock))) | ||
42 | ROCKS += $(PUZZLES_ROCKS) | ||
43 | endif | ||
44 | |||
45 | PUZZLESFLAGS = $(filter-out -O%,$(PLUGINFLAGS)) -Os \ | ||
46 | -Wno-unused-parameter -Wno-sign-compare -Wno-strict-aliasing -w \ | ||
47 | -DFOR_REAL | ||
48 | ifdef PUZZLES_COMBINED | ||
49 | PUZZLESFLAGS += -DCOMBINED | ||
50 | endif | ||
51 | |||
52 | ifdef PUZZLES_COMBINED | ||
53 | $(PUZZLES_OBJDIR)/puzzles.rock: $(PUZZLES_OBJ) $(TLSFLIB) | ||
54 | |||
55 | $(PUZZLES_OBJDIR)/puzzles.refmap: $(PUZZLES_OBJ) $(TLSFLIB) | ||
56 | |||
57 | $(PUZZLES_OUTLDS): $(PLUGIN_LDS) $(PUZZLES_OBJDIR)/puzzles.refmap | ||
58 | $(call PRINTS,PP $(@F))$(call preprocess2file,$<,$@,-DOVERLAY_OFFSET=$(shell \ | ||
59 | $(TOOLSDIR)/ovl_offset.pl $(PUZZLES_OBJDIR)/puzzles.refmap)) | ||
60 | |||
61 | $(PUZZLES_OBJDIR)/puzzles.ovl: $(PUZZLES_OBJ) $(PUZZLES_OUTLDS) $(TLSFLIB) | ||
62 | $(SILENT)$(CC) $(PLUGINFLAGS) -o $(basename $@).elf \ | ||
63 | $(filter %.o, $^) \ | ||
64 | $(filter %.a, $+) \ | ||
65 | -lgcc $(PUZZLES_OVLFLAGS) | ||
66 | $(call PRINTS,LD $(@F))$(call objcopy,$(basename $@).elf,$@) | ||
67 | else | ||
68 | # todo: figure out how to do this with wildcards | ||
69 | $(PUZZLES_OBJDIR)/sgt-blackbox.rock: $(PUZZLES_OBJDIR)/blackbox.o $(PUZZLES_SHARED_OBJ) $(TLSFLIB) | ||
70 | $(PUZZLES_OBJDIR)/sgt-bridges.rock: $(PUZZLES_OBJDIR)/bridges.o $(PUZZLES_SHARED_OBJ) $(TLSFLIB) | ||
71 | $(PUZZLES_OBJDIR)/sgt-cube.rock: $(PUZZLES_OBJDIR)/cube.o $(PUZZLES_SHARED_OBJ) $(TLSFLIB) | ||
72 | $(PUZZLES_OBJDIR)/sgt-dominosa.rock: $(PUZZLES_OBJDIR)/dominosa.o $(PUZZLES_SHARED_OBJ) $(TLSFLIB) | ||
73 | $(PUZZLES_OBJDIR)/sgt-fifteen.rock: $(PUZZLES_OBJDIR)/fifteen.o $(PUZZLES_SHARED_OBJ) $(TLSFLIB) | ||
74 | $(PUZZLES_OBJDIR)/sgt-filling.rock: $(PUZZLES_OBJDIR)/filling.o $(PUZZLES_SHARED_OBJ) $(TLSFLIB) | ||
75 | $(PUZZLES_OBJDIR)/sgt-flip.rock: $(PUZZLES_OBJDIR)/flip.o $(PUZZLES_SHARED_OBJ) $(TLSFLIB) | ||
76 | $(PUZZLES_OBJDIR)/sgt-flood.rock: $(PUZZLES_OBJDIR)/flood.o $(PUZZLES_SHARED_OBJ) $(TLSFLIB) | ||
77 | $(PUZZLES_OBJDIR)/sgt-galaxies.rock: $(PUZZLES_OBJDIR)/galaxies.o $(PUZZLES_SHARED_OBJ) $(TLSFLIB) | ||
78 | $(PUZZLES_OBJDIR)/sgt-guess.rock: $(PUZZLES_OBJDIR)/guess.o $(PUZZLES_SHARED_OBJ) $(TLSFLIB) | ||
79 | $(PUZZLES_OBJDIR)/sgt-inertia.rock: $(PUZZLES_OBJDIR)/inertia.o $(PUZZLES_SHARED_OBJ) $(TLSFLIB) | ||
80 | $(PUZZLES_OBJDIR)/sgt-keen.rock: $(PUZZLES_OBJDIR)/keen.o $(PUZZLES_SHARED_OBJ) $(TLSFLIB) | ||
81 | $(PUZZLES_OBJDIR)/sgt-lightup.rock: $(PUZZLES_OBJDIR)/lightup.o $(PUZZLES_SHARED_OBJ) $(TLSFLIB) | ||
82 | $(PUZZLES_OBJDIR)/sgt-loopy.rock: $(PUZZLES_OBJDIR)/loopy.o $(PUZZLES_SHARED_OBJ) $(TLSFLIB) | ||
83 | $(PUZZLES_OBJDIR)/sgt-magnets.rock: $(PUZZLES_OBJDIR)/magnets.o $(PUZZLES_SHARED_OBJ) $(TLSFLIB) | ||
84 | $(PUZZLES_OBJDIR)/sgt-map.rock: $(PUZZLES_OBJDIR)/map.o $(PUZZLES_SHARED_OBJ) $(TLSFLIB) | ||
85 | $(PUZZLES_OBJDIR)/sgt-mines.rock: $(PUZZLES_OBJDIR)/mines.o $(PUZZLES_SHARED_OBJ) $(TLSFLIB) | ||
86 | $(PUZZLES_OBJDIR)/sgt-net.rock: $(PUZZLES_OBJDIR)/net.o $(PUZZLES_SHARED_OBJ) $(TLSFLIB) | ||
87 | $(PUZZLES_OBJDIR)/sgt-netslide.rock: $(PUZZLES_OBJDIR)/netslide.o $(PUZZLES_SHARED_OBJ) $(TLSFLIB) | ||
88 | $(PUZZLES_OBJDIR)/sgt-palisade.rock: $(PUZZLES_OBJDIR)/palisade.o $(PUZZLES_SHARED_OBJ) $(TLSFLIB) | ||
89 | $(PUZZLES_OBJDIR)/sgt-pattern.rock: $(PUZZLES_OBJDIR)/pattern.o $(PUZZLES_SHARED_OBJ) $(TLSFLIB) | ||
90 | $(PUZZLES_OBJDIR)/sgt-pearl.rock: $(PUZZLES_OBJDIR)/pearl.o $(PUZZLES_SHARED_OBJ) $(TLSFLIB) | ||
91 | $(PUZZLES_OBJDIR)/sgt-pegs.rock: $(PUZZLES_OBJDIR)/pegs.o $(PUZZLES_SHARED_OBJ) $(TLSFLIB) | ||
92 | $(PUZZLES_OBJDIR)/sgt-range.rock: $(PUZZLES_OBJDIR)/range.o $(PUZZLES_SHARED_OBJ) $(TLSFLIB) | ||
93 | $(PUZZLES_OBJDIR)/sgt-rect.rock: $(PUZZLES_OBJDIR)/rect.o $(PUZZLES_SHARED_OBJ) $(TLSFLIB) | ||
94 | $(PUZZLES_OBJDIR)/sgt-samegame.rock: $(PUZZLES_OBJDIR)/samegame.o $(PUZZLES_SHARED_OBJ) $(TLSFLIB) | ||
95 | $(PUZZLES_OBJDIR)/sgt-signpost.rock: $(PUZZLES_OBJDIR)/signpost.o $(PUZZLES_SHARED_OBJ) $(TLSFLIB) | ||
96 | $(PUZZLES_OBJDIR)/sgt-singles.rock: $(PUZZLES_OBJDIR)/singles.o $(PUZZLES_SHARED_OBJ) $(TLSFLIB) | ||
97 | $(PUZZLES_OBJDIR)/sgt-sixteen.rock: $(PUZZLES_OBJDIR)/sixteen.o $(PUZZLES_SHARED_OBJ) $(TLSFLIB) | ||
98 | $(PUZZLES_OBJDIR)/sgt-slant.rock: $(PUZZLES_OBJDIR)/slant.o $(PUZZLES_SHARED_OBJ) $(TLSFLIB) | ||
99 | $(PUZZLES_OBJDIR)/sgt-solo.rock: $(PUZZLES_OBJDIR)/solo.o $(PUZZLES_SHARED_OBJ) $(TLSFLIB) | ||
100 | $(PUZZLES_OBJDIR)/sgt-tents.rock: $(PUZZLES_OBJDIR)/tents.o $(PUZZLES_SHARED_OBJ) $(TLSFLIB) | ||
101 | $(PUZZLES_OBJDIR)/sgt-towers.rock: $(PUZZLES_OBJDIR)/towers.o $(PUZZLES_SHARED_OBJ) $(TLSFLIB) | ||
102 | $(PUZZLES_OBJDIR)/sgt-tracks.rock: $(PUZZLES_OBJDIR)/tracks.o $(PUZZLES_SHARED_OBJ) $(TLSFLIB) | ||
103 | $(PUZZLES_OBJDIR)/sgt-twiddle.rock: $(PUZZLES_OBJDIR)/twiddle.o $(PUZZLES_SHARED_OBJ) $(TLSFLIB) | ||
104 | $(PUZZLES_OBJDIR)/sgt-undead.rock: $(PUZZLES_OBJDIR)/undead.o $(PUZZLES_SHARED_OBJ) $(TLSFLIB) | ||
105 | $(PUZZLES_OBJDIR)/sgt-unequal.rock: $(PUZZLES_OBJDIR)/unequal.o $(PUZZLES_SHARED_OBJ) $(TLSFLIB) | ||
106 | $(PUZZLES_OBJDIR)/sgt-unruly.rock: $(PUZZLES_OBJDIR)/unruly.o $(PUZZLES_SHARED_OBJ) $(TLSFLIB) | ||
107 | $(PUZZLES_OBJDIR)/sgt-untangle.rock: $(PUZZLES_OBJDIR)/untangle.o $(PUZZLES_SHARED_OBJ) $(TLSFLIB) | ||
108 | endif | ||
109 | |||
110 | # special pattern rule for compiling puzzles with extra flags | ||
111 | $(PUZZLES_OBJDIR)/%.o: $(PUZZLES_SRCDIR)/%.c $(PUZZLES_SRCDIR)/puzzles.make | ||
112 | $(SILENT)mkdir -p $(dir $@) | ||
113 | $(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) -I$(dir $<) $(PUZZLESFLAGS) -c $< -o $@ | ||