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