mirror of
https://github.com/DragonOS-Community/DragonOS.git
synced 2025-06-08 18:26:48 +00:00
fix(user): 修复clean ./user时出现参数过长的问题 (#1037)
This commit is contained in:
parent
081428c0d8
commit
23ccf763b6
@ -1,10 +1,5 @@
|
|||||||
user_sub_dirs = apps
|
user_sub_dirs = apps
|
||||||
|
|
||||||
SUBDIR_ROOTS := .
|
|
||||||
DIRS := . $(shell find $(SUBDIR_ROOTS) -type d)
|
|
||||||
GARBAGE_PATTERNS := *.o *.a
|
|
||||||
GARBAGE := $(foreach DIR,$(DIRS),$(addprefix $(DIR)/,$(GARBAGE_PATTERNS)))
|
|
||||||
|
|
||||||
DADK_VERSION=$(shell dadk -V | awk 'END {print $$2}')
|
DADK_VERSION=$(shell dadk -V | awk 'END {print $$2}')
|
||||||
# 最小的DADK版本
|
# 最小的DADK版本
|
||||||
MIN_DADK_VERSION = 0.1.11
|
MIN_DADK_VERSION = 0.1.11
|
||||||
@ -65,7 +60,6 @@ copy_sysconfig: dadk_run
|
|||||||
|
|
||||||
.PHONY: clean
|
.PHONY: clean
|
||||||
clean:
|
clean:
|
||||||
rm -rf $(GARBAGE)
|
|
||||||
$(MAKE) dadk_clean
|
$(MAKE) dadk_clean
|
||||||
@list='$(user_sub_dirs)'; for subdir in $$list; do \
|
@list='$(user_sub_dirs)'; for subdir in $$list; do \
|
||||||
echo "Clean in dir: $$subdir";\
|
echo "Clean in dir: $$subdir";\
|
||||||
|
@ -1,15 +0,0 @@
|
|||||||
# port目录
|
|
||||||
---
|
|
||||||
|
|
||||||
本目录移植到DragonOS的应用程序。
|
|
||||||
|
|
||||||
可以包含以下类型的文件:
|
|
||||||
|
|
||||||
- 移植的patch,以及编译脚本、编译用的Dockerfile等
|
|
||||||
- 把子目录作为git仓库的submodule
|
|
||||||
|
|
||||||
## 注意
|
|
||||||
|
|
||||||
编译好libc之后,要把sysroot/usr/lib的文件,复制到$HOME/opt/dragonos-host-userspace/x86_64-dragonos/lib. 因为ld会从这里面找链接的东西。
|
|
||||||
|
|
||||||
目前由于DragonOS的libc还不完善,所以尚未能使用用户态交叉编译器来编译flex。
|
|
1
user/port/binutils/2.38/.gitignore
vendored
1
user/port/binutils/2.38/.gitignore
vendored
@ -1 +0,0 @@
|
|||||||
build-binutils/
|
|
@ -1,41 +0,0 @@
|
|||||||
# 本Dockerfile用于构建binutils 2.38的交叉编译环境
|
|
||||||
|
|
||||||
FROM ubuntu:jammy
|
|
||||||
|
|
||||||
# Install dependencies
|
|
||||||
RUN apt-get update && apt-get install -y \
|
|
||||||
autoconf2.69 \
|
|
||||||
automake \
|
|
||||||
bison \
|
|
||||||
build-essential \
|
|
||||||
flex \
|
|
||||||
gawk \
|
|
||||||
gettext \
|
|
||||||
git \
|
|
||||||
libgmp-dev \
|
|
||||||
libmpc-dev \
|
|
||||||
libmpfr-dev \
|
|
||||||
libncurses5-dev \
|
|
||||||
libtool \
|
|
||||||
m4 \
|
|
||||||
make \
|
|
||||||
ninja-build \
|
|
||||||
python3 \
|
|
||||||
texinfo \
|
|
||||||
wget \
|
|
||||||
xz-utils \
|
|
||||||
zlib1g-dev \
|
|
||||||
wget \
|
|
||||||
&& rm /usr/bin/autoconf && ln -s /usr/bin/autoconf2.69 /usr/bin/autoconf
|
|
||||||
|
|
||||||
WORKDIR /opt
|
|
||||||
|
|
||||||
# download automake 1.15.1
|
|
||||||
RUN wget http://mirrors.ustc.edu.cn/gnu/automake/automake-1.15.1.tar.xz && \
|
|
||||||
tar -xvf automake-1.15.1.tar.xz && \
|
|
||||||
cd automake-1.15.1 && \
|
|
||||||
./configure --prefix=/usr && \
|
|
||||||
make && \
|
|
||||||
make install && \
|
|
||||||
cd .. && \
|
|
||||||
rm -rf automake-1.15.1 automake-1.15.1.tar.xz
|
|
@ -1,25 +0,0 @@
|
|||||||
# binutils-2.38
|
|
||||||
|
|
||||||
## 说明
|
|
||||||
|
|
||||||
这里是移植到用户态的binutils-2.38,用于DragonOS的用户态编译器。在编译这里之前,请先在项目根目录下运行`make -j $(nproc)`, 以确保编译binutils所依赖的依赖库已经编译好。
|
|
||||||
|
|
||||||
先修改build.sh中的路径,配置好需要的信息,再使用以下命令,即可开始编译:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
bash build.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
请注意,如果您要修改binutils的代码,请先使用以下命令,构建编辑binutils代码配置的环境:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
docker build --no-cache -t dragonos-binutils-build .
|
|
||||||
```
|
|
||||||
|
|
||||||
然后再在binutils目录下执行以下命令,进入容器:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
docker run --rm -it -v $PWD:/workdir -w /workdir dragonos-binutils-build
|
|
||||||
```
|
|
@ -1,42 +0,0 @@
|
|||||||
# 编译前请先设置参数
|
|
||||||
sys_root=$DRAGONOS_SYSROOT
|
|
||||||
binutils_path=请填写binutils的路径
|
|
||||||
|
|
||||||
# 要安装到的目录
|
|
||||||
PREFIX=$HOME/opt/dragonos-host-userspace
|
|
||||||
|
|
||||||
|
|
||||||
if [ ! -d ${binutils_path} ]; then
|
|
||||||
echo "Error: ${binutils_path} not found"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -d ${sys_root} ]; then
|
|
||||||
echo "Error: ${sys_root} not found"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
mkdir -p build-binutils || exit 1
|
|
||||||
mkdir -p ${PREFIX} || exit 1
|
|
||||||
|
|
||||||
# 安装依赖
|
|
||||||
# 注意texinfo和binutils的版本是否匹配
|
|
||||||
# 注意gmp/mpc/mpfr和gcc/g++的版本是否匹配
|
|
||||||
sudo apt-get install -y \
|
|
||||||
g++ \
|
|
||||||
gcc \
|
|
||||||
make \
|
|
||||||
texinfo \
|
|
||||||
libgmp3-dev \
|
|
||||||
libmpc-dev \
|
|
||||||
libmpfr-dev \
|
|
||||||
flex \
|
|
||||||
wget
|
|
||||||
|
|
||||||
cd build-binutils
|
|
||||||
${binutils_path}/configure --prefix=${PREFIX} --target=x86_64-dragonos --with-sysroot=${sys_root} --disable-werror || exit 1
|
|
||||||
make -j $(nproc) || exit 1
|
|
||||||
make install || exit 1
|
|
||||||
make clean || exit 1
|
|
||||||
rm -rf build-binutils
|
|
@ -1 +0,0 @@
|
|||||||
docker run --rm -it -v $PWD:/workdir -w /workdir binutils-2.38
|
|
@ -1,17 +0,0 @@
|
|||||||
source pkg-config.sh
|
|
||||||
path=(
|
|
||||||
gmp/6.2.1
|
|
||||||
mpfr/4.1.1
|
|
||||||
mpc/1.2.1
|
|
||||||
flex/2.6.4
|
|
||||||
)
|
|
||||||
|
|
||||||
current_path=$(pwd)
|
|
||||||
|
|
||||||
for i in ${path[@]}; do
|
|
||||||
echo "Building $i"
|
|
||||||
cd $i
|
|
||||||
./build.sh || exit 1
|
|
||||||
cd $current_path
|
|
||||||
done
|
|
||||||
cd $current_path
|
|
1
user/port/flex/2.6.4/.gitignore
vendored
1
user/port/flex/2.6.4/.gitignore
vendored
@ -1 +0,0 @@
|
|||||||
build/
|
|
@ -1,37 +0,0 @@
|
|||||||
|
|
||||||
# 编译前请先设置参数
|
|
||||||
sys_root=$DRAGONOS_SYSROOT
|
|
||||||
src_path=请填写flex的路径
|
|
||||||
|
|
||||||
current_path=$(pwd)
|
|
||||||
# 要安装到的目录
|
|
||||||
PREFIX=/usr
|
|
||||||
|
|
||||||
|
|
||||||
if [ ! -d ${src_path} ]; then
|
|
||||||
echo "Error: ${src_path} not found"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -d ${sysroot} ]; then
|
|
||||||
echo "Error: ${sysroot} not found"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
cd ${src_path}
|
|
||||||
autoreconf --install
|
|
||||||
autoconf
|
|
||||||
sed -i 's/ios[*]/ios* | dragonos* /' build-aux/config.sub
|
|
||||||
|
|
||||||
cd ${current_path}
|
|
||||||
|
|
||||||
mkdir -p build || exit 1
|
|
||||||
mkdir -p ${PREFIX} || exit 1
|
|
||||||
|
|
||||||
cd build
|
|
||||||
${src_path}/configure --prefix=${PREFIX} --host=x86_64-dragonos || exit 1
|
|
||||||
make -j $(nproc) || exit 1
|
|
||||||
make DESTDIR=${sys_root} install|| exit 1
|
|
||||||
make clean
|
|
||||||
cd ..
|
|
||||||
rm -rf build
|
|
1
user/port/gcc/11.3.0/.gitignore
vendored
1
user/port/gcc/11.3.0/.gitignore
vendored
@ -1 +0,0 @@
|
|||||||
build-gcc/
|
|
@ -1,51 +0,0 @@
|
|||||||
##############################################
|
|
||||||
# DragonOS hosted gcc build script
|
|
||||||
#
|
|
||||||
# This script is used to build userland gcc for DragonOS(Running on Linux)
|
|
||||||
##############################################
|
|
||||||
|
|
||||||
# 编译前请先设置参数
|
|
||||||
sys_root=$DRAGONOS_SYSROOT
|
|
||||||
gcc_path=请填写gcc的路径
|
|
||||||
|
|
||||||
# 要安装到的目录
|
|
||||||
PREFIX=$HOME/opt/dragonos-host-userspace
|
|
||||||
|
|
||||||
|
|
||||||
if [ ! -d ${gcc_path} ]; then
|
|
||||||
echo "Error: ${gcc_path} not found"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -d ${sys_root} ]; then
|
|
||||||
echo "Error: ${sys_root} not found"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 安装依赖
|
|
||||||
# 注意texinfo和binutils的版本是否匹配
|
|
||||||
# 注意gmp/mpc/mpfr和gcc/g++的版本是否匹配
|
|
||||||
sudo apt-get install -y \
|
|
||||||
g++ \
|
|
||||||
gcc \
|
|
||||||
make \
|
|
||||||
texinfo \
|
|
||||||
libgmp3-dev \
|
|
||||||
libmpc-dev \
|
|
||||||
libmpfr-dev \
|
|
||||||
flex \
|
|
||||||
wget
|
|
||||||
|
|
||||||
mkdir -p build-gcc || exit 1
|
|
||||||
mkdir -p ${PREFIX} || exit 1
|
|
||||||
|
|
||||||
cd build-gcc
|
|
||||||
${gcc_path}/configure --prefix=${PREFIX} --target=x86_64-dragonos --with-sysroot=${sys_root} --disable-werror --disable-shared --disable-bootstrap --enable-languages=c,c++ || exit 1
|
|
||||||
make all-gcc all-target-libgcc -j $(nproc) || exit 1
|
|
||||||
make install-gcc install-target-libgcc -j $(nproc) || exit 1
|
|
||||||
# 这里会报错,暂时不知道为什么
|
|
||||||
# make all-target-libstdc++-v3 -j $(nproc) || exit 1
|
|
||||||
# make install-target-libstdc++-v3 -j $(nproc) || exit 1
|
|
||||||
make clean
|
|
||||||
cd ..
|
|
||||||
rm -rf build-gcc
|
|
@ -1,28 +0,0 @@
|
|||||||
# 编译前请先设置参数
|
|
||||||
sys_root=$DRAGONOS_SYSROOT
|
|
||||||
gmp_path=请填写gmp的路径
|
|
||||||
|
|
||||||
# 要安装到的目录
|
|
||||||
PREFIX=/usr
|
|
||||||
|
|
||||||
|
|
||||||
if [ ! -d ${gmp_path} ]; then
|
|
||||||
echo "Error: ${gmp_path} not found"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -d ${sysroot} ]; then
|
|
||||||
echo "Error: ${sysroot} not found"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
mkdir -p build-gmp || exit 1
|
|
||||||
mkdir -p ${PREFIX} || exit 1
|
|
||||||
|
|
||||||
cd build-gmp
|
|
||||||
${gmp_path}/configure --prefix=${PREFIX} --host=x86_64-dragonos || exit 1
|
|
||||||
make -j $(nproc) || exit 1
|
|
||||||
make DESTDIR=${sys_root} install|| exit 1
|
|
||||||
make clean
|
|
||||||
cd ..
|
|
||||||
rm -rf build-gmp
|
|
@ -1,35 +0,0 @@
|
|||||||
# 编译前请先设置参数
|
|
||||||
sys_root=$DRAGONOS_SYSROOT
|
|
||||||
mpc_path=请填写mpc的路径
|
|
||||||
|
|
||||||
# 要安装到的目录
|
|
||||||
PREFIX=/usr
|
|
||||||
current_path=$(pwd)
|
|
||||||
|
|
||||||
if [ ! -d ${mpc_path} ]; then
|
|
||||||
echo "Error: ${mpc_path} not found"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -d ${sysroot} ]; then
|
|
||||||
echo "Error: ${sysroot} not found"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
cd ${mpc_path}
|
|
||||||
autoreconf --install || exit 1
|
|
||||||
autoconf
|
|
||||||
sed -i 's/ios[*]/ios* | dragonos* /' build-aux/config.sub
|
|
||||||
|
|
||||||
cd ${current_path}
|
|
||||||
|
|
||||||
mkdir -p build || exit 1
|
|
||||||
mkdir -p ${PREFIX} || exit 1
|
|
||||||
|
|
||||||
cd build
|
|
||||||
${mpc_path}/configure --prefix=${PREFIX} --host=x86_64-dragonos --target=x86_64-dragonos --with-mpfr=$sys_root/usr --with-gmp=$sys_root/usr || exit 1
|
|
||||||
make -j $(nproc) || exit 1
|
|
||||||
make DESTDIR=${sys_root} install || exit 1
|
|
||||||
make clean
|
|
||||||
cd ..
|
|
||||||
rm -rf build
|
|
@ -1,37 +0,0 @@
|
|||||||
|
|
||||||
# 编译前请先设置参数
|
|
||||||
sys_root=$DRAGONOS_SYSROOT
|
|
||||||
src_path=请填写mpfr的路径
|
|
||||||
|
|
||||||
current_path=$(pwd)
|
|
||||||
# 要安装到的目录
|
|
||||||
PREFIX=/usr
|
|
||||||
|
|
||||||
|
|
||||||
if [ ! -d ${src_path} ]; then
|
|
||||||
echo "Error: ${src_path} not found"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -d ${sysroot} ]; then
|
|
||||||
echo "Error: ${sysroot} not found"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
cd ${src_path}
|
|
||||||
autoreconf --install
|
|
||||||
autoconf
|
|
||||||
sed -i 's/ios[*]/ios* | dragonos* /' config.sub
|
|
||||||
|
|
||||||
cd ${current_path}
|
|
||||||
|
|
||||||
mkdir -p build || exit 1
|
|
||||||
mkdir -p ${PREFIX} || exit 1
|
|
||||||
|
|
||||||
cd build
|
|
||||||
${src_path}/configure --prefix=${PREFIX} --host=x86_64-dragonos || exit 1
|
|
||||||
make -j $(nproc) || exit 1
|
|
||||||
make DESTDIR=${sys_root} install|| exit 1
|
|
||||||
make clean
|
|
||||||
cd ..
|
|
||||||
rm -rf build
|
|
@ -1,15 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
# Fill these in appropriately:
|
|
||||||
ROOT_PATH=$(dirname $(dirname $(pwd)))
|
|
||||||
DRAGONOS_SYSROOT=$ROOT_PATH/bin/sysroot
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
export PKG_CONFIG_SYSROOT_DIR=$DRAGONOS_SYSROOT
|
|
||||||
export PKG_CONFIG_LIBDIR=$DRAGONOS_SYSROOT/usr/lib/pkgconfig
|
|
||||||
# TODO: If it works this should probably just be set to the empty string.
|
|
||||||
# export PKG_CONFIG_PATH=$PKG_CONFIG_LIBDIR
|
|
||||||
# Use --static here if your OS only has static linking.
|
|
||||||
# TODO: Perhaps it's a bug in the libraries if their pkg-config files doesn't
|
|
||||||
# record that only static libraries were built.
|
|
||||||
# exec pkg-config --static "$@"
|
|
Loading…
x
Reference in New Issue
Block a user