#!/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