Makefile 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. # you may or may not need to change this
  2. #devkit_path = x:/stuff/dev/devkitgp2x/
  3. export CROSS = arm-linux-
  4. #CROSS = $(devkit_path)bin/arm-linux-
  5. # settings
  6. #mz80 = 1
  7. #debug_cyclone = 1
  8. asm_memory = 1
  9. asm_render = 1
  10. asm_ym2612 = 1
  11. asm_misc = 1
  12. asm_cdpico = 1
  13. asm_cdmemory = 1
  14. amalgamate = 0
  15. #profile = 1
  16. #use_musashi = 1
  17. #up = 1
  18. ifeq "$(debug_cyclone)" "1"
  19. use_cyclone = 1
  20. use_musashi = 1
  21. endif
  22. ifeq "$(use_musashi)" "1"
  23. asm_cdpico = 0
  24. asm_memory = 0
  25. asm_cdmemory = 0
  26. else
  27. use_cyclone = 1
  28. endif
  29. DEFINC = -I../.. -I. -DARM -D__GP2X__ # -DBENCHMARK
  30. COPT_COMMON = -static -Wall -Winline
  31. ifeq ($(DEBUG),)
  32. COPT_COMMON += -O3 -ftracer -fstrength-reduce -fomit-frame-pointer -fstrict-aliasing -ffast-math
  33. else
  34. COPT_COMMON += -ggdb
  35. endif
  36. ifeq "$(profile)" "1"
  37. COPT_COMMON += -fprofile-generate
  38. endif
  39. ifeq "$(profile)" "2"
  40. COPT_COMMON += -fprofile-use
  41. endif
  42. CFLAGS = $(COPT_COMMON) -mcpu=arm920t -mtune=arm920t
  43. SFLAGS = $(CFLAGS)
  44. ASFLAGS = -mcpu=arm920t -mfloat-abi=soft
  45. CC = $(CROSS)gcc
  46. STRIP = $(CROSS)strip
  47. AS = $(CROSS)as
  48. LD = $(CROSS)ld
  49. OBJCOPY = $(CROSS)objcopy
  50. # frontend
  51. OBJS += main.o menu.o gp2x.o usbjoy.o emu.o squidgehack.o cpuctrl.o asm_utils.o
  52. # 940 core control
  53. OBJS += 940ctl.o
  54. # common
  55. OBJS += platform/common/emu.o platform/common/menu.o platform/common/fonts.o platform/common/config.o \
  56. platform/common/arm_utils.o platform/common/readpng.o platform/common/mp3_helix.o
  57. # Pico
  58. ifeq "$(amalgamate)" "1"
  59. OBJS += ../../PicoAll.o
  60. else
  61. OBJS += Pico/Area.o Pico/Cart.o Pico/Memory.o Pico/Misc.o Pico/Pico.o Pico/Sek.o \
  62. Pico/VideoPort.o Pico/Draw2.o Pico/Draw.o Pico/Patch.o Pico/Debug.o
  63. # Pico - CD
  64. OBJS += Pico/cd/Pico.o Pico/cd/Memory.o Pico/cd/Sek.o Pico/cd/LC89510.o \
  65. Pico/cd/cd_sys.o Pico/cd/cd_file.o Pico/cd/cue.o Pico/cd/gfx_cd.o \
  66. Pico/cd/Area.o Pico/cd/Misc.o Pico/cd/pcm.o Pico/cd/buffering.o
  67. endif
  68. # Pico - Pico
  69. OBJS += Pico/Pico/Pico.o Pico/Pico/Memory.o Pico/Pico/xpcm.o
  70. # Pico - carthw
  71. OBJS += Pico/carthw/carthw.o Pico/carthw/svp/svp.o Pico/carthw/svp/Memory.o \
  72. Pico/carthw/svp/ssp16.o Pico/carthw/svp/compiler.o Pico/carthw/svp/stub_arm.o
  73. # asm stuff
  74. ifeq "$(asm_render)" "1"
  75. DEFINC += -D_ASM_DRAW_C
  76. OBJS += Pico/draw_asm.o Pico/draw2_asm.o
  77. endif
  78. ifeq "$(asm_memory)" "1"
  79. DEFINC += -D_ASM_MEMORY_C
  80. OBJS += Pico/memory_asm.o
  81. endif
  82. ifeq "$(asm_ym2612)" "1"
  83. DEFINC += -D_ASM_YM2612_C
  84. OBJS += Pico/sound/ym2612_asm.o
  85. endif
  86. ifeq "$(asm_misc)" "1"
  87. DEFINC += -D_ASM_MISC_C
  88. OBJS += Pico/misc_asm.o
  89. OBJS += Pico/cd/misc_asm.o
  90. endif
  91. ifeq "$(asm_cdpico)" "1"
  92. DEFINC += -D_ASM_CD_PICO_C
  93. OBJS += Pico/cd/pico_asm.o
  94. endif
  95. ifeq "$(asm_cdmemory)" "1"
  96. DEFINC += -D_ASM_CD_MEMORY_C
  97. OBJS += Pico/cd/memory_asm.o
  98. endif
  99. # Pico - sound
  100. ifneq "$(amalgamate)" "1"
  101. OBJS += Pico/sound/sound.o
  102. endif
  103. OBJS += Pico/sound/mix_asm.o
  104. OBJS += Pico/sound/sn76496.o Pico/sound/ym2612.o
  105. # zlib
  106. OBJS += zlib/gzio.o zlib/inffast.o zlib/inflate.o zlib/inftrees.o zlib/trees.o \
  107. zlib/deflate.o zlib/crc32.o zlib/adler32.o zlib/zutil.o zlib/compress.o
  108. # unzip
  109. OBJS += unzip/unzip.o unzip/unzip_stream.o
  110. # debug
  111. ifeq "$(debug_cyclone)" "1"
  112. OBJS += Pico/DebugCPU.o cpu/musashi/m68kdasm.o
  113. endif
  114. # CPU cores
  115. ifeq "$(use_musashi)" "1"
  116. DEFINC += -DEMU_M68K
  117. OBJS += cpu/musashi/m68kops.o cpu/musashi/m68kcpu.o
  118. endif
  119. ifeq "$(use_cyclone)" "1"
  120. DEFINC += -DEMU_C68K
  121. OBJS += cpu/Cyclone/proj/Cyclone.o cpu/Cyclone/tools/idle.o
  122. endif
  123. # drz80/mz80
  124. ifeq "$(mz80)" "1"
  125. DEFINC += -D_USE_MZ80
  126. OBJS += cpu/mz80/mz80.o
  127. else
  128. DEFINC += -D_USE_DRZ80
  129. OBJS += cpu/DrZ80/drz80.o
  130. endif
  131. vpath %.c = ../..
  132. vpath %.s = ../..
  133. vpath %.S = ../..
  134. DIRS = platform platform/gp2x platform/common Pico Pico/cd Pico/Pico Pico/sound Pico/carthw/svp \
  135. zlib unzip cpu cpu/musashi cpu/Cyclone/proj cpu/Cyclone/tools cpu/mz80 cpu/DrZ80
  136. all: mkdirs PicoDrive.gpe
  137. PicoDrive.gpe : $(OBJS) ../common/helix/$(CROSS)helix-mp3.a
  138. @echo ">>>" $@
  139. $(CC) -o $@ $(CFLAGS) $^ -lm -lpng -Wl,-Map=PicoDrive.map
  140. ifeq ($(DEBUG),)
  141. $(STRIP) $@
  142. endif
  143. up: PicoDrive.gpe
  144. @cp -v PicoDrive.gpe /mnt/gp2x/mnt/sd/emus/PicoDrive/
  145. # @cmd //C copy PicoDrive.gpe \\\\10.0.1.2\\gp2x\\mnt\\sd\\games\\PicoDrive\\
  146. # cleanup
  147. clean: tidy
  148. $(RM) PicoDrive.gpe
  149. tidy:
  150. $(RM) $(OBJS)
  151. # rm -rf $(DIRS) # don't clean, gcda may be there
  152. # @make -C ../../cpu/Cyclone/proj -f Makefile.linux clean
  153. readme.txt: ../../tools/textfilter ../base_readme.txt
  154. ../../tools/textfilter ../base_readme.txt $@ GP2X
  155. include ../common/common_arm.mak
  156. # ----------- release -----------
  157. ifneq ($(findstring rel,$(MAKECMDGOALS)),)
  158. ifeq ($(VER),)
  159. $(error need VER)
  160. endif
  161. endif
  162. rel: PicoDrive.gpe code940/pico940_v3.bin readme.txt PicoDrive.man.txt PicoDrive.png ../game_def.cfg
  163. zip -9 -j ../../PicoDrive_$(VER).zip $^ mmuhack.o
  164. zip -9 -r ../../PicoDrive_$(VER).zip skin -i \*.png -i \*.txt
  165. mkdir bin_to_cso_mp3
  166. cp ../../tools/bin_to_cso_mp3/* bin_to_cso_mp3/
  167. zip -9 -r ../../PicoDrive_$(VER).zip bin_to_cso_mp3
  168. rm -rf bin_to_cso_mp3
  169. code940/code940.bin:
  170. make -C code940/