configure 35 KB

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