blob: 1909e33656bad8f89809e5b3a2f22a56124bfcd6 [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 Tkacb514bc72009-12-21 15:02:35 +00003AC_INIT([tigervnc], [1.0.90], [http://www.tigervnc.org])
DRCee229f42010-04-12 00:25:14 +00004BUILD=`date +%Y%m%d`
Pierre Ossmanee6d50c2010-03-19 15:46:35 +00005AC_CONFIG_AUX_DIR([.])
Adam Tkac8aee1a82009-09-04 12:08:56 +00006AM_INIT_AUTOMAKE([-Wall foreign dist-bzip2])
7
8AC_CONFIG_SUBDIRS([common/jpeg common/zlib])
9
10AC_CONFIG_HEADERS([config.h])
11
12dnl Checks for programs.
13AC_PROG_CC
14AC_PROG_CXX
15AC_PROG_LIBTOOL
16AC_LANG([C++])
Adam Tkac8cfa1ed2009-09-07 10:34:58 +000017AM_GNU_GETTEXT([external])
18AM_GNU_GETTEXT_VERSION([0.14.1])
Adam Tkac8aee1a82009-09-04 12:08:56 +000019
20case "`(uname -sr) 2>/dev/null`" in
21"SunOS 5"*)
22 SOLARIS=yes
23 USE_MITSHM=yes
24 USE_SUN_OVL=yes
25 ;;
26"IRIX 6"*)
27 LDFLAGS="-L/usr/lib32 $LDFLAGS"
28 USE_MITSHM=yes
29 USE_READDISPLAY=yes
30 ;;
31"LynxOS 2"*)
32 SJLJ_EXCEPTIONS=yes
33 ;;
34esac
35
Adam Tkac48c3d0c2009-09-04 12:32:07 +000036BUILD_WIN=
Adam Tkac8aee1a82009-09-04 12:08:56 +000037case "$host_os" in
38mingw*)
39 CPPFLAGS="$CPPFLAGS -DWINVER=0x0500 -D_WIN32_IE=0x0500"
40 CXXFLAGS="$CXXFLAGS -mthreads"
Adam Tkac48c3d0c2009-09-04 12:32:07 +000041 BUILD_WIN=yes
Adam Tkac08c5d472009-09-04 13:19:19 +000042 AC_CHECK_TOOL([WINDRES], windres, [AC_MSG_ERROR(windres not found)])
Adam Tkac8aee1a82009-09-04 12:08:56 +000043 ;;
44esac
Adam Tkac48c3d0c2009-09-04 12:32:07 +000045AM_CONDITIONAL([BUILD_WIN], [test "x$BUILD_WIN" = xyes])
Adam Tkac69df3762010-11-02 09:16:49 +000046if test "x$BUILD_WIN" = xyes; then
47 AC_DEFINE([BUILD_WIN],1,[is it a windows build])
48fi
Adam Tkac8aee1a82009-09-04 12:08:56 +000049
50dnl FIXME: Check for MIT-SHM properly, add a corresponding --with option.
51if test "$USE_MITSHM" = yes; then
52 MITSHM_DEFINE="-DHAVE_MITSHM"
53fi
54AC_SUBST(MITSHM_DEFINE)
55
56if test "$GCC" = yes; then
57 CFLAGS="$CFLAGS -Wall"
58 if test "$SOLARIS" = yes; then
59 CFLAGS="$CFLAGS -Wno-unknown-pragmas -Wno-implicit-int"
60 fi
61fi
62if test "$GXX" = yes; then
63 CXXFLAGS="$CXXFLAGS -Wall"
64 if test "$SOLARIS" = yes; then
65 CXXFLAGS="$CXXFLAGS -Wno-unknown-pragmas -fpermissive"
66 fi
67 if test "$SJLJ_EXCEPTIONS" = yes; then
68 CXXFLAGS="$CXXFLAGS -fsjlj-exceptions"
69 fi
70fi
71
72AC_PATH_XTRA
73
Adam Tkac29da2d82010-04-23 14:10:53 +000074dnl Check gnutls availability
75AC_ARG_ENABLE([gnutls],
76 AS_HELP_STRING([--enable-gnutls],
77 [build in GNUTLS based encryption support (default yes)]),
Adam Tkacfee65d52010-05-13 13:46:13 +000078 [enable_gnutls="$enableval"], [enable_gnutls=yes])
DRCf79eb272010-10-01 09:31:18 +000079AC_ARG_VAR(GNUTLS_CFLAGS, [Custom C compiler flags for using GnuTLS, e.g. -I{GnuTLS directory}/include])
80AC_ARG_VAR(GNUTLS_LDFLAGS, [Custom linker flags for using GnuTLS, e.g. -L{GnuTLS directory}/lib -lgnutls])
81
Adam Tkac29da2d82010-04-23 14:10:53 +000082GNUTLS_LIBS=
Adam Tkacdf799702010-04-28 15:45:53 +000083if test "x$enable_gnutls" = xyes; then
DRCf79eb272010-10-01 09:31:18 +000084 if test "x$GNUTLS_LDFLAGS" = "x"; then
DRCecdc5472010-11-04 18:20:15 +000085 GNUTLS_LDFLAGS='-lgnutls -lgcrypt -lgpg-error -lz'
86 AC_CHECK_LIB([tasn1], [asn1_create_element], [GNUTLS_LDFLAGS="${GNUTLS_LDFLAGS} -ltasn1"])
DRCf79eb272010-10-01 09:31:18 +000087 fi
88 SAVE_LIBS=${LIBS}
89 LIBS="${LIBS} ${GNUTLS_LDFLAGS}"
90 SAVE_CPPFLAGS=${CPPFLAGS}
91 CPPFLAGS="${CPPFLAGS} ${GNUTLS_CFLAGS}"
92 AC_MSG_CHECKING([for GnuTLS library])
93 AC_LINK_IFELSE(AC_LANG_CALL([], gnutls_global_init),
94 [GNUTLS_LIBS=${GNUTLS_LDFLAGS}
95 AC_DEFINE(HAVE_GNUTLS, 1, [Is gnutls present? ])
96 AC_MSG_RESULT(yes)], AC_MSG_RESULT(no))
97 AC_MSG_CHECKING([for gnutls_transport_set_global_errno() function])
98 AC_LINK_IFELSE(AC_LANG_CALL([], gnutls_transport_set_global_errno),
99 AC_MSG_RESULT(yes),
100 [AC_DEFINE(HAVE_OLD_GNUTLS, 1, [Does gnutls lack the gnutls_transport_set_global_errno() function? ])
101 AC_MSG_RESULT(no)])
102 LIBS=${SAVE_LIBS}
Adam Tkac29da2d82010-04-23 14:10:53 +0000103fi
Adam Tkacfee65d52010-05-13 13:46:13 +0000104AC_SUBST([GNUTLS_LIBS])
105AM_CONDITIONAL([HAVE_GNUTLS], [ ! test "x$GNUTLS_LIBS" = x ])
Adam Tkac29da2d82010-04-23 14:10:53 +0000106
Adam Tkac520fc412010-09-02 14:13:24 +0000107AC_CHECK_LIB([pam], [pam_start],
DRCee770d02010-09-30 07:41:56 +0000108 [AC_CHECK_HEADER([security/pam_appl.h],
109 [PAM_LIBS='-lpam'
110 AC_DEFINE(HAVE_PAM, 1, [PAM available])],
111 [], [#include <stdio.h>])])
Adam Tkac520fc412010-09-02 14:13:24 +0000112AC_SUBST([PAM_LIBS])
113AM_CONDITIONAL([HAVE_PAM], [ ! test "x$PAM_LIBS" = x ])
114
Adam Tkac8aee1a82009-09-04 12:08:56 +0000115VNCCONFIG_DIR='vncconfig'
116AC_ARG_ENABLE([vncconfig],
117 AS_HELP_STRING([--enable-vncconfig],
118 [build the vncconfig utility (default yes)]),
119 [if test "$enableval" = no; then VNCCONFIG_DIR=; fi ], [])
120AC_SUBST(VNCCONFIG_DIR)
121
122dnl Check for the XTest X11 extension library.
123AC_CHECK_LIB(Xtst,XTestGrabControl,USE_XTEST=yes,USE_XTEST=,
124 ["$X_LIBS" -lXext -lX11])
125if test "$USE_XTEST" = yes; then
126 XTEST_DEFINE='-DHAVE_XTEST'
127 XTEST_LIB=-lXtst
128else
129 echo Warning: No XTest extension, building x0vncserver view-only
130 XTEST_DEFINE=
131 XTEST_LIB=
132fi
133AC_SUBST(XTEST_DEFINE)
134AC_SUBST(XTEST_LIB)
135
136dnl Support for READDISPLAY (Irix) and SUN_OVL (Solaris) extensions
137dnl FIXME: Implement corresponding --with options.
138if test "$USE_READDISPLAY" = yes; then
139 READDISPLAY_DEFINE='-DHAVE_READDISPLAY'
140elif test "$USE_SUN_OVL" = yes; then
141 READDISPLAY_DEFINE='-DHAVE_SUN_OVL'
142else
143 READDISPLAY_DEFINE=
144fi
145AC_SUBST(READDISPLAY_DEFINE)
146
147dnl Under Lynx/OS 2.3, we have to link with -lbsd to resolve
148dnl gethostbyname, inet_addr, htons etc. Check if it's necessary.
149dnl NOTE: Did not want to use AC_SEARCH_LIBS which would add
150dnl -lbsd to LIBS. We set INET_LIB instead.
151AC_LANG_SAVE
152AC_LANG_C
153AC_CHECK_FUNC(gethostbyname,INET_LIB_REQ=,INET_LIB_REQ=yes)
154if test "$INET_LIB_REQ" = yes; then
155 AC_CHECK_LIB(bsd,gethostbyname,INET_LIB=-lbsd,INET_LIB=)
156fi
157AC_LANG_RESTORE
158AC_SUBST(INET_LIB)
159
160dnl Check for zlib library
161INCLUDED_ZLIB=no
162AC_ARG_WITH([included-zlib],
163 AS_HELP_STRING([--with-included-zlib],
164 [use libz which is distributed with VNC]),
165 [INCLUDED_ZLIB=yes],
166 [AC_SEARCH_LIBS([inflateEnd], [z], [], [INCLUDED_ZLIB=yes])])
167
168AM_CONDITIONAL([INCLUDED_ZLIB], [ test "x$INCLUDED_ZLIB" = xyes ])
169AC_CONFIG_SUBDIRS([zlib])
170
171dnl Check for libjpeg library
172INCLUDED_JPEG=yes
173AC_ARG_WITH([system-jpeg],
174 AS_HELP_STRING([--with-system-jpeg],
175 [use libjpeg which is distributed with the O/S]),
176 [AC_SEARCH_LIBS([jpeg_destroy_compress], [jpeg],
177 [INCLUDED_JPEG=no], [])],
178 [])
179
180AM_CONDITIONAL([INCLUDED_JPEG], [ test "x$INCLUDED_JPEG" = xyes ])
181AC_CONFIG_SUBDIRS([jpeg])
182
183AC_CHECK_FUNCS([vsnprintf snprintf strcasecmp strncasecmp])
184
Pierre Ossman657806f2010-02-12 09:06:15 +0000185# Network functions
186AC_SEARCH_LIBS([inet_aton], [resolv])
Pierre Ossman40659972010-02-12 09:19:32 +0000187AC_CHECK_FUNCS([inet_aton])
Pierre Ossman657806f2010-02-12 09:06:15 +0000188
Adam Tkac8aee1a82009-09-04 12:08:56 +0000189# IPv6 related functions
190AC_CHECK_FUNCS([inet_ntop getaddrinfo])
191
192AC_CHECK_TYPES([socklen_t], [], [], [[#include <sys/socket.h>]])
193
194AC_CHECK_HEADERS([sys/select.h])
195
Pierre Ossmanf2180b22009-12-23 09:51:37 +0000196# Needed for WinVNC, but not part of mingw yet
197AC_CHECK_DECLS([CLSID_ActiveDesktop], [BUILD_WINVNC=yes], [],
198 [[#include <windows.h>
199 #include <shlguid.h>
200 ]])
201AM_CONDITIONAL([BUILD_WINVNC], [ test "x$BUILD_WINVNC" = xyes ])
202
DRCee229f42010-04-12 00:25:14 +0000203# Packaging stuff
204AM_CONDITIONAL([X86_64], [test "x$host_cpu" = "xx86_64"])
205
206AC_SUBST(BUILD)
207
Adam Tkac8aee1a82009-09-04 12:08:56 +0000208AC_OUTPUT([
209Makefile
210common/Makefile
211common/os/Makefile
212common/rdr/Makefile
213common/network/Makefile
214common/Xregion/Makefile
215common/rfb/Makefile
216unix/Makefile
217unix/tx/Makefile
218unix/x0vncserver/Makefile
219unix/vncviewer/Makefile
220unix/vncconfig/Makefile
221unix/vncpasswd/Makefile
Adam Tkac08c5d472009-09-04 13:19:19 +0000222win/Makefile
223win/vncviewer/Makefile
224win/rfb_win32/Makefile
Adam Tkac934f63c2009-10-12 15:54:59 +0000225win/vncconfig/Makefile
226win/winvnc/Makefile
Adam Tkac8cfa1ed2009-09-07 10:34:58 +0000227po/Makefile.in
Adam Tkac8aee1a82009-09-04 12:08:56 +0000228])