A clone of btpd with my configuration changes.
25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

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