blob: 278e47bd0cf41e471a80b977d58dbf5e988c0af9 [file] [log] [blame]
Adam Tkac8aee1a82009-09-04 12:08:56 +00001dnl Process this file with autoconf to produce a configure script.
2AC_PREREQ([2.57])
Adam Tkac5b1d8502010-11-25 14:01:59 +00003
4dnl Modify also RCVERSION variable when modifying release
Adam Tkacb514bc72009-12-21 15:02:35 +00005AC_INIT([tigervnc], [1.0.90], [http://www.tigervnc.org])
Adam Tkac5b1d8502010-11-25 14:01:59 +00006RCVERSION="1,0,90,0"
7AC_SUBST([RCVERSION])
8
DRCee229f42010-04-12 00:25:14 +00009BUILD=`date +%Y%m%d`
Pierre Ossmanee6d50c2010-03-19 15:46:35 +000010AC_CONFIG_AUX_DIR([.])
Adam Tkac8aee1a82009-09-04 12:08:56 +000011AM_INIT_AUTOMAKE([-Wall foreign dist-bzip2])
12
13AC_CONFIG_SUBDIRS([common/jpeg common/zlib])
14
15AC_CONFIG_HEADERS([config.h])
16
17dnl Checks for programs.
18AC_PROG_CC
19AC_PROG_CXX
20AC_PROG_LIBTOOL
21AC_LANG([C++])
Adam Tkac8cfa1ed2009-09-07 10:34:58 +000022AM_GNU_GETTEXT([external])
23AM_GNU_GETTEXT_VERSION([0.14.1])
Adam Tkac8aee1a82009-09-04 12:08:56 +000024
25case "`(uname -sr) 2>/dev/null`" in
26"SunOS 5"*)
27 SOLARIS=yes
28 USE_MITSHM=yes
29 USE_SUN_OVL=yes
30 ;;
31"IRIX 6"*)
32 LDFLAGS="-L/usr/lib32 $LDFLAGS"
33 USE_MITSHM=yes
34 USE_READDISPLAY=yes
35 ;;
36"LynxOS 2"*)
37 SJLJ_EXCEPTIONS=yes
38 ;;
39esac
40
Adam Tkac48c3d0c2009-09-04 12:32:07 +000041BUILD_WIN=
Adam Tkac8aee1a82009-09-04 12:08:56 +000042case "$host_os" in
Adam Tkac5b1d8502010-11-25 14:01:59 +000043mingw32*)
Adam Tkac8aee1a82009-09-04 12:08:56 +000044 CPPFLAGS="$CPPFLAGS -DWINVER=0x0500 -D_WIN32_IE=0x0500"
45 CXXFLAGS="$CXXFLAGS -mthreads"
Adam Tkac48c3d0c2009-09-04 12:32:07 +000046 BUILD_WIN=yes
Adam Tkac08c5d472009-09-04 13:19:19 +000047 AC_CHECK_TOOL([WINDRES], windres, [AC_MSG_ERROR(windres not found)])
Adam Tkac8aee1a82009-09-04 12:08:56 +000048 ;;
Adam Tkac5b1d8502010-11-25 14:01:59 +000049mingw*)
50 AC_MSG_ERROR(["Only 32bit MinGW builds are supported"])
51 ;;
Adam Tkac8aee1a82009-09-04 12:08:56 +000052esac
Adam Tkac48c3d0c2009-09-04 12:32:07 +000053AM_CONDITIONAL([BUILD_WIN], [test "x$BUILD_WIN" = xyes])
Adam Tkac69df3762010-11-02 09:16:49 +000054if test "x$BUILD_WIN" = xyes; then
55 AC_DEFINE([BUILD_WIN],1,[is it a windows build])
56fi
Adam Tkac8aee1a82009-09-04 12:08:56 +000057
58dnl FIXME: Check for MIT-SHM properly, add a corresponding --with option.
59if test "$USE_MITSHM" = yes; then
60 MITSHM_DEFINE="-DHAVE_MITSHM"
61fi
62AC_SUBST(MITSHM_DEFINE)
63
64if test "$GCC" = yes; then
65 CFLAGS="$CFLAGS -Wall"
66 if test "$SOLARIS" = yes; then
67 CFLAGS="$CFLAGS -Wno-unknown-pragmas -Wno-implicit-int"
68 fi
69fi
70if test "$GXX" = yes; then
71 CXXFLAGS="$CXXFLAGS -Wall"
72 if test "$SOLARIS" = yes; then
73 CXXFLAGS="$CXXFLAGS -Wno-unknown-pragmas -fpermissive"
74 fi
75 if test "$SJLJ_EXCEPTIONS" = yes; then
76 CXXFLAGS="$CXXFLAGS -fsjlj-exceptions"
77 fi
78fi
79
80AC_PATH_XTRA
81
Adam Tkac29da2d82010-04-23 14:10:53 +000082dnl Check gnutls availability
83AC_ARG_ENABLE([gnutls],
84 AS_HELP_STRING([--enable-gnutls],
85 [build in GNUTLS based encryption support (default yes)]),
Adam Tkacfee65d52010-05-13 13:46:13 +000086 [enable_gnutls="$enableval"], [enable_gnutls=yes])
DRCf79eb272010-10-01 09:31:18 +000087AC_ARG_VAR(GNUTLS_CFLAGS, [Custom C compiler flags for using GnuTLS, e.g. -I{GnuTLS directory}/include])
88AC_ARG_VAR(GNUTLS_LDFLAGS, [Custom linker flags for using GnuTLS, e.g. -L{GnuTLS directory}/lib -lgnutls])
89
Adam Tkac29da2d82010-04-23 14:10:53 +000090GNUTLS_LIBS=
Adam Tkacdf799702010-04-28 15:45:53 +000091if test "x$enable_gnutls" = xyes; then
DRCf79eb272010-10-01 09:31:18 +000092 if test "x$GNUTLS_LDFLAGS" = "x"; then
DRC79735b42011-02-09 03:37:00 +000093 GNUTLS_LDFLAGS='-lgnutls -lgcrypt -lgpg-error'
DRCecdc5472010-11-04 18:20:15 +000094 AC_CHECK_LIB([tasn1], [asn1_create_element], [GNUTLS_LDFLAGS="${GNUTLS_LDFLAGS} -ltasn1"])
DRCf79eb272010-10-01 09:31:18 +000095 fi
96 SAVE_LIBS=${LIBS}
DRC79735b42011-02-09 03:37:00 +000097 LIBS="${LIBS} ${GNUTLS_LDFLAGS} -lz"
DRCf79eb272010-10-01 09:31:18 +000098 SAVE_CPPFLAGS=${CPPFLAGS}
99 CPPFLAGS="${CPPFLAGS} ${GNUTLS_CFLAGS}"
100 AC_MSG_CHECKING([for GnuTLS library])
101 AC_LINK_IFELSE(AC_LANG_CALL([], gnutls_global_init),
102 [GNUTLS_LIBS=${GNUTLS_LDFLAGS}
103 AC_DEFINE(HAVE_GNUTLS, 1, [Is gnutls present? ])
104 AC_MSG_RESULT(yes)], AC_MSG_RESULT(no))
105 AC_MSG_CHECKING([for gnutls_transport_set_global_errno() function])
106 AC_LINK_IFELSE(AC_LANG_CALL([], gnutls_transport_set_global_errno),
107 AC_MSG_RESULT(yes),
108 [AC_DEFINE(HAVE_OLD_GNUTLS, 1, [Does gnutls lack the gnutls_transport_set_global_errno() function? ])
109 AC_MSG_RESULT(no)])
Adam Tkac68481c12011-02-09 14:15:09 +0000110 AC_MSG_CHECKING([for gnutls_x509_crt_print() function])
111 AC_LINK_IFELSE(AC_LANG_CALL([], gnutls_x509_crt_print),
112 [AC_DEFINE(HAVE_GNUTLS_X509_CRT_PRINT, 1, [Is the gnutls_x509_crt_print() function present? ])
113 AC_MSG_RESULT(yes)],
114 AC_MSG_RESULT(no))
Adam Tkacb4864232011-02-09 15:38:37 +0000115 AC_CHECK_TYPES([gnutls_x509_crt_t, gnutls_datum_t,
116 gnutls_pk_algorithm_t, gnutls_sign_algorithm_t],
117 [], [], [#include <gnutls/gnutls.h>])
DRCf79eb272010-10-01 09:31:18 +0000118 LIBS=${SAVE_LIBS}
Adam Tkac29da2d82010-04-23 14:10:53 +0000119fi
Adam Tkacfee65d52010-05-13 13:46:13 +0000120AC_SUBST([GNUTLS_LIBS])
121AM_CONDITIONAL([HAVE_GNUTLS], [ ! test "x$GNUTLS_LIBS" = x ])
Adam Tkac29da2d82010-04-23 14:10:53 +0000122
Pierre Ossman073e64a2010-12-07 12:35:54 +0000123AC_ARG_ENABLE([pam],
124 AS_HELP_STRING([--enable-pam],
125 [build in support for authenticating users using PAM (default yes)]),
126 [enable_pam="$enableval"], [enable_pam=yes])
127
128PAM_LIBS=
129if test "x$enable_pam" = xyes; then
130 AC_CHECK_LIB([pam], [pam_start],
131 [AC_CHECK_HEADER([security/pam_appl.h],
132 [PAM_LIBS='-lpam'
133 AC_DEFINE(HAVE_PAM, 1, [PAM available])],
134 [], [#include <stdio.h>])])
135fi
Adam Tkac520fc412010-09-02 14:13:24 +0000136AC_SUBST([PAM_LIBS])
137AM_CONDITIONAL([HAVE_PAM], [ ! test "x$PAM_LIBS" = x ])
138
Adam Tkac8aee1a82009-09-04 12:08:56 +0000139VNCCONFIG_DIR='vncconfig'
140AC_ARG_ENABLE([vncconfig],
141 AS_HELP_STRING([--enable-vncconfig],
142 [build the vncconfig utility (default yes)]),
143 [if test "$enableval" = no; then VNCCONFIG_DIR=; fi ], [])
144AC_SUBST(VNCCONFIG_DIR)
145
146dnl Check for the XTest X11 extension library.
147AC_CHECK_LIB(Xtst,XTestGrabControl,USE_XTEST=yes,USE_XTEST=,
148 ["$X_LIBS" -lXext -lX11])
149if test "$USE_XTEST" = yes; then
150 XTEST_DEFINE='-DHAVE_XTEST'
151 XTEST_LIB=-lXtst
152else
153 echo Warning: No XTest extension, building x0vncserver view-only
154 XTEST_DEFINE=
155 XTEST_LIB=
156fi
157AC_SUBST(XTEST_DEFINE)
158AC_SUBST(XTEST_LIB)
159
160dnl Support for READDISPLAY (Irix) and SUN_OVL (Solaris) extensions
161dnl FIXME: Implement corresponding --with options.
162if test "$USE_READDISPLAY" = yes; then
163 READDISPLAY_DEFINE='-DHAVE_READDISPLAY'
164elif test "$USE_SUN_OVL" = yes; then
165 READDISPLAY_DEFINE='-DHAVE_SUN_OVL'
166else
167 READDISPLAY_DEFINE=
168fi
169AC_SUBST(READDISPLAY_DEFINE)
170
171dnl Under Lynx/OS 2.3, we have to link with -lbsd to resolve
172dnl gethostbyname, inet_addr, htons etc. Check if it's necessary.
173dnl NOTE: Did not want to use AC_SEARCH_LIBS which would add
174dnl -lbsd to LIBS. We set INET_LIB instead.
175AC_LANG_SAVE
176AC_LANG_C
177AC_CHECK_FUNC(gethostbyname,INET_LIB_REQ=,INET_LIB_REQ=yes)
178if test "$INET_LIB_REQ" = yes; then
179 AC_CHECK_LIB(bsd,gethostbyname,INET_LIB=-lbsd,INET_LIB=)
180fi
181AC_LANG_RESTORE
182AC_SUBST(INET_LIB)
183
DRC1b6aba22011-02-08 23:43:17 +0000184AC_CHECK_FUNC(setenv, AC_DEFINE([HAVE_SETENV], [1], [Is setenv() present?]))
185
Adam Tkac8aee1a82009-09-04 12:08:56 +0000186dnl Check for zlib library
187INCLUDED_ZLIB=no
188AC_ARG_WITH([included-zlib],
189 AS_HELP_STRING([--with-included-zlib],
190 [use libz which is distributed with VNC]),
191 [INCLUDED_ZLIB=yes],
192 [AC_SEARCH_LIBS([inflateEnd], [z], [], [INCLUDED_ZLIB=yes])])
193
194AM_CONDITIONAL([INCLUDED_ZLIB], [ test "x$INCLUDED_ZLIB" = xyes ])
195AC_CONFIG_SUBDIRS([zlib])
196
197dnl Check for libjpeg library
198INCLUDED_JPEG=yes
199AC_ARG_WITH([system-jpeg],
200 AS_HELP_STRING([--with-system-jpeg],
201 [use libjpeg which is distributed with the O/S]),
202 [AC_SEARCH_LIBS([jpeg_destroy_compress], [jpeg],
203 [INCLUDED_JPEG=no], [])],
204 [])
205
206AM_CONDITIONAL([INCLUDED_JPEG], [ test "x$INCLUDED_JPEG" = xyes ])
207AC_CONFIG_SUBDIRS([jpeg])
208
209AC_CHECK_FUNCS([vsnprintf snprintf strcasecmp strncasecmp])
210
Pierre Ossman657806f2010-02-12 09:06:15 +0000211# Network functions
212AC_SEARCH_LIBS([inet_aton], [resolv])
Pierre Ossman40659972010-02-12 09:19:32 +0000213AC_CHECK_FUNCS([inet_aton])
Pierre Ossman657806f2010-02-12 09:06:15 +0000214
Adam Tkac8aee1a82009-09-04 12:08:56 +0000215# IPv6 related functions
216AC_CHECK_FUNCS([inet_ntop getaddrinfo])
217
218AC_CHECK_TYPES([socklen_t], [], [], [[#include <sys/socket.h>]])
219
220AC_CHECK_HEADERS([sys/select.h])
221
Pierre Ossmanf2180b22009-12-23 09:51:37 +0000222# Needed for WinVNC, but not part of mingw yet
223AC_CHECK_DECLS([CLSID_ActiveDesktop], [BUILD_WINVNC=yes], [],
224 [[#include <windows.h>
225 #include <shlguid.h>
226 ]])
227AM_CONDITIONAL([BUILD_WINVNC], [ test "x$BUILD_WINVNC" = xyes ])
228
DRCee229f42010-04-12 00:25:14 +0000229# Packaging stuff
230AM_CONDITIONAL([X86_64], [test "x$host_cpu" = "xx86_64"])
231
232AC_SUBST(BUILD)
233
DRC2b0b1942011-02-09 03:10:44 +0000234AC_CONFIG_FILES([makemacpkg:release/makemacpkg.in])
DRC61b630a2011-02-09 10:45:09 +0000235AC_CONFIG_FILES([maketarball:release/maketarball.in])
DRC2b0b1942011-02-09 03:10:44 +0000236
Adam Tkac8aee1a82009-09-04 12:08:56 +0000237AC_OUTPUT([
238Makefile
239common/Makefile
240common/os/Makefile
241common/rdr/Makefile
242common/network/Makefile
243common/Xregion/Makefile
244common/rfb/Makefile
245unix/Makefile
246unix/tx/Makefile
247unix/x0vncserver/Makefile
248unix/vncviewer/Makefile
249unix/vncconfig/Makefile
250unix/vncpasswd/Makefile
Adam Tkac08c5d472009-09-04 13:19:19 +0000251win/Makefile
252win/vncviewer/Makefile
253win/rfb_win32/Makefile
Adam Tkac934f63c2009-10-12 15:54:59 +0000254win/vncconfig/Makefile
255win/winvnc/Makefile
Adam Tkac5b1d8502010-11-25 14:01:59 +0000256win/resdefs.h
Adam Tkac8cfa1ed2009-09-07 10:34:58 +0000257po/Makefile.in
Adam Tkac8aee1a82009-09-04 12:08:56 +0000258])