You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

configure.ac 7.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264
  1. dnl Process this file with autoconf to produce a configure script.
  2. AC_PREREQ([2.57])
  3. dnl Modify also RCVERSION variable when modifying release
  4. AC_INIT([tigervnc], [1.1.0], [http://www.tigervnc.org])
  5. RCVERSION="1,1,0,0"
  6. AC_SUBST([RCVERSION])
  7. BUILD=`date +%Y%m%d`
  8. AC_CONFIG_AUX_DIR([.])
  9. AM_INIT_AUTOMAKE([-Wall foreign dist-bzip2])
  10. AC_CONFIG_SUBDIRS([common/jpeg common/zlib])
  11. AC_CONFIG_HEADERS([config.h])
  12. dnl Checks for programs.
  13. AC_PROG_CC
  14. AC_PROG_CXX
  15. AC_PROG_LIBTOOL
  16. AC_LANG([C++])
  17. AM_GNU_GETTEXT([external])
  18. AM_GNU_GETTEXT_VERSION([0.14.4])
  19. case "`(uname -sr) 2>/dev/null`" in
  20. "SunOS 5"*)
  21. SOLARIS=yes
  22. USE_MITSHM=yes
  23. USE_SUN_OVL=yes
  24. ;;
  25. "IRIX 6"*)
  26. LDFLAGS="-L/usr/lib32 $LDFLAGS"
  27. USE_MITSHM=yes
  28. USE_READDISPLAY=yes
  29. ;;
  30. "LynxOS 2"*)
  31. SJLJ_EXCEPTIONS=yes
  32. ;;
  33. esac
  34. BUILD_WIN=
  35. case "$host_os" in
  36. mingw32*)
  37. CPPFLAGS="$CPPFLAGS -DWINVER=0x0500 -D_WIN32_IE=0x0500"
  38. CXXFLAGS="$CXXFLAGS -mthreads"
  39. BUILD_WIN=yes
  40. AC_CHECK_TOOL([WINDRES], windres, [AC_MSG_ERROR(windres not found)])
  41. ;;
  42. mingw*)
  43. AC_MSG_ERROR(["Only 32bit MinGW builds are supported"])
  44. ;;
  45. esac
  46. AM_CONDITIONAL([BUILD_WIN], [test "x$BUILD_WIN" = xyes])
  47. if test "x$BUILD_WIN" = xyes; then
  48. AC_DEFINE([BUILD_WIN],1,[is it a windows build])
  49. fi
  50. dnl FIXME: Check for MIT-SHM properly, add a corresponding --with option.
  51. if test "$USE_MITSHM" = yes; then
  52. MITSHM_DEFINE="-DHAVE_MITSHM"
  53. fi
  54. AC_SUBST(MITSHM_DEFINE)
  55. if test "$GCC" = yes; then
  56. CFLAGS="$CFLAGS -Wall"
  57. if test "$SOLARIS" = yes; then
  58. CFLAGS="$CFLAGS -Wno-unknown-pragmas -Wno-implicit-int"
  59. fi
  60. fi
  61. if test "$GXX" = yes; then
  62. CXXFLAGS="$CXXFLAGS -Wall"
  63. if test "$SOLARIS" = yes; then
  64. CXXFLAGS="$CXXFLAGS -Wno-unknown-pragmas -fpermissive"
  65. fi
  66. if test "$SJLJ_EXCEPTIONS" = yes; then
  67. CXXFLAGS="$CXXFLAGS -fsjlj-exceptions"
  68. fi
  69. fi
  70. AC_PATH_XTRA
  71. dnl Check gnutls availability
  72. AC_ARG_ENABLE([gnutls],
  73. AS_HELP_STRING([--enable-gnutls],
  74. [build in GNUTLS based encryption support (default yes)]),
  75. [enable_gnutls="$enableval"], [enable_gnutls=yes])
  76. AC_ARG_VAR(GNUTLS_CFLAGS, [Custom C compiler flags for using GnuTLS, e.g. -I{GnuTLS directory}/include])
  77. AC_ARG_VAR(GNUTLS_LDFLAGS, [Custom linker flags for using GnuTLS, e.g. -L{GnuTLS directory}/lib -lgnutls])
  78. GNUTLS_LIBS=
  79. if test "x$enable_gnutls" = xyes; then
  80. if test "x$GNUTLS_LDFLAGS" = "x"; then
  81. GNUTLS_LDFLAGS='-lgnutls -lgcrypt -lgpg-error'
  82. AC_CHECK_LIB([tasn1], [asn1_create_element], [GNUTLS_LDFLAGS="${GNUTLS_LDFLAGS} -ltasn1"])
  83. fi
  84. SAVE_LIBS=${LIBS}
  85. LIBS="${LIBS} ${GNUTLS_LDFLAGS} -lz"
  86. SAVE_CPPFLAGS=${CPPFLAGS}
  87. CPPFLAGS="${CPPFLAGS} ${GNUTLS_CFLAGS}"
  88. AC_MSG_CHECKING([for GnuTLS library])
  89. AC_LINK_IFELSE(AC_LANG_CALL([], gnutls_global_init),
  90. [GNUTLS_LIBS=${GNUTLS_LDFLAGS}
  91. AC_DEFINE(HAVE_GNUTLS, 1, [Is gnutls present? ])
  92. AC_MSG_RESULT(yes)], AC_MSG_RESULT(no))
  93. AC_MSG_CHECKING([for gnutls_transport_set_global_errno() function])
  94. AC_LINK_IFELSE(AC_LANG_CALL([], gnutls_transport_set_global_errno),
  95. AC_MSG_RESULT(yes),
  96. [AC_DEFINE(HAVE_OLD_GNUTLS, 1, [Does gnutls lack the gnutls_transport_set_global_errno() function? ])
  97. AC_MSG_RESULT(no)])
  98. AC_MSG_CHECKING([for gnutls_x509_crt_print() function])
  99. AC_LINK_IFELSE(AC_LANG_CALL([], gnutls_x509_crt_print),
  100. [AC_DEFINE(HAVE_GNUTLS_X509_CRT_PRINT, 1, [Is the gnutls_x509_crt_print() function present? ])
  101. AC_MSG_RESULT(yes)],
  102. AC_MSG_RESULT(no))
  103. AC_CHECK_TYPES([gnutls_x509_crt_t, gnutls_datum_t,
  104. gnutls_pk_algorithm_t, gnutls_sign_algorithm_t],
  105. [], [], [#include <gnutls/gnutls.h>])
  106. LIBS=${SAVE_LIBS}
  107. fi
  108. AC_SUBST([GNUTLS_LIBS])
  109. AM_CONDITIONAL([HAVE_GNUTLS], [ ! test "x$GNUTLS_LIBS" = x ])
  110. AC_ARG_ENABLE([pam],
  111. AS_HELP_STRING([--enable-pam],
  112. [build in support for authenticating users using PAM (default yes)]),
  113. [enable_pam="$enableval"], [enable_pam=yes])
  114. PAM_LIBS=
  115. if test "x$enable_pam" = xyes; then
  116. AC_CHECK_LIB([pam], [pam_start],
  117. [AC_CHECK_HEADER([security/pam_appl.h],
  118. [PAM_LIBS='-lpam'
  119. AC_DEFINE(HAVE_PAM, 1, [PAM available])],
  120. [], [#include <stdio.h>])])
  121. fi
  122. AC_SUBST([PAM_LIBS])
  123. AM_CONDITIONAL([HAVE_PAM], [ ! test "x$PAM_LIBS" = x ])
  124. VNCCONFIG_DIR='vncconfig'
  125. AC_ARG_ENABLE([vncconfig],
  126. AS_HELP_STRING([--enable-vncconfig],
  127. [build the vncconfig utility (default yes)]),
  128. [if test "$enableval" = no; then VNCCONFIG_DIR=; fi ], [])
  129. AC_SUBST(VNCCONFIG_DIR)
  130. dnl Check for the XTest X11 extension library.
  131. AC_CHECK_LIB(Xtst,XTestGrabControl,USE_XTEST=yes,USE_XTEST=,
  132. ["$X_LIBS" -lXext -lX11])
  133. if test "$USE_XTEST" = yes; then
  134. XTEST_DEFINE='-DHAVE_XTEST'
  135. XTEST_LIB=-lXtst
  136. else
  137. echo Warning: No XTest extension, building x0vncserver view-only
  138. XTEST_DEFINE=
  139. XTEST_LIB=
  140. fi
  141. AC_SUBST(XTEST_DEFINE)
  142. AC_SUBST(XTEST_LIB)
  143. dnl Support for READDISPLAY (Irix) and SUN_OVL (Solaris) extensions
  144. dnl FIXME: Implement corresponding --with options.
  145. if test "$USE_READDISPLAY" = yes; then
  146. READDISPLAY_DEFINE='-DHAVE_READDISPLAY'
  147. elif test "$USE_SUN_OVL" = yes; then
  148. READDISPLAY_DEFINE='-DHAVE_SUN_OVL'
  149. else
  150. READDISPLAY_DEFINE=
  151. fi
  152. AC_SUBST(READDISPLAY_DEFINE)
  153. dnl Under Lynx/OS 2.3, we have to link with -lbsd to resolve
  154. dnl gethostbyname, inet_addr, htons etc. Check if it's necessary.
  155. dnl NOTE: Did not want to use AC_SEARCH_LIBS which would add
  156. dnl -lbsd to LIBS. We set INET_LIB instead.
  157. AC_LANG_SAVE
  158. AC_LANG_C
  159. AC_CHECK_FUNC(gethostbyname,INET_LIB_REQ=,INET_LIB_REQ=yes)
  160. if test "$INET_LIB_REQ" = yes; then
  161. AC_CHECK_LIB(bsd,gethostbyname,INET_LIB=-lbsd,INET_LIB=)
  162. fi
  163. AC_LANG_RESTORE
  164. AC_SUBST(INET_LIB)
  165. AC_CHECK_FUNC(setenv, AC_DEFINE([HAVE_SETENV], [1], [Is setenv() present?]))
  166. dnl Check for zlib library
  167. INCLUDED_ZLIB=no
  168. AC_ARG_WITH([included-zlib],
  169. AS_HELP_STRING([--with-included-zlib],
  170. [use libz which is distributed with VNC]),
  171. [INCLUDED_ZLIB=yes],
  172. [AC_SEARCH_LIBS([inflateEnd], [z], [], [INCLUDED_ZLIB=yes])])
  173. AM_CONDITIONAL([INCLUDED_ZLIB], [ test "x$INCLUDED_ZLIB" = xyes ])
  174. AC_CONFIG_SUBDIRS([zlib])
  175. dnl Check for libjpeg library
  176. INCLUDED_JPEG=yes
  177. AC_ARG_WITH([system-jpeg],
  178. AS_HELP_STRING([--with-system-jpeg],
  179. [use libjpeg which is distributed with the O/S]),
  180. [AC_SEARCH_LIBS([jpeg_destroy_compress], [jpeg],
  181. [INCLUDED_JPEG=no], [])],
  182. [])
  183. AM_CONDITIONAL([INCLUDED_JPEG], [ test "x$INCLUDED_JPEG" = xyes ])
  184. AC_CONFIG_SUBDIRS([jpeg])
  185. AC_CHECK_FUNCS([vsnprintf snprintf strcasecmp strncasecmp])
  186. # Network functions
  187. AC_SEARCH_LIBS([inet_aton], [resolv])
  188. AC_CHECK_FUNCS([inet_aton])
  189. # IPv6 related functions
  190. AC_CHECK_FUNCS([inet_ntop getaddrinfo])
  191. AC_CHECK_TYPES([socklen_t], [], [], [[#include <sys/socket.h>]])
  192. AC_CHECK_HEADERS([sys/select.h])
  193. # Needed for WinVNC, but not part of mingw yet
  194. AC_CHECK_DECLS([CLSID_ActiveDesktop], [BUILD_WINVNC=yes], [],
  195. [[#include <windows.h>
  196. #include <shlguid.h>
  197. ]])
  198. AM_CONDITIONAL([BUILD_WINVNC], [ test "x$BUILD_WINVNC" = xyes ])
  199. # Packaging stuff
  200. AM_CONDITIONAL([X86_64], [test "x$host_cpu" = "xx86_64"])
  201. AC_SUBST(BUILD)
  202. # Necessary because autoconf < 2.60 doesn't set localedir
  203. if test "x$localedir" = "x"; then
  204. localedir='${datadir}/locale'
  205. AC_SUBST(localedir)
  206. fi
  207. AC_CONFIG_FILES([makemacpkg:release/makemacpkg.in])
  208. AC_CONFIG_FILES([maketarball:release/maketarball.in])
  209. AC_OUTPUT([
  210. Makefile
  211. common/Makefile
  212. common/os/Makefile
  213. common/rdr/Makefile
  214. common/network/Makefile
  215. common/Xregion/Makefile
  216. common/rfb/Makefile
  217. unix/Makefile
  218. unix/tx/Makefile
  219. unix/x0vncserver/Makefile
  220. unix/vncviewer/Makefile
  221. unix/vncconfig/Makefile
  222. unix/vncpasswd/Makefile
  223. win/Makefile
  224. win/vncviewer/Makefile
  225. win/rfb_win32/Makefile
  226. win/vncconfig/Makefile
  227. win/winvnc/Makefile
  228. win/resdefs.h
  229. po/Makefile.in
  230. ])