5e7d9ff785ec3532cd9249893e95abfc28583fad
[libpicofe.git] / linux / Makefile
1
2 # settings
3 use_musashi = 1
4 #use_fame = 1
5 #use_mz80 = 1
6
7 # profile = 1
8
9
10 DEFINC = -I../.. -I. -D__GP2X__ -D_UNZIP_SUPPORT -DIO_STATS # -DBENCHMARK
11 GCC = gcc
12 STRIP = strip
13 AS = gcc
14
15 ifeq "$(profile)" "1"
16 COPT_COMMON = -s -O3 -ftracer -fstrength-reduce -Wall -funroll-loops -fomit-frame-pointer -fstrict-aliasing -ffast-math -fprofile-generate
17 COPT = $(COPT_COMMON)
18 else
19 COPT = -ggdb -Wall -fno-strict-aliasing # -pg -O3  -ftracer -fstrength-reduce -funroll-loops -fomit-frame-pointer -ffast-math
20 COPT_COMMON = $(COPT)
21 endif
22
23 # gtk
24 COPT    += `pkg-config --cflags gtk+-2.0`
25 LDFLAGS += `pkg-config --libs gtk+-2.0`
26 COPT    += `pkg-config --cflags gthread-2.0`
27 LDFLAGS += `pkg-config --libs gthread-2.0`
28
29 # frontend
30 OBJS += platform/gp2x/main.o platform/gp2x/menu.o platform/gp2x/emu.o platform/gp2x/usbjoy.o blit.o \
31                 gp2x.o 940ctl_ym2612.o log_io.o
32
33 # common
34 OBJS += platform/common/emu.o platform/common/menu.o platform/common/config.o platform/common/fonts.o \
35                 platform/common/readpng.o platform/common/mp3_helix.o
36
37 # Pico
38 OBJS += Pico/Area.o Pico/Cart.o Pico/Memory.o Pico/Misc.o Pico/Pico.o Pico/Sek.o \
39                 Pico/VideoPort.o Pico/Draw2.o Pico/Draw.o Pico/Patch.o
40 # Pico - CD
41 OBJS += Pico/cd/Pico.o Pico/cd/Memory.o Pico/cd/Sek.o Pico/cd/LC89510.o \
42                 Pico/cd/cd_sys.o Pico/cd/cd_file.o Pico/cd/gfx_cd.o \
43                 Pico/cd/Area.o Pico/cd/Misc.o Pico/cd/pcm.o Pico/cd/buffering.o
44 # Pico - sound
45 OBJS += Pico/sound/sound.o Pico/sound/sn76496.o Pico/sound/ym2612.o Pico/sound/mix.o
46 # Pico - carthw
47 OBJS += Pico/carthw/carthw.o Pico/carthw/svp/svp.o Pico/carthw/svp/Memory.o \
48                 Pico/carthw/svp/ssp16.o Pico/carthw/svp/compiler.o
49 # zlib
50 OBJS += zlib/gzio.o zlib/inffast.o zlib/inflate.o zlib/inftrees.o zlib/trees.o \
51         zlib/deflate.o zlib/crc32.o zlib/adler32.o zlib/zutil.o zlib/compress.o zlib/uncompr.o
52 # unzip
53 OBJS += unzip/unzip.o unzip/unzip_stream.o
54 # CPU cores
55 ifeq "$(use_musashi)" "1"
56 DEFINC += -DEMU_M68K
57 OBJS += cpu/musashi/m68kops.o cpu/musashi/m68kcpu.o
58 endif
59 ifeq "$(use_fame)" "1"
60 DEFINC += -DEMU_F68K
61 OBJS += cpu/fame/famec.o
62 endif
63 # z80
64 ifeq "$(use_mz80)" "1"
65 DEFINC += -D_USE_MZ80
66 OBJS += cpu/mz80/mz80.o
67 else
68 DEFINC += -D_USE_CZ80
69 OBJS += cpu/cz80/cz80.o
70 endif
71 # misc
72 ifeq "$(use_fame)" "1"
73 ifeq "$(use_musashi)" "1"
74 OBJS += Pico/Debug.o
75 OBJS += cpu/musashi/m68kdasm.o
76 endif
77 endif
78
79 vpath %.c = ../..
80 DIRS = platform platform/gp2x platform/common Pico Pico/cd Pico/sound Pico/carthw/svp \
81         zlib unzip cpu cpu/musashi cpu/fame cpu/mz80 cpu/cz80
82
83 all: mkdirs PicoDrive
84 clean: tidy
85         @$(RM) PicoDrive
86 tidy:
87         $(RM) $(OBJS)
88         rm -rf $(DIRS)
89         @make -C ../../cpu/mz80/ clean
90         @make -C ../common/helix/ X86=1 clean
91
92 PicoDrive : $(OBJS) ../common/helix/helix_mp3_x86.a
93         @echo ">>>" $@
94         $(GCC) $(COPT) $^ $(LDFLAGS) -lm -lpng -Wl,-Map=PicoDrive.map -o $@
95
96 mkdirs:
97         mkdir -p $(DIRS)
98
99 Pico/carthw/svp/compiler.o : ../../Pico/carthw/svp/gen_arm.c
100
101 Pico/Pico.o : ../../Pico/PicoFrameHints.c
102
103 ../../cpu/musashi/m68kops.c :
104         @make -C ../../cpu/musashi
105
106 cpu/mz80/mz80.o : ../../cpu/mz80/mz80.asm
107         @echo $@
108         @nasm -f elf $< -o $@
109
110 ../../cpu/mz80/mz80.asm :
111         @make -C ../../cpu/mz80/
112
113 ../common/helix/helix_mp3_x86.a:
114         @make -C ../common/helix/ X86=1 clean all
115
116 .c.o:
117         @echo ">>>" $<
118         $(GCC) $(COPT) $(DEFINC) -c $< -o $@
119 .s.o:
120         @echo ">>>" $<
121         $(GCC) $(COPT) $(DEFINC) -c $< -o $@
122
123
124 Pico/sound/ym2612.o : ../../Pico/sound/ym2612.c
125         @echo ">>>" $@
126         $(GCC) $(COPT_COMMON) $(DEFINC) -c $< -o $@
127
128 cpu/fame/famec.o : ../../cpu/fame/famec.c ../../cpu/fame/famec_opcodes.h
129         @echo ">>>" $<
130         $(GCC) $(COPT) $(DEFINC) -Wno-unused -c $< -o $@
131
132