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