summaryrefslogtreecommitdiff
path: root/cmake/Toolchain-AmigaOS.cmake
diff options
context:
space:
mode:
authorinfo@mode42.com <info@mode42.com>2026-08-08 03:54:55 +0000
committerinfo@mode42.com <info@mode42.com>2026-08-08 03:54:55 +0000
commit20cb29c2f8c5c87bc590896854a20b1473ceb358 (patch)
tree2857f41513a56ad41af97b57362639298aa7f033 /cmake/Toolchain-AmigaOS.cmake
#2
Diffstat (limited to 'cmake/Toolchain-AmigaOS.cmake')
-rw-r--r--cmake/Toolchain-AmigaOS.cmake39
1 files changed, 39 insertions, 0 deletions
diff --git a/cmake/Toolchain-AmigaOS.cmake b/cmake/Toolchain-AmigaOS.cmake
new file mode 100644
index 0000000..ea51fe3
--- /dev/null
+++ b/cmake/Toolchain-AmigaOS.cmake
@@ -0,0 +1,39 @@
+# AmigaOS 3.9+ cross-compilation toolchain (bebbo-gcc / m68k-amigaos-gcc).
+#
+# Usage:
+# cmake -B build-amiga \
+# -DCMAKE_TOOLCHAIN_FILE=cmake/Toolchain-AmigaOS.cmake \
+# -DAMIGA_SDK_PATH=/opt/amiga
+#
+# AMIGA_SDK_PATH may also be set via environment variable or defaults to
+# /opt/amiga when that prefix exists. See docs/PLATFORMS.md.
+
+set(CMAKE_SYSTEM_NAME AmigaOS)
+set(CMAKE_SYSTEM_PROCESSOR m68k)
+
+if(NOT AMIGA_SDK_PATH)
+ if(DEFINED ENV{AMIGA_SDK_PATH} AND NOT "$ENV{AMIGA_SDK_PATH}" STREQUAL "")
+ set(AMIGA_SDK_PATH "$ENV{AMIGA_SDK_PATH}")
+ elseif(EXISTS "/opt/amiga/bin/m68k-amigaos-gcc")
+ set(AMIGA_SDK_PATH "/opt/amiga")
+ endif()
+endif()
+
+if(NOT AMIGA_SDK_PATH OR NOT EXISTS "${AMIGA_SDK_PATH}/bin/m68k-amigaos-gcc")
+ message(FATAL_ERROR
+ "Set AMIGA_SDK_PATH to your AmigaOS cross-compiler prefix, e.g.\n"
+ " cmake -DAMIGA_SDK_PATH=/opt/amiga -DCMAKE_TOOLCHAIN_FILE=...\n"
+ "or export AMIGA_SDK_PATH=/opt/amiga")
+endif()
+
+set(AMIGA_SDK_PATH "${AMIGA_SDK_PATH}" CACHE PATH
+ "AmigaOS cross-compiler prefix (bebbo-gcc)" FORCE)
+
+set(CMAKE_C_COMPILER "${AMIGA_SDK_PATH}/bin/m68k-amigaos-gcc")
+set(CMAKE_AR "${AMIGA_SDK_PATH}/bin/m68k-amigaos-ar")
+set(CMAKE_RANLIB "${AMIGA_SDK_PATH}/bin/m68k-amigaos-ranlib")
+
+set(CMAKE_FIND_ROOT_PATH "${AMIGA_SDK_PATH}")
+set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
+set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
+set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
git clone -b <branch> https://cgit.mode42.com/<repo>.git
git clone -b <branch> git://cgit.mode42.com/<repo>.git

info@mode42.com