Makefile 4.6 KB

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