Index: Makefile ================================================================== --- Makefile +++ Makefile @@ -8,10 +8,12 @@ config.log \ config.status \ extra.mk include buildsys.mk + +utils ${TESTS}: src tarball: echo "Generating tarball for version ${PACKAGE_VERSION}..." rm -fr tmp.tar objfw-${PACKAGE_VERSION} objfw-${PACKAGE_VERSION}.tar \ objfw-${PACKAGE_VERSION}.tar.gz Index: ObjFW.xcodeproj/project.pbxproj ================================================================== --- ObjFW.xcodeproj/project.pbxproj +++ ObjFW.xcodeproj/project.pbxproj @@ -69,11 +69,11 @@ 4B17FFB6133A375B003E6DCD /* OFUnboundNamespaceException.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B17FFB4133A3750003E6DCD /* OFUnboundNamespaceException.m */; }; 4B17FFB9133A381D003E6DCD /* OFInvalidServerReplyException.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B17FFB7133A380F003E6DCD /* OFInvalidServerReplyException.h */; settings = {ATTRIBUTES = (Public, ); }; }; 4B17FFBA133A381D003E6DCD /* OFInvalidServerReplyException.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B17FFB8133A3813003E6DCD /* OFInvalidServerReplyException.m */; }; 4B23CA92133811DC0047A1D9 /* TestPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B6EF684123535B60076B512 /* TestPlugin.m */; }; 4B23CA93133811E20047A1D9 /* ObjFW.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B3D23761337FBC800DD29B8 /* ObjFW.framework */; }; - 4B23CA941338121C0047A1D9 /* TestPlugin.impl in CopyFiles */ = {isa = PBXBuildFile; fileRef = 4B23CA8A133811610047A1D9 /* TestPlugin.impl */; }; + 4B23CA941338121C0047A1D9 /* TestPlugin.bundle in CopyFiles */ = {isa = PBXBuildFile; fileRef = 4B23CA8A133811610047A1D9 /* TestPlugin.bundle */; }; 4B29BC3B133AC4E80004B236 /* OFChangeDirectoryFailedException.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B29BC33133AC4E80004B236 /* OFChangeDirectoryFailedException.h */; settings = {ATTRIBUTES = (Public, ); }; }; 4B29BC3C133AC4E80004B236 /* OFChangeDirectoryFailedException.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B29BC34133AC4E80004B236 /* OFChangeDirectoryFailedException.m */; }; 4B29BC3D133AC4E80004B236 /* OFChangeFileModeFailedException.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B29BC35133AC4E80004B236 /* OFChangeFileModeFailedException.h */; settings = {ATTRIBUTES = (Public, ); }; }; 4B29BC3E133AC4E80004B236 /* OFChangeFileModeFailedException.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B29BC36133AC4E80004B236 /* OFChangeFileModeFailedException.m */; }; 4B29BC3F133AC4E80004B236 /* OFCreateDirectoryFailedException.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B29BC37133AC4E80004B236 /* OFCreateDirectoryFailedException.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -373,11 +373,11 @@ isa = PBXCopyFilesBuildPhase; buildActionMask = 12; dstPath = plugin; dstSubfolderSpec = 16; files = ( - 4B23CA941338121C0047A1D9 /* TestPlugin.impl in CopyFiles */, + 4B23CA941338121C0047A1D9 /* TestPlugin.bundle in CopyFiles */, ); runOnlyForDeploymentPostprocessing = 0; }; 4BF33B4013380CA40059CEF7 /* CopyFiles */ = { isa = PBXCopyFilesBuildPhase; @@ -437,11 +437,11 @@ 4B17FFB4133A3750003E6DCD /* OFUnboundNamespaceException.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OFUnboundNamespaceException.m; path = src/exceptions/OFUnboundNamespaceException.m; sourceTree = ""; }; 4B17FFB7133A380F003E6DCD /* OFInvalidServerReplyException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OFInvalidServerReplyException.h; path = src/exceptions/OFInvalidServerReplyException.h; sourceTree = ""; }; 4B17FFB8133A3813003E6DCD /* OFInvalidServerReplyException.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OFInvalidServerReplyException.m; path = src/exceptions/OFInvalidServerReplyException.m; sourceTree = ""; }; 4B19023A1338D6A2000374C9 /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; name = Makefile; path = src/Makefile; sourceTree = SOURCE_ROOT; }; 4B19023D1338D6D5000374C9 /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; name = Makefile; path = tests/Makefile; sourceTree = ""; }; - 4B23CA8A133811610047A1D9 /* TestPlugin.impl */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = TestPlugin.impl; sourceTree = BUILT_PRODUCTS_DIR; }; + 4B23CA8A133811610047A1D9 /* TestPlugin.bundle */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = TestPlugin.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; 4B29BC33133AC4E80004B236 /* OFChangeDirectoryFailedException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OFChangeDirectoryFailedException.h; path = src/exceptions/OFChangeDirectoryFailedException.h; sourceTree = ""; }; 4B29BC34133AC4E80004B236 /* OFChangeDirectoryFailedException.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OFChangeDirectoryFailedException.m; path = src/exceptions/OFChangeDirectoryFailedException.m; sourceTree = ""; }; 4B29BC35133AC4E80004B236 /* OFChangeFileModeFailedException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OFChangeFileModeFailedException.h; path = src/exceptions/OFChangeFileModeFailedException.h; sourceTree = ""; }; 4B29BC36133AC4E80004B236 /* OFChangeFileModeFailedException.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OFChangeFileModeFailedException.m; path = src/exceptions/OFChangeFileModeFailedException.m; sourceTree = ""; }; 4B29BC37133AC4E80004B236 /* OFCreateDirectoryFailedException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OFCreateDirectoryFailedException.h; path = src/exceptions/OFCreateDirectoryFailedException.h; sourceTree = ""; }; @@ -861,11 +861,11 @@ }; 4B3D23771337FBC800DD29B8 /* Products */ = { isa = PBXGroup; children = ( 4BF33AF0133807310059CEF7 /* Tests */, - 4B23CA8A133811610047A1D9 /* TestPlugin.impl */, + 4B23CA8A133811610047A1D9 /* TestPlugin.bundle */, ); name = Products; sourceTree = ""; }; 4B3D23801337FBC800DD29B8 /* Supporting Files */ = { @@ -1292,11 +1292,11 @@ dependencies = ( 4B23CA91133811BA0047A1D9 /* PBXTargetDependency */, ); name = TestPlugin; productName = TestPlugin; - productReference = 4B23CA8A133811610047A1D9 /* TestPlugin.impl */; + productReference = 4B23CA8A133811610047A1D9 /* TestPlugin.bundle */; productType = "com.apple.product-type.library.dynamic"; }; 4B3D23751337FBC800DD29B8 /* ObjFW */ = { isa = PBXNativeTarget; buildConfigurationList = 4B3D23861337FBC800DD29B8 /* Build configuration list for PBXNativeTarget "ObjFW" */; @@ -1340,11 +1340,11 @@ /* Begin PBXProject section */ 08FB7793FE84155DC02AAC07 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0420; + LastUpgradeCheck = 0430; }; buildConfigurationList = 1DEB919308733D9F0010E9CD /* Build configuration list for PBXProject "ObjFW" */; compatibilityVersion = "Xcode 3.2"; developmentRegion = English; hasScannedForEncodings = 1; @@ -1671,11 +1671,11 @@ 4B23CA8C133811610047A1D9 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { DYLIB_COMPATIBILITY_VERSION = ""; DYLIB_CURRENT_VERSION = ""; - EXECUTABLE_EXTENSION = impl; + EXECUTABLE_EXTENSION = bundle; INSTALL_PATH = ""; MACH_O_TYPE = mh_bundle; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -1683,11 +1683,11 @@ 4B23CA8D133811610047A1D9 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { DYLIB_COMPATIBILITY_VERSION = ""; DYLIB_CURRENT_VERSION = ""; - EXECUTABLE_EXTENSION = impl; + EXECUTABLE_EXTENSION = bundle; INSTALL_PATH = ""; MACH_O_TYPE = mh_bundle; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; Index: buildsys.mk.in ================================================================== --- buildsys.mk.in +++ buildsys.mk.in @@ -102,19 +102,21 @@ MO_FILES = ${LOCALES:.po=.mo} .SILENT: .SUFFIXES: .SUFFIXES: .beam .c .c.dep .cc .cc.dep .class .cxx .cxx.dep .d .erl .lib.o .java .mo .m .m.dep .mm .mm.dep .o .plugin.o .po .py .pyc .rc .S .S.dep .xpm -.PHONY: all subdirs pre-depend depend install install-extra uninstall uninstall-extra clean distclean locales +.PHONY: all subdirs pre-depend depend install install-extra uninstall uninstall-extra clean distclean locales ${SUBDIRS} all: ${MAKE} ${MFLAGS} subdirs ${MAKE} ${MFLAGS} depend ${MAKE} ${STATIC_LIB} ${STATIC_LIB_NOINST} ${STATIC_PIC_LIB} ${STATIC_PIC_LIB_NOINST} ${SHARED_LIB} ${SHARED_LIB_NOINST} ${PLUGIN} ${PLUGIN_NOINST} ${PROG} ${PROG_NOINST} ${JARFILE} locales -subdirs: - for i in ${SUBDIRS}; do \ +subdirs: ${SUBDIRS} + +${SUBDIRS}: + for i in $@; do \ ${DIR_ENTER}; \ ${MAKE} ${MFLAGS} || exit $$?; \ ${DIR_LEAVE}; \ done Index: configure.ac ================================================================== --- configure.ac +++ configure.ac @@ -635,9 +635,8 @@ dnl We don't call AC_PROG_CPP, but only AC_PROG_OBJCPP and set CPP to OBJCPP dnl and add OBJCPPFLAGS to CPPFLAGS, thus we need to AC_SUBST these ourself. AC_SUBST(CPP) AC_SUBST(CPPFLAGS) -AC_SUBST(PACKAGE, ObjFW) AC_CONFIG_FILES([buildsys.mk extra.mk utils/objfw-config Info.plist]) AC_CONFIG_HEADERS([config.h src/objfw-defs.h]) AC_OUTPUT Index: src/OFFile.m ================================================================== --- src/OFFile.m +++ src/OFFile.m @@ -159,17 +159,10 @@ @interface OFFileSingleton: OFFile @end @implementation OFFile -+ (void)load -{ - of_stdin = [[OFFileSingleton alloc] initWithFileDescriptor: 0]; - of_stdout = [[OFFileSingleton alloc] initWithFileDescriptor: 1]; - of_stderr = [[OFFileSingleton alloc] initWithFileDescriptor: 2]; -} - #if defined(OF_THREADS) && !defined(_WIN32) + (void)initialize { if (self != [OFFile class]) return; @@ -786,10 +779,17 @@ [super dealloc]; } @end @implementation OFFileSingleton ++ (void)load +{ + of_stdin = [[OFFileSingleton alloc] initWithFileDescriptor: 0]; + of_stdout = [[OFFileSingleton alloc] initWithFileDescriptor: 1]; + of_stderr = [[OFFileSingleton alloc] initWithFileDescriptor: 2]; +} + - initWithPath: (OFString*)path mode: (OFString*)mode { Class c = isa; [self release]; Index: src/OFNumber.h ================================================================== --- src/OFNumber.h +++ src/OFNumber.h @@ -818,5 +818,10 @@ * \param num The number to divide by * \return The remainder of a division by the specified number */ - (OFNumber*)remainderOfDivisionWithNumber: (OFNumber*)num; @end + +#ifndef NSINTEGER_DEFINED +/* Required for number literals to work */ +@compatibility_alias NSNumber OFNumber; +#endif Index: src/OFObject.h ================================================================== --- src/OFObject.h +++ src/OFObject.h @@ -30,10 +30,17 @@ #ifdef OF_OBJFW_RUNTIME # import "runtime.h" #else # import #endif + +#if defined(__has_feature) && __has_feature(objc_bool) +# undef YES +# define YES __objc_yes +# undef NO +# define NO __objc_no +#endif #define OF_RETAIN_COUNT_MAX UINT_MAX #define OF_INVALID_INDEX SIZE_MAX /** Index: src/OFString.h ================================================================== --- src/OFString.h +++ src/OFString.h @@ -856,5 +856,10 @@ #import "OFString+JSONValue.h" #import "OFString+Serialization.h" #import "OFString+URLEncoding.h" #import "OFString+XMLEscaping.h" #import "OFString+XMLUnescaping.h" + +#ifndef NSINTEGER_DEFINED +/* Required for string boxing literals to work */ +@compatibility_alias NSString OFString; +#endif