option(NEWLOCALE_NEEDS_FREELOCALE "Work around newlocale bugs in old FreeBSD by calling freelocale" OFF)
option(BUILD_APPS "Default to building apps" ON)
-if (UNIX OR MINGW OR CYGWIN OR AMIGA)
- list(APPEND CMAKE_REQUIRED_DEFINITIONS -D_GNU_SOURCE)
-endif()
-
if (${CMAKE_SYSTEM_NAME} STREQUAL "AmigaOS")
set(AMIGA ON)
set(DISABLE_THREAD_LOCAL_STORAGE ON)
set(ENABLE_THREADING OFF)
set(BUILD_SHARED_LIBS OFF)
set(BUILD_APPS OFF)
- list(APPEND CMAKE_REQUIRED_DEFINITIONS -D_GNU_SOURCE)
+ set(DISABLE_STATIC_FPIC ON)
if ($ENV{CROSS_PFX} STREQUAL "m68k-amigaos")
set(AMIGA_M68K ON)
set(BUILD_TESTING OFF)
message(STATUS "Building for ${CMAKE_SYSTEM_NAME}")
endif()
+if (UNIX OR MINGW OR CYGWIN OR AMIGA)
+ list(APPEND CMAKE_REQUIRED_DEFINITIONS -D_GNU_SOURCE)
+endif()
+
if (BUILD_SHARED_LIBS)
add_definitions(-D JSON_C_DLL)
endif()
list(APPEND CMAKE_REQUIRED_FLAGS /wd4996)
endif()
-if (NOT DISABLE_STATIC_FPIC AND NOT AMIGA)
+if (NOT DISABLE_STATIC_FPIC)
# Use '-fPIC'/'-fPIE' option.
# This will allow other libraries to statically link in libjson-c.a
# which in turn prevents crashes in downstream apps that may use
check_include_file("dlfcn.h" HAVE_DLFCN_H)
check_include_file("endian.h" HAVE_ENDIAN_H)
check_include_file("limits.h" HAVE_LIMITS_H)
-if (NOT AMIGA_M68K)
- check_include_file("locale.h" HAVE_LOCALE_H)
-endif()
+check_include_file("locale.h" HAVE_LOCALE_H)
check_include_file("memory.h" HAVE_MEMORY_H)
check_include_file(stdint.h HAVE_STDINT_H)
### To build for Motorola 68k Amiga:
```
-mkdir json-c-build
+mkdir build
docker run --rm \
-v ${PWD}:/work \
-e USER=$( id -u ) -e GROUP=$( id -g ) \
-it sacredbanana/amiga-compiler:m68k-amigaos bash
-cd json-c-build
+cd build
cmake -DM68K_CRT=newlib ..
make
```
-libjson-c.a will get created in the json-c-build directory.
+libjson-c.a will get created in the build directory.
You can change newlib to nix20, nix13 or clib2 if you would like to build the library suited for libnix or clib2 instead. Newlib is default.
### To build for PowerPC Amiga:
```
-mkdir json-c-build
+mkdir build
docker run --rm \
-v ${PWD}:/work \
-e USER=$( id -u ) -e GROUP=$( id -g ) \
-it sacredbanana/amiga-compiler:ppc-amigaos bash
-cd json-c-build
+cd build
cmake ..
make
```
-libjson-c.a will get created in the json-c-build directory.
+libjson-c.a will get created in the build directory.
<a name="linking"></a>
Linking to `libjson-c`