configure 36 KB

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