configure 32 KB

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