Index: README.md
==================================================================
--- README.md
+++ README.md
@@ -92,13 +92,14 @@
macOS (Homebrew) | `brew install objfw`
macOS (pkgsrc) | `cd $PKGSRCDIR/devel/objfw && make install`
NetBSD | `cd /usr/pkgsrc/devel/objfw && make install`
OpenBSD | `doas pkg_add objfw`
OpenIndiana | `sudo pkg install developer/objfw`
- Windows (MSYS2/MINGW32) | `pacman -S mingw-w64-i686-objfw`
Windows (MSYS2/CLANG64) | `pacman -S mingw-w64-clang-x86_64-objfw`
Windows (MSYS2/CLANGARM64) | `pacman -S mingw-w64-clang-aarch64-objfw`
+ Windows (MSYS2/UCRT64) | `pacman -S mingw-w64-ucrt-x86_64-objfw`
+ Windows (MSYS2/MINGW32) | `pacman -S mingw-w64-i686-objfw`
If your operating system is not listed, you can
build ObjFW from source.
@@ -134,22 +135,22 @@
Fossil
Clone the Fossil repository like this:
- $ fossil clone https://objfw.nil.im
+ fossil clone https://objfw.nil.im
You can then use Fossil's web interface to browse the timeline, tickets,
wiki pages, etc.:
- $ cd objfw
- $ fossil ui
+ cd objfw
+ fossil ui
In order to verify the signature of the currently checked out checkin, you
can use:
- $ fossil artifact current | gpg --verify
+ fossil artifact current | gpg --verify
Please note that not all checkins are signed, as the signing key only resides
on trusted systems. This means that checkins I perform on e.g. Windows are
unsigned. However, usually it should not take long until there is another
signed checkin. Alternatively, you can go back until the last signed checkin
@@ -157,28 +158,28 @@
Git
To clone the Git repository, use the following:
- $ git clone https://github.com/ObjFW/ObjFW
+ git clone https://github.com/ObjFW/ObjFW
Git commits are not signed, so if you want to check the signature of an
individual commit, branch head or tag, please use Fossil.
Building from source
To build ObjFW from source and install it, just run the following commands:
- $ ./configure
- $ make
- $ make check
- $ sudo make install
+ ./configure
+ make
+ make check
+ sudo make install
In case you checked out ObjFW from the Fossil or Git repository, you need to
run the following command first:
- $ ./autogen.sh
+ ./autogen.sh
macOS and iOS
Building as a framework
@@ -190,23 +191,23 @@
regular instructions above.
To build for iOS, follow the regular instructions, but instead of
`./configure` do something like this:
- $ clang="xcrun --sdk iphoneos clang"
- $ export OBJC="$clang -arch arm64e -arch arm64"
- $ export OBJCPP="$clang -arch arm64e -E"
- $ export IPHONEOS_DEPLOYMENT_TARGET="10.0"
- $ ./configure --prefix=/usr/local/ios --host=arm64-apple-darwin
+ clang="xcrun --sdk iphoneos clang"
+ export OBJC="$clang -arch arm64e -arch arm64"
+ export OBJCPP="$clang -arch arm64e -E"
+ export IPHONEOS_DEPLOYMENT_TARGET="10.0"
+ ./configure --prefix=/usr/local/ios --host=arm64-apple-darwin
To build for the iOS simulator, follow the regular instructions, but instead
of `./configure` use something like this:
- $ clang="xcrun --sdk iphonesimulator clang"
- $ export OBJC="$clang -arch $(uname -m)"
- $ export IPHONEOS_DEPLOYMENT_TARGET="10.0"
- $ ./configure --prefix=/usr/local/iossim --host=$(uname -m)-apple-darwin
+ clang="xcrun --sdk iphonesimulator clang"
+ export OBJC="$clang -arch $(uname -m)"
+ export IPHONEOS_DEPLOYMENT_TARGET="10.0"
+ ./configure --prefix=/usr/local/iossim --host=$(uname -m)-apple-darwin
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`:
@@ -258,31 +259,41 @@
target Windows 10 and newer, the CLANG64 and CLANG32 environments are the
recommended ones.
For CLANG64, use:
- $ pacman -Syu mingw-w64-clang-x86_64-clang mingw-w64-clang-x86_64-fossil
+ pacman -Syu mingw-w64-clang-x86_64-clang \
+ mingw-w64-clang-x86_64-fossil \
+ mingw-w64-clang-x86_64-openssl
For CLANG32, use:
- $ pacman -Syu mingw-w64-clang-i686-clang mingw-w64-clang-i686-fossil
+ pacman -Syu mingw-w64-clang-i686-clang \
+ mingw-w64-clang-i686-fossil \
+ mingw-w64-clang-i686-openssl
For CLANGARM64, use (you need to use Fossil via another environment):
- $ pacman -Syu mingw-w64-clang-aarch64-clang
+ pacman -Syu mingw-w64-clang-aarch64-clang mingw-w64-clang-aarch64-openssl
For MINGW64, use:
- $ pacman -Syu mingw-w64-x86_64-clang mingw-w64-x86_64-fossil
+ pacman -Syu mingw-w64-x86_64-clang \
+ mingw-w64-x86_64-fossil \
+ mingw-w64-x86_64-openssl
For MINGW32, use:
- $ pacman -Syu mingw-w64-i686-clang mingw-w64-i686-fossil
+ pacman -Syu mingw-w64-i686-clang \
+ mingw-w64-i686-fossil \
+ mingw-w64-i686-openssl
For UCRT64, use:
- $ pacman -Syu mingw-w64-ucrt-x86_64-clang mingw-w64-ucrt-x86_64-fossil
+ pacman -Syu mingw-w64-ucrt-x86_64-clang \
+ mingw-w64-ucrt-x86_64-fossil \
+ mingw-w64-ucrt-x86_64-openssl
When using `pacman` to install the packages, `pacman` might tell you to close
the window. If it does so, close the window, restart MSYS2 and execute the
`pacman` command again.
@@ -290,23 +301,23 @@
created shortcuts for each of them in your start menu. Just make sure to use
the correct shortcut for the environment you want to use.
Finally, install a few more things that are common between all environments:
- $ pacman -S autoconf automake make
+ pacman -S autoconf automake make
Getting, building and installing ObjFW
Start the MSYS2 using the shortcut for the environment you want to use and
check out ObjFW:
- $ fossil clone https://objfw.nil.im
+ fossil clone https://objfw.nil.im
You can also download a release tarball if you want. Now `cd` to the newly
checked out repository and build and install it:
- $ ./autogen.sh && ./configure && make -j16 install
+ ./autogen.sh && ./configure && make -j16 install
If everything was successful, you can now build projects using ObjFW for
Windows using the normal `objfw-compile` and friends.
Nintendo DS, Nintendo 3DS and Wii
@@ -315,37 +326,37 @@
Nintendo DS
Follow the normal process, but instead of `./configure` run:
- $ ./configure --host=arm-none-eabi --with-nds
+ ./configure --host=arm-none-eabi --with-nds
Nintendo 3DS
Follow the normal process, but instead of `./configure` run:
- $ ./configure --host=arm-none-eabi --with-3ds
+ ./configure --host=arm-none-eabi --with-3ds
Wii
Follow the normal process, but instead of `./configure` run:
- $ ./configure --host=powerpc-eabi --with-wii
+ ./configure --host=powerpc-eabi --with-wii
Amiga
Install [amiga-gcc](https://github.com/bebbo/amiga-gcc). Then follow the
normal process, but instead of `./configure` run:
- $ ./configure --host=m68k-amigaos
+ ./configure --host=m68k-amigaos
Writing your first application with ObjFW
To create your first, empty application, you can use `objfw-new`:
- $ objfw-new --app MyFirstApp
+ objfw-new --app MyFirstApp
This creates a file `MyFirstApp.m`. The `-[applicationDidFinishLaunching:]`
method is called as soon as ObjFW finished all initialization. Use this as
the entry point to your own code. For example, you could add the following
line there to create a "Hello World":
@@ -352,11 +363,11 @@
[OFStdOut writeLine: @"Hello World!"];
You can compile your new app using `objfw-compile`:
- $ objfw-compile -o MyFirstApp MyFirstApp.m
+ objfw-compile -o MyFirstApp MyFirstApp.m
`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`.
@@ -369,11 +380,11 @@
In order to build the documentation yourself (necessary to have documentation
for trunk / master), you need to have [Doxygen](https://www.doxygen.nl)
installed. Once installed, you can build the documentation from the root
directory of the repository:
- $ make docs
+ make docs
Bugs and feature requests
If you find any bugs or have feature requests, please