Index: m4/buildsys.m4 ================================================================== --- m4/buildsys.m4 +++ m4/buildsys.m4 @@ -58,15 +58,15 @@ LIB_CPPFLAGS='-DPIC' LIB_CFLAGS='-fPIC' LIB_LDFLAGS='-dynamiclib -flat_namespace' 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_SUFFIX='.impl' - RPATH_LDFLAGS='-Wl,-rpath,${libdir}' 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='' ;; *-*-solaris*) @@ -74,31 +74,31 @@ LIB_CPPFLAGS='-DPIC' LIB_CFLAGS='-fPIC' LIB_LDFLAGS='-shared -fPIC -Wl,-soname=${LIB}.${LIB_MAJOR}.${LIB_MINOR}' LIB_PREFIX='lib' LIB_SUFFIX='.so' + LDFLAGS_RPATH='-Wl,-rpath,${libdir}' PLUGIN_CPPFLAGS='-DPIC' PLUGIN_CFLAGS='-fPIC' PLUGIN_LDFLAGS='-shared -fPIC' PLUGIN_SUFFIX='.so' - RPATH_LDFLAGS='-Wl,-rpath,${libdir}' INSTALL_LIB='${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR} && rm -f ${DESTDIR}${libdir}/$$i && ${LN_S} $$i.${LIB_MAJOR}.${LIB_MINOR} ${DESTDIR}${libdir}/$$i' UNINSTALL_LIB='rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}' CLEAN_LIB='' ;; *-*-openbsd* | *-*-mirbsd*) - AC_MSG_RESULT(Solaris) + AC_MSG_RESULT(OpenBSD) LIB_CPPFLAGS='-DPIC' LIB_CFLAGS='-fPIC' LIB_LDFLAGS='-shared -fPIC' LIB_PREFIX='lib' LIB_SUFFIX='.so.${LIB_MAJOR}.${LIB_MINOR}' + LDFLAGS_RPATH='-Wl,-rpath,${libdir}' PLUGIN_CPPFLAGS='-DPIC' PLUGIN_CFLAGS='-fPIC' PLUGIN_LDFLAGS='-shared -fPIC' PLUGIN_SUFFIX='.so' - RPATH_LDFLAGS='-Wl,-rpath,${libdir}' INSTALL_LIB='${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i' UNINSTALL_LIB='rm -f ${DESTDIR}${libdir}/$$i' CLEAN_LIB='' ;; *-*-cygwin* | *-*-mingw*) @@ -106,15 +106,15 @@ LIB_CPPFLAGS='-DPIC' LIB_CFLAGS='' LIB_LDFLAGS='-shared -Wl,--out-implib,${LIB}.a' LIB_PREFIX='lib' LIB_SUFFIX='.dll' + LDFLAGS_RPATH='-Wl,-rpath,${libdir}' PLUGIN_CPPFLAGS='' PLUGIN_CFLAGS='' PLUGIN_LDFLAGS='-shared' PLUGIN_SUFFIX='.dll' - RPATH_LDFLAGS='-Wl,-rpath,${libdir}' INSTALL_LIB='${MKDIR_P} ${DESTDIR}${bindir} && ${INSTALL} -m 755 $$i ${DESTDIR}${bindir}/$$i && ${INSTALL} -m 755 $$i.a ${DESTDIR}${libdir}/$$i.a' UNINSTALL_LIB='rm -f ${DESTDIR}${bindir}/$$i ${DESTDIR}${libdir}/$$i.a' CLEAN_LIB='${LIB}.a' ;; *) @@ -122,15 +122,15 @@ LIB_CPPFLAGS='-DPIC' LIB_CFLAGS='-fPIC' LIB_LDFLAGS='-shared -fPIC -Wl,-soname=${LIB}.${LIB_MAJOR}' LIB_PREFIX='lib' LIB_SUFFIX='.so' + LDFLAGS_RPATH='-Wl,-rpath,${libdir}' PLUGIN_CPPFLAGS='-DPIC' PLUGIN_CFLAGS='-fPIC' PLUGIN_LDFLAGS='-shared -fPIC' PLUGIN_SUFFIX='.so' - RPATH_LDFLAGS='-Wl,-rpath,${libdir}' INSTALL_LIB='${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}.0 && ${LN_S} -f $$i.${LIB_MAJOR}.${LIB_MINOR}.0 ${DESTDIR}${libdir}/$$i.${LIB_MAJOR} && ${LN_S} -f $$i.${LIB_MAJOR}.${LIB_MINOR}.0 ${DESTDIR}${libdir}/$$i' UNINSTALL_LIB='rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR} ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}.0' CLEAN_LIB='' ;; esac @@ -138,15 +138,15 @@ AC_SUBST(LIB_CPPFLAGS) AC_SUBST(LIB_CFLAGS) AC_SUBST(LIB_LDFLAGS) AC_SUBST(LIB_PREFIX) AC_SUBST(LIB_SUFFIX) + AC_SUBST(LDFLAGS_RPATH) AC_SUBST(PLUGIN_CPPFLAGS) AC_SUBST(PLUGIN_CFLAGS) AC_SUBST(PLUGIN_LDFLAGS) AC_SUBST(PLUGIN_SUFFIX) - AC_SUBST(RPATH_LDFLAGS) AC_SUBST(INSTALL_LIB) AC_SUBST(UNINSTALL_LIB) AC_SUBST(CLEAN_LIB) ]) @@ -157,21 +157,21 @@ LIB_CPPFLAGS='' LIB_CFLAGS='' LIB_LDFLAGS='' LIB_PREFIX='lib' LIB_SUFFIX='.a' - RPATH_LDFLAGS='' + LDFLAGS_RPATH='' INSTALL_LIB='${INSTALL} -m 644 $$i ${DESTDIR}${libdir}/$$i' UNINSTALL_LIB='rm -f ${DESTDIR}${libdir}/$$i' CLEAN_LIB='' AC_SUBST(LIB_CPPFLAGS) AC_SUBST(LIB_CFLAGS) AC_SUBST(LIB_LDFLAGS) AC_SUBST(LIB_PREFIX) AC_SUBST(LIB_SUFFIX) - AC_SUBST(RPATH_LDFLAGS) + AC_SUBST(LDFLAGS_RPATH) AC_SUBST(INSTALL_LIB) AC_SUBST(UNINSTALL_LIB) AC_SUBST(CLEAN_LIB) ]) Index: objfw-config.in ================================================================== --- objfw-config.in +++ objfw-config.in @@ -6,11 +6,12 @@ CPPFLAGS="-I@includedir@ -DOF_CONFIGURED @RUNTIME_DEF@ @ENDIANESS_DEF@" CPPFLAGS="$CPPFLAGS @ASPRINTF_DEF@ @OFPLUGINS_DEF@" CXXFLAGS="" OBJCFLAGS="-fobjc-exceptions -fconstant-string-class=OFConstString" OBJCFLAGS="$OBJCFLAGS @NO_CONST_CFSTRINGS@ @NO_WARN_UNUSED@" -LDFLAGS="@RPATH_LDFLAGS@" +LDFLAGS="" +LDFLAGS_RPATH="@LDFLAGS_RPATH@" LIBS="-L${libdir} -lobjfw @LIBS@" VERSION="0.1" show_help() { echo "$0: Available arguments are:" @@ -19,10 +20,11 @@ echo " --cflags Outputs the required CFLAGS" echo " --cppflags Outputs the required CPPFLAGS" echo " --cxxflags Outputs the required CXXFLAGS" echo " --objcflags Outputs the required OBJCFLAGS" echo " --ldflags Outputs the required LDFLAGS" + echo " --rpath Outputs LDFLAGS for using rpath" echo " --libs Outputs the required LIBS" echo " --version Outputs the installed version" echo exit 0 } @@ -35,10 +37,11 @@ echo "$CFLAGS" echo "$CPPFLAGS" echo "$CXXFLAGS" echo "$OBJCFLAGS" echo "$LDFLAGS" + echo "$RPATH_LDFLAGS" echo "$LIBS" ;; --cflags) echo "$CFLAGS" ;; @@ -55,10 +58,13 @@ echo "$LIBS" ;; --ldflags) echo "$LDFLAGS" ;; + --rpath) + echo "$LDFLAGS_RPATH" + ;; --version) echo "$VERSION" ;; *) echo "Invalid option: $1" >/dev/stderr Index: src/OFDictionary.m ================================================================== --- src/OFDictionary.m +++ src/OFDictionary.m @@ -145,10 +145,11 @@ } return self; } +/* FIXME: Do it without resizing! */ - initWithObjects: (OFArray*)objs forKeys: (OFArray*)keys { id *objs_carray, *keys_carray; size_t objs_count, i; @@ -190,10 +191,11 @@ va_end(args); return ret; } +/* FIXME: Possible without resizing? */ - initWithKey: (OFObject *)key argList: (va_list)args { const SEL sel = @selector(setObject:forKey:); IMP set = [OFMutableDictionary instanceMethodForSelector: sel];