aboutsummaryrefslogtreecommitdiff
path: root/backends/platform/wii/Makefile
blob: 0654fa254de4e9daf24c90037bf581d746b64332 (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
DEBUG_WII = 1

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

DISABLE_HQ_SCALERS = 1
DISABLE_SCALERS = 1

USE_ZLIB = 1
USE_MAD = 1
USE_TREMOR = 1
USE_FLAC = 1
USE_MPEG2 = 1
USE_MT32EMU = 1

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
OBJCOPY = $(PREFIX)objcopy
MKDIR   = mkdir -p
RM      = rm -f
CP      = cp -f

TARGET  = scummvm-wii

MACHDEP  = -DGEKKO -mrvl -mcpu=750 -meabi -mhard-float \
			-ffunction-sections -fdata-sections -fmodulo-sched

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

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

CXXFLAGS += $(addprefix -I,$(INCDIR))
LDFLAGS   = -g $(MACHDEP) -Wl,-Map,$(TARGET).elf.map
LDFLAGS  += $(addprefix -L,$(LIBDIR))
LIBS      = -lstdc++ -lfat -lwiiuse -lbte -logc -lm

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/gecko_console.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
	$(OBJCOPY) -O binary $< $@

$(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) dist

upload:
	$(DEVKITPPC)/bin/wiiload $(TARGET).dol

dist:
	$(MKDIR) dist/apps/scummvm
	$(CP) $(TARGET).dol dist/apps/scummvm/boot.dol
	$(CP) $(DISTPATH)/meta.xml dist/apps/scummvm/
	$(CP) $(DISTPATH)/icon.png dist/apps/scummvm/
	$(CP) $(DISTPATH)/READMII dist/apps/scummvm/
	$(CP) $(srcdir)/AUTHORS dist/apps/scummvm/
	$(CP) $(srcdir)/COPYING dist/apps/scummvm/
	$(CP) $(srcdir)/COPYRIGHT dist/apps/scummvm/
	$(CP) $(srcdir)/NEWS dist/apps/scummvm/
	$(CP) $(srcdir)/README dist/apps/scummvm/
	$(CP) $(DIST_FILES_THEMES) dist/apps/scummvm/
	$(CP) $(DIST_FILES_ENGINEDATA) dist/apps/scummvm/