From bf3a2d83fab3c16f0c8d0406c2bbda171560c4ae Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Deuc=D0=B5?= <shurd@sasktel.net>
Date: Tue, 12 Nov 2024 23:51:32 -0500
Subject: [PATCH] Normalize SDL on macOS

Prefer sdl2-config from the path, and only use the framework in
/Library/Frameworks if that doesn't exist... to that end, don't
copy the framework into the app anymore unless you're using it.

This should clean out the pipes.
---
 src/conio/Common.gmake   | 12 ++++++-----
 src/sbbs3/GNUmakefile    |  4 +++-
 src/syncterm/GNUmakefile |  2 ++
 src/xpdev/Common.gmake   | 43 +++++++++++++++++++++-------------------
 4 files changed, 35 insertions(+), 26 deletions(-)

diff --git a/src/conio/Common.gmake b/src/conio/Common.gmake
index 4fb27f6358..0fcf6e8dcd 100644
--- a/src/conio/Common.gmake
+++ b/src/conio/Common.gmake
@@ -163,11 +163,13 @@ ifdef WITH_SDL
    CIOLIB-MT_CFLAGS	+=	-DWITH_SDL -DSTATIC_SDL
    WITH_SDL	:=	1
    STATIC_SDL	:=	1
-   CIOLIB-MT_CFLAGS	+=	-I${SDL_FRAMEWORK_PATH}/SDL2.framework/Headers
-   CIOLIB-MT_LIBS	+=	-F${SDL_FRAMEWORK_PATH} -framework SDL2 -I${SDL_FRAMEWORK_PATH}/SDL2.framework/Headers
-   CIOLIB_CFLAGS	+=	-DWITH_SDL -DSTATIC_SDL
-   CIOLIB_CFLAGS	+=	-I${SDL_FRAMEWORK_PATH}/SDL2.framework/Headers
-   CIOLIB_LIBS	+=	-F${SDL_FRAMEWORK_PATH} -framework SDL2 -I${SDL_FRAMEWORK_PATH}/SDL2.framework/Headers
+   ifdef SDL_FRAMEWORK_PATH
+    CIOLIB-MT_CFLAGS	+=	-I${SDL_FRAMEWORK_PATH}/SDL2.framework/Headers
+    CIOLIB-MT_LIBS	+=	-F${SDL_FRAMEWORK_PATH} -framework SDL2 -I${SDL_FRAMEWORK_PATH}/SDL2.framework/Headers
+    CIOLIB_CFLAGS	+=	-DWITH_SDL -DSTATIC_SDL
+    CIOLIB_CFLAGS	+=	-I${SDL_FRAMEWORK_PATH}/SDL2.framework/Headers
+    CIOLIB_LIBS	+=	-F${SDL_FRAMEWORK_PATH} -framework SDL2 -I${SDL_FRAMEWORK_PATH}/SDL2.framework/Headers
+   endif
   else
    ifdef win
     CIOLIB-MT_CFLAGS	+=	-DWITH_SDL
diff --git a/src/sbbs3/GNUmakefile b/src/sbbs3/GNUmakefile
index f403d0835f..1f4a7a32bd 100644
--- a/src/sbbs3/GNUmakefile
+++ b/src/sbbs3/GNUmakefile
@@ -266,7 +266,9 @@ $(MAKEUSER): $(MAKEUSER_OBJS) | $(EXEODIR)
 # JSDOOR
 $(JSDOOR): $(JSDOOR_OBJS) $(XPDEV_LIB) $(ENCODE_LIB) $(HASH_LIB) $(CIOLIB-MT) | $(EXEODIR)
 	@echo Linking $@
-	$(QUIET)$(CXX) $(JS_CFLAGS) $(LDFLAGS) $(MT_LDFLAGS) -o $@ $(JSDOOR_OBJS) $(JS_LIBS) $(CRYPT_LIBS) $(UIFC-MT_LIBS) $(CIOLIB-MT_LIBS) $(SMBLIB_LIBS) $(ENCODE_LIBS) $(XPDEV-MT_LIBS) $(HASH_LIBS) $(FILE_LIBS)
+	echo CIOLIB: $(CIOLIB-MT_LDFLAGS)
+	echo XPDEV: $(XPDEV-MT_LDFLAGS)
+	$(QUIET)$(CXX) $(JS_CFLAGS) $(LDFLAGS) $(MT_LDFLAGS) $(CIOLIB-MT_LDFLAGS) $(XPDEV-MT_LDFLAGS) -o $@ $(JSDOOR_OBJS) $(JS_LIBS) $(CRYPT_LIBS) $(UIFC-MT_LIBS) $(CIOLIB-MT_LIBS) $(SMBLIB_LIBS) $(ENCODE_LIBS) $(XPDEV-MT_LIBS) $(HASH_LIBS) $(FILE_LIBS)
 ifeq ($(os), netbsd)
 	paxctl +m $(JSDOOR)
 endif
diff --git a/src/syncterm/GNUmakefile b/src/syncterm/GNUmakefile
index ac8eaf8699..09c093fc16 100644
--- a/src/syncterm/GNUmakefile
+++ b/src/syncterm/GNUmakefile
@@ -123,10 +123,12 @@ ifeq ($(os),darwin)
 	${QUIET}${INSTALL_EXE} ${SYNCTERM} ${EXEODIR}/SyncTERM.app/Contents/MacOS
 	${QUIET}${INSTALL_DATA} Info.plist ${EXEODIR}/SyncTERM.app/Contents
 	${QUIET}${INSTALL_DATA} SyncTERM.icns ${EXEODIR}/SyncTERM.app/Contents/Resources
