From 9520d68cdae7dbc29f1090f7d7dd7f75ced591ea Mon Sep 17 00:00:00 2001 From: crazywhalecc Date: Sun, 15 Oct 2023 16:47:00 +0800 Subject: [PATCH] add onig and openssl support for BSD --- src/SPC/builder/freebsd/library/onig.php | 12 ++++ src/SPC/builder/freebsd/library/openssl.php | 63 +++++++++++++++++++++ 2 files changed, 75 insertions(+) create mode 100644 src/SPC/builder/freebsd/library/onig.php create mode 100644 src/SPC/builder/freebsd/library/openssl.php diff --git a/src/SPC/builder/freebsd/library/onig.php b/src/SPC/builder/freebsd/library/onig.php new file mode 100644 index 00000000..0ad9731a --- /dev/null +++ b/src/SPC/builder/freebsd/library/onig.php @@ -0,0 +1,12 @@ + + * + * lwmbs is licensed under Mulan PSL v2. You can use this + * software according to the terms and conditions of the + * Mulan PSL v2. You may obtain a copy of Mulan PSL v2 at: + * + * http://license.coscl.org.cn/MulanPSL2 + * + * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, + * WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, + * INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, + * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. + * + * See the Mulan PSL v2 for more details. + */ + +declare(strict_types=1); + +namespace SPC\builder\freebsd\library; + +use SPC\builder\macos\library\MacOSLibraryBase; +use SPC\exception\FileSystemException; +use SPC\exception\RuntimeException; +use SPC\exception\WrongUsageException; + +class openssl extends BSDLibraryBase +{ + public const NAME = 'openssl'; + + /** + * @throws FileSystemException + * @throws RuntimeException + * @throws WrongUsageException + */ + protected function build(): void + { + [$lib,,$destdir] = SEPARATED_PATH; + + // lib:zlib + $extra = ''; + $ex_lib = ''; + $zlib = $this->builder->getLib('zlib'); + if ($zlib instanceof MacOSLibraryBase) { + $extra = 'zlib'; + $ex_lib = trim($zlib->getStaticLibFiles() . ' ' . $ex_lib); + } + + shell()->cd($this->source_dir) + ->exec( + "{$this->builder->configure_env} ./Configure no-shared {$extra} " . + '--prefix=/ ' . // use prefix=/ + "--libdir={$lib} " . + '--openssldir=/etc/ssl ' . + 'BSD-' . arch2gnu($this->builder->getOption('arch')) + ) + ->exec('make clean') + ->exec("make -j{$this->builder->concurrency} CNF_EX_LIBS=\"{$ex_lib}\"") + ->exec("make install_sw DESTDIR={$destdir}"); + $this->patchPkgconfPrefix(['libssl.pc', 'openssl.pc', 'libcrypto.pc']); + } +}