Index: README.md ================================================================== --- README.md +++ README.md @@ -5,35 +5,33 @@ want to be portable. See https://objfw.nil.im/ for more information. -Table of Contents -================= +

Table of Contents

* [Installation](#installation) * [macOS and iOS](#macos-and-ios) - * [Building as a framework](#building-as-a-framework) - * [Using the macOS or iOS framework in Xcode](#using-the-macos-or-ios-framework-in-xcode) + * [Building as a framework](#building-framework) + * [Using the macOS or iOS framework in Xcode](#framework-in-xcode) * [Broken Xcode versions](#broken-xcode-versions) * [Windows](#windows) * [Getting MSYS2](#getting-msys2) * [Updating MSYS2](#updating-msys2) - * [Installing MinGW-w64 using MSYS2](#installing-mingw-w64-using-msys2) - * [Getting, building and installing ObjFW](#getting-building-and-installing-objfw) - * [Nintendo DS, Nintendo 3DS and Wii](#nintendo-ds-nintendo-3ds-and-wii) + * [Installing MinGW-w64 using MSYS2](#installing-mingw-w64) + * [Getting, building and installing ObjFW](#steps-windows) + * [Nintendo DS, Nintendo 3DS and Wii](#nintendo) * [Nintendo DS](#nintendo-ds) * [Nintendo 3DS](#nintendo-3ds) * [Wii](#wii) * [Amiga](#amiga) - * [Writing your first application with ObjFW](#writing-your-first-application-with-objfw) - * [Bugs and feature requests](#bugs-and-feature-requests) + * [Writing your first application with ObjFW](#first-app) + * [Bugs and feature requests](#bugs) * [Commercial use](#commercial-use) -Installation -============ +

Installation

To install ObjFW, just run the following commands: $ ./configure $ make @@ -42,14 +40,13 @@ In case you checked out ObjFW from the Git repository, you need to run the following command first: $ ./autogen.sh -macOS and iOS -------------- +

macOS and iOS

-### Building as a framework +

Building as a framework

When building for macOS or iOS, everything is built as a `.framework` by default if `--disable-shared` has not been specified to `configure`. To build for iOS, use something like this: @@ -66,18 +63,18 @@ $ export OBJC="$clang -arch i386 -arch x86_64" $ export OBJCPP="$clang -arch i386 -E" $ export IPHONEOS_DEPLOYMENT_TARGET="9.0" $ ./configure --prefix=/usr/local/iossim --host=i386-apple-darwin -### Using the macOS or iOS framework in Xcode +

Using the macOS or iOS framework in Xcode

To use the macOS framework in Xcode, you need to add the `.framework`s to your project and add the following flags to `Other C Flags`: -fconstant-string-class=OFConstantString -fno-constant-cfstrings -### Broken Xcode versions +

Broken Xcode versions

Some versions of Xcode shipped with a version of Clang that ignores `-fconstant-string-class=OFConstantString`. This will manifest in an error like this: @@ -96,30 +93,30 @@ You can get older versions of Xcode [here](https://developer.apple.com/download) by clicking on "More" in the top-right corner. -Windows -------- +

Windows

Windows is only officially supported when following these instructions, as there are many MinGW versions that behave slightly differently and often cause problems. -### Getting MSYS2 +

Getting MSYS2

The first thing to install is [MSYS2](https://www.msys2.org) to provide a basic UNIX-like environment for Windows. Unfortunately, the binaries are not signed and there is no way to verify their integrity, so only download this from a trusted connection. Everything else you will download using MSYS2 later will be cryptographically signed. -### Updating MSYS2 +

Updating MSYS2

The first thing to do is updating MSYS2. It is important to update things in a certain order, as `pacman` (the package manager MSYS2 uses, which comes - from ArchLinux) does not know about a few things that are special on Windows. + from Arch Linux) does not know about a few things that are special on + Windows. First, update the mirror list: $ pacman -Sy pacman-mirrors @@ -134,11 +131,11 @@ Now you have a fully updated MSYS2. Whenever you want to update MSYS2, proceed in this order. Notice that the first `pacman` invocation includes `-y` to actually fetch a new list of packages. -### Installing MinGW-w64 using MSYS2 +

Installing MinGW-w64 using MSYS2

Now it's time to install MinGW-w64. If you want to build 32 bit binaries: $ pacman -S mingw-w64-i686-clang mingw-w64-i686-gcc-objc @@ -153,11 +150,11 @@ Finally, install a few more things needed to build ObjFW: $ pacman -S autoconf automake git make -### Getting, building and installing ObjFW +

Getting, building and installing ObjFW

Start the MinGW-w64 Win32 or Win64 Shell (depening on what version you want to build - do *not* use the MSYS2 Shell shortcut, but use the MinGW-w64 Win32 or Win64 Shell shortcut instead!) and check out ObjFW: @@ -169,44 +166,41 @@ $ ./autogen.sh && ./configure && make -j16 install If everything was successfully, you can now build projects using ObjFW for Windows using the normal `objfw-compile` and friends. -Nintendo DS, Nintendo 3DS and Wii ---------------------------------- +

Nintendo DS, Nintendo 3DS and Wii

Download and install [devkitPro](https://devkitpro.org/wiki/Getting_Started). -### Nintendo DS +

Nintendo DS

Follow the normal process, but instead of `./configure` run: $ ./configure --host=arm-none-eabi --with-nds -### Nintendo 3DS +

Nintendo 3DS

Follow the normal process, but instead of `./configure` run: $ ./configure --host=arm-none-eabi --with-3ds -### Wii +

Wii

Follow the normal process, but instead of `./configure` run: $ ./configure --host=powerpc-eabi --with-wii -Amiga ------ +

Amiga

Install [amiga-gcc](https://github.com/bebbo/amiga-gcc). Then follow the normal process, but instead of `./configure` run: $ ./configure --host=m68k-amigaos -Writing your first application with ObjFW -========================================= +

Writing your first application with ObjFW

To create your first, empty application, you can use `objfw-new`: $ objfw-new app MyFirstApp @@ -224,19 +218,17 @@ `objfw-compile` is a tool that allows building applications and libraries using ObjFW without needing a full-blown build system. If you want to use your own build system, you can get the necessary flags from `objfw-config`. -Bugs and feature requests -========================= +

Bugs and feature requests

If you find any bugs or have feature requests, feel free to send a mail to js@nil.im! -Commercial use -============== +

Commercial use

If for whatever reason neither the terms of the QPL nor those of the GPL work for you, a proprietary license for ObjFW including support is available upon request. Just write a mail to js@nil.im and we can find a reasonable solution for both parties.