A clone of btpd with my configuration changes.
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

configure.ac 3.4 KiB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. AC_PREREQ(2.61)
  2. AC_INIT(btpd, 0.13+, btpd@murmeldjur.se)
  3. AM_INIT_AUTOMAKE([1.10 foreign subdir-objects])
  4. AC_CONFIG_FILES([Makefile])
  5. AC_PROG_CC
  6. AM_PROG_CC_C_O
  7. AC_PROG_RANLIB
  8. AC_USE_SYSTEM_EXTENSIONS
  9. AC_DEFUN([PROG_SILENT_IFELSE],
  10. ac_output=`$1 2>&1`
  11. if test x"$ac_output" != x; then
  12. [$3]
  13. else
  14. [$2]
  15. fi)
  16. AC_DEFUN([CC_ARGS_OK_IFELSE],
  17. AC_LANG_PUSH(C)
  18. AC_LANG_CONFTEST([int foo(void) { return 12; }])
  19. AC_LANG_POP(C)
  20. PROG_SILENT_IFELSE([$CC $1 -c conftest.c],
  21. rm -f conftest.c conftest.$OBJEXT
  22. [$2],
  23. rm -f conftest.c conftest.$OBJEXT
  24. [$3]))
  25. AC_ARG_WITH(openssl,
  26. [ --with-openssl=dir use openssl installed in dir],
  27. [
  28. AC_SUBST(openssl_LDFLAGS,["-L${withval}/lib -Wl,-R,${withval}/lib"])
  29. AC_SUBST(openssl_CPPFLAGS,"-I${withval}/include")
  30. ])
  31. AC_ARG_WITH(evloop-method,
  32. [ --with-evloop-method select evloop method (epoll,poll,kqueue)],
  33. evloop_methods=$withval,
  34. evloop_methods="epoll kqueue poll")
  35. old_LIBS=$LIBS
  36. LIBS=""
  37. AC_SEARCH_LIBS(clock_gettime, rt,,AC_MSG_FAILURE(btpd needs clock_gettime))
  38. AC_SUBST(CLOCKLIB,$LIBS)
  39. LIBS=""
  40. AC_SEARCH_LIBS(inet_ntop, nsl,,AC_MSG_FAILURE(btpd needs inet_ntop))
  41. AC_SEARCH_LIBS(bind, socket,,AC_MSG_FAILURE(btpd needs bind))
  42. AC_SUBST(INETLIBS,$LIBS)
  43. LIBS=$old_LIBS
  44. AC_CHECK_FUNCS(asprintf)
  45. AC_MSG_CHECKING(whether compiler accepts -Wno-pointer-sign)
  46. CC_ARGS_OK_IFELSE(-Wno-pointer-sign,
  47. AC_SUBST(WARNNPS,"-Wno-pointer-sign")
  48. AC_MSG_RESULT(yes)
  49. ,
  50. AC_MSG_RESULT(no))
  51. old_LDFLAGS="$LDFLAGS"
  52. LDFLAGS="$LDFLAGS $openssl_LDFLAGS"
  53. AC_CHECK_LIB(crypto, SHA1_Final,:,AC_MSG_FAILURE(btpd needs openssl's libraries and headers))
  54. LDFLAGS=$old_LDFLAGS
  55. for m in $evloop_methods; do
  56. case $m in
  57. epoll)
  58. AC_CHECK_FUNC(epoll_wait,[
  59. AC_SUBST(EVLOOP_IMPL,"evloop/epoll.${OBJEXT}")
  60. AC_SUBST(EVLOOP_METHOD,EVLOOP_EPOLL)
  61. break])
  62. ;;
  63. kqueue)
  64. AC_CHECK_FUNC(kqueue,[
  65. AC_SUBST(EVLOOP_IMPL,"evloop/kqueue.${OBJEXT}")
  66. AC_SUBST(EVLOOP_METHOD,EVLOOP_KQUEUE)
  67. break])
  68. ;;
  69. poll)
  70. AC_CHECK_FUNC(poll,[
  71. AC_SUBST(EVLOOP_IMPL,"evloop/poll.${OBJEXT}")
  72. AC_SUBST(EVLOOP_METHOD,EVLOOP_POLL)
  73. break])
  74. break
  75. ;;
  76. *)
  77. AC_MSG_ERROR($m is not a valid evloop method)
  78. exit 1
  79. ;;
  80. esac
  81. done
  82. if test x"$EVLOOP_METHOD" == x; then
  83. AC_MSG_FAILURE(no suitable evloop method found)
  84. exit 1
  85. else
  86. AC_MSG_NOTICE(selected evloop method $EVLOOP_METHOD)
  87. fi
  88. for i in 0 1 2 3 4 5 6; do
  89. case $i in
  90. 0) if test x"$TD_CFLAGS$TD_LIBS" == x; then continue; fi;;
  91. 1) TD_CFLAGS=-pthread;;
  92. 2) TD_CFLAGS=-pthreads;;
  93. 3) TD_CFLAGS=-kthread;;
  94. 4) TD_CFLAGS=-mt;;
  95. 5) TD_LIBS=-lpthread;;
  96. 6) AC_MSG_FAILURE(how do you build with pthreads on this system?);;
  97. esac
  98. AC_MSG_CHECKING(whether pthreads compiles with flags \"$TD_CFLAGS $TD_LIBS\")
  99. CC_ARGS_OK_IFELSE($TD_CFLAGS $CFLAGS $TD_LIBS $LIBS,,
  100. AC_MSG_RESULT(no)
  101. TD_CFLAGS=""; TD_LIBS=""
  102. continue)
  103. old_CFLAGS=$CFLAGS; old_LIBS=$LIBS
  104. CFLAGS="$TD_CFLAGS $CFLAGS"; LIBS="$TD_LIBS $LIBS"
  105. AC_LINK_IFELSE([
  106. #include <pthread.h>
  107. int main(void) { return pthread_create(0,0,0,0);}
  108. ], [
  109. AC_MSG_RESULT(yes)
  110. CFLAGS=$old_CFLAGS; LIBS=$old_LIBS
  111. break
  112. ], [
  113. AC_MSG_RESULT(no)
  114. TD_CFLAGS=""; TD_LIBS=""
  115. CFLAGS=$old_CFLAGS; LIBS=$old_LIBS
  116. ])
  117. done
  118. AC_SUBST(TD_CFLAGS)
  119. AC_SUBST(TD_LIBS)
  120. AC_OUTPUT