aboutsummaryrefslogtreecommitdiff
path: root/backends/platform/wii/Makefile
blob: dd3728a05e1b2c4eab1b702142b01d22e47ae506 (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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
# this enables port specific debug messages and redirects stdout/err over
# usbgecko in memcard slot b
DEBUG_WII = 1

# builds a gamecube version. cleanup object files before flipping this
GAMECUBE = 0

ENABLE_SCUMM = STATIC_PLUGIN
ENABLE_SCUMM_7_8 = STATIC_PLUGIN
ENABLE_HE = STATIC_PLUGIN
# ENABLE_AGI = STATIC_PLUGIN
ENABLE_AGOS = STATIC_PLUGIN
ENABLE_CINE = STATIC_PLUGIN
ENABLE_CRUISE = STATIC_PLUGIN
ENABLE_DRASCULA = STATIC_PLUGIN
ENABLE_GOB = STATIC_PLUGIN
ENABLE_GROOVIE = STATIC_PLUGIN
ENABLE_IGOR = STATIC_PLUGIN
ENABLE_KYRA = STATIC_PLUGIN
ENABLE_LURE = STATIC_PLUGIN
ENABLE_M4 = STATIC_PLUGIN
ENABLE_MADE = STATIC_PLUGIN
ENABLE_PARALLACTION = STATIC_PLUGIN
ENABLE_QUEEN = STATIC_PLUGIN
ENABLE_SAGA = STATIC_PLUGIN
ENABLE_SKY = STATIC_PLUGIN
ENABLE_SWORD1 = STATIC_PLUGIN
ENABLE_SWORD2 = STATIC_PLUGIN
ENABLE_TINSEL = STATIC_PLUGIN
ENABLE_TOUCHE = STATIC_PLUGIN
ENABLE_TUCKER = STATIC_PLUGIN

DISABLE_HQ_SCALERS = 1
DISABLE_SCALERS = 1

USE_ZLIB = 1
USE_MAD = 1
USE_TREMOR = 1
USE_FLAC = 1
#USE_MPEG2 = 1
ifeq ($(GAMECUBE),1)
USE_MT32EMU = 0
else
USE_MT32EMU = 1
endif

srcdir = ../../..
VPATH = $(srcdir)
HAVE_GCC3 = 1

DISTPATH = $(srcdir)/dists/wii

ifeq ($(strip $(DEVKITPPC)),)
$(error "Please set DEVKITPPC in your environment. export DEVKITPPC=<path to>devkitPPC")
endif

PREFIX  = $(DEVKITPPC)/bin/powerpc-gekko-
CXX     = $(PREFIX)g++
AS      = $(PREFIX)gcc
LD      = $(PREFIX)gcc
AR      = $(PREFIX)ar cru
RANLIB  = $(PREFIX)ranlib
STRIP   = $(PREFIX)strip -g
GDB     = $(PREFIX)gdb
MKDIR   = mkdir -p
RM      = rm -f
RM_REC  = rm -rf
CP      = cp -f

ifeq ($(GAMECUBE),1)
TARGET  = scummvm-gc
MACHDEP  = -DGEKKO -DGAMECUBE -mogc -mcpu=750 -meabi -mhard-float \
			-ffunction-sections -fdata-sections -fmodulo-sched
LIBDIR   = $(DEVKITPRO)/libogc/lib/cube
LIBS      = -lstdc++ -lfat -logc -lm
else
TARGET  = scummvm-wii
MACHDEP  = -DGEKKO -mrvl -mcpu=750 -meabi -mhard-float \
			-ffunction-sections -fdata-sections -fmodulo-sched
LIBDIR   = $(DEVKITPRO)/libogc/lib/wii
LIBS      = -lstdc++ -lfat -lwiiuse -lbte -logc -lm
endif

INCDIR   = $(srcdir) . $(srcdir)/engines/ $(DEVKITPRO)/libogc/include

CXXFLAGS = -g -Os -Wall $(MACHDEP) -D__WII__ -Wno-multichar -Wno-long-long \
			-Wno-unknown-pragmas -Wno-reorder -fno-exceptions -fno-rtti

CXXFLAGS += $(addprefix -I,$(INCDIR))
LDFLAGS   = -g $(MACHDEP) -Wl,-Map,$(TARGET).elf.map
LDFLAGS  += $(addprefix -L,$(LIBDIR))

CXXFLAGS += -I$(DEVKITPRO)/3rd/wii/include
LDFLAGS  += -L$(DEVKITPRO)/3rd/wii/lib

ifdef DEBUG_WII
CXXFLAGS += -DDEBUG_WII
LIBS     += -ldb
endif

ifdef USE_ZLIB
CXXFLAGS += -DUSE_ZLIB
LIBS     += -lz
endif

ifdef USE_MAD
CXXFLAGS += -DUSE_MAD -I$(DEVKITPRO)/libogc/include/mad
LIBS     += -lmad
endif

ifdef USE_TREMOR
CXXFLAGS += -DUSE_VORBIS -DUSE_TREMOR
LIBS     += -lvorbisidec
endif

ifdef USE_FLAC
CXXFLAGS += -DUSE_FLAC
LIBS     += -lFLAC
endif

ifdef USE_MPEG2
CXXFLAGS += -DUSE_MPEG2
LIBS     += -lmpeg2
endif

ifdef USE_MT32EMU
CXXFLAGS += -DUSE_MT32EMU
endif

OBJS := backends/platform/wii/main.o \
		backends/platform/wii/gx_supp.o \
		backends/platform/wii/osystem.o \
		backends/platform/wii/osystem_gfx.o \
		backends/platform/wii/osystem_sfx.o \
		backends/platform/wii/osystem_events.o

include $(srcdir)/Makefile.common

.PHONY: clean-wii distclean-wii upload dist

all: $(TARGET).dol

$(TARGET).dol: $(TARGET).elf
	$(DEVKITPPC)/bin/elf2dol $< $@

$(TARGET).elf: $(OBJS)
	$(LD) $^ $(LDFLAGS) $(LIBS) -o $@

clean: clean-wii

clean-wii:
	@$(RM) $(TARGET).elf $(TARGET).elf.map $(TARGET).dol

distclean: distclean-wii

distclean-wii:
	@$(RM_REC) dist

upload: $(TARGET).dol
ifeq ($(GAMECUBE),1)
	$(DEVKITPPC)/bin/geckoupload $(TARGET).dol
else
	$(DEVKITPPC)/bin/wiiload $(TARGET).dol
endif

gdb:
	$(GDB) -n $(TARGET).elf

debug:
	$(GDB) -n $(TARGET).elf -x gdb.txt

dist:
	$(MKDIR) dist/scummvm
ifeq ($(GAMECUBE),1)
	$(CP) $(TARGET).dol dist/scummvm/
else
	$(CP) $(TARGET).dol dist/scummvm/boot.dol
	$(CP) $(DISTPATH)/meta.xml dist/scummvm/
	$(CP) $(DISTPATH)/icon.png dist/scummvm/
endif
	$(CP) $(DISTPATH)/READMII dist/scummvm/
	$(CP) $(srcdir)/AUTHORS dist/scummvm/
	$(CP) $(srcdir)/COPYING dist/scummvm/
	$(CP) $(srcdir)/COPYRIGHT dist/scummvm/
	$(CP) $(srcdir)/NEWS dist/scummvm/
	$(CP) $(srcdir)/README dist/scummvm/
	$(CP) $(DIST_FILES_THEMES) dist/scummvm/
ifneq ($(DIST_FILES_ENGINEDATA),)
	$(CP) $(DIST_FILES_ENGINEDATA) dist/scummvm/
endif