+ifdef SDL_FRAMEWORK_PATH
 	-${QUIET}rm -rf ${EXEODIR}/SyncTERM.app/Contents/Frameworks/SDL2.framework
 	-${QUIET}cp -R ${SDL_FRAMEWORK_PATH}/SDL2.framework ${EXEODIR}/SyncTERM.app/Contents/Frameworks
 	-${QUIET}rm -rf ${EXEODIR}/SyncTERM.app/Contents/Frameworks/SDL2.framework/Headers/*
 endif
+endif
 
 syncterm.man: syncterm.man.in
 	@echo Creating $@
diff --git a/src/xpdev/Common.gmake b/src/xpdev/Common.gmake
index 578b61fba6..12c6fdb12b 100644
--- a/src/xpdev/Common.gmake
+++ b/src/xpdev/Common.gmake
@@ -104,24 +104,25 @@ ifdef USE_SDL_AUDIO
    WITH_SDL_AUDIO	:=	1
   endif
  else
-  ifeq ($(os),darwin)
-   ifeq ($(shell if [ -d /Library/Frameworks/SDL2.framework ] ; then echo YES ; fi),YES)
-    SDL_FRAMEWORK_PATH ?= /Library/Frameworks
-    CFLAGS += -F${SDL_FRAMEWORK_PATH}
-   endif
-   ifdef SDL_FRAMEWORK_PATH
-    WITH_SDL_AUDIO	:=	1
-    CIOLIB-MT_LDFLAGS += -Wl,-rpath,@executable_path/../Frameworks
-    CIOLIB-MT_LDFLAGS += -Wl,-rpath,${SDL_FRAMEWORK_PATH}
-   endif
+  ifeq ($(shell command -v sdl2-config > /dev/null && sdl2-config --cflags > /dev/null 2>&1 && echo YES),YES)
+   SDL_CONFIG := sdl2-config
+   WITH_SDL_AUDIO	:=	1
   else
-   ifeq ($(shell command -v sdl2-config > /dev/null && sdl2-config --cflags > /dev/null 2>&1 && echo YES),YES)
-    SDL_CONFIG := sdl2-config
+   ifeq ($(shell command -v sdl-config > /dev/null && if [ `sdl-config --version | sed -E 's/\..*$$//'` -ge 2 ] ; then echo 'YES' ; fi),YES)
+    SDL_CONFIG := sdl-config
     WITH_SDL_AUDIO	:=	1
-   else
-    ifeq ($(shell command -v sdl-config > /dev/null && if [ `sdl-config --version | sed -E 's/\..*$$//'` -ge 2 ] ; then echo 'YES' ; fi),YES)
-     SDL_CONFIG := sdl-config
+   endif
+  endif
+  ifndef WITH_SDL
+   ifeq ($(os),darwin)
+    ifeq ($(shell if [ -d /Library/Frameworks/SDL2.framework ] ; then echo YES ; fi),YES)
+     SDL_FRAMEWORK_PATH ?= /Library/Frameworks
+     CFLAGS += -F${SDL_FRAMEWORK_PATH}
+    endif
+    ifdef SDL_FRAMEWORK_PATH
      WITH_SDL_AUDIO	:=	1
+     CIOLIB-MT_LDFLAGS += -Wl,-rpath,@executable_path/../Frameworks
+     CIOLIB-MT_LDFLAGS += -Wl,-rpath,${SDL_FRAMEWORK_PATH}
     endif
    endif
   endif
@@ -162,12 +163,14 @@ ifdef WITH_SDL_AUDIO
  else
   ifeq ($(os),darwin)
    XPDEV-MT_CFLAGS	+=	-DWITH_SDL_AUDIO -DSTATIC_SDL
-   XPDEV-MT_CFLAGS	+=	-I${SDL_FRAMEWORK_PATH}/SDL2.framework/Headers
-   XPDEV-MT_LIBS	+=	-F${SDL_FRAMEWORK_PATH} -framework SDL2 -I${SDL_FRAMEWORK_PATH}/SDL2.framework/Headers
    XPDEV_CFLAGS	+=	-DWITH_SDL_AUDIO -DSTATIC_SDL
-   XPDEV_CFLAGS	+=	-I${SDL_FRAMEWORK_PATH}/SDL2.framework/Headers
-   XPDEV_LIBS	+=	-F${SDL_FRAMEWORK_PATH} -framework SDL2 -I${SDL_FRAMEWORK_PATH}/SDL2.framework/Headers
-   XPDEV-MT_LDFLAGS += -Wl,-rpath,@executable_path/../Frameworks
+   ifdef SDL_FRAMEWORK_PATH
+    XPDEV-MT_CFLAGS	+=	-I${SDL_FRAMEWORK_PATH}/SDL2.framework/Headers
+    XPDEV-MT_LIBS	+=	-F${SDL_FRAMEWORK_PATH} -framework SDL2 -I${SDL_FRAMEWORK_PATH}/SDL2.framework/Headers
+    XPDEV_CFLAGS	+=	-I${SDL_FRAMEWORK_PATH}/SDL2.framework/Headers
+    XPDEV_LIBS	+=	-F${SDL_FRAMEWORK_PATH} -framework SDL2 -I${SDL_FRAMEWORK_PATH}/SDL2.framework/Headers
+    XPDEV-MT_LDFLAGS += -Wl,-rpath,@executable_path/../Frameworks
+   endif
   endif
  endif
 endif
-- 
GitLab