1 dnl Process this file with autoconf to produce a configure script.
2 dnl Original author: Michael Patra
3 dnl See ChangeLog file for detailed change history.
4
5 m4_define(WINE_VERSION,regexp(m4_include(VERSION),[version \([-.0-9A-Za-z]+\)],[\1]))
6
7 AC_PREREQ(2.53b)
8 AC_INIT([Wine],[WINE_VERSION],[wine-devel@winehq.org])
9 AC_CONFIG_SRCDIR(server/atom.c)
10 AC_CONFIG_HEADERS(include/config.h)
11 AC_CONFIG_AUX_DIR(tools)
12
13 dnl **** Command-line arguments ****
14
15 AC_ARG_ENABLE(win16, AS_HELP_STRING([--disable-win16],[do not include Win16 support]))
16 AC_ARG_ENABLE(win64, AS_HELP_STRING([--enable-win64],[build a Win64 emulator on AMD64 (won't run Win32 binaries)]))
17 AC_ARG_ENABLE(maintainer-mode, AS_HELP_STRING([--enable-maintainer-mode],[enable maintainer-specific build rules]),
18 ,[AC_SUBST([MAINTAINER_MODE],[\#])])
19
20 AC_ARG_WITH(alsa, AS_HELP_STRING([--without-alsa],[do not use the Alsa sound support]),
21 [if test "x$withval" = "xno"; then ac_cv_header_sys_asoundlib_h=no; ac_cv_header_alsa_asoundlib_h=no; fi])
22 AC_ARG_WITH(audioio, AS_HELP_STRING([--without-audioio],[do not use the AudioIO sound support]),
23 [if test "x$withval" = "xno"; then ac_cv_header_libaudioio_h=no; fi])
24 AC_ARG_WITH(capi, AS_HELP_STRING([--without-capi],[do not use CAPI (ISDN support)]),
25 [if test "x$withval" = "xno"; then ac_cv_header_capi20_h=no; ac_cv_header_linux_capi_h=no; fi])
26 AC_ARG_WITH(cms, AS_HELP_STRING([--without-cms],[do not use CMS (color management support)]),
27 [if test "x$withval" = "xno"; then ac_cv_header_lcms_h=no; ac_cv_header_lcms_lcms_h=no; fi])
28 AC_ARG_WITH(coreaudio, AS_HELP_STRING([--without-coreaudio],[do not use the CoreAudio sound support]),
29 [if test "x$withval" = "xno"; then ac_cv_header_CoreAudio_CoreAudio_h=no; fi])
30 AC_ARG_WITH(cups, AS_HELP_STRING([--without-cups],[do not use CUPS]),
31 [if test "x$withval" = "xno"; then ac_cv_header_cups_cups_h=no; fi])
32 AC_ARG_WITH(curses, AS_HELP_STRING([--without-curses],[do not use (n)curses]),
33 [if test "x$withval" = "xno"; then ac_cv_header_ncurses_h=no; ac_cv_header_curses_h=no; fi])
34 AC_ARG_WITH(esd, AS_HELP_STRING([--without-esd],[do not use the EsounD sound support]))
35 AC_ARG_WITH(fontconfig,AS_HELP_STRING([--without-fontconfig],[do not use fontconfig]),
36 [if test "x$withval" = "xno"; then ac_cv_header_fontconfig_fontconfig_h=no; fi])
37 AC_ARG_WITH(gphoto, AS_HELP_STRING([--without-gphoto],[do not use gphoto (Digital Camera support)]))
38 AC_ARG_WITH(glu, AS_HELP_STRING([--without-glu],[do not use the GLU library]),
39 [if test "x$withval" = "xno"; then ac_cv_header_GL_glu_h=no; fi])
40 AC_ARG_WITH(hal, AS_HELP_STRING([--without-hal],[do not use HAL (dynamic device support)]))
41 AC_ARG_WITH(jack, AS_HELP_STRING([--without-jack],[do not use the Jack sound support]),
42 [if test "x$withval" = "xno"; then ac_cv_header_jack_jack_h=no; fi])
43 AC_ARG_WITH(jpeg, AS_HELP_STRING([--without-jpeg],[do not use JPEG]),
44 [if test "x$withval" = "xno"; then ac_cv_header_jpeglib_h=no; fi])
45 AC_ARG_WITH(ldap, AS_HELP_STRING([--without-ldap],[do not use LDAP]),
46 [if test "x$withval" = "xno"; then ac_cv_header_ldap_h=no; ac_cv_header_lber_h=no; fi])
47 AC_ARG_WITH(nas, AS_HELP_STRING([--without-nas],[do not use the NAS sound support]),
48 [if test "x$withval" = "xno"; then ac_cv_header_audio_audiolib_h=no; fi])
49 AC_ARG_WITH(opengl, AS_HELP_STRING([--without-opengl],[do not use OpenGL]))
50 AC_ARG_WITH(openssl, AS_HELP_STRING([--without-openssl],[do not use OpenSSL]),
51 [if test "x$withval" = "xno"; then ac_cv_header_openssl_err_h=no; ac_cv_header_openssl_ssl_h=no; fi])
52 AC_ARG_WITH(oss, AS_HELP_STRING([--without-oss],[do not use the OSS sound support]),
53 [if test "x$withval" = "xno"; then ac_cv_header_soundcard_h=no; ac_cv_header_sys_soundcard_h=no; ac_cv_header_machine_soundcard_h=no; fi])
54 AC_ARG_WITH(png, AS_HELP_STRING([--without-png],[do not use PNG]),
55 [if test "x$withval" = "xno"; then ac_cv_header_png_h=no; fi])
56 AC_ARG_WITH(sane, AS_HELP_STRING([--without-sane],[do not use SANE (scanner support)]))
57 AC_ARG_WITH(xcomposite,AS_HELP_STRING([--without-xcomposite],[do not use the Xcomposite extension]),
58 [if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_Xcomposite_h=no; fi])
59 AC_ARG_WITH(xcursor, AS_HELP_STRING([--without-xcursor],[do not use the Xcursor extension]),
60 [if test "x$withval" = "xno"; then ac_cv_header_X11_Xcursor_Xcursor_h=no; fi])
61 AC_ARG_WITH(xinerama, AS_HELP_STRING([--without-xinerama],[do not use Xinerama (multi-monitor support)]),
62 [if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_Xinerama_h=no; fi])
63 AC_ARG_WITH(xinput, AS_HELP_STRING([--without-xinput],[do not use the Xinput extension]),
64 [if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_XInput_h=no; fi])
65 AC_ARG_WITH(xml, AS_HELP_STRING([--without-xml],[do not use XML]))
66 AC_ARG_WITH(xrandr, AS_HELP_STRING([--without-xrandr],[do not use Xrandr (resolution changes)]),
67 [if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_Xrandr_h=no; fi])
68 AC_ARG_WITH(xrender, AS_HELP_STRING([--without-xrender],[do not use the Xrender extension]),
69 [if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_Xrender_h=no; fi])
70 AC_ARG_WITH(xshape, AS_HELP_STRING([--without-xshape],[do not use the Xshape extension]),
71 [if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_shape_h=no; fi])
72 AC_ARG_WITH(xshm, AS_HELP_STRING([--without-xshm],[do not use XShm (shared memory extension)]),
73 [if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_XShm_h=no; fi])
74 AC_ARG_WITH(xslt, AS_HELP_STRING([--without-xslt],[do not use XSLT]))
75 AC_ARG_WITH(xvidmode, AS_HELP_STRING([--without-xvidmode],[do not use XFree video mode extension]),
76 [if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_xf86vmode_h=no; fi])
77
78 AC_ARG_WITH(wine-tools,AS_HELP_STRING([--with-wine-tools=DIR],[use Wine tools from directory DIR]))
79
80 AC_CANONICAL_HOST
81 case $host in
82 x86_64*linux*)
83 if test "x$enable_win64" != "xyes"
84 then
85 test -n "$CC" || CC="gcc -m32"
86 test -n "$CXX"|| CXX="g++ -m32"
87 test -n "$LD" || LD="ld -m elf_i386"
88 test -n "$AS" || AS="as --32"
89 host_cpu="i386"
90 fi
91 ;;
92 esac
93
94 dnl enable_win16 defaults to yes on x86, to no on other CPUs
95 case $host_cpu in
96 *i[[3456789]]86*)
97 if test "x$enable_win16" != "xno"
98 then
99 enable_win16="yes"
100 fi
101 ;;
102 esac
103
104 AC_SUBST(WIN16_FILES,"\$(WIN16_FILES)")
105 AC_SUBST(WIN16_INSTALL,"\$(WIN16_INSTALL)")
106 if test "x$enable_win16" != "xyes"
107 then
108 WIN16_FILES=""
109 WIN16_INSTALL=""
110 fi
111
112 dnl check for out of tree build with unclean source tree
113 case "$srcdir" in
114 .) ;;
115 *) if test -f "$srcdir/Makefile" -o -f "$srcdir/include/config.h"; then
116 AC_MSG_ERROR([you are building out of the source tree, but the source tree contains object files.
117 You need to run 'make distclean' in the source tree first.])
118 fi ;;
119 esac
120
121 dnl **** Check for some programs ****
122
123 AC_PROG_MAKE_SET
124 AC_PROG_CC
125 AC_PROG_CXX
126 dnl We can't use AC_PROG_CPP for winegcc, it uses by default $(CC) -E
127 AC_CHECK_TOOL(CPPBIN,cpp,cpp)
128
129 AC_CACHE_CHECK([for the directory containing the Wine tools], wine_cv_toolsdir,
130 [if test -z "$with_wine_tools"; then
131 if test "$cross_compiling" = "yes"; then
132 AC_MSG_ERROR([you must use the --with-wine-tools option when cross-compiling.])
133 else
134 wine_cv_toolsdir="\$(TOPOBJDIR)"
135 fi
136 elif test -d "$with_wine_tools/tools/winebuild"; then
137 case $with_wine_tools in
138 /*) wine_cv_toolsdir="$with_wine_tools" ;;
139 *) wine_cv_toolsdir="\$(TOPOBJDIR)/$with_wine_tools" ;;
140 esac
141 else
142 AC_MSG_ERROR([could not find Wine tools in $with_wine_tools.])
143 fi])
144 AC_SUBST(TOOLSDIR,$wine_cv_toolsdir)
145
146 AC_PATH_XTRA
147
148 dnl Check for flex
149 AC_CHECK_PROGS(FLEX,flex,none)
150 if test "$FLEX" = "none"
151 then
152 AC_MSG_ERROR([no suitable flex found. Please install the 'flex' package.])
153 fi
154
155 dnl Check for bison
156 AC_CHECK_PROGS(BISON,bison,none)
157 if test "$BISON" = "none"
158 then
159 AC_MSG_ERROR([no suitable bison found. Please install the 'bison' package.])
160 fi
161
162 AC_CHECK_TOOLS(AS,[gas as],as)
163 AC_CHECK_TOOL(LD,ld,ld)
164 AC_CHECK_TOOL(AR,ar,ar)
165 AC_SUBST(ARFLAGS,rc)
166 AC_PROG_RANLIB
167 AC_CHECK_TOOL(STRIP,strip,strip)
168 AC_CHECK_TOOL(WINDRES,windres,false)
169 AC_PROG_LN_S
170 WINE_PROG_LN
171 AC_PROG_EGREP
172 AC_PATH_PROG(LDCONFIG, ldconfig, true, [/sbin /usr/sbin $PATH])
173 AC_PROG_INSTALL
174 dnl Prepend src dir to install path dir if it's a relative path
175 case "$INSTALL" in
176 [[\\/$]]* | ?:[[\\/]]* ) ;;
177 *) INSTALL="\\\$(TOPSRCDIR)/$INSTALL" ;;
178 esac
179
180 dnl Check for lint
181 AC_CHECK_PROGS(LINT, lclint lint)
182 if test "$LINT" = "lint"
183 then
184 LINTFLAGS="$LINTFLAGS -errchk=%all,no%longptr64 -errhdr=%user -Ncheck=macro -Nlevel=4"
185 dnl LINTFLAGS='-D_SIZE_T "-Dsize_t=unsigned long" -errchk=longptr64'
186 fi
187 AC_SUBST(LINT)
188 AC_SUBST(LINTFLAGS)
189
190 dnl Check for various programs
191 AC_CHECK_PROGS(FONTFORGE, fontforge, false)
192 AC_CHECK_PROGS(PKG_CONFIG, pkg-config, false)
193 AC_CHECK_PROGS(RSVG, rsvg, false)
194 AC_CHECK_PROGS(ICOTOOL, icotool, false)
195
196 if test "${enable_maintainer_mode+set}" = set
197 then
198 if test "$FONTFORGE" = "false"; then WINE_WARNING([fontforge is missing, fonts can't be rebuilt.]); fi
199 if test "$RSVG" = "false"; then WINE_WARNING([rsvg is missing, icons can't be rebuilt.]); fi
200 if test "$ICOTOOL" = "false"; then WINE_WARNING([icotool is missing, icons can't be rebuilt.]); fi
201 fi
202
203 case $host_cpu in
204 *i[[3456789]]86*)
205 AC_PATH_PROG(PRELINK, prelink, false, [/sbin /usr/sbin $PATH])
206 ;;
207 esac
208
209 dnl **** Check for some libraries ****
210
211 dnl Check for -li386 for NetBSD and OpenBSD
212 AC_CHECK_LIB(i386,i386_set_ldt)
213 dnl Check for -lossaudio for NetBSD
214 AC_CHECK_LIB(ossaudio,_oss_ioctl)
215 dnl Check for -lpthread
216 AC_CHECK_LIB(pthread,pthread_create,AC_SUBST(LIBPTHREAD,"-lpthread"))
217
218 AC_SUBST(XLIB,"")
219 AC_SUBST(XFILES,"")
220 AC_SUBST(OPENGLFILES,"")
221 AC_SUBST(GLU32FILES,"")
222 AC_SUBST(OPENGL_LIBS,"")
223 AC_SUBST(QUARTZFILES,"")
224
225 dnl **** Check for header files ****
226
227 AC_CHECK_HEADERS(\
228 AudioUnit/AudioUnit.h \
229 Carbon/Carbon.h \
230 CoreAudio/CoreAudio.h \
231 DiskArbitration/DiskArbitration.h \
232 IOKit/IOKitLib.h \
233 alsa/asoundlib.h \
234 arpa/inet.h \
235 arpa/nameser.h \
236 asm/types.h \
237 capi20.h \
238 cups/cups.h \
239 curses.h \
240 direct.h \
241 dlfcn.h \
242 elf.h \
243 float.h \
244 fontconfig/fontconfig.h \
245 getopt.h \
246 ieeefp.h \
247 io.h \
248 jack/jack.h \
249 jpeglib.h \
250 lber.h \
251 lcms.h \
252 lcms/lcms.h \
253 ldap.h \
254 libaudioio.h \
255 link.h \
256 linux/cdrom.h \
257 linux/compiler.h \
258 linux/hdreg.h \
259 linux/input.h \
260 linux/ioctl.h \
261 linux/joystick.h \
262 linux/major.h \
263 linux/param.h \
264 linux/serial.h \
265 linux/ucdrom.h \
266 mach/mach.h \
267 mach/machine.h \
268 machine/cpu.h \
269 machine/limits.h \
270 machine/soundcard.h \
271 mntent.h \
272 ncurses.h \
273 netdb.h \
274 netinet/in.h \
275 netinet/in_systm.h \
276 netinet/tcp.h \
277 netinet/tcp_fsm.h \
278 openssl/err.h \
279 openssl/ssl.h \
280 png.h \
281 poll.h \
282 process.h \
283 pthread.h \
284 pwd.h \
285 regex.h \
286 sched.h \
287 scsi/scsi.h \
288 scsi/scsi_ioctl.h \
289 scsi/sg.h \
290 soundcard.h \
291 stdint.h \
292 strings.h \
293 sys/asoundlib.h \
294 sys/cdio.h \
295 sys/elf32.h \
296 sys/epoll.h \
297 sys/errno.h \
298 sys/event.h \
299 sys/exec_elf.h \
300 sys/filio.h \
301 sys/ioctl.h \
302 sys/ipc.h \
303 sys/limits.h \
304 sys/link.h \
305 sys/lwp.h \
306 sys/mman.h \
307 sys/modem.h \
308 sys/msg.h \
309 sys/mtio.h \
310 sys/param.h \
311 sys/poll.h \
312 sys/prctl.h \
313 sys/ptrace.h \
314 sys/reg.h \
315 sys/resource.h \
316 sys/scsiio.h \
317 sys/shm.h \
318 sys/signal.h \
319 sys/socket.h \
320 sys/socketvar.h \
321 sys/sockio.h \
322 sys/soundcard.h \
323 sys/statvfs.h \
324 sys/strtio.h \
325 sys/syscall.h \
326 sys/sysctl.h \
327 sys/time.h \
328 sys/times.h \
329 sys/uio.h \
330 sys/un.h \
331 sys/vm86.h \
332 sys/wait.h \
333 syscall.h \
334 termios.h \
335 unistd.h \
336 utime.h \
337 valgrind/memcheck.h
338 )
339 AC_HEADER_STAT()
340
341 dnl **** Checks for headers that depend on other ones ****
342
343 AC_CHECK_HEADERS([sys/mount.h sys/statfs.h sys/user.h sys/vfs.h],,,
344 [#include <sys/types.h>
345 #ifdef HAVE_SYS_PARAM_H
346 # include <sys/param.h>
347 #endif])
348
349 AC_CHECK_HEADERS([netinet/in_pcb.h netinet/ip_var.h net/if.h net/if_arp.h net/if_dl.h net/if_types.h net/route.h netipx/ipx.h],,,
350 [#include <sys/types.h>
351 #ifdef HAVE_SYS_SOCKET_H
352 # include <sys/socket.h>
353 #endif
354 #ifdef HAVE_SYS_SOCKETVAR_H
355 # include <sys/socketvar.h>
356 #endif
357 #ifdef HAVE_NETINET_IN_H
358 # include <netinet/in.h>
359 #endif])
360
361 AC_CHECK_HEADERS([netinet/tcp_var.h],,,
362 [#include <sys/types.h>
363 #ifdef HAVE_SYS_SOCKET_H
364 # include <sys/socket.h>
365 #endif
366 #ifdef HAVE_SYS_SOCKETVAR_H
367 # include <sys/socketvar.h>
368 #endif
369 #ifdef HAVE_NETINET_IN_H
370 # include <netinet/in.h>
371 #endif
372 #ifdef HAVE_NETINET_TCP_H
373 # include <netinet/tcp.h>
374 #endif])
375
376 AC_CHECK_HEADERS([linux/ipx.h],,,
377 [#include <sys/types.h>
378 #ifdef HAVE_ASM_TYPES_H
379 # include <asm/types.h>
380 #endif
381 #ifdef HAVE_SYS_SOCKET_H
382 # include <sys/socket.h>
383 #endif])
384
385 AC_CHECK_HEADERS([resolv.h],,,
386 [#include <sys/types.h>
387 #ifdef HAVE_SYS_SOCKET_H
388 # include <sys/socket.h>
389 #endif
390 #ifdef HAVE_NETINET_IN_H
391 # include <netinet/in.h>
392 #endif
393 #ifdef HAVE_ARPA_NAMESER_H
394 # include <arpa/nameser.h>
395 #endif])
396
397 AC_CHECK_HEADERS(ucontext.h,,,[#include <signal.h>])
398
399 AC_CHECK_HEADERS([sys/thr.h],,,
400 [#include <sys/types.h>
401 #ifdef HAVE_UCONTEXT_H
402 #include <ucontext.h>
403 #endif])
404
405 AC_CHECK_HEADERS([pthread_np.h],,,
406 [#ifdef HAVE_PTHREAD_H
407 #include <pthread.h>
408 #endif])
409
410 AC_CHECK_HEADERS([linux/videodev.h],,,
411 [#ifdef HAVE_SYS_TIME_H
412 #include <sys/time.h>
413 #endif
414 #include <sys/types.h>
415 #ifdef HAVE_ASM_TYPES_H
416 #include <asm/types.h>
417 #endif])
418
419 dnl Check for broken kernel header that doesn't define __user
420 AC_CHECK_HEADERS([linux/capi.h],,,[#define __user])
421
422 dnl **** Check for working dll ****
423
424 AC_SUBST(DLLEXT,"")
425 AC_SUBST(DLLFLAGS,"-D_REENTRANT")
426 AC_SUBST(LDSHARED,"")
427 AC_SUBST(LDDLLFLAGS,"")
428 AC_SUBST(LIBEXT,"so")
429 AC_SUBST(IMPLIBEXT,"def")
430 AC_SUBST(LDRPATH_INSTALL,"")
431 AC_SUBST(LDRPATH_LOCAL,"")
432 WINE_PATH_LDD
433
434 case $host_os in
435 cygwin*|mingw32*)
436 AC_CHECK_TOOL(DLLTOOL,dlltool,false)
437 AC_CHECK_TOOL(DLLWRAP,dllwrap,false)
438 AC_CHECK_TOOL(MINGWAR,ar,false)
439 if test "$DLLWRAP" = "false"; then
440 LIBEXT="a"
441 else
442 dnl FIXME - check whether dllwrap works correctly...
443 LIBEXT="dll"
444 fi
445 IMPLIBEXT="a"
446 dnl We can't build 16-bit NE dlls
447 WIN16_FILES=""
448 WIN16_INSTALL=""
449 ;;
450 darwin*|macosx*)
451 DLLEXT=".so"
452 LIBEXT="dylib"
453 DLLFLAGS="$DLLFLAGS -fPIC"
454 LDDLLFLAGS="-bundle -multiply_defined suppress"
455 LIBWINE_LDFLAGS="-multiply_defined suppress"
456 LDSHARED="\$(CC) -dynamiclib"
457 STRIP="$STRIP -x"
458 LDRPATH_LOCAL="&& install_name_tool -change @executable_path/\`\$(RELPATH) \$(bindir) \$(libdir)\`/libwine.1.dylib @executable_path/\$(TOPOBJDIR)/libs/wine/libwine.1.dylib \$@ || \$(RM) \$@"
459 dnl declare needed frameworks
460 AC_SUBST(SECURITYLIB,"-framework Security -framework CoreFoundation")
461 AC_SUBST(COREFOUNDATIONLIB,"-framework CoreFoundation")
462 AC_SUBST(IOKITLIB,"-framework IOKit -framework CoreFoundation")
463 AC_SUBST(LDEXECFLAGS,["-image_base 0x7bf00000 -Wl,-segaddr,WINE_DOS,0x00000000,-segaddr,WINE_SHARED_HEAP,0x7f000000"])
464 if test "$ac_cv_header_DiskArbitration_DiskArbitration_h" = "yes"
465 then
466 dnl DiskArbitration API is not public on Darwin < 8.0, use it only if header found
467 AC_SUBST(DISKARBITRATIONLIB,"-framework DiskArbitration -framework CoreFoundation")
468 fi
469 if test "$ac_cv_header_CoreAudio_CoreAudio_h" = "yes" -a "$ac_cv_header_AudioUnit_AudioUnit_h" = "yes"
470 then
471 dnl CoreServices needed by AudioUnit
472 AC_SUBST(COREAUDIO,"-framework CoreAudio -framework AudioUnit -framework CoreServices -framework AudioToolbox -framework CoreMIDI")
473 fi
474 case $host_cpu in
475 *powerpc*)
476 LDDLLFLAGS="$LDDLLFLAGS -read_only_relocs warning" dnl FIXME
477 ;;
478 esac
479 dnl Enable quartz driver on Mac OS X
480 if test "$ac_cv_header_Carbon_Carbon_h" = "yes"
481 then
482 AC_SUBST(CARBONLIB,"-framework Carbon")
483 QUARTZFILES='$(QUARTZFILES)'
484 fi
485 ;;
486 *)
487 DLLFLAGS="$DLLFLAGS -fPIC"
488 DLLEXT=".so"
489 AC_CACHE_CHECK([whether we can build a GNU style ELF dll], ac_cv_c_dll_gnuelf,
490 [WINE_TRY_SHLIB_FLAGS([-fPIC -shared -Wl,-Bsymbolic],
491 ac_cv_c_dll_gnuelf="yes",ac_cv_c_dll_gnuelf="no")])
492 if test "$ac_cv_c_dll_gnuelf" = "yes"
493 then
494 LDSHARED="\$(CC) -shared"
495 LDDLLFLAGS="-shared -Wl,-Bsymbolic"
496 WINE_TRY_CFLAGS([-fPIC -shared -Wl,-soname,confest.so.1],
497 [LDSHARED="\$(CC) -shared \$(SONAME:%=-Wl,-soname,%)"],
498 [WINE_TRY_CFLAGS([-fPIC -shared -Wl,-h,confest.so.1],
499 [LDSHARED="\$(CC) -shared \$(SONAME:%=-Wl,-h,%)"])])
500
501 WINE_TRY_CFLAGS([-fPIC -shared -Wl,-Bsymbolic,-z,defs], [LDDLLFLAGS="$LDDLLFLAGS,-z,defs"])
502
503 WINE_TRY_CFLAGS([-fPIC -shared -Wl,-Bsymbolic,-init,__wine_spec_init,-fini,__wine_spec_fini],
504 [LDDLLFLAGS="$LDDLLFLAGS,-init,__wine_spec_init,-fini,__wine_spec_fini"])
505
506 echo '{ global: *; };' >conftest.map
507 WINE_TRY_CFLAGS([-fPIC -shared -Wl,--version-script=conftest.map],
508 [LDSHARED="$LDSHARED \$(VERSCRIPT:%=-Wl,--version-script=%)"])
509 rm -f conftest.map
510
511 WINE_TRY_CFLAGS([-fPIC -Wl,--export-dynamic],
512 [AC_SUBST(LDEXECFLAGS,["-Wl,--export-dynamic"])])
513
514 WINE_TRY_CFLAGS([-fPIC -Wl,--rpath,\$ORIGIN/../lib],
515 [LDRPATH_INSTALL="-Wl,--rpath,\\\$\$ORIGIN/\`\$(RELPATH) \$(bindir) \$(libdir)\`"
516 LDRPATH_LOCAL="-Wl,--rpath,\\\$\$ORIGIN/\$(TOPOBJDIR)/libs/wine"],
517 [WINE_TRY_CFLAGS([-fPIC -Wl,-R,\$ORIGIN/../lib],
518 [LDRPATH_INSTALL="-Wl,-R,\\\$\$ORIGIN/\`\$(RELPATH) \$(bindir) \$(libdir)\`"
519 LDRPATH_LOCAL="-Wl,-R,\\\$\$ORIGIN/\$(TOPOBJDIR)/libs/wine"])])
520
521 WINE_TRY_CFLAGS([-Wl,--enable-new-dtags],
522 [LDRPATH_INSTALL="$LDRPATH_INSTALL -Wl,--enable-new-dtags"])
523
524 case $host_cpu in
525 *i[[3456789]]86* | x86_64)
526 WINE_TRY_CFLAGS([-Wl,--section-start,.interp=0x7bf00400],
527 [LDEXECFLAGS="$LDEXECFLAGS -Wl,--section-start,.interp=0x7bf00400"])
528 ;;
529 esac
530
531 else
532 AC_CACHE_CHECK(whether we can build a UnixWare (Solaris) dll, ac_cv_c_dll_unixware,
533 [WINE_TRY_SHLIB_FLAGS([-fPIC -Wl,-G,-h,conftest.so.1.0,-B,symbolic],
534 ac_cv_c_dll_unixware="yes",ac_cv_c_dll_unixware="no")])
535 if test "$ac_cv_c_dll_unixware" = "yes"
536 then
537 LDSHARED="\$(CC) -Wl,-G \$(SONAME:%=-Wl,-h,%)"
538 LDDLLFLAGS="-Wl,-G,-B,symbolic"
539
540 else
541 AC_CACHE_CHECK(whether we can build an HP-UX dll, ac_cv_c_dll_hpux,
542 [WINE_TRY_SHLIB_FLAGS([-shared], ac_cv_c_dll_hpux="yes", ac_cv_c_dll_hpux="no")])
543 if test "$ac_cv_c_dll_hpux" = "yes"
544 then
545 LIBEXT="sl"
546 DLLEXT=".sl"
547 LDDLLFLAGS="-shared -fPIC"
548 LDSHARED="\$(CC) -shared"
549 fi
550 fi
551 fi
552
553 dnl Check for cross compiler to build test programs
554 AC_SUBST(CROSSTEST,"")
555 if test "$cross_compiling" = "no"
556 then
557 WINE_CHECK_MINGW_PROG(CROSSCC,gcc,false)
558 WINE_CHECK_MINGW_PROG(DLLTOOL,dlltool,false)
559 WINE_CHECK_MINGW_PROG(CROSSWINDRES,windres,false)
560 WINE_CHECK_MINGW_PROG(MINGWAR,ar,false)
561 if test "$CROSSCC" != "false"; then CROSSTEST="\$(CROSSTEST)"; fi
562 fi
563 ;;
564 esac
565
566 if test "$LIBEXT" = "a"; then
567 AC_MSG_ERROR(
568 [could not find a way to build shared libraries.
569 It is currently not possible to build Wine without shared library
570 (.so) support to allow transparent switch between .so and .dll files.
571 If you are using Linux, you will need a newer binutils.]
572 )
573 fi
574
575 dnl **** Check for X11 ****
576
577 if test "$have_x" = "yes"
578 then
579 XLIB="-lXext -lX11"
580 ac_save_CPPFLAGS="$CPPFLAGS"
581 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
582
583 WINE_CHECK_SONAME(X11,XCreateWindow,,,[$X_LIBS $X_EXTRA_LIBS])
584 WINE_CHECK_SONAME(Xext,XextCreateExtension,,,[$X_LIBS -lX11 $X_EXTRA_LIBS])
585
586 dnl *** All of the following tests require X11/Xlib.h
587 AC_CHECK_HEADERS([X11/Xlib.h \
588 X11/XKBlib.h \
589 X11/Xutil.h \
590 X11/Xcursor/Xcursor.h \
591 X11/extensions/shape.h \
592 X11/extensions/XInput.h \
593 X11/extensions/XShm.h \
594 X11/extensions/Xcomposite.h \
595 X11/extensions/Xinerama.h \
596 X11/extensions/Xrandr.h \
597 X11/extensions/Xrender.h \
598 X11/extensions/xf86vmode.h],,,
599 [#ifdef HAVE_X11_XLIB_H
600 # include <X11/Xlib.h>
601 #endif
602 #ifdef HAVE_X11_XUTIL_H
603 # include <X11/Xutil.h>
604 #endif])
605
606 dnl *** Check for X keyboard extension
607 if test "$ac_cv_header_X11_XKBlib_h" = "yes"
608 then
609 AC_CHECK_LIB(X11, XkbQueryExtension,
610 AC_DEFINE(HAVE_XKB, 1, [Define if you have the XKB extension]),,
611 $X_LIBS -lXext -lX11 $X_EXTRA_LIBS)
612 fi
613
614 dnl *** Check for X cursor
615 if test "$ac_cv_header_X11_Xcursor_Xcursor_h" = "yes"
616 then
617 WINE_CHECK_SONAME(Xcursor,XcursorImageLoadCursor,,,[$X_LIBS -lXext -lX11 $X_EXTRA_LIBS])
618 fi
619 WINE_NOTICE_WITH(xcursor,[test "x$ac_cv_lib_soname_Xcursor" = "x"],
620 [libxcursor development files not found, the Xcursor extension won't be supported.])
621
622 dnl *** Check for X input extension
623 if test "$ac_cv_header_X11_extensions_XInput_h" = "yes"
624 then
625 WINE_CHECK_SONAME(Xi,XOpenDevice,,,[$X_LIBS -lXext -lX11 $X_EXTRA_LIBS])
626 fi
627 WINE_NOTICE_WITH(xinput,[test "x$ac_cv_lib_soname_Xi" = "x"],
628 [libxi development files not found, the Xinput extension won't be supported.])
629
630 dnl *** Check for X Shm extension
631 if test "$ac_cv_header_X11_extensions_XShm_h" = "yes"
632 then
633 AC_CHECK_LIB(Xext, XShmQueryExtension,
634 AC_DEFINE(HAVE_LIBXXSHM, 1, [Define if you have the X Shm extension]),,
635 $X_LIBS -lXext -lX11 $X_EXTRA_LIBS)
636 fi
637 WINE_NOTICE_WITH(xshm,[test "$ac_cv_lib_Xext_XShmQueryExtension" != "yes"],
638 [XShm development files not found, X Shared Memory won't be supported.])
639
640 dnl *** Check for X shape extension
641 if test "$ac_cv_header_X11_extensions_shape_h" = "yes"
642 then
643 AC_CHECK_LIB(Xext,XShapeQueryExtension,
644 AC_DEFINE(HAVE_LIBXSHAPE, 1, [Define if you have the X Shape extension]),,
645 $X_LIBS -lXext -lX11 $X_EXTRA_LIBS)
646 fi
647 WINE_NOTICE_WITH(xshape,[test "$ac_cv_lib_Xext_XShapeQueryExtension" != "yes"],
648 [XShape development files not found, XShape won't be supported.])
649
650 dnl *** Check for XFree86 VMODE extension
651 if test "$ac_cv_header_X11_extensions_xf86vmode_h" = "yes"
652 then
653 AC_CHECK_LIB(Xxf86vm, XF86VidModeQueryExtension,
654 [ AC_DEFINE(HAVE_LIBXXF86VM, 1, [Define if you have the Xxf86vm library])
655 X_PRE_LIBS="$X_PRE_LIBS -lXxf86vm"
656 ],,
657 $X_LIBS -lXext -lX11 $X_EXTRA_LIBS)
658 fi
659 WINE_NOTICE_WITH(xvidmode,[test "$ac_cv_lib_Xxf86vm_XF86VidModeQueryExtension" != "yes"],
660 [libXxf86vm development files not found, XFree86 Vidmode won't be supported.])
661
662 dnl *** Check for Transform functions in Xrender
663 if test "$ac_cv_header_X11_extensions_Xrender_h" = "yes" -a "x$ac_cv_lib_soname_X11" != "x" -a "x$ac_cv_lib_soname_Xext" != "x"
664 then
665 WINE_CHECK_SONAME(Xrender,XRenderQueryExtension,
666 [AC_CHECK_LIB(Xrender,XRenderSetPictureTransform,
667 [AC_DEFINE(HAVE_XRENDERSETPICTURETRANSFORM, 1,
668 [Define if Xrender has the XRenderSetPictureTransform function])],,
669 [$X_LIBS -lXext -lX11 $X_EXTRA_LIBS])],,[$X_LIBS -lXext -lX11 $X_EXTRA_LIBS])
670
671 fi
672 WINE_NOTICE_WITH(xrender,[test "x$ac_cv_lib_soname_Xrender" = "x"],
673 [libxrender development files not found, XRender won't be supported.])
674
675 dnl *** Check for X RandR extension
676 if test "$ac_cv_header_X11_extensions_Xrandr_h" = "yes" -a "x$ac_cv_lib_soname_Xrender" != "x"
677 then
678 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <X11/Xlib.h>
679 #include <X11/extensions/Xrandr.h>]], [[static typeof(XRRSetScreenConfigAndRate) * func;]])],
680 [WINE_CHECK_SONAME(Xrandr,XRRQueryExtension,,,[$X_LIBS -lXext -lX11 $X_EXTRA_LIBS])])
681 fi
682 WINE_NOTICE_WITH(xrandr,[test "x$ac_cv_lib_soname_Xrandr" = "x"],
683 [libxrandr development files not found, XRandr won't be supported.])
684
685 dnl *** Check for Xinerama extension
686 if test "$ac_cv_header_X11_extensions_Xinerama_h" = "yes"
687 then
688 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <X11/Xlib.h>
689 #include <X11/extensions/Xinerama.h>]], [[static typeof(XineramaQueryScreens) * func;]])],
690 [WINE_CHECK_SONAME(Xinerama,XineramaQueryScreens,,,[$X_LIBS -lXext -lX11 $X_EXTRA_LIBS])])
691 fi
692 WINE_NOTICE_WITH(xinerama,[test "x$ac_cv_lib_soname_Xinerama" = "x"],
693 [libxinerama development files not found, multi-monitor setups won't be supported.])
694
695 dnl *** Check for X Composite extension
696 if test "$ac_cv_header_X11_extensions_Xcomposite_h" = "yes"
697 then
698 WINE_CHECK_SONAME(Xcomposite,XCompositeRedirectWindow,,,[$X_LIBS -lXext -lX11 $X_EXTRA_LIBS])
699 fi
700 WINE_NOTICE_WITH(xcomposite,[test "x$ac_cv_lib_soname_Xcomposite" = "x"],
701 [libxcomposite development files not found, Xcomposite won't be supported.])
702
703 dnl *** Check for XICCallback struct
704 AC_CHECK_MEMBERS([XICCallback.callback],,,
705 [#ifdef HAVE_X11_XLIB_H
706 #include <X11/Xlib.h>
707 #endif])
708
709 dnl *** End of X11/Xlib.h check
710
711 dnl Check for the presence of OpenGL
712 opengl_msg=""
713 if test "x$with_opengl" != "xno"
714 then
715 AC_CHECK_HEADERS(GL/gl.h GL/glx.h GL/glext.h GL/glu.h,,,
716 [#ifdef HAVE_GL_GLX_H
717 # include <GL/glx.h>
718 #endif])
719 if test "$ac_cv_header_GL_gl_h" = "yes" -a "$ac_cv_header_GL_glx_h" = "yes"
720 then
721 dnl Check for some problems due to old Mesa versions
722 AC_CACHE_CHECK([for up-to-date OpenGL version], wine_cv_opengl_header_version_OK,
723 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <GL/gl.h>]], [[GLenum test = GL_UNSIGNED_SHORT_5_6_5;]])],
724 [wine_cv_opengl_header_version_OK="yes"],
725 [wine_cv_opengl_header_version_OK="no"]))
726
727 if test "$wine_cv_opengl_header_version_OK" = "yes"
728 then
729 dnl Check for the presence of the library
730 WINE_CHECK_SONAME(GL,glXCreateContext,
731 [OPENGL_LIBS="-lGL"
732 OPENGLFILES='$(OPENGLFILES)'
733 AC_DEFINE(HAVE_OPENGL, 1, [Define if OpenGL is present on the system])],
734 [WINE_CHECK_SONAME(GL,glXCreateContext,
735 [OPENGL_LIBS="-Xlinker -dylib_file -Xlinker /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib -lGL"
736 OPENGLFILES='$(OPENGLFILES)'
737 AC_DEFINE(HAVE_OPENGL, 1, [Define if OpenGL is present on the system])],
738 [if test -f /usr/X11R6/lib/libGL.a
739 then
740 opengl_msg="/usr/X11R6/lib/libGL.a is present on your system.
741 This probably prevents linking to OpenGL. Try deleting the file and restarting configure."
742 else
743 opengl_msg="No OpenGL library found on this system."
744 fi],
745 $X_LIBS -lXext -lX11 -lm $X_EXTRA_LIBS -dylib_file /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib)],
746 $X_LIBS -lXext -lX11 -lm $X_EXTRA_LIBS)
747 if test "$ac_cv_header_GL_glu_h" = "yes"
748 then
749 WINE_CHECK_SONAME(GLU,gluLookAt,[GLU32FILES='$(GLU32FILES)'],,
750 [$OPENGL_LIBS $X_LIBS $X_PRE_LIBS -lXext -lX11 -lm $X_EXTRA_LIBS])
751 fi
752 WINE_NOTICE_WITH(glu,[test "x$ac_cv_lib_soname_GLU" = "x"],
753 [libGLU development files not found, GLU won't be supported.])
754 else
755 opengl_msg="Old Mesa headers detected. Consider upgrading your Mesa libraries."
756 fi
757 else
758 opengl_msg="OpenGL development headers not found."
759 fi
760 fi
761 WINE_WARNING_WITH(opengl,[test -n "$opengl_msg"],[$opengl_msg
762 OpenGL and Direct3D won't be supported.])
763
764 dnl **** Check for NAS ****
765 AC_SUBST(NASLIBS,"")
766 AC_CHECK_HEADERS(audio/audiolib.h,
767 [AC_CHECK_HEADERS(audio/soundlib.h,,,[#include <audio/audiolib.h>])
768 AC_CHECK_LIB(audio,AuCreateFlow,
769 [AC_DEFINE(HAVE_NAS,1,[Define if you have NAS including devel headers])
770 AC_CHECK_LIB(Xau,XauGetBestAuthByAddr,
771 [NASLIBS="-lXau -laudio -lXt $X_LIBS -lXext -lX11 $X_EXTRA_LIBS"],
772 [NASLIBS="-laudio -lXt $X_LIBS -lXext -lX11 $X_EXTRA_LIBS"],
773 [$X_LIBS])
774 ],,
775 [-lXt $X_LIBS -lXext -lX11 $X_EXTRA_LIBS])])
776
777 CPPFLAGS="$ac_save_CPPFLAGS"
778 XFILES='$(XFILES)'
779 else
780 XLIB=""
781 X_CFLAGS=""
782 X_LIBS=""
783 fi
784 WINE_WARNING_WITH(x,[test "x$XLIB" = "x"],[X development files not found. Wine will be built
785 without X support, which probably isn't what you want. You will need to install
786 development packages of Xlib/Xfree86 at the very least.])
787
788 dnl **** Check for libxml2 ****
789
790 AC_SUBST(XML2LIBS,"")
791 AC_SUBST(XML2INCL,"")
792 AC_SUBST(XSLTLIBS,"")
793 AC_SUBST(XSLTINCL,"")
794 if test "x$with_xml" != "xno"
795 then
796 ac_save_CPPFLAGS="$CPPFLAGS"
797 if test "$PKG_CONFIG" != "false"
798 then
799 ac_xml_libs="`$PKG_CONFIG --libs libxml-2.0 2>/dev/null`"
800 ac_xml_cflags="`$PKG_CONFIG --cflags libxml-2.0 2>/dev/null`"
801 else
802 ac_xml_libs="`xml2-config --libs 2>/dev/null`"
803 ac_xml_cflags="`xml2-config --cflags 2>/dev/null`"
804 fi
805 CPPFLAGS="$CPPFLAGS $ac_xml_cflags"
806 AC_CHECK_HEADERS(libxml/parser.h,
807 [AC_CHECK_LIB(xml2, xmlParseMemory,
808 [AC_DEFINE(HAVE_LIBXML2, 1, [Define if you have the libxml2 library])
809 XML2LIBS="$ac_xml_libs"
810 XML2INCL="$ac_xml_cflags"],,$ac_xml_libs)
811 AC_CHECK_LIB(xml2, xmlReadMemory,
812 [AC_DEFINE(HAVE_XMLREADMEMORY,1,[Define if libxml2 has the xmlReadMemory function])],,$ac_xml_libs)
813 AC_CHECK_LIB(xml2, xmlNewDocPI,
814 [AC_DEFINE(HAVE_XMLNEWDOCPI,1,[Define if libxml2 has the xmlNewDocPI function])],,$ac_xml_libs)
815 ])
816 CPPFLAGS="$ac_save_CPPFLAGS"
817 fi
818 WINE_NOTICE_WITH(xml,[test "$ac_cv_lib_xml2_xmlParseMemory" != "yes"],
819 [libxml2 development files not found, XML won't be supported.])
820
821 if test "x$with_xslt" != "xno"
822 then
823 if test "$PKG_CONFIG" != "false"
824 then
825 ac_xslt_libs="`$PKG_CONFIG --libs libxslt 2>/dev/null`"
826 ac_xslt_cflags="`$PKG_CONFIG --cflags libxslt 2>/dev/null`"
827 else
828 ac_xslt_libs="`xslt-config --libs 2>/dev/null`"
829 ac_xslt_cflags="`xslt-config --cflags 2>/dev/null`"
830 fi
831 ac_save_CPPFLAGS="$CPPFLAGS"
832 CPPFLAGS="$CPPFLAGS $ac_xslt_cflags"
833 AC_CHECK_HEADERS([libxslt/pattern.h libxslt/transform.h],,,
834 [#ifdef HAVE_LIBXSLT_PATTERN_H
835 # include <libxslt/pattern.h>
836 #endif])
837 CPPFLAGS="$ac_save_CPPFLAGS"
838 if test "$ac_cv_header_libxslt_transform_h" = "yes"
839 then
840 AC_CHECK_LIB(xslt, xsltCompilePattern,
841 [AC_DEFINE(HAVE_LIBXSLT, 1, [Define if you have the libxslt library])
842 XSLTLIBS="$ac_xslt_libs"
843 XSLTINCL="$ac_xslt_cflags"
844 ac_save_LIBS="$LIBS"
845 LIBS="$LIBS $ac_xslt_libs"
846 AC_CHECK_FUNCS(xsltInit)
847 LIBS="$ac_save_LIBS"],,$ac_xslt_libs)
848 fi
849 fi
850 WINE_NOTICE_WITH(xslt,[test "$ac_cv_lib_xslt_xsltCompilePattern" != "yes"],
851 [libxslt development files not found, xslt won't be supported.])
852
853 dnl **** Check for libhal ****
854 AC_SUBST(HALINCL,"")
855 if test "x$with_hal" != "xno" -a "$PKG_CONFIG" != "false"
856 then
857 ac_save_CPPFLAGS="$CPPFLAGS"
858 ac_hal_libs="`$PKG_CONFIG --libs hal 2>/dev/null`"
859 ac_hal_cflags="`$PKG_CONFIG --cflags hal 2>/dev/null`"
860 CPPFLAGS="$CPPFLAGS $ac_hal_cflags"
861 AC_CHECK_HEADERS([dbus/dbus.h hal/libhal.h])
862 if test "$ac_cv_header_dbus_dbus_h" = "yes" -a "$ac_cv_header_hal_libhal_h" = "yes"
863 then
864 AC_CHECK_LIB(dbus-1, dbus_connection_close,
865 [WINE_CHECK_SONAME(hal, libhal_ctx_new,
866 [HALINCL="$ac_hal_cflags"],,[$ac_hal_libs])],,[$ac_hal_libs])
867 fi
868 CPPFLAGS="$ac_save_CPPFLAGS"
869 fi
870 WINE_NOTICE_WITH(hal,[test "x$ac_cv_lib_soname_hal" = "x"],
871 [libhal development files not found, no dynamic device support.])
872
873 dnl **** Check which curses lib to use ***
874 CURSESLIBS=""
875 if test "$ac_cv_header_ncurses_h" = "yes"
876 then
877 WINE_CHECK_SONAME(ncurses,waddch,[CURSESLIBS="-lncurses"])
878 elif test "$ac_cv_header_curses_h" = "yes"
879 then
880 WINE_CHECK_SONAME(curses,waddch,[CURSESLIBS="-lcurses"])
881 fi
882 ac_save_LIBS="$LIBS"
883 LIBS="$LIBS $CURSESLIBS"
884 AC_CHECK_FUNCS(mousemask)
885 LIBS="$ac_save_LIBS"
886 WINE_NOTICE_WITH(curses,[test "x$ac_cv_lib_soname_curses$ac_cv_lib_soname_ncurses" = "x"],
887 [lib(n)curses development files not found, curses won't be supported.])
888
889 dnl **** Check for SANE ****
890 AC_CHECK_PROG(sane_devel,sane-config,sane-config,no)
891 if test "$sane_devel" != "no" -a "x$with_sane" != "xno"
892 then
893 ac_sane_incl="`$sane_devel --cflags`"
894 ac_save_CPPFLAGS="$CPPFLAGS"
895 CPPFLAGS="$CPPFLAGS $ac_sane_incl"
896 AC_CHECK_HEADER(sane/sane.h,
897 [WINE_CHECK_SONAME(sane,sane_init,[AC_SUBST(SANEINCL,"$ac_sane_incl")])])
898 CPPFLAGS="$ac_save_CPPFLAGS"
899 fi
900 WINE_NOTICE_WITH(sane,[test "x$ac_cv_lib_soname_sane" = "x"],
901 [libsane development files not found, scanners won't be supported.])
902
903 dnl **** Check for libgphoto2 ****
904 AC_CHECK_PROG(gphoto2_devel,gphoto2-config,gphoto2-config,no)
905 AC_CHECK_PROG(gphoto2port_devel,gphoto2-port-config,gphoto2-port-config,no)
906 if test "$gphoto2_devel" != "no" -a "$gphoto2port_devel" != "no" -a "x$with_gphoto" != "xno"
907 then
908 ac_gphoto2_incl="`$gphoto2_devel --cflags` `$gphoto2port_devel --cflags`"
909 ac_gphoto2_libs=""
910 for i in `$gphoto2_devel --libs` `$gphoto2port_devel --libs`
911 do
912 case "$i" in
913 -L/usr/lib|-L/usr/lib64) ;;
914 -L*|-l*) ac_gphoto2_libs="$ac_gphoto2_libs $i";;
915 esac
916 done
917 ac_save_CPPFLAGS="$CPPFLAGS"
918 CPPFLAGS="$CPPFLAGS $ac_gphoto2_incl"
919 AC_CHECK_HEADER(gphoto2-camera.h,
920 [AC_CHECK_LIB(gphoto2,gp_camera_new,
921 [AC_DEFINE(HAVE_GPHOTO2, 1, [Define if we have libgphoto2 development environment])
922 AC_SUBST(GPHOTO2LIBS,"$ac_gphoto2_libs")
923 AC_SUBST(GPHOTO2INCL,"$ac_gphoto2_incl")],,
924 [$GPHOTO2LIBS])])
925 CPPFLAGS="$ac_save_CPPFLAGS"
926 fi
927 WINE_NOTICE_WITH(gphoto,[test "$ac_cv_lib_gphoto2_gp_camera_new" != "yes"],
928 [libgphoto2 development files not found, digital cameras won't be supported.])
929
930
931 dnl **** Check for resolver library ***
932 AC_SUBST(RESOLVLIBS,"")
933 if test "$ac_cv_header_resolv_h" = "yes"
934 then
935 AC_CHECK_LIB(resolv, res_query,
936 [AC_DEFINE(HAVE_RESOLV, 1, [Define if you have the resolver library and header])
937 RESOLVLIBS="-lresolv"])
938 fi
939
940 dnl **** Check for LittleCMS ***
941 AC_SUBST(LCMSLIBS,"")
942 if test "$ac_cv_header_lcms_h" = "yes" -o "$ac_cv_header_lcms_lcms_h" = "yes"
943 then
944 AC_CHECK_LIB(lcms, cmsOpenProfileFromFile,
945 [AC_DEFINE(HAVE_LCMS, 1, [Define if you have the LittleCMS development environment])
946 LCMSLIBS="-llcms"])
947 fi
948 WINE_NOTICE_WITH(cms,[test "$ac_cv_lib_lcms_cmsOpenProfileFromFile" != "yes"],
949 [liblcms development files not found, Color Management won't be supported.])
950
951 dnl **** Check for OpenLDAP ***
952 AC_SUBST(LDAPLIBS,"")
953 if test "$ac_cv_header_ldap_h" = "yes" -a "$ac_cv_header_lber_h" = "yes"
954 then
955 AC_CHECK_LIB(ldap_r, ldap_initialize,
956 [AC_CHECK_LIB(lber, ber_init,
957 [AC_DEFINE(HAVE_LDAP, 1, [Define if you have the OpenLDAP development environment])
958 LDAPLIBS="-lldap_r -llber"],,
959 [$LIBPTHREAD])],,
960 [$LIBPTHREAD])
961 WINE_CHECK_LIB_FUNCS(\
962 ldap_count_references \
963 ldap_first_reference \
964 ldap_next_reference \
965 ldap_parse_reference \
966 ldap_parse_sort_control \
967 ldap_parse_sortresponse_control \
968 ldap_parse_vlv_control \
969 ldap_parse_vlvresponse_control,
970 [$LDAPLIBS $LIBPTHREAD])
971 fi
972 WINE_NOTICE_WITH(ldap,[test "x$LDAPLIBS" = "x"],
973 [libldap (OpenLDAP) development files not found, LDAP won't be supported.])
974
975 dnl **** Check for FreeType 2 ****
976 AC_CHECK_PROGS(ft_devel,[freetype-config freetype2-config],false)
977 if test "$ft_devel" != "false"
978 then
979 ac_freetype_libs=`$ft_devel --libs`
980 ac_freetype_incl=`$ft_devel --cflags`
981 WINE_CHECK_SONAME(freetype,FT_Init_FreeType,[ft_lib=yes],[ft_lib=no],[$ac_freetype_libs])
982 if test "$ft_lib" = "yes"
983 then
984 ac_save_CPPFLAGS="$CPPFLAGS"
985 CPPFLAGS="$ac_freetype_incl $CPPFLAGS"
986 AC_CHECK_HEADERS(ft2build.h \
987 freetype/freetype.h \
988 freetype/ftglyph.h \
989 freetype/fttypes.h \
990 freetype/tttables.h \
991 freetype/ftnames.h \
992 freetype/ftsnames.h \
993 freetype/ttnameid.h \
994 freetype/ftoutln.h \
995 freetype/ftwinfnt.h \
996 freetype/ftmodapi.h \
997 freetype/internal/sfnt.h,,,
998 [#ifdef HAVE_FT2BUILD_H
999 # include <ft2build.h>
1000 #endif])
1001 AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <ft2build.h>
1002 #include <freetype/fttrigon.h>]])],[AC_DEFINE(HAVE_FREETYPE_FTTRIGON_H, 1,
1003 [Define if you have the <freetype/fttrigon.h> header file.])
1004 wine_cv_fttrigon=yes],[wine_cv_fttrigon=no])
1005 AC_CHECK_TYPES(FT_TrueTypeEngineType,,,[#include <freetype/ftmodapi.h>])
1006 ac_save_CFLAGS="$CFLAGS"
1007 CFLAGS="$CFLAGS $ac_freetype_libs"
1008 AC_CHECK_FUNCS(FT_Load_Sfnt_Table)
1009 CFLAGS="$ac_save_CFLAGS"
1010 CPPFLAGS="$ac_save_CPPFLAGS"
1011 dnl Check that we have at least freetype/freetype.h
1012 if test "$ac_cv_header_freetype_freetype_h" = "yes" -a "$wine_cv_fttrigon" = "yes"
1013 then
1014 AC_DEFINE(HAVE_FREETYPE, 1, [Define if FreeType 2 is installed])
1015 AC_SUBST(FREETYPELIBS,"$ac_freetype_libs")
1016 AC_SUBST(FREETYPEINCL,"$ac_freetype_incl")
1017 fi
1018 fi
1019 fi
1020
1021 dnl Only build the fonts dir if we have freetype
1022 if test "x$FREETYPELIBS" = "x"
1023 then
1024 WINE_WARNING([FreeType development files not found.
1025 Fonts will not be built. Dialog text may be invisible or unaligned.])
1026 else
1027 AC_SUBST(FONTSSUBDIRS,"fonts")
1028 fi
1029
1030 dnl **** Check for parport (currently Linux only) ****
1031 AC_CACHE_CHECK([for parport header/ppdev.h], ac_cv_c_ppdev,
1032 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <linux/ppdev.h>]], [[ioctl (1,PPCLAIM,0)]])],
1033 [ac_cv_c_ppdev="yes"],[ac_cv_c_ppdev="no"]))
1034 if test "$ac_cv_c_ppdev" = "yes"
1035 then
1036 AC_DEFINE(HAVE_PPDEV, 1, [Define if we can use ppdev.h for parallel port access])
1037 fi
1038
1039 dnl **** Check for va_copy ****
1040 AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy,
1041 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <stdarg.h>]], [[va_list ap1, ap2; va_copy(ap1,ap2);]])],
1042 [ac_cv_c_va_copy="yes"],[ac_cv_c_va_copy="no"])
1043 )
1044 if test "$ac_cv_c_va_copy" = "yes"
1045 then
1046 AC_DEFINE(HAVE_VA_COPY, 1, [Define if we have va_copy])
1047 fi
1048 AC_CACHE_CHECK([for __va_copy], ac_cv_c___va_copy,
1049 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <stdarg.h>]], [[va_list ap1, ap2; __va_copy(ap1,ap2);]])],
1050 [ac_cv_c___va_copy="yes"],[ac_cv_c___va_copy="no"])
1051 )
1052 if test "$ac_cv_c___va_copy" = "yes"
1053 then
1054 AC_DEFINE(HAVE___VA_COPY, 1, [Define if we have __va_copy])
1055 fi
1056
1057 dnl **** Check for sigsetjmp ****
1058 AC_CACHE_CHECK([for sigsetjmp], ac_cv_c_sigsetjmp,
1059 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <setjmp.h>]], [[sigjmp_buf buf;
1060 sigsetjmp( buf, 1 );
1061 siglongjmp( buf, 1 );]])],[ac_cv_c_sigsetjmp="yes"],[ac_cv_c_sigsetjmp="no"])
1062 )
1063 if test "$ac_cv_c_sigsetjmp" = "yes"
1064 then
1065 AC_DEFINE(HAVE_SIGSETJMP, 1, [Define to 1 if you have the sigsetjmp (and siglongjmp) function])
1066 fi
1067
1068 dnl **** Check for pthread_rwlock_t ****
1069 AC_CHECK_TYPES([pthread_rwlock_t, pthread_rwlockattr_t],,,[#define _GNU_SOURCE
1070 #include <pthread.h>])
1071
1072 dnl **** Check for pthread functions ****
1073 WINE_CHECK_LIB_FUNCS(\
1074 pthread_attr_get_np \
1075 pthread_getattr_np \
1076 pthread_get_stackaddr_np \
1077 pthread_get_stacksize_np,
1078 [$LIBPTHREAD])
1079
1080 dnl **** Check for EsounD ****
1081 AC_PATH_PROG(ESDCONFIG, esd-config)
1082 if test "x$with_esd" != xno -a "x$ESDCONFIG" != x -a "x$ESDCONFIG" != x'"$ESDCONFIG"';
1083 then
1084 ESD_CFLAGS=""
1085 for i in `$ESDCONFIG --cflags`
1086 do
1087 case "$i" in
1088 -I*) ESD_CFLAGS="$ESD_CFLAGS $i";;
1089 esac
1090 done
1091 ESD_LIBS=`$ESDCONFIG --libs`
1092 save_CFLAGS="$CFLAGS"
1093 CFLAGS="$CFLAGS $ESD_CFLAGS"
1094 AC_CHECK_LIB(esd,esd_open_sound,
1095 [AC_SUBST(ESDLIBS, $ESD_LIBS)
1096 AC_SUBST(ESDINCL, $ESD_CFLAGS)
1097 AC_DEFINE(HAVE_ESD, 1, [Define if you have EsounD sound server])])
1098 CFLAGS="$save_CFLAGS"
1099 fi
1100
1101 dnl **** Check for ALSA 1.x ****
1102 AC_SUBST(ALSALIBS,"")
1103 if test "$ac_cv_header_sys_asoundlib_h" = "yes" -o "$ac_cv_header_alsa_asoundlib_h" = "yes"
1104 then
1105 AC_CHECK_LIB(asound,snd_pcm_hw_params_get_access,
1106 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#ifdef HAVE_ALSA_ASOUNDLIB_H
1107 #include <alsa/asoundlib.h>
1108 #elif defined(HAVE_SYS_ASOUNDLIB_H)
1109 #include <sys/asoundlib.h>
1110 #endif]], [[int ret = snd_pcm_hw_params_get_access(NULL, NULL)]])],
1111 [AC_DEFINE(HAVE_ALSA,1,[Define if you have ALSA 1.x including devel headers])
1112 ALSALIBS="-lasound"],[])])
1113 fi
1114
1115 dnl **** Check for libaudioio (which can be used to get solaris audio support) ****
1116 AC_SUBST(AUDIOIOLIBS,"")
1117 if test "$ac_cv_header_libaudioio_h" = "yes"
1118 then
1119 AC_CHECK_LIB(audioio,AudioIOGetVersion,
1120 [AUDIOIOLIBS="-laudioio"
1121 AC_DEFINE(HAVE_LIBAUDIOIO, 1, [Define if you have libaudioIO])])
1122 fi
1123
1124 dnl **** Check for capi4linux ****
1125
1126 if test "$ac_cv_header_capi20_h" = "yes" -a "$ac_cv_header_linux_capi_h" = "yes"
1127 then
1128 WINE_CHECK_SONAME(capi20,capi20_register)
1129 fi
1130 WINE_NOTICE_WITH(capi,[test "x$ac_cv_lib_soname_capi20" = "x"],
1131 [libcapi20 development files not found, ISDN won't be supported.])
1132
1133 dnl **** Check for cups ****
1134 if test "$ac_cv_header_cups_cups_h" = "yes"
1135 then
1136 WINE_CHECK_SONAME(cups,cupsGetDefault)
1137 fi
1138 WINE_NOTICE_WITH(cups,[test "x$ac_cv_lib_soname_cups" = "x"],
1139 [libcups development files not found, CUPS won't be supported.])
1140
1141 dnl **** Check for jack ****
1142 if test "$ac_cv_header_jack_jack_h" = "yes"
1143 then
1144 WINE_CHECK_SONAME(jack,jack_client_new)
1145 fi
1146
1147 dnl **** Check for fontconfig ****
1148 if test "$ac_cv_header_fontconfig_fontconfig_h" = "yes"
1149 then
1150 WINE_CHECK_SONAME(fontconfig,FcInit)
1151 elif test -n "$X_CFLAGS" -a "x$with_fontconfig" != "xno"
1152 then
1153 dnl fontconfig is in the X directory on Mac OS X
1154 ac_save_CPPFLAGS="$CPPFLAGS"
1155 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
1156 $as_unset ac_cv_header_fontconfig_fontconfig_h
1157 AC_CHECK_HEADERS([fontconfig/fontconfig.h])
1158 CPPFLAGS="$ac_save_CPPFLAGS"
1159 if test "$ac_cv_header_fontconfig_fontconfig_h" = "yes"
1160 then
1161 AC_SUBST(FONTCONFIGINCL,"$X_CFLAGS")
1162 WINE_CHECK_SONAME(fontconfig,FcInit,,,[$X_LIBS])
1163 fi
1164 fi
1165 WINE_NOTICE_WITH(fontconfig,[test "x$ac_cv_lib_soname_fontconfig" = "x"],
1166 [fontconfig development files not found, fontconfig won't be supported.])
1167
1168 dnl **** Check for SSL ****
1169 if test "$ac_cv_header_openssl_err_h" = "yes" -a "$ac_cv_header_openssl_ssl_h" = "yes"
1170 then
1171 WINE_CHECK_SONAME(ssl,SSL_library_init)
1172 WINE_CHECK_SONAME(crypto,BIO_new_socket)
1173 fi
1174 WINE_NOTICE_WITH(openssl,[test "x$ac_cv_lib_soname_ssl" = "x"],
1175 [OpenSSL development files not found, SSL won't be supported.])
1176
1177 dnl **** Check for libjpeg ****
1178 if test "$ac_cv_header_jpeglib_h" = "yes"
1179 then
1180 WINE_CHECK_SONAME(jpeg,jpeg_start_decompress)
1181 fi
1182 WINE_NOTICE_WITH(jpeg,[test "x$ac_cv_lib_soname_jpeg" = "x"],
1183 [libjpeg development files not found, JPEG won't be supported.])
1184
1185 dnl **** Check for libpng ****
1186 if test "$ac_cv_header_png_h" = "yes"
1187 then
1188 WINE_CHECK_SONAME(png,png_create_read_struct,,,,[[libpng[[0-9]]*]])
1189 fi
1190 WINE_NOTICE_WITH(png,[test "x$ac_cv_lib_soname_png" = "x"],
1191 [libpng development files not found, PNG won't be supported.])
1192
1193 dnl **** Check for libodbc ****
1194 WINE_CHECK_SONAME(odbc,SQLConnect,,[AC_DEFINE_UNQUOTED(SONAME_LIBODBC,["libodbc.$LIBEXT"])])
1195
1196 dnl **** Check for any sound system ****
1197 if test "x$ALSALIBS$AUDIOIOLIBS$COREAUDIO$NASLIBS$ESD_LIBS$ac_cv_lib_soname_jack" = "x" -a \
1198 "$ac_cv_header_sys_soundcard_h" != "yes" -a \
1199 "$ac_cv_header_machine_soundcard_h" != "yes" -a \
1200 "$ac_cv_header_soundcard_h" != "yes" -a \
1201 "x$with_alsa$with_audioio$with_coreaudio$with_nas$with_esd$with_jack$with_oss" != xnonononononono
1202 then
1203 WINE_WARNING([No sound system was found. Windows applications will be silent.])
1204 fi
1205
1206 dnl **** Check for gcc specific options ****
1207
1208 AC_SUBST(EXTRACFLAGS,"")
1209 if test "x${GCC}" = "xyes"
1210 then
1211 EXTRACFLAGS="-Wall -pipe"
1212
1213 dnl Check for strength-reduce bug
1214 AC_CACHE_CHECK( [for gcc strength-reduce bug], ac_cv_c_gcc_strength_bug,
1215 AC_RUN_IFELSE([AC_LANG_PROGRAM([[int L[[4]] = {0,1,2,3};]],
1216 [[static int Array[[3]];
1217 unsigned int B = 3;
1218 int i;
1219 for(i=0; i<B; i++) Array[[i]] = i - 3;
1220 for(i=0; i<4 - 1; i++) L[[i]] = L[[i + 1]];
1221 L[[i]] = 4;
1222 exit( Array[[1]] != -2 || L[[2]] != 3)]])],
1223 [ac_cv_c_gcc_strength_bug="no"],[ac_cv_c_gcc_strength_bug="yes"],[ac_cv_c_gcc_strength_bug="yes"]) )
1224 if test "$ac_cv_c_gcc_strength_bug" = "yes"
1225 then
1226 EXTRACFLAGS="$EXTRACFLAGS -fno-strength-reduce"
1227 fi
1228
1229 dnl Check for some compiler flags
1230
1231 WINE_TRY_CFLAGS([-fshort-wchar],
1232 [AC_DEFINE(CC_FLAG_SHORT_WCHAR, "-fshort-wchar",
1233 [Specifies the compiler flag that forces a short wchar_t])])
1234 WINE_TRY_CFLAGS([-fno-strict-aliasing])
1235 WINE_TRY_CFLAGS([-Wdeclaration-after-statement])
1236 WINE_TRY_CFLAGS([-Wwrite-strings])
1237 WINE_TRY_CFLAGS([-Wtype-limits])
1238
1239 dnl Check for noisy string.h
1240 saved_CFLAGS="$CFLAGS"
1241 CFLAGS="$CFLAGS -Wpointer-arith -Werror"
1242 AC_CACHE_CHECK([for broken string.h that generates warnings], ac_cv_c_string_h_warnings,
1243 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <string.h>]], [[]])],[ac_cv_c_string_h_warnings=no],[ac_cv_c_string_h_warnings=yes]))
1244 CFLAGS="$saved_CFLAGS"
1245 if test "$ac_cv_c_string_h_warnings" = "no"
1246 then
1247 EXTRACFLAGS="$EXTRACFLAGS -Wpointer-arith"
1248 fi
1249
1250 AC_SUBST(BUILTINFLAG,"")
1251 saved_CFLAGS="$CFLAGS"
1252 CFLAGS="$CFLAGS -Werror"
1253 AC_CACHE_CHECK([for builtin wchar inlines], ac_cv_c_builtin_wchar_ctype,
1254 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[int iswlower(unsigned short);]])],[ac_cv_c_builtin_wchar_ctype=no],[ac_cv_c_builtin_wchar_ctype=yes]))
1255 CFLAGS="$saved_CFLAGS"
1256 if test "$ac_cv_c_builtin_wchar_ctype" = "yes"
1257 then
1258 BUILTINFLAG="-fno-builtin"
1259 fi
1260 fi
1261
1262 dnl **** Check how to define a function in assembly code ****
1263
1264 AC_CACHE_CHECK([how to define a function in assembly code], ac_cv_asm_func_def,
1265 WINE_TRY_ASM_LINK(
1266 ["\t.globl _ac_test\n\t.def _ac_test; .scl 2; .type 32; .endef\n_ac_test:\t.long 0"],,,
1267 ac_cv_asm_func_def=".def",
1268 [WINE_TRY_ASM_LINK(["\t.globl _ac_test\n\t.type _ac_test,@function\n_ac_test:\t.long 0"],,,
1269 ac_c