diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5ee4a244e8..20d2ee5677 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -325,7 +325,7 @@ build-retroarch-osx-x64: script: # Build RetroArch - ./configure --disable-al - - make V=1 -j$NUMPROC + - make -j$NUMPROC # Build filters - "cd libretro-common/audio/dsp_filters && make -j$NUMPROC build=release && cd ../../.." - "cd gfx/video_filters && make -j$NUMPROC build=release && cd ../.." @@ -374,7 +374,7 @@ build-retroarch-osx-x64-metal: script: # Build RetroArch - ./configure --enable-metal --disable-al --enable-coreaudio3 - - make V=1 -j$NUMPROC + - make -j$NUMPROC # Build filters - "cd libretro-common/audio/dsp_filters && make -j$NUMPROC build=release && cd ../../.." - "cd gfx/video_filters && make -j$NUMPROC build=release && cd ../.." @@ -425,10 +425,10 @@ build-retroarch-osx-arm64-metal: script: # Build RetroArch - ./configure --enable-metal --disable-al --enable-coreaudio3 - - make ARCH=arm64 BUILDBOT=1 V=1 -j$NUMPROC + - make ARCH=arm64 BUILDBOT=1 -j$NUMPROC # Build filters - - "cd libretro-common/audio/dsp_filters && make -j$NUMPROC build=release && cd ../../.." - - "cd gfx/video_filters && make -j$NUMPROC build=release && cd ../.." + - "cd libretro-common/audio/dsp_filters && make ARCH=arm64 BUILDBOT=1 -j$NUMPROC build=release && cd ../../.." + - "cd gfx/video_filters && make ARCH=arm64 BUILDBOT=1 -j$NUMPROC build=release && cd ../.." # Create app directory - rm -rvf "RetroArch.app/" - mkdir -vp "RetroArch.app/Contents/MacOS" diff --git a/gfx/video_filters/Makefile b/gfx/video_filters/Makefile index 20e65b011a..1c317d4296 100644 --- a/gfx/video_filters/Makefile +++ b/gfx/video_filters/Makefile @@ -50,6 +50,45 @@ else ifeq ($(platform), osx) compiler := $(CC) DYLIB = dylib ldflags := -dynamiclib + ARCHFLAGS= + MINVERFLAGS= + ifeq ($(shell uname -p),arm) + MINVERFLAGS = -mmacosx-version-min=10.15 -stdlib=libc++ # macOS (Metal, ARM 64bit) + MINVERFLAGS += -DDONT_WANT_ARM_OPTIMIZATIONS + else ifeq ($(HAVE_METAL),1) + MINVERFLAGS = -mmacosx-version-min=10.13 -stdlib=libc++ # macOS (Metal, x86 64bit) + else ifeq ($(shell uname -p),powerpc) + MINVERFLAGS = -mmacosx-version-min=10.5 # macOSX (PowerPC 32-bit) + else ifeq ($(shell uname -m),i386) + MINVERFLAGS = -mmacosx-version-min=10.6 # macOSX (OpenGL, x86 32bit) + else + MINVERFLAGS = -mmacosx-version-min=10.7 -stdlib=libc++ # macOSX (OpenGL, x86 64bit) + endif + + # Build for a specific architecture when ARCH is defined as a switch + ifeq ($(ARCH),arm64) + MINVERFLAGS = -mmacosx-version-min=10.15 -stdlib=libc++ # macOS (Metal, ARM 64bit) + MINVERFLAGS += -DDONT_WANT_ARM_OPTIMIZATIONS + ARCHFLAGS = -arch arm64 + else ifeq ($(ARCH),x86_64) + ifeq ($(HAVE_METAL),1) + MINVERFLAGS = -mmacosx-version-min=10.13 -stdlib=libc++ + else + MINVERFLAGS = -mmacosx-version-min=10.7 -stdlib=libc++ + endif + ARCHFLAGS = -arch x86_64 + else ifeq ($(ARCH),x86) + MINVERFLAGS = -mmacosx-version-min=10.6 + ARCHFLAGS = -arch x86 + else ifeq ($(ARCH),ppc) + MINVERFLAGS = -mmacosx-version-min=10.5 + ARCHFLAGS = -arch ppc + endif + ifeq ($(BUILDBOT),1) + ARCHFLAGS = -target $(LIBRETRO_APPLE_PLATFORM) -isysroot $(LIBRETRO_APPLE_ISYSROOT) + endif + extraflags += $(MINVERFLAGS) $(ARCHFLAGS) + ldflags += $(MINVERFLAGS) $(ARCHFLAGS) else extra_flags += -static-libgcc -static-libstdc++ DYLIB = dll @@ -67,14 +106,29 @@ ASMFLAGS := -INEON/asm asflags += -mfpu=neon endif -objects += blargg_ntsc_snes.$(DYLIB) phosphor2x.$(DYLIB) epx.$(DYLIB) lq2x.$(DYLIB) \ - 2xsai.$(DYLIB) super2xsai.$(DYLIB) supereagle.$(DYLIB) 2xbr.$(DYLIB) \ - darken.$(DYLIB) scale2x.$(DYLIB) normal2x.$(DYLIB) \ - normal2x_width.$(DYLIB) normal2x_height.$(DYLIB) normal4x.$(DYLIB) \ - scanline2x.$(DYLIB) grid2x.$(DYLIB) grid3x.$(DYLIB) \ - gameboy3x.$(DYLIB) gameboy4x.$(DYLIB) \ - dot_matrix_3x.$(DYLIB) dot_matrix_4x.$(DYLIB) \ - upscale_1_5x.$(DYLIB) upscale_256x_320x240.$(DYLIB) +objects += blargg_ntsc_snes.$(DYLIB) \ + phosphor2x.$(DYLIB) \ + epx.$(DYLIB) \ + lq2x.$(DYLIB) \ + 2xsai.$(DYLIB) \ + super2xsai.$(DYLIB) \ + supereagle.$(DYLIB) \ + 2xbr.$(DYLIB) \ + darken.$(DYLIB) \ + scale2x.$(DYLIB) \ + normal2x.$(DYLIB) \ + normal2x_width.$(DYLIB) \ + normal2x_height.$(DYLIB) \ + normal4x.$(DYLIB) \ + scanline2x.$(DYLIB) \ + grid2x.$(DYLIB) \ + grid3x.$(DYLIB) \ + gameboy3x.$(DYLIB) \ + gameboy4x.$(DYLIB) \ + dot_matrix_3x.$(DYLIB) \ + dot_matrix_4x.$(DYLIB) \ + upscale_1_5x.$(DYLIB) \ + upscale_256x_320x240.$(DYLIB) all: build; diff --git a/libretro-common/audio/dsp_filters/Makefile b/libretro-common/audio/dsp_filters/Makefile index 02e049df57..cdf21fd7e6 100644 --- a/libretro-common/audio/dsp_filters/Makefile +++ b/libretro-common/audio/dsp_filters/Makefile @@ -50,6 +50,45 @@ else ifeq ($(platform), osx) compiler := $(CC) DYLIB = dylib ldflags := -dynamiclib + ARCHFLAGS= + MINVERFLAGS= + ifeq ($(shell uname -p),arm) + MINVERFLAGS = -mmacosx-version-min=10.15 -stdlib=libc++ # macOS (Metal, ARM 64bit) + MINVERFLAGS += -DDONT_WANT_ARM_OPTIMIZATIONS + else ifeq ($(HAVE_METAL),1) + MINVERFLAGS = -mmacosx-version-min=10.13 -stdlib=libc++ # macOS (Metal, x86 64bit) + else ifeq ($(shell uname -p),powerpc) + MINVERFLAGS = -mmacosx-version-min=10.5 # macOSX (PowerPC 32-bit) + else ifeq ($(shell uname -m),i386) + MINVERFLAGS = -mmacosx-version-min=10.6 # macOSX (OpenGL, x86 32bit) + else + MINVERFLAGS = -mmacosx-version-min=10.7 -stdlib=libc++ # macOSX (OpenGL, x86 64bit) + endif + + # Build for a specific architecture when ARCH is defined as a switch + ifeq ($(ARCH),arm64) + MINVERFLAGS = -mmacosx-version-min=10.15 -stdlib=libc++ # macOS (Metal, ARM 64bit) + MINVERFLAGS += -DDONT_WANT_ARM_OPTIMIZATIONS + ARCHFLAGS = -arch arm64 + else ifeq ($(ARCH),x86_64) + ifeq ($(HAVE_METAL),1) + MINVERFLAGS = -mmacosx-version-min=10.13 -stdlib=libc++ + else + MINVERFLAGS = -mmacosx-version-min=10.7 -stdlib=libc++ + endif + ARCHFLAGS = -arch x86_64 + else ifeq ($(ARCH),x86) + MINVERFLAGS = -mmacosx-version-min=10.6 + ARCHFLAGS = -arch x86 + else ifeq ($(ARCH),ppc) + MINVERFLAGS = -mmacosx-version-min=10.5 + ARCHFLAGS = -arch ppc + endif + ifeq ($(BUILDBOT),1) + ARCHFLAGS = -target $(LIBRETRO_APPLE_PLATFORM) -isysroot $(LIBRETRO_APPLE_ISYSROOT) + endif + extraflags += $(MINVERFLAGS) $(ARCHFLAGS) + ldflags += $(MINVERFLAGS) $(ARCHFLAGS) else extra_flags += -static-libgcc -static-libstdc++ DYLIB = dll