Fixed format strings.
[wine/multimedia.git] / configure.in
blobdffb4096e9c098115d3799fb37792039bd69799e
1 dnl Process this file with autoconf to produce a configure script.
2 dnl Author: Michael Patra   <micky@marie.physik.tu-berlin.de>
3 dnl                         <patra@itp1.physik.tu-berlin.de>
4 AC_REVISION([configure.in 1.00])
5 AC_INIT(controls/edit.c)                
6 AC_CONFIG_HEADER(include/config.h)
7 AC_CONFIG_AUX_DIR(tools)
9 dnl **** Command-line arguments ****
11 dnl Default values
12 LIBEXT=so       # library type .so or .a
13 TRACE_MSGS=yes  # the TRACE() macro
14 DEBUG_MSGS=yes  # the TRACE(), WARN(), and FIXME() macros.
15 CURSES=yes
16 OPENGL=normal
18 AC_ARG_ENABLE(dll,
19 [  --disable-dll           build static libraries instead of DLLs],
20 [if test "$enableval" = "no"; then LIBEXT="a"; fi])
22 AC_ARG_ENABLE(debug,
23 [  --disable-debug         compile out all debugging messages],
24 [if test "$enableval" = "no"; then DEBUG_MSGS="no"; fi])
26 AC_ARG_ENABLE(opengl,
27 [  --enable-opengl         force usage of OpenGL even if the latter is thread-safe],
28 [if test "$enableval" = "no"; then OPENGL="no"; elif test "$enableval" = "yes"; then OPENGL="yes"; fi])
30 AC_ARG_ENABLE(trace,
31 [  --disable-trace         compile out TRACE messages],
32 [if test "$enableval" = "no"; then TRACE_MSGS="no"; fi])
34 AC_ARG_WITH(curses,
35 [  --without-curses        do not use curses],
36 [if test "$withval" = "no"; then CURSES="no"; fi])
38 AC_ARG_WITH(reentrant-x,
39 [  --without-reentrant-x   compile for use with non-reentrant X libraries])
41 AC_SUBST(OPTIONS)
43 if test "$DEBUG_MSGS" = "no"
44 then
45     AC_DEFINE(NO_DEBUG_MSGS)
46     AC_DEFINE(NO_TRACE_MSGS)
47 else
48     if test "$TRACE_MSGS" = "no"
49     then
50         AC_DEFINE(NO_TRACE_MSGS)
51     fi
54 dnl **** Check for some programs ****
56 AC_PROG_MAKE_SET
57 AC_PROG_CC
58 AC_PROG_CPP
59 AC_PATH_XTRA
60 AC_PROG_YACC
61 AC_PROG_LEX
62 AC_CHECK_PROGS(XLEX,$LEX flex lex,none)
63 if test "$XLEX" = "none"
64 then
65         echo "*** Error: No suitable lex found. ***"
66         echo "    Please install the 'flex' package."
67         exit 1
69 AC_DECL_YYTEXT
70 AC_PROG_RANLIB
71 AC_PROG_INSTALL
72 AC_PROG_LN_S
73 AC_CHECK_PROG(C2MAN,c2man,c2man,\$(TOPSRCDIR)/tools/c2man.pl)
74 AC_PATH_PROG(LDCONFIG, ldconfig, true, /sbin:/usr/sbin:$PATH)
76 dnl Check for lint
77 AC_CHECK_PROGS(LINT, lclint lint)
78 if test "$LINT" = "lint"
79 then
80   LINTFLAGS="$LINTFLAGS -errchk=%all,no%longptr64 -errhdr=%user -Ncheck=macro -Nlevel=4"
81   dnl LINTFLAGS='-D_SIZE_T "-Dsize_t=unsigned long" -errchk=longptr64'
83 AC_SUBST(LINT)
84 AC_SUBST(LINTFLAGS)
86 dnl **** Check for some libraries ****
88 dnl Check for -lm for BeOS
89 AC_CHECK_LIB(m,sqrt)
90 dnl Check for -li386 for NetBSD and OpenBSD
91 AC_CHECK_LIB(i386,i386_set_ldt)
92 dnl Check for -lossaudio for NetBSD
93 AC_CHECK_LIB(ossaudio,_oss_ioctl)
94 dnl Check for -lw for Solaris
95 AC_CHECK_LIB(w,iswalnum)
96 dnl Check for -lnsl for Solaris
97 AC_CHECK_FUNCS(gethostbyname,, AC_CHECK_LIB(nsl, gethostbyname, X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl", AC_CHECK_LIB(socket, gethostbyname, X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl", , -lnsl), -lsocket))
98 dnl Check for -lsocket for Solaris
99 AC_CHECK_FUNCS(connect,,AC_CHECK_LIB(socket,connect))
100 dnl Check for -lxpg4 for FreeBSD
101 AC_CHECK_LIB(xpg4,setrunelocale)
102 dnl Check for -lmmap for OS/2
103 AC_CHECK_LIB(mmap,mmap)
104 dnl Check for openpty
105 AC_CHECK_FUNCS(openpty,,
106         AC_CHECK_LIB(util,openpty,
107                 AC_DEFINE(HAVE_OPENPTY)
108                 LIBS="$LIBS -lutil"
109         ))
111 AC_CHECK_HEADERS(dlfcn.h,
112         AC_CHECK_FUNCS(dlopen,
113                 AC_DEFINE(HAVE_DL_API),
114                 AC_CHECK_LIB(dl,dlopen,
115                         AC_DEFINE(HAVE_DL_API)
116                         LIBS="$LIBS -ldl",
117                         LIBEXT="a"
118                 )
119         ),
120         LIBEXT="a"
122 AC_SUBST(XLIB)
123 AC_SUBST(X_DLLS)
124 X_DLLS=""
125 AC_SUBST(XFILES)
126 XFILES=""
127 AC_SUBST(OPENGLFILES)
128 OPENGLFILES=""
129 AC_SUBST(OPENGL32_DLL)
130 OPENGL32_DLL=""
131 AC_SUBST(DGA_SRCS)
132 DGA_SRCS=""
133 AC_SUBST(DGA2_SRCS)
134 DGA2_SRCS=""
135 AC_SUBST(MESA_SRCS)
136 MESA_SRCS=""
137 if test "$have_x" = "yes"
138 then
139     XLIB="-lXext -lX11"
140     ac_save_CPPFLAGS="$CPPFLAGS"
141     CPPFLAGS="$CPPFLAGS $X_CFLAGS"
143     dnl *** Check for -lXpm
144     AC_CHECK_HEADERS(X11/xpm.h,
145       [ dnl *** If X11/xpm.h exists...
146         AC_CHECK_LIB(Xpm, XpmCreatePixmapFromData,
147           [ AC_DEFINE(HAVE_LIBXXPM) X_PRE_LIBS="$X_PRE_LIBS -lXpm"],,
148           $X_LIBS -lXext -lX11 $X_EXTRA_LIBS
149         )
150       ],
151       [ dnl *** If X11/xpm.h does not exist...
152         dnl NOTE: autoconf does not allow commas inside the third 
153         dnl       parameter to AC_CHECK_HEADERS, due to some quoting
154         dnl       magic it does.
155         echo "Redhat            :       xpm xpm-devel"
156         echo "Caldera OpenLinux :       xpm xpm-devel xpm-devel-static"
157         echo "SuSE              :       xpm"
158         echo "Debian/Corel Linux:       xpm4g xpm4g-dev"
159         echo
160         echo "Or get the sources from ftp.x.org and all its mirror sites from "
161         echo "the directory /contrib/libraries."
162         echo
163         exit 1
164       ]
165     )
167     dnl *** All three of the following tests require X11/Xlib.h
168     AC_CHECK_HEADERS(X11/Xlib.h,
169       [
170         dnl *** Check for X Shm extension
171         AC_CHECK_HEADERS(X11/extensions/XShm.h,
172             [ dnl *** If X11/extensions/XShm.h exists...
173               AC_CHECK_LIB(Xext, XShmQueryExtension,
174               AC_DEFINE(HAVE_LIBXXSHM),,
175               $X_LIBS -lXext -lX11 $X_EXTRA_LIBS)
176             ],
177             AC_MSG_WARN([Xshm extension not found!!])
178         )
180         dnl *** Check for X shape extension
181         AC_CHECK_HEADERS(X11/Xlib.h X11/extensions/shape.h,
182             [ dnl *** If X11/extensions/shape.h exists...
183               AC_CHECK_LIB(Xext,XShapeQueryExtension,
184               AC_DEFINE(HAVE_LIBXSHAPE),,
185               $X_LIBS -lXext -lX11 $X_EXTRA_LIBS)
186             ],
187             AC_MSG_WARN([XShape extension found!!])
188         )
189         
190         dnl *** Check for XFree86 DGA / DGA 2.0 extension
191         AC_CHECK_HEADERS(X11/extensions/xf86dga.h,
192             [ dnl *** If X11/extensions/xf86dga.h exists, check 
193               dnl *** for XDGAQueryExtension()...
194               AC_CHECK_LIB(Xxf86dga, XDGAQueryExtension,
195                 [ dnl *** If found...
196                   AC_DEFINE(HAVE_LIBXXF86DGA2)
197                   AC_DEFINE(HAVE_LIBXXF86DGA)
198                   X_PRE_LIBS="$X_PRE_LIBS -lXxf86dga"
199                   DGA_SRCS='$(DGA_SRCS)'
200                   DGA2_SRCS='$(DGA2_SRCS)'
201                ],
202                 [ dnl *** If not found, look for XF86DGAQueryExtension()
203                   dnl *** instead (DGA 2.0 not found)...
204                   AC_CHECK_LIB(Xxf86dga, XF86DGAQueryExtension,
205                     [ AC_DEFINE(HAVE_LIBXXF86DGA)
206                       X_PRE_LIBS="$X_PRE_LIBS -lXxf86dga"
207                       DGA_SRCS='$(DGA_SRCS)'
208                     ],,
209                     $X_LIBS -lXext -lX11 $X_EXTRA_LIBS
210                   )
211                 ],
212                 $X_LIBS -lXext -lX11 $X_EXTRA_LIBS
213               )
214             ],
215             AC_MSG_WARN([DGA extension not found!!])
216         )
218         dnl *** Check for XFree86 VMODE extension
219         AC_CHECK_HEADERS(X11/extensions/xf86vmode.h,
220             [ dnl *** If X11/extensions/xf86vmode.h exists...
221                 AC_CHECK_LIB(Xxf86vm, XF86VidModeQueryExtension,
222                   [ AC_DEFINE(HAVE_LIBXXF86VM)
223                      X_PRE_LIBS="$X_PRE_LIBS -lXxf86vm"
224                   ],,
225                   $X_LIBS -lXext -lX11 $X_EXTRA_LIBS
226                 )
227             ],
228             AC_MSG_WARN([XFree86 VMODE extension not found!!])
229         )
231         dnl *** Check for XVideo extension supporting XvImages
232         AC_CHECK_HEADERS(X11/extensions/Xvlib.h,
233             [ dnl *** If X11/extensions/Xvlib.h exists...
234                 AC_CHECK_LIB(Xv, XvShmCreateImage,
235                   [ AC_DEFINE(HAVE_XVIDEO)
236                      X_PRE_LIBS="$X_PRE_LIBS -lXv"
237                   ],,
238                   $X_LIBS -lXext -lX11 $X_EXTRA_LIBS
239                 )
240             ],
241             AC_MSG_WARN([XVideo extension not found !!])
242         )
244       ]
245     ) dnl *** End of X11/Xlib.h check
247     dnl Check for the presence of OpenGL
248     if test $OPENGL = "yes" -o $OPENGL = "normal"
249     then
250         AC_CHECK_HEADERS(GL/gl.h GL/glx.h GL/glext.h)
251         if test "$ac_cv_header_GL_gl_h" = "yes" -a "$ac_cv_header_GL_glx_h" = "yes"
252         then
253             dnl Check for some problems due to old Mesa versions
254             AC_CACHE_CHECK("for up-to-date OpenGL version", wine_cv_opengl_version_OK,
255               AC_TRY_COMPILE(
256                 [#include <GL/gl.h>],
257                 [GLenum test = GL_UNSIGNED_SHORT_5_6_5;],
258                 [wine_cv_opengl_version_OK="yes"],
259                 [wine_cv_opengl_version_OK="no"]
260               )
261             )
263             dnl Check for the thread-safety of the OpenGL library
264             AC_CACHE_CHECK("for thread-safe OpenGL version", 
265                            wine_cv_opengl_version_threadsafe,
266               [saved_libs=$LIBS
267                LIBS="$X_LIBS -lGL"
268                AC_TRY_LINK([],[pthread_getspecific();],
269                               [wine_cv_opengl_version_threadsafe="yes"],
270                               [wine_cv_opengl_version_threadsafe="no"])
271                LIBS=$saved_libs]
272             )
274             if test "$wine_cv_opengl_version_OK" = "yes" -a \( "$wine_cv_opengl_version_threadsafe" = "no" -o $OPENGL = "yes" \)
275             then
276                 dnl Check for the presence of the library
277                 AC_CHECK_LIB(GL,glXCreateContext,
278                              X_PRE_LIBS="$X_PRE_LIBS -lGL"
279                              MESA_SRCS='$(MESA_SRCS)'
280                              ,,
281                              $X_LIBS -lXext -lX11 -lm $X_EXTRA_LIBS)
284                 OPENGLFILES='$(OPENGLFILES)'
285                 AC_DEFINE(HAVE_OPENGL)
287                 if test $ac_cv_lib_GL_glXCreateContext = "yes"
288                 then
289                         AC_CHECK_LIB(GL,glXGetProcAddressARB,AC_DEFINE(HAVE_GLX_GETPROCADDRESS),,$X_LIBS -lXext -lX11 -lm $X_EXTRA_LIBS)
291                         if test $ac_cv_lib_GL_glXGetProcAddressARB = "yes"
292                         then
293                                AC_CACHE_CHECK("for OpenGL extension functions prototypes", wine_cv_extension_prototypes,
294                                   AC_TRY_COMPILE([#include <GL/gl.h>
295                                                   #ifdef HAVE_GL_GLEXT_H
296                                                   # include <GL/glext.h>
297                                                   #endif
298                                                   ],
299                                                  [PFNGLCOLORTABLEEXTPROC test_proc;],
300                                                  [wine_cv_extension_prototypes="yes"],
301                                                  [wine_cv_extension_prototypes="no"]
302                                   )
303                                 )
304                                 if test $wine_cv_extension_prototypes = "yes"
305                                 then
306                                         AC_DEFINE(HAVE_GLEXT_PROTOTYPES)
307                                 fi
309                                 OPENGL32_DLL=opengl32
310                         fi
311                 fi
312              fi
313          fi
314     fi
316     CPPFLAGS="$ac_save_CPPFLAGS"
317     X_DLLS='$(X_DLLS)'
318     XFILES='$(XFILES)'
319 else
320     XLIB=""
321     X_CFLAGS=""
322     X_LIBS=""
325 dnl **** Check which curses lib to use ***
326 if test "$CURSES" = "yes"
327 then
328     AC_CHECK_HEADERS(ncurses.h)
329     if test "$ac_cv_header_ncurses_h" = "yes"
330     then 
331         AC_CHECK_LIB(ncurses,waddch)
332     fi
333     if test "$ac_cv_lib_ncurses_waddch" = "yes"
334     then
335         AC_CHECK_LIB(ncurses,resizeterm,AC_DEFINE(HAVE_RESIZETERM))
336         AC_CHECK_LIB(ncurses,getbkgd,AC_DEFINE(HAVE_GETBKGD))
337     else
338         AC_CHECK_HEADERS(curses.h)
339         if test "$ac_cv_header_curses_h" = "yes"
340         then    
341             AC_CHECK_LIB(curses,waddch)
342             if test "$ac_cv_lib_curses_waddch" = "yes"
343             then
344                 AC_CHECK_LIB(curses,resizeterm,AC_DEFINE(HAVE_RESIZETERM))
345                 AC_CHECK_LIB(curses,getbkgd,AC_DEFINE(HAVE_GETBKGD))
346             fi
347         fi
348     fi
351 dnl **** Check for IPX (currently Linux only) ****
352 AC_CACHE_CHECK("for GNU style IPX support", ac_cv_c_ipx_gnu,
353  AC_TRY_COMPILE(
354    [#include <sys/socket.h>
355     #include <netipx/ipx.h>],
356    [((struct sockaddr_ipx *)0)->sipx_family == AF_IPX],
357    [ac_cv_c_ipx_gnu="yes"],
358    [ac_cv_c_ipx_gnu="no"])
360 if test "$ac_cv_c_ipx_gnu" = "yes"
361 then
362     AC_DEFINE(HAVE_IPX_GNU)
365 if test "$ac_cv_c_ipx_gnu" = "no"
366 then
367  AC_CACHE_CHECK("for linux style IPX support", ac_cv_c_ipx_linux,
368   AC_TRY_COMPILE(
369     [#include <sys/socket.h>
370      #include <asm/types.h>
371      #include <linux/ipx.h>],
372     [((struct sockaddr_ipx *)0)->sipx_family == AF_IPX],
373     [ac_cv_c_ipx_linux="yes"],
374     [ac_cv_c_ipx_linux="no"])
375   )
376   if test "$ac_cv_c_ipx_linux" = "yes"
377   then
378       AC_DEFINE(HAVE_IPX_LINUX)
379   fi
382 dnl **** Check for Open Sound System ****
383 AC_CHECK_HEADERS(sys/soundcard.h machine/soundcard.h soundcard.h, break)
385 AC_CACHE_CHECK("for Open Sound System",
386         ac_cv_c_opensoundsystem,
387         AC_TRY_COMPILE([
388         #if defined(HAVE_SYS_SOUNDCARD_H)
389                 #include <sys/soundcard.h>
390         #elif defined(HAVE_MACHINE_SOUNDCARD_H)
391                 #include <machine/soundcard.h>
392         #elif defined(HAVE_SOUNDCARD_H)
393                 #include <soundcard.h>
394         #endif
395         ],[
397 /* check for one of the Open Sound System specific SNDCTL_ defines */
398 #if !defined(SNDCTL_DSP_STEREO)
399 #error No open sound system
400 #endif
401 ],ac_cv_c_opensoundsystem="yes",ac_cv_c_opensoundsystem="no"))
403 if test "$ac_cv_c_opensoundsystem" = "yes"
404 then
405     AC_DEFINE(HAVE_OSS)
408 AC_CACHE_CHECK("for Open Sound System/MIDI interface",
409         ac_cv_c_opensoundsystem_midi,
410         AC_TRY_COMPILE([
411         #if defined(HAVE_SYS_SOUNDCARD_H)
412                 #include <sys/soundcard.h>
413         #elif defined(HAVE_MACHINE_SOUNDCARD_H)
414                 #include <machine/soundcard.h>
415         #elif defined(HAVE_SOUNDCARD_H)
416                 #include <soundcard.h>
417         #endif
418         ],[
420 /* check for one of the Open Sound System specific SNDCTL_SEQ defines */
421 #if !defined(SNDCTL_SEQ_SYNC)
422 #error No open sound system MIDI interface
423 #endif
424 ],ac_cv_c_opensoundsystem_midi="yes",ac_cv_c_opensoundsystem_midi="no"))
426 if test "$ac_cv_c_opensoundsystem_midi" = "yes"
427 then
428     AC_DEFINE(HAVE_OSS_MIDI)
431 dnl **** If ln -s doesn't work, use cp instead ****
432 if test "$ac_cv_prog_LN_S" = "ln -s"; then : ; else LN_S=cp ; fi
434 dnl **** Check for gcc strength-reduce bug ****
436 if test "x${GCC}" = "xyes"
437 then
438   CFLAGS="$CFLAGS -Wall"
439   AC_CACHE_CHECK( "for gcc strength-reduce bug", ac_cv_c_gcc_strength_bug,
440                   AC_TRY_RUN([
441 int main(void) {
442   static int Array[[3]];
443   unsigned int B = 3;
444   int i;
445   for(i=0; i<B; i++) Array[[i]] = i - 3;
446   exit( Array[[1]] != -2 );
448     ac_cv_c_gcc_strength_bug="no",
449     ac_cv_c_gcc_strength_bug="yes",
450     ac_cv_c_gcc_strength_bug="yes") )
451   if test "$ac_cv_c_gcc_strength_bug" = "yes"
452   then
453     CFLAGS="$CFLAGS -fno-strength-reduce"
454   fi
457 dnl **** Check for underscore on external symbols ****
459 AC_CACHE_CHECK("whether external symbols need an underscore prefix",
460                ac_cv_c_extern_prefix,
461 [saved_libs=$LIBS
462 LIBS="conftest_asm.s $LIBS"
463 cat > conftest_asm.s <<EOF
464         .globl _ac_test
465 _ac_test:
466         .long 0
468 AC_TRY_LINK([extern int ac_test;],[if (ac_test) return 1],
469             ac_cv_c_extern_prefix="yes",ac_cv_c_extern_prefix="no")
470 LIBS=$saved_libs])
471 if test "$ac_cv_c_extern_prefix" = "yes"
472 then
473   AC_DEFINE(NEED_UNDERSCORE_PREFIX)
476 dnl **** Check for .string in assembler ****
478 AC_CACHE_CHECK("whether assembler accepts .string",
479                ac_cv_c_asm_string,
480 [saved_libs=$LIBS
481 LIBS="conftest_asm.s $LIBS"
482 cat > conftest_asm.s <<EOF
483         .string "test"
485 AC_TRY_LINK(,,ac_cv_c_asm_string="yes",ac_cv_c_asm_string="no")
486 LIBS=$saved_libs])
487 if test "$ac_cv_c_asm_string" = "yes"
488 then
489   AC_DEFINE(HAVE_ASM_STRING)
492 dnl **** Check for working dll ****
494 LDSHARED=""
495 if test "$LIBEXT" = "so"
496 then
497   AC_CACHE_CHECK("whether we can build a Linux dll",
498                  ac_cv_c_dll_linux,
499   [saved_cflags=$CFLAGS
500   CFLAGS="$CFLAGS -fPIC -shared -Wl,-soname,conftest.so.1.0"
501   AC_TRY_LINK(,[return 1],ac_cv_c_dll_linux="yes",ac_cv_c_dll_linux="no")
502   CFLAGS=$saved_cflags
503   ])
504   if test "$ac_cv_c_dll_linux" = "yes"
505   then
506     LDSHARED="\$(CC) -shared -Wl,-soname,\$(SONAME),-rpath,\$(libdir)"
507   else
508     AC_CACHE_CHECK(whether we can build a UnixWare (Solaris) dll,
509                  ac_cv_c_dll_unixware,
510     [saved_cflags=$CFLAGS
511     CFLAGS="$CFLAGS -fPIC -Wl,-G,-h,conftest.so.1.0"
512     AC_TRY_LINK(,[return 1],ac_cv_c_dll_unixware="yes",ac_cv_c_dll_unixware="no")
513     CFLAGS=$saved_cflags
514     ])
515     if test "$ac_cv_c_dll_unixware" = "yes"
516     then
517       LDSHARED="\$(CC) -Wl,-G,-h,\$(libdir)/\$(SONAME)"
518     else
519       AC_CACHE_CHECK("whether we can build a NetBSD dll",
520                    ac_cv_c_dll_netbsd,
521       [saved_cflags=$CFLAGS
522       CFLAGS="$CFLAGS -fPIC -Bshareable -Bforcearchive"
523       AC_TRY_LINK(,[return 1],ac_cv_c_dll_netbsd="yes",ac_cv_c_dll_netbsd="no")
524       CFLAGS=$saved_cflags
525       ])
526       if test "$ac_cv_c_dll_netbsd" = "yes"
527       then
528         LDSHARED="ld -Bshareable -Bforcearchive"
529       fi
530     fi
531   fi
532   if test "$ac_cv_c_dll_linux" = "no" -a "$ac_cv_c_dll_unixware" = "no" -a "$ac_cv_c_dll_netbsd" = "no"
533   then
534     LIBEXT="a"
535   fi
538 DLLFLAGS=""
540 if test "$LIBEXT" = "so"; then
541     DLLFLAGS="-fPIC"
542     DLL_LINK="-L\$(DLLDIR) \$(IMPORTS:%=-l%) -L\$(TOPOBJDIR) -lwine -lwine_unicode"
543 else
544     DLL_LINK="-L\$(DLLDIR) \$(DLLS:%=-l%) -L\$(TOPOBJDIR) -lwine -lwine_unicode \$(X_LIBS) \$(XLIB)"
545     AC_CACHE_CHECK([whether the linker supports --[[no]]-whole-archive (Linux)],
546                    ac_cv_c_whole_archive,
547             [saved_cflags=$CFLAGS
548             CFLAGS="$CFLAGS -Wl,--whole-archive -Wl,--no-whole-archive"
549             AC_TRY_LINK(,[return 1],ac_cv_c_whole_archive="yes",ac_cv_c_whole_archive="no")
550             CFLAGS=$saved_cflags
551             ])
552     if test "$ac_cv_c_whole_archive" = "yes"
553     then
554         DLL_LINK="-Wl,--whole-archive $DLL_LINK -Wl,--no-whole-archive"
555     else
556         AC_CACHE_CHECK([whether the linker supports -z {all,default}extract (Linux)],
557                        ac_cv_c_allextract,
558                 [saved_cflags=$CFLAGS
559                 CFLAGS="$CFLAGS -Wl,-z,allextract -Wl,-z,defaultextract"
560                 AC_TRY_LINK(,[return 1],ac_cv_c_allextract="yes",ac_cv_c_allextract="no")
561                 CFLAGS=$saved_cflags
562                 ])
563         if test "$ac_cv_c_allextract" = "yes"
564         then
565             DLL_LINK="-Wl,-z,allextract $DLL_LINK -Wl,-z,defaultextract"
566         fi
567     fi
570 AC_SUBST(DLL_LINK)
571 AC_SUBST(DLLFLAGS)
572 AC_SUBST(LDSHARED)
573 AC_SUBST(LIBEXT)
575 dnl **** Check for reentrant libc ****
577 dnl For cross-compiling we blindly assume that libc is reentrant. This is
578 dnl ok since non-reentrant libc is quite rare (mostly old libc5 versions).
580 wine_cv_libc_reentrant=no 
581 dnl 
582 dnl Linux style errno location
583 dnl 
584 AC_CACHE_CHECK("for reentrant libc: __errno_location", wine_cv_libc_r__errno_location,
585   [AC_TRY_RUN([int myerrno = 0;
586 char buf[256];
587 int *__errno_location(){return &myerrno;}
588 main(){connect(0,buf,255); exit(!myerrno);}],
589   wine_cv_libc_r__errno_location=yes, wine_cv_libc_r__errno_location=no,
590   wine_cv_libc_r__errno_location=yes )
592 if test "$wine_cv_libc_r__errno_location" = "yes"
593 then
594     AC_DEFINE(HAVE__ERRNO_LOCATION)
595     wine_cv_libc_reentrant=__errno_location 
598 dnl FreeBSD style errno location
599 dnl 
600 AC_CACHE_CHECK("for reentrant libc: __error", wine_cv_libc_r__error,
601   [AC_TRY_RUN([int myerrno = 0;
602 char buf[256];
603 int *__error(){return &myerrno;}
604 main(){connect(0,buf,255); exit(!myerrno);}],
605     wine_cv_libc_r__error=yes, wine_cv_libc_r__error=no,
606     wine_cv_libc_r__error=yes )
608 if test "$wine_cv_libc_r__error" = "yes"
609 then
610     AC_DEFINE(HAVE__ERROR)
611     wine_cv_libc_reentrant=__error 
614 dnl Solaris style errno location
615 dnl 
616 AC_CACHE_CHECK("for reentrant libc: ___errno", wine_cv_libc_r___errno,
617   [AC_TRY_RUN([int myerrno = 0;
618 char buf[256];
619 int *___errno(){return &myerrno;}
620 main(){connect(0,buf,255); exit(!myerrno);}],
621     wine_cv_libc_r___errno=yes, wine_cv_libc_r___errno=no,
622     wine_cv_libc_r___errno=yes )
624 if test "$wine_cv_libc_r___errno" = "yes"
625 then
626     AC_DEFINE(HAVE___ERRNO)
627     wine_cv_libc_reentrant=___errno 
630 dnl UnixWare style errno location
631 dnl 
632 AC_CACHE_CHECK("for reentrant libc: __thr_errno", wine_cv_libc_r__thr_errno,
633   [AC_TRY_RUN([int myerrno = 0;
634 char buf[256];
635 int *__thr_errno(){return &myerrno;}
636 main(){connect(0,buf,255); exit(!myerrno);}],
637     wine_cv_libc_r__thr_errno=yes, wine_cv_libc_r__thr_errno=no,
638     wine_cv_libc_r__thr_errno=yes )
640 if test "$wine_cv_libc_r__thr_errno" = "yes"
641 then
642     AC_DEFINE(HAVE__THR_ERRNO)
643     wine_cv_libc_reentrant=__thr_errno 
645 if test "$wine_cv_libc_reentrant" = "no" 
646 then
647   AC_DEFINE(NO_REENTRANT_LIBC)
650 dnl **** Check for reentrant X libraries ****
652 dnl This may fail to determine whether X libraries are reentrant if
653 dnl AC_PATH_XTRA does not set x_libraries. In this case manual configuration
654 dnl is possible with the --without-reentrant-x option.
656 if test "$have_x" = "yes" -a "$wine_cv_libc_reentrant" != "no"
657 then
658 AC_CACHE_CHECK( "for reentrant X libraries", wine_cv_x_reentrant,
659   [ if test "x$with_reentrant_x" = "xno" 
660     then
661         wine_cv_x_reentrant=no
662     else
663         libX11_check=none
664         for dir in "$x_libraries" /usr/lib /usr/local/lib /lib; do
665             if test -r $dir/libX11.so; then
666                 libX11_check="-D $dir/libX11.so"
667                 break 1
668             fi
669             if test -r $dir/libX11.a; then
670                 libX11_check="$dir/libX11.a"
671                 break 1
672             fi
673         done
674         if test "$libX11_check" != "none"; then
675             if nm $libX11_check | grep $wine_cv_libc_reentrant >/dev/null 2>&1
676             then
677                 wine_cv_x_reentrant=yes
678             else
679                 wine_cv_x_reentrant=no
680             fi
681         else
682             wine_cv_x_reentrant=unknown
683         fi
684     fi ] )
685 else
686     wine_cv_x_reentrant=no
688 if test "$wine_cv_x_reentrant" = "no"
689 then
690   AC_DEFINE(NO_REENTRANT_X11)
693 dnl **** Check for endianness ****
695 AC_C_BIGENDIAN
697 dnl **** Check for functions ****
699 AC_FUNC_ALLOCA()
700 AC_CHECK_FUNCS(\
701         __libc_fork \
702         _lwp_create \
703         clone \
704         getnetbyaddr \
705         getnetbyname \
706         getpagesize \
707         getprotobyname \
708         getprotobynumber \
709         getservbyport \
710         getsockopt \
711         inet_network \
712         memmove \
713         rfork \
714         select \
715         sendmsg \
716         settimeofday \
717         sigaltstack \
718         statfs \
719         strcasecmp \
720         strerror \
721         strncasecmp \
722         tcgetattr \
723         timegm \
724         usleep \
725         vfscanf \
726         wait4 \
727         waitpid \
730 dnl **** Check for header files ****
732 AC_CHECK_HEADERS(\
733         a.out.h \
734         a_out.h \
735         arpa/inet.h \
736         arpa/nameser.h \
737         elf.h \
738         float.h \
739         libio.h \
740         libutil.h \
741         link.h \
742         linux/cdrom.h \
743         linux/joystick.h \
744         linux/ucdrom.h \
745         net/if.h \
746         netinet/in.h \
747         netinet/tcp.h \
748         pty.h \
749         resolv.h \
750         sched.h \
751         socket.h \
752         strings.h \
753         sys/cdio.h \
754         sys/errno.h \
755         sys/file.h \
756         sys/filio.h \
757         sys/ipc.h \
758         sys/lwp.h \
759         sys/mman.h \
760         sys/modem.h \
761         sys/mount.h \
762         sys/msg.h \
763         sys/param.h \
764         sys/reg.h \
765         sys/signal.h \
766         sys/shm.h \
767         sys/socket.h \
768         sys/sockio.h \
769         sys/statfs.h \
770         sys/strtio.h \
771         sys/syscall.h \
772         sys/wait.h \
773         sys/v86.h \
774         sys/v86intr.h \
775         sys/vfs.h \
776         sys/vm86.h \
777         syscall.h \
778         ucontext.h
780 AC_HEADER_STAT()
782 dnl **** Check for types ****
784 AC_C_CONST()
785 AC_C_INLINE()
786 AC_TYPE_SIZE_T()
787 AC_CHECK_SIZEOF(long long,0)
789 if test "$ac_cv_header_linux_joystick_h" = "yes"
790 then
791    AC_CACHE_CHECK("whether linux/joystick.h uses the Linux 2.2+ API",
792         wine_cv_linux_joystick_22_api,
793         AC_TRY_COMPILE([
794         #include <sys/ioctl.h>
795         #include <linux/joystick.h>
797         struct js_event blub;
798         #if !defined(JS_EVENT_AXIS) || !defined(JS_EVENT_BUTTON)
799         #error "no 2.2 header"
800         #endif
801         ],/*empty*/,
802         wine_cv_linux_joystick_22_api=yes,
803         wine_cv_linux_joystick_22_api=no,
804         wine_cv_linux_joystick_22_api=no
805         )
806    )
807    if test "$wine_cv_linux_joystick_22_api" = "yes"
808    then
809       AC_DEFINE(HAVE_LINUX_22_JOYSTICK_API)
810    fi
813 dnl **** statfs checks ****
815 if test "$ac_cv_header_sys_vfs_h" = "yes"
816 then
817     AC_CACHE_CHECK( "whether sys/vfs.h defines statfs",
818                     wine_cv_sys_vfs_has_statfs,
819         AC_TRY_COMPILE([
820         #include <sys/types.h>
821         #ifdef HAVE_SYS_PARAM_H
822         # include <sys/param.h>
823         #endif
824         #include <sys/vfs.h>
825         ],[
826                 struct statfs stfs;
828                 memset(&stfs,0,sizeof(stfs));
829         ],wine_cv_sys_vfs_has_statfs=yes,wine_cv_sys_vfs_has_statfs=no
830         )
831     )
832     if test "$wine_cv_sys_vfs_has_statfs" = "yes"
833     then
834       AC_DEFINE(STATFS_DEFINED_BY_SYS_VFS)
835     fi
838 if test "$ac_cv_header_sys_statfs_h" = "yes"
839 then
840     AC_CACHE_CHECK( "whether sys/statfs.h defines statfs",
841                     wine_cv_sys_statfs_has_statfs,
842         AC_TRY_COMPILE([
843         #include <sys/types.h>
844         #ifdef HAVE_SYS_PARAM_H
845         # include <sys/param.h>
846         #endif
847         #include <sys/statfs.h>
848         ],[
849                 struct statfs stfs;
850         ],wine_cv_sys_statfs_has_statfs=yes,wine_cv_sys_statfs_has_statfs=no
851         )
852     )
853     if test "$wine_cv_sys_statfs_has_statfs" = "yes"
854     then
855       AC_DEFINE(STATFS_DEFINED_BY_SYS_STATFS)
856     fi
859 if test "$ac_cv_header_sys_mount_h" = "yes"
860 then
861     AC_CACHE_CHECK( "whether sys/mount.h defines statfs",
862                     wine_cv_sys_mount_has_statfs,
863         AC_TRY_COMPILE([
864         #include <sys/types.h>
865         #ifdef HAVE_SYS_PARAM_H
866         # include <sys/param.h>
867         #endif
868         #include <sys/mount.h>
869         ],[
870                 struct statfs stfs;
871         ],wine_cv_sys_mount_has_statfs=yes,wine_cv_sys_mount_has_statfs=no
872         )
873     )
874     if test "$wine_cv_sys_mount_has_statfs" = "yes"
875     then
876       AC_DEFINE(STATFS_DEFINED_BY_SYS_MOUNT)
877     fi
880 dnl **** FIXME: what about mixed cases, where we need two of them? ***
882 AC_CACHE_CHECK( "for statfs.f_bfree", wine_cv_statfs_bfree,
883   [ if test "x$statfs_bfree" = "xno"
884     then
885         wine_cv_statfs_bfree=no
886     else
887         AC_TRY_COMPILE([
888         #include <sys/types.h>
889         #ifdef HAVE_SYS_PARAM_H
890         # include <sys/param.h>
891         #endif
892         #ifdef STATFS_DEFINED_BY_SYS_MOUNT
893         # include <sys/mount.h>
894         #else
895         # ifdef STATFS_DEFINED_BY_SYS_VFS
896         #  include <sys/vfs.h>
897         # else
898         #  ifdef STATFS_DEFINED_BY_SYS_STATFS
899         #   include <sys/statfs.h>
900         #  endif
901         # endif
902         #endif
903         ],[
904                 struct statfs stfs;
906                 stfs.f_bfree++;
907         ],wine_cv_statfs_bfree=yes,wine_cv_statfs_bfree=no
908         )
909     fi ] )
910 if test "$wine_cv_statfs_bfree" = "yes"
911 then
912   AC_DEFINE(STATFS_HAS_BFREE)
915 AC_CACHE_CHECK( "for statfs.f_bavail", wine_cv_statfs_bavail,
916   [ if test "x$statfs_bavail" = "xno"
917     then
918         wine_cv_statfs_bavail=no
919     else
920         AC_TRY_COMPILE([
921         #include <sys/types.h>
922         #ifdef HAVE_SYS_PARAM_H
923         # include <sys/param.h>
924         #endif
925         #ifdef STATFS_DEFINED_BY_SYS_MOUNT
926         # include <sys/mount.h>
927         #else
928         # ifdef STATFS_DEFINED_BY_SYS_VFS
929         #  include <sys/vfs.h>
930         # else
931         #  ifdef STATFS_DEFINED_BY_SYS_STATFS
932         #   include <sys/statfs.h>
933         #  endif
934         # endif
935         #endif
936         ],[
937                 struct statfs stfs;
939                 stfs.f_bavail++;
940         ],wine_cv_statfs_bavail=yes,wine_cv_statfs_bavail=no
941         )
942     fi ] )
943 if test "$wine_cv_statfs_bavail" = "yes"
944 then
945   AC_DEFINE(STATFS_HAS_BAVAIL)
948 dnl *** check for file descriptor passing with msg_accrights
950 AC_CACHE_CHECK("for msg_accrights in struct msghdr", ac_cv_c_msg_accrights,
951  AC_TRY_COMPILE([#include <sys/types.h>
952 #include <sys/socket.h>],[struct msghdr hdr; hdr.msg_accrights=0],
953                 ac_cv_c_msg_accrights="yes", ac_cv_c_msg_accrights="no"))
954 if test "$ac_cv_c_msg_accrights" = "yes"
955 then
956     AC_DEFINE(HAVE_MSGHDR_ACCRIGHTS)
959 dnl *** Check for the sun_len member in struct sockaddr_un
961 AC_CACHE_CHECK("for sun_len in struct sockaddr_un", ac_cv_c_sun_len,
962  AC_TRY_COMPILE([#include <sys/types.h>
963 #include <sys/socket.h>
964 #include <sys/un.h>], [static struct sockaddr_un addr; addr.sun_len = 1],
965                 ac_cv_c_sun_len="yes", ac_cv_c_sun_len="no"))
966 if test "$ac_cv_c_sun_len" = "yes"
967 then
968     AC_DEFINE(HAVE_SOCKADDR_SUN_LEN)
971 dnl *** check for the need to define __i386__
973 AC_CACHE_CHECK("whether we need to define __i386__",ac_cv_cpp_def_i386,
974  AC_EGREP_CPP(yes,[#if (defined(i386) || defined(__i386)) && !defined(__i386__)
976 #endif],
977  ac_cv_cpp_def_i386="yes", ac_cv_cpp_def_i386="no"))
978 if test "$ac_cv_cpp_def_i386" = "yes"
979 then
980     CFLAGS="$CFLAGS -D__i386__"
981     LINTFLAGS="$LINTFLAGS -D__i386__"
984 dnl $GCC is set by autoconf
985 GCC_NO_BUILTIN=""
986 if test "$GCC" = "yes"
987 then
988     GCC_NO_BUILTIN="-fno-builtin"
990 AC_SUBST(GCC_NO_BUILTIN)
992 dnl **** Generate output files ****
994 AC_OUTPUT_COMMANDS([
995 extra_subdirs="\
996 dlls/ddraw/d3ddevice \
997 dlls/ddraw/dclipper \
998 dlls/ddraw/ddraw \
999 dlls/ddraw/direct3d \
1000 dlls/ddraw/dpalette \
1001 dlls/ddraw/dsurface \
1002 dlls/kernel/messages \
1004 for i in $extra_subdirs; do [ -d $i ] || (echo "creating $i" && mkdir $i); done ])
1006 MAKE_RULES=Make.rules
1007 AC_SUBST_FILE(MAKE_RULES)
1009 MAKE_DLL_RULES=dlls/Makedll.rules
1010 AC_SUBST_FILE(MAKE_DLL_RULES)
1012 AC_OUTPUT([
1013 Make.rules
1014 Makefile
1015 console/Makefile
1016 controls/Makefile
1017 debugger/Makefile
1018 dlls/Makedll.rules
1019 dlls/Makefile
1020 dlls/advapi32/Makefile
1021 dlls/avifil32/Makefile
1022 dlls/comctl32/Makefile
1023 dlls/commdlg/Makefile
1024 dlls/crtdll/Makefile
1025 dlls/dciman32/Makefile
1026 dlls/ddraw/Makefile
1027 dlls/dinput/Makefile
1028 dlls/dplay/Makefile
1029 dlls/dplayx/Makefile
1030 dlls/dsound/Makefile
1031 dlls/gdi/Makefile
1032 dlls/icmp/Makefile
1033 dlls/imagehlp/Makefile
1034 dlls/imm32/Makefile
1035 dlls/kernel/Makefile
1036 dlls/lzexpand/Makefile
1037 dlls/mpr/Makefile
1038 dlls/msacm/Makefile
1039 dlls/msnet32/Makefile
1040 dlls/msvideo/Makefile
1041 dlls/ntdll/Makefile
1042 dlls/odbc32/Makefile
1043 dlls/ole32/Makefile
1044 dlls/oleaut32/Makefile
1045 dlls/olecli/Makefile
1046 dlls/oledlg/Makefile
1047 dlls/olepro32/Makefile
1048 dlls/olesvr/Makefile
1049 dlls/opengl32/Makefile
1050 dlls/psapi/Makefile
1051 dlls/rasapi32/Makefile
1052 dlls/richedit/Makefile
1053 dlls/rpcrt4/Makefile
1054 dlls/serialui/Makefile
1055 dlls/setupapi/Makefile
1056 dlls/shell32/Makefile
1057 dlls/shfolder/Makefile
1058 dlls/shlwapi/Makefile
1059 dlls/tapi32/Makefile
1060 dlls/ttydrv/Makefile
1061 dlls/urlmon/Makefile
1062 dlls/user/Makefile
1063 dlls/version/Makefile
1064 dlls/win32s/Makefile
1065 dlls/winaspi/Makefile
1066 dlls/wineps/Makefile
1067 dlls/wininet/Makefile
1068 dlls/winmm/Makefile
1069 dlls/winmm/joystick/Makefile
1070 dlls/winmm/mcianim/Makefile
1071 dlls/winmm/mciavi/Makefile
1072 dlls/winmm/mcicda/Makefile
1073 dlls/winmm/mciseq/Makefile
1074 dlls/winmm/mciwave/Makefile
1075 dlls/winmm/midimap/Makefile
1076 dlls/winmm/wavemap/Makefile
1077 dlls/winmm/wineoss/Makefile
1078 dlls/winsock/Makefile
1079 dlls/winspool/Makefile
1080 dlls/wow32/Makefile
1081 dlls/wsock32/Makefile
1082 dlls/x11drv/Makefile
1083 documentation/Makefile
1084 documentation/wine.conf.man
1085 documentation/wine.man
1086 files/Makefile
1087 graphics/Makefile
1088 graphics/enhmetafiledrv/Makefile
1089 graphics/metafiledrv/Makefile
1090 graphics/win16drv/Makefile
1091 graphics/x11drv/Makefile
1092 if1632/Makefile
1093 include/Makefile
1094 library/Makefile
1095 libtest/Makefile
1096 loader/Makefile
1097 loader/dos/Makefile
1098 loader/ne/Makefile
1099 memory/Makefile
1100 misc/Makefile
1101 miscemu/Makefile
1102 msdos/Makefile
1103 objects/Makefile
1104 ole/Makefile
1105 programs/Makefile
1106 programs/avitools/Makefile
1107 programs/clock/Makefile
1108 programs/cmdlgtst/Makefile
1109 programs/control/Makefile
1110 programs/notepad/Makefile
1111 programs/osversioncheck/Makefile
1112 programs/progman/Makefile
1113 programs/regapi/Makefile
1114 programs/regtest/Makefile
1115 programs/uninstaller/Makefile
1116 programs/view/Makefile
1117 programs/wcmd/Makefile
1118 programs/winemine/Makefile
1119 programs/winhelp/Makefile
1120 programs/winver/Makefile
1121 relay32/Makefile
1122 resources/Makefile
1123 scheduler/Makefile
1124 server/Makefile
1125 tools/Makefile
1126 tools/cvdump/Makefile
1127 tools/winebuild/Makefile
1128 tools/wmc/Makefile
1129 tools/wrc/Makefile
1130 tsx11/Makefile
1131 unicode/Makefile
1132 win32/Makefile
1133 windows/Makefile
1134 windows/x11drv/Makefile ])
1136 if test "$have_x" = "no"
1137 then
1138   echo
1139   echo "*** Warning: X development files not found. Wine will be built without"
1140   echo "*** X support, which currently does not work, and would probably not be"
1141   echo "*** what you want anyway. You will need to install devel packages of"
1142   echo "*** Xlib/Xfree86 and Xpm at the very least."
1143 elif test "$ac_cv_lib_Xpm_XpmCreatePixmapFromData" = "no"
1144 then
1145   echo
1146   echo "*** Warning: Xpm development files not found. Wine will be built without"
1147   echo "*** Xpm support, which currently does not work. You will need to install"
1148   echo "*** devel packages of Xpm."
1151 if test "$ac_cv_lib_ncurses_resizeterm" = "no" -a "$ac_cv_lib_ncurses_waddch" = "yes"
1152 then
1153   echo
1154   echo "*** Warning: resizeterm not found in ncurses. Wine will be built without"
1155   echo "*** terminal resize support. Consider upgrading ncurses."
1158 if test "$wine_cv_libc_reentrant" = "no" 
1159 then
1160   echo
1161   echo "*** Warning: non-reentrant libc detected. Wine will be build without"
1162   echo "*** thread support. Consider upgrading libc to a more recent"
1163   echo "*** reentrant version of libc."
1166 if test "$wine_cv_opengl_version_OK" = "no"
1167 then
1168   echo
1169   echo "*** Warning: old Mesa headers detected. Wine will be built without Direct3D"
1170   echo "*** support. Consider upgrading your Mesa libraries (http://www.mesa3d.org/)."
1173 if test "$wine_cv_opengl_version_threadsafe" = "yes" -a $OPENGL = "normal"
1174 then
1175   echo
1176   echo "*** Warning: the OpenGL version you have installed relies on libpthread for"
1177   echo "*** thread-safety. To prevent crashes, OpenGL support has been removed."
1178   echo "*** A fix for glibc 2.1.3 that seem to work is included in this version of Wine,"
1179   echo "*** start configure with '--enable-opengl' to force OpenGL support."
1182 if test "$wine_cv_opengl_version_threadsafe" = "yes" -a $OPENGL = "yes"
1183 then
1184   echo
1185   echo "*** Warning: you explicitely linked in a thread-safe OpenGL version. If you"
1186   echo "*** experience unusual crashes on DirectDraw games, try first to disable OpenGL"
1187   echo "*** support before reporting bugs."
1191 echo
1192 echo "Configure finished.  Do 'make depend && make' to compile Wine."
1193 echo
1195 dnl Local Variables:
1196 dnl comment-start: "dnl "
1197 dnl comment-end: ""
1198 dnl comment-start-skip: "\\bdnl\\b\\s *"
1199 dnl compile-command: "autoconf"
1200 dnl End: