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