psp code updated for latest base, black level
[libpicofe.git] / psp / Makefile
1 \r
2 # pspdev is expected to be in path\r
3 PSPSDK = $(shell psp-config --pspsdk-path)\r
4 \r
5 # settings\r
6 #use_musashi = 1\r
7 #use_mz80 = 1\r
8 amalgamate = 0\r
9 for_15fw = 1\r
10 \r
11 \r
12 CFLAGS += -I../.. -I. -DNO_SYNC\r
13 CFLAGS += -Wall -Winline -G0\r
14 #CFLAGS += -DLPRINTF_STDIO\r
15 #CFLAGS += -pg\r
16 ifeq ($(DEBUG),)\r
17 CFLAGS += -O2 -ftracer -fstrength-reduce -ffast-math\r
18 else\r
19 CFLAGS += -ggdb\r
20 endif\r
21 ifeq "$(for_15fw)" "1"\r
22 CFLAGS += -DFW15\r
23 endif\r
24 \r
25 \r
26 # frontend and stuff\r
27 OBJS += main.o emu.o mp3.o menu.o psp.o asm_utils.o\r
28 \r
29 # common\r
30 OBJS += ../common/emu.o ../common/menu.o ../common/fonts.o ../common/config.o ../common/readpng.o\r
31 \r
32 # Pico\r
33 ifeq "$(amalgamate)" "1"\r
34 OBJS += ../../PicoAll.o\r
35 else\r
36 OBJS += ../../Pico/Area.o ../../Pico/Cart.o ../../Pico/Memory.o ../../Pico/Misc.o \\r
37                 ../../Pico/Pico.o ../../Pico/Sek.o ../../Pico/VideoPort.o ../../Pico/Draw2.o ../../Pico/Draw.o \\r
38                 ../../Pico/Patch.o ../../Pico/Draw_amips.o ../../Pico/Memory_amips.o ../../Pico/Misc_amips.o\r
39 # Pico - CD\r
40 OBJS += ../../Pico/cd/Pico.o ../../Pico/cd/Memory.o ../../Pico/cd/Sek.o ../../Pico/cd/LC89510.o \\r
41                 ../../Pico/cd/cd_sys.o ../../Pico/cd/cd_file.o ../../Pico/cd/gfx_cd.o \\r
42                 ../../Pico/cd/Area.o ../../Pico/cd/Misc.o ../../Pico/cd/pcm.o ../../Pico/cd/buffering.o\r
43 # Pico - carthw\r
44 OBJS += ../../Pico/carthw/carthw.o ../../Pico/carthw/svp/svp.o ../../Pico/carthw/svp/Memory.o \\r
45                 ../../Pico/carthw/svp/ssp16.o\r
46 endif\r
47 \r
48 # Pico - sound\r
49 ifneq "$(amalgamate)" "1"\r
50 OBJS += ../../Pico/sound/sound.o\r
51 endif\r
52 OBJS += ../../Pico/sound/mix.o\r
53 OBJS += ../../Pico/sound/sn76496.o ../../Pico/sound/ym2612.o\r
54 # zlib (hacked)\r
55 OBJS += ../../zlib/gzio.o ../../zlib/inffast.o ../../zlib/inflate.o ../../zlib/inftrees.o ../../zlib/trees.o \\r
56         ../../zlib/deflate.o ../../zlib/crc32.o ../../zlib/adler32.o ../../zlib/zutil.o ../../zlib/compress.o \\r
57         ../../zlib/uncompr.o\r
58 # unzip\r
59 OBJS += ../../unzip/unzip.o ../../unzip/unzip_stream.o\r
60 # CPU cores\r
61 ifeq "$(use_musashi)" "1"\r
62 CFLAGS += -DEMU_M68K\r
63 OBJS += ../../cpu/musashi/m68kops.o ../../cpu/musashi/m68kcpu.o\r
64 else\r
65 CFLAGS += -DEMU_F68K\r
66 OBJS += ../../cpu/fame/famec.o\r
67 endif\r
68 # z80\r
69 ifeq "$(use_mz80)" "1"\r
70 CFLAGS += -D_USE_MZ80\r
71 OBJS += ../../cpu/mz80/mz80.o\r
72 else\r
73 CFLAGS += -D_USE_CZ80\r
74 OBJS += ../../cpu/cz80/cz80.o\r
75 endif\r
76 # bg images\r
77 OBJS += data/bg32.o data/bg40.o\r
78 \r
79 \r
80 LIBS += -lpng -lm -lpspgu -lpsppower -lpspaudio -lpsprtc -lpspaudiocodec -lpspkubridge\r
81 #LIBS += -lpspprof\r
82 LDFLAGS += -Wl,-Map=PicoDrive.map\r
83 \r
84 \r
85 # target\r
86 TARGET = PicoDrive\r
87 EXTRA_TARGETS = EBOOT.PBP\r
88 PSP_EBOOT_TITLE = PicoDrive\r
89 PSP_EBOOT_ICON = data/icon.png\r
90 #PSP_EBOOT_PIC1 = .png\r
91 ifneq "$(for_15fw)" "1"\r
92 BUILD_PRX = 1\r
93 endif\r
94 \r
95 CUSTOM_CLEAN = myclean\r
96 \r
97 include $(PSPSDK)/lib/build.mak\r
98 \r
99 # some additional rules\r
100 .c.o:\r
101         @echo ">>>" $<\r
102         $(CC) $(CFLAGS) -c $< -o $@\r
103 \r
104 AS := psp-as\r
105 \r
106 .s.o:\r
107         @echo ">>>" $<\r
108         $(AS) -march=allegrex -mtune=allegrex $< -o $@\r
109 \r
110 ../../cpu/musashi/m68kops.c :\r
111         make -C ../../cpu/musashi\r
112 \r
113 ../../cpu/fame/famec.o : ../../cpu/fame/famec.c\r
114         @echo ">>>" $<\r
115         $(CC) $(CFLAGS) -Wno-unused -c $< -o $@\r
116 \r
117 ../../Pico/Memory.o : ../../Pico/Memory.c\r
118         @echo ">>>" $<\r
119         $(CC) $(CFLAGS) -O2 -c $< -o $@ -D_ASM_MEMORY_C -D_ASM_MEMORY_C_AMIPS\r
120 \r
121 ../../Pico/cd/Memory.o : ../../Pico/cd/Memory.c\r
122         @echo ">>>" $<\r
123         $(CC) $(CFLAGS) -O2 -c $< -o $@\r
124 \r
125 ../../Pico/Draw.o : ../../Pico/Draw.c\r
126         @echo ">>>" $<\r
127         $(CC) $(CFLAGS) -c $< -o $@ -D_ASM_DRAW_C_AMIPS\r
128 \r
129 ../../Pico/Misc.o : ../../Pico/Misc.c\r
130         @echo ">>>" $<\r
131         $(CC) $(CFLAGS) -c $< -o $@ -D_ASM_MISC_C_AMIPS\r
132 \r
133 ../../Pico/cd/gfx_cd.o : ../../Pico/cd/gfx_cd.c\r
134         @echo ">>>" $<\r
135         $(CC) $(CFLAGS) -O2 -c $< -o $@\r
136 \r
137 readme.txt: ../../tools/textfilter ../base_readme.txt\r
138         ../../tools/textfilter ../base_readme.txt $@ PSP\r
139 \r
140 ../../tools/textfilter: ../../tools/textfilter.c\r
141         make -C ../../tools/ textfilter\r
142 \r
143 data/bg32.o: data/bg32.bin\r
144         bin2o -i $< $@ bgdatac32\r
145 \r
146 data/bg40.o: data/bg40.bin\r
147         bin2o -i $< $@ bgdatac40\r
148 \r
149 #\r
150 ifndef UPDIR\r
151 UPDIR = /media/disk/PSP/GAME/PicoDrive/\r
152 endif\r
153 up: EBOOT.PBP\r
154         @cp -v $^ $(UPDIR)\r
155 \r
156 \r
157 # cleanup\r
158 \r
159 myclean:\r
160         $(RM) PicoDrive.map\r
161         make -C ../../cpu/musashi clean\r
162 \r
163 \r
164 clean_prof:\r
165         find ../.. -name '*.gcno' -delete\r
166         find ../.. -name '*.gcda' -delete\r
167 \r
168 # ----------- release -----------\r
169 ifneq ($(findstring rel,$(MAKECMDGOALS)),)\r
170 ifeq ($(VER),)\r
171 $(error need VER)\r
172 endif\r
173 endif\r
174 \r
175 # ?\r
176 rel: EBOOT.PBP readme.txt ../game_def.cfg\r
177         mkdir -p PicoDrive/skin/\r
178         cp $^ PicoDrive/\r
179         cp skin/* PicoDrive/skin/\r
180         zip -9 -r ../../PicoDrive_psp_$(VER).zip PicoDrive\r
181         rm -rf PicoDrive\r
182 \r
183 rel_kxploit: readme.txt ../game_def.cfg\r
184         mkdir -p PicoDrive/skin/\r
185         cp $^ PicoDrive/\r
186         cp skin/* PicoDrive/skin/\r
187         zip -9 -r ../../PicoDrive_psp_$(VER)_kxploit.zip PicoDrive\r
188         zip -9 -r ../../PicoDrive_psp_$(VER)_kxploit.zip PicoDrive%\r
189 \r