common.mak 3.2 KB

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