正在显示
9 个修改的文件
包含
285 行增加
和
0 行删除
trunk/3rdparty/st-1.9.zip
0 → 100644
不能预览此文件类型
trunk/auto/apps.sh
0 → 100644
1 | +#!/bin/bash | ||
2 | + | ||
3 | +# params: | ||
4 | +# $GLOBAL_DIR_OBJS the objs directory. ie. objs | ||
5 | +# $GLOBAL_FILE_MAKEFILE the makefile name. ie. Makefile | ||
6 | +# $MAIN_ENTRANCES array, all main entrance, disable all except the $APP_MAIN itself | ||
7 | +# $MODULE_OBJS array, the objects to compile the app. | ||
8 | +# $BUILD_KEY a string indicates the build key for Makefile. ie. dump | ||
9 | +# $APP_MAIN the object file that contains main function. ie. your_app_main | ||
10 | +# $APP_NAME the app name to output. ie. your_app | ||
11 | +# $ModuleLibFiles array, the 3rdpart library file to link with. ie. (objs/st-1.9/obj/libst.a objs/libx264/obj/libx264.a) | ||
12 | +# $LINK_OPTIONS the linker options. | ||
13 | +# $SO_PATH the libssl.so.10 and other so file path. | ||
14 | + | ||
15 | +FILE=${GLOBAL_DIR_OBJS}/${GLOBAL_FILE_MAKEFILE} | ||
16 | + | ||
17 | +APP_TARGET="${GLOBAL_DIR_OBJS}/${APP_NAME}" | ||
18 | + | ||
19 | +echo "generate app ${APP_NAME} depends..."; | ||
20 | + | ||
21 | +echo "# build ${APP_TARGET}" >> ${FILE} | ||
22 | +echo "${BUILD_KEY}: ${APP_TARGET}" >> ${FILE} | ||
23 | + | ||
24 | +echo -n "${APP_TARGET}: " >> ${FILE} | ||
25 | +for item in ${MODULE_OBJS[*]}; do | ||
26 | + FILE_NAME=`basename $item` | ||
27 | + FILE_NAME=${FILE_NAME%.*} | ||
28 | + | ||
29 | + ignored=0 | ||
30 | + for disabled_item in ${MAIN_ENTRANCES[*]}; do | ||
31 | + if [[ ${FILE_NAME} == ${disabled_item} && ${FILE_NAME} != ${APP_MAIN} ]]; then | ||
32 | + ignored=1 | ||
33 | + continue; | ||
34 | + fi | ||
35 | + done | ||
36 | + | ||
37 | + if [ ! -f ${item} ]; then | ||
38 | + ignored=1 | ||
39 | + fi | ||
40 | + | ||
41 | + if [ ${ignored} == 1 ]; then | ||
42 | + continue; | ||
43 | + fi | ||
44 | + | ||
45 | + OBJ_FILE=${GLOBAL_DIR_OBJS}/$item | ||
46 | + OBJ_FILE="${OBJ_FILE%.*}.o" | ||
47 | + echo -n "${OBJ_FILE} " >> ${FILE} | ||
48 | +done | ||
49 | +echo "" >> ${FILE} | ||
50 | + | ||
51 | +echo "generate app ${APP_NAME} link..."; | ||
52 | + | ||
53 | +echo -n " \$(LINK) ${PerformanceLink} -o ${APP_TARGET} " >> ${FILE} | ||
54 | +for item in ${MODULE_OBJS[*]}; do | ||
55 | + FILE_NAME=`basename $item` | ||
56 | + FILE_NAME=${FILE_NAME%.*} | ||
57 | + | ||
58 | + ignored=0 | ||
59 | + for disabled_item in ${MAIN_ENTRANCES[*]}; do | ||
60 | + if [[ ${FILE_NAME} == ${disabled_item} && ${FILE_NAME} != ${APP_MAIN} ]]; then | ||
61 | + ignored=1 | ||
62 | + continue; | ||
63 | + fi | ||
64 | + done | ||
65 | + | ||
66 | + if [ ! -f ${item} ]; then | ||
67 | + ignored=1 | ||
68 | + fi | ||
69 | + | ||
70 | + if [ ${ignored} == 1 ]; then | ||
71 | + continue; | ||
72 | + fi | ||
73 | + | ||
74 | + OBJ_FILE=${GLOBAL_DIR_OBJS}/$item | ||
75 | + OBJ_FILE="${OBJ_FILE%.*}.o" | ||
76 | + echo -n "${OBJ_FILE} " >> ${FILE} | ||
77 | +done | ||
78 | +# 3rdpart library static link. | ||
79 | +for item in ${ModuleLibFiles[*]}; do | ||
80 | + echo -n "$item " >> ${FILE} | ||
81 | +done | ||
82 | +# link options. | ||
83 | +echo -n "${LINK_OPTIONS}" >> ${FILE} | ||
84 | +echo "" >> ${FILE} | ||
85 | + | ||
86 | +# set the so reference path. | ||
87 | +if [[ ! -z ${SO_PATH} ]]; then | ||
88 | + echo -n " @bash auto/set_so_rpath.sh ${SOPathTool} ${APP_TARGET} ${SO_PATH}" >> ${FILE} | ||
89 | + echo "" >> ${FILE} | ||
90 | +fi | ||
91 | + | ||
92 | +echo -n "generate app ${APP_NAME} ok"; echo '!'; |
trunk/auto/modules.sh
0 → 100644
1 | +# params: | ||
2 | +# $GLOBAL_DIR_OBJS the objs directory. ie. objs | ||
3 | +# $GLOBAL_FILE_MAKEFILE the makefile name. ie. Makefile | ||
4 | +# $MODULE_DIR the module dir. ie. src/os/linux | ||
5 | +# $MODULE_ID the id of module. ie. CORE | ||
6 | +# $MODULE_DEPENDS array, the denpend MODULEs id. ie. (CORE OS) | ||
7 | +# $ModuleLibIncs array, the depend 3rdpart library includes. ie. (objs/st-1.9/obj objs/libx264/obj) | ||
8 | +# $MODULE_FILES array, the head/cpp files of modules. ie. (public log) | ||
9 | +# | ||
10 | +# returns: | ||
11 | +# $MODULE_OBJS array, the objects of the modules. | ||
12 | + | ||
13 | +FILE=${GLOBAL_DIR_OBJS}/${GLOBAL_FILE_MAKEFILE} | ||
14 | + | ||
15 | +# INCS | ||
16 | +INCS_NAME="${MODULE_ID}_INCS" | ||
17 | +echo "# the ${MODULE_ID} module." >> ${FILE} | ||
18 | +echo "${MODULE_ID}_MODULE_INCS = -I ${MODULE_DIR} " >> ${FILE} | ||
19 | +echo -n "${INCS_NAME} = -I ${MODULE_DIR} " >> ${FILE} | ||
20 | +for item in ${MODULE_DEPENDS[*]}; do | ||
21 | + DEP_INCS_NAME="${item}_INCS"do | ||
22 | + DEP_INCS_NAME="${item}_MODULE_INCS" | ||
23 | + echo -n "\$(${DEP_INCS_NAME}) " >> ${FILE} | ||
24 | +done | ||
25 | +for item in ${ModuleLibIncs[*]}; do | ||
26 | + echo -n "-I ${item} " >> ${FILE} | ||
27 | +done | ||
28 | +echo "" >> ${FILE} | ||
29 | + | ||
30 | +# DEPS | ||
31 | +DEPS_NAME="${MODULE_ID}_DEPS" | ||
32 | +echo -n "${DEPS_NAME} = " >> ${FILE} | ||
33 | +for item in ${MODULE_FILES[*]}; do | ||
34 | + HEADER_FILE="${MODULE_DIR}/${item}.hpp" | ||
35 | + if [ -f ${HEADER_FILE} ]; then | ||
36 | + echo -n " ${HEADER_FILE}" >> ${FILE} | ||
37 | + fi | ||
38 | +done | ||
39 | +for item in ${MODULE_DEPENDS[*]}; do | ||
40 | + DEP_DEPS_NAME="${item}_DEPS" | ||
41 | + echo -n " \$(${DEP_DEPS_NAME}) " >> ${FILE} | ||
42 | +done | ||
43 | +echo "" >> ${FILE}; echo "" >> ${FILE} | ||
44 | + | ||
45 | +# OBJ | ||
46 | +MODULE_OBJS=() | ||
47 | +for item in ${MODULE_FILES[*]}; do | ||
48 | + CPP_FILE="${MODULE_DIR}/${item}.cpp" | ||
49 | + OBJ_FILE="${GLOBAL_DIR_OBJS}/${MODULE_DIR}/${item}.o" | ||
50 | + MODULE_OBJS="${MODULE_OBJS[@]} ${CPP_FILE}" | ||
51 | + if [ -f ${CPP_FILE} ]; then | ||
52 | + echo "${OBJ_FILE}: \$(${DEPS_NAME}) ${CPP_FILE} " >> ${FILE} | ||
53 | + echo " \$(GCC) -c \$(CXXFLAGS) \$(${INCS_NAME}) -o ${OBJ_FILE} ${CPP_FILE}" >> ${FILE} | ||
54 | + fi | ||
55 | +done | ||
56 | +echo "" >> ${FILE} | ||
57 | + | ||
58 | +# Makefile | ||
59 | +echo " mkdir -p ${GLOBAL_DIR_OBJS}/${MODULE_DIR}" >> ${GLOBAL_FILE_MAKEFILE} | ||
60 | + | ||
61 | +echo -n "generate module ${MODULE_ID} ok"; echo '!'; |
trunk/configure
0 → 100755
1 | +#!/bin/bash | ||
2 | + | ||
3 | +GLOBAL_FILE_MAKEFILE="Makefile" | ||
4 | +GLOBAL_DIR_OBJS="objs" | ||
5 | + | ||
6 | +mkdir -p ${GLOBAL_DIR_OBJS} | ||
7 | + | ||
8 | +##################################################################################### | ||
9 | +# prepare the depends tools | ||
10 | +##################################################################################### | ||
11 | +# st-1.9 | ||
12 | +if [[ -f ${GLOBAL_DIR_OBJS}/st-1.9/obj/libst.a && -f ${GLOBAL_DIR_OBJS}/st-1.9/obj/libst.so ]]; then | ||
13 | + echo "st-1.9t is ok."; | ||
14 | +else | ||
15 | + echo "build st-1.9t"; | ||
16 | + (rm -rf ${GLOBAL_DIR_OBJS}/st-1.9 && cd ${GLOBAL_DIR_OBJS} && unzip ../3rdparty/st-1.9.zip && cd st-1.9 && make linux-debug) | ||
17 | +fi | ||
18 | +# check status | ||
19 | +ret=$?; if [[ $ret -ne 0 ]]; then echo "build st-1.9 failed, ret=$ret"; exit $ret; fi | ||
20 | +if [ ! -f ${GLOBAL_DIR_OBJS}/st-1.9/obj/libst.a ]; then echo "build st-1.9 failed."; exit -1; fi | ||
21 | +if [ ! -f ${GLOBAL_DIR_OBJS}/st-1.9/obj/libst.so ]; then echo "build st-1.9 failed."; exit -1; fi | ||
22 | + | ||
23 | +##################################################################################### | ||
24 | +# generate Makefile. | ||
25 | +##################################################################################### | ||
26 | +echo "generate Makefile" | ||
27 | + | ||
28 | +cat << END > ${GLOBAL_FILE_MAKEFILE} | ||
29 | +.PHONY: default help clean server _prepare_dir | ||
30 | +default: server | ||
31 | + | ||
32 | +help: | ||
33 | + @echo "Usage: make <help>|<clean>|<server>" | ||
34 | + @echo " help display this help menu" | ||
35 | + @echo " clean cleanup project" | ||
36 | + @echo " server build the srs(simple rtmp server) over st(state-threads)" | ||
37 | + | ||
38 | +clean: | ||
39 | + (cd ${GLOBAL_DIR_OBJS}; rm -rf src st_*_load) | ||
40 | + | ||
41 | +server: _prepare_dir | ||
42 | + @echo "build the srs(simple rtmp server) over st(state-threads)" | ||
43 | + \$(MAKE) -f ${GLOBAL_DIR_OBJS}/${GLOBAL_FILE_MAKEFILE} server | ||
44 | + | ||
45 | +# the ./configure will generate it. | ||
46 | +_prepare_dir: | ||
47 | + @mkdir -p ${GLOBAL_DIR_OBJS} | ||
48 | +END | ||
49 | + | ||
50 | +echo 'generate Makefile ok!' | ||
51 | + | ||
52 | +# the performance analysis, uncomments the following when use gperf to analysis the performance. see third-party/readme.txt | ||
53 | +#Performance="-pg" | ||
54 | +#PerformanceLink="-pg" | ||
55 | +# enable gdb debug | ||
56 | +GDBDebug="-g -O0" | ||
57 | +# the warning level. | ||
58 | +WarnLevel="-Wall -Wextra" | ||
59 | +# the compile standard. | ||
60 | +CppStd="-std=c++98" | ||
61 | +# other macros defined | ||
62 | +UserMacros="" | ||
63 | +# the cxx flag generated. | ||
64 | +CXXFLAGS="${CppStd} ${WarnLevel} ${GDBDebug} ${Performance} ${UserMacros}" | ||
65 | +cat << END > ${GLOBAL_DIR_OBJS}/${GLOBAL_FILE_MAKEFILE} | ||
66 | +CXXFLAGS = ${CXXFLAGS} | ||
67 | +GCC = g++ | ||
68 | +LINK = \$(GCC) | ||
69 | +AR = ar | ||
70 | + | ||
71 | +.PHONY: default server | ||
72 | + | ||
73 | +default: | ||
74 | + | ||
75 | +END | ||
76 | + | ||
77 | +# Libraries | ||
78 | +LibSTRoot="${GLOBAL_DIR_OBJS}/st-1.9/obj" | ||
79 | +LibSTfile="${LibSTRoot}/libst.a" | ||
80 | + | ||
81 | +#Core Module | ||
82 | +MODULE_ID="CORE" | ||
83 | +MODULE_DEPENDS=() | ||
84 | +ModuleLibIncs=() | ||
85 | +MODULE_FILES=("srs_core_log") | ||
86 | +MODULE_DIR="src/core" . auto/modules.sh | ||
87 | +CORE_OBJS="${MODULE_OBJS[@]}" | ||
88 | + | ||
89 | +#Main Module | ||
90 | +MODULE_ID="MAIN" | ||
91 | +MODULE_DEPENDS=("CORE") | ||
92 | +ModuleLibIncs=(${LibSTRoot}) | ||
93 | +MODULE_FILES=("srs_main_server") | ||
94 | +MODULE_DIR="src/main" . auto/modules.sh | ||
95 | +MAIN_OBJS="${MODULE_OBJS[@].o}" | ||
96 | + | ||
97 | +# all main entrances | ||
98 | +MAIN_ENTRANCES=("srs_main_server") | ||
99 | + | ||
100 | +# srs(simple rtmp server) over st(state-threads) | ||
101 | +ModuleLibFiles=(${LibSTfile}) | ||
102 | +MODULE_OBJS="${CORE_OBJS[@]} ${CONFIG_OBJS[@]} ${PROTOCOL_OBJS[@]} ${MAIN_OBJS[@]}" | ||
103 | +BUILD_KEY="server" APP_MAIN="srs_main_server" APP_NAME="server" LINK_OPTIONS="-ldl" SO_PATH="" . auto/apps.sh | ||
104 | + | ||
105 | +echo 'configure ok! ' | ||
106 | + | ||
107 | +# next step. | ||
108 | +echo "you can:" | ||
109 | +echo "\" make \" to build the srs(simple rtmp server)." | ||
110 | +echo "\" make help \" to get the usage of make" |
trunk/src/core/srs_core_log.cpp
0 → 100755
1 | +#include <srs_core_log.hpp> |
trunk/src/core/srs_core_log.hpp
0 → 100755
trunk/src/main/srs_main_server.cpp
0 → 100755
trunk/src/upp/init
0 → 100755
-
请 注册 或 登录 后发表评论