Last active
April 13, 2024 16:05
-
-
Save Potherca/866dfc72de9bfe0fc5627945446826a6 to your computer and use it in GitHub Desktop.
Steps to compile the Lynx web browser to Web Assembly
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Sources used in figuring this out: | |
# | |
# - https://developer.mozilla.org/en-US/docs/WebAssembly/C_to_wasm | |
# - https://emscripten.org/docs/compiling/Building-Projects.html#building-projects | |
# Set up Emscripten SDK | |
git clone https://github.com/emscripten-core/emsdk.git | |
cd emsdk/ | |
./emsdk install latest | |
./emsdk activate latest | |
source ./emsdk_env.sh | |
# Test compile so we know EMScripten works | |
cd - | |
wget https://raw.githubusercontent.com/emscripten-core/emscripten/master/src/shell_minimal.html | |
wget https://gist.githubusercontent.com/Potherca/89a4ce1f018c7d39a6fa0320673c8d57/raw/hello3.c | |
emcc -o hello3.html hello3.c -O3 -s WASM=1 --shell-file shell_minimal.html -s NO_EXIT_RUNTIME=1 -s "EXTRA_EXPORTED_RUNTIME_METHODS=['ccall']" | |
# Compile Lynx so we know that works | |
sudo touch /usr/local/etc/lynx.cfg && sudo chown $USER /usr/local/etc/lynx.cfg | |
sudo touch /usr/local/etc/lynx.lss && sudo chown $USER /usr/local/etc/lynx.lss | |
wget https://invisible-mirror.net/archives/lynx/tarballs/lynx2.9.0dev.6.zip | |
unzip lynx2.9.0dev.6.zip | |
cd ../lynx2.9.0dev.6/ | |
./configure --with-ssl | |
make | |
./lynx https://invisible-mirror.net/archives/lynx/tarballs/ | |
# Compile Lynx with EMScripten | |
emconfigure ./configure --with-ssl | |
emmake make |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Ahh, okay. If I only want to be able to run
lynx -dump
and don't particularly need the curses component of the browser, is there some way I might be able to circumvent the requirement? Do you have any insight on how I might go about compilinglynx
without curses?