option(NEWLOCALE_NEEDS_FREELOCALE "Work around newlocale bugs in old FreeBSD by calling freelocale" OFF)
option(BUILD_APPS "Default to building apps" ON)
-if (${CMAKE_SYSTEM_NAME} STREQUAL "AmigaOS")
- set(AMIGA ON)
+if (AMIGA)
set(DISABLE_THREAD_LOCAL_STORAGE ON)
set(ENABLE_THREADING OFF)
set(BUILD_SHARED_LIBS OFF)
if ($ENV{CROSS_PFX} STREQUAL "m68k-amigaos")
set(AMIGA_M68K ON)
set(BUILD_TESTING OFF)
- message(STATUS "Building for Motorola 68k AmigaOS")
if (${M68K_CRT} STREQUAL "newlib")
set(NEWLIB ON)
elseif(${M68K_CRT} STREQUAL "clib2")
else()
set(NEWLIB ON)
endif()
+ message(STATUS "Building for Motorola 68k AmigaOS using CRT: ${M68K_CRT}")
elseif ($ENV{CROSS_PFX} STREQUAL "ppc-amigaos")
set(AMIGA_PPC ON)
message(STATUS "Building for PowerPC AmigaOS")
+ elseif($ENV{CROSS_PFX} STREQUAL "ppc-morphos")
+ set(MORPHOS ON)
+ if (NOIXEMUL)
+ message(STATUS "Building for PowerPC MorphOS without ixemul")
+ set(DISABLE_WERROR ON)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -noixemul")
+ else()
+ message(STATUS "Building for PowerPC MorphOS with ixemul")
+ endif()
else()
message(FATAL_ERROR "Unsupported AmigaOS target")
endif()
5. [Testing](#testing)
6. [Building with `vcpkg`](#buildvcpkg)
7. [Building for Android](#android)
-8. [Building for Commodore Amiga](#amiga)
+8. [Building for Commodore Amiga or MorphOS](#amiga)
9. [Linking to libjson-c](#linking)
10. [Using json-c](#using)
```
<a name="amiga"></a>
-Building for Commodore Amiga
+Building for Commodore Amiga or MorphOS
----------------------
-Building for Commodore Amiga is supported for both Motorola 68k (AmigaOS 3) and PowerPC (AmigaOS 4) architectures. You can set up a cross compiler locally, however it is much easier to use the already preconfigured Amiga development environment wtthin a Docker container.
+Building for Commodore Amiga is supported for both Motorola 68k (AmigaOS 3) and PowerPC (AmigaOS 4) architectures. MorphOS on compatible PowerPC hardware is also supported. You can set up a cross compiler locally, however it is much easier to use the already preconfigured Amiga development environment wtthin a Docker container.
Install Docker on your machine if you don't already have it. You can download Docker Desktop for Windows/macOS/Linux [here](https://www.docker.com/products/docker-desktop/).
libjson-c.a will get created in the build directory.
+### To build for PowerPC MorphOS:
+
+```
+mkdir build
+docker run --rm \
+ -v ${PWD}:/work \
+ -e USER=$( id -u ) -e GROUP=$( id -g ) \
+ -it sacredbanana/amiga-compiler:ppc-morphos bash
+cd build
+cmake -DNOIXEMUL=1 ..
+make
+```
+
+If you are making an application that absolutely requires ixemul, then remove the `-DNOIXEMUL=1`.
+
+libjson-c.a will get created in the build directory.
+
<a name="linking"></a>
Linking to `libjson-c`
----------------------