Add -DFAMEC_NO_GOTOS for OSX PPC GCC build
[picodrive.git] / Makefile.libretro
index 83f0902..361ae15 100644 (file)
@@ -8,6 +8,10 @@ else ifneq ($(findstring MINGW,$(shell uname -a)),)
    platform = win
 else ifneq ($(findstring Darwin,$(shell uname -a)),)
    platform = osx
+   arch = intel
+ifeq ($(shell uname -p),powerpc)
+   arch = ppc
+endif
 else ifneq ($(findstring win,$(shell uname -a)),)
    platform = win
 endif
@@ -21,62 +25,133 @@ CFLAGS ?=
 
 TARGET_NAME := picodrive
 
+asm_memory = 0
+asm_render = 0
+asm_ym2612 = 0
+asm_misc = 0
+asm_cdpico = 0
+asm_cdmemory = 0
+asm_mix = 0
+
 ifeq ($(platform), unix)
    TARGET := $(TARGET_NAME)_libretro.so
    SHARED := -shared
 else ifeq ($(platform), osx)
    TARGET := $(TARGET_NAME)_libretro.dylib
    SHARED := -dynamiclib
+   APPLE := 1
+
+   arch = intel
+ifeq ($(shell uname -p),powerpc)
+   arch = ppc
+endif
+
+ifeq ($(arch),ppc)
+   CFLAGS += -DBLARGG_BIG_ENDIAN=1 -D__ppc__ -DFAMEC_NO_GOTOS
+else
+   SHARED += -mmacosx-version-min=10.6
+endif
 else ifeq ($(platform), ios)
    TARGET := $(TARGET_NAME)_libretro_ios.dylib
    SHARED := -dynamiclib
+   APPLE := 1
 
-   CC = clang -arch armv7 -isysroot $(IOSSDK)
-   CXX = clang++ -arch armv7 -isysroot $(IOSSDK)
-   CC_AS = perl ./tools/gas-preprocessor.pl $(CC)
-   CFLAGS += -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon -marm
+   CC = clang -arch armv7 -isysroot $(IOSSDK) -miphoneos-version-min=5.0
+   CXX = clang++ -arch armv7 -isysroot $(IOSSDK) -miphoneos-version-min=5.0
+   CC_AS = perl ./tools/gas-preprocessor.pl $(CC) -miphoneos-version-min=5.0
+   CFLAGS += -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon -marm 
    ASFLAGS += -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon
-   CFLAGS += -DIOS
+   CFLAGS += -DIOS -miphoneos-version-min=5.0
 
    ARCH := arm
-   HAVE_NEON = 0
-   USE_DYNAREC = 0
 
-   use_fame = 1
-   use_cz80 = 1
-   use_sh2mame = 1
    use_cyclone = 0
+   use_fame = 1
    use_drz80 = 0
-   use_sh2drc = 0
-   use_svpdrc = 0
-
-   asm_memory = 0
-   asm_render = 0
-   asm_ym2612 = 0
-   asm_misc = 0
-   asm_cdpico = 0
-   asm_cdmemory = 0
-   asm_mix = 0
+   use_cz80 = 1
+   use_sh2drc = 1
+   use_svpdrc = 1
+
 else ifeq ($(platform), ps3)
    TARGET := $(TARGET_NAME)_libretro_ps3.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__
+   CFLAGS += -DBLARGG_BIG_ENDIAN=1 -D__ppc__ -DFAMEC_NO_GOTOS
+       STATIC_LINKING = 1
+       NO_MMAP = 1
+       DONT_COMPILE_IN_ZLIB = 1
+
+       asm_memory = 0
+       asm_render = 0
+       asm_ym2612 = 0
+       asm_misc = 0
+       asm_cdpico = 0
+       asm_cdmemory = 0
+       asm_mix = 0
+   use_cyclone = 0
+   use_fame = 1
+   use_drz80 = 0
+   use_cz80 = 1
 else ifeq ($(platform), sncps3)
    TARGET := $(TARGET_NAME)_libretro_ps3.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__
+   CFLAGS += -DBLARGG_BIG_ENDIAN=1 -D__ppc__ -DFAMEC_NO_GOTOS
+       STATIC_LINKING = 1
+       NO_MMAP = 1
+       DONT_COMPILE_IN_ZLIB = 1
+
+       asm_memory = 0
+       asm_render = 0
+       asm_ym2612 = 0
+       asm_misc = 0
+       asm_cdpico = 0
+       asm_cdmemory = 0
+       asm_mix = 0
+   use_cyclone = 0
+   use_fame = 1
+   use_drz80 = 0
+   use_cz80 = 1
 else ifeq ($(platform), psl1ght)
    TARGET := $(TARGET_NAME)_libretro_psl1ght.a
    CC = $(PS3DEV)/ppu/bin/ppu-gcc$(EXE_EXT)
    AR = $(PS3DEV)/ppu/bin/ppu-ar$(EXE_EXT)
-   CFLAGS += -DBLARGG_BIG_ENDIAN=1 -D__ppc__
+   CFLAGS += -DBLARGG_BIG_ENDIAN=1 -D__ppc__ -DFAMEC_NO_GOTOS
+       STATIC_LINKING = 1
+       NO_MMAP = 1
+       DONT_COMPILE_IN_ZLIB = 1
+       
+       asm_memory = 0
+       asm_render = 0
+       asm_ym2612 = 0
+       asm_misc = 0
+       asm_cdpico = 0
+       asm_cdmemory = 0
+       asm_mix = 0
+   use_cyclone = 0
+   use_fame = 1
+   use_drz80 = 0
+   use_cz80 = 1
 else ifeq ($(platform), psp1)
    TARGET := $(TARGET_NAME)_libretro_psp1.a
    CC = psp-gcc$(EXE_EXT)
    AR = psp-ar$(EXE_EXT)
-   CFLAGS += -DPSP -G0
+   CFLAGS += -G0
+       STATIC_LINKING = 1
+       NO_MMAP = 1
+       DONT_COMPILE_IN_ZLIB = 1
+
+       asm_memory = 0
+       asm_render = 0
+       asm_ym2612 = 0
+       asm_misc = 0
+       asm_cdpico = 0
+       asm_cdmemory = 0
+       asm_mix = 0
+   use_cyclone = 0
+   use_fame = 1
+   use_drz80 = 0
+   use_cz80 = 1
 else ifeq ($(platform), xenon)
    TARGET := $(TARGET_NAME)_libretro_xenon360.a
    CC = xenon-gcc$(EXE_EXT)
@@ -100,25 +175,33 @@ else ifeq ($(platform), qnx)
    ASFLAGS +=  -mcpu=cortex-a9 -mfpu=neon -mfloat-abi=softfp
 
    ARCH = arm
-   HAVE_NEON = 1
-   USE_DYNAREC = 1
-else ifeq ($(platform), armv6)
+   ARM_ASM = 1
+else ifneq (,$(findstring armv,$(platform)))
    TARGET := $(TARGET_NAME)_libretro.so
    SHARED := -shared -Wl,--no-undefined
-   CFLAGS += -marm -mfloat-abi=softfp
+ifneq (,$(findstring cortexa8,$(platform)))
+   CFLAGS += -marm -mcpu=cortex-a8
+   ASFLAGS += -mcpu=cortex-a8
+else ifneq (,$(findstring cortexa9,$(platform)))
+   CFLAGS += -marm -mcpu=cortex-a9
+   ASFLAGS += -mcpu=cortex-a9
+endif
+   CFLAGS += -marm
+ifneq (,$(findstring neon,$(platform)))
+   CFLAGS += -mfpu=neon
+   ASFLAGS += -mfpu=neon
+endif
+ifneq (,$(findstring softfloat,$(platform)))
+   CFLAGS += -mfloat-abi=softfp
    ASFLAGS += -mfloat-abi=softfp
-
-   ARCH = arm
-   USE_DYNAREC = 1
-else ifeq ($(platform), armv7)
-   TARGET := $(TARGET_NAME)_libretro.so
-   SHARED := -shared -Wl,--no-undefined
-   CFLAGS += -marm -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp
-   ASFLAGS += -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp
-
+else ifneq (,$(findstring hardfloat,$(platform)))
+   CFLAGS += -mfloat-abi=hard
+   ASFLAGS += -mfloat-abi=hard
+endif
+ifneq (,$(findstring armasm,$(platform)))
+   ARM_ASM = 1
+endif
    ARCH = arm
-   HAVE_NEON = 1
-   USE_DYNAREC = 1
 else
    TARGET := $(TARGET_NAME)_retro.dll
    CC = gcc
@@ -127,6 +210,22 @@ else
    CFLAGS += -D__WIN32__ -D__WIN32_LIBRETRO__
 endif
 
+CFLAGS += -DNO_ZLIB
+
+ifeq ($(NO_MMAP),1)
+CFLAGS += -DNO_MMAP
+endif
+
+ifeq ($(ARM_ASM),1)
+asm_memory = 1
+asm_render = 1
+asm_ym2612 = 1
+asm_misc = 1
+asm_cdpico = 1
+asm_cdmemory = 1
+asm_mix = 1
+endif
+
 CFLAGS += -fPIC
 LDLIBS += -lm
 SHARED ?= -shared