psp bugfixes, refactoring, stuff
[picodrive.git] / platform / 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 #profile = 1\r
10 #up = 1\r
11 \r
12 \r
13 CFLAGS += -I../.. -I. -D_UNZIP_SUPPORT -DNO_SYNC # -DBENCHMARK\r
14 CFLAGS += -Wall -Winline -G0\r
15 ifeq ($(DEBUG),)\r
16 CFLAGS += -O2 -ftracer -fstrength-reduce -ffast-math\r
17 else\r
18 CFLAGS += -ggdb\r
19 endif\r
20 ifeq "$(profile)" "1"\r
21 CFLAGS += -fprofile-generate\r
22 endif\r
23 ifeq "$(profile)" "2"\r
24 CFLAGS += -fprofile-use\r
25 endif\r
26 \r
27 \r
28 # frontend\r
29 OBJS += main.o emu.o mp3.o menu.o psp.o\r
30 \r
31 # common\r
32 OBJS += ../common/emu.o ../common/menu.o ../common/fonts.o ../common/readpng.o\r
33 \r
34 # Pico\r
35 ifeq "$(amalgamate)" "1"\r
36 OBJS += ../../PicoAll.o\r
37 else\r
38 OBJS += ../../Pico/Area.o ../../Pico/Cart.o ../../Pico/Memory.o ../../Pico/Misc.o \\r
39                 ../../Pico/Pico.o ../../Pico/Sek.o ../../Pico/VideoPort.o ../../Pico/Draw2.o ../../Pico/Draw.o \\r
40                 ../../Pico/Patch.o ../../Pico/Draw_amips.o\r
41 # Pico - CD\r
42 OBJS += ../../Pico/cd/Pico.o ../../Pico/cd/Memory.o ../../Pico/cd/Sek.o ../../Pico/cd/LC89510.o \\r
43                 ../../Pico/cd/cd_sys.o ../../Pico/cd/cd_file.o ../../Pico/cd/gfx_cd.o \\r
44                 ../../Pico/cd/Area.o ../../Pico/cd/Misc.o ../../Pico/cd/pcm.o ../../Pico/cd/buffering.o\r
45 endif\r
46 \r
47 # Pico - sound\r
48 ifneq "$(amalgamate)" "1"\r
49 OBJS += ../../Pico/sound/sound.o\r
50 endif\r
51 OBJS += ../../Pico/sound/mix.o\r
52 OBJS += ../../Pico/sound/sn76496.o ../../Pico/sound/ym2612.o\r
53 # zlib (hacked)\r
54 OBJS += ../../zlib/gzio.o ../../zlib/inffast.o ../../zlib/inflate.o ../../zlib/inftrees.o ../../zlib/trees.o \\r
55         ../../zlib/deflate.o ../../zlib/crc32.o ../../zlib/adler32.o ../../zlib/zutil.o ../../zlib/compress.o \\r
56         ../../zlib/uncompr.o\r
57 # unzip\r
58 OBJS += ../../unzip/unzip.o ../../unzip/unzip_stream.o\r
59 # CPU cores\r
60 ifeq "$(use_musashi)" "1"\r
61 CFLAGS += -DEMU_M68K\r
62 OBJS += ../../cpu/musashi/m68kops.o ../../cpu/musashi/m68kcpu.o\r
63 else\r
64 CFLAGS += -DEMU_F68K\r
65 OBJS += ../../cpu/fame/famec.o\r
66 endif\r
67 # z80\r
68 ifeq "$(use_mz80)" "1"\r
69 CFLAGS += -D_USE_MZ80\r
70 OBJS += ../../cpu/mz80/mz80.o\r
71 else\r
72 CFLAGS += -D_USE_CZ80\r
73 OBJS += ../../cpu/cz80/cz80.o\r
74 endif\r
75 # bg images\r
76 OBJS += data/bg32.o data/bg40.o\r
77 \r
78 \r
79 LIBS += -lpng -lm -lpspgu -lpsppower -Wl,-Map=PicoDrive.map -lpspaudio\r
80 \r
81 # target\r
82 TARGET = PicoDrive\r
83 EXTRA_TARGETS = EBOOT.PBP\r
84 PSP_EBOOT_TITLE = PICODRIVE\r
85 #PSP_EBOOT_ICON = .png\r
86 #PSP_EBOOT_PIC1 = .png\r
87 \r
88 CUSTOM_CLEAN = myclean\r
89 \r
90 include $(PSPSDK)/lib/build.mak\r
91 \r
92 # some additional rules\r
93 .c.o:\r
94         @echo ">>>" $<\r
95         $(CC) $(CFLAGS) -c $< -o $@\r
96 \r
97 AS := psp-as\r
98 \r
99 .s.o:\r
100         @echo ">>>" $<\r
101         $(AS) -march=allegrex -mtune=allegrex $< -o $@\r
102 \r
103 ../../cpu/musashi/m68kops.c :\r
104         make -C ../../cpu/musashi\r
105 \r
106 readme.txt: ../../tools/textfilter ../base_readme.txt\r
107         ../../tools/textfilter ../base_readme.txt $@ PSP\r
108 \r
109 ../../tools/textfilter: ../../tools/textfilter.c\r
110         make -C ../../tools/ textfilter\r
111 \r
112 ../../cpu/fame/famec.o : ../../cpu/fame/famec.c\r
113         @echo ">>>" $<\r
114         $(CC) $(CFLAGS) -Wno-unused -c $< -o $@\r
115 \r
116 data/bg32.o: data/bg32.bin\r
117         bin2o -i $< $@ bgdatac32\r
118 \r
119 data/bg40.o: data/bg40.bin\r
120         bin2o -i $< $@ bgdatac40\r
121 \r
122 #\r
123 up: EBOOT.PBP\r
124         @cp -v $^ /media/disk/PSP/GAME/PicoDrive/\r
125 \r
126 \r
127 # cleanup\r
128 \r
129 myclean:\r
130         make -C ../../cpu/musashi clean\r
131 \r
132 \r
133 clean_prof:\r
134         find ../.. -name '*.gcno' -delete\r
135         find ../.. -name '*.gcda' -delete\r
136 \r
137 # ----------- release -----------\r
138 ifneq ($(findstring rel,$(MAKECMDGOALS)),)\r
139 ifeq ($(VER),)\r
140 $(error need VER)\r
141 endif\r
142 endif\r
143 \r
144 # ?\r
145 rel: EBOOT.PBP readme.txt\r
146         zip -9 -j ../../PicoDrive_$(VER).zip $^\r
147 #       zip -9 -r ../../PicoDrive_$(VER).zip skin -i \*.png -i \*.txt\r
148 \r