Makefile 5.0 KB

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