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