common.mak 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. ifneq ($(DEBUG),)
  2. CFLAGS += -ggdb
  3. endif
  4. ifeq "$(profile)" "1"
  5. CFLAGS += -fprofile-generate
  6. endif
  7. ifeq "$(profile)" "2"
  8. CFLAGS += -fprofile-use
  9. endif
  10. ifeq "$(pdb)" "1"
  11. DEFINES += PDB
  12. OBJS += cpu/debug.o
  13. ifeq "$(pdb_net)" "1"
  14. DEFINES += PDB_NET
  15. endif
  16. ifeq "$(readline)" "1"
  17. DEFINES += HAVE_READLINE
  18. LDFLAGS += -lreadline
  19. endif
  20. endif
  21. ifeq "$(pprof)" "1"
  22. DEFINES += PPROF
  23. OBJS += platform/linux/pprof.o
  24. endif
  25. # === Pico core ===
  26. # Pico
  27. OBJS += pico/area.o pico/cart.o pico/memory.o pico/pico.o pico/sek.o pico/z80if.o \
  28. pico/videoport.o pico/draw2.o pico/draw.o pico/mode4.o pico/sms.o \
  29. pico/misc.o pico/eeprom.o pico/patch.o pico/debug.o
  30. # CD
  31. OBJS += pico/cd/pico.o pico/cd/memory.o pico/cd/sek.o pico/cd/LC89510.o \
  32. pico/cd/cd_sys.o pico/cd/cd_file.o pico/cd/cue.o pico/cd/gfx_cd.o \
  33. pico/cd/area.o pico/cd/misc.o pico/cd/pcm.o pico/cd/buffering.o
  34. # 32X
  35. OBJS += pico/32x/32x.o pico/32x/memory.o pico/32x/draw.o pico/32x/pwm.o
  36. # Pico
  37. OBJS += pico/pico/pico.o pico/pico/memory.o pico/pico/xpcm.o
  38. # carthw
  39. OBJS += pico/carthw/carthw.o
  40. # SVP
  41. OBJS += pico/carthw/svp/svp.o pico/carthw/svp/memory.o \
  42. pico/carthw/svp/ssp16.o
  43. # sound
  44. OBJS += pico/sound/sound.o
  45. OBJS += pico/sound/sn76496.o pico/sound/ym2612.o
  46. # === CPU cores ===
  47. # --- M68k ---
  48. ifeq "$(use_musashi)" "1"
  49. DEFINES += EMU_M68K
  50. OBJS += cpu/musashi/m68kops.o cpu/musashi/m68kcpu.o
  51. #OBJS += cpu/musashi/m68kdasm.o
  52. endif
  53. ifeq "$(use_cyclone)" "1"
  54. DEFINES += EMU_C68K
  55. OBJS += pico/m68kif_cyclone.o cpu/Cyclone/proj/Cyclone.o cpu/Cyclone/tools/idle.o
  56. endif
  57. ifeq "$(use_fame)" "1"
  58. DEFINES += EMU_F68K
  59. OBJS += cpu/fame/famec.o
  60. endif
  61. # --- Z80 ---
  62. ifeq "$(use_mz80)" "1"
  63. DEFINES += _USE_MZ80
  64. OBJS += cpu/mz80/mz80.o
  65. endif
  66. #
  67. ifeq "$(use_drz80)" "1"
  68. DEFINES += _USE_DRZ80
  69. OBJS += cpu/DrZ80/drz80.o
  70. endif
  71. #
  72. ifeq "$(use_cz80)" "1"
  73. DEFINES += _USE_CZ80
  74. OBJS += cpu/cz80/cz80.o
  75. endif
  76. # --- SH2 ---
  77. OBJS += cpu/sh2/sh2.o
  78. OBJS += cpu/drc/cmn.o
  79. #
  80. ifeq "$(use_sh2drc)" "1"
  81. DEFINES += DRC_SH2
  82. OBJS += cpu/sh2/compiler.o
  83. ifdef drc_debug
  84. DEFINES += DRC_DEBUG=$(drc_debug)
  85. OBJS += cpu/sh2/mame/sh2dasm.o
  86. OBJS += platform/linux/host_dasm.o
  87. LDFLAGS += -lbfd -lopcodes -liberty
  88. endif
  89. ifeq "$(drc_debug_interp)" "1"
  90. DEFINES += DRC_DEBUG_INTERP
  91. use_sh2mame = 1
  92. endif
  93. endif
  94. #
  95. ifeq "$(use_sh2mame)" "1"
  96. OBJS += cpu/sh2/mame/sh2pico.o
  97. endif
  98. DIRS += platform platform/common pico pico/cd pico/pico pico/32x pico/sound pico/carthw/svp \
  99. cpu cpu/musashi cpu/cz80 cpu/fame cpu/sh2/mame cpu/drc
  100. # common rules
  101. .c.o:
  102. @echo ">>>" $<
  103. $(CC) $(CFLAGS) -c $< -o $@
  104. .s.o:
  105. @echo ">>>" $<
  106. $(CC) $(CFLAGS) -c $< -o $@
  107. clean_prof:
  108. find ../.. -name '*.gcno' -delete
  109. find ../.. -name '*.gcda' -delete
  110. mkdirs:
  111. mkdir -p $(DIRS)
  112. ../../tools/textfilter: ../../tools/textfilter.c
  113. make -C ../../tools/ textfilter
  114. # random deps
  115. pico/carthw/svp/compiler.o : ../../cpu/drc/emit_$(ARCH).c
  116. cpu/sh2/compiler.o : ../../cpu/drc/emit_$(ARCH).c
  117. cpu/sh2/mame/sh2pico.o : ../../cpu/sh2/mame/sh2.c
  118. pico/pico.o pico/cd/pico.o : ../../pico/pico_cmn.c ../../pico/pico_int.h
  119. pico/memory.o pico/cd/memory.o : ../../pico/pico_int.h ../../pico/memory.h
  120. ../../cpu/musashi/m68kops.c :
  121. @make -C ../../cpu/musashi
  122. ../../cpu/mz80/mz80.asm :
  123. @make -C ../../cpu/mz80/
  124. cpu/fame/famec.o : ../../cpu/fame/famec.c ../../cpu/fame/famec_opcodes.h
  125. @echo ">>>" $<
  126. $(CC) $(CFLAGS) -Wno-unused -c $< -o $@
  127. ../../cpu/Cyclone/proj/Cyclone.s:
  128. @echo building Cyclone...
  129. @make -C ../../cpu/Cyclone/proj CONFIG_FILE=config_pico.h