configure 36 KB

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