|
|
|
@ -17,7 +17,7 @@ help=no
|
|
|
|
|
# feature options
|
|
|
|
|
SRS_HDS=NO
|
|
|
|
|
SRS_SRT=NO
|
|
|
|
|
SRS_RTC=YES
|
|
|
|
|
SRS_RTC=RESERVED
|
|
|
|
|
SRS_GB28181=NO
|
|
|
|
|
SRS_CXX11=YES
|
|
|
|
|
SRS_CXX14=NO
|
|
|
|
@ -90,33 +90,15 @@ SRS_CLEAN=YES
|
|
|
|
|
SRS_SIMULATOR=NO
|
|
|
|
|
#
|
|
|
|
|
################################################################
|
|
|
|
|
# presets
|
|
|
|
|
# for x86/x64 pc/servers
|
|
|
|
|
# Preset, for x86_64 servers
|
|
|
|
|
SRS_X86_X64=NO
|
|
|
|
|
# for osx system
|
|
|
|
|
# Preset, for osx/macOS PC.
|
|
|
|
|
SRS_OSX=NO
|
|
|
|
|
# dev, open all features for dev, no gperf/prof/arm.
|
|
|
|
|
SRS_DEV=NO
|
|
|
|
|
# dev, open main server feature for dev, no utest/research/librtmp
|
|
|
|
|
SRS_FAST_DEV=NO
|
|
|
|
|
# demo, for the demo of srs, @see: https://github.com/ossrs/srs/wiki/v1_CN_SampleDemo
|
|
|
|
|
SRS_DEMO=NO
|
|
|
|
|
# raspberry-pi, open hls/ssl/static
|
|
|
|
|
SRS_PI=NO
|
|
|
|
|
# cubieboard, donot open ffmpeg/nginx.
|
|
|
|
|
SRS_CUBIE=NO
|
|
|
|
|
# the most fast compile, nothing, only support vp6 RTMP.
|
|
|
|
|
SRS_FAST=NO
|
|
|
|
|
# only support RTMP with ssl.
|
|
|
|
|
SRS_PURE_RTMP=NO
|
|
|
|
|
# the most fast compile, nothing, only support vp6 RTMP.
|
|
|
|
|
SRS_DISABLE_ALL=NO
|
|
|
|
|
# all features is on
|
|
|
|
|
SRS_ENABLE_ALL=NO
|
|
|
|
|
# Preset, for cross build, for example, on Ubuntu.
|
|
|
|
|
SRS_CROSS_BUILD=NO
|
|
|
|
|
#
|
|
|
|
|
#####################################################################################
|
|
|
|
|
# Toolchain crossbuild for ARM or MIPS.
|
|
|
|
|
SRS_CROSS_BUILD=NO
|
|
|
|
|
# Toolchain cross-build for ARM or MIPS.
|
|
|
|
|
SRS_TOOL_CC=gcc
|
|
|
|
|
SRS_TOOL_CXX=g++
|
|
|
|
|
SRS_TOOL_AR=ar
|
|
|
|
@ -139,7 +121,7 @@ function show_help() {
|
|
|
|
|
|
|
|
|
|
Presets:
|
|
|
|
|
--x86-64, --x86-x64 For x86/x64 cpu, common pc and servers. Default: $(value2switch $SRS_X86_X64)
|
|
|
|
|
--arm Enable crossbuild for ARM, should also set bellow toolchain options. Default: $(value2switch $SRS_CROSS_BUILD)
|
|
|
|
|
--arm Enable cross-build for ARM, please set bellow Toolchain also. Default: $(value2switch $SRS_CROSS_BUILD)
|
|
|
|
|
--osx Enable build for OSX/Darwin AppleOS. Default: $(value2switch $SRS_OSX)
|
|
|
|
|
|
|
|
|
|
Features:
|
|
|
|
@ -179,11 +161,11 @@ Performance: @see https://blog.csdn.net/win_lin/article/details/5
|
|
|
|
|
|
|
|
|
|
Toolchain options: @see https://github.com/ossrs/srs/issues/1547#issuecomment-576078411
|
|
|
|
|
--static=on|off Whether add '-static' to link options. Default: $(value2switch $SRS_STATIC)
|
|
|
|
|
--cc=<CC> Use c compiler CC. Default: $SRS_TOOL_CC
|
|
|
|
|
--cxx=<CXX> Use c++ compiler CXX. Default: $SRS_TOOL_CXX
|
|
|
|
|
--ar=<AR> Use archive tool AR. Default: $SRS_TOOL_CXX
|
|
|
|
|
--ld=<LD> Use linker tool LD. Default: $SRS_TOOL_CXX
|
|
|
|
|
--randlib=<RANDLIB> Use randlib tool RANDLIB. Default: $SRS_TOOL_CXX
|
|
|
|
|
--cc=<CC> Toolchain: Use c compiler CC. Default: $SRS_TOOL_CC
|
|
|
|
|
--cxx=<CXX> Toolchain: Use c++ compiler CXX. Default: $SRS_TOOL_CXX
|
|
|
|
|
--ar=<AR> Toolchain: Use archive tool AR. Default: $SRS_TOOL_CXX
|
|
|
|
|
--ld=<LD> Toolchain: Use linker tool LD. Default: $SRS_TOOL_CXX
|
|
|
|
|
--randlib=<RANDLIB> Toolchain: Use randlib tool RANDLIB. Default: $SRS_TOOL_CXX
|
|
|
|
|
--extra-flags=<EFLAGS> Set EFLAGS as CFLAGS and CXXFLAGS. Also passed to ST as EXTRA_CFLAGS.
|
|
|
|
|
|
|
|
|
|
Experts:
|
|
|
|
@ -357,35 +339,41 @@ function parse_user_option() {
|
|
|
|
|
--debug) if [[ $value == off ]]; then SRS_DEBUG=NO; else SRS_DEBUG=YES; fi ;;
|
|
|
|
|
--debug-stats) if [[ $value == off ]]; then SRS_DEBUG_STATS=NO; else SRS_DEBUG_STATS=YES; fi ;;
|
|
|
|
|
|
|
|
|
|
# Deprecated, might be removed in future.
|
|
|
|
|
# Alias for --arm, cross build.
|
|
|
|
|
--arm) SRS_CROSS_BUILD=YES ;;
|
|
|
|
|
--mips) SRS_CROSS_BUILD=YES ;;
|
|
|
|
|
--pi) SRS_PI=YES ;;
|
|
|
|
|
--cubie) SRS_CUBIE=YES ;;
|
|
|
|
|
--dev) SRS_DEV=YES ;;
|
|
|
|
|
--fast-dev) SRS_FAST_DEV=YES ;;
|
|
|
|
|
--demo) SRS_DEMO=YES ;;
|
|
|
|
|
--fast) SRS_FAST=YES ;;
|
|
|
|
|
--disable-all) SRS_DISABLE_ALL=YES ;;
|
|
|
|
|
--pure-rtmp) SRS_PURE_RTMP=YES ;;
|
|
|
|
|
--full) SRS_ENABLE_ALL=YES ;;
|
|
|
|
|
--with-arm-ubuntu12) SRS_CROSS_BUILD=YES ;;
|
|
|
|
|
--without-arm-ubuntu12) SRS_CROSS_BUILD=NO ;;
|
|
|
|
|
--arm-ubuntu12) if [[ $value == off ]]; then SRS_CROSS_BUILD=NO; else SRS_CROSS_BUILD=YES; fi ;;
|
|
|
|
|
--with-mips-ubuntu12) SRS_CROSS_BUILD=YES ;;
|
|
|
|
|
--without-mips-ubuntu12) SRS_CROSS_BUILD=NO ;;
|
|
|
|
|
--mips-ubuntu12) if [[ $value == off ]]; then SRS_CROSS_BUILD=NO; else SRS_CROSS_BUILD=YES; fi ;;
|
|
|
|
|
|
|
|
|
|
# Removed features.
|
|
|
|
|
--export-librtmp-project) SRS_EXPORT_LIBRTMP_PROJECT=${value} ;;
|
|
|
|
|
--export-librtmp-single) SRS_EXPORT_LIBRTMP_SINGLE=${value} ;;
|
|
|
|
|
--with-librtmp) SRS_LIBRTMP=YES ;;
|
|
|
|
|
--without-librtmp) SRS_LIBRTMP=NO ;;
|
|
|
|
|
--librtmp) if [[ $value == off ]]; then SRS_LIBRTMP=NO; else SRS_LIBRTMP=YES; fi ;;
|
|
|
|
|
|
|
|
|
|
# Deprecated, might be removed in future.
|
|
|
|
|
--with-nginx) SRS_NGINX=YES ;;
|
|
|
|
|
--without-nginx) SRS_NGINX=NO ;;
|
|
|
|
|
--nginx) if [[ $value == off ]]; then SRS_NGINX=NO; else SRS_NGINX=YES; fi ;;
|
|
|
|
|
--with-ffmpeg) SRS_FFMPEG_TOOL=YES ;;
|
|
|
|
|
--without-ffmpeg) SRS_FFMPEG_TOOL=NO ;;
|
|
|
|
|
--ffmpeg-tool) if [[ $value == off ]]; then SRS_FFMPEG_TOOL=NO; else SRS_FFMPEG_TOOL=YES; fi ;;
|
|
|
|
|
--with-librtmp) SRS_LIBRTMP=YES ;;
|
|
|
|
|
--without-librtmp) SRS_LIBRTMP=NO ;;
|
|
|
|
|
--librtmp) if [[ $value == off ]]; then SRS_LIBRTMP=NO; else SRS_LIBRTMP=YES; fi ;;
|
|
|
|
|
--with-arm-ubuntu12) SRS_CROSS_BUILD=YES ;;
|
|
|
|
|
--without-arm-ubuntu12) SRS_CROSS_BUILD=NO ;;
|
|
|
|
|
--arm-ubuntu12) if [[ $value == off ]]; then SRS_CROSS_BUILD=NO; else SRS_CROSS_BUILD=YES; fi ;;
|
|
|
|
|
--with-mips-ubuntu12) SRS_CROSS_BUILD=YES ;;
|
|
|
|
|
--without-mips-ubuntu12) SRS_CROSS_BUILD=NO ;;
|
|
|
|
|
--mips-ubuntu12) if [[ $value == off ]]; then SRS_CROSS_BUILD=NO; else SRS_CROSS_BUILD=YES; fi ;;
|
|
|
|
|
|
|
|
|
|
# Ignore the options.
|
|
|
|
|
--demo) echo "Ignore $option" ;;
|
|
|
|
|
--dev) echo "Ignore $option" ;;
|
|
|
|
|
--fast-dev) echo "Ignore $option" ;;
|
|
|
|
|
--pi) echo "Ignore $option" ;;
|
|
|
|
|
--cubie) echo "Ignore $option" ;;
|
|
|
|
|
--fast) echo "Ignore $option" ;;
|
|
|
|
|
--pure-rtmp) echo "Ignore $option" ;;
|
|
|
|
|
--disable-all) echo "Ignore $option" ;;
|
|
|
|
|
--full) echo "Ignore $option" ;;
|
|
|
|
|
|
|
|
|
|
*)
|
|
|
|
|
echo "$0: error: invalid option \"$option\""
|
|
|
|
@ -447,6 +435,11 @@ function apply_detail_options() {
|
|
|
|
|
SRS_X86_X64=YES; opt="--x86-x64 $opt";
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# Setup the default values if not set.
|
|
|
|
|
if [[ $SRS_RTC == RESERVED ]]; then
|
|
|
|
|
SRS_RTC=YES; if [[ $SRS_CROSS_BUILD == YES ]]; then SRS_RTC=NO; fi
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# The SRT code in SRS requires c++11, although we build libsrt without c++11.
|
|
|
|
|
# TODO: FIXME: Remove c++11 code in SRT of SRS.
|
|
|
|
|
if [[ $SRS_SRT == YES ]]; then
|
|
|
|
@ -485,19 +478,16 @@ function apply_detail_options() {
|
|
|
|
|
|
|
|
|
|
# if specified export single file, export project first.
|
|
|
|
|
if [ $SRS_EXPORT_LIBRTMP_SINGLE != NO ]; then
|
|
|
|
|
echo "Warning: Ingore --export-librtmp-single"
|
|
|
|
|
SRS_EXPORT_LIBRTMP_SINGLE=NO
|
|
|
|
|
echo "Error: srs-librtmp is removed, please read https://github.com/ossrs/srs-librtmp/issues/32"; exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# disable almost all features for export srs-librtmp.
|
|
|
|
|
if [ $SRS_EXPORT_LIBRTMP_PROJECT != NO ]; then
|
|
|
|
|
echo "Warning: Ingore --export-librtmp-project"
|
|
|
|
|
SRS_EXPORT_LIBRTMP_PROJECT=NO
|
|
|
|
|
echo "Error: srs-librtmp is removed, please read https://github.com/ossrs/srs-librtmp/issues/32"; exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if [[ $SRS_LIBRTMP != NO ]]; then
|
|
|
|
|
echo "Warning: Ingore --librtmp"
|
|
|
|
|
SRS_LIBRTMP=NO
|
|
|
|
|
echo "Error: srs-librtmp is removed, please read https://github.com/ossrs/srs-librtmp/issues/32"; exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if [[ $SRS_RESEARCH != NO ]]; then
|
|
|
|
@ -581,12 +571,11 @@ regenerate_options
|
|
|
|
|
#####################################################################################
|
|
|
|
|
function check_option_conflicts() {
|
|
|
|
|
if [[ $SRS_TOOL_CC == '' || $SRS_TOOL_CXX == '' || $SRS_TOOL_AR == '' || $SRS_TOOL_LD == '' || $SRS_TOOL_RANDLIB == '' ]]; then
|
|
|
|
|
echo "No crossbuild tools, cc: $SRS_TOOL_CC, cxx: $SRS_TOOL_CXX, ar: $SRS_TOOL_AR, ld: $SRS_TOOL_LD, randlib: $SRS_TOOL_RANDLIB"; exit -1
|
|
|
|
|
echo "Error: No build toolchain, cc: $SRS_TOOL_CC, cxx: $SRS_TOOL_CXX, ar: $SRS_TOOL_AR, ld: $SRS_TOOL_LD, randlib: $SRS_TOOL_RANDLIB"; exit -1
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if [[ $SRS_CROSS_BUILD == YES && ($SRS_TOOL_CC == 'gcc' || $SRS_TOOL_CXX == 'g++' || $SRS_TOOL_AR == 'ar') ]]; then
|
|
|
|
|
echo "Warning: For crossbuild, must not use default toolchain, cc: $SRS_TOOL_CC, cxx: $SRS_TOOL_CXX, ar: $SRS_TOOL_AR"
|
|
|
|
|
SRS_CROSS_BUILD=NO
|
|
|
|
|
echo "Error: For cross build, should setup the toolchain(./configure -h|grep -i toolchain), cc: $SRS_TOOL_CC, cxx: $SRS_TOOL_CXX, ar: $SRS_TOOL_AR"; exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if [[ $SRS_NGINX == YES ]]; then
|
|
|
|
|