Merge pull request #735 from pcercuei/fix-win32-build-part-2
[pcsx_rearmed.git] / Makefile.libretro
index bd26d00..82e98f0 100644 (file)
@@ -49,12 +49,12 @@ EXTRA_LDFLAGS =
 # select some defaults
 ifneq (,$(findstring $(ARCH_DETECTED),arm aarch64))
        DYNAREC = ari64
-ifneq ($(findstring __thumb__,$(shell $(CC) -E -dD $(CFLAGS) include/arm_features.h)),)
+ifneq (,$(shell $(CC) -E -dD $(CFLAGS) include/arm_features.h | grep 'define __thumb__'))
        # must disable thumb as ari64 can't handle it
        CFLAGS += -marm
 endif
-ifneq ($(findstring __ARM_NEON,$(shell $(CC) -E -dD $(CFLAGS) include/arm_features.h)),)
-       BUILTIN_GPU = neon
+ifneq (,$(shell $(CC) -E -dD $(CFLAGS) include/arm_features.h | grep 'HAVE_NEON32'))
+       BUILTIN_GPU = neon
 endif
 endif
 ifneq (,$(findstring $(ARCH_DETECTED),i686 x86_64 aarch64))
@@ -210,6 +210,8 @@ else ifeq ($(platform), libnx)
    CFLAGS += -DARM -D__aarch64__=1 -march=armv8-a -mtune=cortex-a57 -mtp=soft -DHAVE_INTTYPES -DLSB_FIRST -ffast-math -mcpu=cortex-a57+crc+fp+simd -ffunction-sections
    CFLAGS += -ftree-vectorize
    CFLAGS += -Ifrontend/switch -ftree-vectorize
+   NO_POSIX_MEMALIGN := 1
+   NO_PTHREAD=1
    LIBPTHREAD :=
    STATIC_LINKING=1
    BUILTIN_GPU = neon
@@ -263,6 +265,8 @@ else ifeq ($(platform), vita)
        DYNAREC = ari64
        ARCH = arm
        STATIC_LINKING = 1
+       NO_PTHREAD=1
+       NO_POSIX_MEMALIGN := 1
 
 # CTR(3DS)
 else ifeq ($(platform), ctr)
@@ -270,7 +274,7 @@ else ifeq ($(platform), ctr)
        CC = $(DEVKITARM)/bin/arm-none-eabi-gcc$(EXE_EXT)
        CXX = $(DEVKITARM)/bin/arm-none-eabi-g++$(EXE_EXT)
        AR = $(DEVKITARM)/bin/arm-none-eabi-ar$(EXE_EXT)
-       CFLAGS += -DARM11 -D_3DS -DNO_OS -DNO_DYLIB -DNO_SOCKET -DTHREAD_ENABLED -DGPU_UNAI_USE_FLOATMATH -DGPU_UNAI_USE_FLOAT_DIV_MULTINV
+       CFLAGS += -DARM11 -D_3DS -DNO_OS -DNO_DYLIB -DNO_SOCKET -DGPU_UNAI_USE_FLOATMATH -DGPU_UNAI_USE_FLOAT_DIV_MULTINV
        CFLAGS += -march=armv6k -mtune=mpcore -mfloat-abi=hard -marm -mfpu=vfp -mtp=soft
        CFLAGS += -Wall -mword-relocations
        CFLAGS += -fomit-frame-pointer -ffast-math -funroll-loops
@@ -287,6 +291,7 @@ else ifeq ($(platform), ctr)
        ARCH = arm
        HAVE_NEON = 0
        STATIC_LINKING = 1
+       NO_POSIX_MEMALIGN := 1
 
 # Xbox 360
 else ifeq ($(platform), xenon)
@@ -295,19 +300,36 @@ else ifeq ($(platform), xenon)
        AR = xenon-ar$(EXE_EXT)
        CFLAGS += -D__LIBXENON__ -m32 -D__ppc__
 
