126 lines
4.5 KiB
Bash
Executable File
126 lines
4.5 KiB
Bash
Executable File
#!/bin/bash
|
|
#######################################################################
|
|
# Copyright (c): 2020-2025, Huawei Tech. Co., Ltd.
|
|
# descript: Compile and pack openGauss
|
|
# Return 0 means OK.
|
|
# Return 1 means failed.
|
|
# version: 2.0
|
|
# date: 2020-08-08
|
|
#######################################################################
|
|
declare build_version_mode='release'
|
|
declare build_binarylib_dir='None'
|
|
declare wrap_binaries='NO'
|
|
declare not_optimized=''
|
|
declare config_file=''
|
|
declare product_mode='opengauss'
|
|
declare extra_config_opt=''
|
|
#########################################################################
|
|
##read command line paramenters
|
|
#######################################################################
|
|
|
|
function print_help()
|
|
{
|
|
echo "Usage: $0 [OPTION]
|
|
-h|--help show help information
|
|
-m|--version_mode this values of paramenter is debug, release, memcheck or mini, the default value is release
|
|
-3rd|--binarylib_dir the parent directory of binarylibs
|
|
-pkg|--package (deprecated option)package the project,by default, only compile the project
|
|
-wrap|--wrap_binaries wrop up the project binaries. By default, only compile the project
|
|
-nopt|--not_optimized on kunpeng platform, like 1616 version, without LSE optimized
|
|
-f|--config_file set postgresql.conf.sample from config_file when packing
|
|
-T|--tassl build with tassl
|
|
-pm|--product_mode this values of paramenter is opengauss or lite or finance, the default value is opengauss.
|
|
-nls|--enable_nls enable Native Language Support
|
|
--relocation generate gaussdb.map with relocation(GCC >=10.3).
|
|
--cmake use cmake to build openGauss, which is faster than traditional configure/autoconf
|
|
"
|
|
}
|
|
|
|
while [ $# -gt 0 ]; do
|
|
case "$1" in
|
|
-h|--help)
|
|
print_help
|
|
exit 1
|
|
;;
|
|
-m|--version_mode)
|
|
if [ "$2"X = X ]; then
|
|
echo "no given correct version information, such as: debug/release/memcheck/mini"
|
|
exit 1
|
|
fi
|
|
build_version_mode=$2
|
|
shift 2
|
|
;;
|
|
-pkg|--package|-wrap|--wrap_binaries)
|
|
wrap_binaries='YES'
|
|
shift 1
|
|
;;
|
|
-3rd|--binarylib_dir)
|
|
if [ "$2"X = X ]; then
|
|
echo "no given binarylib directory values"
|
|
exit 1
|
|
fi
|
|
build_binarylib_dir=$2
|
|
shift 2
|
|
;;
|
|
-nopt|--not_optimized)
|
|
not_optimized='-nopt'
|
|
shift 1
|
|
;;
|
|
-f|--config_file)
|
|
if [[ ! -f "$2" ]]
|
|
then
|
|
echo "config_file does not exist"
|
|
exit 1
|
|
fi
|
|
config_file=$(realpath "$2")
|
|
shift 2
|
|
;;
|
|
-pm|--product_mode)
|
|
product_mode=$2
|
|
shift 2
|
|
;;
|
|
-T|--tassl)
|
|
build_with_tassl='-T'
|
|
shift 1
|
|
;;
|
|
-nls|--enable_nls)
|
|
extra_config_opt="$extra_config_opt --config_opt --enable-nls=zh_CN "
|
|
shift 1
|
|
;;
|
|
--relocation)
|
|
extra_config_opt="$extra_config_opt --config_opt --enable-relocation "
|
|
shift 1
|
|
;;
|
|
-C|--cmake)
|
|
build_by_cmake='--cmake'
|
|
shift 1
|
|
;;
|
|
*)
|
|
echo "Internal Error: option processing error: $1" 1>&2
|
|
echo "please input right paramtenter, the following command may help you"
|
|
echo "./build.sh --help or ./build.sh -h"
|
|
exit 1
|
|
esac
|
|
done
|
|
|
|
|
|
ROOT_DIR=$(cd $(dirname "${BASH_SOURCE[0]}") && pwd)
|
|
echo "ROOT_DIR : $ROOT_DIR"
|
|
cd build/script
|
|
chmod a+x build_opengauss.sh
|
|
./build_opengauss.sh -m ${build_version_mode} -3rd ${build_binarylib_dir} ${not_optimized} -pkg server ${build_with_tassl} -pm ${product_mode} ${extra_config_opt} ${build_by_cmake}
|
|
if [ $? -ne 0 ]; then
|
|
echo "build_opengauss.sh failed, aborting."
|
|
exit 1
|
|
fi
|
|
|
|
if [ "${wrap_binaries}"X = "YES"X ]; then
|
|
chmod a+x package_opengauss.sh
|
|
if [ X$config_file = "X" ];then
|
|
./package_opengauss.sh -3rd ${build_binarylib_dir} -m ${build_version_mode} -pm ${product_mode}
|
|
else
|
|
./package_opengauss.sh -3rd ${build_binarylib_dir} -m ${build_version_mode} -f ${config_file} -pm ${product_mode}
|
|
fi
|
|
fi
|
|
exit 0
|