add build script and update readme

This commit is contained in:
cy384 2021-01-09 18:17:24 -05:00
parent 857343a83d
commit ef6fedb6a6
2 changed files with 49 additions and 16 deletions

View File

@ -4,7 +4,7 @@ ssheven
-------
A modern SSH client for Mac OS 7/8/9.
Project status: as of 0.8.0 ([see github releases](https://github.com/cy384/ssheven/releases)), a functional (but not completely secure) SSH client with color terminal emulation, able to login via key or password. See roadmap below for upcoming work (i.e., things that aren't done yet).
Project status: as of 0.8.0 ([see github releases](https://github.com/cy384/ssheven/releases)), a functional SSH client with color terminal emulation, able to login via key or password. See roadmap below for upcoming work (i.e., things that aren't done yet).
![ssheven screenshot](http://www.cy384.com/media/img/ssheven-0.6.1-screenshot.png)
@ -13,15 +13,14 @@ system requirements
* CPU: Any PPC processor, or at least a 25 MHz 68040/68LC040. Presently, all 68030 and 68020 CPUs are too slow.
* RAM: 2MB.
* Disk space: 1MB for the fat binary.
* System 7.5 or later, earlier System 7 versions might be possible with the Thread Manager extension installed.
* Open Transport networking required, version 1.1.1 or later recommended.
* System 7.5 or later, possibly earlier System 7 with the Thread Manager extension.
* Open Transport networking required, latest version possible highly recommended.
feature/bug-fix roadmap
-----------------------
0.9.0
* clean up network ops (write fn, read safety, don't allow send until connected, quit while connected mess)
* clean up preferences loading/saving, include key stuff, `known_hosts` reset option
* build/packaging scripts
* clean up network ops (write fn, read safety)
* fix preferences loading/saving, include key stuff, add `known_hosts` reset option
* general ssheven code cleanup
* text selection + copy
@ -35,7 +34,6 @@ known bugs
* initial key exchange is too slow for 68030 and 68020 systems (improve `mbedtls_mpi_exp_mod` and maybe the assembly BN code?)
* input latency feels high? related to draw speed/frequency? (maybe try to use an "offscreen graphics world" framebuffer? big refactor)
* receiving a large amount of data breaks the channel (e.g. `cat /dev/zero`)
* preference file loading has issues, especially with the key paths
* hook scrolling into vterm to reduce redraws/blanking
possible upcoming features
@ -50,15 +48,7 @@ Uses Retro68 and cmake.
Requires mbedtls, libssh2, and libvterm, see my (cy384's) ports of those libraries for details. Note that you need to build/install each for both platforms (m68k and PPC).
* `mkdir build && cd build`
* `cmake .. -DCMAKE_TOOLCHAIN_FILE=/your/path/to/Retro68-build/toolchain/powerpc-apple-macos/cmake/retroppc.toolchain.cmake` or `cmake .. -DCMAKE_TOOLCHAIN_FILE=/your/path/to/Retro68-build/toolchain/m68k-apple-macos/cmake/retro68.toolchain.cmake`
* `make`
Use Rez to build the fat binary: join the data fork from the PPC version and the resource fork from the m68k version.
I have some build scripts that I'll clean up and publish with the 1.0.0 release.
note to self: binary resources can be extracted in MPW via: `DeRez "Macintosh HD:whatever" -skip "'CODE'" -skip "'DATA'" -skip "'RELA'" -skip "'SIZE'"` etc., this is especially useful for icons
To build a fat binary, edit `build-ssheven.bash` with the path to your Retro68 build, and then run it.
license
-------

43
build-ssheven.bash Executable file
View File

@ -0,0 +1,43 @@
#!/bin/bash
set -e
# set this to the root of your Retro68 build folder, e.g. ~/src/Retro68-build/
RETRO68_PATH=change_me_please
echo "Set your Retro68 build path in this script and delete this line!" && exit
################################################################################
echo "building PPC..."
rm -rf build-ppc
mkdir build-ppc
cmake -S . -B build-ppc -DCMAKE_TOOLCHAIN_FILE=$RETRO68_PATH/toolchain/powerpc-apple-macos/cmake/retroppc.toolchain.cmake
cmake --build build-ppc
################################################################################
echo "building m68k..."
rm -rf build-m68k
mkdir build-m68k
cmake -S . -B build-m68k -DCMAKE_TOOLCHAIN_FILE=$RETRO68_PATH/toolchain/m68k-apple-macos/cmake/retro68.toolchain.cmake
cmake --build build-m68k
################################################################################
echo "Rez-ing it all together..."
rm -rf build-fat
mkdir build-fat
$RETRO68_PATH/toolchain/bin/Rez \
$RETRO68_PATH/toolchain/m68k-apple-macos/RIncludes/RetroPPCAPPL.r \
-I$RETRO68_PATH/toolchain/m68k-apple-macos/RIncludes \
-DCFRAG_NAME="\"ssheven\"" \
--copy build-m68k/ssheven.code.bin \
-o build-fat/ssheven-fat.bin \
--cc build-fat/ssheven-fat.dsk --cc build-fat/ssheven-fat.APPL --cc build-fat/%ssheven-fat.ad \
-t APPL -c SSH7 \
--data build-ppc/ssheven.pef build-ppc/ssheven.r.rsrc.bin
echo "done."