You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

64 lines
3.2 KiB

#!/bin/bash
# 编译配置
ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" # 获得 本编译脚本项目 自身所在的目录(也就是 本编译脚本项目 的根目录)
TARGET="${ROOT}/target-64-sse2" # 设置编译的输出目标位置
DIST="${ROOT}/distfiles" # 设置运行 本编译脚本项目 需要的依赖库目录
LUX_TAG="${1%/}" # LuxCore项目目录
STAGE=$2 # 设置当前编译阶段
GENERIC_FLAGS="-w -mtune=generic -mno-ssse3 -mmmx -msse -msse2 -O2 -pipe -mfpmath=sse -fPIC" # 设置 将一个通用的 GCC 编译参数,作为 执行编译LuxCore项目时 的参数。
LUXCORE_FLAGS="-std=c++11 -mtune=generic -mno-ssse3 -static-libgcc -mmmx -msse -msse2 -O3 -pipe \
-mfpmath=sse -fvisibility=hidden -fvisibility-inlines-hidden \
-ftree-vectorize -fno-math-errno -fno-signed-zeros -fno-trapping-math \
-fassociative-math -fno-rounding-math -fno-signaling-nans \
-fcx-limited-range -DBOOST_DISABLE_ASSERTS -floop-interchange \
-floop-strip-mine -floop-block -fsee -ftree-loop-linear \
-ftree-loop-distribution -ftree-loop-im -fivopts -ftracer \
-fomit-frame-pointer \
-DHAVE_PTHREAD_H -fPIC -fno-stack-protector" # 设置 一个特定 GCC 编译参数,作为 执行编译LuxCore项目时 的参数。
CHOST="x86_64-pc-linux-gnu" # 设置编译目标 系统平台
# 向系统注册环境变量,生命周期为 本编译脚本项目 运行结束 为止
unset CC CXX # 注销两个变量
export LDFLAGS="-static-libgcc -static-libstdc++"
export PYTHON_CMD="python3.10"
export PYTHON_CMD="python3"
export SHELLROOT="$ROOT" # 将 本 shell项目 的根目录注册到环境变量
export CORE_COUNT=$(( `grep processor /proc/cpuinfo | wc -l` + 1)) # 根据CPU信息,充许N个编译任务同时进行
export MAKEOPTS="-j $CORE_COUNT" # 根据CPU信息,充许N个编译任务同时进行
export CFLAGS="$GENERIC_FLAGS" # 通用的编译参数
export CXXFLAGS="${CFLAGS}" # 通用的编译参数
export CHOST="$7" # 特定的编译参数
export CBUILD=$CHOST # 特定的编译参数
CONFIGOPTS="--build=$CBUILD --host=$CHOST" # 特定的编译参数
# 编译前,检查各种依赖文件包、C++标准库、python版本及其标准库 以及 编译目标目录树结构,否是已准备就续
echo $BOUNDARYSTART
if ! $SHELLROOT/utils/prepare "$TARGET" "$DIST"
then exit 1
fi
echo $BOUNDARYEND
# 执行 build构建脚本,如果脚本执行错误,将终止脚本运行
if ! $ROOT/build "$ROOT" "$TARGET" "$WORK" "$DIST" "$LUX_TAG" "$GENERIC_FLAGS" "$LUX_FLAGS" "$CHOST" "$STAGE"
then
exit 1
fi
exit 0