ObjFW  Top-level Files of 32ad39007a654e8ff23b29b6e84ea2439b404f2d0648a61cacdf8a34ed0b01fc

Files in the top-level directory of check-in 32ad39007a654e8ff23b29b6e84ea2439b404f2d0648a61cacdf8a34ed0b01fc


ObjFW is a portable, lightweight framework for the Objective C language. It enables you to write an application in Objective C that will run on any platform supported by ObjFW without having to worry about differences between operating systems or various frameworks that you would otherwise need if you want to be portable.

See https://webkeks.org/objfw for more information.

Installation

To install ObjFW, just run the following commands:

$ ./configure
$ make
$ make install

In case you checked out ObjFW from the Git repository, you need to run the following command first:

$ ./autogen.sh

Building as a Mac OS X framework

It is also possible to build ObjFW as a Mac OS X framework. To do so, just execute xcodebuild -target ObjFW in the root directory of ObjFW or open the .xcodeproj in Xcode and choose Build -> Build from the menu. Copy the resulting ObjFW.framework to /Library/Frameworks and you are done.

Using the Mac OS X framework in Xcode

To use the Mac OS X framework in Xcode, you need to add the .framework to your project and add the following flags to Other C Flags:

-fconstant-string-class=OFConstantString -fno-constant-cfstrings

Optionally, if you want to use blocks, you also need to add:

-fblocks

Building with LLVM/Clang for ARM

When using LLVM/Clang to compile for ARM, it is necessary to specify extra flags in order to enable ARM EHABI compliant exceptions. To do so, set OBJCFLAGS to this:

-O2 -g -mllvm -arm-enable-ehabi -mllvm -arm-enable-ehabi-descriptors

If you are getting errors from the assembler about instructions being unavailable for the architecture, you need to set OBJC to this:

clang -arch armv6 -mfpu=vfp

Using these flags, ObjFW was compiled successfully for Android and the Raspberry Pi.

Bugs and feature requests

If you find any bugs or have feature requests, feel free to send a mail to js@webkeks.org!