configure 32 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256
  1. #!/bin/sh
  2. # Proprietary configure script of Coturn project
  3. cleanup() {
  4. rm -rf ${TMPCPROGC}
  5. rm -rf ${TMPCPROGB}
  6. rm -rf ${TH_TMPCPROGC}
  7. rm -rf ${TH_TMPCPROGB}
  8. rm -rf ${GCM_TMPCPROGC}
  9. rm -rf ${GCM_TMPCPROGB}
  10. rm -rf ${PQ_TMPCPROGC}
  11. rm -rf ${PQ_TMPCPROGB}
  12. rm -rf ${MYSQL_TMPCPROGC}
  13. rm -rf ${MYSQL_TMPCPROGB}
  14. rm -rf ${MONGO_TMPCPROGC}
  15. rm -rf ${MONGO_TMPCPROGB}
  16. rm -rf ${D_TMPCPROGC}
  17. rm -rf ${D_TMPCPROGB}
  18. rm -rf ${SQL_TMPCPROGC}
  19. rm -rf ${SQL_TMPCPROGO}
  20. rm -rf ${E_TMPCPROGC}
  21. rm -rf ${E_TMPCPROGO}
  22. rm -rf ${HR_TMPCPROGC}
  23. rm -rf ${HR_TMPCPROGB}
  24. rm -rf ${TMPCADDRPROGO}
  25. }
  26. testlibraw() {
  27. ${CC} ${TMPCPROGC} -o ${TMPCPROGB} ${OSCFLAGS} ${OSLIBS} -${1} 2>>/dev/null
  28. ER=$?
  29. if ! [ ${ER} -eq 0 ] ; then
  30. ${ECHO_CMD} "Library option -${1} cannot be used"
  31. return 0
  32. else
  33. OSLIBS="${OSLIBS} -${1}"
  34. return 1
  35. fi
  36. }
  37. testsqlite_comp() {
  38. SQLITE_LIBS=-lsqlite3
  39. ${CC} -c ${SQL_TMPCPROGC} -o ${SQL_TMPCPROGO} ${OSCFLAGS} 2>>/dev/null
  40. ER=$?
  41. if ! [ ${ER} -eq 0 ] ; then
  42. ${ECHO_CMD} "SQLite development is not installed properly"
  43. return 0
  44. else
  45. DBLIBS="${DBLIBS} ${SQLITE_LIBS}"
  46. return 1
  47. fi
  48. }
  49. testlibevent2_comp() {
  50. ${CC} -c ${E_TMPCPROGC} -o ${E_TMPCPROGO} ${OSCFLAGS} 2>>/dev/null
  51. ER=$?
  52. if ! [ ${ER} -eq 0 ] ; then
  53. ${ECHO_CMD} "Libevent2 development is not installed properly"
  54. return 0
  55. else
  56. return 1
  57. fi
  58. }
  59. testhiredis() {
  60. for inc in ${INCLUDEDIR}/hiredis /usr/local/include/hiredis /usr/hiredis /usr/include/hiredis
  61. do
  62. if [ -d ${inc} ] ; then
  63. HIREDISCFLAGS="${HIREDISCFLAGS} -I${inc}"
  64. fi
  65. done
  66. HIREDISLIBS=-lhiredis
  67. ${CC} ${HR_TMPCPROGC} -o ${HR_TMPCPROGB} ${OSCFLAGS} ${DBLIBS} ${HIREDISCFLAGS} ${HIREDISLIBS} ${OSLIBS} 2>>/dev/null
  68. ER=$?
  69. if ! [ ${ER} -eq 0 ] ; then
  70. ${ECHO_CMD}
  71. ${ECHO_CMD} "HIREDIS DEVELOPMENT LIBRARY (libhiredis.*) AND/OR HEADERS (hiredis/*.h)"
  72. ${ECHO_CMD} " ARE NOT INSTALLED PROPERLY ON THIS SYSTEM."
  73. ${ECHO_CMD} " THAT'S OK BUT THE TURN SERVER IS BUILDING WITHOUT REDIS SUPPORT."
  74. ${ECHO_CMD}
  75. return 0
  76. else
  77. DBCFLAGS="${DBCFLAGS} ${HIREDISCFLAGS}"
  78. DBLIBS="${DBLIBS} ${HIREDISLIBS}"
  79. return 1
  80. fi
  81. }
  82. testlibpq() {
  83. POSTCFLAGS="-I${PREFIX}/pgsql/include -I${PREFIX}/include/pgsql/ -I${PREFIX}/include/postgres/ -I${PREFIX}/postgres/include/ -I${PREFIX}/include/postgresql/ -I${PREFIX}/postgresql/include/"
  84. POSTCFLAGS="${POSTCFLAGS} -I/usr/local/pgsql/include -I/usr/local/include/pgsql/ -I/usr/local/include/postgres/ -I/usr/local/postgres/include/ -I/usr/local/include/postgresql/ -I/usr/local/postgresql/include/"
  85. POSTCFLAGS="${POSTCFLAGS} -I/usr/pgsql/include -I/usr/include/pgsql/ -I/usr/include/postgres/ -I/usr/postgres/include/ -I/usr/include/postgresql/ -I/usr/postgresql/include/"
  86. for ilib in ${PREFIX}/pgsql/lib ${PREFIX}/lib/pgsql ${PREFIX}/lib64/pgsql /usr/local/pgsql/lib /usr/local/lib/pgsql /usr/local/lib64/pgsql /usr/pgsql/lib /usr/lib/pgsql /usr/lib64/pgsql ${PREFIX}/postgres/lib ${PREFIX}/lib/postgres ${PREFIX}/lib64/postgres /usr/local/postgres/lib /usr/local/lib/postgres /usr/local/lib64/postgres /usr/postgres/lib /usr/lib/postgres /usr/lib64/postgres ${PREFIX}/postgresql/lib ${PREFIX}/lib/postgresql ${PREFIX}/lib64/postgresql /usr/local/postgresql/lib /usr/local/lib/postgresql /usr/local/lib64/postgresql /usr/postgresql/lib /usr/lib/postgresql /usr/lib64/postgresql
  87. do
  88. if [ -d ${ilib} ] ; then
  89. POSTLIBS="${POSTLIBS} -L${ilib}"
  90. if ! [ -z "${TURN_ACCEPT_RPATH}" ] ; then
  91. TURN_RPATH="${TURN_RPATH} -Wl,-rpath,${ilib}"
  92. fi
  93. fi
  94. done
  95. POSTLIBS="${OSLIBS} ${POSTLIBS} -lpq"
  96. ${CC} ${PQ_TMPCPROGC} -o ${PQ_TMPCPROGB} ${OSCFLAGS} ${DBCFLAGS} ${POSTCFLAGS} ${DBLIBS} ${POSTLIBS} ${OSLIBS} 2>>/dev/null
  97. ER=$?
  98. if ! [ ${ER} -eq 0 ] ; then
  99. ${ECHO_CMD}
  100. ${ECHO_CMD} "POSTGRESQL DEVELOPMENT LIBRARY (libpq.a) AND/OR HEADER (libpq-fe.h)"
  101. ${ECHO_CMD} " ARE NOT INSTALLED PROPERLY ON THIS SYSTEM."
  102. ${ECHO_CMD} " THAT'S OK BUT THE TURN SERVER IS BUILDING WITHOUT POSTGRESQL DATABASE SUPPORT."
  103. ${ECHO_CMD}
  104. return 0
  105. else
  106. DBCFLAGS="${DBCFLAGS} ${POSTCFLAGS}"
  107. DBLIBS="${DBLIBS} ${POSTLIBS}"
  108. return 1
  109. fi
  110. }
  111. testlibmysql() {
  112. MYSQL_CFLAGS="-I${PREFIX}/mysql/include -I${PREFIX}/include/mysql/"
  113. MYSQL_CFLAGS="${MYSQL_CFLAGS} -I/usr/local/mysql/include -I/usr/local/include/mysql/"
  114. MYSQL_CFLAGS="${MYSQL_CFLAGS} -I/usr/mysql/include -I/usr/include/mysql/"
  115. for ilib in ${PREFIX}/mysql/lib ${PREFIX}/lib/mysql ${PREFIX}/lib64/mysql /usr/local/mysql/lib /usr/local/lib/mysql /usr/local/lib64/mysql /usr/mysql/lib /usr/lib/mysql /usr/lib64/mysql
  116. do
  117. if [ -d ${ilib} ] ; then
  118. MYSQL_LIBS="${MYSQL_LIBS} -L${ilib}"
  119. if ! [ -z "${TURN_ACCEPT_RPATH}" ] ; then
  120. TURN_RPATH="${TURN_RPATH} -Wl,-rpath,${ilib}"
  121. fi
  122. fi
  123. done
  124. MYSQL_LIBS="${OSLIBS} ${MYSQL_LIBS} -lmysqlclient"
  125. ${CC} ${MYSQL_TMPCPROGC} -o ${MYSQL_TMPCPROGB} ${OSCFLAGS} ${DBCFLAGS} ${DBLIBS} ${MYSQL_CFLAGS} ${MYSQL_LIBS} ${OSLIBS} 2>>/dev/null
  126. ER=$?
  127. if ! [ ${ER} -eq 0 ] ; then
  128. ${ECHO_CMD}
  129. ${ECHO_CMD} "MYSQL DEVELOPMENT LIBRARY (libmysqlclient) AND/OR HEADER (mysql.h)"
  130. ${ECHO_CMD} " ARE NOT INSTALLED PROPERLY ON THIS SYSTEM."
  131. ${ECHO_CMD} " THAT'S OK BUT THE TURN SERVER IS BUILDING WITHOUT MYSQL DATABASE SUPPORT."
  132. ${ECHO_CMD}
  133. return 0
  134. else
  135. DBCFLAGS="${DBCFLAGS} ${MYSQL_CFLAGS}"
  136. DBLIBS="${DBLIBS} ${MYSQL_LIBS}"
  137. return 1
  138. fi
  139. }
  140. testlibmongoc() {
  141. for inc in ${INCLUDEDIR}/libmongoc-1.0 ${INCLUDEDIR}/libbson-1.0 /usr/local/include/libmongoc-1.0 /usr/local/include/libbson-1.0 /usr/libmongoc-1.0 /usr/libbson-1.0 /usr/include/libbson-1.0/ /usr/include/libmongoc-1.0/
  142. do
  143. if [ -d ${inc} ] ; then
  144. MONGO_CFLAGS="${MONGO_CFLAGS} -I${inc}"
  145. fi
  146. done
  147. MONGO_LIBS="-lmongoc-1.0 -lbson-1.0"
  148. ${CC} ${MONGO_TMPCPROGC} -o ${MONGO_TMPCPROGB} ${OSCFLAGS} ${DBCFLAGS} ${DBLIBS} ${MONGO_CFLAGS} ${MONGO_LIBS} ${OSLIBS} 2>>/dev/null
  149. ER=$?
  150. if ! [ ${ER} -eq 0 ] ; then
  151. ${ECHO_CMD}
  152. ${ECHO_CMD} "MONGODB DEVELOPMENT LIBRARIES (libmongoc-1.0 and libbson-1.0) AND/OR HEADER (mongoc.h)"
  153. ${ECHO_CMD} " ARE NOT INSTALLED PROPERLY ON THIS SYSTEM."
  154. ${ECHO_CMD} " THAT'S OK BUT THE TURN SERVER IS BUILDING WITHOUT MONGODB SUPPORT."
  155. ${ECHO_CMD}
  156. return 0
  157. else
  158. DBCFLAGS="${DBCFLAGS} ${MONGO_CFLAGS}"
  159. DBLIBS="${DBLIBS} ${MONGO_LIBS}"
  160. return 1
  161. fi
  162. }
  163. testlib() {
  164. testlibraw l${1}
  165. }
  166. pthread_testlib() {
  167. SYSTEM=`uname`
  168. if [ "${SYSTEM}" = "DragonFly" ] ; then
  169. OSLIBS="${OSLIBS} -pthread"
  170. TURN_NO_SCTP=1
  171. fi
  172. ISBSD=`uname | grep -i bsd`
  173. if ! [ -z "${ISBSD}" ] ; then
  174. OSLIBS="${OSLIBS} -pthread"
  175. fi
  176. if [ -z "${PTHREAD_LIBS}" ] ; then
  177. ${CC} ${TH_TMPCPROGC} -o ${TH_TMPCPROGB} ${OSCFLAGS} ${OSLIBS} 2>>/dev/null
  178. ER=$?
  179. if [ ${ER} -eq 0 ] ; then
  180. return 1
  181. else
  182. ${CC} ${TH_TMPCPROGC} -o ${TH_TMPCPROGB} ${OSCFLAGS} ${OSLIBS} -pthread 2>>/dev/null
  183. ER=$?
  184. if [ ${ER} -eq 0 ] ; then
  185. OSLIBS="${OSLIBS} -pthread"
  186. return 1
  187. else
  188. ${CC} ${TH_TMPCPROGC} -o ${TH_TMPCPROGB} ${OSCFLAGS} ${OSLIBS} -lpthread 2>>/dev/null
  189. ER=$?
  190. if [ ${ER} -eq 0 ] ; then
  191. OSLIBS="${OSLIBS} -lpthread"
  192. return 1
  193. fi
  194. fi
  195. fi
  196. else
  197. OSLIBS="${OSLIBS} ${PTHREAD_LIBS}"
  198. fi
  199. ${CC} ${TH_TMPCPROGC} -o ${TH_TMPCPROGB} ${OSCFLAGS} ${OSLIBS} 2>>/dev/null
  200. ER=$?
  201. if [ ${ER} -eq 0 ] ; then
  202. return 1
  203. else
  204. ${CC} ${TH_TMPCPROGC} -o ${TH_TMPCPROGB} ${OSCFLAGS} ${OSLIBS} -D_GNU_SOURCE 2>>/dev/null
  205. ER=$?
  206. if [ ${ER} -eq 0 ] ; then
  207. ${ECHO_CMD} "Older GNU pthread library found"
  208. OSCFLAGS="${OSCFLAGS} -D_GNU_SOURCE"
  209. return 1
  210. else
  211. ${ECHO_CMD} "Do not use pthreads"
  212. fi
  213. fi
  214. return 0
  215. }
  216. pthread_testbarriers() {
  217. ${ECHO_CMD} "pthread_barrier_t barrier;" >> ${TH_TMPCPROGC}
  218. ${CC} ${TH_TMPCPROGC} -o ${TH_TMPCPROGB} ${OSCFLAGS} ${OSLIBS} 2>>/dev/null
  219. ER=$?
  220. if ! [ ${ER} -eq 0 ] ; then
  221. ${ECHO_CMD} "pthread barriers not found"
  222. OSCFLAGS="${OSCFLAGS} -DTURN_NO_THREAD_BARRIERS"
  223. fi
  224. }
  225. gcm_testlib() {
  226. if [ -z "${TURN_NO_GCM}" ] ; then
  227. ${CC} ${GCM_TMPCPROGC} -o ${GCM_TMPCPROGB} ${OSCFLAGS} ${OSLIBS} 2>>/dev/null
  228. ER=$?
  229. if [ ${ER} -eq 0 ] ; then
  230. return 1
  231. else
  232. return 0
  233. fi
  234. else
  235. return 0
  236. fi
  237. }
  238. testdaemon() {
  239. ${CC} ${D_TMPCPROGC} -o ${D_TMPCPROGB} ${OSCFLAGS} ${OSLIBS} 2>>/dev/null
  240. ER=$?
  241. if [ ${ER} -eq 0 ] ; then
  242. OSCFLAGS="${OSCFLAGS} -DTURN_HAS_DAEMON"
  243. fi
  244. }
  245. test_sin_len() {
  246. TMPCADDRPROGC=src/client/ns_turn_ioaddr.c
  247. ${CC} -c ${OSCFLAGS} -DTURN_HAS_SIN_LEN -Isrc ${TMPCADDRPROGC} -o ${TMPCADDRPROGO} 2>>/dev/null
  248. ER=$?
  249. if [ ${ER} -eq 0 ] ; then
  250. OSCFLAGS="${OSCFLAGS} -DTURN_HAS_SIN_LEN"
  251. ${ECHO_CMD} "Sockets code is fine: sin_len field present"
  252. else
  253. ${CC} -c ${OSCFLAGS} -Isrc ${TMPCADDRPROGC} -o ${TMPCADDRPROGO} 2>>/dev/null
  254. ER=$?
  255. if [ ${ER} -eq 0 ] ; then
  256. ${ECHO_CMD} "Sockets code is fine: no sin_len field present"
  257. else
  258. ${ECHO_CMD} "WARNING: trial compilation failed: src/client/ns_turn_ioaddr.c"
  259. fi
  260. fi
  261. }
  262. #########################
  263. # Start
  264. #########################
  265. cleanup
  266. #########################
  267. # To be set:
  268. #########################
  269. if [ -z "${ECHO_CMD}" ] ; then
  270. ECHO_CMD=echo
  271. fi
  272. if [ -z "${FIND_CMD}" ] ; then
  273. FIND_CMD=find
  274. fi
  275. if [ -z "${PORTNAME}" ] ; then
  276. PORTNAME=turnserver
  277. fi
  278. #########################
  279. # Installation directory options
  280. ac_prev=
  281. ac_dashdash=
  282. for ac_option
  283. do
  284. # If the previous option needs an argument, assign it.
  285. if test -n "$ac_prev"; then
  286. eval $ac_prev=\$ac_option
  287. ac_prev=
  288. continue
  289. fi
  290. case $ac_option in
  291. *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
  292. *=) ac_optarg= ;;
  293. *) ac_optarg=yes ;;
  294. esac
  295. # Accept the important Cygnus configure options, so we can diagnose typos.
  296. case $ac_dashdash$ac_option in
  297. --)
  298. ac_dashdash=yes ;;
  299. -bindir | --bindir | --bindi | --bind | --bin | --bi)
  300. ac_prev=BINDIR ;;
  301. -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
  302. BINDIR=$ac_optarg ;;
  303. -localstatedir | --localstatedir | --localstatedi | --localstated | --localstate | --localstat)
  304. ac_prev=LOCALSTATEDIR ;;
  305. -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* | --localstate=* | --localstat=*)
  306. LOCALSTATEDIR=$ac_optarg ;;
  307. -turndbdir | --turndbdir | --turndbdi | --turndbd | --turndb | --turnd)
  308. ac_prev=TURNDBDIR ;;
  309. -turndbdir=* | --turndbdir=* | --turndbdi=* | --turndbd=* | --turndb=* | --turnd=*)
  310. TURNDBDIR=$ac_optarg ;;
  311. -datadir | --datadir | --datadi | --datad | -schemadir | --schemadir)
  312. ac_prev=SCHEMADIR ;;
  313. -datadir=* | --datadir=* | --datadi=* | --datad=* | -schemadir=* | --schemadir=*)
  314. SCHEMADIR=$ac_optarg ;;
  315. -docdir | --docdir | --docdi | --doc | --do | -docsdir | --docsdir | --docsdi | --docs)
  316. ac_prev=DOCDIR ;;
  317. -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=* | -docsdir=* | --docsdir=* | --docsdi=* | --docs=*)
  318. DOCSDIR=$ac_optarg ;;
  319. -examplesdir | --examplesdir | -examples | --examples)
  320. ac_prev=EXAMPLESDIR ;;
  321. -examplesdir=* | --examplesdir=* | -examples=* | --examples=*)
  322. EXAMPLESDIR=$ac_optarg ;;
  323. -includedir | --includedir | --includedi | --included | --include \
  324. | --includ | --inclu | --incl | --inc)
  325. ac_prev=INCLUDEDIR ;;
  326. -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
  327. | --includ=* | --inclu=* | --incl=* | --inc=*)
  328. INCLUDEDIR=$ac_optarg ;;
  329. -turnincludedir | --turnincludedir)
  330. ac_prev=TURNINCLUDEDIR ;;
  331. -turnincludedir=* | --turnincludedir=*)
  332. TURNINCLUDEDIR=$ac_optarg ;;
  333. -libdir | --libdir | --libdi | --libd)
  334. ac_prev=LIBDIR ;;
  335. -libdir=* | --libdir=* | --libdi=* | --libd=*)
  336. LIBDIR=$ac_optarg ;;
  337. -mandir | --mandir | --mandi | --mand | --man | --ma | --m | -manprefix | --manprefix)
  338. ac_prev=MAXPREFIX ;;
  339. -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=* | -manprefix=* | --manprefix=*)
  340. MANPREFIX=$ac_optarg ;;
  341. -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
  342. ac_prev=PREFIX ;;
  343. -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
  344. PREFIX=$ac_optarg ;;
  345. -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
  346. | --syscon | --sysco | --sysc | --sys | --sy | -confdir | --confdir)
  347. ac_prev=CONFDIR ;;
  348. -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
  349. | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=* | -confdir=* | --confdir=*)
  350. CONFDIR=$ac_optarg ;;
  351. -disable-rpath | --disable-rpath)
  352. TURN_DISABLE_RPATH=1 ;;
  353. esac
  354. done
  355. if test -n "$ac_prev"; then
  356. ac_option=--`echo $ac_prev | sed 's/_/-/g'`
  357. as_fn_error $? "missing argument to $ac_option"
  358. fi
  359. #############################################
  360. if [ -z "${PREFIX}" ] ; then
  361. if [ -z "${prefix}" ] ; then
  362. SYSTEM=`uname`
  363. if [ "${SYSTEM}" = "NetBSD" ] ; then
  364. # A little tough guy
  365. PREFIX=/usr/pkg
  366. elif [ "${SYSTEM}" = "SunOS" ] ; then
  367. # A fat guy
  368. PREFIX=/usr
  369. else
  370. # An ordinary person
  371. PREFIX=/usr/local
  372. fi
  373. else
  374. PREFIX=${prefix}
  375. fi
  376. fi
  377. if [ -z "${BINDIR}" ] ; then
  378. if [ -z "${bindir}" ] ; then
  379. BINDIR=${PREFIX}/bin
  380. else
  381. BINDIR=${bindir}
  382. fi
  383. fi
  384. if [ -z "${LOCALSTATEDIR}" ] ; then
  385. if [ -z "${localstatedir}" ] ; then
  386. if [ "${PREFIX}" = "/usr" ] ; then
  387. LOCALSTATEDIR=/var
  388. else
  389. LOCALSTATEDIR=${PREFIX}/var
  390. fi
  391. else
  392. LOCALSTATEDIR=${localstatedir}
  393. fi
  394. fi
  395. if [ -z "${CONFDIR}" ] ; then
  396. if [ -z "${confdir}" ] ; then
  397. CONFDIR=${PREFIX}/etc
  398. else
  399. CONFDIR=${confdir}
  400. fi
  401. fi
  402. if [ -z "${MANPREFIX}" ] ; then
  403. if [ -z "${manprefix}" ] ; then
  404. MANPREFIX=${PREFIX}
  405. else
  406. MANPREFIX=${manprefix}
  407. fi
  408. fi
  409. if [ -z "${EXAMPLESDIR}" ] ; then
  410. if [ -z "${examplesdir}" ] ; then
  411. EXAMPLESDIR=${PREFIX}/share/examples/${PORTNAME}
  412. else
  413. EXAMPLESDIR=${examplesdir}
  414. fi
  415. fi
  416. if [ -z "${DOCSDIR}" ] ; then
  417. if [ -z "${docsdir}" ] ; then
  418. DOCSDIR=${PREFIX}/share/doc/${PORTNAME}
  419. else
  420. DOCSDIR=${docsdir}
  421. fi
  422. fi
  423. if [ -z "${LIBDIR}" ] ; then
  424. if [ -z "${libdir}" ] ; then
  425. LIBDIR=${PREFIX}/lib
  426. else
  427. LIBDIR=${libdir}
  428. fi
  429. fi
  430. if [ -z "${SCHEMADIR}" ] ; then
  431. if [ -z "${schemadir}" ] ; then
  432. SCHEMADIR=${PREFIX}/share/${PORTNAME}
  433. else
  434. SCHEMADIR=${schemadir}
  435. fi
  436. fi
  437. if [ -z "${INCLUDEDIR}" ] ; then
  438. if [ -z "${includedir}" ] ; then
  439. INCLUDEDIR=${PREFIX}/include
  440. else
  441. INCLUDEDIR=${includedir}
  442. fi
  443. fi
  444. if [ -z "${TURNINCLUDEDIR}" ] ; then
  445. if [ -z "${turnincludedir}" ] ; then
  446. TURNINCLUDEDIR=${INCLUDEDIR}/turn
  447. else
  448. TURNINCLUDEDIR=${turnincludedir}
  449. fi
  450. fi
  451. ###############################################
  452. if [ -z "${ARCHIVERCMD}" ] ; then
  453. ARCHIVERCMD="ar -r"
  454. fi
  455. if [ -z "${MORECMD}" ]; then
  456. MORECMD="cat"
  457. fi
  458. OSCFLAGS="-I${INCLUDEDIR} -I${PREFIX}/include/ -I/usr/local/include ${CFLAGS}"
  459. OSLIBS="${LDFLAGS}"
  460. for ilib in ${PREFIX}/lib/event2/ ${PREFIX}/lib/ /usr/local/lib/event2/ /usr/local/lib/ ${PREFIX}/lib64/event2/ ${PREFIX}/lib64/ /usr/local/lib64/event2/ /usr/local/lib64/
  461. do
  462. if [ -d ${ilib} ] ; then
  463. OSLIBS="${OSLIBS} -L${ilib}"
  464. TURN_RPATH="${TURN_RPATH} -Wl,-rpath,${ilib}"
  465. fi
  466. done
  467. SYSTEM=`uname`
  468. if [ "${SYSTEM}" = "NetBSD" ] ; then
  469. OSCFLAGS="${OSCFLAGS} -I/usr/pkg/include"
  470. OSLIBS="-L/usr/pkg/lib ${OSLIBS}"
  471. if ! [ -z "${TURN_ACCEPT_RPATH}" ] ; then
  472. TURN_RPATH="${TURN_RPATH} -Wl,-rpath,/usr/pkg/lib"
  473. fi
  474. fi
  475. ###########################
  476. # Install shell commands
  477. ###########################
  478. type ginstall 2>>/dev/null
  479. ER=$?
  480. if [ ${ER} -eq 0 ] ; then
  481. INSTALL_PROGRAM="ginstall"
  482. INSTALL_MAN="ginstall"
  483. INSTALL_SCRIPT="ginstall"
  484. INSTALL_SHARED_LIB="ginstall"
  485. INSTALL_STATIC_LIB="ginstall"
  486. INSTALL_DATA="ginstall"
  487. MKDIR="ginstall -d"
  488. else
  489. type install 2>>/dev/null
  490. ER=$?
  491. if [ ${ER} -eq 0 ] ; then
  492. INSTALL_PROGRAM="install"
  493. INSTALL_MAN="install"
  494. INSTALL_SCRIPT="install"
  495. INSTALL_SHARED_LIB="install"
  496. INSTALL_STATIC_LIB="install"
  497. INSTALL_DATA="install"
  498. MKDIR="install -d"
  499. else
  500. INSTALL_PROGRAM="cp -pf"
  501. INSTALL_MAN="cp -pf"
  502. INSTALL_SCRIPT="cp -pf"
  503. INSTALL_SHARED_LIB="cp -pf"
  504. INSTALL_STATIC_LIB="cp -pf"
  505. INSTALL_DATA="cp -pf"
  506. MKDIR="mkdir -p"
  507. fi
  508. fi
  509. type pkill 2>>/dev/null
  510. ER=$?
  511. if [ ${ER} -eq 0 ] ; then
  512. PKILL_PROGRAM="pkill"
  513. else
  514. PKILL_PROGRAM="${ECHO_CMD}"
  515. fi
  516. INSTALL_DIR="cp -rpf"
  517. MKBUILDDIR="mkdir -p"
  518. RMCMD="rm -rf"
  519. type sqlite3 2>>/dev/null
  520. ER=$?
  521. if [ ${ER} -eq 0 ] ; then
  522. SQLITE_CMD="sqlite3"
  523. else
  524. type sqlite 2>>/dev/null
  525. ER=$?
  526. if [ ${ER} -eq 0 ] ; then
  527. SQLITE_CMD="sqlite"
  528. else
  529. SQLITE_CMD=${ECHO_CMD}
  530. fi
  531. fi
  532. #############################
  533. # Adjustments for Solaris
  534. #############################
  535. SYSTEM=`uname`
  536. if [ "${SYSTEM}" = "SunOS" ] ; then
  537. # Solaris ? is this you ?!
  538. OSCFLAGS="${OSCFLAGS} -D__EXTENSIONS__ -D_XOPEN_SOURCE=500 -DTURN_NO_GETDOMAINNAME"
  539. OSLIBS="${OSLIBS} -lnsl"
  540. TURN_NO_SCTP=1
  541. fi
  542. #########################
  543. # Temporary DIR location:
  544. #########################
  545. TMPDIR="."
  546. if [ -d /var/tmp ] ; then
  547. TMPDIR="/var/tmp"
  548. elif [ -d /tmp ] ; then
  549. TMPDIR=/tmp
  550. fi
  551. ${ECHO_CMD} Use TMP dir ${TMPDIR}
  552. #########################
  553. # Basic C test programs
  554. #########################
  555. TMPCADDRPROGO=${TMPDIR}/__test__ccomp_addr_$$.o
  556. TMPCPROG=__test__ccomp__$$
  557. TMPCPROGC=${TMPDIR}/${TMPCPROG}.c
  558. TMPCPROGB=${TMPDIR}/${TMPCPROG}
  559. cat > ${TMPCPROGC} <<!
  560. #include <stdlib.h>
  561. int main(int argc, char** argv) {
  562. return (int)(argv[argc][0]);
  563. }
  564. !
  565. TH_TMPCPROG=__test__ccomp__pthread__$$
  566. TH_TMPCPROGC=${TMPDIR}/${TH_TMPCPROG}.c
  567. TH_TMPCPROGB=${TMPDIR}/${TH_TMPCPROG}
  568. cat > ${TH_TMPCPROGC} <<!
  569. #include <stdlib.h>
  570. #include <pthread.h>
  571. int main(int argc, char** argv) {
  572. pthread_mutexattr_settype(0,PTHREAD_MUTEX_RECURSIVE);
  573. return (int)pthread_create(0,0,0,0)+(int)(argv[argc][0]);
  574. }
  575. !
  576. GCM_TMPCPROG=__test__ccomp__gcm__$$
  577. GCM_TMPCPROGC=${TMPDIR}/${GCM_TMPCPROG}.c
  578. GCM_TMPCPROGB=${TMPDIR}/${GCM_TMPCPROG}
  579. cat > ${GCM_TMPCPROGC} <<!
  580. #include <stdlib.h>
  581. #include <openssl/ssl.h>
  582. #include <openssl/evp.h>
  583. int main(int argc, char** argv) {
  584. return (int)EVP_CIPH_GCM_MODE;
  585. }
  586. !
  587. D_TMPCPROG=__test__ccomp__daemon__$$
  588. D_TMPCPROGC=${TMPDIR}/${D_TMPCPROG}.c
  589. D_TMPCPROGB=${TMPDIR}/${D_TMPCPROG}
  590. cat > ${D_TMPCPROGC} <<!
  591. #include <stdlib.h>
  592. #include <unistd.h>
  593. int main(int argc, char** argv) {
  594. return (int)daemon(0,0)+(int)(argv[argc][0]);
  595. }
  596. !
  597. E_TMPCPROG=__test__ccomp__libevent2__$$
  598. E_TMPCPROGC=${TMPDIR}/${E_TMPCPROG}.c
  599. E_TMPCPROGO=${TMPDIR}/${E_TMPCPROG}.o
  600. cat > ${E_TMPCPROGC} <<!
  601. #include <stdlib.h>
  602. #include <event2/event.h>
  603. int main(int argc, char** argv) {
  604. return (int)(argv[argc][0]);
  605. }
  606. !
  607. SQL_TMPCPROG=__test__ccomp__sqlite__$$
  608. SQL_TMPCPROGC=${TMPDIR}/${SQL_TMPCPROG}.c
  609. SQL_TMPCPROGO=${TMPDIR}/${SQL_TMPCPROG}.o
  610. cat > ${SQL_TMPCPROGC} <<!
  611. #include <stdlib.h>
  612. #include <sqlite3.h>
  613. int main(int argc, char** argv) {
  614. return (int)(argv[argc][0]);
  615. }
  616. !
  617. HR_TMPCPROG=__test__ccomp__hiredis__$$
  618. HR_TMPCPROGC=${TMPDIR}/${HR_TMPCPROG}.c
  619. HR_TMPCPROGB=${TMPDIR}/${HR_TMPCPROG}
  620. cat > ${HR_TMPCPROGC} <<!
  621. #include <stdlib.h>
  622. #include <hiredis/hiredis.h>
  623. #include <hiredis/async.h>
  624. int main(int argc, char** argv) {
  625. redisAsyncHandleRead(NULL);
  626. return (int)(argv[argc][0]);
  627. }
  628. !
  629. PQ_TMPCPROG=__test__ccomp__libpq__$$
  630. PQ_TMPCPROGC=${TMPDIR}/${PQ_TMPCPROG}.c
  631. PQ_TMPCPROGB=${TMPDIR}/${PQ_TMPCPROG}
  632. cat > ${PQ_TMPCPROGC} <<!
  633. #include <stdlib.h>
  634. #include <libpq-fe.h>
  635. int main(int argc, char** argv) {
  636. return (argc+(PQprotocolVersion(NULL))+(int)(argv[0][0]));
  637. }
  638. !
  639. MYSQL_TMPCPROG=__test__ccomp__libmysql__$$
  640. MYSQL_TMPCPROGC=${TMPDIR}/${MYSQL_TMPCPROG}.c
  641. MYSQL_TMPCPROGB=${TMPDIR}/${MYSQL_TMPCPROG}
  642. cat > ${MYSQL_TMPCPROGC} <<!
  643. #include <stdlib.h>
  644. #include <mysql.h>
  645. int main(int argc, char** argv) {
  646. return (argc+
  647. (int)(mysql_real_connect(NULL, NULL, NULL, NULL, NULL, 0, NULL, 0)!=0)+
  648. (int)(argv[0][0]));
  649. }
  650. !
  651. MONGO_TMPCPROG=__test__ccomp__libmongoc__$$
  652. MONGO_TMPCPROGC=${TMPDIR}/${MONGO_TMPCPROG}.c
  653. MONGO_TMPCPROGB=${TMPDIR}/${MONGO_TMPCPROG}
  654. cat > ${MONGO_TMPCPROGC} <<!
  655. #include <mongoc.h>
  656. int main(int argc, char** argv) {
  657. return (argc+
  658. (int)(mongoc_client_new("mongodb://localhost:27017")!=0)+
  659. (int)(argv[0][0]));
  660. }
  661. !
  662. ##########################
  663. # What is our compiler ?
  664. ##########################
  665. if [ -z "${CC}" ] ; then
  666. CC=cc
  667. ${CC} ${TMPCPROGC} ${OSCFLAGS} -o ${TMPCPROGB} 2>>/dev/null
  668. ER=$?
  669. if ! [ ${ER} -eq 0 ] ; then
  670. CC=gcc
  671. ${CC} ${TMPCPROGC} ${OSCFLAGS} -o ${TMPCPROGB} 2>>/dev/null
  672. ER=$?
  673. if ! [ ${ER} -eq 0 ] ; then
  674. CC=clang
  675. ${CC} ${TMPCPROGC} ${OSCFLAGS} -o ${TMPCPROGB} 2>>/dev/null
  676. ER=$?
  677. if ! [ ${ER} -eq 0 ] ; then
  678. CC=unknown
  679. fi
  680. fi
  681. fi
  682. fi
  683. ${ECHO_CMD} "Compiler: ${CC}"
  684. if [ -z "${TURN_ACCEPT_RPATH}" ] ; then
  685. ${CC} ${TMPCPROGC} ${OSCFLAGS} -o ${TMPCPROGB} -Wl,-rpath,/usr/lib 2>>/dev/null
  686. ER=$?
  687. if [ ${ER} -eq 0 ] ; then
  688. TURN_ACCEPT_RPATH=1
  689. fi
  690. fi
  691. ${CC} ${TMPCPROGC} ${OSCFLAGS} -o ${TMPCPROGB} 2>>/dev/null
  692. ER=$?
  693. if ! [ ${ER} -eq 0 ] ; then
  694. ${ECHO_CMD} "ERROR: cannot use compiler ${CC} properly"
  695. cleanup
  696. exit
  697. fi
  698. ###########################
  699. # Check if we can use GNU
  700. # or Clang compiler flags
  701. ###########################
  702. GNUOSCFLAGS="-g ${GNUOSCFLAGS}"
  703. GNUOSCFLAGS="${GNUOSCFLAGS} -Wall -Wno-deprecated-declarations -Wextra -Wformat-security -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wcast-qual"
  704. GNUOSCFLAGS="${GNUOSCFLAGS}"
  705. ${CC} -Werror ${GNUOSCFLAGS} ${TMPCPROGC} ${OSCFLAGS} -o ${TMPCPROGB} 2>>/dev/null
  706. ER=$?
  707. if ! [ ${ER} -eq 0 ] ; then
  708. ${ECHO_CMD} "Hm..."
  709. ${CC} -Wall ${TMPCPROGC} ${OSCFLAGS} -o ${TMPCPROGB} 2>>/dev/null
  710. ER=$?
  711. if ! [ ${ER} -eq 0 ] ; then
  712. ${ECHO_CMD} "Not an ordinary GNU or Clang compiler"
  713. else
  714. ${ECHO_CMD} "g++ or something..."
  715. GNUOSCFLAGS="-g -Wall -Wno-deprecated-declarations -Wextra -Wformat-security -Wpointer-arith -Wcast-qual"
  716. ${CC} -Werror ${GNUOSCFLAGS} ${TMPCPROGC} ${OSCFLAGS} -o ${TMPCPROGB} 2>>/dev/null
  717. ER=$?
  718. if ! [ ${ER} -eq 0 ] ; then
  719. ${ECHO_CMD} "Not an ordinary g++ compiler"
  720. GNUOSCFLAGS="-x c++ -g -Wall -Wno-deprecated-declarations -Wextra -Wformat-security -Wpointer-arith -Wcast-qual"
  721. ${CC} -Werror ${GNUOSCFLAGS} ${TMPCPROGC} ${OSCFLAGS} -o ${TMPCPROGB} 2>>/dev/null
  722. ER=$?
  723. if ! [ ${ER} -eq 0 ] ; then
  724. ${ECHO_CMD} "Not an ordinary c++ compiler"
  725. else
  726. ${ECHO_CMD} "Clang++ compiler ?"
  727. OSCFLAGS="${GNUOSCFLAGS} ${OSCFLAGS}"
  728. fi
  729. else
  730. OSCFLAGS="${GNUOSCFLAGS} ${OSCFLAGS}"
  731. fi
  732. fi
  733. else
  734. OSCFLAGS="${GNUOSCFLAGS} ${OSCFLAGS}"
  735. fi
  736. ###########################
  737. # Test some general-purpose
  738. # libraries
  739. ###########################
  740. testlib socket
  741. testlib rt
  742. testlib wldap32
  743. ER=$?
  744. if ! [ ${ER} -eq 0 ] ; then
  745. echo "CYGWIN ?"
  746. fi
  747. testlib wldap64
  748. testlib intl
  749. testlib nsl
  750. testlib resolv
  751. ###########################
  752. # Test sockets compilation
  753. ###########################
  754. test_sin_len
  755. ###########################
  756. # Can we use multi-threading ?
  757. ###########################
  758. pthread_testlib
  759. ER=$?
  760. if [ ${ER} -eq 0 ] ; then
  761. ${ECHO_CMD} "ERROR: Cannot find pthread library functions."
  762. exit
  763. fi
  764. if [ -z ${TURN_NO_THREAD_BARRIERS} ] ; then
  765. pthread_testbarriers
  766. else
  767. TURN_NO_THREAD_BARRIERS="-DTURN_NO_THREAD_BARRIERS"
  768. fi
  769. if [ -z ${TURN_IP_RECVERR} ] ; then
  770. ${ECHO_CMD} "Ignore IP_RECVERR"
  771. else
  772. ${ECHO_CMD} "Use IP_RECVERR"
  773. TURN_IP_RECVERR="-DTURN_IP_RECVERR"
  774. OSCFLAGS="${OSCFLAGS} ${TURN_IP_RECVERR}"
  775. fi
  776. ###########################
  777. # Can we use daemon ?
  778. ###########################
  779. testdaemon
  780. ###########################
  781. # Test OpenSSL installation
  782. ###########################
  783. testlib crypto
  784. ER=$?
  785. if ! [ ${ER} -eq 0 ] ; then
  786. ${ECHO_CMD} "Crypto SSL lib found."
  787. else
  788. ${ECHO_CMD} "ERROR: OpenSSL Crypto development libraries are not installed properly in required location."
  789. ${ECHO_CMD} "Abort."
  790. cleanup
  791. exit
  792. fi
  793. testlib ssl
  794. ER=$?
  795. if ! [ ${ER} -eq 0 ] ; then
  796. ${ECHO_CMD} "SSL lib found."
  797. else
  798. ${ECHO_CMD} "ERROR: OpenSSL development libraries are not installed properly in required location."
  799. ${ECHO_CMD} "Abort."
  800. cleanup
  801. exit
  802. fi
  803. ###########################
  804. # Can we use GCM cipher ?
  805. ###########################
  806. if [ -z ${TURN_NO_GCM} ] ; then
  807. gcm_testlib
  808. ER=$?
  809. if [ ${ER} -eq 0 ] ; then
  810. ${ECHO_CMD} "WARNING: Cannot find GCM support."
  811. ${ECHO_CMD} "Turning GCM off."
  812. TURN_NO_GCM="-DTURN_NO_GCM"
  813. fi
  814. else
  815. TURN_NO_GCM="-DTURN_NO_GCM"
  816. fi
  817. ###########################
  818. # Test Libevent2 setup
  819. ###########################
  820. testlibevent2_comp
  821. ER=$?
  822. if ! [ ${ER} -eq 0 ] ; then
  823. ${ECHO_CMD} "Libevent2 development found."
  824. else
  825. ${ECHO_CMD} "ERROR: Libevent2 development libraries are not installed properly in required location."
  826. ${ECHO_CMD} "ERROR: may be you have just too old libevent tool - then you have to upgrade it."
  827. ${ECHO_CMD} "See the INSTALL file."
  828. ${ECHO_CMD} "Abort."
  829. cleanup
  830. exit
  831. fi
  832. testlib event_core
  833. ER=$?
  834. if ! [ ${ER} -eq 0 ] ; then
  835. ${ECHO_CMD} "Libevent2 runtime found."
  836. testlib event_extra
  837. ER=$?
  838. if ! [ ${ER} -eq 0 ] ; then
  839. ${ECHO_CMD} "Libevent2 runtime 'extra' found."
  840. else
  841. ${ECHO_CMD} "ERROR: Libevent2 'extra' runtime library is not installed properly in required location."
  842. ${ECHO_CMD} "See the INSTALL file."
  843. ${ECHO_CMD} "Abort."
  844. cleanup
  845. exit
  846. fi
  847. else
  848. testlib event
  849. ER=$?
  850. if ! [ ${ER} -eq 0 ] ; then
  851. ${ECHO_CMD} "Libevent2 runtime found (old style)."
  852. else
  853. ${ECHO_CMD} "ERROR: Libevent2 runtime libraries are not installed properly in required location."
  854. ${ECHO_CMD} "See the INSTALL file."
  855. ${ECHO_CMD} "Abort."
  856. cleanup
  857. exit
  858. fi
  859. fi
  860. if [ -z "${TURN_NO_TLS}" ] ; then
  861. testlib event_openssl
  862. ER=$?
  863. if ! [ ${ER} -eq 0 ] ; then
  864. ${ECHO_CMD} "Libevent2 openssl found."
  865. else
  866. ${ECHO_CMD} "ERROR: Libevent2 development libraries are not compiled with OpenSSL support."
  867. ${ECHO_CMD} "TLS will be disabled."
  868. TURN_NO_TLS="-DTURN_NO_TLS"
  869. fi
  870. else
  871. TURN_NO_TLS="-DTURN_NO_TLS"
  872. fi
  873. testlib event_pthreads
  874. ER=$?
  875. if ! [ ${ER} -eq 0 ] ; then
  876. ${ECHO_CMD} "Libevent2 pthreads found."
  877. else
  878. ${ECHO_CMD} "ERROR: Libevent2 development libraries are not compiled with threads support."
  879. exit
  880. fi
  881. ###########################
  882. # Test SQLite setup
  883. ###########################
  884. if [ -z "${TURN_NO_SQLITE}" ] ; then
  885. testlib sqlite3
  886. ER=$?
  887. if ! [ ${ER} -eq 0 ] ; then
  888. ${ECHO_CMD} "SQLite library found."
  889. else
  890. ${ECHO_CMD} "SQLite3 development library cannot be found."
  891. TURN_NO_SQLITE="-DTURN_NO_SQLITE"
  892. fi
  893. if [ -z "${TURN_NO_SQLITE}" ] ; then
  894. testsqlite_comp
  895. ER=$?
  896. if ! [ ${ER} -eq 0 ] ; then
  897. ${ECHO_CMD} "SQLite development found."
  898. else
  899. ${ECHO_CMD} "SQLite development libraries are not installed properly in required location."
  900. TURN_NO_SQLITE="-DTURN_NO_SQLITE"
  901. fi
  902. fi
  903. if ! [ -z "${TURN_NO_SQLITE}" ] ; then
  904. ${ECHO_CMD}
  905. ${ECHO_CMD} "SQLite DEVELOPMENT LIBRARY (libsqlite3) AND/OR HEADER (sqlite3.h)"
  906. ${ECHO_CMD} " ARE NOT INSTALLED PROPERLY ON THIS SYSTEM."
  907. ${ECHO_CMD} " THAT'S OK BUT THE TURN SERVER IS BUILDING WITHOUT SQLITE SUPPORT."
  908. ${ECHO_CMD}
  909. fi
  910. else
  911. TURN_NO_SQLITE="-DTURN_NO_SQLITE"
  912. SQLITE_CMD=${ECHO_CMD}
  913. fi
  914. if [ -z "${TURNDBDIR}" ] ; then
  915. TURNDBDIR=${LOCALSTATEDIR}/db
  916. fi
  917. ###########################
  918. # Test PostgreSQL
  919. ###########################
  920. if [ -z "${TURN_NO_PQ}" ] ; then
  921. testlibpq
  922. ER=$?
  923. if ! [ ${ER} -eq 0 ] ; then
  924. ${ECHO_CMD} "PostgreSQL found."
  925. else
  926. TURN_NO_PQ="-DTURN_NO_PQ"
  927. fi
  928. else
  929. TURN_NO_PQ="-DTURN_NO_PQ"
  930. fi
  931. ###########################
  932. # Test MySQL
  933. ###########################
  934. if [ -z "${TURN_NO_MYSQL}" ] ; then
  935. testlibmysql
  936. ER=$?
  937. if ! [ ${ER} -eq 0 ] ; then
  938. ${ECHO_CMD} "MySQL found."
  939. else
  940. TURN_NO_MYSQL="-DTURN_NO_MYSQL"
  941. fi
  942. else
  943. TURN_NO_MYSQL="-DTURN_NO_MYSQL"
  944. fi
  945. ###########################
  946. # Test MongoDB
  947. ###########################
  948. if [ -z "${TURN_NO_MONGO}" ] ; then
  949. testlibmongoc
  950. ER=$?
  951. if ! [ ${ER} -eq 0 ] ; then
  952. ${ECHO_CMD} "MongoDB found."
  953. else
  954. TURN_NO_MONGO="-DTURN_NO_MONGO"
  955. fi
  956. else
  957. TURN_NO_MONGO="-DTURN_NO_MONGO"
  958. fi
  959. ###########################
  960. # Test Redis
  961. ###########################
  962. if [ -z "${TURN_NO_HIREDIS}" ] ; then
  963. testhiredis
  964. ER=$?
  965. if ! [ ${ER} -eq 0 ] ; then
  966. ${ECHO_CMD} "Hiredis found."
  967. else
  968. TURN_NO_HIREDIS="-DTURN_NO_HIREDIS"
  969. fi
  970. else
  971. TURN_NO_HIREDIS="-DTURN_NO_HIREDIS"
  972. fi
  973. ###############################
  974. # LDCONFIG
  975. ###############################
  976. if [ -z "${LDCONFIG}" ] ; then
  977. ISBSD=`uname | grep -i bsd`
  978. if [ -z "${ISBSD}" ] ; then
  979. ISLINUX=`uname | grep -i linux`
  980. if [ -z "${ISLINUX}" ] ; then
  981. SYSTEM=`uname`
  982. if [ "${SYSTEM}" = "SunOS" ] ; then
  983. LDCONFIG="crle -u -l"
  984. else
  985. LDCONFIG=${ECHO_CMD}
  986. fi
  987. else
  988. LDCONFIG="ldconfig -n"
  989. fi
  990. else
  991. LDCONFIG="ldconfig -m"
  992. fi
  993. fi
  994. ###############################
  995. # SCTP
  996. ###############################
  997. if [ -z "${TURN_NO_SCTP}" ] ; then
  998. if [ -z "${TURN_SCTP_INCLUDE}" ] ; then
  999. if [ -f /usr/include/netinet/sctp.h ] ; then
  1000. TURN_SCTP_INCLUDE="-DTURN_SCTP_INCLUDE=\"</usr/include/netinet/sctp.h>\""
  1001. fi
  1002. else
  1003. TURN_SCTP_INCLUDE="-DTURN_SCTP_INCLUDE=\"\\\"${TURN_SCTP_INCLUDE}\\\"\""
  1004. fi
  1005. else
  1006. TURN_NO_SCTP="-DTURN_NO_SCTP"
  1007. fi
  1008. ###############################
  1009. # So, what we have now:
  1010. ###############################
  1011. OSCFLAGS="${OSCFLAGS} ${TURN_NO_SCTP} ${TURN_SCTP_INCLUDE} ${TURN_NO_THREAD_BARRIERS} ${TURN_NO_DTLS} ${TURN_NO_GCM} ${TURN_NO_TLS} -DINSTALL_PREFIX=${PREFIX} -DTURNDB=${TURNDBDIR}/turndb"
  1012. if ! [ -z "${TURN_ACCEPT_RPATH}" ] ; then
  1013. if [ -z "${TURN_DISABLE_RPATH}" ] ; then
  1014. TURN_RPATH="${TURN_RPATH} -Wl,-rpath,/usr/local/lib"
  1015. OSLIBS="${OSLIBS} ${TURN_RPATH}"
  1016. fi
  1017. fi
  1018. ${ECHO_CMD} PREFIX="${PREFIX}" LOCALSTATEDIR="${LOCALSTATEDIR}" OSLIBS="${OSLIBS}" DBLIBS="${DBLIBS}" OSCFLAGS="${OSCFLAGS}" DBCFLAGS="${DBCFLAGS}" $@
  1019. ###############################
  1020. # Make make:
  1021. ###############################
  1022. ${ECHO_CMD} "#################################" > Makefile
  1023. ${ECHO_CMD} "# Generated by configure script #" >> Makefile
  1024. ${ECHO_CMD} "#################################" >> Makefile
  1025. ${ECHO_CMD} "ECHO_CMD = ${ECHO_CMD}" >> Makefile
  1026. ${ECHO_CMD} "CC = ${CC}" >> Makefile
  1027. ${ECHO_CMD} "LDFLAGS += ${OSLIBS}" >> Makefile
  1028. ${ECHO_CMD} "DBLIBS += ${DBLIBS}" >> Makefile
  1029. ${ECHO_CMD} "CFLAGS += ${OSCFLAGS}" >> Makefile
  1030. ${ECHO_CMD} "CPPFLAGS = ${CPPFLAGS}" >> Makefile
  1031. ${ECHO_CMD} "DBCFLAGS += ${DBCFLAGS} ${TURN_NO_PQ} ${TURN_NO_MYSQL} ${TURN_NO_SQLITE} ${TURN_NO_MONGO} ${TURN_NO_HIREDIS}" >> Makefile
  1032. ${ECHO_CMD} "#" >> Makefile
  1033. ${ECHO_CMD} "PORTNAME = ${PORTNAME}" >> Makefile
  1034. ${ECHO_CMD} "PREFIX = ${PREFIX}" >> Makefile
  1035. ${ECHO_CMD} "prefix = ${PREFIX}" >> Makefile
  1036. ${ECHO_CMD} "BINDIR = ${BINDIR}" >> Makefile
  1037. ${ECHO_CMD} "bindir = ${BINDIR}" >> Makefile
  1038. ${ECHO_CMD} "LOCALSTATEDIR = ${LOCALSTATEDIR}" >> Makefile
  1039. ${ECHO_CMD} "localstatedir = ${LOCALSTATEDIR}" >> Makefile
  1040. ${ECHO_CMD} "TURNDBDIR = ${TURNDBDIR}" >> Makefile
  1041. ${ECHO_CMD} "turndbdir = ${TURNDBDIR}" >> Makefile
  1042. ${ECHO_CMD} "CONFDIR = ${CONFDIR}" >> Makefile
  1043. ${ECHO_CMD} "confdir = ${CONFDIR}" >> Makefile
  1044. ${ECHO_CMD} "MANPREFIX = ${MANPREFIX}" >> Makefile
  1045. ${ECHO_CMD} "manprefix = ${MANPREFIX}" >> Makefile
  1046. ${ECHO_CMD} "EXAMPLESDIR = ${EXAMPLESDIR}" >> Makefile
  1047. ${ECHO_CMD} "examplesdir = ${EXAMPLESDIR}" >> Makefile
  1048. ${ECHO_CMD} "DOCSDIR = ${DOCSDIR}" >> Makefile
  1049. ${ECHO_CMD} "docsdir = ${DOCSDIR}" >> Makefile
  1050. ${ECHO_CMD} "LIBDIR = ${LIBDIR}" >> Makefile
  1051. ${ECHO_CMD} "libdir = ${LIBDIR}" >> Makefile
  1052. ${ECHO_CMD} "SCHEMADIR = ${SCHEMADIR}" >> Makefile
  1053. ${ECHO_CMD} "schemadir = ${SCHEMADIR}" >> Makefile
  1054. ${ECHO_CMD} "INCLUDEDIR = ${INCLUDEDIR}" >> Makefile
  1055. ${ECHO_CMD} "includedir = ${INCLUDEDIR}" >> Makefile
  1056. ${ECHO_CMD} "TURNINCLUDEDIR = ${TURNINCLUDEDIR}" >> Makefile
  1057. ${ECHO_CMD} "turnincludedir = ${TURNINCLUDEDIR}" >> Makefile
  1058. ${ECHO_CMD} "#" >> Makefile
  1059. ${ECHO_CMD} "ARCHIVERCMD = ${ARCHIVERCMD}" >> Makefile
  1060. ${ECHO_CMD} "MKDIR = ${MKDIR}" >> Makefile
  1061. ${ECHO_CMD} "SQLITE_CMD = ${SQLITE_CMD}" >> Makefile
  1062. ${ECHO_CMD} "INSTALL_PROGRAM = ${INSTALL_PROGRAM}" >> Makefile
  1063. ${ECHO_CMD} "PKILL_PROGRAM = ${PKILL_PROGRAM}" >> Makefile
  1064. ${ECHO_CMD} "INSTALL_MAN = ${INSTALL_MAN}" >> Makefile
  1065. ${ECHO_CMD} "INSTALL_SCRIPT = ${INSTALL_SCRIPT}" >> Makefile
  1066. ${ECHO_CMD} "INSTALL_SHARED_LIB = ${INSTALL_SHARED_LIB}" >> Makefile
  1067. ${ECHO_CMD} "INSTALL_STATIC_LIB = ${INSTALL_STATIC_LIB}" >> Makefile
  1068. ${ECHO_CMD} "INSTALL_DATA = ${INSTALL_DATA}" >> Makefile
  1069. ${ECHO_CMD} "INSTALL_DIR = ${INSTALL_DIR}" >> Makefile
  1070. ${ECHO_CMD} "MKBUILDDIR = ${MKBUILDDIR}" >> Makefile
  1071. ${ECHO_CMD} "RMCMD = ${RMCMD}" >> Makefile
  1072. ${ECHO_CMD} "MORECMD = ${MORECMD}" >> Makefile
  1073. ${ECHO_CMD} "LDCONFIG=${LDCONFIG}" >> Makefile
  1074. ${ECHO_CMD} "################################" >> Makefile
  1075. ${ECHO_CMD} "" >> Makefile
  1076. cat Makefile.in >> Makefile
  1077. ###############################
  1078. # End:
  1079. ###############################
  1080. cleanup
  1081. ${ECHO_CMD} "Makefile created: success."