正在显示
4 个修改的文件
包含
274 行增加
和
129 行删除
| 1 | #!/bin/bash | 1 | #!/bin/bash |
| 2 | 2 | ||
| 3 | -# variables: | ||
| 4 | -# SRS_JOBS: the build jobs, parent script must set it. | 3 | +# variables, parent script must set it: |
| 4 | +# SRS_JOBS: the build jobs. | ||
| 5 | +# SrsArmMakeOptions: the arm make options for ubuntu12(armhf, v7cpu) | ||
| 5 | 6 | ||
| 6 | ##################################################################################### | 7 | ##################################################################################### |
| 7 | ##################################################################################### | 8 | ##################################################################################### |
| @@ -33,7 +34,7 @@ function Ubuntu_prepare() | @@ -33,7 +34,7 @@ function Ubuntu_prepare() | ||
| 33 | { | 34 | { |
| 34 | uname -v|grep Ubuntu >/dev/null 2>&1 | 35 | uname -v|grep Ubuntu >/dev/null 2>&1 |
| 35 | ret=$?; if [[ 0 -ne $ret ]]; then | 36 | ret=$?; if [[ 0 -ne $ret ]]; then |
| 36 | - return; | 37 | + return 0; |
| 37 | fi | 38 | fi |
| 38 | 39 | ||
| 39 | echo "Ubuntu detected, install tools if needed" | 40 | echo "Ubuntu detected, install tools if needed" |
| @@ -41,69 +42,80 @@ function Ubuntu_prepare() | @@ -41,69 +42,80 @@ function Ubuntu_prepare() | ||
| 41 | gcc --help >/dev/null 2>&1; ret=$?; if [[ 0 -ne $ret ]]; then | 42 | gcc --help >/dev/null 2>&1; ret=$?; if [[ 0 -ne $ret ]]; then |
| 42 | echo "install gcc" | 43 | echo "install gcc" |
| 43 | require_sudoer "sudo apt-get install -y --force-yes gcc" | 44 | require_sudoer "sudo apt-get install -y --force-yes gcc" |
| 44 | - sudo apt-get install -y --force-yes gcc | 45 | + sudo apt-get install -y --force-yes gcc; ret=$?; if [[ 0 -ne $ret ]]; then return $ret; fi |
| 45 | echo "install gcc success" | 46 | echo "install gcc success" |
| 46 | fi | 47 | fi |
| 47 | 48 | ||
| 48 | g++ --help >/dev/null 2>&1; ret=$?; if [[ 0 -ne $ret ]]; then | 49 | g++ --help >/dev/null 2>&1; ret=$?; if [[ 0 -ne $ret ]]; then |
| 49 | echo "install g++" | 50 | echo "install g++" |
| 50 | require_sudoer "sudo apt-get install -y --force-yes g++" | 51 | require_sudoer "sudo apt-get install -y --force-yes g++" |
| 51 | - sudo apt-get install -y --force-yes g++ | 52 | + sudo apt-get install -y --force-yes g++; ret=$?; if [[ 0 -ne $ret ]]; then return $ret; fi |
| 52 | echo "install g++ success" | 53 | echo "install g++ success" |
| 53 | fi | 54 | fi |
| 54 | 55 | ||
| 55 | make --help >/dev/null 2>&1; ret=$?; if [[ 0 -ne $ret ]]; then | 56 | make --help >/dev/null 2>&1; ret=$?; if [[ 0 -ne $ret ]]; then |
| 56 | echo "install make" | 57 | echo "install make" |
| 57 | require_sudoer "sudo apt-get install -y --force-yes make" | 58 | require_sudoer "sudo apt-get install -y --force-yes make" |
| 58 | - sudo apt-get install -y --force-yes make | 59 | + sudo apt-get install -y --force-yes make; ret=$?; if [[ 0 -ne $ret ]]; then return $ret; fi |
| 59 | echo "install make success" | 60 | echo "install make success" |
| 60 | fi | 61 | fi |
| 61 | 62 | ||
| 62 | autoconf --help >/dev/null 2>&1; ret=$?; if [[ 0 -ne $ret ]]; then | 63 | autoconf --help >/dev/null 2>&1; ret=$?; if [[ 0 -ne $ret ]]; then |
| 63 | echo "install autoconf" | 64 | echo "install autoconf" |
| 64 | require_sudoer "sudo apt-get install -y --force-yes autoconf" | 65 | require_sudoer "sudo apt-get install -y --force-yes autoconf" |
| 65 | - sudo apt-get install -y --force-yes autoconf | 66 | + sudo apt-get install -y --force-yes autoconf; ret=$?; if [[ 0 -ne $ret ]]; then return $ret; fi |
| 66 | echo "install autoconf success" | 67 | echo "install autoconf success" |
| 67 | fi | 68 | fi |
| 68 | 69 | ||
| 69 | libtool --help >/dev/null 2>&1; ret=$?; if [[ 0 -ne $ret ]]; then | 70 | libtool --help >/dev/null 2>&1; ret=$?; if [[ 0 -ne $ret ]]; then |
| 70 | echo "install libtool" | 71 | echo "install libtool" |
| 71 | require_sudoer "sudo apt-get install -y --force-yes libtool" | 72 | require_sudoer "sudo apt-get install -y --force-yes libtool" |
| 72 | - sudo apt-get install -y --force-yes libtool | 73 | + sudo apt-get install -y --force-yes libtool; ret=$?; if [[ 0 -ne $ret ]]; then return $ret; fi |
| 73 | echo "install libtool success" | 74 | echo "install libtool success" |
| 74 | fi | 75 | fi |
| 75 | 76 | ||
| 76 | if [[ ! -f /usr/include/pcre.h ]]; then | 77 | if [[ ! -f /usr/include/pcre.h ]]; then |
| 77 | echo "install libpcre3-dev" | 78 | echo "install libpcre3-dev" |
| 78 | require_sudoer "sudo apt-get install -y --force-yes libpcre3-dev" | 79 | require_sudoer "sudo apt-get install -y --force-yes libpcre3-dev" |
| 79 | - sudo apt-get install -y --force-yes libpcre3-dev | 80 | + sudo apt-get install -y --force-yes libpcre3-dev; ret=$?; if [[ 0 -ne $ret ]]; then return $ret; fi |
| 80 | echo "install libpcre3-dev success" | 81 | echo "install libpcre3-dev success" |
| 81 | fi | 82 | fi |
| 82 | 83 | ||
| 83 | if [[ ! -f /usr/include/zlib.h ]]; then | 84 | if [[ ! -f /usr/include/zlib.h ]]; then |
| 84 | echo "install zlib1g-dev" | 85 | echo "install zlib1g-dev" |
| 85 | require_sudoer "sudo apt-get install -y --force-yes zlib1g-dev" | 86 | require_sudoer "sudo apt-get install -y --force-yes zlib1g-dev" |
| 86 | - sudo apt-get install -y --force-yes zlib1g-dev | 87 | + sudo apt-get install -y --force-yes zlib1g-dev; ret=$?; if [[ 0 -ne $ret ]]; then return $ret; fi |
| 87 | echo "install zlib1g-dev success" | 88 | echo "install zlib1g-dev success" |
| 88 | fi | 89 | fi |
| 89 | 90 | ||
| 90 | if [[ ! -d /usr/include/freetype2 ]]; then | 91 | if [[ ! -d /usr/include/freetype2 ]]; then |
| 91 | echo "install libfreetype6-dev" | 92 | echo "install libfreetype6-dev" |
| 92 | require_sudoer "sudo apt-get install -y --force-yes libfreetype6-dev" | 93 | require_sudoer "sudo apt-get install -y --force-yes libfreetype6-dev" |
| 93 | - sudo apt-get install -y --force-yes libfreetype6-dev | 94 | + sudo apt-get install -y --force-yes libfreetype6-dev; ret=$?; if [[ 0 -ne $ret ]]; then return $ret; fi |
| 94 | echo "install libfreetype6-dev success" | 95 | echo "install libfreetype6-dev success" |
| 95 | fi | 96 | fi |
| 96 | 97 | ||
| 98 | + # for arm, install the cross build tool chain. | ||
| 99 | + if [ $SRS_ARM_UBUNTU12 = YES ]; then | ||
| 100 | + arm-linux-gnueabi-gcc --help >/dev/null 2>&1; ret=$?; if [[ 0 -ne $ret ]]; then | ||
| 101 | + echo "install gcc-arm-linux-gnueabi g++-arm-linux-gnueabi" | ||
| 102 | + require_sudoer "sudo apt-get install -y --force-yes gcc-arm-linux-gnueabi g++-arm-linux-gnueabi" | ||
| 103 | + sudo apt-get install -y --force-yes gcc-arm-linux-gnueabi g++-arm-linux-gnueabi; ret=$?; if [[ 0 -ne $ret ]]; then return $ret; fi | ||
| 104 | + echo "install gcc-arm-linux-gnueabi g++-arm-linux-gnueabi success" | ||
| 105 | + fi | ||
| 106 | + fi | ||
| 107 | + | ||
| 97 | echo "Ubuntu install tools success" | 108 | echo "Ubuntu install tools success" |
| 109 | + return 0 | ||
| 98 | } | 110 | } |
| 99 | -Ubuntu_prepare | 111 | +Ubuntu_prepare; ret=$?; if [[ 0 -ne $ret ]]; then echo "Ubuntu perfapre failed, ret=$ret"; exit $ret; fi |
| 100 | ##################################################################################### | 112 | ##################################################################################### |
| 101 | # for Centos, auto install tools by yum | 113 | # for Centos, auto install tools by yum |
| 102 | ##################################################################################### | 114 | ##################################################################################### |
| 103 | function Centos_prepare() | 115 | function Centos_prepare() |
| 104 | { | 116 | { |
| 105 | if [[ ! -f /etc/redhat-release ]]; then | 117 | if [[ ! -f /etc/redhat-release ]]; then |
| 106 | - return; | 118 | + return 0; |
| 107 | fi | 119 | fi |
| 108 | 120 | ||
| 109 | echo "Centos detected, install tools if needed" | 121 | echo "Centos detected, install tools if needed" |
| @@ -111,83 +123,111 @@ function Centos_prepare() | @@ -111,83 +123,111 @@ function Centos_prepare() | ||
| 111 | gcc --help >/dev/null 2>&1; ret=$?; if [[ 0 -ne $ret ]]; then | 123 | gcc --help >/dev/null 2>&1; ret=$?; if [[ 0 -ne $ret ]]; then |
| 112 | echo "install gcc" | 124 | echo "install gcc" |
| 113 | require_sudoer "sudo yum install -y gcc" | 125 | require_sudoer "sudo yum install -y gcc" |
| 114 | - sudo yum install -y gcc | 126 | + sudo yum install -y gcc; ret=$?; if [[ 0 -ne $ret ]]; then return $ret; fi |
| 115 | echo "install gcc success" | 127 | echo "install gcc success" |
| 116 | fi | 128 | fi |
| 117 | 129 | ||
| 118 | g++ --help >/dev/null 2>&1; ret=$?; if [[ 0 -ne $ret ]]; then | 130 | g++ --help >/dev/null 2>&1; ret=$?; if [[ 0 -ne $ret ]]; then |
| 119 | echo "install gcc-c++" | 131 | echo "install gcc-c++" |
| 120 | require_sudoer "sudo yum install -y gcc-c++" | 132 | require_sudoer "sudo yum install -y gcc-c++" |
| 121 | - sudo yum install -y gcc-c++ | 133 | + sudo yum install -y gcc-c++; ret=$?; if [[ 0 -ne $ret ]]; then return $ret; fi |
| 122 | echo "install gcc-c++ success" | 134 | echo "install gcc-c++ success" |
| 123 | fi | 135 | fi |
| 124 | 136 | ||
| 125 | make --help >/dev/null 2>&1; ret=$?; if [[ 0 -ne $ret ]]; then | 137 | make --help >/dev/null 2>&1; ret=$?; if [[ 0 -ne $ret ]]; then |
| 126 | echo "install make" | 138 | echo "install make" |
| 127 | require_sudoer "sudo yum install -y make" | 139 | require_sudoer "sudo yum install -y make" |
| 128 | - sudo yum install -y make | 140 | + sudo yum install -y make; ret=$?; if [[ 0 -ne $ret ]]; then return $ret; fi |
| 129 | echo "install make success" | 141 | echo "install make success" |
| 130 | fi | 142 | fi |
| 131 | 143 | ||
| 132 | automake --help >/dev/null 2>&1; ret=$?; if [[ 0 -ne $ret ]]; then | 144 | automake --help >/dev/null 2>&1; ret=$?; if [[ 0 -ne $ret ]]; then |
| 133 | echo "install automake" | 145 | echo "install automake" |
| 134 | require_sudoer "sudo yum install -y automake" | 146 | require_sudoer "sudo yum install -y automake" |
| 135 | - sudo yum install -y automake | 147 | + sudo yum install -y automake; ret=$?; if [[ 0 -ne $ret ]]; then return $ret; fi |
| 136 | echo "install automake success" | 148 | echo "install automake success" |
| 137 | fi | 149 | fi |
| 138 | 150 | ||
| 139 | autoconf --help >/dev/null 2>&1; ret=$?; if [[ 0 -ne $ret ]]; then | 151 | autoconf --help >/dev/null 2>&1; ret=$?; if [[ 0 -ne $ret ]]; then |
| 140 | echo "install autoconf" | 152 | echo "install autoconf" |
| 141 | require_sudoer "sudo yum install -y autoconf" | 153 | require_sudoer "sudo yum install -y autoconf" |
| 142 | - sudo yum install -y autoconf | 154 | + sudo yum install -y autoconf; ret=$?; if [[ 0 -ne $ret ]]; then return $ret; fi |
| 143 | echo "install autoconf success" | 155 | echo "install autoconf success" |
| 144 | fi | 156 | fi |
| 145 | 157 | ||
| 146 | libtool --help >/dev/null 2>&1; ret=$?; if [[ 0 -ne $ret ]]; then | 158 | libtool --help >/dev/null 2>&1; ret=$?; if [[ 0 -ne $ret ]]; then |
| 147 | echo "install libtool" | 159 | echo "install libtool" |
| 148 | require_sudoer "sudo yum install -y libtool" | 160 | require_sudoer "sudo yum install -y libtool" |
| 149 | - sudo yum install -y libtool | 161 | + sudo yum install -y libtool; ret=$?; if [[ 0 -ne $ret ]]; then return $ret; fi |
| 150 | echo "install libtool success" | 162 | echo "install libtool success" |
| 151 | fi | 163 | fi |
| 152 | 164 | ||
| 153 | if [[ ! -f /usr/include/pcre.h ]]; then | 165 | if [[ ! -f /usr/include/pcre.h ]]; then |
| 154 | echo "install pcre-devel" | 166 | echo "install pcre-devel" |
| 155 | require_sudoer "sudo yum install -y pcre-devel" | 167 | require_sudoer "sudo yum install -y pcre-devel" |
| 156 | - sudo yum install -y pcre-devel | 168 | + sudo yum install -y pcre-devel; ret=$?; if [[ 0 -ne $ret ]]; then return $ret; fi |
| 157 | echo "install pcre-devel success" | 169 | echo "install pcre-devel success" |
| 158 | fi | 170 | fi |
| 159 | 171 | ||
| 160 | if [[ ! -f /usr/include/zlib.h ]]; then | 172 | if [[ ! -f /usr/include/zlib.h ]]; then |
| 161 | echo "install zlib-devel" | 173 | echo "install zlib-devel" |
| 162 | require_sudoer "sudo yum install -y zlib-devel" | 174 | require_sudoer "sudo yum install -y zlib-devel" |
| 163 | - sudo yum install -y zlib-devel | 175 | + sudo yum install -y zlib-devel; ret=$?; if [[ 0 -ne $ret ]]; then return $ret; fi |
| 164 | echo "install zlib-devel success" | 176 | echo "install zlib-devel success" |
| 165 | fi | 177 | fi |
| 166 | 178 | ||
| 167 | if [[ ! -d /usr/include/freetype2 ]]; then | 179 | if [[ ! -d /usr/include/freetype2 ]]; then |
| 168 | echo "install freetype-devel" | 180 | echo "install freetype-devel" |
| 169 | require_sudoer "sudo yum install -y freetype-devel" | 181 | require_sudoer "sudo yum install -y freetype-devel" |
| 170 | - sudo yum install -y freetype-devel | 182 | + sudo yum install -y freetype-devel; ret=$?; if [[ 0 -ne $ret ]]; then return $ret; fi |
| 171 | echo "install freetype-devel success" | 183 | echo "install freetype-devel success" |
| 172 | fi | 184 | fi |
| 173 | 185 | ||
| 186 | + # for arm, install the cross build tool chain. | ||
| 187 | + if [ $SRS_ARM_UBUNTU12 = YES ]; then | ||
| 188 | + echo "arm-ubuntu12 is invalid for CentOS" | ||
| 189 | + return 1 | ||
| 190 | + fi | ||
| 191 | + | ||
| 174 | echo "Centos install tools success" | 192 | echo "Centos install tools success" |
| 193 | + return 0 | ||
| 175 | } | 194 | } |
| 176 | -Centos_prepare | 195 | +Centos_prepare; ret=$?; if [[ 0 -ne $ret ]]; then "CentOS perfapre failed, ret=$ret"; exit $ret; fi |
| 177 | 196 | ||
| 178 | ##################################################################################### | 197 | ##################################################################################### |
| 179 | # st-1.9 | 198 | # st-1.9 |
| 180 | ##################################################################################### | 199 | ##################################################################################### |
| 181 | -if [[ -f ${SRS_OBJS}/st-1.9/obj/libst.a && -f ${SRS_OBJS}/st-1.9/obj/libst.so ]]; then | ||
| 182 | - echo "st-1.9t is ok."; | 200 | +# check the arm flag file, if flag changed, need to rebuild the st. |
| 201 | +if [ $SRS_ARM_UBUNTU12 = YES ]; then | ||
| 202 | + # ok, arm specified, if the flag filed does not exists, need to rebuild. | ||
| 203 | + if [[ -f ${SRS_OBJS}/_flag.st.arm.tmp && -f ${SRS_OBJS}/st-1.9/obj/libst.a && -f ${SRS_OBJS}/st-1.9/obj/libst.so ]]; then | ||
| 204 | + echo "st-1.9t for arm is ok."; | ||
| 205 | + else | ||
| 206 | + # TODO: FIXME: patch the bug. | ||
| 207 | + # patch st for arm, @see: https://github.com/winlinvip/simple-rtmp-server/wiki/SrsLinuxArm#st-arm-bug-fix | ||
| 208 | + echo "build st-1.9t for arm"; | ||
| 209 | + ( | ||
| 210 | + rm -rf ${SRS_OBJS}/st-1.9 && cd ${SRS_OBJS} && | ||
| 211 | + unzip -q ../3rdparty/st-1.9.zip && cd st-1.9 && | ||
| 212 | + make CC=${SrsArmCC} AR=${SrsArmAR} LD=${SrsArmLD} RANDLIB=${SrsArmRANDLIB} linux-debug && | ||
| 213 | + cd .. && rm -f st && ln -sf st-1.9/obj st && | ||
| 214 | + cd .. && touch ${SRS_OBJS}/_flag.st.arm.tmp | ||
| 215 | + ) | ||
| 216 | + fi | ||
| 183 | else | 217 | else |
| 184 | - echo "build st-1.9t"; | ||
| 185 | - ( | ||
| 186 | - rm -rf ${SRS_OBJS}/st-1.9 && cd ${SRS_OBJS} && | ||
| 187 | - unzip -q ../3rdparty/st-1.9.zip && cd st-1.9 && | ||
| 188 | - make linux-debug && | ||
| 189 | - cd .. && rm -f st && ln -sf st-1.9/obj st | ||
| 190 | - ) | 218 | + # arm not specified, if exists flag, need to rebuild for no-arm platform. |
| 219 | + if [[ ! -f ${SRS_OBJS}/_flag.st.arm.tmp && -f ${SRS_OBJS}/_flag.st.arm.tmp && -f ${SRS_OBJS}/st-1.9/obj/libst.a && -f ${SRS_OBJS}/st-1.9/obj/libst.so ]]; then | ||
| 220 | + echo "st-1.9t is ok."; | ||
| 221 | + else | ||
| 222 | + echo "build st-1.9t"; | ||
| 223 | + ( | ||
| 224 | + rm -rf ${SRS_OBJS}/st-1.9 && cd ${SRS_OBJS} && | ||
| 225 | + unzip -q ../3rdparty/st-1.9.zip && cd st-1.9 && | ||
| 226 | + make linux-debug && | ||
| 227 | + cd .. && rm -f st && ln -sf st-1.9/obj st && | ||
| 228 | + cd .. && rm -f ${SRS_OBJS}/_flag.st.arm.tmp | ||
| 229 | + ) | ||
| 230 | + fi | ||
| 191 | fi | 231 | fi |
| 192 | # check status | 232 | # check status |
| 193 | ret=$?; if [[ $ret -ne 0 ]]; then echo "build st-1.9 failed, ret=$ret"; exit $ret; fi | 233 | ret=$?; if [[ $ret -ne 0 ]]; then echo "build st-1.9 failed, ret=$ret"; exit $ret; fi |
| @@ -230,48 +270,50 @@ function write_nginx_html5() | @@ -230,48 +270,50 @@ function write_nginx_html5() | ||
| 230 | </video> | 270 | </video> |
| 231 | END | 271 | END |
| 232 | } | 272 | } |
| 233 | -if [ $SRS_HLS = YES ]; then | ||
| 234 | - if [[ -f ${SRS_OBJS}/nginx/sbin/nginx ]]; then | ||
| 235 | - echo "nginx-1.5.7 is ok."; | ||
| 236 | - else | ||
| 237 | - echo "build nginx-1.5.7"; | ||
| 238 | - ( | ||
| 239 | - rm -rf ${SRS_OBJS}/nginx-1.5.7 && cd ${SRS_OBJS} && | ||
| 240 | - unzip -q ../3rdparty/nginx-1.5.7.zip && cd nginx-1.5.7 && | ||
| 241 | - ./configure --prefix=`pwd`/_release && make ${SRS_JOBS} && make install && | ||
| 242 | - cd .. && ln -sf nginx-1.5.7/_release nginx | ||
| 243 | - ) | ||
| 244 | - fi | ||
| 245 | - # check status | ||
| 246 | - ret=$?; if [[ $ret -ne 0 ]]; then echo "build nginx-1.5.7 failed, ret=$ret"; exit $ret; fi | ||
| 247 | - if [ ! -f ${SRS_OBJS}/nginx/sbin/nginx ]; then echo "build nginx-1.5.7 failed."; exit -1; fi | 273 | +if [ $SRS_ARM_UBUNTU12 = NO ]; then |
| 274 | + if [ $SRS_HLS = YES ]; then | ||
| 275 | + if [[ -f ${SRS_OBJS}/nginx/sbin/nginx ]]; then | ||
| 276 | + echo "nginx-1.5.7 is ok."; | ||
| 277 | + else | ||
| 278 | + echo "build nginx-1.5.7"; | ||
| 279 | + ( | ||
| 280 | + rm -rf ${SRS_OBJS}/nginx-1.5.7 && cd ${SRS_OBJS} && | ||
| 281 | + unzip -q ../3rdparty/nginx-1.5.7.zip && cd nginx-1.5.7 && | ||
| 282 | + ./configure --prefix=`pwd`/_release && make ${SRS_JOBS} && make install && | ||
| 283 | + cd .. && ln -sf nginx-1.5.7/_release nginx | ||
| 284 | + ) | ||
| 285 | + fi | ||
| 286 | + # check status | ||
| 287 | + ret=$?; if [[ $ret -ne 0 ]]; then echo "build nginx-1.5.7 failed, ret=$ret"; exit $ret; fi | ||
| 288 | + if [ ! -f ${SRS_OBJS}/nginx/sbin/nginx ]; then echo "build nginx-1.5.7 failed."; exit -1; fi | ||
| 248 | 289 | ||
| 249 | - # use current user to config nginx, | ||
| 250 | - # srs will write ts/m3u8 file use current user, | ||
| 251 | - # nginx default use nobody, so cannot read the ts/m3u8 created by srs. | ||
| 252 | - cp ${SRS_OBJS}/nginx/conf/nginx.conf ${SRS_OBJS}/nginx/conf/nginx.conf.bk | ||
| 253 | - sed -i "s/^.user nobody;/user `whoami`;/g" ${SRS_OBJS}/nginx/conf/nginx.conf | ||
| 254 | - | ||
| 255 | - # create forward dir | ||
| 256 | - mkdir -p ${SRS_OBJS}/nginx/html/live && | ||
| 257 | - mkdir -p ${SRS_OBJS}/nginx/html/forward/live | ||
| 258 | - | ||
| 259 | - # generate default html pages for android. | ||
| 260 | - html_file=${SRS_OBJS}/nginx/html/live/livestream.html && hls_stream=livestream.m3u8 && write_nginx_html5 | ||
| 261 | - html_file=${SRS_OBJS}/nginx/html/live/livestream_ld.html && hls_stream=livestream_ld.m3u8 && write_nginx_html5 | ||
| 262 | - html_file=${SRS_OBJS}/nginx/html/live/livestream_sd.html && hls_stream=livestream_sd.m3u8 && write_nginx_html5 | ||
| 263 | - html_file=${SRS_OBJS}/nginx/html/forward/live/livestream.html && hls_stream=livestream.m3u8 && write_nginx_html5 | ||
| 264 | - html_file=${SRS_OBJS}/nginx/html/forward/live/livestream_ld.html && hls_stream=livestream_ld.m3u8 && write_nginx_html5 | ||
| 265 | - html_file=${SRS_OBJS}/nginx/html/forward/live/livestream_sd.html && hls_stream=livestream_sd.m3u8 && write_nginx_html5 | ||
| 266 | - | ||
| 267 | - # copy players to nginx html dir. | ||
| 268 | - rm -rf ${SRS_OBJS}/nginx/html/players && | ||
| 269 | - ln -sf `pwd`/research/players ${SRS_OBJS}/nginx/html/players && | ||
| 270 | - rm -f ${SRS_OBJS}/nginx/crossdomain.xml && | ||
| 271 | - ln -sf `pwd`/research/players/crossdomain.xml ${SRS_OBJS}/nginx/html/crossdomain.xml | ||
| 272 | - | ||
| 273 | - # nginx.html to detect whether nginx is alive | ||
| 274 | - echo "nginx is ok" > ${SRS_OBJS}/nginx/html/nginx.html | 290 | + # use current user to config nginx, |
| 291 | + # srs will write ts/m3u8 file use current user, | ||
| 292 | + # nginx default use nobody, so cannot read the ts/m3u8 created by srs. | ||
| 293 | + cp ${SRS_OBJS}/nginx/conf/nginx.conf ${SRS_OBJS}/nginx/conf/nginx.conf.bk | ||
| 294 | + sed -i "s/^.user nobody;/user `whoami`;/g" ${SRS_OBJS}/nginx/conf/nginx.conf | ||
| 295 | + | ||
| 296 | + # create forward dir | ||
| 297 | + mkdir -p ${SRS_OBJS}/nginx/html/live && | ||
| 298 | + mkdir -p ${SRS_OBJS}/nginx/html/forward/live | ||
| 299 | + | ||
| 300 | + # generate default html pages for android. | ||
| 301 | + html_file=${SRS_OBJS}/nginx/html/live/livestream.html && hls_stream=livestream.m3u8 && write_nginx_html5 | ||
| 302 | + html_file=${SRS_OBJS}/nginx/html/live/livestream_ld.html && hls_stream=livestream_ld.m3u8 && write_nginx_html5 | ||
| 303 | + html_file=${SRS_OBJS}/nginx/html/live/livestream_sd.html && hls_stream=livestream_sd.m3u8 && write_nginx_html5 | ||
| 304 | + html_file=${SRS_OBJS}/nginx/html/forward/live/livestream.html && hls_stream=livestream.m3u8 && write_nginx_html5 | ||
| 305 | + html_file=${SRS_OBJS}/nginx/html/forward/live/livestream_ld.html && hls_stream=livestream_ld.m3u8 && write_nginx_html5 | ||
| 306 | + html_file=${SRS_OBJS}/nginx/html/forward/live/livestream_sd.html && hls_stream=livestream_sd.m3u8 && write_nginx_html5 | ||
| 307 | + | ||
| 308 | + # copy players to nginx html dir. | ||
| 309 | + rm -rf ${SRS_OBJS}/nginx/html/players && | ||
| 310 | + ln -sf `pwd`/research/players ${SRS_OBJS}/nginx/html/players && | ||
| 311 | + rm -f ${SRS_OBJS}/nginx/crossdomain.xml && | ||
| 312 | + ln -sf `pwd`/research/players/crossdomain.xml ${SRS_OBJS}/nginx/html/crossdomain.xml | ||
| 313 | + | ||
| 314 | + # nginx.html to detect whether nginx is alive | ||
| 315 | + echo "nginx is ok" > ${SRS_OBJS}/nginx/html/nginx.html | ||
| 316 | + fi | ||
| 275 | fi | 317 | fi |
| 276 | 318 | ||
| 277 | if [ $SRS_HLS = YES ]; then | 319 | if [ $SRS_HLS = YES ]; then |
| @@ -320,28 +362,30 @@ ln -sf `pwd`/${SRS_OBJS}/nginx/html/forward research/api-server/static-dir/forwa | @@ -320,28 +362,30 @@ ln -sf `pwd`/${SRS_OBJS}/nginx/html/forward research/api-server/static-dir/forwa | ||
| 320 | 362 | ||
| 321 | # only when the nginx is ok, | 363 | # only when the nginx is ok, |
| 322 | # if api-server not enalbed, use nginx as demo. | 364 | # if api-server not enalbed, use nginx as demo. |
| 323 | -if [ $SRS_HLS = YES ]; then | ||
| 324 | - if [ $SRS_HTTP_CALLBACK = YES ]; then | ||
| 325 | - # override the default index. | ||
| 326 | - rm -f ${SRS_OBJS}/nginx/html/index.html && | ||
| 327 | - ln -sf `pwd`/research/players/nginx_index.html ${SRS_OBJS}/nginx/html/index.html | ||
| 328 | - else | ||
| 329 | - rm -f ${SRS_OBJS}/nginx/html/index.html && | ||
| 330 | - cat<<END >> ${SRS_OBJS}/nginx/html/index.html | ||
| 331 | -<!DOCTYPE html> | ||
| 332 | -<html> | ||
| 333 | -<head> | ||
| 334 | - <title>SRS</title> | ||
| 335 | - <meta charset="utf-8"> | ||
| 336 | -</head> | ||
| 337 | -<body> | ||
| 338 | - <script type="text/javascript"> | ||
| 339 | - setTimeout(function(){ | ||
| 340 | - window.location.href = "players/index.html" + window.location.search; | ||
| 341 | - }, 500); | ||
| 342 | - </script> | ||
| 343 | -</body> | 365 | +if [ $SRS_ARM_UBUNTU12 = NO ]; then |
| 366 | + if [ $SRS_HLS = YES ]; then | ||
| 367 | + if [ $SRS_HTTP_CALLBACK = YES ]; then | ||
| 368 | + # override the default index. | ||
| 369 | + rm -f ${SRS_OBJS}/nginx/html/index.html && | ||
| 370 | + ln -sf `pwd`/research/players/nginx_index.html ${SRS_OBJS}/nginx/html/index.html | ||
| 371 | + else | ||
| 372 | + rm -f ${SRS_OBJS}/nginx/html/index.html && | ||
| 373 | + cat<<END >> ${SRS_OBJS}/nginx/html/index.html | ||
| 374 | + <!DOCTYPE html> | ||
| 375 | + <html> | ||
| 376 | + <head> | ||
| 377 | + <title>SRS</title> | ||
| 378 | + <meta charset="utf-8"> | ||
| 379 | + </head> | ||
| 380 | + <body> | ||
| 381 | + <script type="text/javascript"> | ||
| 382 | + setTimeout(function(){ | ||
| 383 | + window.location.href = "players/index.html" + window.location.search; | ||
| 384 | + }, 500); | ||
| 385 | + </script> | ||
| 386 | + </body> | ||
| 344 | END | 387 | END |
| 388 | + fi | ||
| 345 | fi | 389 | fi |
| 346 | fi | 390 | fi |
| 347 | 391 | ||
| @@ -349,17 +393,37 @@ fi | @@ -349,17 +393,37 @@ fi | ||
| 349 | # openssl, for rtmp complex handshake | 393 | # openssl, for rtmp complex handshake |
| 350 | ##################################################################################### | 394 | ##################################################################################### |
| 351 | if [ $SRS_SSL = YES ]; then | 395 | if [ $SRS_SSL = YES ]; then |
| 352 | - if [[ -f ${SRS_OBJS}/openssl/lib/libssl.a ]]; then | ||
| 353 | - echo "openssl-1.0.1f is ok."; | 396 | + # check the arm flag file, if flag changed, need to rebuild the st. |
| 397 | + if [ $SRS_ARM_UBUNTU12 = YES ]; then | ||
| 398 | + # ok, arm specified, if the flag filed does not exists, need to rebuild. | ||
| 399 | + if [[ -f ${SRS_OBJS}/_flag.ssl.arm.tmp && -f ${SRS_OBJS}/openssl/lib/libssl.a ]]; then | ||
| 400 | + echo "openssl-1.0.1f for arm is ok."; | ||
| 401 | + else | ||
| 402 | + echo "build openssl-1.0.1f for arm"; | ||
| 403 | + ( | ||
| 404 | + rm -rf ${SRS_OBJS}/openssl-1.0.1f && cd ${SRS_OBJS} && | ||
| 405 | + unzip -q ../3rdparty/openssl-1.0.1f.zip && cd openssl-1.0.1f && | ||
| 406 | + ./Configure --prefix=`pwd`/_release -no-shared no-asm linux-armv4 && | ||
| 407 | + make CC=${SrsArmCC} GCC=${SrsArmGCC} AR="${SrsArmAR} r" KD=${SrsArmLD} LINK=${SrsArmLINK} RANDLIB=${SrsArmRANDLIB} && make install && | ||
| 408 | + cd .. && ln -sf openssl-1.0.1f/_release openssl && | ||
| 409 | + cd .. && touch ${SRS_OBJS}/_flag.ssl.arm.tmp | ||
| 410 | + ) | ||
| 411 | + fi | ||
| 354 | else | 412 | else |
| 355 | - echo "build openssl-1.0.1f"; | ||
| 356 | - ( | ||
| 357 | - rm -rf ${SRS_OBJS}/openssl-1.0.1f && cd ${SRS_OBJS} && | ||
| 358 | - unzip -q ../3rdparty/openssl-1.0.1f.zip && cd openssl-1.0.1f && | ||
| 359 | - ./config --prefix=`pwd`/_release -no-shared && | ||
| 360 | - make && make install && | ||
| 361 | - cd .. && ln -sf openssl-1.0.1f/_release openssl | ||
| 362 | - ) | 413 | + # arm not specified, if exists flag, need to rebuild for no-arm platform. |
| 414 | + if [[ ! -f ${SRS_OBJS}/_flag.ssl.arm.tmp && -f ${SRS_OBJS}/openssl/lib/libssl.a ]]; then | ||
| 415 | + echo "openssl-1.0.1f is ok."; | ||
| 416 | + else | ||
| 417 | + echo "build openssl-1.0.1f"; | ||
| 418 | + ( | ||
| 419 | + rm -rf ${SRS_OBJS}/openssl-1.0.1f && cd ${SRS_OBJS} && | ||
| 420 | + unzip -q ../3rdparty/openssl-1.0.1f.zip && cd openssl-1.0.1f && | ||
| 421 | + ./config --prefix=`pwd`/_release -no-shared && | ||
| 422 | + make && make install && | ||
| 423 | + cd .. && ln -sf openssl-1.0.1f/_release openssl && | ||
| 424 | + cd .. && rm -f ${SRS_OBJS}/_flag.ssl.arm.tmp | ||
| 425 | + ) | ||
| 426 | + fi | ||
| 363 | fi | 427 | fi |
| 364 | # check status | 428 | # check status |
| 365 | ret=$?; if [[ $ret -ne 0 ]]; then echo "build openssl-1.0.1f failed, ret=$ret"; exit $ret; fi | 429 | ret=$?; if [[ $ret -ne 0 ]]; then echo "build openssl-1.0.1f failed, ret=$ret"; exit $ret; fi |
| @@ -471,3 +535,12 @@ if [ $SRS_GPERF_CP = YES ]; then | @@ -471,3 +535,12 @@ if [ $SRS_GPERF_CP = YES ]; then | ||
| 471 | else | 535 | else |
| 472 | echo "#undef SRS_GPERF_CP" >> $SRS_AUTO_HEADERS_H | 536 | echo "#undef SRS_GPERF_CP" >> $SRS_AUTO_HEADERS_H |
| 473 | fi | 537 | fi |
| 538 | + | ||
| 539 | +##################################################################################### | ||
| 540 | +# for arm. | ||
| 541 | +##################################################################################### | ||
| 542 | +if [ $SRS_ARM_UBUNTU12 = YES ]; then | ||
| 543 | + echo "#define SRS_ARM_UBUNTU12" >> $SRS_AUTO_HEADERS_H | ||
| 544 | +else | ||
| 545 | + echo "#undef SRS_ARM_UBUNTU12" >> $SRS_AUTO_HEADERS_H | ||
| 546 | +fi |
| @@ -24,24 +24,10 @@ SRS_GPERF_MC=RESERVED # gperf memory check | @@ -24,24 +24,10 @@ SRS_GPERF_MC=RESERVED # gperf memory check | ||
| 24 | SRS_GPERF_MP=RESERVED # gperf memory profile | 24 | SRS_GPERF_MP=RESERVED # gperf memory profile |
| 25 | SRS_GPERF_CP=RESERVED # gperf cpu profile | 25 | SRS_GPERF_CP=RESERVED # gperf cpu profile |
| 26 | SRS_GPROF=RESERVED # gprof | 26 | SRS_GPROF=RESERVED # gprof |
| 27 | +SRS_ARM_UBUNTU12=RESERVED # armhf(v7cpu) built on ubuntu12 | ||
| 27 | # arguments | 28 | # arguments |
| 28 | SRS_JOBS=1 | 29 | SRS_JOBS=1 |
| 29 | 30 | ||
| 30 | -# TODO: remove the default to yes. | ||
| 31 | -SRS_HLS=YES | ||
| 32 | -SRS_SSL=YES | ||
| 33 | -SRS_FFMPEG=YES | ||
| 34 | -SRS_HTTP_CALLBACK=YES | ||
| 35 | -SRS_LIBRTMP=YES | ||
| 36 | -SRS_BWTC=NO | ||
| 37 | -SRS_RESEARCH=NO | ||
| 38 | -SRS_UTEST=YES | ||
| 39 | -SRS_GPERF=NO | ||
| 40 | -SRS_GPERF_MC=NO | ||
| 41 | -SRS_GPERF_MP=NO | ||
| 42 | -SRS_GPERF_CP=NO | ||
| 43 | -SRS_GPROF=NO | ||
| 44 | - | ||
| 45 | ##################################################################################### | 31 | ##################################################################################### |
| 46 | # parse options | 32 | # parse options |
| 47 | ##################################################################################### | 33 | ##################################################################################### |
| @@ -75,6 +61,7 @@ do | @@ -75,6 +61,7 @@ do | ||
| 75 | --with-gmp) SRS_GPERF_MP=YES ;; | 61 | --with-gmp) SRS_GPERF_MP=YES ;; |
| 76 | --with-gcp) SRS_GPERF_CP=YES ;; | 62 | --with-gcp) SRS_GPERF_CP=YES ;; |
| 77 | --with-gprof) SRS_GPROF=YES ;; | 63 | --with-gprof) SRS_GPROF=YES ;; |
| 64 | + --with-arm-ubuntu12) SRS_ARM_UBUNTU12=YES ;; | ||
| 78 | 65 | ||
| 79 | --without-ssl) SRS_SSL=NO ;; | 66 | --without-ssl) SRS_SSL=NO ;; |
| 80 | --without-hls) SRS_HLS=NO ;; | 67 | --without-hls) SRS_HLS=NO ;; |
| @@ -89,6 +76,7 @@ do | @@ -89,6 +76,7 @@ do | ||
| 89 | --without-gmp) SRS_GPERF_MP=NO ;; | 76 | --without-gmp) SRS_GPERF_MP=NO ;; |
| 90 | --without-gcp) SRS_GPERF_CP=NO ;; | 77 | --without-gcp) SRS_GPERF_CP=NO ;; |
| 91 | --without-gprof) SRS_GPROF=NO ;; | 78 | --without-gprof) SRS_GPROF=NO ;; |
| 79 | + --without-arm-ubuntu12) SRS_ARM_UBUNTU12=NO ;; | ||
| 92 | 80 | ||
| 93 | --jobs) SRS_JOBS=${value} ;; | 81 | --jobs) SRS_JOBS=${value} ;; |
| 94 | 82 | ||
| @@ -99,6 +87,42 @@ do | @@ -99,6 +87,42 @@ do | ||
| 99 | esac | 87 | esac |
| 100 | done | 88 | done |
| 101 | 89 | ||
| 90 | +##################################################################################### | ||
| 91 | +# apply the default value when user donot specified. | ||
| 92 | +##################################################################################### | ||
| 93 | +# if arm specified, set some default to disabled. | ||
| 94 | +if [ $SRS_ARM_UBUNTU12 = YES ]; then | ||
| 95 | + if [ $SRS_HLS = RESERVED ]; then SRS_HLS=NO; fi | ||
| 96 | + if [ $SRS_SSL = RESERVED ]; then SRS_SSL=NO; fi | ||
| 97 | + if [ $SRS_FFMPEG = RESERVED ]; then SRS_FFMPEG=NO; fi | ||
| 98 | + if [ $SRS_HTTP_CALLBACK = RESERVED ]; then SRS_HTTP_CALLBACK=NO; fi | ||
| 99 | + if [ $SRS_LIBRTMP = RESERVED ]; then SRS_LIBRTMP=NO; fi | ||
| 100 | + if [ $SRS_BWTC = RESERVED ]; then SRS_BWTC=NO; fi | ||
| 101 | + if [ $SRS_RESEARCH = RESERVED ]; then SRS_RESEARCH=NO; fi | ||
| 102 | + if [ $SRS_UTEST = RESERVED ]; then SRS_UTEST=NO; fi | ||
| 103 | + if [ $SRS_GPERF = RESERVED ]; then SRS_GPERF=NO; fi | ||
| 104 | + if [ $SRS_GPERF_MC = RESERVED ]; then SRS_GPERF_MC=NO; fi | ||
| 105 | + if [ $SRS_GPERF_MP = RESERVED ]; then SRS_GPERF_MP=NO; fi | ||
| 106 | + if [ $SRS_GPERF_CP = RESERVED ]; then SRS_GPERF_CP=NO; fi | ||
| 107 | + if [ $SRS_GPROF = RESERVED ]; then SRS_GPROF=NO; fi | ||
| 108 | + if [ $SRS_ARM_UBUNTU12 = RESERVED ]; then SRS_ARM_UBUNTU12=NO; fi | ||
| 109 | +else | ||
| 110 | + if [ $SRS_HLS = RESERVED ]; then SRS_HLS=YES; fi | ||
| 111 | + if [ $SRS_SSL = RESERVED ]; then SRS_SSL=YES; fi | ||
| 112 | + if [ $SRS_FFMPEG = RESERVED ]; then SRS_FFMPEG=YES; fi | ||
| 113 | + if [ $SRS_HTTP_CALLBACK = RESERVED ]; then SRS_HTTP_CALLBACK=YES; fi | ||
| 114 | + if [ $SRS_LIBRTMP = RESERVED ]; then SRS_LIBRTMP=YES; fi | ||
| 115 | + if [ $SRS_BWTC = RESERVED ]; then SRS_BWTC=NO; fi | ||
| 116 | + if [ $SRS_RESEARCH = RESERVED ]; then SRS_RESEARCH=NO; fi | ||
| 117 | + if [ $SRS_UTEST = RESERVED ]; then SRS_UTEST=YES; fi | ||
| 118 | + if [ $SRS_GPERF = RESERVED ]; then SRS_GPERF=NO; fi | ||
| 119 | + if [ $SRS_GPERF_MC = RESERVED ]; then SRS_GPERF_MC=NO; fi | ||
| 120 | + if [ $SRS_GPERF_MP = RESERVED ]; then SRS_GPERF_MP=NO; fi | ||
| 121 | + if [ $SRS_GPERF_CP = RESERVED ]; then SRS_GPERF_CP=NO; fi | ||
| 122 | + if [ $SRS_GPROF = RESERVED ]; then SRS_GPROF=NO; fi | ||
| 123 | + if [ $SRS_ARM_UBUNTU12 = RESERVED ]; then SRS_ARM_UBUNTU12=NO; fi | ||
| 124 | +fi | ||
| 125 | + | ||
| 102 | # parse the jobs for make | 126 | # parse the jobs for make |
| 103 | if [[ "" -eq SRS_JOBS ]]; then | 127 | if [[ "" -eq SRS_JOBS ]]; then |
| 104 | export SRS_JOBS="--jobs" | 128 | export SRS_JOBS="--jobs" |
| @@ -120,7 +144,7 @@ if [ $help = yes ]; then | @@ -120,7 +144,7 @@ if [ $help = yes ]; then | ||
| 120 | --with-ssl enable rtmp complex handshake, requires openssl-devel installed. | 144 | --with-ssl enable rtmp complex handshake, requires openssl-devel installed. |
| 121 | to delivery h264 video and aac audio to flash player. | 145 | to delivery h264 video and aac audio to flash player. |
| 122 | --with-hls enable hls streaming, build nginx as http server for hls. | 146 | --with-hls enable hls streaming, build nginx as http server for hls. |
| 123 | - --with-http-callback enable http hooks, build cherrypy as demo api server. | 147 | + --with-http-callback enable http hooks, build cherrypy as demo api server. |
| 124 | srs will call the http hooks, such as: on_connect. | 148 | srs will call the http hooks, such as: on_connect. |
| 125 | --with-ffmpeg enable transcoding with ffmpeg. | 149 | --with-ffmpeg enable transcoding with ffmpeg. |
| 126 | --with-librtmp enable srs-librtmp, library for client. | 150 | --with-librtmp enable srs-librtmp, library for client. |
| @@ -132,10 +156,11 @@ if [ $help = yes ]; then | @@ -132,10 +156,11 @@ if [ $help = yes ]; then | ||
| 132 | --with-gmp build memory profile for srs with gperf tools. | 156 | --with-gmp build memory profile for srs with gperf tools. |
| 133 | --with-gcp build cpu profile for srs with gperf tools. | 157 | --with-gcp build cpu profile for srs with gperf tools. |
| 134 | --with-gprof build srs with gprof(GNU profile tool). | 158 | --with-gprof build srs with gprof(GNU profile tool). |
| 159 | + --with-arm-ubuntu12 build srs on ubuntu12 for armhf(v7cpu). | ||
| 135 | 160 | ||
| 136 | --without-ssl disable rtmp complex handshake. | 161 | --without-ssl disable rtmp complex handshake. |
| 137 | --without-hls disable hls, rtmp streaming only. | 162 | --without-hls disable hls, rtmp streaming only. |
| 138 | - --without-http-callback disable http, http hooks callback. | 163 | + --without-http-callback disable http, http hooks callback. |
| 139 | --without-ffmpeg disable the ffmpeg transcoding feature. | 164 | --without-ffmpeg disable the ffmpeg transcoding feature. |
| 140 | --without-librtmp disable srs-librtmp, library for client. | 165 | --without-librtmp disable srs-librtmp, library for client. |
| 141 | --without-bwtc disable srs bandwidth test client tool. | 166 | --without-bwtc disable srs bandwidth test client tool. |
| @@ -146,6 +171,7 @@ if [ $help = yes ]; then | @@ -146,6 +171,7 @@ if [ $help = yes ]; then | ||
| 146 | --without-gmp do not build memory profile for srs with gperf tools. | 171 | --without-gmp do not build memory profile for srs with gperf tools. |
| 147 | --without-gcp do not build cpu profile for srs with gperf tools. | 172 | --without-gcp do not build cpu profile for srs with gperf tools. |
| 148 | --without-gprof do not build srs with gprof(GNU profile tool). | 173 | --without-gprof do not build srs with gprof(GNU profile tool). |
| 174 | + --without-arm-ubuntu12 do not build srs on ubuntu12 for armhf(v7cpu). | ||
| 149 | 175 | ||
| 150 | --jobs[=N] Allow N jobs at once; infinite jobs with no arg. | 176 | --jobs[=N] Allow N jobs at once; infinite jobs with no arg. |
| 151 | used for make in the configure, for example, to make ffmpeg. | 177 | used for make in the configure, for example, to make ffmpeg. |
| @@ -181,6 +207,21 @@ if [ $__gperf_slow = YES ]; then if [ $SRS_GPROF = YES ]; then | @@ -181,6 +207,21 @@ if [ $__gperf_slow = YES ]; then if [ $SRS_GPROF = YES ]; then | ||
| 181 | echo "gmc/gmp/gcp not compatible with gprof, see: ./configure --help"; __check_ok=NO; | 207 | echo "gmc/gmp/gcp not compatible with gprof, see: ./configure --help"; __check_ok=NO; |
| 182 | fi fi | 208 | fi fi |
| 183 | 209 | ||
| 210 | +# check arm, if arm enabled, only allow st/ssl/librtmp, | ||
| 211 | +# user should disable all other features | ||
| 212 | +if [ $SRS_ARM_UBUNTU12 = YES ]; then | ||
| 213 | + if [ $SRS_FFMPEG = YES ]; then echo "ffmpeg for arm is not available, see: ./configure --help"; __check_ok=NO; fi | ||
| 214 | + if [ $SRS_HTTP_CALLBACK = YES ]; then echo "http-callback for arm is not available, see: ./configure --help"; __check_ok=NO; fi | ||
| 215 | + if [ $SRS_BWTC = YES ]; then echo "bwtc for arm is not available, see: ./configure --help"; __check_ok=NO; fi | ||
| 216 | + if [ $SRS_RESEARCH = YES ]; then echo "research for arm is not available, see: ./configure --help"; __check_ok=NO; fi | ||
| 217 | + if [ $SRS_UTEST = YES ]; then echo "utest for arm is not available, see: ./configure --help"; __check_ok=NO; fi | ||
| 218 | + if [ $SRS_GPERF = YES ]; then echo "gperf for arm is not available, see: ./configure --help"; __check_ok=NO; fi | ||
| 219 | + if [ $SRS_GPERF_MC = YES ]; then echo "gmc for arm is not available, see: ./configure --help"; __check_ok=NO; fi | ||
| 220 | + if [ $SRS_GPERF_MP = YES ]; then echo "gmp for arm is not available, see: ./configure --help"; __check_ok=NO; fi | ||
| 221 | + if [ $SRS_GPERF_CP = YES ]; then echo "gcp for arm is not available, see: ./configure --help"; __check_ok=NO; fi | ||
| 222 | + if [ $SRS_GPROF = YES ]; then echo "gprof for arm is not available, see: ./configure --help"; __check_ok=NO; fi | ||
| 223 | +fi | ||
| 224 | + | ||
| 184 | # check variable neccessary | 225 | # check variable neccessary |
| 185 | if [ $SRS_HLS = RESERVED ]; then echo "you must specifies the hls, see: ./configure --help"; __check_ok=NO; fi | 226 | if [ $SRS_HLS = RESERVED ]; then echo "you must specifies the hls, see: ./configure --help"; __check_ok=NO; fi |
| 186 | if [ $SRS_SSL = RESERVED ]; then echo "you must specifies the ssl, see: ./configure --help"; __check_ok=NO; fi | 227 | if [ $SRS_SSL = RESERVED ]; then echo "you must specifies the ssl, see: ./configure --help"; __check_ok=NO; fi |
| @@ -195,6 +236,7 @@ if [ $SRS_GPERF_MC = RESERVED ]; then echo "you must specifies the gperf-mc, see | @@ -195,6 +236,7 @@ if [ $SRS_GPERF_MC = RESERVED ]; then echo "you must specifies the gperf-mc, see | ||
| 195 | if [ $SRS_GPERF_MP = RESERVED ]; then echo "you must specifies the gperf-mp, see: ./configure --help"; __check_ok=NO; fi | 236 | if [ $SRS_GPERF_MP = RESERVED ]; then echo "you must specifies the gperf-mp, see: ./configure --help"; __check_ok=NO; fi |
| 196 | if [ $SRS_GPERF_CP = RESERVED ]; then echo "you must specifies the gperf-cp, see: ./configure --help"; __check_ok=NO; fi | 237 | if [ $SRS_GPERF_CP = RESERVED ]; then echo "you must specifies the gperf-cp, see: ./configure --help"; __check_ok=NO; fi |
| 197 | if [ $SRS_GPROF = RESERVED ]; then echo "you must specifies the gprof, see: ./configure --help"; __check_ok=NO; fi | 238 | if [ $SRS_GPROF = RESERVED ]; then echo "you must specifies the gprof, see: ./configure --help"; __check_ok=NO; fi |
| 239 | +if [ $SRS_ARM_UBUNTU12 = RESERVED ]; then echo "you must specifies the arm-ubuntu12, see: ./configure --help"; __check_ok=NO; fi | ||
| 198 | if [ $__check_ok = NO ]; then | 240 | if [ $__check_ok = NO ]; then |
| 199 | exit 1; | 241 | exit 1; |
| 200 | fi | 242 | fi |
| @@ -214,5 +256,6 @@ if [ $SRS_GPERF_MC = YES ]; then SRS_CONFIGURE="${SRS_CONFIGURE} --with-gmc"; el | @@ -214,5 +256,6 @@ if [ $SRS_GPERF_MC = YES ]; then SRS_CONFIGURE="${SRS_CONFIGURE} --with-gmc"; el | ||
| 214 | if [ $SRS_GPERF_MP = YES ]; then SRS_CONFIGURE="${SRS_CONFIGURE} --with-gmp"; else SRS_CONFIGURE="${SRS_CONFIGURE} --without-gmp"; fi | 256 | if [ $SRS_GPERF_MP = YES ]; then SRS_CONFIGURE="${SRS_CONFIGURE} --with-gmp"; else SRS_CONFIGURE="${SRS_CONFIGURE} --without-gmp"; fi |
| 215 | if [ $SRS_GPERF_CP = YES ]; then SRS_CONFIGURE="${SRS_CONFIGURE} --with-gcp"; else SRS_CONFIGURE="${SRS_CONFIGURE} --without-gcp"; fi | 257 | if [ $SRS_GPERF_CP = YES ]; then SRS_CONFIGURE="${SRS_CONFIGURE} --with-gcp"; else SRS_CONFIGURE="${SRS_CONFIGURE} --without-gcp"; fi |
| 216 | if [ $SRS_GPROF = YES ]; then SRS_CONFIGURE="${SRS_CONFIGURE} --with-gprof"; else SRS_CONFIGURE="${SRS_CONFIGURE} --without-gprof"; fi | 258 | if [ $SRS_GPROF = YES ]; then SRS_CONFIGURE="${SRS_CONFIGURE} --with-gprof"; else SRS_CONFIGURE="${SRS_CONFIGURE} --without-gprof"; fi |
| 259 | +if [ $SRS_ARM_UBUNTU12 = YES ]; then SRS_CONFIGURE="${SRS_CONFIGURE} --with-arm-ubuntu12"; else SRS_CONFIGURE="${SRS_CONFIGURE} --without-arm-ubuntu12"; fi | ||
| 217 | SRS_CONFIGURE="${SRS_CONFIGURE} ${SRS_JOBS}" | 260 | SRS_CONFIGURE="${SRS_CONFIGURE} ${SRS_JOBS}" |
| 218 | echo "regenerate config: ${SRS_CONFIGURE}" | 261 | echo "regenerate config: ${SRS_CONFIGURE}" |
| @@ -37,6 +37,15 @@ echo "#define SRS_CONFIGURE \"${SRS_CONFIGURE}\"" > $SRS_AUTO_HEADERS_H | @@ -37,6 +37,15 @@ echo "#define SRS_CONFIGURE \"${SRS_CONFIGURE}\"" > $SRS_AUTO_HEADERS_H | ||
| 37 | echo "#define SRS_BUILD_DATE \"`date \"+%Y-%m-%d %H:%M:%S\"`\"" >> $SRS_AUTO_HEADERS_H | 37 | echo "#define SRS_BUILD_DATE \"`date \"+%Y-%m-%d %H:%M:%S\"`\"" >> $SRS_AUTO_HEADERS_H |
| 38 | echo "#define SRS_BUILD_TS \"`date +%s`\"" >> $SRS_AUTO_HEADERS_H | 38 | echo "#define SRS_BUILD_TS \"`date +%s`\"" >> $SRS_AUTO_HEADERS_H |
| 39 | 39 | ||
| 40 | +# the arm-ubuntu12 options for make for depends | ||
| 41 | +SrsArmCC="arm-linux-gnueabi-gcc" | ||
| 42 | +SrsArmGCC="arm-linux-gnueabi-gcc" | ||
| 43 | +SrsArmCXX="arm-linux-gnueabi-g++" | ||
| 44 | +SrsArmLINK="arm-linux-gnueabi-g++" | ||
| 45 | +SrsArmAR="arm-linux-gnueabi-ar" | ||
| 46 | +SrsArmLD="arm-linux-gnueabi-ld" | ||
| 47 | +SrsArmRANDLIB="arm-linux-gnueabi-ranlib" | ||
| 48 | + | ||
| 40 | # apply user options. | 49 | # apply user options. |
| 41 | . auto/depends.sh | 50 | . auto/depends.sh |
| 42 | 51 | ||
| @@ -247,12 +256,25 @@ SrsGperf=""; SrsGperfLink=""; if [ $SRS_GPERF = YES ]; then SrsGperfLink=" -lpth | @@ -247,12 +256,25 @@ SrsGperf=""; SrsGperfLink=""; if [ $SRS_GPERF = YES ]; then SrsGperfLink=" -lpth | ||
| 247 | # the cxx flag generated. | 256 | # the cxx flag generated. |
| 248 | CXXFLAGS="${CppStd}${WarnLevel}${GDBDebug}${LibraryCompile}${SrsGprof}" | 257 | CXXFLAGS="${CppStd}${WarnLevel}${GDBDebug}${LibraryCompile}${SrsGprof}" |
| 249 | if [ $SRS_GPERF = YES ]; then CXXFLAGS="${CXXFLAGS} -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free"; fi | 258 | if [ $SRS_GPERF = YES ]; then CXXFLAGS="${CXXFLAGS} -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free"; fi |
| 250 | -cat << END > ${SRS_OBJS}/${SRS_MAKEFILE} | ||
| 251 | -CC ?= gcc | ||
| 252 | -GCC ?= gcc | ||
| 253 | -CXX ?= g++ | ||
| 254 | -AR ?= ar | ||
| 255 | -LINK ?= g++ | 259 | +# arm or i386/x86_64 |
| 260 | +if [ $SRS_ARM_UBUNTU12 = YES ]; then | ||
| 261 | + cat << END > ${SRS_OBJS}/${SRS_MAKEFILE} | ||
| 262 | +CC = ${SrsArmCC} | ||
| 263 | +GCC = ${SrsArmGCC} | ||
| 264 | +CXX = ${SrsArmCXX} | ||
| 265 | +AR = ${SrsArmAR} | ||
| 266 | +LINK = ${SrsArmLINK} | ||
| 267 | +END | ||
| 268 | +else | ||
| 269 | + cat << END > ${SRS_OBJS}/${SRS_MAKEFILE} | ||
| 270 | +CC = gcc | ||
| 271 | +GCC = gcc | ||
| 272 | +CXX = g++ | ||
| 273 | +AR = ar | ||
| 274 | +LINK = g++ | ||
| 275 | +END | ||
| 276 | +fi | ||
| 277 | +cat << END >> ${SRS_OBJS}/${SRS_MAKEFILE} | ||
| 256 | CXXFLAGS = ${CXXFLAGS} | 278 | CXXFLAGS = ${CXXFLAGS} |
| 257 | 279 | ||
| 258 | .PHONY: default srs bandwidth librtmp | 280 | .PHONY: default srs bandwidth librtmp |
| @@ -277,6 +299,8 @@ if [ $SRS_SSL = YES ]; then LibSSLRoot="${SRS_OBJS}/openssl/include"; LibSSLfile | @@ -277,6 +299,8 @@ if [ $SRS_SSL = YES ]; then LibSSLRoot="${SRS_OBJS}/openssl/include"; LibSSLfile | ||
| 277 | # gperftools-2.1, for mem check and mem/cpu profile | 299 | # gperftools-2.1, for mem check and mem/cpu profile |
| 278 | LibGperfRoot=""; LibGperfFile="" | 300 | LibGperfRoot=""; LibGperfFile="" |
| 279 | if [ $SRS_GPERF = YES ]; then LibGperfRoot="${SRS_OBJS}/gperf/include"; LibGperfFile="${SRS_OBJS}/gperf/lib/libtcmalloc_and_profiler.a"; fi | 301 | if [ $SRS_GPERF = YES ]; then LibGperfRoot="${SRS_OBJS}/gperf/include"; LibGperfFile="${SRS_OBJS}/gperf/lib/libtcmalloc_and_profiler.a"; fi |
| 302 | +# the link options, if arm, use static link | ||
| 303 | +SrsLinkOptions="-ldl"; if [ $SRS_ARM_UBUNTU12 = YES ]; then SrsLinkOptions="-ldl -static"; fi | ||
| 280 | 304 | ||
| 281 | ##################################################################################### | 305 | ##################################################################################### |
| 282 | # Modules, compile each module, then link to binary | 306 | # Modules, compile each module, then link to binary |
| @@ -344,7 +368,7 @@ MAIN_ENTRANCES=("srs_main_server" "srs_main_bandcheck") | @@ -344,7 +368,7 @@ MAIN_ENTRANCES=("srs_main_server" "srs_main_bandcheck") | ||
| 344 | ModuleLibFiles=(${LibSTfile} ${LibHttpParserfile} ${LibSSLfile} ${LibGperfFile}) | 368 | ModuleLibFiles=(${LibSTfile} ${LibHttpParserfile} ${LibSSLfile} ${LibGperfFile}) |
| 345 | # all depends objects | 369 | # all depends objects |
| 346 | MODULE_OBJS="${CORE_OBJS[@]} ${KERNEL_OBJS[@]} ${RTMP_OBJS[@]} ${APP_OBJS[@]} ${MAIN_OBJS[@]}" | 370 | MODULE_OBJS="${CORE_OBJS[@]} ${KERNEL_OBJS[@]} ${RTMP_OBJS[@]} ${APP_OBJS[@]} ${MAIN_OBJS[@]}" |
| 347 | -LINK_OPTIONS="-ldl${SrsGprofLink}${SrsGperfLink}" | 371 | +LINK_OPTIONS="${SrsLinkOptions}${SrsGprofLink}${SrsGperfLink}" |
| 348 | # | 372 | # |
| 349 | # srs: | 373 | # srs: |
| 350 | # srs(simple rtmp server) over st(state-threads) | 374 | # srs(simple rtmp server) over st(state-threads) |
| @@ -447,6 +471,11 @@ if [ $SRS_GPROF = YES ]; then | @@ -447,6 +471,11 @@ if [ $SRS_GPROF = YES ]; then | ||
| 447 | else | 471 | else |
| 448 | echo -e "${GREEN}note: gprof(GNU profile tool) for srs are not builded${BLACK}" | 472 | echo -e "${GREEN}note: gprof(GNU profile tool) for srs are not builded${BLACK}" |
| 449 | fi | 473 | fi |
| 474 | +if [ $SRS_ARM_UBUNTU12 = YES ]; then | ||
| 475 | + echo -e "${GREEN}arm-ubuntu12(armhf, v7cpu) for srs are builded${BLACK}" | ||
| 476 | +else | ||
| 477 | + echo -e "${GREEN}note: arm-ubuntu12(armhf, v7cpu) for srs are not builded${BLACK}" | ||
| 478 | +fi | ||
| 450 | 479 | ||
| 451 | ##################################################################################### | 480 | ##################################################################################### |
| 452 | # next step | 481 | # next step |
| @@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | @@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 31 | // current release version | 31 | // current release version |
| 32 | #define VERSION_MAJOR "0" | 32 | #define VERSION_MAJOR "0" |
| 33 | #define VERSION_MINOR "9" | 33 | #define VERSION_MINOR "9" |
| 34 | -#define VERSION_REVISION "16" | 34 | +#define VERSION_REVISION "17" |
| 35 | #define RTMP_SIG_SRS_VERSION VERSION_MAJOR"."VERSION_MINOR"."VERSION_REVISION | 35 | #define RTMP_SIG_SRS_VERSION VERSION_MAJOR"."VERSION_MINOR"."VERSION_REVISION |
| 36 | // server info. | 36 | // server info. |
| 37 | #define RTMP_SIG_SRS_KEY "srs" | 37 | #define RTMP_SIG_SRS_KEY "srs" |
-
请 注册 或 登录 后发表评论