summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile110
1 files changed, 110 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..0330e95
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,110 @@
+DEBUG=0
+
+ifeq ($(platform),)
+platform = unix
+ifeq ($(shell uname -a),)
+ platform = win
+else ifneq ($(findstring MINGW,$(shell uname -a)),)
+ platform = win
+else ifneq ($(findstring Darwin,$(shell uname -a)),)
+ platform = osx
+else ifneq ($(findstring win,$(shell uname -a)),)
+ platform = win
+endif
+endif
+
+CC = gcc
+
+ifeq ($(platform), unix)
+ TARGET := libretro.so
+ fpic := -fPIC
+ SHARED := -shared -Wl,--version-script=libretro/link.T
+else ifeq ($(platform), osx)
+ TARGET := libretro.dylib
+ fpic := -fPIC
+ SHARED := -dynamiclib
+else ifeq ($(platform), ps3)
+ TARGET := libretro.a
+ CC = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-gcc.exe
+ AR = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-ar.exe
+ CFLAGS += -DBLARGG_BIG_ENDIAN=1 -D__ppc__
+else ifeq ($(platform), sncps3)
+ TARGET := libretro.a
+ CC = $(CELL_SDK)/host-win32/sn/bin/ps3ppusnc.exe
+ AR = $(CELL_SDK)/host-win32/sn/bin/ps3snarl.exe
+ CFLAGS += -DBLARGG_BIG_ENDIAN=1 -D__ppc__
+else ifeq ($(platform), xenon)
+ TARGET := libretro.a
+ CC = xenon-gcc
+ AR = xenon-ar
+ CFLAGS += -D__LIBXENON__ -m32 -D__ppc__
+else ifeq ($(platform), wii)
+ TARGET := libretro.a
+ CC = $(DEVKITPPC)/bin/powerpc-eabi-gcc
+ AR = $(DEVKITPPC)/bin/powerpc-eabi-ar
+ CFLAGS += -DGEKKO -mrvl -mcpu=750 -meabi -mhard-float -DBLARGG_BIG_ENDIAN=1 -D__ppc__
+else
+ TARGET := retro.dll
+ CC = gcc
+ fpic :=
+ LD_FLAGS :=
+ SHARED := -shared -static-libgcc -static-libstdc++ -Wl,--version-script=libretro/link.T
+ CFLAGS += -D__WIN32__ -D__WIN32_LIBRETRO__
+endif
+
+ifeq ($(DEBUG), 1)
+CFLAGS += -O0 -g
+else
+CFLAGS += -O3
+endif
+
+
+OBJECTS = ./src/apu.o ./src/apuaux.o ./src/c4.o ./src/c4emu.o ./src/cheats.o ./src/cheats2.o ./src/clip.o ./src/data.o ./src/screenshot.o ./src/dsp1.o ./src/fxemu.o ./src/fxinst.o ./src/globals.o ./src/loadzip.o ./src/ppu.o ./src/dma.o ./src/memmap.o ./src/cpu.o ./src/cpuexec.o ./src/cpuops.o ./src/sa1.o ./src/sa1cpu.o ./src/sdd1.o ./src/sdd1emu.o ./src/snapshot.o ./src/soundux.o ./src/spc700.o ./src/spc700a.o ./src/srtc.o ./src/spc_decode.o ./src/tile16.o ./src/tile16add.o ./src/tile16add1_2.o ./src/tile16fadd1_2.o ./src/tile16sub.o ./src/tile16sub1_2.o ./src/tile16fsub1_2.o ./src/mode7new.o ./src/mode7.o ./src/mode7add.o ./src/mode7add1_2.o ./src/mode7sub.o ./src/mode7sub1_2.o ./src/mode7prio.o ./src/mode7addprio.o ./src/mode7add1_2prio.o ./src/mode7subprio.o ./src/mode7sub1_2prio.o ./src/gfx16.o ./src/rops.o ./libretro/libretro.o ./libretro/memstream.o
+
+INCLUDES = -I.
+DEFINES = -DHAVE_STRINGS_H -DHAVE_STDINT_H -DHAVE_INTTYPES_H -D__LIBRETRO__ -DINLINE=inline -DUSE_SA1
+
+ifeq ($(platform), sncps3)
+WARNINGS_DEFINES =
+CODE_DEFINES =
+else
+WARNINGS_DEFINES = -Wall -W -Wno-unused-parameter -Wno-parentheses -Wno-write-strings -Wno-comment
+CODE_DEFINES = -fomit-frame-pointer
+endif
+
+COMMON_DEFINES += $(CODE_DEFINES) $(WARNINGS_DEFINES) -DNDEBUG=1 $(fpic)
+
+CFLAGS += $(DEFINES) $(COMMON_DEFINES)
+
+all: $(TARGET)
+
+$(TARGET): $(OBJECTS)
+ifeq ($(platform), ps3)
+ $(AR) rcs $@ $(OBJECTS)
+else ifeq ($(platform), sncps3)
+ $(AR) rcs $@ $(OBJECTS)
+else ifeq ($(platform), xenon)
+ $(AR) rcs $@ $(OBJECTS)
+else ifeq ($(platform), wii)
+ $(AR) rcs $@ $(OBJECTS)
+else
+ $(CXX) $(fpic) $(SHARED) $(INCLUDES) -o $@ $(OBJECTS) -lm
+endif
+
+%.o: %.c
+ $(CC) $(INCLUDES) $(CFLAGS) -c -o $@ $<
+
+%.o: %.cpp
+ $(CXX) $(INCLUDES) $(CFLAGS) -c -o $@ $<
+
+%.o: %.s
+ $(CXX) $(INCLUDES) $(CFLAGS) -Wa,-I./src/ -c -o $@ $<
+
+%.o: %.S
+ $(CXX) $(INCLUDES) $(CFLAGS) -Wa,-I./src/ -c -o $@ $<
+
+clean:
+ rm -f $(OBJECTS) $(TARGET)
+
+.PHONY: clean
+