-# Nintendo Game Cube
-else ifeq ($(platform), ngc)
-       TARGET := $(TARGET_NAME)_libretro_ngc.a
-       CC = $(DEVKITPPC)/bin/powerpc-eabi-gcc$(EXE_EXT)
-       AR = $(DEVKITPPC)/bin/powerpc-eabi-ar$(EXE_EXT)
-       CFLAGS += -DGEKKO -DHW_DOL -mrvl -mcpu=750 -meabi -mhard-float -DBLARGG_BIG_ENDIAN=1 -D__ppc__
-
-# Nintendo Wii
-else ifeq ($(platform), wii)
-       TARGET := libretro_$(TARGET_NAME)_wii.a
-       CC = $(DEVKITPPC)/bin/powerpc-eabi-gcc$(EXE_EXT)
-       AR = $(DEVKITPPC)/bin/powerpc-eabi-ar$(EXE_EXT)
-       CFLAGS += -DGEKKO -DHW_RVL -mrvl -mcpu=750 -meabi -mhard-float -DBLARGG_BIG_ENDIAN=1 -D__ppc__
+# Nintendo GC/Wii/WiiU
+else ifneq (,$(filter $(platform),ngc wii wiiu))
+       TARGET := $(TARGET_NAME)_libretro_$(platform).a
+       CC  = $(DEVKITPPC)/bin/powerpc-eabi-gcc$(EXE_EXT)
+       CXX = $(DEVKITPPC)/bin/powerpc-eabi-g++$(EXE_EXT)
+       AR  = $(DEVKITPPC)/bin/powerpc-eabi-ar$(EXE_EXT)
+       ifeq ($(platform), ngc)
+               CFLAGS += -DHW_DOL -mogc
+       else ifeq ($(platform), wii)
+               CFLAGS += -DHW_RVL -mrvl
+       else ifeq ($(platform), wiiu)
+               # -mwup was removed in newer devkitPPC versions
+               CFLAGS += -DHW_WUP
+               CFLAGS += -I frontend/wiiu
+               LIGHTREC_CUSTOM_MAP := 1
+               LIGHTREC_CUSTOM_MAP_OBJ := libpcsxcore/lightrec/mem_wiiu.o
+       endif
+       ARCH = powerpc
+       BUILTIN_GPU = peops
+       CFLAGS += -D__ppc__ -D__powerpc__
+       CFLAGS += -DGEKKO -mcpu=750 -meabi -mhard-float
+       CFLAGS += -DNO_SOCKET -DNO_DYLIB
+       STATIC_LINKING := 1
+       THREAD_RENDERING := 0
+       NO_PTHREAD := 1
+       NO_MMAP := 1
+       NO_POSIX_MEMALIGN := 1
+       LIBDL :=
+       LIBPTHREAD :=
+       LIBRT :=
 
 # QNX
 else ifeq ($(platform), qnx)
@@ -505,9 +527,13 @@ else ifeq ($(platform), emscripten)
 else
        TARGET := $(TARGET_NAME)_libretro.dll
        PLATFORM = libretro
-       MAIN_LDFLAGS += -static-libgcc -static-libstdc++ -s
+       MAIN_LDFLAGS += -static-libgcc -static-libstdc++
+ifneq ($(DEBUG),1)
+       MAIN_LDFLAGS += -s
+endif
        CFLAGS += -D__WIN32__ -DNO_DYLIB
        MMAP_WIN32=1
+       NO_PTHREAD=1
        MAIN_LDLIBS += -lws2_32
        LIBPTHREAD :=
        LIBDL :=
@@ -530,7 +556,7 @@ ARCH = $(ARCH_DETECTED)
 endif
 ifndef HAVE_NEON_ASM
 # asm for 32bit only
-HAVE_NEON_ASM = $(shell $(CC) -E -dD $(CFLAGS) - < /dev/null 2> /dev/null | grep -q __ARM_NEON__ && echo 1 || echo 0)
+HAVE_NEON_ASM = $(shell $(CC) -E -dD $(CFLAGS) include/arm_features.h | grep -q HAVE_NEON32 && echo 1 || echo 0)
 endif
 ifeq ($(NO_UNDEF_CHECK)$(shell ld -v 2> /dev/null | awk '{print $$1}'),GNU)
 MAIN_LDFLAGS += -Wl,--no-undefined