mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
support modules.
This commit is contained in:
parent
688890cd7a
commit
05d238f860
1 changed files with 93 additions and 13 deletions
106
trunk/configure
vendored
106
trunk/configure
vendored
|
@ -48,6 +48,35 @@ if [ $SRS_SSL = YES ]; then SrsLibrtmpSampleEntry="ssl";fi
|
|||
SrsUtestMakeEntry="@echo -e \"ignore utest for it's disabled\""
|
||||
if [ $SRS_UTEST = YES ]; then SrsUtestMakeEntry="(cd ${SRS_OBJS_DIR}/utest; \$(MAKE))"; fi
|
||||
|
||||
#####################################################################################
|
||||
# finger out modules to install.
|
||||
# where srs module is a dir which contains a config file.
|
||||
SRS_MODULES=""
|
||||
__mfiles=`find modules -name "config"` && for __mfile in $__mfiles; do
|
||||
SRS_MODULES="$SRS_MODULES `dirname $__mfile`"
|
||||
done
|
||||
|
||||
# variables for makefile for all modules.
|
||||
__mphonys="" && __mdefaults="" && __mcleanups=""
|
||||
# add each modules for application
|
||||
for SRS_MODULE in $SRS_MODULES; do
|
||||
echo "install module at: $SRS_MODULE"
|
||||
. $SRS_MODULE/config
|
||||
__mphonys="$__mphonys $SRS_MODULE_NAME"
|
||||
__mdefaults="$__mdefaults $SRS_MODULE_NAME"
|
||||
__mcleanups="$__mcleanups $SRS_MODULE_NAME"
|
||||
done
|
||||
|
||||
# clean the exists, when not export srs-librtmp.
|
||||
# do this only when the options is ok.
|
||||
if [ $SRS_EXPORT_LIBRTMP_PROJECT = NO ]; then
|
||||
if [[ -f Makefile ]]; then
|
||||
make clean
|
||||
fi
|
||||
fi
|
||||
# remove makefile
|
||||
rm -f ${SRS_WORKDIR}/${SRS_MAKEFILE}
|
||||
|
||||
#####################################################################################
|
||||
# build tools or compiler args.
|
||||
# enable gdb debug
|
||||
|
@ -166,6 +195,11 @@ if [ $SRS_EXPORT_LIBRTMP_PROJECT = NO ]; then
|
|||
MODULE_DEPENDS=("CORE" "KERNEL" "RTMP" "APP")
|
||||
ModuleLibIncs=(${LibSTRoot} ${SRS_OBJS_DIR} ${LibGperfRoot} ${LibHttpParserRoot})
|
||||
MODULE_FILES=("srs_main_server")
|
||||
# add each modules for main
|
||||
for SRS_MODULE in $SRS_MODULES; do
|
||||
. $SRS_MODULE/config
|
||||
MODULE_FILES="${MODULE_FILES[@]} $SRS_MODULE_MAIN"
|
||||
done
|
||||
MAIN_INCS="src/main"; MODULE_DIR=${MAIN_INCS} . auto/modules.sh
|
||||
MAIN_OBJS="${MODULE_OBJS[@]}"
|
||||
fi
|
||||
|
@ -178,6 +212,11 @@ fi
|
|||
if [ $SRS_EXPORT_LIBRTMP_PROJECT = NO ]; then
|
||||
# all main entrances
|
||||
MAIN_ENTRANCES=("srs_main_server")
|
||||
# add each modules for main
|
||||
for SRS_MODULE in $SRS_MODULES; do
|
||||
. $SRS_MODULE/config
|
||||
MAIN_ENTRANCES="${MAIN_ENTRANCES[@]} $SRS_MODULE_MAIN"
|
||||
done
|
||||
#
|
||||
# all depends libraries
|
||||
ModuleLibFiles=(${LibSTfile} ${LibHttpParserfile} ${LibSSLfile} ${LibGperfFile})
|
||||
|
@ -185,9 +224,13 @@ if [ $SRS_EXPORT_LIBRTMP_PROJECT = NO ]; then
|
|||
MODULE_OBJS="${CORE_OBJS[@]} ${KERNEL_OBJS[@]} ${RTMP_OBJS[@]} ${APP_OBJS[@]} ${MAIN_OBJS[@]}"
|
||||
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
|
||||
# add each modules for application
|
||||
for SRS_MODULE in $SRS_MODULES; do
|
||||
. $SRS_MODULE/config
|
||||
BUILD_KEY="$SRS_MODULE_NAME" APP_MAIN="$SRS_MODULE_MAIN" APP_NAME="$SRS_MODULE_NAME" . auto/apps.sh
|
||||
done
|
||||
fi
|
||||
# srs librtmp
|
||||
if [ $SRS_LIBRTMP = YES ]; then
|
||||
|
@ -214,8 +257,14 @@ fi
|
|||
#####################################################################################
|
||||
# makefile
|
||||
echo "generate Makefile"
|
||||
|
||||
# backup old makefile.
|
||||
rm -f ${SRS_WORKDIR}/${SRS_MAKEFILE}.bk &&
|
||||
mv ${SRS_WORKDIR}/${SRS_MAKEFILE} ${SRS_WORKDIR}/${SRS_MAKEFILE}.bk
|
||||
|
||||
# generate phony header
|
||||
cat << END > ${SRS_WORKDIR}/${SRS_MAKEFILE}
|
||||
.PHONY: default _default install install-api help clean server librtmp utest _prepare_dir
|
||||
.PHONY: default _default install install-api help clean server librtmp utest _prepare_dir $__mphonys
|
||||
|
||||
# install prefix.
|
||||
SRS_PREFIX=${SRS_PREFIX}
|
||||
|
@ -243,22 +292,26 @@ fi
|
|||
# the server, librtmp and utest
|
||||
# where the bellow will check and disable some entry by only echo.
|
||||
cat << END >> ${SRS_WORKDIR}/${SRS_MAKEFILE}
|
||||
_default: server librtmp utest
|
||||
_default: server librtmp utest $__mdefaults
|
||||
@bash objs/_srs_build_summary.sh
|
||||
|
||||
help:
|
||||
@echo "Usage: make <help>|<clean>|<server>|<librtmp>|<utest>|<install>|<install-api>|<uninstall>"
|
||||
@echo " help display this help menu"
|
||||
@echo " clean cleanup project"
|
||||
@echo " server build the srs(simple rtmp server) over st(state-threads)"
|
||||
@echo " librtmp build the client publish/play library, and samples"
|
||||
@echo " utest build the utest for srs"
|
||||
@echo " install install srs to the prefix path"
|
||||
@echo " install-api install srs and api-server to the prefix path"
|
||||
@echo " uninstall uninstall srs from prefix path"
|
||||
@echo " help display this help menu"
|
||||
@echo " clean cleanup project"
|
||||
@echo " server build the srs(simple rtmp server) over st(state-threads)"
|
||||
@echo " librtmp build the client publish/play library, and samples"
|
||||
@echo " utest build the utest for srs"
|
||||
@echo " install install srs to the prefix path"
|
||||
@echo " install-api install srs and api-server to the prefix path"
|
||||
@echo " uninstall uninstall srs from prefix path"
|
||||
@echo "@remark all modules will auto genearted and build"
|
||||
@echo "For example:"
|
||||
@echo " make"
|
||||
@echo " make help"
|
||||
|
||||
clean:
|
||||
(cd ${SRS_OBJS_DIR}; rm -rf srs srs_utest)
|
||||
(cd ${SRS_OBJS_DIR}; rm -rf srs srs_utest $__mcleanups)
|
||||
(cd ${SRS_OBJS_DIR}; rm -rf src research include lib)
|
||||
(cd ${SRS_OBJS_DIR}/utest; rm -rf *.o *.a)
|
||||
(cd research/librtmp; make clean)
|
||||
|
@ -281,6 +334,25 @@ server: _prepare_dir
|
|||
|
||||
END
|
||||
fi
|
||||
# generate all modules entry
|
||||
for SRS_MODULE in $SRS_MODULES; do
|
||||
. $SRS_MODULE/config
|
||||
# if export librtmp, donot build the bravo-ingest.
|
||||
if [ $SRS_EXPORT_LIBRTMP_PROJECT != NO ]; then
|
||||
cat << END >> ${SRS_WORKDIR}/${SRS_MAKEFILE}
|
||||
$SRS_MODULE_NAME: _prepare_dir
|
||||
@echo "donot build the $SRS_MODULE_NAME for srs-librtmp"
|
||||
|
||||
END
|
||||
else
|
||||
cat << END >> ${SRS_WORKDIR}/${SRS_MAKEFILE}
|
||||
$SRS_MODULE_NAME: _prepare_dir
|
||||
@echo "build the $SRS_MODULE_NAME over SRS"
|
||||
\$(MAKE) -f ${SRS_OBJS_DIR}/${SRS_MAKEFILE} $SRS_MODULE_NAME
|
||||
|
||||
END
|
||||
fi
|
||||
done
|
||||
|
||||
# disable install entry for srs-librtmp
|
||||
if [ $SRS_EXPORT_LIBRTMP_PROJECT != NO ]; then
|
||||
|
@ -390,6 +462,10 @@ _prepare_dir:
|
|||
@mkdir -p ${SRS_OBJS_DIR}
|
||||
END
|
||||
|
||||
# generate makefile ok, append the tails.
|
||||
cat ${SRS_WORKDIR}/${SRS_MAKEFILE}.bk >> ${SRS_WORKDIR}/${SRS_MAKEFILE} &&
|
||||
rm -f ${SRS_WORKDIR}/${SRS_MAKEFILE}.bk
|
||||
|
||||
echo 'configure ok! '
|
||||
|
||||
#####################################################################################
|
||||
|
@ -509,6 +585,10 @@ if [ $SRS_EXPORT_LIBRTMP_PROJECT = NO ]; then
|
|||
else
|
||||
echo -e "${GREEN}note: mips-ubuntu12 for srs are not builded${BLACK}"
|
||||
fi
|
||||
# add each modules for application
|
||||
for SRS_MODULE in $SRS_MODULES; do
|
||||
echo -e "${GREEN}module: $SRS_MODULE${BLACK}"
|
||||
done
|
||||
fi
|
||||
|
||||
#####################################################################################
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue