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