From b929fbf6734cdbd9f6e544d14512f8cae5e2f71f Mon Sep 17 00:00:00 2001 From: levlam Date: Fri, 2 Aug 2019 05:30:31 +0300 Subject: [PATCH] Add OpenBSD build instructions. GitOrigin-RevId: 89940edf0ec15563aea0e04eb941ffb00a491d65 --- build.html | 40 +++++++++++++++++++++++++++++++--------- 1 file changed, 31 insertions(+), 9 deletions(-) diff --git a/build.html b/build.html index 0f74ce52..2bca99d4 100644 --- a/build.html +++ b/build.html @@ -163,16 +163,16 @@ function getSupportedOs(language) { case 'Choose a programming language:': return []; case 'JavaScript': - return ['Windows (Node.js)', 'Linux (Node.js)', 'macOS (Node.js)', 'FreeBSD (Node.js)', 'Browser']; + return ['Windows (Node.js)', 'Linux (Node.js)', 'macOS (Node.js)', 'FreeBSD (Node.js)', 'OpenBSD (Node.js)', 'Browser']; case 'Java': - return ['Windows', 'Linux', 'macOS', 'FreeBSD', 'Android']; + return ['Windows', 'Linux', 'macOS', 'FreeBSD', 'OpenBSD', 'Android']; case 'C#': return ['Windows (through C++/CLI)', 'Universal Windows Platform (through C++/CX)', 'Windows (.Net Core)', 'Linux (.Net Core)', 'macOS (.Net Core)', 'FreeBSD (.Net Core)']; case 'Swift': case 'Objective-C': return ['Windows', 'Linux', 'macOS', 'iOS', 'tvOS', 'watchOS']; default: - return ['Windows', 'Linux', 'macOS', 'FreeBSD']; + return ['Windows', 'Linux', 'macOS', 'FreeBSD', 'OpenBSD']; } } @@ -341,6 +341,7 @@ function onOptionsChanged() { var os_linux = os.includes('Linux'); var os_mac = os.includes('macOS'); var os_freebsd = os.includes('FreeBSD'); + var os_openbsd = os.includes('OpenBSD'); var display_commands = 'block'; var linux_distro = 'none'; @@ -355,7 +356,7 @@ function onOptionsChanged() { } document.getElementById('buildCommandsDiv').style.display = display_commands; - var use_clang = os_freebsd; + var use_clang = os_freebsd || os_openbsd; if (os_linux && linux_distro !== 'Alpine') { document.getElementById('buildCompilerDiv').style.display = 'block'; use_clang = document.getElementById('buildCompilerRadioClang').checked; @@ -364,7 +365,7 @@ function onOptionsChanged() { } var low_memory = false; - if (os_linux || os_freebsd) { + if (os_linux || os_freebsd || os_openbsd) { low_memory = document.getElementById('buildLowMemoryCheckbox').checked; document.getElementById('buildLowMemoryText').innerHTML = 'I have less than ' + (use_clang ? '1.5' : '3.5') +' GB of RAM.' + (low_memory ? ' Now you will need only ' + (use_clang ? '0.5' : '1') +' GB of RAM to build TDLib.' : ''); @@ -431,7 +432,7 @@ function onOptionsChanged() { } var sudo = 'sudo '; - if (use_root || linux_distro.includes('Debian') || os_freebsd) { + if (use_root || linux_distro.includes('Debian') || os_freebsd || os_openbsd) { sudo = ''; } @@ -504,6 +505,9 @@ function onOptionsChanged() { pre_text.push('Note that following instruction is for FreeBSD 11.'); pre_text.push('Note that following calls to pkg needs to be run as root.'); } + if (os_openbsd) { + pre_text.push('Note that following instruction is for OpenBSD 6.4 and default KSH shell.'); + } var terminal_name = (function () { if (os_windows) { @@ -512,6 +516,9 @@ function onOptionsChanged() { if (os_mac) { return 'Terminal'; } + if (os_openbsd) { + return 'ksh'; + } if (use_csh) { return 'tcsh/csh'; } @@ -538,6 +545,7 @@ function onOptionsChanged() { var commands = []; + var php = "php"; if (os_mac) { commands.push('xcode-select --install'); commands.push('/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"'); @@ -617,6 +625,20 @@ function onOptionsChanged() { packages += ' openjdk'; } commands.push(sudo + 'pkg install ' + packages); + } else if (os_openbsd) { + if (!use_root) { + commands.push('su -'); + } + var packages = 'git gperf php-7.2.10 cmake'; + if (target === 'JNI') { + packages += ' jdk'; + } + commands.push('pkg_add ' + packages); + if (!use_root) { + commands.push('exit'); + } + + php = "php-7.2"; } commands.push('git clone https://github.com/tdlib/td.git'); @@ -748,7 +770,7 @@ function onOptionsChanged() { if (low_memory) { commands.push('cmake --build . --target prepare_cross_compiling'); commands.push('cd ..'); - commands.push('php SplitSource.php'); + commands.push(php + ' SplitSource.php'); commands.push('cd build'); } @@ -790,7 +812,7 @@ function onOptionsChanged() { if (os_freebsd) { cmake_init_options.push('-DJAVA_HOME=/usr/local/openjdk7/'); } - var resolve_path = use_powershell ? 'Resolve-Path' : (os_mac ? 'greadlink -e' : (is_alpine || os_freebsd ? 'readlink -f' : 'readlink -e')); + var resolve_path = use_powershell ? 'Resolve-Path' : (os_mac ? 'greadlink -e' : (is_alpine || os_freebsd || os_openbsd ? 'readlink -f' : 'readlink -e')); var resolved_path = resolve_path + ' ../td/lib/cmake/Td'; if (use_csh) { cmake_init_options.push('-DTd_DIR:PATH=$td_dir'); @@ -813,7 +835,7 @@ function onOptionsChanged() { commands.push('git checkout td/telegram/Client.h td/telegram/Log.h td/tl/TlObject.h'); } if (low_memory) { - commands.push('php SplitSource.php --undo'); + commands.push(php + ' SplitSource.php --undo'); } commands.push('cd ..'); }