1ifdef drc_debug 2use_fame = 1 3use_cz80 = 1 4use_cyclone = 0 5use_drz80 = 0 6 7asm_memory = 0 8asm_render = 0 9asm_ym2612 = 0 10asm_misc = 0 11asm_cdmemory = 0 12asm_32xdraw = 0 13asm_32xmemory = 0 14asm_mix = 0 15endif 16 17ifeq "$(profile)" "1" 18CFLAGS += -fprofile-generate 19endif 20ifeq "$(profile)" "2" 21CFLAGS += -fprofile-use 22endif 23ifeq "$(pdb)" "1" 24DEFINES += PDB 25SRCS_COMMON += $(R)cpu/debug.c 26 ifeq "$(pdb_net)" "1" 27 DEFINES += PDB_NET 28 endif 29 ifeq "$(readline)" "1" 30 DEFINES += HAVE_READLINE 31 LDFLAGS += -lreadline 32 endif 33endif 34ifeq "$(cpu_cmp)" "1" 35ifdef cpu_cmp_w 36DEFINES += CPU_CMP_W 37else 38DEFINES += CPU_CMP_R 39endif # cpu_cmp_w 40endif 41ifeq "$(pprof)" "1" 42DEFINES += PPROF 43SRCS_COMMON += $(R)platform/linux/pprof.c 44endif 45ifeq "$(gperf)" "1" 46DEFINES += GPERF 47LDFLAGS += -lprofiler -lstdc++ 48endif 49 50# ARM asm stuff 51ifeq "$(ARCH)" "arm" 52ifeq "$(asm_render)" "1" 53DEFINES += _ASM_DRAW_C 54SRCS_COMMON += $(R)pico/draw_arm.S $(R)pico/draw2_arm.S 55endif 56ifeq "$(asm_memory)" "1" 57DEFINES += _ASM_MEMORY_C 58SRCS_COMMON += $(R)pico/memory_arm.S 59endif 60ifeq "$(asm_ym2612)" "1" 61DEFINES += _ASM_YM2612_C 62SRCS_COMMON += $(R)pico/sound/ym2612_arm.S 63endif 64ifeq "$(asm_misc)" "1" 65DEFINES += _ASM_MISC_C 66SRCS_COMMON += $(R)pico/misc_arm.s 67SRCS_COMMON += $(R)pico/cd/misc_arm.s 68endif 69ifeq "$(asm_cdmemory)" "1" 70DEFINES += _ASM_CD_MEMORY_C 71SRCS_COMMON += $(R)pico/cd/memory_arm.S 72endif 73ifeq "$(asm_32xdraw)" "1" 74DEFINES += _ASM_32X_DRAW 75SRCS_COMMON += $(R)pico/32x/draw_arm.S 76endif 77ifeq "$(asm_32xmemory)" "1" 78DEFINES += _ASM_32X_MEMORY_C 79SRCS_COMMON += $(R)pico/32x/memory_arm.S 80endif 81ifeq "$(asm_mix)" "1" 82SRCS_COMMON += $(R)pico/sound/mix_arm.S 83endif 84endif # ARCH=arm 85 86# === Pico core === 87# Pico 88SRCS_COMMON += $(R)pico/pico.c $(R)pico/cart.c $(R)pico/memory.c \ 89 $(R)pico/state.c $(R)pico/sek.c $(R)pico/z80if.c \ 90 $(R)pico/videoport.c $(R)pico/draw2.c $(R)pico/draw.c \ 91 $(R)pico/mode4.c $(R)pico/misc.c $(R)pico/eeprom.c \ 92 $(R)pico/patch.c $(R)pico/debug.c $(R)pico/media.c 93# SMS 94ifneq "$(no_sms)" "1" 95SRCS_COMMON += $(R)pico/sms.c 96else 97DEFINES += NO_SMS 98endif 99# CD 100SRCS_COMMON += $(R)pico/cd/mcd.c $(R)pico/cd/memory.c $(R)pico/cd/sek.c \ 101 $(R)pico/cd/cdc.c $(R)pico/cd/cdd.c $(R)pico/cd/cd_image.c \ 102 $(R)pico/cd/cue.c $(R)pico/cd/gfx.c $(R)pico/cd/gfx_dma.c \ 103 $(R)pico/cd/misc.c $(R)pico/cd/pcm.c 104# 32X 105ifneq "$(no_32x)" "1" 106SRCS_COMMON += $(R)pico/32x/32x.c $(R)pico/32x/memory.c $(R)pico/32x/draw.c \ 107 $(R)pico/32x/sh2soc.c $(R)pico/32x/pwm.c 108else 109DEFINES += NO_32X 110endif 111# Pico 112SRCS_COMMON += $(R)pico/pico/pico.c $(R)pico/pico/memory.c $(R)pico/pico/xpcm.c 113# carthw 114SRCS_COMMON += $(R)pico/carthw/carthw.c 115SRCS_COMMON += $(R)pico/carthw/eeprom_spi.c 116# SVP 117SRCS_COMMON += $(R)pico/carthw/svp/svp.c $(R)pico/carthw/svp/memory.c \ 118 $(R)pico/carthw/svp/ssp16.c 119ifeq "$(use_svpdrc)" "1" 120DEFINES += _SVP_DRC 121SRCS_COMMON += $(R)pico/carthw/svp/stub_arm.S 122SRCS_COMMON += $(R)pico/carthw/svp/compiler.c 123endif 124# sound 125SRCS_COMMON += $(R)pico/sound/sound.c 126SRCS_COMMON += $(R)pico/sound/sn76496.c $(R)pico/sound/ym2612.c 127SRCS_COMMON += $(R)pico/sound/emu2413/emu2413.c 128ifneq "$(ARCH)$(asm_mix)" "arm1" 129SRCS_COMMON += $(R)pico/sound/mix.c 130endif 131 132# === CPU cores === 133# --- M68k --- 134ifeq "$(use_musashi)" "1" 135DEFINES += EMU_M68K 136SRCS_COMMON += $(R)cpu/musashi/m68kops.c $(R)cpu/musashi/m68kcpu.c 137#SRCS_COMMON += $(R)cpu/musashi/m68kdasm.c 138endif 139ifeq "$(use_cyclone)" "1" 140DEFINES += EMU_C68K 141SRCS_COMMON += $(R)pico/m68kif_cyclone.s $(R)cpu/cyclone/Cyclone.s \ 142 $(R)cpu/cyclone/tools/idle.s 143endif 144ifeq "$(use_fame)" "1" 145DEFINES += EMU_F68K 146SRCS_COMMON += $(R)cpu/fame/famec.c 147endif 148 149# --- Z80 --- 150ifeq "$(use_drz80)" "1" 151DEFINES += _USE_DRZ80 152SRCS_COMMON += $(R)cpu/DrZ80/drz80.S 153endif 154# 155ifeq "$(use_cz80)" "1" 156DEFINES += _USE_CZ80 157SRCS_COMMON += $(R)cpu/cz80/cz80.c 158endif 159 160# --- SH2 --- 161SRCS_COMMON += $(R)cpu/drc/cmn.c 162ifneq "$(no_32x)" "1" 163SRCS_COMMON += $(R)cpu/sh2/sh2.c 164# 165ifeq "$(use_sh2drc)" "1" 166DEFINES += DRC_SH2 167SRCS_COMMON += $(R)cpu/sh2/compiler.c 168ifdef drc_debug 169DEFINES += DRC_DEBUG=$(drc_debug) 170SRCS_COMMON += $(R)cpu/sh2/mame/sh2dasm.c 171DASM = $(R)platform/libpicofe/linux/host_dasm.c 172DASMLIBS = -lbfd -lopcodes -liberty 173ifeq ("$(ARCH)",$(filter "$(ARCH)","arm" "mipsel")) 174ifeq ($(filter_out $(shell $(CC) --print-file-name=libbfd.so),"/"),) 175DASM = $(R)platform/common/host_dasm.c 176DASMLIBS = 177endif 178endif 179SRCS_COMMON += $(DASM) 180LDFLAGS += $(DASMLIBS) 181endif 182endif # use_sh2drc 183SRCS_COMMON += $(R)cpu/sh2/mame/sh2pico.c 184endif # !no_32x 185 186OBJS_COMMON := $(SRCS_COMMON:.c=.o) 187OBJS_COMMON := $(OBJS_COMMON:.s=.o) 188OBJS_COMMON := $(OBJS_COMMON:.S=.o) 189 190ifneq ($(deps_set),yes) 191ifeq "$(use_cyclone)" "1" 192$(FR)pico/pico.c: $(FR)cpu/cyclone/Cyclone.h 193endif 194 195CYCLONE_CONFIG ?= cyclone_config.h 196 197$(FR)cpu/cyclone/Cyclone.h: 198 @echo "Cyclone submodule is missing, please run 'git submodule update --init'" 199 @false 200 201$(FR)cpu/cyclone/Cyclone.s: $(FR)cpu/$(CYCLONE_CONFIG) 202 @echo building Cyclone... 203 @make CC=$(CYCLONE_CC) CXX=$(CYCLONE_CXX) -C $(R)cpu/cyclone/ CONFIG_FILE=../$(CYCLONE_CONFIG) HAVE_ARMv6=$(HAVE_ARMv6) 204 205$(FR)cpu/cyclone/Cyclone.s: $(FR)cpu/cyclone/*.cpp $(FR)cpu/cyclone/*.h 206 207$(FR)cpu/musashi/m68kops.c: 208 @make -C $(R)cpu/musashi 209 210deps_set = yes 211endif # deps_set 212