Moduels: Refine the description

pull/2169/head
winlin 4 years ago
parent b29827d22c
commit 7bdc9e8e96

@ -1,4 +1,5 @@
# generate the module info to Makefile #
# Generate the module(in src, not modules) info to Makefile
# #
# params: # params:
# $SRS_OBJS the objs directory to store the Makefile. ie. ./objs # $SRS_OBJS the objs directory to store the Makefile. ie. ./objs

@ -0,0 +1,7 @@
# Reset all variables for config of modules.
SRS_MODULE_NAME=()
SRS_MODULE_MAIN=()
SRS_MODULE_APP=()
SRS_MODULE_DEFINES=""

29
trunk/configure vendored

@ -57,14 +57,11 @@ __mfiles=`find modules -name "config"` && for __mfile in $__mfiles; do
done done
# variables for makefile for all modules. # variables for makefile for all modules.
__mphonys="" && __mdefaults="" && __mcleanups="" && __makefiles="" __mphonys="" && __mdefaults="" && __mcleanups=""
# add each modules for application # add each modules for application
for SRS_MODULE in ${SRS_MODULES[*]}; do for SRS_MODULE in ${SRS_MODULES[*]}; do
echo "install module at: $SRS_MODULE" echo "install module at: $SRS_MODULE"
. $SRS_MODULE/config . auto/reset_module.sh && . $SRS_MODULE/config
if [[ $SRS_MODULE_MAKEFILE != "" ]]; then
__makefiles="$__makefiles $SRS_MODULE_MAKEFILE"
fi
if [[ 0 -ne ${#SRS_MODULE_MAIN[@]} ]]; then if [[ 0 -ne ${#SRS_MODULE_MAIN[@]} ]]; then
__mphonys="$__mphonys $SRS_MODULE_NAME" __mphonys="$__mphonys $SRS_MODULE_NAME"
__mdefaults="$__mdefaults $SRS_MODULE_NAME" __mdefaults="$__mdefaults $SRS_MODULE_NAME"
@ -299,7 +296,7 @@ fi
DEFINES="" DEFINES=""
# add each modules for app # add each modules for app
for SRS_MODULE in ${SRS_MODULES[*]}; do for SRS_MODULE in ${SRS_MODULES[*]}; do
. $SRS_MODULE/config . auto/reset_module.sh && . $SRS_MODULE/config
MODULE_FILES+=("${SRS_MODULE_APP[*]}") MODULE_FILES+=("${SRS_MODULE_APP[*]}")
DEFINES="${DEFINES} ${SRS_MODULE_DEFINES}" DEFINES="${DEFINES} ${SRS_MODULE_DEFINES}"
done done
@ -340,7 +337,7 @@ MODULE_FILES=()
DEFINES="" DEFINES=""
# add each modules for main # add each modules for main
for SRS_MODULE in ${SRS_MODULES[*]}; do for SRS_MODULE in ${SRS_MODULES[*]}; do
. $SRS_MODULE/config . auto/reset_module.sh && . $SRS_MODULE/config
MODULE_FILES+=("${SRS_MODULE_MAIN[*]}") MODULE_FILES+=("${SRS_MODULE_MAIN[*]}")
DEFINES="${DEFINES} ${SRS_MODULE_DEFINES}" DEFINES="${DEFINES} ${SRS_MODULE_DEFINES}"
done done
@ -354,7 +351,7 @@ MAIN_OBJS="${MODULE_OBJS[@]}"
# all main entrances # all main entrances
MAIN_ENTRANCES=("srs_main_server") MAIN_ENTRANCES=("srs_main_server")
for SRS_MODULE in ${SRS_MODULES[*]}; do for SRS_MODULE in ${SRS_MODULES[*]}; do
. $SRS_MODULE/config . auto/reset_module.sh && . $SRS_MODULE/config
MAIN_ENTRANCES+=("${SRS_MODULE_MAIN[*]}") MAIN_ENTRANCES+=("${SRS_MODULE_MAIN[*]}")
done done
# #
@ -389,7 +386,7 @@ LINK_OPTIONS="${SrsLinkOptions}${SrsGprofLink}${SrsGperfLink}"
# srs: srs(simple rtmp server) over st(state-threads) # srs: srs(simple rtmp server) over st(state-threads)
BUILD_KEY="srs" APP_MAIN="srs_main_server" APP_NAME="srs" . auto/apps.sh BUILD_KEY="srs" APP_MAIN="srs_main_server" APP_NAME="srs" . auto/apps.sh
# #
# For modules, without the app module. # For modules, with the app module.
MODULE_OBJS="${CORE_OBJS[@]} ${KERNEL_OBJS[@]} ${PROTOCOL_OBJS[@]} ${APP_OBJS[@]} ${MAIN_OBJS[@]}" MODULE_OBJS="${CORE_OBJS[@]} ${KERNEL_OBJS[@]} ${PROTOCOL_OBJS[@]} ${APP_OBJS[@]} ${MAIN_OBJS[@]}"
ModuleLibFiles=(${LibSTfile} ${LibSSLfile} ${LibGperfFile}) ModuleLibFiles=(${LibSTfile} ${LibSSLfile} ${LibGperfFile})
if [[ $SRS_RTC == YES ]]; then if [[ $SRS_RTC == YES ]]; then
@ -400,7 +397,7 @@ if [[ $SRS_FFMPEG_FIT == YES ]]; then
fi fi
# #
for SRS_MODULE in ${SRS_MODULES[*]}; do for SRS_MODULE in ${SRS_MODULES[*]}; do
. $SRS_MODULE/config . auto/reset_module.sh && . $SRS_MODULE/config
# no SRS_MODULE_MAIN # no SRS_MODULE_MAIN
if [[ 0 -eq ${#SRS_MODULE_MAIN[@]} ]]; then continue; fi if [[ 0 -eq ${#SRS_MODULE_MAIN[@]} ]]; then continue; fi
BUILD_KEY="$SRS_MODULE_NAME" APP_MAIN="${SRS_MODULE_MAIN[0]}" APP_NAME="$SRS_MODULE_NAME" . auto/apps.sh BUILD_KEY="$SRS_MODULE_NAME" APP_MAIN="${SRS_MODULE_MAIN[0]}" APP_NAME="$SRS_MODULE_NAME" . auto/apps.sh
@ -473,7 +470,7 @@ END
# the real entry for all platform: # the real entry for all platform:
cat << END >> ${SRS_WORKDIR}/${SRS_MAKEFILE} cat << END >> ${SRS_WORKDIR}/${SRS_MAKEFILE}
_default: server srs_ingest_hls utest __modules $__mdefaults _default: server srs_ingest_hls utest $__mdefaults
@bash objs/_srs_build_summary.sh @bash objs/_srs_build_summary.sh
help: help:
@ -558,14 +555,6 @@ ffmpeg:
END END
# for Makefile of all modules.
# depends on server, for some modules maybe use srs files.
echo "__modules: server" >> ${SRS_WORKDIR}/${SRS_MAKEFILE}
for MMF in ${__makefiles[*]}; do
echo " \$(MAKE) -f $MMF" >> ${SRS_WORKDIR}/${SRS_MAKEFILE}
done
echo "" >> ${SRS_WORKDIR}/${SRS_MAKEFILE}
cat << END >> ${SRS_WORKDIR}/${SRS_MAKEFILE} cat << END >> ${SRS_WORKDIR}/${SRS_MAKEFILE}
server: _prepare_dir server: _prepare_dir
@echo "Build the srs(simple rtmp server) over ST(state-threads)" @echo "Build the srs(simple rtmp server) over ST(state-threads)"
@ -574,7 +563,7 @@ server: _prepare_dir
END END
# generate all modules entry # generate all modules entry
for SRS_MODULE in ${SRS_MODULES[*]}; do for SRS_MODULE in ${SRS_MODULES[*]}; do
. $SRS_MODULE/config . auto/reset_module.sh && . $SRS_MODULE/config
cat << END >> ${SRS_WORKDIR}/${SRS_MAKEFILE} cat << END >> ${SRS_WORKDIR}/${SRS_MAKEFILE}
$SRS_MODULE_NAME: _prepare_dir server $SRS_MODULE_NAME: _prepare_dir server
@echo "Build the $SRS_MODULE_NAME over SRS" @echo "Build the $SRS_MODULE_NAME over SRS"

@ -4,4 +4,3 @@ SRS_MODULE_NAME=("srs_hls_ingester")
SRS_MODULE_MAIN=("srs_main_ingest_hls") SRS_MODULE_MAIN=("srs_main_ingest_hls")
SRS_MODULE_APP=() SRS_MODULE_APP=()
SRS_MODULE_DEFINES="" SRS_MODULE_DEFINES=""
SRS_MODULE_MAKEFILE=""

@ -4,4 +4,3 @@ SRS_MODULE_NAME=("srs_mp4_parser")
SRS_MODULE_MAIN=("srs_main_mp4_parser") SRS_MODULE_MAIN=("srs_main_mp4_parser")
SRS_MODULE_APP=() SRS_MODULE_APP=()
SRS_MODULE_DEFINES="" SRS_MODULE_DEFINES=""
SRS_MODULE_MAKEFILE=""

@ -1,5 +1,6 @@
SRS Module Rules(SRS模块规则)
1. Each module in its seperate home directory(一个模块一个目录). SRS Application Module Rules(SRS应用模块规则)
1. Each module in its isolate home directory(一个模块一个目录).
2. There is a config file in home(目录下放一个config文件). 2. There is a config file in home(目录下放一个config文件).
3. All variables in configure are available(所有的configure中的变量模块中可以使用). 3. All variables in configure are available(所有的configure中的变量模块中可以使用).
@ -8,20 +9,12 @@ The Variables in config(模块中需要定义变量,例如):
2. SRS_MODULE_MAINThe source file in src/main directory, optional. (模块的main函数所在的cpp文件在src/main目录。模块在main的文件。可以为空。) 2. SRS_MODULE_MAINThe source file in src/main directory, optional. (模块的main函数所在的cpp文件在src/main目录。模块在main的文件。可以为空。)
3. SRS_MODULE_APPThe source file in src/app directory, optional. (模块在src/app目录的源文件列表。模块在app的文件。可以为空。) 3. SRS_MODULE_APPThe source file in src/app directory, optional. (模块在src/app目录的源文件列表。模块在app的文件。可以为空。)
4. SRS_MODULE_DEFINES: The extra defined macros, optional. (模块编译时的额外宏定义。在app和main模块加入。可以为空。) 4. SRS_MODULE_DEFINES: The extra defined macros, optional. (模块编译时的额外宏定义。在app和main模块加入。可以为空。)
5. SRS_MODULE_MAKEFILE: The specified Makefile, optional. (模块的Makefile。在make时会执行这个Makefile。可以为空。)
Reset all Variables at the beginning(在配置开头必须清空这些变量):
SRS_MODULE_NAME=()
SRS_MODULE_MAIN=()
SRS_MODULE_APP=()
SRS_MODULE_DEFINES=""
SRS_MODULE_MAKEFILE=""
For example(下面是一个实例): For example(下面是一个RTMFP服务器实例):
SRS_MODULE_NAME=("srs_rtmfpd") SRS_MODULE_NAME=("srs_rtmfpd")
SRS_MODULE_MAIN=("srs_main_rtmfpd") SRS_MODULE_MAIN=("srs_main_rtmfpd")
SRS_MODULE_APP=("srs_app_rtfmpd") SRS_MODULE_APP=("srs_app_rtfmpd")
SRS_MODULE_DEFINES="-DRTMFPD" SRS_MODULE_DEFINES="-DRTMFPD"
SRS_MODULE_MAKEFILE="modules/rtmfpd/Makefile"
winlin, 2015.3 Winlin, 2015.3

Loading…
Cancel
Save