Makefile.in 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. LIBEVENT_INCLUDE = -I${PREFIX}/include/ -I/usr/local/include/
  2. INCFLAGS = -Isrc -Isrc/apps/common -Isrc/server -Isrc/client -Isrc/client++ ${LIBEVENT_INCLUDE}
  3. CFLAGS += ${INCFLAGS}
  4. MAKE_DEPS = Makefile
  5. LIBCLIENTTURN_HEADERS = src/ns_turn_defs.h src/client++/TurnMsgLib.h src/client/ns_turn_ioaddr.h src/client/ns_turn_msg.h src/client/ns_turn_msg_defs.h src/client/ns_turn_msg_defs_experimental.h src/client/ns_turn_msg_addr.h
  6. LIBCLIENTTURN_MODS = src/client/ns_turn_ioaddr.c src/client/ns_turn_msg_addr.c src/client/ns_turn_msg.c
  7. LIBCLIENTTURN_DEPS = ${LIBCLIENTTURN_HEADERS} ${MAKE_DEPS}
  8. LIBCLIENTTURN_OBJS = build/obj/ns_turn_ioaddr.o build/obj/ns_turn_msg_addr.o build/obj/ns_turn_msg.o
  9. SERVERTURN_HEADERS = src/server/ns_turn_allocation.h src/server/ns_turn_ioalib.h src/server/ns_turn_khash.h src/server/ns_turn_maps_rtcp.h src/server/ns_turn_maps.h src/server/ns_turn_server.h src/server/ns_turn_session.h
  10. SERVERTURN_DEPS = ${LIBCLIENTTURN_HEADERS} ${SERVERTURN_HEADERS} ${MAKE_DEPS}
  11. SERVERTURN_MODS = ${LIBCLIENTTURN_MODS} src/server/ns_turn_allocation.c src/server/ns_turn_maps_rtcp.c src/server/ns_turn_maps.c src/server/ns_turn_server.c
  12. COMMON_HEADERS = src/apps/common/apputils.h src/apps/common/ns_turn_openssl.h src/apps/common/ns_turn_utils.h src/apps/common/stun_buffer.h
  13. COMMON_MODS = src/apps/common/apputils.c src/apps/common/ns_turn_utils.c src/apps/common/stun_buffer.c
  14. COMMON_DEPS = ${LIBCLIENTTURN_DEPS} ${COMMON_MODS} ${COMMON_HEADERS}
  15. IMPL_HEADERS = src/apps/relay/ns_ioalib_impl.h src/apps/relay/ns_sm.h src/apps/relay/turn_ports.h
  16. IMPL_MODS = src/apps/relay/ns_ioalib_engine_impl.c src/apps/relay/turn_ports.c src/apps/relay/http_server.c src/apps/relay/acme.c
  17. IMPL_DEPS = ${COMMON_DEPS} ${IMPL_HEADERS} ${IMPL_MODS}
  18. HIREDIS_HEADERS = src/apps/relay/hiredis_libevent2.h
  19. HIREDIS_MODS = src/apps/relay/hiredis_libevent2.c
  20. USERDB_HEADERS = src/apps/relay/dbdrivers/dbdriver.h src/apps/relay/dbdrivers/dbd_sqlite.h src/apps/relay/dbdrivers/dbd_pgsql.h src/apps/relay/dbdrivers/dbd_mysql.h src/apps/relay/dbdrivers/dbd_mongo.h src/apps/relay/dbdrivers/dbd_redis.h
  21. USERDB_MODS = src/apps/relay/dbdrivers/dbdriver.c src/apps/relay/dbdrivers/dbd_sqlite.c src/apps/relay/dbdrivers/dbd_pgsql.c src/apps/relay/dbdrivers/dbd_mysql.c src/apps/relay/dbdrivers/dbd_mongo.c src/apps/relay/dbdrivers/dbd_redis.c
  22. SERVERAPP_HEADERS = src/apps/relay/userdb.h src/apps/relay/tls_listener.h src/apps/relay/mainrelay.h src/apps/relay/turn_admin_server.h src/apps/relay/dtls_listener.h src/apps/relay/libtelnet.h src/apps/relay/prom_server.h ${HIREDIS_HEADERS} ${USERDB_HEADERS}
  23. SERVERAPP_MODS = src/apps/relay/mainrelay.c src/apps/relay/netengine.c src/apps/relay/libtelnet.c src/apps/relay/turn_admin_server.c src/apps/relay/userdb.c src/apps/relay/tls_listener.c src/apps/relay/dtls_listener.c src/apps/relay/prom_server.c ${HIREDIS_MODS} ${USERDB_MODS}
  24. SERVERAPP_DEPS = ${SERVERTURN_MODS} ${SERVERTURN_DEPS} ${SERVERAPP_MODS} ${SERVERAPP_HEADERS} ${COMMON_DEPS} ${IMPL_DEPS} lib/libturnclient.a
  25. TURN_BUILD_RESULTS = bin/turnutils_oauth bin/turnutils_natdiscovery bin/turnutils_stunclient bin/turnutils_rfc5769check bin/turnutils_uclient bin/turnserver bin/turnutils_peer lib/libturnclient.a include/turn/ns_turn_defs.h sqlite_empty_db
  26. .PHONY: all test check clean distclean sqlite_empty_db install deinstall uninstall reinstall
  27. all: ${TURN_BUILD_RESULTS}
  28. test: check
  29. check: bin/turnutils_rfc5769check
  30. bin/turnutils_rfc5769check
  31. format:
  32. find . -iname "*.c" -o -iname "*.h" | xargs clang-format -i
  33. lint:
  34. find . -iname "*.c" -o -iname "*.h" | xargs clang-format --dry-run -Werror
  35. include/turn/ns_turn_defs.h: src/ns_turn_defs.h
  36. ${RMCMD} include
  37. ${MKBUILDDIR} include/turn/client
  38. cp -pf src/client/*.h include/turn/client/
  39. cp -pf src/client++/*.h include/turn/client/
  40. cp -pf src/ns_turn_defs.h include/turn/
  41. bin/turnutils_uclient: ${COMMON_DEPS} src/apps/uclient/session.h lib/libturnclient.a src/apps/uclient/mainuclient.c src/apps/uclient/uclient.c src/apps/uclient/uclient.h src/apps/uclient/startuclient.c src/apps/uclient/startuclient.h src/server/ns_turn_ioalib.h
  42. ${MKBUILDDIR} bin
  43. ${CC} ${CPPFLAGS} ${CFLAGS} src/apps/uclient/uclient.c src/apps/uclient/startuclient.c src/apps/uclient/mainuclient.c ${COMMON_MODS} -o $@ -Llib -lturnclient -Llib ${LDFLAGS}
  44. bin/turnutils_natdiscovery: ${COMMON_DEPS} lib/libturnclient.a src/apps/natdiscovery/natdiscovery.c src/server/ns_turn_ioalib.h
  45. pwd
  46. ${MKBUILDDIR} bin
  47. ${CC} ${CPPFLAGS} ${CFLAGS} src/apps/natdiscovery/natdiscovery.c ${COMMON_MODS} -o $@ -Llib -lturnclient -Llib ${LDFLAGS}
  48. bin/turnutils_oauth: ${COMMON_DEPS} lib/libturnclient.a src/apps/oauth/oauth.c src/server/ns_turn_ioalib.h
  49. pwd
  50. ${MKBUILDDIR} bin
  51. ${CC} ${CPPFLAGS} ${CFLAGS} src/apps/oauth/oauth.c ${COMMON_MODS} -o $@ -Llib -lturnclient -Llib ${LDFLAGS}
  52. bin/turnutils_stunclient: ${COMMON_DEPS} lib/libturnclient.a src/apps/stunclient/stunclient.c src/server/ns_turn_ioalib.h
  53. pwd
  54. ${MKBUILDDIR} bin
  55. ${CC} ${CPPFLAGS} ${CFLAGS} src/apps/stunclient/stunclient.c ${COMMON_MODS} -o $@ -Llib -lturnclient -Llib ${LDFLAGS}
  56. bin/turnutils_rfc5769check: ${COMMON_DEPS} lib/libturnclient.a src/apps/rfc5769/rfc5769check.c src/server/ns_turn_ioalib.h
  57. pwd
  58. ${MKBUILDDIR} bin
  59. ${CC} ${CPPFLAGS} ${CFLAGS} src/apps/rfc5769/rfc5769check.c ${COMMON_MODS} -o $@ -Llib -lturnclient -Llib ${LDFLAGS}
  60. bin/turnserver: ${SERVERAPP_DEPS} src/apps/relay/acme.h src/apps/relay/http_server.h
  61. ${MKBUILDDIR} bin
  62. ${RMCMD} bin/turnadmin
  63. ${CC} ${CPPFLAGS} ${CFLAGS} ${DBCFLAGS} ${IMPL_MODS} -Ilib ${SERVERAPP_MODS} ${COMMON_MODS} ${SERVERTURN_MODS} -o $@ ${DBLIBS} ${LDFLAGS}
  64. cd bin; ln -s turnserver turnadmin
  65. bin/turnutils_peer: ${COMMON_DEPS} ${LIBCLIENTTURN_MODS} ${LIBCLIENTTURN_DEPS} lib/libturnclient.a src/apps/peer/mainudpserver.c src/apps/peer/udpserver.h src/apps/peer/udpserver.c src/server/ns_turn_ioalib.h
  66. ${MKBUILDDIR} bin
  67. ${CC} ${CPPFLAGS} ${CFLAGS} src/apps/peer/mainudpserver.c src/apps/peer/udpserver.c ${COMMON_MODS} -o $@ -Llib -lturnclient -Llib ${LDFLAGS}
  68. ### Client Library:
  69. lib/libturnclient.a: ${LIBCLIENTTURN_OBJS} ${LIBCLIENTTURN_DEPS}
  70. ${MKBUILDDIR} lib
  71. ${ARCHIVERCMD} $@ ${LIBCLIENTTURN_OBJS}
  72. build/obj/ns_turn_ioaddr.o: src/client/ns_turn_ioaddr.c ${LIBCLIENTTURN_DEPS}
  73. ${MKBUILDDIR} build/obj
  74. ${CC} ${CPPFLAGS} ${CFLAGS} -c src/client/ns_turn_ioaddr.c -o $@
  75. build/obj/ns_turn_msg_addr.o: src/client/ns_turn_msg_addr.c ${LIBCLIENTTURN_DEPS}
  76. ${MKBUILDDIR} build/obj
  77. ${CC} ${CPPFLAGS} ${CFLAGS} -c src/client/ns_turn_msg_addr.c -o $@
  78. build/obj/ns_turn_msg.o: src/client/ns_turn_msg.c ${LIBCLIENTTURN_DEPS} src/apps/common/ns_turn_openssl.h src/apps/common/ns_turn_utils.h
  79. ${MKBUILDDIR} build/obj
  80. ${CC} ${CPPFLAGS} ${CFLAGS} -c src/client/ns_turn_msg.c -o $@
  81. ### Clean all:
  82. clean:
  83. ${RMCMD} bin build lib obj *bak *~ */*~ */*/*~ */*/*/*~ *core */*core */*/*core include tmp sqlite
  84. distclean: clean
  85. ${RMCMD} Makefile
  86. ### SQLite empty database:
  87. sqlite_empty_db : sqlite/turndb
  88. sqlite/turndb : turndb/schema.sql
  89. ${MKDIR} sqlite
  90. ${RMCMD} sqlite/turndb
  91. ${SQLITE_CMD} sqlite/turndb < turndb/schema.sql
  92. ### Install all:
  93. install: all ${MAKE_DEPS}
  94. ${MKDIR} ${DESTDIR}${PREFIX}
  95. ${MKDIR} ${DESTDIR}${BINDIR}
  96. ${MKDIR} ${DESTDIR}${TURNDBDIR}
  97. ${MKDIR} ${DESTDIR}${MANPREFIX}/man/man1
  98. ${MKDIR} ${DESTDIR}${CONFDIR}
  99. ${MKDIR} ${DESTDIR}${LIBDIR}
  100. ${MKDIR} ${DESTDIR}${EXAMPLESDIR}
  101. ${MKDIR} ${DESTDIR}${DOCSDIR}
  102. ${MKDIR} ${DESTDIR}${SCHEMADIR}
  103. ${MKDIR} ${DESTDIR}${TURNINCLUDEDIR}
  104. ${INSTALL_PROGRAM} bin/turnserver ${DESTDIR}${BINDIR}
  105. ${INSTALL_PROGRAM} bin/turnadmin ${DESTDIR}${BINDIR}
  106. ${INSTALL_PROGRAM} bin/turnutils_uclient ${DESTDIR}${BINDIR}
  107. ${INSTALL_PROGRAM} bin/turnutils_peer ${DESTDIR}${BINDIR}
  108. ${INSTALL_PROGRAM} bin/turnutils_stunclient ${DESTDIR}${BINDIR}
  109. ${INSTALL_PROGRAM} bin/turnutils_oauth ${DESTDIR}${BINDIR}
  110. ${INSTALL_PROGRAM} bin/turnutils_natdiscovery ${DESTDIR}${BINDIR}
  111. ${INSTALL_MAN} man/man1/turnserver.1 ${DESTDIR}${MANPREFIX}/man/man1/
  112. ${INSTALL_MAN} man/man1/turnadmin.1 ${DESTDIR}${MANPREFIX}/man/man1/
  113. ${INSTALL_MAN} man/man1/turnutils.1 ${DESTDIR}${MANPREFIX}/man/man1/
  114. ${INSTALL_MAN} man/man1/turnutils_uclient.1 ${DESTDIR}${MANPREFIX}/man/man1/
  115. ${INSTALL_MAN} man/man1/turnutils_stunclient.1 ${DESTDIR}${MANPREFIX}/man/man1/
  116. ${INSTALL_MAN} man/man1/turnutils_oauth.1 ${DESTDIR}${MANPREFIX}/man/man1/
  117. ${INSTALL_MAN} man/man1/turnutils_natdiscovery.1 ${DESTDIR}${MANPREFIX}/man/man1/
  118. ${INSTALL_MAN} man/man1/turnutils_peer.1 ${DESTDIR}${MANPREFIX}/man/man1/
  119. ${INSTALL_MAN} man/man1/coturn.1 ${DESTDIR}${MANPREFIX}/man/man1/
  120. ${INSTALL_STATIC_LIB} lib/libturnclient.a ${DESTDIR}${LIBDIR}
  121. ${INSTALL_DATA} LICENSE ${DESTDIR}${DOCSDIR}
  122. ${INSTALL_DATA} README.turnserver ${DESTDIR}${DOCSDIR}
  123. ${INSTALL_DATA} README.turnadmin ${DESTDIR}${DOCSDIR}
  124. ${INSTALL_DATA} README.turnutils ${DESTDIR}${DOCSDIR}
  125. ${INSTALL_DATA} INSTALL ${DESTDIR}${DOCSDIR}
  126. ${INSTALL_DATA} postinstall.txt ${DESTDIR}${DOCSDIR}
  127. ${INSTALL_DATA} turndb/schema.sql ${DESTDIR}${SCHEMADIR}
  128. ${INSTALL_DATA} turndb/schema.mongo.sh ${DESTDIR}${SCHEMADIR}
  129. ${INSTALL_DATA} turndb/testredisdbsetup.sh ${DESTDIR}${SCHEMADIR}
  130. ${INSTALL_DATA} turndb/testmongosetup.sh ${DESTDIR}${SCHEMADIR}
  131. ${INSTALL_DATA} turndb/testsqldbsetup.sql ${DESTDIR}${SCHEMADIR}
  132. ${INSTALL_DATA} turndb/schema.userdb.redis ${DESTDIR}${SCHEMADIR}
  133. ${INSTALL_DATA} turndb/schema.stats.redis ${DESTDIR}${SCHEMADIR}
  134. if [ -f sqlite/turndb ] ; then ${INSTALL_DATA} sqlite/turndb ${DESTDIR}${TURNDBDIR}/turndb; fi
  135. ${INSTALL_DATA} examples/etc/turnserver.conf ${DESTDIR}${CONFDIR}/turnserver.conf.default
  136. ${INSTALL_DIR} examples/etc ${DESTDIR}${EXAMPLESDIR}
  137. ${INSTALL_DIR} examples/scripts ${DESTDIR}${EXAMPLESDIR}
  138. ${RMCMD} ${DESTDIR}${EXAMPLESDIR}/scripts/rfc5769.sh
  139. ${INSTALL_DIR} include/turn/client ${DESTDIR}${TURNINCLUDEDIR}
  140. ${INSTALL_DATA} include/turn/ns_turn_defs.h ${DESTDIR}${TURNINCLUDEDIR}
  141. ${MORECMD} ${DESTDIR}${DOCSDIR}/postinstall.txt
  142. deinstall: ${MAKE_DEPS}
  143. ${PKILL_PROGRAM} turnserver || ${ECHO_CMD} OK
  144. ${RMCMD} ${DESTDIR}${TURNDBDIR}/turndb
  145. ${RMCMD} ${DESTDIR}${DOCSDIR}
  146. ${RMCMD} ${DESTDIR}${SCHEMADIR}
  147. ${RMCMD} ${DESTDIR}${BINDIR}/turnserver
  148. ${RMCMD} ${DESTDIR}${BINDIR}/turnadmin
  149. ${RMCMD} ${DESTDIR}${BINDIR}/turnutils_peer
  150. ${RMCMD} ${DESTDIR}${BINDIR}/turnutils_uclient
  151. ${RMCMD} ${DESTDIR}${BINDIR}/turnutils_stunclient
  152. ${RMCMD} ${DESTDIR}${BINDIR}/turnutils_oauth
  153. ${RMCMD} ${DESTDIR}${BINDIR}/turnutils_natdiscovery
  154. ${RMCMD} ${DESTDIR}${MANPREFIX}/man/man1/turnserver.1
  155. ${RMCMD} ${DESTDIR}${MANPREFIX}/man/man1/turnadmin.1
  156. ${RMCMD} ${DESTDIR}${MANPREFIX}/man/man1/turnutils.1
  157. ${RMCMD} ${DESTDIR}${MANPREFIX}/man/man1/turnutils_uclient.1
  158. ${RMCMD} ${DESTDIR}${MANPREFIX}/man/man1/turnutils_stunclient.1
  159. ${RMCMD} ${DESTDIR}${MANPREFIX}/man/man1/turnutils_oauth.1
  160. ${RMCMD} ${DESTDIR}${MANPREFIX}/man/man1/turnutils_natdiscovery.1
  161. ${RMCMD} ${DESTDIR}${MANPREFIX}/man/man1/turnutils_peer.1
  162. ${RMCMD} ${DESTDIR}${MANPREFIX}/man/man1/coturn.1
  163. ${RMCMD} ${DESTDIR}${LIBDIR}/libturnclient.a
  164. ${RMCMD} ${DESTDIR}${EXAMPLESDIR}
  165. ${RMCMD} ${DESTDIR}${CONFDIR}/turnserver.conf.default
  166. ${RMCMD} ${DESTDIR}${TURNINCLUDEDIR}
  167. uninstall: deinstall
  168. reinstall: deinstall install