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