diff --git a/lycium/CItools/README_zh.md b/lycium/CItools/README_zh.md index 92165edb65021642b180b4cf1bdb09f4f0611174..5b1bc68e3bcff77bbdba505af9b758d3e75deff0 100755 --- a/lycium/CItools/README_zh.md +++ b/lycium/CItools/README_zh.md @@ -8,13 +8,13 @@ CI环境搭建首先我们要明确需要的工具,然后再下载工具源码 三方库测试主要是make test,ctest等测试命令,因此需要集成make、cmake等工具,如下列表即是工具源码编译指导文档,按照文档操作可以成功编译出二进制文件,当然我们也提供了已经编译好的二进制文件,请点击[下载链接](https://gitee.com/han_jin_fei/lycium-citools) 。有了二进制文件后,我们来进行环境搭建 -| 工具名称 | 32位编译指导文档路径 | 64位编译指导文档路径 | -| :-------- | ------------------------------------------------------------ | ------------------------------------------------------------ | -| cmake | [cmake_armeabi_v7a](./cmake/cmake_armeabi_v7a_compilation_instructions.md) | [cmake_arm64_v8a](./cmake/cmake_arm64_v8a_compilation_instructions.md) | -| make | [make_armeabi_v7a](./make/make_armeabi-v7a_Compilation_instructions.md) | [make_arm64_v8a](./make/make_arm64_v8a_Compilation_instructions.md) | -| busybox | [busybox_armeabi_v7a](./busybox/busybox_armeabi-v7a_Compilation_instructions.md) | [busybox_arm64_v8a](./busybox/busybox_arm64_v8a_Compilation_instructions.md) | -| perl | [perl_armeabi_v7a](./perl/perl_armeabi-v7a_Compilation_instructions.md) | [perl_arm64_v8a](./perl/perl_arm64_v8a_Compilation_instructions.md) | -| shell_cmd | [shell_cmd_armeabi_v7a](./shell_cmd/shell_cmd_armeabi_v7a_Compilation_instructions.md) | [shell_cmd_arm64_v8a](./shell_cmd/shell_cmd_arm64_v8a_Compilation_instructions.md) | +| 工具名称 | 32位编译指导文档路径 | 64位编译指导文档路径 | X86编译指导路径 | +| :-------- | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | +| cmake | [cmake_armeabi_v7a](./cmake/cmake_armeabi_v7a_compilation_instructions.md) | [cmake_arm64_v8a](./cmake/cmake_arm64_v8a_compilation_instructions.md) | [cmake_x86_64](./cmake/cmake_x86_64_compilation_instructions.md) | +| make | [make_armeabi_v7a](./make/make_armeabi-v7a_Compilation_instructions.md) | [make_arm64_v8a](./make/make_arm64_v8a_Compilation_instructions.md) | [make_x86_64](./make/make_x86_64_compilation_instructions.md) | +| busybox | [busybox_armeabi_v7a](./busybox/busybox_armeabi-v7a_Compilation_instructions.md) | [busybox_arm64_v8a](./busybox/busybox_arm64_v8a_Compilation_instructions.md) | [busybox_x86_64](./busybox/busybox_x86_64_compilation_instructions.md) | +| perl | [perl_armeabi_v7a](./perl/perl_armeabi-v7a_Compilation_instructions.md) | [perl_arm64_v8a](./perl/perl_arm64_v8a_Compilation_instructions.md) | [perl_x86_64](./perl/perl_x86_64_compilation_instructions.md) | +| shell_cmd | [shell_cmd_armeabi_v7a](./shell_cmd/shell_cmd_armeabi_v7a_Compilation_instructions.md) | [shell_cmd_arm64_v8a](./shell_cmd/shell_cmd_arm64_v8a_Compilation_instructions.md) | [shell_cmd](./shell_cmd/shell_cmd_x86_64_compilation_instructions.md) | ### 手动搭建环境 diff --git a/lycium/CItools/busybox/busybox_x86_64_compilation_instructions.md b/lycium/CItools/busybox/busybox_x86_64_compilation_instructions.md new file mode 100644 index 0000000000000000000000000000000000000000..bffc46a46ade51d4c8ae9710d485cf0d80a20e11 --- /dev/null +++ b/lycium/CItools/busybox/busybox_x86_64_compilation_instructions.md @@ -0,0 +1,49 @@ +# busybox 工具在X86_64的Lnux系统上编译说明 + +## 简介 + +BusyBox:嵌入式Linux的瑞士军刀。 + +本文档主要介绍其x86_64叉编译步骤 + +## 编译步骤 + +### 下载解压busybox源码 + +- 下载最新版本busybox源码 [https://busybox.net/downloads/busybox-1.36.1.tar.bz2](https://gitee.com/link?target=https%3A%2F%2Fbusybox.net%2Fdownloads%2Fbusybox-1.36.1.tar.bz2) (以1.36.1为例) +- 通过tar命令解压源码 tar xvf busybox-1.36.1.tar.bz2 +- 进入源码解压后目录 cd busybox-1.36.1 + + + +### 安装编译工具 + +- 首先要安装 sudo apt-get install libncurses5-dev,确保可以看到配置界面 +- make menuconfig 执行后展示界面如下, 选择Setting按回车键进入 + ![setting](media/setting.png) + +- 通过下方向键,选择---Build Options 里面的Build static binary选项按回车确定 + ![Build_Options](media/Build_Options.png) + +- 通过下方向键,选择---Build Options 里面的Destination path for 'make install'选项选项回车进入 + + ![Destination_path](media/Destination_path.png) + +进入后cntrol + Backspace删除默认路径并填写指定自己想要安装的目录 + + ![Backspace](media/Backspace.png) + +- 通过右方向键,选择Exit 退出设置,回到如下界面 + + ![Exit1](media/Exit1.png) +- 再通过右方向键,选择Exit 退出设置,展示如下页面,选择Yes保存配置 + ![config5](media/config5.png) +### 编译busybox源码 + +在解压后的目录执行make VERBOSE=1 命令编译busybox源码 + +安装busybox + +执行 make install后,去对应自己指定的目录下查看是否安装成功,如下图所示即安装完毕: + + ![config5](media/make_install.png) \ No newline at end of file diff --git a/lycium/CItools/busybox/media/Backspace.png b/lycium/CItools/busybox/media/Backspace.png new file mode 100644 index 0000000000000000000000000000000000000000..3594c259f8482e0a2457d05e0bf86dbc372c825c Binary files /dev/null and b/lycium/CItools/busybox/media/Backspace.png differ diff --git a/lycium/CItools/busybox/media/Build_Options.png b/lycium/CItools/busybox/media/Build_Options.png new file mode 100644 index 0000000000000000000000000000000000000000..65567c12fe026b61602e782d253157a64d31077a Binary files /dev/null and b/lycium/CItools/busybox/media/Build_Options.png differ diff --git a/lycium/CItools/busybox/media/Destination_path.png b/lycium/CItools/busybox/media/Destination_path.png new file mode 100644 index 0000000000000000000000000000000000000000..65567c12fe026b61602e782d253157a64d31077a Binary files /dev/null and b/lycium/CItools/busybox/media/Destination_path.png differ diff --git a/lycium/CItools/busybox/media/Exit1.png b/lycium/CItools/busybox/media/Exit1.png new file mode 100644 index 0000000000000000000000000000000000000000..f6c924716fa9c4c9f297b2497d01ce7c7eeadf22 Binary files /dev/null and b/lycium/CItools/busybox/media/Exit1.png differ diff --git a/lycium/CItools/busybox/media/make_install.png b/lycium/CItools/busybox/media/make_install.png new file mode 100644 index 0000000000000000000000000000000000000000..5be47b6354f3711679816d63ac975ce6a084451f Binary files /dev/null and b/lycium/CItools/busybox/media/make_install.png differ diff --git a/lycium/CItools/busybox/media/setting.png b/lycium/CItools/busybox/media/setting.png new file mode 100644 index 0000000000000000000000000000000000000000..1f34b458305a83f73803a0482ab5fe7d76abec49 Binary files /dev/null and b/lycium/CItools/busybox/media/setting.png differ diff --git a/lycium/CItools/cmake/cmake_x86_64_compilation_instructions.md b/lycium/CItools/cmake/cmake_x86_64_compilation_instructions.md new file mode 100644 index 0000000000000000000000000000000000000000..6e0ce75a40a72fe94a2abd1b51f54738ee2f39e3 --- /dev/null +++ b/lycium/CItools/cmake/cmake_x86_64_compilation_instructions.md @@ -0,0 +1,38 @@ +# cmake 工具在x86_64的linux系统上编译说明 + +## 简介 + +CMake是一个跨平台的编译安装工具。 + +本文档主要介绍其x86_64编译步骤 + +## 编译步骤 + +### 下载解压cmake源码 + +- 下载需要版本cmake源码,[下载链接](https://cmake.org/files/v3.27/cmake-3.27.0-rc2.tar.gz)(以3.27-rc2为例) +- 通过tar命令解压源码 tar -xzvf cmake-3.27.0-rc2.tar.gz + +### 创建编译目录 + +- 进入解压后的源码目录 + +- 创建86位编译目录 mkdir x86_64 + +- cd x86_64目录设置环境变量 export LDFLAGS="-static" + + ``` + cmake ../ -L -DCMAKE_USE_OPENSSL=OFF -DBUILD_TESTING=OFF -DCMAKE_INSTALL_PREFIX="/home/jm/down/usr" + ``` +- 参数DCMAKE_INSTALL_PREFIX后面指定自己需要安装的路径 +- 在x86_64下执行 make VERBOSE=1,编译成功截图如下,file 查看文件属性得到的是静态链接。 + + ![build_success_x86_64](media/build_success_x86_64.png) + +### 安装cmake + +- make install + +- 去指定目录下查看是否安装成功,如下图所示: + + ![install_success](media/install_success.png) \ No newline at end of file diff --git a/lycium/CItools/cmake/media/build_success_x86_64.png b/lycium/CItools/cmake/media/build_success_x86_64.png new file mode 100644 index 0000000000000000000000000000000000000000..957ce53db9835c9e2bddeb9d38ed47bd2bffc5b4 Binary files /dev/null and b/lycium/CItools/cmake/media/build_success_x86_64.png differ diff --git a/lycium/CItools/cmake/media/install_success.png b/lycium/CItools/cmake/media/install_success.png new file mode 100644 index 0000000000000000000000000000000000000000..7a4e09b980f4eec00861d77e3f59fd49a659d166 Binary files /dev/null and b/lycium/CItools/cmake/media/install_success.png differ diff --git a/lycium/CItools/make/make_x86_64_compilation_instructions.md b/lycium/CItools/make/make_x86_64_compilation_instructions.md new file mode 100644 index 0000000000000000000000000000000000000000..98a57aa2ff573546094b8e45ad35d4c21d45123f --- /dev/null +++ b/lycium/CItools/make/make_x86_64_compilation_instructions.md @@ -0,0 +1,50 @@ +# make 工具在x86_64的Linux系统上的编译说明 + +## 简介 + +GNUMake是一种工具,用于控制从程序的源文件生成程序的可执行文件和其他非源文件。 + +本文档主要介绍其arm64位交叉编译步骤 + +## 编译步骤 + +### 下载解压make源码 + +- 下载最新版本的make源码 [https://ftp.gnu.org/gnu/make/make-4.4.1.tar.gz](https://gitee.com/link?target=https%3A%2F%2Fftp.gnu.org%2Fgnu%2Fmake%2Fmake-4.4.1.tar.gz) (以4.4.1为例) +- 通过tar命令解压源码 tar -xzvf make-4.4.1.tar.gz + +### 创建编译目录 + +- 进入源码解压后目录 cd make-4.4.1 +- 创建64位编译目录 mkdir x86_64 + +### 生成makefile + +- cd x86_64 +- 执行如下命令生成Makefile,prefix参数后面指定自己需要安装的路径 + +``` +../configure --prefix="/home/jm/usr" +``` + +- 修改Makefile,将AM_LDFLAGS = -Wl,--export-dynamic 改成AM_LDFLAGS = 即删除后面的-Wl,--export-dynamic + +- 修改Makefile,将AM_LDFLAGS = -Wl,--export-dynamic 改成AM_LDFLAGS = 即删除后面的-Wl,--export-dynamic + + ![alter_makefile](media/alter_makefile.png) + + + +### 编译make源码 + +在对应的编译目录执行make CFLAGS="-static" LDFLAGS="-static" VERBOSE=1,执行结果截图如下 + + ![build_success_x86](media/build_success_x86.png) + + + +### 安装make + +执行 make install,去对应的目录下查看安装结果如下: + + ![make_install_x86](media/make_install_x86.png) \ No newline at end of file diff --git a/lycium/CItools/make/media/alter_makefile.png b/lycium/CItools/make/media/alter_makefile.png new file mode 100644 index 0000000000000000000000000000000000000000..e76dc2b098019432b826b19abdcdd586c0973943 Binary files /dev/null and b/lycium/CItools/make/media/alter_makefile.png differ diff --git a/lycium/CItools/make/media/build_success_x86.png b/lycium/CItools/make/media/build_success_x86.png new file mode 100644 index 0000000000000000000000000000000000000000..1a26e7ea5074544d2c620c4e0da3131abad88dbb Binary files /dev/null and b/lycium/CItools/make/media/build_success_x86.png differ diff --git a/lycium/CItools/make/media/make_install_x86.png b/lycium/CItools/make/media/make_install_x86.png new file mode 100644 index 0000000000000000000000000000000000000000..317484008d77a6aaf4552c06769f8aebe088a604 Binary files /dev/null and b/lycium/CItools/make/media/make_install_x86.png differ diff --git a/lycium/CItools/perl/media/build_success_x86.png b/lycium/CItools/perl/media/build_success_x86.png new file mode 100644 index 0000000000000000000000000000000000000000..8fa71fd800143628a52cfd43b21db345129a8b19 Binary files /dev/null and b/lycium/CItools/perl/media/build_success_x86.png differ diff --git a/lycium/CItools/perl/media/install_x86.png b/lycium/CItools/perl/media/install_x86.png new file mode 100644 index 0000000000000000000000000000000000000000..0e0df295f1fb84f4623e316fe6d7eb9f9846e635 Binary files /dev/null and b/lycium/CItools/perl/media/install_x86.png differ diff --git a/lycium/CItools/perl/perl_x86_64_compilation_instructions.md b/lycium/CItools/perl/perl_x86_64_compilation_instructions.md new file mode 100644 index 0000000000000000000000000000000000000000..5ffe94e4249821c8fb217a0195a06affd24f5b50 --- /dev/null +++ b/lycium/CItools/perl/perl_x86_64_compilation_instructions.md @@ -0,0 +1,50 @@ +# perl 工具在x86_64的Linux系统上编译说明 + +## 简介 + +Perl:一种功能丰富的计算机程序语言,运行在超过100种计算机平台上,适用广泛,从大型机到便携设备,从快速原型创建到大规模可扩展开发。 + +## 编译步骤 + +### 编译工具链下载 + +- 64位编译工具:gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz [下载链接](https://gitee.com/link?target=https%3A%2F%2Freleases.linaro.org%2Fcomponents%2Ftoolchain%2Fbinaries%2F7.5-2019.12%2Faarch64-linux-gnu%2Fgcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz) + +### 解压编译工具链 + +- 解压64位 gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz +- 进入解压后的文件夹,查看bin目录下就有我们编译用到的工具链 + +### 下载解压perl源码 + +- 下载perl源码,[下载链接](https://gitee.com/link?target=https%3A%2F%2Fwww.cpan.org%2Fsrc%2F5.0%2Fperl-5.36.1.tar.gz) (以5.36.1为例) +- 通过tar命令解压源码 tar -zxf perl-5.36.1.tar.gz + +### 下载perl交叉编译包源码 + +- 下载perl交叉编译包源码,[下载链接](https://gitee.com/link?target=https%3A%2F%2Fgithub.com%2Farsv%2Fperl-cross%2Freleases%2Fdownload%2F1.4.1%2Fperl-cross-1.4.1.tar.gz)(5.36.1版本对应的perl-cross就是1.4.1版本) +- 进入perl源码解压后目录 cd perl-5.36.1 +- 在perl上解压perl交叉编译包,覆盖Makefile,命令如下 + +``` +tar --strip-components=1 -zxf ../perl-cross-1.4.1.tar.gz +``` + +### 生成makefile + +- 执行如下命令生成makefile,prefix后面跟的是自己需要安装的路径 + +``` +./configure --all-static --prefix="/home/jm/usr" +``` + +### 编译perl源码 + +执行 make CFLAGES="-static" LDFLAGS="-static" VERBOSE=1 命令编译perl源码,执行结果截图如下 + + ![build_success_x86](media/build_success_x86.png) + +### 安装perl + +执行 make install,并去安装目录下查看安装结果截图如下: + ![install_x86](media/install_x86.png) \ No newline at end of file diff --git a/lycium/CItools/shell_cmd/media/install_x86.png b/lycium/CItools/shell_cmd/media/install_x86.png new file mode 100644 index 0000000000000000000000000000000000000000..331adbbab9c140fbc35ade0a55708f8e894cb2a8 Binary files /dev/null and b/lycium/CItools/shell_cmd/media/install_x86.png differ diff --git a/lycium/CItools/shell_cmd/shell_cmd_x86_64_compilation_instructions.md b/lycium/CItools/shell_cmd/shell_cmd_x86_64_compilation_instructions.md new file mode 100644 index 0000000000000000000000000000000000000000..4c83c21fb8f07b87e2ddf6ee8c19ddb7b176b62b --- /dev/null +++ b/lycium/CItools/shell_cmd/shell_cmd_x86_64_compilation_instructions.md @@ -0,0 +1,45 @@ +# shell_cmd 工具在x86_64的Linux系统上的编译说明 + +## 简介 + +命令是用户向系统内核发出控制请求,与之交互的文本流。 shell是一个命令行解释器,将用户命令解析为操作系统所能理解的指令,实现用户与操作系统的交互。 + +本文主要介绍bash和mawk这两个命令的编译方法,这两个工具的编译步骤都是一样的,其他shell命令,可以参考该编译方法进行编译。 + +## 编译步骤 + +### 下载解压源码 + +- 下载bash源码,[下载链接](https://gitee.com/link?target=https%3A%2F%2Fftp.gnu.org%2Fgnu%2Fbash%2Fbash-5.2.15.tar.gz) (以5.2.15为例) +- 通过tar命令解压源码 tar -zxf bash-5.2.15.tar.gz +- 下载mawk源码,[下载链接](https://gitee.com/link?target=https%3A%2F%2Finvisible-island.net%2Farchives%2Fmawk%2Fmawk-1.3.4-20230525.tgz) (以1.3.4-20230525为例) +- 通过tar命令解压源码 tar -zxf mawk-1.3.4-20230525.tgz + +### 生成makefile + +- 编译bash,请进入bash源码目录执行如下命令生成makefile + + ``` + ./configure --enable-static-link --prefix="/home/jm/usr" + ``` + + + +- 编译mawk,请进入mawk源码目录执行如下命令生成makefile + +``` +./configure --prefix="/home/jm/usr" +``` + +### 编译源码 + +- bash和mawk编译命令是一致的,在源码目录执行 make LDFLAGS="-static" VERBOSE=1 + + + +### 安装 + +bash和mawk安装命令是一致的,都是在源码目录执行 make install + +编译安装后去安装目录查看是否安装成功,截图如下: + ![install_x86](media/install_x86.png) \ No newline at end of file diff --git a/thirdparty/curl/HPKBUILD b/thirdparty/curl/HPKBUILD index 8a4b26951c7f5a4e2d9f6ca7a7a5ba4e029f0d27..0f3894d5bcdd63b2ad4bd4f65e4aedd119b2092f 100644 --- a/thirdparty/curl/HPKBUILD +++ b/thirdparty/curl/HPKBUILD @@ -13,26 +13,24 @@ # Contributor: Jeff Han # Maintainer: Jeff Han - pkgname=curl pkgver=curl-8_0_1 pkgrel=0 -pkgdesc="A command line tool and library for transferring data with URL syntax, supporting DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, TFTP, WS and WSS. libcurl offers a myriad of powerful features" -url="https://curl.se/" +pkgdesc="" +url="" archs=("armeabi-v7a" "arm64-v8a") license=("BSD/ISC/curl") depends=("openssl" "zstd" "nghttp2") # QUICHE/WEBSOCKETS makedepends=() -# 官方下载地址: https://github.com/curl/$pkgname/archive/refs/tags/$pkgver.tar.gz,因网络原因采用gitee mirrors -source="https://gitee.com/mirrors/$pkgname/repository/archive/$pkgver.zip" +source="https://github.com/curl/$pkgname/archive/refs/tags/$pkgver.tar.gz" autounpack=true downloadpackage=true patchflag=true builddir=$pkgname-${pkgver} -packagename=$builddir.zip +packagename=$builddir.tar.gz prepare() { if $patchflag @@ -49,8 +47,8 @@ prepare() { build() { cd $builddir - ${OHOS_SDK}/native/build-tools/cmake/bin/cmake "$@" -DCURL_ZSTD=ON -DENABLE_WEBSOCKETS=ON -DUSE_NGHTTP2=ON -DOHOS_ARCH=$ARCH -B$ARCH-build -S./ -L > `pwd`/$ARCH-build/build.log 2>&1 - make -j4 -C $ARCH-build >> `pwd`/$ARCH-build/build.log 2>&1 + ${OHOS_SDK}/native/build-tools/cmake/bin/cmake "$@" -DCURL_CA_BUNDLE="/etc/ssl/certs/cacert.pem" -DCURL_CA_PATH="/etc/ssl/certs/" -DCURL_ZSTD=ON -DENABLE_WEBSOCKETS=ON -DUSE_NGHTTP2=ON -B$ARCH-build -S./ > $buildlog 2>&1 + $MAKE -C $ARCH-build >> $buildlog 2>&1 ret=$? cd $OLDPWD return $ret @@ -58,20 +56,22 @@ build() { package() { cd "$builddir" - make -C $ARCH-build install >> `pwd`/$ARCH-build/build.log 2>&1 + $MAKE -C $ARCH-build install >> $buildlog 2>&1 cd $OLDPWD } check() { cd "$builddir" - make -C $ARCH-build testdeps >> `pwd`/$ARCH-build/build.log 2>&1 + $MAKE -C $ARCH-build testdeps >> $buildlog 2>&1 + cp `pwd`/../curl_test.sh $ARCH-build cd $OLDPWD echo "The test must be on an OpenHarmony device!" # real test CMD - # TODO test + # 进入编译目录 + # bash curl_test.sh } # 清理环境 -cleanbuild(){ +cleanbuild() { rm -rf ${PWD}/$builddir #${PWD}/$packagename -} +} \ No newline at end of file