configure 28 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109
  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 ${D_TMPCPROGC}
  11. rm -rf ${D_TMPCPROGB}
  12. rm -rf ${TMPCADDRPROGO}
  13. }
  14. testlibraw() {
  15. ${CC} ${TMPCPROGC} -o ${TMPCPROGB} ${OSCFLAGS} ${OSLIBS} -${1} 2>>/dev/null
  16. ER=$?
  17. if ! [ ${ER} -eq 0 ] ; then
  18. ${ECHO_CMD} "Library option -${1} cannot be used"
  19. return 0
  20. else
  21. OSLIBS="${OSLIBS} -${1}"
  22. return 1
  23. fi
  24. }
  25. # testpkg pkg1 pkg2 ...
  26. # If all libraries are found, sets PKG_CFLAGS/PKG_LIBS and returns success.
  27. # Otherwise, returns failure.
  28. testpkg() {
  29. PKG_LIBS="$($PKGCONFIG --libs "$@" 2>/dev/null)"
  30. if [ $? -ne 0 ] ; then
  31. return 1
  32. fi
  33. PKG_CFLAGS="$($PKGCONFIG --cflags "$@")"
  34. }
  35. # testpkg_db pkg1 pkg2 ...
  36. # If all libraries are found, adds them to DBCFLAGS/DBLIBS and returns success.
  37. # Otherwise, returns failure.
  38. testpkg_db() {
  39. testpkg "$@" || return $?
  40. DBCFLAGS="${DBCFLAGS} ${PKG_CFLAGS}"
  41. DBLIBS="${DBLIBS} ${PKG_LIBS}"
  42. }
  43. # support for older mysql version
  44. # if mysql_config is found in path adds librairies to DBCFLAGS/DBLIBS and returns success.
  45. # Otherwise, returns failure.
  46. test_mysql_config() {
  47. which mysql_config &>/dev/null || return $?
  48. DBCFLAGS="${DBCFLAGS} $(mysql_config --cflags)"
  49. DBLIBS="${DBLIBS} $(mysql_config --libs)"
  50. }
  51. # testpkg_common pkg1 pkg2 ...
  52. # If all libraries are found, adds them to OSCFLAGS/OSLIBS and returns success.
  53. # Otherwise, returns failure.
  54. testpkg_common() {
  55. testpkg "$@" || return $?
  56. OSCFLAGS="${OSCFLAGS} ${PKG_CFLAGS}"
  57. OSLIBS="${OSLIBS} ${PKG_LIBS}"
  58. }
  59. testlib() {
  60. testlibraw l${1}
  61. }
  62. pthread_testlib() {
  63. if [ -n "${PTHREAD_LIBS}" ] ; then
  64. OSLIBS="${OSLIBS} ${PTHREAD_LIBS}"
  65. return
  66. fi
  67. if [ "$(uname)" = "DragonFly" ] ; then
  68. OSLIBS="${OSLIBS} -pthread"
  69. TURN_NO_SCTP=1
  70. return
  71. fi
  72. if [ -n "$(uname | grep -i bsd)" ] ; then
  73. OSLIBS="${OSLIBS} -pthread"
  74. return
  75. fi
  76. ${CC} ${TH_TMPCPROGC} -o ${TH_TMPCPROGB} ${OSCFLAGS} ${OSLIBS} 2>>/dev/null
  77. ER=$?
  78. if [ ${ER} -eq 0 ] ; then
  79. return
  80. fi
  81. ${CC} ${TH_TMPCPROGC} -o ${TH_TMPCPROGB} ${OSCFLAGS} ${OSLIBS} -pthread 2>>/dev/null
  82. ER=$?
  83. if [ ${ER} -eq 0 ] ; then
  84. OSLIBS="${OSLIBS} -pthread"
  85. return
  86. fi
  87. ${CC} ${TH_TMPCPROGC} -o ${TH_TMPCPROGB} ${OSCFLAGS} ${OSLIBS} -lpthread 2>>/dev/null
  88. ER=$?
  89. if [ ${ER} -eq 0 ] ; then
  90. OSLIBS="${OSLIBS} -lpthread"
  91. return
  92. fi
  93. ${CC} ${TH_TMPCPROGC} -o ${TH_TMPCPROGB} ${OSCFLAGS} ${OSLIBS} 2>>/dev/null
  94. ER=$?
  95. if [ ${ER} -eq 0 ] ; then
  96. return
  97. fi
  98. ${CC} ${TH_TMPCPROGC} -o ${TH_TMPCPROGB} ${OSCFLAGS} ${OSLIBS} -D_GNU_SOURCE 2>>/dev/null
  99. ER=$?
  100. if [ ${ER} -eq 0 ] ; then
  101. ${ECHO_CMD} "Older GNU pthread library found"
  102. OSCFLAGS="${OSCFLAGS} -D_GNU_SOURCE"
  103. return
  104. fi
  105. ${ECHO_CMD} "Do not use pthreads"
  106. return 1
  107. }
  108. pthread_testbarriers() {
  109. ${ECHO_CMD} "pthread_barrier_t barrier;" >> ${TH_TMPCPROGC}
  110. ${CC} ${TH_TMPCPROGC} -o ${TH_TMPCPROGB} ${OSCFLAGS} ${OSLIBS} 2>>/dev/null
  111. ER=$?
  112. if ! [ ${ER} -eq 0 ] ; then
  113. ${ECHO_CMD} "pthread barriers not found"
  114. OSCFLAGS="${OSCFLAGS} -DTURN_NO_THREAD_BARRIERS"
  115. fi
  116. }
  117. gcm_testlib() {
  118. if [ -z "${TURN_NO_GCM}" ] ; then
  119. ${CC} ${GCM_TMPCPROGC} -o ${GCM_TMPCPROGB} ${OSCFLAGS} ${OSLIBS} 2>>/dev/null
  120. ER=$?
  121. if [ ${ER} -eq 0 ] ; then
  122. return 1
  123. else
  124. return 0
  125. fi
  126. else
  127. return 0
  128. fi
  129. }
  130. testdaemon() {
  131. ${CC} ${D_TMPCPROGC} -o ${D_TMPCPROGB} ${OSCFLAGS} ${OSLIBS} 2>>/dev/null
  132. ER=$?
  133. if [ ${ER} -eq 0 ] ; then
  134. OSCFLAGS="${OSCFLAGS} -DTURN_HAS_DAEMON"
  135. fi
  136. }
  137. test_sin_len() {
  138. TMPCADDRPROGC=src/client/ns_turn_ioaddr.c
  139. ${CC} -c ${OSCFLAGS} -DTURN_HAS_SIN_LEN -Isrc ${TMPCADDRPROGC} -o ${TMPCADDRPROGO} 2>>/dev/null
  140. ER=$?
  141. if [ ${ER} -eq 0 ] ; then
  142. OSCFLAGS="${OSCFLAGS} -DTURN_HAS_SIN_LEN"
  143. ${ECHO_CMD} "Sockets code is fine: sin_len field present"
  144. else
  145. ${CC} -c ${OSCFLAGS} -Isrc ${TMPCADDRPROGC} -o ${TMPCADDRPROGO} 2>>/dev/null
  146. ER=$?
  147. if [ ${ER} -eq 0 ] ; then
  148. ${ECHO_CMD} "Sockets code is fine: no sin_len field present"
  149. else
  150. ${ECHO_CMD} "WARNING: trial compilation failed: src/client/ns_turn_ioaddr.c"
  151. fi
  152. fi
  153. }
  154. #########################
  155. # Start
  156. #########################
  157. cleanup
  158. #########################
  159. # To be set:
  160. #########################
  161. if [ -z "${ECHO_CMD}" ] ; then
  162. ECHO_CMD=echo
  163. fi
  164. if [ -z "${FIND_CMD}" ] ; then
  165. FIND_CMD=find
  166. fi
  167. if [ -z "${PORTNAME}" ] ; then
  168. PORTNAME=turnserver
  169. fi
  170. #########################
  171. # Installation directory options
  172. ac_prev=
  173. ac_dashdash=
  174. for ac_option
  175. do
  176. # If the previous option needs an argument, assign it.
  177. if test -n "$ac_prev"; then
  178. eval $ac_prev=\$ac_option
  179. ac_prev=
  180. continue
  181. fi
  182. case $ac_option in
  183. *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
  184. *=) ac_optarg= ;;
  185. *) ac_optarg=yes ;;
  186. esac
  187. # Accept the important Cygnus configure options, so we can diagnose typos.
  188. case $ac_dashdash$ac_option in
  189. --)
  190. ac_dashdash=yes ;;
  191. -bindir | --bindir | --bindi | --bind | --bin | --bi)
  192. ac_prev=BINDIR ;;
  193. -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
  194. BINDIR=$ac_optarg ;;
  195. -localstatedir | --localstatedir | --localstatedi | --localstated | --localstate | --localstat)
  196. ac_prev=LOCALSTATEDIR ;;
  197. -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* | --localstate=* | --localstat=*)
  198. LOCALSTATEDIR=$ac_optarg ;;
  199. -turndbdir | --turndbdir | --turndbdi | --turndbd | --turndb | --turnd)
  200. ac_prev=TURNDBDIR ;;
  201. -turndbdir=* | --turndbdir=* | --turndbdi=* | --turndbd=* | --turndb=* | --turnd=*)
  202. TURNDBDIR=$ac_optarg ;;
  203. -datadir | --datadir | --datadi | --datad | -schemadir | --schemadir)
  204. ac_prev=SCHEMADIR ;;
  205. -datadir=* | --datadir=* | --datadi=* | --datad=* | -schemadir=* | --schemadir=*)
  206. SCHEMADIR=$ac_optarg ;;
  207. -docdir | --docdir | --docdi | --doc | --do | -docsdir | --docsdir | --docsdi | --docs)
  208. ac_prev=DOCDIR ;;
  209. -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=* | -docsdir=* | --docsdir=* | --docsdi=* | --docs=*)
  210. DOCSDIR=$ac_optarg ;;
  211. -examplesdir | --examplesdir | -examples | --examples)
  212. ac_prev=EXAMPLESDIR ;;
  213. -examplesdir=* | --examplesdir=* | -examples=* | --examples=*)
  214. EXAMPLESDIR=$ac_optarg ;;
  215. -includedir | --includedir | --includedi | --included | --include \
  216. | --includ | --inclu | --incl | --inc)
  217. ac_prev=INCLUDEDIR ;;
  218. -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
  219. | --includ=* | --inclu=* | --incl=* | --inc=*)
  220. INCLUDEDIR=$ac_optarg ;;
  221. -turnincludedir | --turnincludedir)
  222. ac_prev=TURNINCLUDEDIR ;;
  223. -turnincludedir=* | --turnincludedir=*)
  224. TURNINCLUDEDIR=$ac_optarg ;;
  225. -libdir | --libdir | --libdi | --libd)
  226. ac_prev=LIBDIR ;;
  227. -libdir=* | --libdir=* | --libdi=* | --libd=*)
  228. LIBDIR=$ac_optarg ;;
  229. -mandir | --mandir | --mandi | --mand | --man | --ma | --m | -manprefix | --manprefix)
  230. ac_prev=MAXPREFIX ;;
  231. -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=* | -manprefix=* | --manprefix=*)
  232. MANPREFIX=$ac_optarg ;;
  233. -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
  234. ac_prev=PREFIX ;;
  235. -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
  236. PREFIX=$ac_optarg ;;
  237. -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
  238. | --syscon | --sysco | --sysc | --sys | --sy | -confdir | --confdir)
  239. ac_prev=CONFDIR ;;
  240. -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
  241. | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=* | -confdir=* | --confdir=*)
  242. CONFDIR=$ac_optarg ;;
  243. -disable-rpath | --disable-rpath)
  244. TURN_DISABLE_RPATH=1 ;;
  245. esac
  246. done
  247. if test -n "$ac_prev"; then
  248. ac_option=--`echo $ac_prev | sed 's/_/-/g'`
  249. as_fn_error $? "missing argument to $ac_option"
  250. fi
  251. #############################################
  252. if [ -z "${PREFIX}" ] ; then
  253. if [ -z "${prefix}" ] ; then
  254. SYSTEM=`uname`
  255. if [ "${SYSTEM}" = "NetBSD" ] ; then
  256. # A little tough guy
  257. PREFIX=/usr/pkg
  258. elif [ "${SYSTEM}" = "SunOS" ] ; then
  259. # A fat guy
  260. PREFIX=/usr
  261. else
  262. # An ordinary person
  263. PREFIX=/usr/local
  264. fi
  265. else
  266. PREFIX=${prefix}
  267. fi
  268. fi
  269. if [ -z "${BINDIR}" ] ; then
  270. if [ -z "${bindir}" ] ; then
  271. BINDIR=${PREFIX}/bin
  272. else
  273. BINDIR=${bindir}
  274. fi
  275. fi
  276. if [ -z "${LOCALSTATEDIR}" ] ; then
  277. if [ -z "${localstatedir}" ] ; then
  278. if [ "${PREFIX}" = "/usr" ] ; then
  279. LOCALSTATEDIR=/var
  280. else
  281. LOCALSTATEDIR=${PREFIX}/var
  282. fi
  283. else
  284. LOCALSTATEDIR=${localstatedir}
  285. fi
  286. fi
  287. if [ -z "${CONFDIR}" ] ; then
  288. if [ -z "${confdir}" ] ; then
  289. CONFDIR=${PREFIX}/etc
  290. else
  291. CONFDIR=${confdir}
  292. fi
  293. fi
  294. if [ -z "${MANPREFIX}" ] ; then
  295. if [ -z "${manprefix}" ] ; then
  296. MANPREFIX=${PREFIX}
  297. else
  298. MANPREFIX=${manprefix}
  299. fi
  300. fi
  301. if [ -z "${EXAMPLESDIR}" ] ; then
  302. if [ -z "${examplesdir}" ] ; then
  303. EXAMPLESDIR=${PREFIX}/share/examples/${PORTNAME}
  304. else
  305. EXAMPLESDIR=${examplesdir}
  306. fi
  307. fi
  308. if [ -z "${DOCSDIR}" ] ; then
  309. if [ -z "${docsdir}" ] ; then
  310. DOCSDIR=${PREFIX}/share/doc/${PORTNAME}
  311. else
  312. DOCSDIR=${docsdir}
  313. fi
  314. fi
  315. if [ -z "${LIBDIR}" ] ; then
  316. if [ -z "${libdir}" ] ; then
  317. LIBDIR=${PREFIX}/lib
  318. else
  319. LIBDIR=${libdir}
  320. fi
  321. fi
  322. if [ -z "${SCHEMADIR}" ] ; then
  323. if [ -z "${schemadir}" ] ; then
  324. SCHEMADIR=${PREFIX}/share/${PORTNAME}
  325. else
  326. SCHEMADIR=${schemadir}
  327. fi
  328. fi
  329. if [ -z "${INCLUDEDIR}" ] ; then
  330. if [ -z "${includedir}" ] ; then
  331. INCLUDEDIR=${PREFIX}/include
  332. else
  333. INCLUDEDIR=${includedir}
  334. fi
  335. fi
  336. if [ -z "${TURNINCLUDEDIR}" ] ; then
  337. if [ -z "${turnincludedir}" ] ; then
  338. TURNINCLUDEDIR=${INCLUDEDIR}/turn
  339. else
  340. TURNINCLUDEDIR=${turnincludedir}
  341. fi
  342. fi
  343. ###############################################
  344. if [ -z "${ARCHIVERCMD}" ] ; then
  345. ARCHIVERCMD="ar -r"
  346. fi
  347. if [ -z "${MORECMD}" ]; then
  348. MORECMD="cat"
  349. fi
  350. OSCFLAGS="${CFLAGS}"
  351. OSLIBS="${LDFLAGS}"
  352. SYSTEM=`uname`
  353. if [ "${SYSTEM}" = "NetBSD" ] ; then
  354. OSCFLAGS="${OSCFLAGS} -I/usr/pkg/include"
  355. OSLIBS="-L/usr/pkg/lib ${OSLIBS}"
  356. if ! [ -z "${TURN_ACCEPT_RPATH}" ] ; then
  357. TURN_RPATH="${TURN_RPATH} -Wl,-rpath,/usr/pkg/lib"
  358. fi
  359. fi
  360. # If acme_redirect does not work, send_data_from_ioa_socket_nbh() probably
  361. # does not work. Set LIBEV_OK=1 to use a workaround for it.
  362. if [ -z "${LIBEV_OK}" ]; then
  363. LIBEV_OK=1
  364. if [ "${SYSTEM}" = "Linux" ]; then
  365. OS=$( lsb_release -si 2>/dev/null )
  366. [ "${OS}" = "Ubuntu" ] && LIBEV_OK=0
  367. fi
  368. fi
  369. [ "${LIBEV_OK}" = "1" ] && OSCFLAGS="${OSCFLAGS} -DLIBEV_OK"
  370. ###########################
  371. # Install shell commands
  372. ###########################
  373. type ginstall 2>>/dev/null
  374. ER=$?
  375. if [ ${ER} -eq 0 ] ; then
  376. INSTALL_PROGRAM="ginstall"
  377. INSTALL_MAN="ginstall"
  378. INSTALL_SCRIPT="ginstall"
  379. INSTALL_SHARED_LIB="ginstall"
  380. INSTALL_STATIC_LIB="ginstall"
  381. INSTALL_DATA="ginstall"
  382. MKDIR="ginstall -d"
  383. else
  384. type install 2>>/dev/null
  385. ER=$?
  386. if [ ${ER} -eq 0 ] ; then
  387. INSTALL_PROGRAM="install -p"
  388. INSTALL_MAN="install -p -m 0644"
  389. INSTALL_SCRIPT="install -p"
  390. INSTALL_SHARED_LIB="install -p"
  391. INSTALL_STATIC_LIB="install -p"
  392. INSTALL_DATA="install -p"
  393. MKDIR="install -d"
  394. else
  395. INSTALL_PROGRAM="cp -pf"
  396. INSTALL_MAN="cp -pf"
  397. INSTALL_SCRIPT="cp -pf"
  398. INSTALL_SHARED_LIB="cp -pf"
  399. INSTALL_STATIC_LIB="cp -pf"
  400. INSTALL_DATA="cp -pf"
  401. MKDIR="mkdir -p"
  402. fi
  403. fi
  404. type pkill 2>>/dev/null
  405. ER=$?
  406. if [ ${ER} -eq 0 ] ; then
  407. PKILL_PROGRAM="pkill"
  408. else
  409. PKILL_PROGRAM="${ECHO_CMD}"
  410. fi
  411. INSTALL_DIR="cp -rpf"
  412. MKBUILDDIR="mkdir -p"
  413. RMCMD="rm -rf"
  414. type sqlite3 2>>/dev/null
  415. ER=$?
  416. if [ ${ER} -eq 0 ] ; then
  417. SQLITE_CMD="sqlite3"
  418. else
  419. type sqlite 2>>/dev/null
  420. ER=$?
  421. if [ ${ER} -eq 0 ] ; then
  422. SQLITE_CMD="sqlite"
  423. else
  424. SQLITE_CMD=${ECHO_CMD}
  425. fi
  426. fi
  427. #############################
  428. # Adjustments for Solaris
  429. #############################
  430. SYSTEM=`uname`
  431. if [ "${SYSTEM}" = "SunOS" ] ; then
  432. # Solaris ? is this you ?!
  433. OSCFLAGS="${OSCFLAGS} -D__EXTENSIONS__ -D_XOPEN_SOURCE=500 -DTURN_NO_GETDOMAINNAME"
  434. OSLIBS="${OSLIBS} -lnsl"
  435. TURN_NO_SCTP=1
  436. fi
  437. #########################
  438. # Temporary DIR location:
  439. #########################
  440. TMPDIR="."
  441. if [ -d /var/tmp ] ; then
  442. TMPDIR="/var/tmp"
  443. elif [ -d /tmp ] ; then
  444. TMPDIR=/tmp
  445. fi
  446. ${ECHO_CMD} Use TMP dir ${TMPDIR}
  447. #########################
  448. # Basic C test programs
  449. #########################
  450. TMPCADDRPROGO=${TMPDIR}/__test__ccomp_addr_$$.o
  451. TMPCPROG=__test__ccomp__$$
  452. TMPCPROGC=${TMPDIR}/${TMPCPROG}.c
  453. TMPCPROGB=${TMPDIR}/${TMPCPROG}
  454. cat > ${TMPCPROGC} <<!
  455. #include <stdlib.h>
  456. int main(int argc, char** argv) {
  457. return (int)(argv[argc][0]);
  458. }
  459. !
  460. TH_TMPCPROG=__test__ccomp__pthread__$$
  461. TH_TMPCPROGC=${TMPDIR}/${TH_TMPCPROG}.c
  462. TH_TMPCPROGB=${TMPDIR}/${TH_TMPCPROG}
  463. cat > ${TH_TMPCPROGC} <<!
  464. #include <stdlib.h>
  465. #include <pthread.h>
  466. int main(int argc, char** argv) {
  467. pthread_mutexattr_settype(0,PTHREAD_MUTEX_RECURSIVE);
  468. return (int)pthread_create(0,0,0,0)+(int)(argv[argc][0]);
  469. }
  470. !
  471. GCM_TMPCPROG=__test__ccomp__gcm__$$
  472. GCM_TMPCPROGC=${TMPDIR}/${GCM_TMPCPROG}.c
  473. GCM_TMPCPROGB=${TMPDIR}/${GCM_TMPCPROG}
  474. cat > ${GCM_TMPCPROGC} <<!
  475. #include <stdlib.h>
  476. #include <openssl/ssl.h>
  477. #include <openssl/evp.h>
  478. int main(int argc, char** argv) {
  479. return (int)EVP_CIPH_GCM_MODE;
  480. }
  481. !
  482. D_TMPCPROG=__test__ccomp__daemon__$$
  483. D_TMPCPROGC=${TMPDIR}/${D_TMPCPROG}.c
  484. D_TMPCPROGB=${TMPDIR}/${D_TMPCPROG}
  485. cat > ${D_TMPCPROGC} <<!
  486. #include <stdlib.h>
  487. #include <unistd.h>
  488. int main(int argc, char** argv) {
  489. return (int)daemon(0,0)+(int)(argv[argc][0]);
  490. }
  491. !
  492. ##########################
  493. # What is our compiler ?
  494. ##########################
  495. if [ -z "${CC}" ] ; then
  496. for CC in cc gcc clang; do
  497. ${CC} ${TMPCPROGC} ${OSCFLAGS} -o ${TMPCPROGB} 2>>/dev/null
  498. ER=$?
  499. if [ ${ER} -eq 0 ] ; then
  500. break
  501. fi
  502. CC=
  503. done
  504. if [ -z "$CC" ] ; then
  505. ${ECHO_CMD} "ERROR: failed to a find working C compiler"
  506. cleanup
  507. exit 1
  508. fi
  509. else
  510. ${CC} ${TMPCPROGC} ${OSCFLAGS} -o ${TMPCPROGB} 2>>/dev/null
  511. ER=$?
  512. if ! [ ${ER} -eq 0 ] ; then
  513. ${ECHO_CMD} "ERROR: cannot use compiler ${CC} properly"
  514. cleanup
  515. exit 1
  516. fi
  517. fi
  518. ${ECHO_CMD} "Compiler: ${CC}"
  519. if [ -z "${TURN_ACCEPT_RPATH}" ] ; then
  520. ${CC} ${TMPCPROGC} ${OSCFLAGS} -o ${TMPCPROGB} -Wl,-rpath,/usr/lib 2>>/dev/null
  521. ER=$?
  522. if [ ${ER} -eq 0 ] ; then
  523. TURN_ACCEPT_RPATH=1
  524. fi
  525. fi
  526. ##########################
  527. # Which pkg-config?
  528. ##########################
  529. if [ -z "$PKGCONFIG" ] ; then
  530. for PKGCONFIG in pkgconf pkg-config ; do
  531. if type "$PKGCONFIG" 2>/dev/null ; then
  532. break
  533. fi
  534. PKGCONFIG=
  535. done
  536. if [ -z "$PKGCONFIG" ] ; then
  537. ${ECHO_CMD} "ERROR: pkg-config not found"
  538. cleanup
  539. exit 1
  540. fi
  541. else
  542. if ! type "$PKGCONFIG" 2>/dev/null ; then
  543. ${ECHO_CMD} "ERROR: cannot use $PKGCONFIG"
  544. cleanup
  545. exit 1
  546. fi
  547. fi
  548. ${ECHO_CMD} "pkg-config: $PKGCONFIG"
  549. ###########################
  550. # Check if we can use GNU
  551. # or Clang compiler flags
  552. ###########################
  553. GNUOSCFLAGS="-g ${GNUOSCFLAGS}"
  554. GNUOSCFLAGS="${GNUOSCFLAGS} -Wall -Wno-deprecated-declarations -Wextra -Wformat-security -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wcast-qual"
  555. GNUOSCFLAGS="${GNUOSCFLAGS}"
  556. ${CC} -Werror ${GNUOSCFLAGS} ${TMPCPROGC} ${OSCFLAGS} -o ${TMPCPROGB} 2>>/dev/null
  557. ER=$?
  558. if ! [ ${ER} -eq 0 ] ; then
  559. ${ECHO_CMD} "Hm..."
  560. ${CC} -Wall ${TMPCPROGC} ${OSCFLAGS} -o ${TMPCPROGB} 2>>/dev/null
  561. ER=$?
  562. if ! [ ${ER} -eq 0 ] ; then
  563. ${ECHO_CMD} "Not an ordinary GNU or Clang compiler"
  564. else
  565. ${ECHO_CMD} "g++ or something..."
  566. GNUOSCFLAGS="-g -Wall -Wno-deprecated-declarations -Wextra -Wformat-security -Wpointer-arith -Wcast-qual"
  567. ${CC} -Werror ${GNUOSCFLAGS} ${TMPCPROGC} ${OSCFLAGS} -o ${TMPCPROGB} 2>>/dev/null
  568. ER=$?
  569. if ! [ ${ER} -eq 0 ] ; then
  570. ${ECHO_CMD} "Not an ordinary g++ compiler"
  571. GNUOSCFLAGS="-x c++ -g -Wall -Wno-deprecated-declarations -Wextra -Wformat-security -Wpointer-arith -Wcast-qual"
  572. ${CC} -Werror ${GNUOSCFLAGS} ${TMPCPROGC} ${OSCFLAGS} -o ${TMPCPROGB} 2>>/dev/null
  573. ER=$?
  574. if ! [ ${ER} -eq 0 ] ; then
  575. ${ECHO_CMD} "Not an ordinary c++ compiler"
  576. else
  577. ${ECHO_CMD} "Clang++ compiler ?"
  578. OSCFLAGS="${GNUOSCFLAGS} ${OSCFLAGS}"
  579. fi
  580. else
  581. OSCFLAGS="${GNUOSCFLAGS} ${OSCFLAGS}"
  582. fi
  583. fi
  584. else
  585. OSCFLAGS="${GNUOSCFLAGS} ${OSCFLAGS}"
  586. fi
  587. ###########################
  588. # Test some general-purpose
  589. # libraries
  590. ###########################
  591. testlib socket
  592. testlib rt
  593. testlib wldap32
  594. ER=$?
  595. if ! [ ${ER} -eq 0 ] ; then
  596. echo "CYGWIN ?"
  597. fi
  598. testlib wldap64
  599. testlib nsl
  600. testlib resolv
  601. ###########################
  602. # Test sockets compilation
  603. ###########################
  604. test_sin_len
  605. ###########################
  606. # Can we use multi-threading ?
  607. ###########################
  608. pthread_testlib
  609. ER=$?
  610. if [ ${ER} -ne 0 ] ; then
  611. ${ECHO_CMD} "ERROR: Cannot find pthread library functions."
  612. exit 1
  613. fi
  614. if [ -z ${TURN_NO_THREAD_BARRIERS} ] ; then
  615. pthread_testbarriers
  616. else
  617. TURN_NO_THREAD_BARRIERS="-DTURN_NO_THREAD_BARRIERS"
  618. fi
  619. if [ -z ${TURN_IP_RECVERR} ] ; then
  620. ${ECHO_CMD} "Ignore IP_RECVERR"
  621. else
  622. ${ECHO_CMD} "Use IP_RECVERR"
  623. TURN_IP_RECVERR="-DTURN_IP_RECVERR"
  624. OSCFLAGS="${OSCFLAGS} ${TURN_IP_RECVERR}"
  625. fi
  626. ###########################
  627. # Can we use daemon ?
  628. ###########################
  629. testdaemon
  630. ###########################
  631. # Test OpenSSL installation
  632. ###########################
  633. if [ -n "${SSL_CFLAGS}" ] && [ -n "${SSL_LIBS}" ]; then
  634. ${CC} ${TMPCPROGC} ${SSL_CFLAGS} -o ${TMPCPROGB} ${OSCFLAGS} ${OSLIBS} ${SSL_LIBS} 2>>/dev/null
  635. ER=$?
  636. if ! [ ${ER} -eq 0 ] ; then
  637. ${ECHO_CMD} "Private SSL Library option cannot be used"
  638. exit 1
  639. else
  640. OSCFLAGS="${OSCFLAGS} ${SSL_CFLAGS}"
  641. OSLIBS="${OSLIBS} ${SSL_LIBS}"
  642. fi
  643. else
  644. if testpkg_common libcrypto; then
  645. ${ECHO_CMD} "OpenSSL Crypto lib found."
  646. else
  647. testlib crypto
  648. ER=$?
  649. if ! [ ${ER} -eq 0 ] ; then
  650. ${ECHO_CMD} "OpenSSL Crypto lib found."
  651. else
  652. ${ECHO_CMD} "ERROR: OpenSSL Crypto development libraries are not installed properly in required location."
  653. ${ECHO_CMD} "Abort."
  654. cleanup
  655. exit 1
  656. fi
  657. fi
  658. if testpkg_common libssl; then
  659. ${ECHO_CMD} "OpenSSL lib found."
  660. else
  661. testlib ssl
  662. ER=$?
  663. if ! [ ${ER} -eq 0 ] ; then
  664. ${ECHO_CMD} "OpenSSL lib found."
  665. else
  666. ${ECHO_CMD} "ERROR: OpenSSL development libraries are not installed properly in required location."
  667. ${ECHO_CMD} "Abort."
  668. cleanup
  669. exit 1
  670. fi
  671. fi
  672. fi
  673. ###########################
  674. # Can we use GCM cipher ?
  675. ###########################
  676. if [ -z ${TURN_NO_GCM} ] ; then
  677. gcm_testlib
  678. ER=$?
  679. if [ ${ER} -eq 0 ] ; then
  680. ${ECHO_CMD} "WARNING: Cannot find GCM support."
  681. ${ECHO_CMD} "Turning GCM off."
  682. TURN_NO_GCM="-DTURN_NO_GCM"
  683. fi
  684. else
  685. TURN_NO_GCM="-DTURN_NO_GCM"
  686. fi
  687. ###########################
  688. # Test Libevent2 setup
  689. ###########################
  690. if [ -n "${EVENT_CFLAGS}" ] && [ -n "${EVENT_LIBS}" ]; then
  691. ${CC} ${TMPCPROGC} ${EVENT_CFLAGS} -o ${TMPCPROGB} ${OSCFLAGS} ${OSLIBS} ${EVENT_LIBS} 2>>/dev/null
  692. ER=$?
  693. if ! [ ${ER} -eq 0 ] ; then
  694. ${ECHO_CMD} "Private Event Library option cannot be used"
  695. exit 1
  696. else
  697. OSCFLAGS="${OSCFLAGS} ${EVENT_CFLAGS}"
  698. OSLIBS="${OSLIBS} ${EVENT_LIBS}"
  699. fi
  700. else
  701. if testpkg_common libevent_core libevent_extra libevent_openssl libevent_pthreads || testpkg_common libevent libevent_openssl libevent_pthreads; then
  702. ${ECHO_CMD} "Libevent2 runtime found."
  703. else
  704. ${ECHO_CMD} "ERROR: Libevent2 development libraries are not installed properly in required location."
  705. ${ECHO_CMD} "ERROR: may be you have just too old libevent tool - then you have to upgrade it."
  706. ${ECHO_CMD} "See the docs/Build.md file."
  707. ${ECHO_CMD} "Abort."
  708. cleanup
  709. exit 1
  710. fi
  711. fi
  712. ###########################
  713. # Test Prometheus
  714. ###########################
  715. if [ -z "${TURN_NO_PROMETHEUS}" ] ; then
  716. testlib prom
  717. ER=$?
  718. if ! [ ${ER} -eq 0 ] ; then
  719. ${ECHO_CMD} "Prometheus lib found."
  720. testlib promhttp
  721. ER=$?
  722. if ! [ ${ER} -eq 0 ] ; then
  723. ${ECHO_CMD} "Prometheus http lib found."
  724. testlib microhttpd
  725. ER=$?
  726. if ! [ ${ER} -eq 0 ] ; then
  727. ${ECHO_CMD} "Microhttpd lib found."
  728. # Adjustments for Debian
  729. # See: https://github.com/coturn/coturn/pull/754#issuecomment-824693226
  730. if [ -f "/etc/debian_version" ] ; then
  731. OSLIBS="${OSLIBS} -latomic"
  732. fi
  733. else
  734. ${ECHO_CMD}
  735. ${ECHO_CMD} "Warning: microhttpd development libraries are not installed properly in required location."
  736. ${ECHO_CMD} "Prometheus support will be disabled."
  737. ${ECHO_CMD} "See the docs/Build.md file."
  738. ${ECHO_CMD}
  739. OSCFLAGS="${OSCFLAGS} -DTURN_NO_PROMETHEUS"
  740. fi
  741. else
  742. ${ECHO_CMD}
  743. ${ECHO_CMD} "Warning: Libpromhttp development libraries are not installed properly in required location."
  744. ${ECHO_CMD} "Prometheus support will be disabled."
  745. ${ECHO_CMD} "See the docs/Build.md file."
  746. ${ECHO_CMD}
  747. OSCFLAGS="${OSCFLAGS} -DTURN_NO_PROMETHEUS"
  748. fi
  749. else
  750. ${ECHO_CMD}
  751. ${ECHO_CMD} "Warning: Libprom development libraries are not installed properly in required location."
  752. ${ECHO_CMD} "Prometheus support will be disabled."
  753. ${ECHO_CMD} "See the docs/Build.md file."
  754. ${ECHO_CMD}
  755. OSCFLAGS="${OSCFLAGS} -DTURN_NO_PROMETHEUS"
  756. fi
  757. else
  758. OSCFLAGS="${OSCFLAGS} -DTURN_NO_PROMETHEUS"
  759. fi
  760. ###########################
  761. # Test libsystemd
  762. ###########################
  763. if [ -z "${TURN_NO_SYSTEMD}" ] ; then
  764. if testpkg_common libsystemd; then
  765. ${ECHO_CMD} "Systemd library found."
  766. else
  767. ${ECHO_CMD} "Systemd library not found. Building without systemd support."
  768. TURN_NO_SYSTEMD="-DTURN_NO_SYSTEMD"
  769. fi
  770. else
  771. TURN_NO_SYSTEMD="-DTURN_NO_SYSTEMD"
  772. fi
  773. ###########################
  774. # Test SQLite3 setup
  775. ###########################
  776. if [ -z "${TURN_NO_SQLITE}" ] ; then
  777. if testpkg_db sqlite3; then
  778. ${ECHO_CMD} "SQLite3 library found."
  779. else
  780. ${ECHO_CMD} "SQLite3 development library not found. Building without SQLite3 support."
  781. TURN_NO_SQLITE="-DTURN_NO_SQLITE"
  782. fi
  783. else
  784. TURN_NO_SQLITE="-DTURN_NO_SQLITE"
  785. SQLITE_CMD=${ECHO_CMD}
  786. fi
  787. if [ -z "${TURNDBDIR}" ] ; then
  788. TURNDBDIR=${LOCALSTATEDIR}/db
  789. fi
  790. ###########################
  791. # Test PostgreSQL
  792. ###########################
  793. if [ -z "${TURN_NO_PQ}" ] ; then
  794. if testpkg_db libpq; then
  795. ${ECHO_CMD} "PostgreSQL found."
  796. else
  797. ${ECHO_CMD} "PostgreSQL not found. Building without PostgreSQL support."
  798. TURN_NO_PQ="-DTURN_NO_PQ"
  799. fi
  800. else
  801. TURN_NO_PQ="-DTURN_NO_PQ"
  802. fi
  803. ###########################
  804. # Test MySQL
  805. ###########################
  806. if [ -z "${TURN_NO_MYSQL}" ] ; then
  807. if testpkg_db libmariadb || testpkg_db mariadb || testpkg_db mysqlclient || test_mysql_config; then
  808. ${ECHO_CMD} "MySQL found."
  809. else
  810. ${ECHO_CMD} "MySQL not found. Building without MySQL support."
  811. TURN_NO_MYSQL="-DTURN_NO_MYSQL"
  812. fi
  813. else
  814. TURN_NO_MYSQL="-DTURN_NO_MYSQL"
  815. fi
  816. ###########################
  817. # Test MongoDB
  818. ###########################
  819. if [ -z "${TURN_NO_MONGO}" ] ; then
  820. if testpkg_db libmongoc-1.0; then
  821. ${ECHO_CMD} "MongoDB found."
  822. else
  823. ${ECHO_CMD} "MongoDB not found. Building without MongoDB support."
  824. TURN_NO_MONGO="-DTURN_NO_MONGO"
  825. fi
  826. else
  827. TURN_NO_MONGO="-DTURN_NO_MONGO"
  828. fi
  829. ###########################
  830. # Test Redis
  831. ###########################
  832. if [ -z "${TURN_NO_HIREDIS}" ] ; then
  833. if testpkg_db hiredis; then
  834. ${ECHO_CMD} "Hiredis found."
  835. else
  836. ${ECHO_CMD} "Hiredis not found. Building without hiredis support."
  837. TURN_NO_HIREDIS="-DTURN_NO_HIREDIS"
  838. fi
  839. else
  840. TURN_NO_HIREDIS="-DTURN_NO_HIREDIS"
  841. fi
  842. ###############################
  843. # LDCONFIG
  844. ###############################
  845. if [ -z "${LDCONFIG}" ] ; then
  846. ISBSD=`uname | grep -i bsd`
  847. if [ -z "${ISBSD}" ] ; then
  848. ISLINUX=`uname | grep -i linux`
  849. if [ -z "${ISLINUX}" ] ; then
  850. SYSTEM=`uname`
  851. if [ "${SYSTEM}" = "SunOS" ] ; then
  852. LDCONFIG="crle -u -l"
  853. else
  854. LDCONFIG=${ECHO_CMD}
  855. fi
  856. else
  857. LDCONFIG="ldconfig -n"
  858. fi
  859. else
  860. LDCONFIG="ldconfig -m"
  861. fi
  862. fi
  863. ###############################
  864. # SCTP
  865. ###############################
  866. if [ -z "${TURN_NO_SCTP}" ] ; then
  867. if [ -z "${TURN_SCTP_INCLUDE}" ] ; then
  868. if [ -f /usr/include/netinet/sctp.h ] ; then
  869. TURN_SCTP_INCLUDE="-DTURN_SCTP_INCLUDE=\"</usr/include/netinet/sctp.h>\""
  870. else
  871. TURN_NO_SCTP="-DTURN_NO_SCTP"
  872. fi
  873. else
  874. TURN_SCTP_INCLUDE="-DTURN_SCTP_INCLUDE=\"\\\"${TURN_SCTP_INCLUDE}\\\"\""
  875. fi
  876. else
  877. TURN_NO_SCTP="-DTURN_NO_SCTP"
  878. fi
  879. ###############################
  880. # So, what we have now:
  881. ###############################
  882. 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"
  883. if ! [ -z "${TURN_ACCEPT_RPATH}" ] ; then
  884. if [ -z "${TURN_DISABLE_RPATH}" ] ; then
  885. TURN_RPATH="${TURN_RPATH} -Wl,-rpath,/usr/local/lib"
  886. OSLIBS="${OSLIBS} ${TURN_RPATH}"
  887. fi
  888. fi
  889. ${ECHO_CMD} PREFIX="${PREFIX}" LOCALSTATEDIR="${LOCALSTATEDIR}" OSLIBS="${OSLIBS}" DBLIBS="${DBLIBS}" OSCFLAGS="${OSCFLAGS}" DBCFLAGS="${DBCFLAGS}" $@
  890. ###############################
  891. # Make make:
  892. ###############################
  893. ${ECHO_CMD} "#################################" > Makefile
  894. ${ECHO_CMD} "# Generated by configure script #" >> Makefile
  895. ${ECHO_CMD} "#################################" >> Makefile
  896. ${ECHO_CMD} "ECHO_CMD = ${ECHO_CMD}" >> Makefile
  897. ${ECHO_CMD} "CC = ${CC}" >> Makefile
  898. ${ECHO_CMD} "LDFLAGS += ${OSLIBS}" >> Makefile
  899. ${ECHO_CMD} "DBLIBS += ${DBLIBS}" >> Makefile
  900. ${ECHO_CMD} "CFLAGS += ${OSCFLAGS}" >> Makefile
  901. ${ECHO_CMD} "CPPFLAGS = ${CPPFLAGS}" >> Makefile
  902. ${ECHO_CMD} "DBCFLAGS += ${DBCFLAGS} ${TURN_NO_PQ} ${TURN_NO_MYSQL} ${TURN_NO_SQLITE} ${TURN_NO_MONGO} ${TURN_NO_HIREDIS} ${TURN_NO_SYSTEMD}" >> Makefile
  903. ${ECHO_CMD} "#" >> Makefile
  904. ${ECHO_CMD} "PORTNAME = ${PORTNAME}" >> Makefile
  905. ${ECHO_CMD} "PREFIX = ${PREFIX}" >> Makefile
  906. ${ECHO_CMD} "prefix = ${PREFIX}" >> Makefile
  907. ${ECHO_CMD} "BINDIR = ${BINDIR}" >> Makefile
  908. ${ECHO_CMD} "bindir = ${BINDIR}" >> Makefile
  909. ${ECHO_CMD} "LOCALSTATEDIR = ${LOCALSTATEDIR}" >> Makefile
  910. ${ECHO_CMD} "localstatedir = ${LOCALSTATEDIR}" >> Makefile
  911. ${ECHO_CMD} "TURNDBDIR = ${TURNDBDIR}" >> Makefile
  912. ${ECHO_CMD} "turndbdir = ${TURNDBDIR}" >> Makefile
  913. ${ECHO_CMD} "CONFDIR = ${CONFDIR}" >> Makefile
  914. ${ECHO_CMD} "confdir = ${CONFDIR}" >> Makefile
  915. ${ECHO_CMD} "MANPREFIX = ${MANPREFIX}" >> Makefile
  916. ${ECHO_CMD} "manprefix = ${MANPREFIX}" >> Makefile
  917. ${ECHO_CMD} "EXAMPLESDIR = ${EXAMPLESDIR}" >> Makefile
  918. ${ECHO_CMD} "examplesdir = ${EXAMPLESDIR}" >> Makefile
  919. ${ECHO_CMD} "DOCSDIR = ${DOCSDIR}" >> Makefile
  920. ${ECHO_CMD} "docsdir = ${DOCSDIR}" >> Makefile
  921. ${ECHO_CMD} "LIBDIR = ${LIBDIR}" >> Makefile
  922. ${ECHO_CMD} "libdir = ${LIBDIR}" >> Makefile
  923. ${ECHO_CMD} "SCHEMADIR = ${SCHEMADIR}" >> Makefile
  924. ${ECHO_CMD} "schemadir = ${SCHEMADIR}" >> Makefile
  925. ${ECHO_CMD} "INCLUDEDIR = ${INCLUDEDIR}" >> Makefile
  926. ${ECHO_CMD} "includedir = ${INCLUDEDIR}" >> Makefile
  927. ${ECHO_CMD} "TURNINCLUDEDIR = ${TURNINCLUDEDIR}" >> Makefile
  928. ${ECHO_CMD} "turnincludedir = ${TURNINCLUDEDIR}" >> Makefile
  929. ${ECHO_CMD} "#" >> Makefile
  930. ${ECHO_CMD} "ARCHIVERCMD = ${ARCHIVERCMD}" >> Makefile
  931. ${ECHO_CMD} "MKDIR = ${MKDIR}" >> Makefile
  932. ${ECHO_CMD} "SQLITE_CMD = ${SQLITE_CMD}" >> Makefile
  933. ${ECHO_CMD} "INSTALL_PROGRAM = ${INSTALL_PROGRAM}" >> Makefile
  934. ${ECHO_CMD} "PKILL_PROGRAM = ${PKILL_PROGRAM}" >> Makefile
  935. ${ECHO_CMD} "INSTALL_MAN = ${INSTALL_MAN}" >> Makefile
  936. ${ECHO_CMD} "INSTALL_SCRIPT = ${INSTALL_SCRIPT}" >> Makefile
  937. ${ECHO_CMD} "INSTALL_SHARED_LIB = ${INSTALL_SHARED_LIB}" >> Makefile
  938. ${ECHO_CMD} "INSTALL_STATIC_LIB = ${INSTALL_STATIC_LIB}" >> Makefile
  939. ${ECHO_CMD} "INSTALL_DATA = ${INSTALL_DATA}" >> Makefile
  940. ${ECHO_CMD} "INSTALL_DIR = ${INSTALL_DIR}" >> Makefile
  941. ${ECHO_CMD} "MKBUILDDIR = ${MKBUILDDIR}" >> Makefile
  942. ${ECHO_CMD} "RMCMD = ${RMCMD}" >> Makefile
  943. ${ECHO_CMD} "MORECMD = ${MORECMD}" >> Makefile
  944. ${ECHO_CMD} "LDCONFIG=${LDCONFIG}" >> Makefile
  945. ${ECHO_CMD} "################################" >> Makefile
  946. ${ECHO_CMD} "" >> Makefile
  947. cat Makefile.in >> Makefile
  948. ###############################
  949. # End:
  950. ###############################
  951. cleanup
  952. ${ECHO_CMD} "Makefile created: success."