6c28e41ab37a0954dfd73d4fe06b2668905ea013
[libpicofe.git] / linux / Makefile
1 # settings
2 use_musashi = 1
3 #use_fame = 1
4 use_cz80 = 1
5 use_sh2drc = 1
6 #use_sh2mame = 1
7
8 #drc_debug = 3
9 #drc_debug_interp = 1
10 #profile = 1
11 #fake_in_gp2x = 1
12
13 -include Makefile.local
14
15 ifndef ARCH
16 ARCH = x86
17 endif
18
19 ifeq "$(profile)" "1"
20 CFLAGS += -O3 -Wall
21 CFLAGS += -ftracer -fstrength-reduce -funroll-loops -fomit-frame-pointer -fstrict-aliasing -ffast-math
22 CFLAGS += -fprofile-generate
23 else
24 CFLAGS += -ggdb -Wall -falign-functions=2
25 endif
26 DEFINES = _UNZIP_SUPPORT IO_STATS IN_EVDEV
27 CFLAGS += -I../.. -I.
28 LDFLAGS += -lm -lpng
29 ifeq "$(ARCH)" "arm"
30 CFLAGS += -mcpu=arm920t
31 DEFINES += ARM
32 endif
33 LDFLAGS += -lpthread
34 LDFLAGS += -lX11
35
36 CC = $(CROSS)gcc
37
38 # frontend
39 OBJS += platform/gp2x/emu.o blit.o in_evdev.o plat.o sndout_oss.o gp2x.o log_io.o
40
41 # common
42 OBJS += platform/common/main.o platform/common/emu.o platform/common/menu.o \
43         platform/common/config.o platform/common/fonts.o platform/common/readpng.o \
44         platform/common/input.o
45
46 ifeq "$(fake_in_gp2x)" "1"
47 DEFINES += IN_GP2X FAKE_IN_GP2X
48 OBJS += platform/gp2x/in_gp2x.o
49 endif
50
51 # Pico
52 OBJS += pico/area.o pico/cart.o pico/memory.o pico/pico.o pico/sek.o \
53         pico/videoport.o pico/draw2.o pico/draw.o pico/z80if.o pico/patch.o \
54         pico/mode4.o pico/sms.o pico/misc.o pico/eeprom.o pico/debug.o
55 # Pico - CD
56 OBJS += pico/cd/pico.o pico/cd/memory.o pico/cd/sek.o pico/cd/LC89510.o \
57         pico/cd/cd_sys.o pico/cd/cd_file.o pico/cd/cue.o pico/cd/gfx_cd.o \
58         pico/cd/area.o pico/cd/misc.o pico/cd/pcm.o pico/cd/buffering.o
59 # Pico - 32X
60 OBJS += pico/32x/32x.o pico/32x/memory.o pico/32x/draw.o pico/32x/pwm.o
61 # Pico - Pico
62 OBJS += pico/pico/pico.o pico/pico/memory.o pico/pico/xpcm.o
63 # Pico - sound
64 OBJS += pico/sound/sound.o pico/sound/sn76496.o pico/sound/ym2612.o pico/sound/mix.o
65 # Pico - carthw
66 OBJS += pico/carthw/carthw.o pico/carthw/svp/svp.o pico/carthw/svp/memory.o \
67         pico/carthw/svp/ssp16.o pico/carthw/svp/compiler.o
68 ifeq "$(ARCH)" "arm"
69 OBJS += pico/carthw/svp/stub_arm.o
70 endif
71 # zlib
72 OBJS += zlib/gzio.o zlib/inffast.o zlib/inflate.o zlib/inftrees.o zlib/trees.o \
73         zlib/deflate.o zlib/crc32.o zlib/adler32.o zlib/zutil.o zlib/compress.o zlib/uncompr.o
74 # unzip
75 OBJS += unzip/unzip.o unzip/unzip_stream.o
76
77 CFLAGS += $(addprefix -D,$(DEFINES))
78
79 vpath %.c = ../..
80 vpath %.s = ../..
81 vpath %.S = ../..
82 vpath %.asm = ../..
83
84 DIRS = platform/linux platform/gp2x platform/common pico pico/cd pico/pico pico/sound pico/carthw/svp \
85         pico/32x zlib unzip cpu cpu/musashi cpu/fame cpu/mz80 cpu/cz80 cpu/sh2/mame cpu/drc
86
87 all: mkdirs PicoDrive
88
89 include ../common/common.mak
90
91 clean: tidy
92         @$(RM) PicoDrive
93 tidy:
94         $(RM) $(OBJS)
95         rm -rf $(DIRS)
96         @make -C ../../cpu/mz80/ clean
97
98 PicoDrive : $(OBJS)
99         @echo ">>>" $@
100         $(CC) $(CFLAGS) $^ $(LDFLAGS) -Wl,-Map=PicoDrive.map -o $@
101
102 mkdirs:
103         @mkdir -p $(DIRS)
104
105 include ../common/revision.mak
106
107 .c.o:
108         @echo ">>>" $<
109         $(CC) $(CFLAGS) -c $< -o $@
110 .s.o:
111         @echo ">>>" $<
112         $(CC) $(CFLAGS) -c $< -o $@
113 %.o : %.asm
114         @echo ">>>" $<
115         nasm -f elf $< -o $@
116