Makefile 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. # settings
  2. use_musashi = 1
  3. #use_fame = 1
  4. #use_mz80 = 1
  5. # profile = 1
  6. DEFINC = -I../.. -I. -D__GP2X__ -D_UNZIP_SUPPORT -DIO_STATS # -DBENCHMARK
  7. GCC = gcc
  8. STRIP = strip
  9. AS = gcc
  10. ifeq "$(profile)" "1"
  11. COPT_COMMON = -s -O3 -ftracer -fstrength-reduce -Wall -funroll-loops -fomit-frame-pointer -fstrict-aliasing -ffast-math -fprofile-generate
  12. COPT = $(COPT_COMMON)
  13. else
  14. COPT = -ggdb -Wall -fno-strict-aliasing # -pg -O3 -ftracer -fstrength-reduce -funroll-loops -fomit-frame-pointer -ffast-math
  15. COPT_COMMON = $(COPT)
  16. endif
  17. # gtk
  18. COPT += `pkg-config --cflags gtk+-2.0`
  19. LDFLAGS += `pkg-config --libs gtk+-2.0`
  20. COPT += `pkg-config --cflags gthread-2.0`
  21. LDFLAGS += `pkg-config --libs gthread-2.0`
  22. # frontend
  23. OBJS += platform/gp2x/main.o platform/gp2x/menu.o platform/gp2x/emu.o usbjoy.o blit.o \
  24. sndout_oss.o gp2x.o 940ctl_ym2612.o log_io.o
  25. # common
  26. OBJS += platform/common/emu.o platform/common/menu.o platform/common/config.o platform/common/fonts.o \
  27. platform/common/readpng.o platform/common/mp3_helix.o
  28. # Pico
  29. OBJS += pico/area.o pico/cart.o pico/memory.o pico/misc.o pico/pico.o pico/sek.o \
  30. pico/videoport.o pico/draw2.o pico/draw.o pico/patch.o pico/debug.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/cue.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 - Pico
  36. OBJS += pico/pico/pico.o pico/pico/memory.o pico/pico/xpcm.o
  37. # Pico - sound
  38. OBJS += pico/sound/sound.o pico/sound/sn76496.o pico/sound/ym2612.o pico/sound/mix.o
  39. # Pico - carthw
  40. OBJS += pico/carthw/carthw.o pico/carthw/svp/svp.o pico/carthw/svp/memory.o \
  41. pico/carthw/svp/ssp16.o pico/carthw/svp/compiler.o
  42. # zlib
  43. OBJS += zlib/gzio.o zlib/inffast.o zlib/inflate.o zlib/inftrees.o zlib/trees.o \
  44. zlib/deflate.o zlib/crc32.o zlib/adler32.o zlib/zutil.o zlib/compress.o zlib/uncompr.o
  45. # unzip
  46. OBJS += unzip/unzip.o unzip/unzip_stream.o
  47. # CPU cores
  48. ifeq "$(use_musashi)" "1"
  49. DEFINC += -DEMU_M68K
  50. OBJS += cpu/musashi/m68kops.o cpu/musashi/m68kcpu.o
  51. endif
  52. ifeq "$(use_fame)" "1"
  53. DEFINC += -DEMU_F68K
  54. OBJS += cpu/fame/famec.o
  55. endif
  56. # z80
  57. ifeq "$(use_mz80)" "1"
  58. DEFINC += -D_USE_MZ80
  59. OBJS += cpu/mz80/mz80.o
  60. else
  61. DEFINC += -D_USE_CZ80
  62. OBJS += cpu/cz80/cz80.o
  63. endif
  64. # misc
  65. ifeq "$(use_fame)" "1"
  66. ifeq "$(use_musashi)" "1"
  67. OBJS += pico/debugCPU.o
  68. OBJS += cpu/musashi/m68kdasm.o
  69. endif
  70. endif
  71. OBJS += cpu/musashi/m68kdasm.o
  72. vpath %.c = ../..
  73. DIRS = platform platform/gp2x platform/common pico pico/cd pico/pico pico/sound pico/carthw/svp \
  74. zlib unzip cpu cpu/musashi cpu/fame cpu/mz80 cpu/cz80
  75. all: mkdirs PicoDrive
  76. clean: tidy
  77. @$(RM) PicoDrive
  78. tidy:
  79. $(RM) $(OBJS)
  80. rm -rf $(DIRS)
  81. @make -C ../../cpu/mz80/ clean
  82. @make -C ../common/helix/ X86=1 clean
  83. PicoDrive : $(OBJS) ../common/helix/helix_mp3_x86.a
  84. @echo ">>>" $@
  85. $(GCC) $(COPT) $^ $(LDFLAGS) -lm -lpng -Wl,-Map=PicoDrive.map -o $@
  86. mkdirs:
  87. mkdir -p $(DIRS)
  88. pico/carthw/svp/compiler.o : ../../pico/carthw/svp/gen_arm.c
  89. pico/pico.o pico/cd/pico.o : ../../pico/pico_cmn.c ../../pico/pico_int.h
  90. pico/memory.o pico/cd/memory.o : ../../pico/memory_cmn.c ../../pico/pico_int.h
  91. ../../cpu/musashi/m68kops.c :
  92. @make -C ../../cpu/musashi
  93. cpu/mz80/mz80.o : ../../cpu/mz80/mz80.asm
  94. @echo $@
  95. @nasm -f elf $< -o $@
  96. ../../cpu/mz80/mz80.asm :
  97. @make -C ../../cpu/mz80/
  98. ../common/helix/helix_mp3_x86.a:
  99. @make -C ../common/helix/ X86=1 clean all
  100. .c.o:
  101. @echo ">>>" $<
  102. $(GCC) $(COPT) $(DEFINC) -c $< -o $@
  103. .s.o:
  104. @echo ">>>" $<
  105. $(GCC) $(COPT) $(DEFINC) -c $< -o $@
  106. pico/sound/ym2612.o : ../../pico/sound/ym2612.c
  107. @echo ">>>" $@
  108. $(GCC) $(COPT_COMMON) $(DEFINC) -c $< -o $@
  109. cpu/fame/famec.o : ../../cpu/fame/famec.c ../../cpu/fame/famec_opcodes.h
  110. @echo ">>>" $<
  111. $(GCC) $(COPT) $(DEFINC) -Wno-unused -c $< -o $@