Gizmondo port updated to 1.51b
[picodrive.git] / platform / gizmondo / Makefile
1 \r
2 # you may or may not need to change this\r
3 export CROSS = arm-wince-cegcc-\r
4 \r
5 # settings\r
6 asm_memory = 1\r
7 asm_render = 1\r
8 asm_ym2612 = 1\r
9 asm_misc = 1\r
10 asm_cdpico = 1\r
11 asm_cdmemory = 1\r
12 amalgamate = 0\r
13 #profile = 1\r
14 \r
15 \r
16 \r
17 DEFINC = -I../.. -I. -D__GIZ__ -DNO_SYNC\r
18 COPT_COMMON = -Wall -Winline\r
19 ifeq ($(DEBUG),)\r
20 COPT_COMMON += -O2 -ftracer -fomit-frame-pointer -fstrict-aliasing -ffast-math\r
21 else\r
22 COPT_COMMON += -ggdb\r
23 endif\r
24 ifeq "$(profile)" "1"\r
25 COPT_COMMON += -fprofile-generate\r
26 endif\r
27 ifeq "$(profile)" "2"\r
28 COPT_COMMON += -fprofile-use\r
29 endif\r
30 CFLAGS = $(COPT_COMMON) -mcpu=arm920t -mtune=arm920t\r
31 ASFLAGS = -mcpu=arm920t -mfloat-abi=soft\r
32 GCC = $(CROSS)gcc\r
33 STRIP = $(CROSS)strip\r
34 AS = $(CROSS)as\r
35 LD = $(CROSS)ld\r
36 \r
37 # frontend\r
38 OBJS += main.o emu.o menu.o giz.o asm_utils.o\r
39 \r
40 # common\r
41 OBJS += platform/common/emu.o platform/common/menu.o platform/common/fonts.o platform/common/config.o \\r
42         platform/common/arm_utils.o platform/common/readpng.o platform/common/mp3_helix.o\r
43 \r
44 # Pico\r
45 ifeq "$(amalgamate)" "1"\r
46 OBJS += PicoAll.o\r
47 else\r
48 OBJS += Pico/Area.o Pico/Cart.o Pico/Memory.o Pico/Misc.o Pico/Pico.o Pico/Sek.o \\r
49                 Pico/VideoPort.o Pico/Draw2.o Pico/Draw.o Pico/Patch.o Pico/Debug.o\r
50 # Pico - CD\r
51 OBJS += Pico/cd/Pico.o Pico/cd/Memory.o Pico/cd/Sek.o Pico/cd/LC89510.o \\r
52                 Pico/cd/cd_sys.o Pico/cd/cd_file.o Pico/cd/gfx_cd.o Pico/cd/cue.o \\r
53                 Pico/cd/Area.o Pico/cd/Misc.o Pico/cd/pcm.o Pico/cd/buffering.o\r
54 endif\r
55 # Pico - Pico\r
56 OBJS += Pico/Pico/Pico.o Pico/Pico/Memory.o Pico/Pico/xpcm.o\r
57 # Pico - carthw\r
58 OBJS += Pico/carthw/carthw.o Pico/carthw/svp/svp.o Pico/carthw/svp/Memory.o \\r
59                 Pico/carthw/svp/ssp16.o Pico/carthw/svp/compiler.o Pico/carthw/svp/stub_arm.o\r
60 \r
61 # asm stuff\r
62 ifeq "$(asm_render)" "1"\r
63 DEFINC += -D_ASM_DRAW_C\r
64 OBJS += Pico/draw_asm.o Pico/draw2_asm.o\r
65 endif\r
66 ifeq "$(asm_memory)" "1"\r
67 DEFINC += -D_ASM_MEMORY_C\r
68 OBJS += Pico/memory_asm.o\r
69 endif\r
70 ifeq "$(asm_ym2612)" "1"\r
71 DEFINC += -D_ASM_YM2612_C\r
72 OBJS += Pico/sound/ym2612_asm.o\r
73 endif\r
74 ifeq "$(asm_misc)" "1"\r
75 DEFINC += -D_ASM_MISC_C\r
76 OBJS += Pico/misc_asm.o\r
77 OBJS += Pico/cd/misc_asm.o\r
78 endif\r
79 ifeq "$(asm_cdpico)" "1"\r
80 DEFINC += -D_ASM_CD_PICO_C\r
81 OBJS += Pico/cd/pico_asm.o\r
82 endif\r
83 ifeq "$(asm_cdmemory)" "1"\r
84 DEFINC += -D_ASM_CD_MEMORY_C\r
85 OBJS += Pico/cd/memory_asm.o\r
86 endif\r
87 \r
88 # Pico - sound\r
89 ifneq "$(amalgamate)" "1"\r
90 OBJS += Pico/sound/sound.o\r
91 endif\r
92 OBJS += Pico/sound/mix_asm.o\r
93 OBJS += Pico/sound/sn76496.o Pico/sound/ym2612.o\r
94 # zlib\r
95 OBJS += zlib/gzio.o zlib/inffast.o zlib/inflate.o zlib/inftrees.o zlib/trees.o \\r
96         zlib/deflate.o zlib/crc32.o zlib/adler32.o zlib/zutil.o zlib/compress.o\r
97 # unzip\r
98 OBJS += unzip/unzip.o unzip/unzip_stream.o\r
99 # CPU cores\r
100 # Cyclone\r
101 DEFINC += -DEMU_C68K\r
102 OBJS += cpu/Cyclone/proj/Cyclone.o cpu/Cyclone/tools/idle.o\r
103 # drz80\r
104 DEFINC += -D_USE_DRZ80\r
105 OBJS += cpu/DrZ80/drz80.o\r
106 \r
107 vpath %.c = ../..\r
108 vpath %.s = ../..\r
109 vpath %.S = ../..\r
110 DIRS = platform platform/common Pico Pico/cd Pico/Pico Pico/sound Pico/carthw/svp \\r
111         zlib unzip cpu cpu/musashi cpu/Cyclone/proj cpu/Cyclone/tools cpu/mz80 cpu/DrZ80\r
112 \r
113 \r
114 all: mkdirs PicoDrive.exe readme.txt\r
115 \r
116 PicoDrive.exe : $(OBJS) ../common/helix/$(CROSS)helix-mp3.a\r
117         @echo ">>>" $@\r
118         $(GCC) -o $@ -static $(CFLAGS) $^ -lm -lpng -Lkgsdk/ -lKGSDK -Wl,-Map=PicoDrive.map \\r
119                 2>&1 | grep -v ".idata$$4" # | grep -v "supports interworking, whereas"\r
120 ifeq ($(DEBUG),)\r
121         $(STRIP) $@\r
122 endif\r
123 ifeq "$(profile)" "1"\r
124         ../../tools/gcda $@\r
125 endif\r
126 \r
127 \r
128 .c.o:\r
129         @echo ">>>" $<\r
130         $(GCC) $(CFLAGS) $(DEFINC) -c $< -o $@\r
131 #.s.o:\r
132 #       @echo $<\r
133 #       $(GCC) $(CFLAGS) $(DEFINC) -c $< -o $@\r
134 \r
135 mkdirs:\r
136         mkdir -p $(DIRS)\r
137 \r
138 Pico/carthw/svp/compiler.o : ../../Pico/carthw/svp/ssp16.o ../../Pico/carthw/svp/gen_arm.c\r
139 \r
140 Pico/draw_asm.o : ../../Pico/Draw.s\r
141         @echo ">>>" $@\r
142         @$(AS) $(ASFLAGS) $< -o $@\r
143 Pico/draw2_asm.o : ../../Pico/Draw2.s\r
144         @echo ">>>" $@\r
145         @$(AS) $(ASFLAGS) $< -o $@\r
146 Pico/memory_asm.o : ../../Pico/Memory.s\r
147         @echo ">>>" $@\r
148         @$(AS) $(ASFLAGS) $< -o $@\r
149 Pico/sound/ym2612_asm.o : ../../Pico/sound/ym2612.s\r
150         @echo ">>>" $@\r
151         @$(AS) $(ASFLAGS) $< -o $@\r
152 Pico/sound/mix_asm.o : ../../Pico/sound/mix.s\r
153         @echo ">>>" $@\r
154         @$(AS) $(ASFLAGS) $< -o $@\r
155 Pico/misc_asm.o : ../../Pico/Misc.s\r
156         @echo ">>>" $@\r
157         @$(AS) $(ASFLAGS) $< -o $@\r
158 Pico/cd/pico_asm.o : ../../Pico/cd/Pico.s\r
159         @echo ">>>" $@\r
160         @$(AS) $(ASFLAGS) $< -o $@\r
161 Pico/cd/memory_asm.o : ../../Pico/cd/Memory.s\r
162         @echo ">>>" $@\r
163         @$(AS) $(ASFLAGS) $< -o $@\r
164 Pico/cd/misc_asm.o : ../../Pico/cd/Misc.s\r
165         @echo ">>>" $@\r
166         @$(AS) $(ASFLAGS) $< -o $@\r
167 Pico/carthw/svp/stub_arm.o : ../../Pico/carthw/svp/stub_arm.S\r
168         @echo ">>>" $@\r
169         $(GCC) $(CFLAGS) $(DEFINC) -c $< -o $@\r
170 \r
171 # build Cyclone\r
172 cpu/Cyclone/proj/Cyclone.s:\r
173         @echo building Cyclone...\r
174         @make -C ../../cpu/Cyclone/proj CONFIG_FILE=config_pico.h\r
175 \r
176 Pico/Pico.o Pico/cd/Pico.o: ../../Pico/PicoFrameHints.c ../../Pico/PicoInt.h\r
177 Pico/Memory.o Pico/cd/Memory.o : ../../Pico/MemoryCmn.c ../../Pico/PicoInt.h\r
178 \r
179 # build helix libs\r
180 ../common/helix/$(CROSS)helix-mp3.a:\r
181         make -C ../common/helix clean all\r
182 \r
183 readme.txt: ../../tools/textfilter ../base_readme.txt\r
184         ../../tools/textfilter ../base_readme.txt $@ GIZ\r
185 \r
186 ../../tools/textfilter: ../../tools/textfilter.c\r
187         make -C ../../tools/ textfilter\r
188 \r
189 \r
190 # cleanup\r
191 clean: tidy\r
192         @$(RM) PicoDrive.exe\r
193 tidy:\r
194         @$(RM) $(OBJS)\r
195 \r
196 \r
197 clean_prof:\r
198         find ../.. -name '*.gcno' -delete\r
199         find ../.. -name '*.gcda' -delete\r
200 \r
201 up: PicoDrive.exe\r
202         synce-pcp -d 3 PicoDrive.exe ":/SD Card/emus/PicoDrive/PicoDrive.exe"\r
203 \r
204 run: up\r
205         synce-prun "/SD Card/emus/PicoDrive/PicoDrive.exe"\r
206 \r
207 run_only:\r
208         synce-prun "/SD Card/emus/PicoDrive/PicoDrive.exe"\r
209 \r
210 # ----------- release -----------\r
211 ifneq ($(findstring rel,$(MAKECMDGOALS)),)\r
212 ifeq ($(VER),)\r
213 $(error need VER)\r
214 endif\r
215 endif\r
216 \r
217 rel: PicoDrive.exe kgsdk/ARMV4IRel/KGSDK.dll ../game_def.cfg readme.txt\r
218         zip -9 -j ../../PicoDrive_giz_$(VER).zip $^\r
219         ln -s ../gp2x/skin skin\r
220         zip -9 -r ../../PicoDrive_giz_$(VER).zip skin -i \*.png -i \*.txt\r
221         rm skin\r
222 \r