Makefile 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. # you may or may not need to change this
  2. #devkit_path = x:/stuff/dev/devkitgp2x/
  3. CROSS = arm-linux-
  4. #CROSS = $(devkit_path)bin/arm-linux-
  5. # settings
  6. dprint = 1
  7. #mz80 = 1
  8. #debug_cyclone = 1
  9. asm_memory = 0 # TODO
  10. asm_render = 1
  11. asm_ym2612 = 1
  12. asm_misc = 1
  13. #profile = 1
  14. #use_musashi = 1
  15. #up = 1
  16. DEFINC = -I../.. -I. -DARM -D__GP2X__ -D_UNZIP_SUPPORT # -DBENCHMARK
  17. COPT_COMMON = -static -s -O3 -ftracer -fstrength-reduce -Wall -funroll-loops -fomit-frame-pointer -fstrict-aliasing -ffast-math
  18. ifeq "$(profile)" "1"
  19. COPT_COMMON += -fprofile-generate
  20. endif
  21. ifeq "$(profile)" "2"
  22. COPT_COMMON += -fprofile-use
  23. endif
  24. COPT = $(COPT_COMMON) -mtune=arm920t
  25. ASOPT = -mcpu=arm920t -mfloat-abi=soft
  26. GCC = $(CROSS)gcc
  27. STRIP = $(CROSS)strip
  28. AS = $(CROSS)as
  29. LD = $(CROSS)ld
  30. OBJCOPY = $(CROSS)objcopy
  31. # frontend
  32. OBJS += main.o menu.o fonts.o gp2x.o usbjoy.o emu.o squidgehack.o asmutils.o cpuctrl.o
  33. # 940 core control
  34. OBJS += 940ctl.o
  35. # Pico
  36. OBJS += ../../Pico/Area.o ../../Pico/Cart.o ../../Pico/Utils.o ../../Pico/Memory.o ../../Pico/Misc.o \
  37. ../../Pico/Pico.o ../../Pico/Sek.o ../../Pico/VideoPort.o ../../Pico/Draw2.o ../../Pico/Draw.o \
  38. ../../Pico/Patch.o
  39. # Pico - CD
  40. OBJS += ../../Pico/cd/Pico.o ../../Pico/cd/Memory.o ../../Pico/cd/Sek.o ../../Pico/cd/LC89510.o \
  41. ../../Pico/cd/cd_sys.o ../../Pico/cd/cd_file.o ../../Pico/cd/gfx_cd.o \
  42. ../../Pico/cd/Area.o ../../Pico/cd/Misc.o ../../Pico/cd/pcm.o
  43. # asm stuff
  44. ifeq "$(asm_render)" "1"
  45. DEFINC += -D_ASM_DRAW_C
  46. OBJS += ../../Pico/draw_asm.o ../../Pico/draw2_asm.o
  47. endif
  48. ifeq "$(asm_memory)" "1"
  49. DEFINC += -D_ASM_MEMORY_C
  50. OBJS += ../../Pico/memory_asm.o
  51. endif
  52. ifeq "$(asm_ym2612)" "1"
  53. DEFINC += -D_ASM_YM2612_C
  54. OBJS += ../../Pico/sound/ym2612_asm.o
  55. endif
  56. ifeq "$(asm_misc)" "1"
  57. DEFINC += -D_ASM_MISC_C
  58. OBJS += ../../Pico/misc_asm.o
  59. endif
  60. # Pico - sound
  61. OBJS += ../../Pico/sound/mix_asm.o
  62. OBJS += ../../Pico/sound/sound.o ../../Pico/sound/sn76496.o ../../Pico/sound/ym2612.o
  63. # zlib
  64. OBJS += ../../zlib/gzio.o ../../zlib/inffast.o ../../zlib/inflate.o ../../zlib/inftrees.o ../../zlib/trees.o \
  65. ../../zlib/deflate.o ../../zlib/crc32.o ../../zlib/adler32.o ../../zlib/zutil.o ../../zlib/compress.o
  66. # unzip
  67. OBJS += ../../unzip/unzip.o ../../unzip/unzip_stream.o
  68. # mp3
  69. OBJS += mp3.o
  70. # CPU cores
  71. ifeq "$(use_musashi)" "1"
  72. DEFINC += -DEMU_M68K
  73. OBJS += _build\m68kcpu.o _build\m68kopac.o _build\m68kopdm.o _build\m68kopnz.o _build\m68kops.o
  74. else
  75. DEFINC += -DEMU_C68K
  76. OBJS += ../../cpu/Cyclone/proj/Cyclone.o
  77. endif
  78. # drz80/mz80
  79. ifeq "$(mz80)" "1"
  80. DEFINC += -D_USE_MZ80
  81. OBJS += ../../cpu/mz80/mz80.o
  82. else
  83. DEFINC += -D_USE_DRZ80
  84. OBJS += ../../cpu/DrZ80/drz80.o
  85. endif
  86. all: PicoDrive.gpe
  87. PicoDrive.gpe : $(OBJS) helix/helix_mp3.a
  88. @echo $@
  89. @$(GCC) -o $@ $(COPT) $^ -lm
  90. @$(STRIP) $@
  91. # @$(GCC) $(COPT) $(OBJS) -lm -o PicoDrive_.gpe
  92. # @gpecomp PicoDrive_.gpe $@
  93. ifeq "$(up)" "1"
  94. @cmd //C copy $@ \\\\10.0.1.2\\gp2x\\mnt\\sd\\games\\PicoDrive\\
  95. endif
  96. up: PicoDrive.gpe
  97. @cp -v PicoDrive.gpe /mnt/gp2x/mnt/sd/games/PicoDrive/
  98. # @cmd //C copy PicoDrive.gpe \\\\10.0.1.2\\gp2x\\mnt\\sd\\games\\PicoDrive\\
  99. testrefr.gpe : test.o gp2x.o asmutils.o
  100. @echo $@
  101. @$(GCC) $(COPT) $^ -o $@
  102. @$(STRIP) $@
  103. .c.o:
  104. @echo $<
  105. @$(GCC) $(COPT) $(DEFINC) -c $< -o $@
  106. .s.o:
  107. @echo $<
  108. @$(GCC) $(COPT) $(DEFINC) -c $< -o $@
  109. ../../Pico/draw_asm.o : ../../Pico/Draw.s
  110. @echo $<
  111. @$(AS) $(ASOPT) $< -o $@
  112. ../../Pico/draw2_asm.o : ../../Pico/Draw2.s
  113. @echo $<
  114. @$(AS) $(ASOPT) $< -o $@
  115. ../../Pico/memory_asm.o : ../../Pico/Memory.s
  116. @echo $<
  117. @$(AS) $(ASOPT) $< -o $@
  118. ../../Pico/sound/ym2612_asm.o : ../../Pico/sound/ym2612.s
  119. @echo $<
  120. @$(AS) $(ASOPT) $< -o $@
  121. ../../Pico/sound/mix_asm.o : ../../Pico/sound/mix.s
  122. @echo $<
  123. @$(AS) $(ASOPT) $< -o $@
  124. ../../Pico/misc_asm.o : ../../Pico/misc.s
  125. @echo $<
  126. @$(AS) $(ASOPT) $< -o $@
  127. # build Cyclone
  128. ../../cpu/Cyclone/proj/Cyclone.s :
  129. @echo building Cyclone...
  130. @make -C ../../cpu/Cyclone/proj -f Makefile.linux
  131. # build helix libs
  132. helix/helix_mp3.a:
  133. make -C helix
  134. # cleanup
  135. clean: tidy
  136. @$(RM) PicoDrive.gpe
  137. tidy:
  138. @$(RM) $(OBJS)
  139. # @make -C ../../cpu/Cyclone/proj -f Makefile.linux clean
  140. clean_prof:
  141. find ../.. -name '*.gcno' -delete
  142. find ../.. -name '*.gcda' -delete
  143. # ----------- release -----------
  144. ifneq ($(findstring rel,$(MAKECMDGOALS)),)
  145. ifeq ($(VER),)
  146. $(error need VER)
  147. endif
  148. endif
  149. rel: PicoDrive.gpe code940/code940.bin ../readme.txt config.txt
  150. zip -9 -j ../../PicoDrive_$(VER).zip $^ mmuhack.o
  151. code940/code940.bin:
  152. make -C code940/
  153. # test
  154. usbjoy.o : usbjoy.c
  155. @echo $<
  156. @$(GCC) $(COPT) $(DEFINC) -fno-profile-generate -c $< -o $@
  157. ../../Pico/Cart.o : ../../Pico/Cart.c
  158. @echo $<
  159. @$(GCC) $(COPT) $(DEFINC) -fno-profile-generate -c $< -o $@
  160. ../../zlib/trees.o : ../../zlib/trees.c
  161. @echo $<
  162. @$(GCC) $(COPT) $(DEFINC) -fno-profile-generate -c $< -o $@