common.mak 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  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. # asm stuff
  23. ifeq "$(asm_render)" "1"
  24. DEFINES += _ASM_DRAW_C
  25. OBJS += pico/draw_arm.o pico/draw2_arm.o
  26. endif
  27. ifeq "$(asm_memory)" "1"
  28. DEFINES += _ASM_MEMORY_C
  29. OBJS += pico/memory_arm.o
  30. endif
  31. ifeq "$(asm_ym2612)" "1"
  32. DEFINES += _ASM_YM2612_C
  33. OBJS += pico/sound/ym2612_arm.o
  34. endif
  35. ifeq "$(asm_misc)" "1"
  36. DEFINES += _ASM_MISC_C
  37. OBJS += pico/misc_arm.o
  38. OBJS += pico/cd/misc_arm.o
  39. endif
  40. ifeq "$(asm_cdpico)" "1"
  41. DEFINES += _ASM_CD_PICO_C
  42. OBJS += pico/cd/pico_arm.o
  43. endif
  44. ifeq "$(asm_cdmemory)" "1"
  45. DEFINES += _ASM_CD_MEMORY_C
  46. OBJS += pico/cd/memory_arm.o
  47. endif
  48. ifeq "$(asm_32xdraw)" "1"
  49. DEFINES += _ASM_32X_DRAW
  50. OBJS += pico/32x/draw_arm.o
  51. endif
  52. # === Pico core ===
  53. # Pico
  54. OBJS += pico/state.o pico/cart.o pico/memory.o pico/pico.o pico/sek.o pico/z80if.o \
  55. pico/videoport.o pico/draw2.o pico/draw.o pico/mode4.o \
  56. pico/misc.o pico/eeprom.o pico/patch.o pico/debug.o
  57. # SMS
  58. ifneq "$(no_sms)" "1"
  59. OBJS += pico/sms.o
  60. else
  61. DEFINES += NO_SMS
  62. endif
  63. # 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/misc.o pico/cd/pcm.o pico/cd/buffering.o
  67. # 32X
  68. ifneq "$(no_32x)" "1"
  69. OBJS += pico/32x/32x.o pico/32x/memory.o pico/32x/draw.o pico/32x/pwm.o
  70. else
  71. DEFINES += NO_32X
  72. endif
  73. # Pico
  74. OBJS += pico/pico/pico.o pico/pico/memory.o pico/pico/xpcm.o
  75. # carthw
  76. OBJS += pico/carthw/carthw.o
  77. # SVP
  78. OBJS += pico/carthw/svp/svp.o pico/carthw/svp/memory.o \
  79. pico/carthw/svp/ssp16.o
  80. ifeq "$(ARCH)" "arm"
  81. OBJS += pico/carthw/svp/stub_arm.o
  82. OBJS += pico/carthw/svp/compiler.o
  83. endif
  84. # sound
  85. OBJS += pico/sound/sound.o
  86. OBJS += pico/sound/sn76496.o pico/sound/ym2612.o
  87. # === CPU cores ===
  88. # --- M68k ---
  89. ifeq "$(use_musashi)" "1"
  90. DEFINES += EMU_M68K
  91. OBJS += cpu/musashi/m68kops.o cpu/musashi/m68kcpu.o
  92. #OBJS += cpu/musashi/m68kdasm.o
  93. endif
  94. ifeq "$(use_cyclone)" "1"
  95. DEFINES += EMU_C68K
  96. OBJS += pico/m68kif_cyclone.o cpu/cyclone/Cyclone.o cpu/cyclone/tools/idle.o
  97. endif
  98. ifeq "$(use_fame)" "1"
  99. DEFINES += EMU_F68K
  100. OBJS += cpu/fame/famec.o
  101. endif
  102. # --- Z80 ---
  103. ifeq "$(use_drz80)" "1"
  104. DEFINES += _USE_DRZ80
  105. OBJS += cpu/DrZ80/drz80.o
  106. endif
  107. #
  108. ifeq "$(use_cz80)" "1"
  109. DEFINES += _USE_CZ80
  110. OBJS += cpu/cz80/cz80.o
  111. endif
  112. # --- SH2 ---
  113. OBJS += cpu/drc/cmn.o
  114. ifneq "$(no_32x)" "1"
  115. OBJS += cpu/sh2/sh2.o
  116. #
  117. ifeq "$(use_sh2drc)" "1"
  118. DEFINES += DRC_SH2
  119. OBJS += cpu/sh2/compiler.o
  120. ifdef drc_debug
  121. DEFINES += DRC_DEBUG=$(drc_debug)
  122. OBJS += cpu/sh2/mame/sh2dasm.o
  123. OBJS += platform/linux/host_dasm.o
  124. LDFLAGS += -lbfd -lopcodes -liberty
  125. endif
  126. ifeq "$(drc_debug_interp)" "1"
  127. DEFINES += DRC_DEBUG_INTERP
  128. use_sh2mame = 1
  129. endif
  130. endif # use_sh2drc
  131. #
  132. ifeq "$(use_sh2mame)" "1"
  133. OBJS += cpu/sh2/mame/sh2pico.o
  134. endif
  135. endif # !no_32x
  136. CFLAGS += $(addprefix -D,$(DEFINES))
  137. # common rules
  138. .s.o:
  139. @echo ">>>" $<
  140. $(CC) $(CFLAGS) -c $< -o $@
  141. tools/textfilter: tools/textfilter.c
  142. make -C tools/ textfilter
  143. # random deps
  144. pico/carthw/svp/compiler.o : cpu/drc/emit_$(ARCH).c
  145. cpu/sh2/compiler.o : cpu/drc/emit_$(ARCH).c
  146. cpu/sh2/mame/sh2pico.o : cpu/sh2/mame/sh2.c
  147. pico/pico.o pico/cd/pico.o : pico/pico_cmn.c pico/pico_int.h
  148. pico/memory.o pico/cd/memory.o : pico/pico_int.h pico/memory.h
  149. cpu/musashi/m68kops.c :
  150. @make -C cpu/musashi
  151. cpu/fame/famec.o : cpu/fame/famec.c cpu/fame/famec_opcodes.h
  152. @echo ">>>" $<
  153. $(CC) $(CFLAGS) -Wno-unused -c $< -o $@
  154. cpu/cyclone/Cyclone.s:
  155. @echo building Cyclone...
  156. @make -C cpu/cyclone CONFIG_FILE='\"../cyclone_config.h\"'