configure 31 KB

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