Index: Info.plist ================================================================== --- Info.plist +++ Info.plist @@ -4,23 +4,21 @@ CFBundleDevelopmentRegion English CFBundleExecutable ObjFW - CFBundleGetInfoString - https://webkeks.org/objfw + CFBundleName + ObjFW CFBundleIdentifier - ObjFW + org.webkeks.objfw CFBundleInfoDictionaryVersion 6.0 - CFBundleName - objfw CFBundlePackageType FMWK - CFBundleShortVersionString - 0.3 CFBundleSignature - OBJF + OBJFW CFBundleVersion + 0.3 + CFBundleShortVersionString 0.3 Index: configure.ac ================================================================== --- configure.ac +++ configure.ac @@ -121,10 +121,17 @@ AC_SUBST(OFPLUGINTESTS_M, "OFPluginTests.m") AC_SUBST(TESTPLUGIN, "plugin") AC_DEFINE(OF_PLUGINS, 1, [Whether we have plugin support]) AC_SUBST(OFPLUGINS_DEF, "-DOF_PLUGINS") fi + +case "$host_os" in + darwin*) + AC_SUBST(REEXPORT_LIBOBJC, [-Wl,-reexport-lobjc]) + AC_SUBST(LDFLAGS_REEXPORT, [-Wl,-reexport-lobjfw]) + ;; +esac AC_C_BIGENDIAN([ AC_DEFINE(OF_BIG_ENDIAN, 1, [Whether we are big endian]) AC_SUBST(ENDIANESS_DEF, "-DOF_BIG_ENDIAN")]) Index: extra.mk.in ================================================================== --- extra.mk.in +++ extra.mk.in @@ -9,9 +9,10 @@ OFPLUGIN_M = @OFPLUGIN_M@ OFPLUGINTESTS_M = @OFPLUGINTESTS_M@ OFTHREAD_M = @OFTHREAD_M@ OFTHREADTESTS_M = @OFTHREADTESTS_M@ PROPERTIESTESTS_M = @PROPERTIESTESTS_M@ +REEXPORT_LIBOBJC = @REEXPORT_LIBOBJC@ TESTPLUGIN = @TESTPLUGIN@ TESTS = @TESTS@ TEST_LAUNCHER = @TEST_LAUNCHER@ THREADING_H = @THREADING_H@ Index: m4/buildsys.m4 ================================================================== --- m4/buildsys.m4 +++ m4/buildsys.m4 @@ -55,17 +55,17 @@ case "$host_os" in darwin*) AC_MSG_RESULT(Darwin) LIB_CPPFLAGS='-DPIC' LIB_CFLAGS='-fPIC' - LIB_LDFLAGS='-dynamiclib -flat_namespace' + LIB_LDFLAGS='-dynamiclib -current_version ${LIB_MAJOR}.${LIB_MINOR} -compatibility_version ${LIB_MAJOR}' LIB_PREFIX='lib' LIB_SUFFIX='.dylib' LDFLAGS_RPATH='-Wl,-rpath,${libdir}' PLUGIN_CPPFLAGS='-DPIC' PLUGIN_CFLAGS='-fPIC' - PLUGIN_LDFLAGS='-bundle -flat_namespace -undefined suppress' + PLUGIN_LDFLAGS='-bundle -undefined dynamic_lookup' PLUGIN_SUFFIX='.impl' INSTALL_LIB='${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib && ${LN_S} -f $${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.dylib && ${LN_S} -f $${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib ${DESTDIR}${libdir}/$$i' UNINSTALL_LIB='rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.dylib ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib' CLEAN_LIB='' ;; Index: src/Makefile ================================================================== --- src/Makefile +++ src/Makefile @@ -49,5 +49,6 @@ include ../buildsys.mk CPPFLAGS += -I.. ${LIB_CPPFLAGS} OBJCFLAGS += ${LIB_CFLAGS} LD = ${OBJC} +LDFLAGS += ${REEXPORT_LIBOBJC} Index: src/OFExceptions.m ================================================================== --- src/OFExceptions.m +++ src/OFExceptions.m @@ -84,11 +84,11 @@ - initWithClass: (Class)class_ { self = [super init]; - class_ = class_; + inClass = class_; return self; } - (void)dealloc @@ -1257,11 +1257,11 @@ if (string != nil) return string; string = [[OFString alloc] initWithFormat: @"A connection to service %s on node %s could not be established " - @"in class %s! " ERRFMT, [node cString], [service cString], + @"in class %s! " ERRFMT, [service cString], [node cString], [inClass className], ERRPARAM]; return string; } Index: src/objfw-defs.h.in ================================================================== --- src/objfw-defs.h.in +++ src/objfw-defs.h.in @@ -1,10 +1,12 @@ #undef OF_APPLE_RUNTIME +#undef OF_HAVE_ASPRINTF #undef OF_ATOMIC_OPS #undef OF_BIG_ENDIAN #undef OF_GNU_RUNTIME #undef OF_HAVE_ASPRINTF +#undef OF_HAVE_FAST_ENUMERATION #undef OF_HAVE_GCC_ATOMIC_OPS #undef OF_HAVE_LIBKERN_OSATOMIC_H #undef OF_HAVE_PROPERTIES #undef OF_HAVE_PTHREADS #undef OF_HAVE_PTHREAD_SPINLOCKS Index: utils/objfw-config.in ================================================================== --- utils/objfw-config.in +++ utils/objfw-config.in @@ -8,10 +8,11 @@ OBJC="@OBJC@" OBJCFLAGS="@GNU_RUNTIME@ -fexceptions -fobjc-exceptions" OBJCFLAGS="$OBJCFLAGS -fconstant-string-class=OFConstString" OBJCFLAGS="$OBJCFLAGS @NO_CONST_CFSTRINGS@ @NO_WARN_UNUSED@ @ATOMIC_OBJCFLAGS@" LDFLAGS="" +LDFLAGS_REEXPORT="@LDFLAGS_REEXPORT@" LDFLAGS_RPATH="@LDFLAGS_RPATH@" LIBS="-L${libdir} -lobjfw @LIBS@" VERSION="0.3" show_help() { @@ -23,10 +24,11 @@ --cppflags Outputs the required CPPFLAGS --cxxflags Outputs the required CXXFLAGS --objc Outputs the OBJC used to compile ObjFW --objcflags Outputs the required OBJCFLAGS --ldflags Outputs the required LDFLAGS + --reexport Outputs LDFLAGS to reexport ObjFW --rpath Outputs LDFLAGS for using rpath --libs Outputs the required LIBS --version Outputs the installed version __EOF__ exit 0 @@ -40,11 +42,12 @@ echo "$CFLAGS" echo "$CPPFLAGS" echo "$CXXFLAGS" echo "$OBJCFLAGS" echo "$LDFLAGS" - echo "$RPATH_LDFLAGS" + echo "$LDFLAGS_REEXPORT" + echo "$LDFLAGS_RPATH" echo "$LIBS" ;; --cflags) echo "$CFLAGS" ;; @@ -64,10 +67,13 @@ echo "$LIBS" ;; --ldflags) echo "$LDFLAGS" ;; + --reexport) + echo "$LDFLAGS_REEXPORT" + ;; --rpath) echo "$LDFLAGS_RPATH" ;; --version) echo "$VERSION"