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