diff --git a/.efrocachemap b/.efrocachemap
index 1a30a79c..b3087f56 100644
--- a/.efrocachemap
+++ b/.efrocachemap
@@ -3932,16 +3932,16 @@
"assets/build/windows/Win32/ucrtbased.dll": "https://files.ballistica.net/cache/ba1/b5/85/f8b6d0558ddb87267f34254b1450",
"assets/build/windows/Win32/vc_redist.x86.exe": "https://files.ballistica.net/cache/ba1/1c/e1/4a1a2eddda2f4aebd5f8b64ab08e",
"assets/build/windows/Win32/vcruntime140d.dll": "https://files.ballistica.net/cache/ba1/50/8d/bc2600ac9491f1b14d659709451f",
- "build/prefab/linux-server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/ac/96/c3b9934061393fe09cc90ff24b8d",
- "build/prefab/linux-server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/38/2b/5641b3b40846f74f232771ac0457",
- "build/prefab/linux/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/26/3b/ea7dd76e5cf6407dc7e20576f191",
- "build/prefab/linux/release/ballisticacore": "https://files.ballistica.net/cache/ba1/ed/2a/ba83223990092ce3a4eafd491c76",
- "build/prefab/mac-server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/fe/cd/67cb2a544dada857323d01ff6337",
- "build/prefab/mac-server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/fc/8c/2bbe38abf6f4e718f9af83d5b120",
- "build/prefab/mac/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/3d/9a/ed85e7110f940e24a3358fd01b39",
- "build/prefab/mac/release/ballisticacore": "https://files.ballistica.net/cache/ba1/f7/94/406ef9f6014282c1852190765faf",
- "build/prefab/windows-server/debug/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/ef/13/78a497e9a6055369470bf58d318e",
- "build/prefab/windows-server/release/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/10/42/5a50d344b3adb1441bbd14e244ed",
- "build/prefab/windows/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/3f/00/85d7560c026c81847d6591ab2c7f",
- "build/prefab/windows/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/80/fb/f7017b6091830f47194a37e5d63f"
+ "build/prefab/linux_x86_64/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/a7/be/d2d88cedd80218236cace5782990",
+ "build/prefab/linux_x86_64/release/ballisticacore": "https://files.ballistica.net/cache/ba1/be/9d/3dc0431a002e197163134a5dc881",
+ "build/prefab/linux_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/c0/d3/95030ef9319c3c8ed13e75254583",
+ "build/prefab/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/01/f7/170ffdbec21643a4a80e181023b3",
+ "build/prefab/mac_x86_64/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/9c/62/c7a083e3aa2f93005c5354678207",
+ "build/prefab/mac_x86_64/release/ballisticacore": "https://files.ballistica.net/cache/ba1/e5/c4/e5be2fa6ebe5ff81a99c3608a73d",
+ "build/prefab/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/48/0e/902db411f7298917a8d3b0b13ec2",
+ "build/prefab/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/fd/0f/8bc3a7dc565a0dd376f124d747d5",
+ "build/prefab/windows_x86/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/3c/78/d8cd734a0ccab60c2e0ea3a97370",
+ "build/prefab/windows_x86/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/2b/b7/c193aa65c8adf613f543036b8af4",
+ "build/prefab/windows_x86_server/debug/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/4c/37/68bc656f1f94994754301d0c742e",
+ "build/prefab/windows_x86_server/release/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/15/d1/db8211bd2df1e435dcb7f6823fc2"
}
\ No newline at end of file
diff --git a/.idea/dictionaries/ericf.xml b/.idea/dictionaries/ericf.xml
index 37848787..188136d2 100644
--- a/.idea/dictionaries/ericf.xml
+++ b/.idea/dictionaries/ericf.xml
@@ -349,6 +349,7 @@
cmds
cmembers
cmodel
+ cmpf
cnode
codecsmodule
codefilenames
@@ -2266,6 +2267,7 @@
winempty
winnergroup
winnergroups
+ winplat
winplt
winprj
winprune
diff --git a/Makefile b/Makefile
index 6d8b04e7..dfd5d3ed 100644
--- a/Makefile
+++ b/Makefile
@@ -151,293 +151,388 @@ prefab-server-release-build:
# Specific platform prefab targets:
-RUN_PREFAB_MAC_DEBUG = cd build/prefab/mac/debug && ./ballisticacore
+RUN_PREFAB_MAC_X86_64_DEBUG = cd build/prefab/mac_x86_64/debug \
+ && ./ballisticacore
-prefab-mac-debug: prefab-mac-debug-build
- @tools/pcommand ensure_prefab_platform mac
- @${RUN_PREFAB_MAC_DEBUG}
+RUN_PREFAB_MAC_ARM64_DEBUG = cd build/prefab/mac_arm64/debug \
+ && ./ballisticacore
-prefab-mac-debug-build: prereqs assets-cmake \
- build/prefab/mac/debug/ballisticacore
- @${STAGE_ASSETS} -cmake build/prefab/mac/debug
+prefab-mac-x86-64-debug: prefab-mac-x86-64-debug-build
+ @tools/pcommand ensure_prefab_platform mac_x86_64
+ @${RUN_PREFAB_MAC_X86_64_DEBUG}
-build/prefab/mac/debug/ballisticacore: .efrocachemap
+prefab-mac-arm64-debug: prefab-mac-arm64-debug-build
+ @tools/pcommand ensure_prefab_platform mac_arm64
+ @${RUN_PREFAB_MAC_ARM64_DEBUG}
+
+prefab-mac-x86-64-debug-build: prereqs assets-cmake \
+ build/prefab/mac_x86_64/debug/ballisticacore
+ @${STAGE_ASSETS} -cmake build/prefab/mac_x86_64/debug
+
+prefab-mac-arm64-debug-build: prereqs assets-cmake \
+ build/prefab/mac_arm64/debug/ballisticacore
+ @${STAGE_ASSETS} -cmake build/prefab/mac_arm64/debug
+
+build/prefab/mac_%/debug/ballisticacore: .efrocachemap
@tools/pcommand efrocache_get $@
-RUN_PREFAB_MAC_RELEASE = cd build/prefab/mac/release && ./ballisticacore
+RUN_PREFAB_MAC_X86_64_RELEASE = cd build/prefab/mac_x86_64/release \
+ && ./ballisticacore
-prefab-mac-release: prefab-mac-release-build
- @tools/pcommand ensure_prefab_platform mac
- @${RUN_PREFAB_MAC_RELEASE}
+RUN_PREFAB_MAC_ARM64_RELEASE = cd build/prefab/mac_arm64/release \
+ && ./ballisticacore
-prefab-mac-release-build: prereqs assets-cmake \
- build/prefab/mac/release/ballisticacore
- @${STAGE_ASSETS} -cmake build/prefab/mac/release
+prefab-mac-x86-64-release: prefab-mac-x86-64-release-build
+ @tools/pcommand ensure_prefab_platform mac_x86_64
+ @${RUN_PREFAB_MAC_X86_64_RELEASE}
-build/prefab/mac/release/ballisticacore: .efrocachemap
+prefab-mac-arm64-release: prefab-mac-arm64-release-build
+ @tools/pcommand ensure_prefab_platform mac_arm64
+ @${RUN_PREFAB_MAC_ARM64_RELEASE}
+
+prefab-mac-x86-64-release-build: prereqs assets-cmake \
+ build/prefab/mac_x86_64/release/ballisticacore
+ @${STAGE_ASSETS} -cmake build/prefab/mac_x86_64/release
+
+prefab-mac-arm64-release-build: prereqs assets-cmake \
+ build/prefab/mac_arm64/release/ballisticacore
+ @${STAGE_ASSETS} -cmake build/prefab/mac_arm64/release
+
+build/prefab/mac_%/release/ballisticacore: .efrocachemap
@tools/pcommand efrocache_get $@
-RUN_PREFAB_MAC_SERVER_DEBUG = cd build/prefab/mac-server/debug \
+RUN_PREFAB_MAC_X86_64_SERVER_DEBUG = cd build/prefab/mac_x86_64_server/debug \
&& ./ballisticacore_server
-prefab-mac-server-debug: prefab-mac-server-debug-build
- @tools/pcommand ensure_prefab_platform mac
- @${RUN_PREFAB_MAC_SERVER_DEBUG}
+RUN_PREFAB_MAC_ARM64_SERVER_DEBUG = cd build/prefab/mac_arm64_server/debug \
+ && ./ballisticacore_server
-prefab-mac-server-debug-build: prereqs assets-cmake \
- build/prefab/mac-server/debug/dist/ballisticacore_headless \
- build/prefab/mac-server/debug/ballisticacore_server \
- build/prefab/mac-server/debug/config_template.yaml \
- build/prefab/mac-server/debug/README.txt
- @${STAGE_ASSETS} -cmakeserver build/prefab/mac-server/debug/dist
+prefab-mac-x86-64-server-debug: prefab-mac-x86-64-server-debug-build
+ @tools/pcommand ensure_prefab_platform mac_x86_64
+ @${RUN_PREFAB_MAC_X86_64_SERVER_DEBUG}
-build/prefab/mac-server/debug/ballisticacore_server: \
+prefab-mac-arm64-server-debug: prefab-mac-arm64-server-debug-build
+ @tools/pcommand ensure_prefab_platform mac_arm64
+ @${RUN_PREFAB_MAC_ARM64_SERVER_DEBUG}
+
+prefab-mac-x86-64-server-debug-build: prereqs assets-cmake \
+ build/prefab/mac_x86_64_server/debug/dist/ballisticacore_headless \
+ build/prefab/mac_x86_64_server/debug/ballisticacore_server \
+ build/prefab/mac_x86_64_server/debug/config_template.yaml \
+ build/prefab/mac_x86_64_server/debug/README.txt
+ @${STAGE_ASSETS} -cmakeserver build/prefab/mac_x86_64_server/debug/dist
+
+prefab-mac-arm64-server-debug-build: prereqs assets-cmake \
+ build/prefab/mac_arm64_server/debug/dist/ballisticacore_headless \
+ build/prefab/mac_arm64_server/debug/ballisticacore_server \
+ build/prefab/mac_arm64_server/debug/config_template.yaml \
+ build/prefab/mac_arm64_server/debug/README.txt
+ @${STAGE_ASSETS} -cmakeserver build/prefab/mac_arm64_server/debug/dist
+
+build/prefab/mac_%_server/debug/ballisticacore_server: \
assets/src/server/ballisticacore_server.py tools/batools/pcommand.py
@tools/pcommand stage_server_file debug $< $@
-build/prefab/mac-server/debug/config_template.yaml: \
+build/prefab/mac_%_server/debug/config_template.yaml: \
assets/src/server/config_template.yaml \
tools/batools/build.py \
tools/batools/pcommand.py \
tools/bacommon/servermanager.py
@tools/pcommand stage_server_file debug $< $@
-build/prefab/mac-server/debug/README.txt: \
+build/prefab/mac_%_server/debug/README.txt: \
assets/src/server/README.txt
@cp $< $@
-build/prefab/mac-server/debug/dist/ballisticacore_headless: .efrocachemap
+build/prefab/mac_%_server/debug/dist/ballisticacore_headless: .efrocachemap
@tools/pcommand efrocache_get $@
-RUN_PREFAB_MAC_SERVER_RELEASE = cd build/prefab/mac-server/release \
- && ./ballisticacore_server
+RUN_PREFAB_MAC_X86_64_SERVER_RELEASE = cd \
+ build/prefab/mac_x86_64_server/release && ./ballisticacore_server
-prefab-mac-server-release: prefab-mac-server-release-build
- @tools/pcommand ensure_prefab_platform mac
- @${RUN_PREFAB_MAC_SERVER_RELEASE}
+RUN_PREFAB_MAC_ARM64_SERVER_RELEASE = cd \
+ build/prefab/mac_arm64_server/release && ./ballisticacore_server
-prefab-mac-server-release-build: prereqs assets-cmake \
- build/prefab/mac-server/release/dist/ballisticacore_headless \
- build/prefab/mac-server/release/ballisticacore_server \
- build/prefab/mac-server/release/config_template.yaml \
- build/prefab/mac-server/release/README.txt
- @${STAGE_ASSETS} -cmakeserver build/prefab/mac-server/release/dist
+prefab-mac-x86-64-server-release: prefab-mac-x86-64-server-release-build
+ @tools/pcommand ensure_prefab_platform mac_x86_64
+ @${RUN_PREFAB_MAC_X86_64_SERVER_RELEASE}
-build/prefab/mac-server/release/ballisticacore_server: \
+prefab-mac-arm64-server-release: prefab-mac-arm64-server-release-build
+ @tools/pcommand ensure_prefab_platform mac_arm64
+ @${RUN_PREFAB_MAC_ARM64_SERVER_RELEASE}
+
+prefab-mac-x86-64-server-release-build: prereqs assets-cmake \
+ build/prefab/mac_x86_64_server/release/dist/ballisticacore_headless \
+ build/prefab/mac_x86_64_server/release/ballisticacore_server \
+ build/prefab/mac_x86_64_server/release/config_template.yaml \
+ build/prefab/mac_x86_64_server/release/README.txt
+ @${STAGE_ASSETS} -cmakeserver build/prefab/mac_x86_64_server/release/dist
+
+prefab-mac-arm64-server-release-build: prereqs assets-cmake \
+ build/prefab/mac_arm64_server/release/dist/ballisticacore_headless \
+ build/prefab/mac_arm64_server/release/ballisticacore_server \
+ build/prefab/mac_arm64_server/release/config_template.yaml \
+ build/prefab/mac_arm64_server/release/README.txt
+ @${STAGE_ASSETS} -cmakeserver build/prefab/mac_arm64_server/release/dist
+
+build/prefab/mac_%_server/release/ballisticacore_server: \
assets/src/server/ballisticacore_server.py tools/batools/pcommand.py
@tools/pcommand stage_server_file release $< $@
-build/prefab/mac-server/release/config_template.yaml: \
+build/prefab/mac_%_server/release/config_template.yaml: \
assets/src/server/config_template.yaml \
tools/batools/build.py \
tools/batools/pcommand.py \
tools/bacommon/servermanager.py
@tools/pcommand stage_server_file release $< $@
-build/prefab/mac-server/release/README.txt: \
+build/prefab/mac_%_server/release/README.txt: \
assets/src/server/README.txt
@cp $< $@
-build/prefab/mac-server/release/dist/ballisticacore_headless: .efrocachemap
+build/prefab/mac_%_server/release/dist/ballisticacore_headless: .efrocachemap
@tools/pcommand efrocache_get $@
-RUN_PREFAB_LINUX_DEBUG = cd build/prefab/linux/debug && ./ballisticacore
+RUN_PREFAB_LINUX_X86_64_DEBUG = cd \
+ build/prefab/linux_x86_64/debug && ./ballisticacore
-prefab-linux-debug: prefab-linux-debug-build
- @tools/pcommand ensure_prefab_platform linux
- @${RUN_PREFAB_LINUX_DEBUG}
+RUN_PREFAB_LINUX_ARM64_DEBUG = cd \
+ build/prefab/linux_arm64/debug && ./ballisticacore
-prefab-linux-debug-build: prereqs assets-cmake \
- build/prefab/linux/debug/ballisticacore
- @${STAGE_ASSETS} -cmake build/prefab/linux/debug
+prefab-linux-x86-64-debug: prefab-linux-x86-64-debug-build
+ @tools/pcommand ensure_prefab_platform linux_x86_64
+ @${RUN_PREFAB_LINUX_X86_64_DEBUG}
-build/prefab/linux/debug/ballisticacore: .efrocachemap
+prefab-linux-arm64-debug: prefab-linux-arm64-debug-build
+ @tools/pcommand ensure_prefab_platform linux_arm64
+ @${RUN_PREFAB_LINUX_ARM64_DEBUG}
+
+prefab-linux-x86-64-debug-build: prereqs assets-cmake \
+ build/prefab/linux_x86_64/debug/ballisticacore
+ @${STAGE_ASSETS} -cmake build/prefab/linux_x86_64/debug
+
+prefab-linux-arm64-debug-build: prereqs assets-cmake \
+ build/prefab/linux_arm64/debug/ballisticacore
+ @${STAGE_ASSETS} -cmake build/prefab/linux_arm64/debug
+
+build/prefab/linux_%/debug/ballisticacore: .efrocachemap
@tools/pcommand efrocache_get $@
-RUN_PREFAB_LINUX_RELEASE = cd build/prefab/linux/release && ./ballisticacore
+RUN_PREFAB_LINUX_X86_64_RELEASE = cd \
+ build/prefab/linux_x86_64/release && ./ballisticacore
-prefab-linux-release: prefab-linux-release-build
- @tools/pcommand ensure_prefab_platform linux
- @${RUN_PREFAB_LINUX_RELEASE}
+RUN_PREFAB_LINUX_ARM64_RELEASE = cd \
+ build/prefab/linux_arm64/release && ./ballisticacore
-prefab-linux-release-build: prereqs assets-cmake \
- build/prefab/linux/release/ballisticacore
- @${STAGE_ASSETS} -cmake build/prefab/linux/release
+prefab-linux-x86-64-release: prefab-linux-x86-64-release-build
+ @tools/pcommand ensure_prefab_platform linux_x86_64
+ @${RUN_PREFAB_LINUX_X86_64_RELEASE}
-build/prefab/linux/release/ballisticacore: .efrocachemap
+prefab-linux-arm64-release: prefab-linux-arm64-release-build
+ @tools/pcommand ensure_prefab_platform linux_arm64
+ @${RUN_PREFAB_LINUX_ARM64_RELEASE}
+
+prefab-linux-x86-64-release-build: prereqs assets-cmake \
+ build/prefab/linux_x86_64/release/ballisticacore
+ @${STAGE_ASSETS} -cmake build/prefab/linux_x86_64/release
+
+prefab-linux-arm64-release-build: prereqs assets-cmake \
+ build/prefab/linux_arm64/release/ballisticacore
+ @${STAGE_ASSETS} -cmake build/prefab/linux_arm64/release
+
+build/prefab/linux_%/release/ballisticacore: .efrocachemap
@tools/pcommand efrocache_get $@
-RUN_PREFAB_LINUX_SERVER_DEBUG = cd build/prefab/linux-server/debug \
- && ./ballisticacore_server
+RUN_PREFAB_LINUX_X86_64_SERVER_DEBUG = cd \
+ build/prefab/linux_x86_64_server/debug && ./ballisticacore_server
-prefab-linux-server-debug: prefab-linux-server-debug-build
- @tools/pcommand ensure_prefab_platform linux
- @${RUN_PREFAB_LINUX_SERVER_DEBUG}
+RUN_PREFAB_LINUX_ARM64_SERVER_DEBUG = cd \
+ build/prefab/linux_arm64_server/debug && ./ballisticacore_server
-prefab-linux-server-debug-build: prereqs assets-cmake \
- build/prefab/linux-server/debug/dist/ballisticacore_headless \
- build/prefab/linux-server/debug/ballisticacore_server \
- build/prefab/linux-server/debug/config_template.yaml \
- build/prefab/linux-server/debug/README.txt
- @${STAGE_ASSETS} -cmakeserver build/prefab/linux-server/debug/dist
+prefab-linux-x86-64-server-debug: prefab-linux-x86-64-server-debug-build
+ @tools/pcommand ensure_prefab_platform linux_x86_64
+ @${RUN_PREFAB_LINUX_X86_64_SERVER_DEBUG}
-build/prefab/linux-server/debug/ballisticacore_server: \
+prefab-linux-arm64-server-debug: prefab-linux-arm64-server-debug-build
+ @tools/pcommand ensure_prefab_platform linux_arm64
+ @${RUN_PREFAB_LINUX_ARM64_SERVER_DEBUG}
+
+prefab-linux-x86-64-server-debug-build: prereqs assets-cmake \
+ build/prefab/linux_x86_64_server/debug/dist/ballisticacore_headless \
+ build/prefab/linux_x86_64_server/debug/ballisticacore_server \
+ build/prefab/linux_x86_64_server/debug/config_template.yaml \
+ build/prefab/linux_x86_64_server/debug/README.txt
+ @${STAGE_ASSETS} -cmakeserver build/prefab/linux_x86_64_server/debug/dist
+
+prefab-linux-arm64-server-debug-build: prereqs assets-cmake \
+ build/prefab/linux_arm64_server/debug/dist/ballisticacore_headless \
+ build/prefab/linux_arm64_server/debug/ballisticacore_server \
+ build/prefab/linux_arm64_server/debug/config_template.yaml \
+ build/prefab/linux_arm64_server/debug/README.txt
+ @${STAGE_ASSETS} -cmakeserver build/prefab/linux_arm64_server/debug/dist
+
+build/prefab/linux_%_server/debug/ballisticacore_server: \
assets/src/server/ballisticacore_server.py tools/batools/pcommand.py
@tools/pcommand stage_server_file debug $< $@
-build/prefab/linux-server/debug/config_template.yaml: \
+build/prefab/linux_%_server/debug/config_template.yaml: \
assets/src/server/config_template.yaml \
tools/batools/build.py \
tools/batools/pcommand.py \
tools/bacommon/servermanager.py
@tools/pcommand stage_server_file debug $< $@
-build/prefab/linux-server/debug/README.txt: \
+build/prefab/linux_%_server/debug/README.txt: \
assets/src/server/README.txt
@cp $< $@
-build/prefab/linux-server/debug/dist/ballisticacore_headless: .efrocachemap
+build/prefab/linux_%_server/debug/dist/ballisticacore_headless: .efrocachemap
@tools/pcommand efrocache_get $@
-RUN_PREFAB_LINUX_SERVER_RELEASE = cd build/prefab/linux-server/release \
- && ./ballisticacore_server
+RUN_PREFAB_LINUX_X86_64_SERVER_RELEASE = cd \
+ build/prefab/linux_x86_64_server/release && ./ballisticacore_server
-prefab-linux-server-release: prefab-linux-server-release-build
- @tools/pcommand ensure_prefab_platform linux
- @${RUN_PREFAB_LINUX_SERVER_RELEASE}
+RUN_PREFAB_LINUX_ARM64_SERVER_RELEASE = cd \
+ build/prefab/linux_arm64_server/release && ./ballisticacore_server
-prefab-linux-server-release-build: prereqs assets-cmake \
- build/prefab/linux-server/release/dist/ballisticacore_headless \
- build/prefab/linux-server/release/ballisticacore_server \
- build/prefab/linux-server/release/config_template.yaml \
- build/prefab/linux-server/release/README.txt
- @${STAGE_ASSETS} -cmakeserver build/prefab/linux-server/release/dist
+prefab-linux-x86-64-server-release: prefab-linux-x86-64-server-release-build
+ @tools/pcommand ensure_prefab_platform linux_x86_64
+ @${RUN_PREFAB_LINUX_X86_64_SERVER_RELEASE}
-build/prefab/linux-server/release/ballisticacore_server: \
+prefab-linux-x86-64-server-release-build: prereqs assets-cmake \
+ build/prefab/linux_x86_64_server/release/dist/ballisticacore_headless \
+ build/prefab/linux_x86_64_server/release/ballisticacore_server \
+ build/prefab/linux_x86_64_server/release/config_template.yaml \
+ build/prefab/linux_x86_64_server/release/README.txt
+ @${STAGE_ASSETS} -cmakeserver build/prefab/linux_x86_64_server/release/dist
+
+build/prefab/linux_%_server/release/ballisticacore_server: \
assets/src/server/ballisticacore_server.py tools/batools/pcommand.py
@tools/pcommand stage_server_file release $< $@
-build/prefab/linux-server/release/config_template.yaml: \
+build/prefab/linux_%_server/release/config_template.yaml: \
assets/src/server/config_template.yaml \
tools/batools/build.py \
tools/batools/pcommand.py \
tools/bacommon/servermanager.py
@tools/pcommand stage_server_file release $< $@
-build/prefab/linux-server/release/README.txt: \
+build/prefab/linux_%_server/release/README.txt: \
assets/src/server/README.txt
@cp $< $@
-build/prefab/linux-server/release/dist/ballisticacore_headless: .efrocachemap
+build/prefab/linux_%_server/release/dist/ballisticacore_headless: .efrocachemap
@tools/pcommand efrocache_get $@
-PREFAB_WINDOWS_PLATFORM = Win32
+WINPLAT_X86 = Win32
-RUN_PREFAB_WINDOWS_DEBUG = cd build/prefab/windows/debug && ./BallisticaCore.exe
+RUN_PREFAB_WINDOWS_X86_DEBUG = cd build/prefab/windows_x86/debug \
+ && ./BallisticaCore.exe
-prefab-windows-debug: prefab-windows-debug-build
- @tools/pcommand ensure_prefab_platform windows
- @{RUN_PREFAB_WINDOWS_DEBUG}
+prefab-windows-x86-debug: prefab-windows-x86-debug-build
+ @tools/pcommand ensure_prefab_platform windows_x86
+ @{RUN_PREFAB_WINDOWS_X86_DEBUG}
-prefab-windows-debug-build: prereqs assets-windows-${PREFAB_WINDOWS_PLATFORM} \
- build/prefab/windows/debug/BallisticaCore.exe
- @${STAGE_ASSETS} -win-${PREFAB_WINDOWS_PLATFORM}-Debug \
-build/prefab/windows/debug
+prefab-windows-x86-debug-build: prereqs assets-windows-${WINPLAT_X86} \
+ build/prefab/windows_x86/debug/BallisticaCore.exe
+ @${STAGE_ASSETS} -win-${WINPLAT_X86}-Debug \
+build/prefab/windows_x86/debug
-build/prefab/windows/debug/BallisticaCore.exe: .efrocachemap
+build/prefab/windows_x86/debug/BallisticaCore.exe: .efrocachemap
@tools/pcommand efrocache_get $@
-RUN_PREFAB_WINDOWS_RELEASE = cd build/prefab/windows/release \
+RUN_PREFAB_WINDOWS_X86_RELEASE = cd build/prefab/windows_x86/release \
&& ./BallisticaCore.exe
-prefab-windows-release: prefab-windows-release-build
- @tools/pcommand ensure_prefab_platform windows
- @{RUN_PREFAB_WINDOWS_RELEASE}
+prefab-windows-x86-release: prefab-windows-x86-release-build
+ @tools/pcommand ensure_prefab_platform windows_x86
+ @{RUN_PREFAB_WINDOWS_X86_RELEASE}
-prefab-windows-release-build: prereqs \
- assets-windows-${PREFAB_WINDOWS_PLATFORM} \
- build/prefab/windows/release/BallisticaCore.exe
- @${STAGE_ASSETS} -win-${PREFAB_WINDOWS_PLATFORM}-Release \
-build/prefab/windows/release
+prefab-windows-x86-release-build: prereqs \
+ assets-windows-${WINPLAT_X86} \
+ build/prefab/windows_x86/release/BallisticaCore.exe
+ @${STAGE_ASSETS} -win-${WINPLAT_X86}-Release \
+build/prefab/windows_x86/release
-build/prefab/windows/release/BallisticaCore.exe: .efrocachemap
+build/prefab/windows_x86/release/BallisticaCore.exe: .efrocachemap
@tools/pcommand efrocache_get $@
-RUN_PREFAB_WINDOWS_SERVER_DEBUG = cd build/prefab/windows-server/debug \
+RUN_PREFAB_WINDOWS_X86_SERVER_DEBUG = cd build/prefab/windows_x86_server/debug \
&& dist/python.exe ballisticacore_server.py
-prefab-windows-server-debug: prefab-windows-server-debug-build
- @tools/pcommand ensure_prefab_platform windows
- @{RUN_PREFAB_WINDOWS_SERVER_DEBUG}
+prefab-windows-x86-server-debug: prefab-windows-x86-server-debug-build
+ @tools/pcommand ensure_prefab_platform windows_x86
+ @{RUN_PREFAB_WINDOWS_X86_SERVER_DEBUG}
-prefab-windows-server-debug-build: prereqs \
- assets-windows-${PREFAB_WINDOWS_PLATFORM} \
- build/prefab/windows-server/debug/dist/ballisticacore_headless.exe \
- build/prefab/windows-server/debug/launch_ballisticacore_server.bat \
- build/prefab/windows-server/debug/ballisticacore_server.py \
- build/prefab/windows-server/debug/config_template.yaml \
- build/prefab/windows-server/debug/README.txt
- @${STAGE_ASSETS} -winserver-${PREFAB_WINDOWS_PLATFORM}-Debug \
- build/prefab/windows-server/debug/dist
+prefab-windows-x86-server-debug-build: prereqs \
+ assets-windows-${WINPLAT_X86} \
+ build/prefab/windows_x86_server/debug/dist/ballisticacore_headless.exe \
+ build/prefab/windows_x86_server/debug/launch_ballisticacore_server.bat \
+ build/prefab/windows_x86_server/debug/ballisticacore_server.py \
+ build/prefab/windows_x86_server/debug/config_template.yaml \
+ build/prefab/windows_x86_server/debug/README.txt
+ @${STAGE_ASSETS} -winserver-${WINPLAT_X86}-Debug \
+ build/prefab/windows_x86_server/debug/dist
-build/prefab/windows-server/debug/dist/ballisticacore_headless.exe: .efrocachemap
+build/prefab/windows_x86_server/debug/dist/ballisticacore_headless.exe: .efrocachemap
@tools/pcommand efrocache_get $@
-build/prefab/windows-server/debug/ballisticacore_server.py: \
+build/prefab/windows_%_server/debug/ballisticacore_server.py: \
assets/src/server/ballisticacore_server.py tools/batools/pcommand.py
@tools/pcommand stage_server_file debug $< $@
-build/prefab/windows-server/debug/launch_ballisticacore_server.bat: \
+build/prefab/windows_%_server/debug/launch_ballisticacore_server.bat: \
assets/src/server/launch_ballisticacore_server.bat tools/batools/pcommand.py
@tools/pcommand stage_server_file debug $< $@
-build/prefab/windows-server/debug/config_template.yaml: \
+build/prefab/windows_%_server/debug/config_template.yaml: \
assets/src/server/config_template.yaml \
tools/batools/build.py \
tools/batools/pcommand.py \
tools/bacommon/servermanager.py
@tools/pcommand stage_server_file debug $< $@
-build/prefab/windows-server/debug/README.txt: \
+build/prefab/windows_%_server/debug/README.txt: \
assets/src/server/README.txt
@cp $< $@
-RUN_PREFAB_WINDOWS_SERVER_RELEASE = cd build/prefab/windows-server/release \
- && dist/python.exe -O ballisticacore_server.py
+RUN_PREFAB_WINDOWS_X86_SERVER_RELEASE = cd \
+ build/prefab/windows_x86_server/release \
+ && dist/python.exe -O ballisticacore_server.py
-prefab-windows-server-release: prefab-windows-server-release-build
- @tools/pcommand ensure_prefab_platform windows
- @{RUN_PREFAB_WINDOWS_SERVER_RELEASE}
+prefab-windows-x86-server-release: prefab-windows-x86-server-release-build
+ @tools/pcommand ensure_prefab_platform windows_x86
+ @{RUN_PREFAB_WINDOWS_X86_SERVER_RELEASE}
-prefab-windows-server-release-build: prereqs \
- assets-windows-${PREFAB_WINDOWS_PLATFORM} \
- build/prefab/windows-server/release/dist/ballisticacore_headless.exe \
- build/prefab/windows-server/release/launch_ballisticacore_server.bat \
- build/prefab/windows-server/release/ballisticacore_server.py \
- build/prefab/windows-server/release/config_template.yaml \
- build/prefab/windows-server/release/README.txt
- @${STAGE_ASSETS} -winserver-${PREFAB_WINDOWS_PLATFORM}-Release \
- build/prefab/windows-server/release/dist
+prefab-windows-x86-server-release-build: prereqs \
+ assets-windows-${WINPLAT_X86} \
+ build/prefab/windows_x86_server/release/dist/ballisticacore_headless.exe \
+ build/prefab/windows_x86_server/release/launch_ballisticacore_server.bat \
+ build/prefab/windows_x86_server/release/ballisticacore_server.py \
+ build/prefab/windows_x86_server/release/config_template.yaml \
+ build/prefab/windows_x86_server/release/README.txt
+ @${STAGE_ASSETS} -winserver-${WINPLAT_X86}-Release \
+ build/prefab/windows_x86_server/release/dist
-build/prefab/windows-server/release/dist/ballisticacore_headless.exe: .efrocachemap
+build/prefab/windows_x86_server/release/dist/ballisticacore_headless.exe: .efrocachemap
@tools/pcommand efrocache_get $@
-build/prefab/windows-server/release/ballisticacore_server.py: \
+build/prefab/windows_%_server/release/ballisticacore_server.py: \
assets/src/server/ballisticacore_server.py tools/batools/pcommand.py
@tools/pcommand stage_server_file release $< $@
-build/prefab/windows-server/release/launch_ballisticacore_server.bat: \
+build/prefab/windows_%_server/release/launch_ballisticacore_server.bat: \
assets/src/server/launch_ballisticacore_server.bat tools/batools/pcommand.py
@tools/pcommand stage_server_file release $< $@
-build/prefab/windows-server/release/config_template.yaml: \
+build/prefab/windows_%_server/release/config_template.yaml: \
assets/src/server/config_template.yaml \
tools/batools/build.py \
tools/batools/pcommand.py \
tools/bacommon/servermanager.py
@tools/pcommand stage_server_file release $< $@
-build/prefab/windows-server/release/README.txt: \
+build/prefab/windows_%_server/release/README.txt: \
assets/src/server/README.txt
@cp $< $@
@@ -768,19 +863,12 @@ ENV_SRC = tools/pcommand tools/batools/build.py
@mkdir -p .cache
@touch .cache/checkenv
-# Tell make which of these targets don't represent files.
-.PHONY:
-
-
-################################################################################
-# #
-# Auxiliary #
-# #
-################################################################################
-
# CMake build-type lowercase
CM_BT_LC = $(shell echo $(CMAKE_BUILD_TYPE) | tr A-Z a-z)
# When using CLion, our cmake dir is root. Expose .clang-format there too.
ballisticacore-cmake/.clang-format: .clang-format
@cd ballisticacore-cmake && ln -sf ../.clang-format .
+
+# Tell make which of these targets don't represent files.
+.PHONY:
diff --git a/ballisticacore-cmake/CMakeLists.txt b/ballisticacore-cmake/CMakeLists.txt
index 967dbef0..4de0a9f7 100644
--- a/ballisticacore-cmake/CMakeLists.txt
+++ b/ballisticacore-cmake/CMakeLists.txt
@@ -186,5 +186,5 @@ target_include_directories(ballisticacore PRIVATE
# NOTE: seems we need to add 'dl' here for raspberry pi with a manually
# built Python 3.8. Might be able to remove later.
target_link_libraries(ballisticacore PRIVATE
- ballisticacore_private ode pthread ${Python_LIBRARIES}
+ ballisticacore_internal ode pthread ${Python_LIBRARIES}
${SDL2_LIBRARIES} ${EXTRA_LIBRARIES} dl)
diff --git a/tools/batools/build.py b/tools/batools/build.py
index f80e6d6c..2d09ee9b 100644
--- a/tools/batools/build.py
+++ b/tools/batools/build.py
@@ -455,19 +455,24 @@ def get_current_prefab_platform() -> str:
system = platform.system()
machine = platform.machine()
if system == 'Darwin':
- # Currently there's just x86_64 on mac;
- # will need to revisit when arm
- # cpus happen.
- return 'mac'
+ if machine == 'x86_64':
+ return 'mac_x86_64'
+ # TODO: add support for arm macs.
+ raise RuntimeError(f'make_prefab: unsupported mac machine type:'
+ f' {machine}.')
if system == 'Linux':
# If it looks like we're in Windows Subsystem for Linux,
# go with the Windows version.
if 'microsoft' in platform.uname().release.lower():
- return 'windows'
+ # TODO: add support for arm windows
+ if machine == 'x86_64':
+ return 'windows_x86'
+ raise RuntimeError(f'make_prefab: unsupported win machine type:'
+ f' {machine}.')
- # We currently only support x86_64 linux.
+ # TODO: add support for arm linux.
if machine == 'x86_64':
- return 'linux'
+ return 'linux_x86_64'
raise RuntimeError(f'make_prefab: unsupported linux machine type:'
f' {machine}.')
raise RuntimeError(f'make_prefab: unrecognized platform:'
diff --git a/tools/batools/pcommand.py b/tools/batools/pcommand.py
index 227f089a..722e1c85 100644
--- a/tools/batools/pcommand.py
+++ b/tools/batools/pcommand.py
@@ -34,6 +34,8 @@ def stage_server_file() -> None:
print(f'Building server file: {os.path.basename(outfilename)}')
+ os.makedirs(os.path.dirname(outfilename), exist_ok=True)
+
basename = os.path.basename(infilename)
if basename == 'config_template.yaml':
# Inject all available config values into the config file.
@@ -581,6 +583,9 @@ def make_prefab() -> None:
raise RuntimeError('Expected one argument')
target = batools.build.PrefabTarget(sys.argv[2])
platform = batools.build.get_current_prefab_platform()
+
+ # We use dashes instead of underscores in target names.
+ platform = platform.replace('_', '-')
try:
subprocess.run(['make', f'prefab-{platform}-{target.value}-build'],
check=True)