mirror of
https://github.com/jfdelnero/HxCFloppyEmulator.git
synced 2026-07-27 19:56:23 +00:00
Fix macOS dynamic libraries loading for better CAPSImage + CLI relocation support
This commit is contained in:
@@ -38,8 +38,10 @@ LIBUSBHXCFE = libusbhxcfe.so
|
||||
ifeq ($(TARGET), Darwin)
|
||||
MACOSX_ARCH ?= -arch arm64 -arch x86_64
|
||||
MACOSX_MIN_VER ?= 10.9
|
||||
# Allow the CLI to run from the App bundle or from somewhere like /usr/local/bin (with libs in /usr/local/lib)
|
||||
RPATHS = -Wl,-rpath,@executable_path/../Frameworks,-rpath,@executable_path/../lib
|
||||
CFLAGS += ${MACOSX_ARCH} -mmacosx-version-min=${MACOSX_MIN_VER}
|
||||
LDFLAGS += -lc -lm -ldl -lpthread ${MACOSX_ARCH} -mmacosx-version-min=${MACOSX_MIN_VER}
|
||||
LDFLAGS += -lc -lm -ldl -lpthread ${MACOSX_ARCH} -mmacosx-version-min=${MACOSX_MIN_VER} ${RPATHS}
|
||||
LIBHXCFE = libhxcfe.dylib
|
||||
LIBUSBHXCFE = libusbhxcfe.dylib
|
||||
endif
|
||||
|
||||
@@ -93,8 +93,10 @@ endif
|
||||
ifeq ($(TARGET), Darwin)
|
||||
MACOSX_ARCH ?= -arch arm64 -arch x86_64
|
||||
MACOSX_MIN_VER ?= 10.9
|
||||
# For the GUI application, libraries will always be in the Frameworks directory.
|
||||
RPATHS = -Wl,-rpath,@executable_path/../Frameworks
|
||||
CFLAGS += -DOSX ${MACOSX_ARCH} -mmacosx-version-min=${MACOSX_MIN_VER}
|
||||
LDFLAGS += -lc -lm -ldl -lpthread -framework Cocoa -framework AudioToolBox -framework UniformTypeIdentifiers ${MACOSX_ARCH} -mmacosx-version-min=${MACOSX_MIN_VER}
|
||||
LDFLAGS += -lc -lm -ldl -lpthread -framework Cocoa -framework AudioToolBox -framework UniformTypeIdentifiers ${MACOSX_ARCH} -mmacosx-version-min=${MACOSX_MIN_VER} ${RPATHS}
|
||||
LIBHXCFE = libhxcfe.dylib
|
||||
LIBUSBHXCFE = libusbhxcfe.dylib
|
||||
else
|
||||
|
||||
@@ -73,8 +73,11 @@ endif
|
||||
ifeq ($(TARGET), Darwin)
|
||||
MACOSX_ARCH ?= -arch arm64 -arch x86_64
|
||||
MACOSX_MIN_VER ?= 10.9
|
||||
# Search paths for other dylibs (like CAPSImage)
|
||||
# @loader_path = same directory as this lib.
|
||||
RPATHS = -Wl,-rpath,@loader_path,-rpath,/Library/Frameworks,-rpath,/usr/local/lib
|
||||
CFLAGS += ${MACOSX_ARCH} -mmacosx-version-min=${MACOSX_MIN_VER}
|
||||
LDFLAGS += -lc -lm -ldl ${MACOSX_ARCH} -dynamiclib -current_version 2.0 -install_name @executable_path/../Frameworks/libhxcfe.dylib -mmacosx-version-min=${MACOSX_MIN_VER}
|
||||
LDFLAGS += -lc -lm -ldl ${MACOSX_ARCH} -dynamiclib -current_version 2.0 -install_name @rpath/libhxcfe.dylib -mmacosx-version-min=${MACOSX_MIN_VER} ${RPATHS}
|
||||
EXEC = libhxcfe.dylib
|
||||
endif
|
||||
|
||||
|
||||
@@ -134,7 +134,7 @@ HXCFE* hxcfe_init(void)
|
||||
#if defined(WIN32)
|
||||
hxcfe_execScriptLine( hxcfe, "set SPSCAPS_LIB_NAME CAPSImg.dll" );
|
||||
#elif __APPLE__
|
||||
hxcfe_execScriptLine( hxcfe, "set SPSCAPS_LIB_NAME CAPSImage.framework/CAPSImage,CAPSImg.framework/CAPSImg" );
|
||||
hxcfe_execScriptLine( hxcfe, "set SPSCAPS_LIB_NAME @rpath/CAPSImage.framework/CAPSImage,@rpath/CAPSImg.framework/CAPSImg" );
|
||||
#else
|
||||
hxcfe_execScriptLine( hxcfe, "set SPSCAPS_LIB_NAME libcapsimage.so.5,libcapsimage.so.5.1,libcapsimage.so" );
|
||||
#endif
|
||||
|
||||
@@ -66,7 +66,9 @@ ifeq ($(TARGET), Darwin)
|
||||
MACOSX_ARCH ?= -arch arm64 -arch x86_64
|
||||
MACOSX_MIN_VER ?= 10.9
|
||||
CFLAGS += ${MACOSX_ARCH} -mmacosx-version-min=${MACOSX_MIN_VER}
|
||||
LDFLAGS += -lc -lm -ldl ${MACOSX_ARCH} -dynamiclib -current_version 2.0 -install_name @executable_path/../Frameworks/libusbhxcfe.dylib -mmacosx-version-min=${MACOSX_MIN_VER}
|
||||
# Load libhxcfe from the same directory as this library.
|
||||
RPATHS = -Wl,-rpath,@loader_path
|
||||
LDFLAGS += -lc -lm -ldl ${MACOSX_ARCH} -dynamiclib -current_version 2.0 -install_name @rpath/libusbhxcfe.dylib -mmacosx-version-min=${MACOSX_MIN_VER} ${RPATHS}
|
||||
EXEC = libusbhxcfe.dylib
|
||||
endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user