From 785d2fce08bf6f9a5f0d7fa480aec2d65a31fa2b Mon Sep 17 00:00:00 2001 From: winlin Date: Tue, 1 Jun 2021 12:29:22 +0800 Subject: [PATCH] Build: Support --shared-srt --- README.md | 1 + trunk/auto/depends.sh | 9 +++++++-- trunk/auto/options.sh | 8 ++++---- trunk/auto/setup_variables.sh | 2 +- trunk/configure | 1 + trunk/src/core/srs_core_version4.hpp | 2 +- 6 files changed, 15 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 90cb3fd92..4b178a802 100755 --- a/README.md +++ b/README.md @@ -188,6 +188,7 @@ For external services to work with SRS: ## V4 changes +* v4.0, 2021-06-01, Support --shared-srt to link with *.so for MPL license. 4.0.125 * v4.0, 2021-05-31, Use [SPDX-License-Identifier: MIT](https://spdx.dev/ids/). 4.0.124 * v4.0, 2021-05-28, Fix bugs for GB28181 and RTC. 4.0.123 * v4.0, 2021-05-21, Fix [#2370][bug #2370] bug for Firefox play stream(published by Chrome). 4.0.121 diff --git a/trunk/auto/depends.sh b/trunk/auto/depends.sh index f32464bdf..9f7524c04 100755 --- a/trunk/auto/depends.sh +++ b/trunk/auto/depends.sh @@ -656,7 +656,7 @@ if [[ $SRS_RTC == YES ]]; then fi ##################################################################################### -# ffmpeg-fix, for WebRTC to transcode AAC with Opus. +# ffmpeg-fit, for WebRTC to transcode AAC with Opus. ##################################################################################### if [[ $SRS_FFMPEG_FIT == YES ]]; then FFMPEG_OPTIONS="" @@ -743,7 +743,12 @@ if [[ $SRS_SRT == YES ]]; then exit -1; fi # Always disable c++11 for libsrt, because only the srt-app requres it. - LIBSRT_OPTIONS="--disable-app --enable-shared=0 --enable-static --enable-c++11=0" + LIBSRT_OPTIONS="--disable-app --enable-static --enable-c++11=0" + if [[ $SRS_SHARED_SRT == YES ]]; then + LIBSRT_OPTIONS="$LIBSRT_OPTIONS --enable-shared=1" + else + LIBSRT_OPTIONS="$LIBSRT_OPTIONS --enable-shared=0" + fi # Start build libsrt. rm -rf ${SRS_OBJS}/${SRS_PLATFORM}/srt-1-fit && cd ${SRS_OBJS}/${SRS_PLATFORM} && cp -R ../../3rdparty/srt-1-fit srt-1-fit && cd srt-1-fit && diff --git a/trunk/auto/options.sh b/trunk/auto/options.sh index 2f4ff4c90..b5b5ff80a 100755 --- a/trunk/auto/options.sh +++ b/trunk/auto/options.sh @@ -149,8 +149,8 @@ Experts: --sys-ssl=on|off Do not compile ssl, use system ssl(-lssl) if required. Default: $(value2switch $SRS_USE_SYS_SSL) --ssl-1-0=on|off Whether use openssl-1.0.*. Default: $(value2switch $SRS_SSL_1_0) --ssl-local=on|off Whether use local openssl, not system even exists. Default: $(value2switch $SRS_SSL_LOCAL) - --use-shared-st Use link shared libraries for ST which uses MPL license. Default: $(value2switch $SRS_SHARED_ST) - --use-shared-srt Use link shared libraries for SRT which uses MPL license. Default: $(value2switch $SRS_SHARED_SRT) + --shared-st=on|off Use link shared libraries for ST which uses MPL license. Default: $(value2switch $SRS_SHARED_ST) + --shared-srt=on|off Use link shared libraries for SRT which uses MPL license. Default: $(value2switch $SRS_SHARED_SRT) --clean=on|off Whether do 'make clean' when configure. Default: $(value2switch $SRS_CLEAN) --simulator=on|off RTC: Whether enable network simulator. Default: $(value2switch $SRS_SIMULATOR) --build-tag= Set the build object directory suffix. @@ -481,8 +481,8 @@ function regenerate_options() { SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --gcp=$(value2switch $SRS_GPERF_CP)" SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --gprof=$(value2switch $SRS_GPROF)" SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --static=$(value2switch $SRS_STATIC)" - SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --use-shared-st=$(value2switch $SRS_SHARED_ST)" - SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --use-shared-srt=$(value2switch $SRS_SHARED_SRT)" + SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --shared-st=$(value2switch $SRS_SHARED_ST)" + SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --shared-srt=$(value2switch $SRS_SHARED_SRT)" SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --log-verbose=$(value2switch $SRS_LOG_VERBOSE)" SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --log-info=$(value2switch $SRS_LOG_INFO)" SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --log-trace=$(value2switch $SRS_LOG_TRACE)" diff --git a/trunk/auto/setup_variables.sh b/trunk/auto/setup_variables.sh index 58db73df5..23440a001 100755 --- a/trunk/auto/setup_variables.sh +++ b/trunk/auto/setup_variables.sh @@ -17,7 +17,7 @@ else SRS_PLATFORM="${SRS_PLATFORM}-${GCC_VERSION}" fi # Use isolate cache for different SRS version. -SRS_PLATFORM="${SRS_PLATFORM}-SRS4" +SRS_PLATFORM="${SRS_PLATFORM}-SRS5" echo "SRS_WORKDIR: ${SRS_WORKDIR}, SRS_OBJS_DIR: ${SRS_OBJS_DIR}, SRS_OBJS: ${SRS_OBJS}, SRS_PLATFORM: ${SRS_PLATFORM}" diff --git a/trunk/configure b/trunk/configure index b0b4fbef7..9da08295a 100755 --- a/trunk/configure +++ b/trunk/configure @@ -164,6 +164,7 @@ fi if [[ $SRS_SRT == YES ]]; then SrsSRTRoot="${SRS_WORKDIR}/src/srt" LibSRTRoot="${SRS_OBJS_DIR}/srt/include"; LibSRTfile="${SRS_OBJS_DIR}/srt/lib/libsrt.a" + if [[ $SRS_SHARED_SRT == YES ]]; then LibSRTfile="-L${SRS_OBJS_DIR}/srt/lib -lsrt"; fi fi # For iconv on macOS only, CentOS seems ok. diff --git a/trunk/src/core/srs_core_version4.hpp b/trunk/src/core/srs_core_version4.hpp index dde935137..ab73c9e97 100644 --- a/trunk/src/core/srs_core_version4.hpp +++ b/trunk/src/core/srs_core_version4.hpp @@ -9,6 +9,6 @@ #define VERSION_MAJOR 4 #define VERSION_MINOR 0 -#define VERSION_REVISION 124 +#define VERSION_REVISION 125 #endif