53 rizwank 1.1 fi
54 ;;
55 esac
56
57 AC_PROG_MAKE_SET
58 AC_PROG_CC
59 AC_PROG_CXX
60 dnl We can't use AC_PROG_CPP for winegcc, it uses by default $(CC) -E
61 AC_CHECK_TOOL(CPPBIN,cpp,cpp)
62
63 AC_CACHE_CHECK([for the directory containing the Wine tools], wine_cv_toolsdir,
64 [if test -z "$with_wine_tools"; then
65 if test "$cross_compiling" = "yes"; then
66 AC_MSG_ERROR([you must use the --with-wine-tools option when cross-compiling.])
67 else
68 wine_cv_toolsdir="\$(TOPOBJDIR)"
69 fi
70 elif test -d "$with_wine_tools/tools/winebuild"; then
71 case $with_wine_tools in
72 /*) wine_cv_toolsdir="$with_wine_tools" ;;
73 *) wine_cv_toolsdir="\$(TOPOBJDIR)/$with_wine_tools" ;;
74 rizwank 1.1 esac
75 else
76 AC_MSG_ERROR([could not find Wine tools in $with_wine_tools.])
77 fi])
78 AC_SUBST(TOOLSDIR,$wine_cv_toolsdir)
79
80 AC_PATH_XTRA
81 AC_PROG_LEX
82
83 dnl **** Just additional warning checks, since AC_PROG just sets 'lex' even
84 dnl **** without one present.
85 AC_CHECK_PROGS(XLEX,$LEX flex lex,none)
86 if test "$XLEX" = "none"
87 then
88 AC_MSG_ERROR([no suitable lex found. Please install the 'flex' package.])
89 fi
90
91 dnl Check for bison
92 AC_CHECK_PROGS(BISON,bison,none)
93 if test "$BISON" = "none"
94 then
95 rizwank 1.1 AC_MSG_ERROR([no suitable bison found. Please install the 'bison' package.])
96 fi
97
98 AC_CHECK_TOOLS(AS,[gas as],as)
99 AC_CHECK_TOOL(LD,ld,ld)
100 AC_CHECK_TOOL(AR,ar,ar)
101 AC_PROG_RANLIB
102 AC_CHECK_TOOL(STRIP,strip,strip)
103 AC_CHECK_TOOL(WINDRES,windres,false)
104 AC_PROG_LN_S
105 WINE_PROG_LN
106 AC_PROG_EGREP
107 AC_PATH_PROG(LDCONFIG, ldconfig, true, [/sbin /usr/sbin $PATH])
108 AC_PROG_INSTALL
109 dnl Prepend src dir to install path dir if it's a relative path
110 case "$INSTALL" in
111 [[\\/$]]* | ?:[[\\/]]* ) ;;
112 *) INSTALL="\\\$(TOPSRCDIR)/$INSTALL" ;;
113 esac
114
115 dnl Check for lint
116 rizwank 1.1 AC_CHECK_PROGS(LINT, lclint lint)
117 if test "$LINT" = "lint"
118 then
119 LINTFLAGS="$LINTFLAGS -errchk=%all,no%longptr64 -errhdr=%user -Ncheck=macro -Nlevel=4"
120 dnl LINTFLAGS='-D_SIZE_T "-Dsize_t=unsigned long" -errchk=longptr64'
121 fi
122 AC_SUBST(LINT)
123 AC_SUBST(LINTFLAGS)
124
125 dnl Check for various programs
126 AC_CHECK_PROGS(DB2HTML, docbook2html db2html, false)
127 AC_CHECK_PROGS(DB2PDF, docbook2pdf db2pdf, false)
128 AC_CHECK_PROGS(DB2PS, docbook2ps db2ps, false)
129 AC_CHECK_PROGS(DB2TXT, docbook2txt db2txt, false)
130 AC_CHECK_PROGS(FONTFORGE, fontforge, false)
131
132 dnl **** Check for some libraries ****
133
134 dnl Check for -li386 for NetBSD and OpenBSD
135 AC_CHECK_LIB(i386,i386_set_ldt)
136 dnl Check for -lossaudio for NetBSD
137 rizwank 1.1 AC_CHECK_LIB(ossaudio,_oss_ioctl)
138 dnl Check for -lw for Solaris
139 AC_CHECK_FUNCS(iswalnum,,AC_CHECK_LIB(w,iswalnum))
140 dnl Check for -lnsl for Solaris
141 AC_CHECK_FUNCS(gethostbyname,,AC_CHECK_LIB(nsl,gethostbyname))
142 dnl Check for -lsocket for Solaris
143 AC_CHECK_FUNCS(connect,,AC_CHECK_LIB(socket,connect))
144 dnl Check for -lresolv for Solaris
145 AC_CHECK_FUNCS(inet_aton,,AC_CHECK_LIB(resolv,inet_aton))
146 dnl Check for -lxpg4 for FreeBSD
147 AC_CHECK_LIB(xpg4,_xpg4_setrunelocale)
148 dnl Check for -lpoll for Mac OS X/Darwin
149 AC_CHECK_LIB(poll,poll)
150 dnl Check for -lresolv for Mac OS X/Darwin
151 AC_CHECK_LIB(resolv,res_9_init)
152 dnl Check for -lpthread
153 AC_CHECK_LIB(pthread,pthread_create,AC_SUBST(LIBPTHREAD,"-lpthread"))
154
155 AC_SUBST(XLIB)
156 AC_SUBST(XFILES)
157 XFILES=""
158 rizwank 1.1 AC_SUBST(OPENGLFILES)
159 OPENGLFILES=""
160 AC_SUBST(GLU32FILES)
161 GLU32FILES=""
162 AC_SUBST(OPENGL_LIBS)
163 OPENGL_LIBS=""
164
165 dnl **** Check for header files ****
166
167 AC_CHECK_HEADERS(\
168 arpa/inet.h \
169 arpa/nameser.h \
170 cups/cups.h \
171 direct.h \
172 elf.h \
173 float.h \
174 fontconfig/fontconfig.h \
175 getopt.h \
176 gif_lib.h \
177 ieeefp.h \
178 io.h \
179 rizwank 1.1 jack/jack.h \
180 jpeglib.h \
181 lcms/lcms.h \
182 lcms.h \
183 link.h \
184 linux/cdrom.h \
185 linux/compiler.h \
186 linux/hdreg.h \
187 linux/input.h \
188 linux/ioctl.h \
189 linux/joystick.h \
190 linux/major.h \
191 linux/param.h \
192 linux/serial.h \
193 linux/ucdrom.h \
194 machine/cpu.h \
195 mntent.h \
196 netdb.h \
197 netinet/in.h \
198 netinet/in_systm.h \
199 netinet/tcp.h \
200 rizwank 1.1 netinet/tcp_fsm.h \
201 openssl/ssl.h \
202 process.h \
203 pthread.h \
204 pwd.h \
205 regex.h \
206 sched.h \
207 scsi/sg.h \
208 scsi/scsi.h \
209 scsi/scsi_ioctl.h \
210 stdint.h \
211 strings.h \
212 sys/cdio.h \
213 sys/elf32.h \
214 sys/errno.h \
215 sys/epoll.h \
216 sys/exec_elf.h \
217 sys/filio.h \
218 sys/ioctl.h \
219 sys/ipc.h \
220 sys/link.h \
221 rizwank 1.1 sys/lwp.h \
222 sys/mman.h \
223 sys/modem.h \
224 sys/msg.h \
225 sys/param.h \
226 sys/poll.h \
227 sys/ptrace.h \
228 sys/reg.h \
229 sys/scsiio.h \
230 sys/shm.h \
231 sys/signal.h \
232 sys/socket.h \
233 sys/sockio.h \
234 sys/statfs.h \
235 sys/statvfs.h \
236 sys/strtio.h \
237 sys/syscall.h \
238 sys/sysctl.h \
239 sys/time.h \
240 sys/times.h \
241 sys/uio.h \
242 rizwank 1.1 sys/un.h \
243 sys/vfs.h \
244 sys/vm86.h \
245 sys/wait.h \
246 syscall.h \
247 termios.h \
248 unistd.h \
249 utime.h \
250 valgrind/memcheck.h
251 )
252 AC_HEADER_STAT()
253
254 dnl **** Check for X11 ****
255
256 if test "$have_x" = "yes"
257 then
258 XLIB="-lXext -lX11"
259 ac_save_CPPFLAGS="$CPPFLAGS"
260 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
261
262 dnl *** All of the following tests require X11/Xlib.h
263 rizwank 1.1 AC_CHECK_HEADERS(X11/Xlib.h,
264 [
265 AC_CHECK_HEADERS([X11/XKBlib.h \
266 X11/Xutil.h \
267 X11/extensions/shape.h \
268 X11/extensions/XInput.h \
269 X11/extensions/XShm.h \
270 X11/extensions/Xrandr.h \
271 X11/extensions/Xrender.h \
272 X11/extensions/xf86dga.h \
273 X11/extensions/xf86vmode.h],,,
274 [#include <X11/Xlib.h>
275 #ifdef HAVE_X11_XUTIL_H
276 # include <X11/Xutil.h>
277 #endif])
278
279 dnl *** Check for X keyboard extension
280 if test "$ac_cv_header_X11_XKBlib_h" = "yes"
281 then
282 AC_CHECK_LIB(X11, XkbQueryExtension,
283 AC_DEFINE(HAVE_XKB, 1, [Define if you have the XKB extension]),,
284 rizwank 1.1 $X_LIBS -lXext -lX11 $X_EXTRA_LIBS)
285 fi
286
287 dnl *** Check for X Shm extension
288 if test "$ac_cv_header_X11_extensions_XShm_h" = "yes"
289 then
290 AC_CHECK_LIB(Xext, XShmQueryExtension,
291 AC_DEFINE(HAVE_LIBXXSHM, 1, [Define if you have the X Shm extension]),,
292 $X_LIBS -lXext -lX11 $X_EXTRA_LIBS)
293 fi
294
295 dnl *** Check for X shape extension
296 if test "$ac_cv_header_X11_extensions_shape_h" = "yes"
297 then
298 AC_CHECK_LIB(Xext,XShapeQueryExtension,
299 AC_DEFINE(HAVE_LIBXSHAPE, 1, [Define if you have the X Shape extension]),,
300 $X_LIBS -lXext -lX11 $X_EXTRA_LIBS)
301 fi
302
303 dnl *** Check for XFree86 DGA / DGA 2.0 extension
304 if test "$ac_cv_header_X11_extensions_xf86dga_h" = "yes"
305 rizwank 1.1 then
306 AC_CHECK_LIB(Xxf86dga, XDGAQueryExtension,
307 [ AC_DEFINE(HAVE_LIBXXF86DGA2, 1,
308 [Define if you have the Xxf86dga library version 2])
309 X_PRE_LIBS="$X_PRE_LIBS -lXxf86dga"
310 ],,
311 $X_LIBS -lXext -lX11 $X_EXTRA_LIBS)
312 fi
313
314 dnl *** Check for XFree86 VMODE extension
315 if test "$ac_cv_header_X11_extensions_xf86vmode_h" = "yes"
316 then
317 AC_CHECK_LIB(Xxf86vm, XF86VidModeQueryExtension,
318 [ AC_DEFINE(HAVE_LIBXXF86VM, 1, [Define if you have the Xxf86vm library])
319 X_PRE_LIBS="$X_PRE_LIBS -lXxf86vm"
320 ],,
321 $X_LIBS -lXext -lX11 $X_EXTRA_LIBS)
322 fi
323
324 dnl *** Check for X RandR extension
325 if test "$ac_cv_header_X11_extensions_Xrandr_h" = "yes"
326 rizwank 1.1 then
327 AC_TRY_COMPILE([#include <X11/Xlib.h>
328 #include <X11/extensions/Xrandr.h>],[static typeof(XRRSetScreenConfigAndRate) * func;],
329 [AC_DEFINE(HAVE_LIBXRANDR, 1, [Define if you have the Xrandr library])])
330 fi
331
332 dnl *** Check for Transform functions in Xrender
333 if test "$ac_cv_header_X11_extensions_Xrender_h" = "yes"
334 then
335 AC_CHECK_LIB(Xrender, XRenderSetPictureTransform,
336 [AC_DEFINE(HAVE_XRENDERSETPICTURETRANSFORM, 1,
337 [Define if Xrender has the XRenderSetPictureTransform function])],,
338 $X_LIBS -lXext -lX11 $X_EXTRA_LIBS)
339 fi
340 ]
341 ) dnl *** End of X11/Xlib.h check
342
343 dnl Check for the presence of OpenGL
344 if test "x$with_opengl" != "xno"
345 then
346 if test -f /usr/X11R6/lib/libGL.a -a ! -f /usr/X11R6/lib/libGL.so
347 rizwank 1.1 then
348 AC_MSG_ERROR([/usr/X11R6/lib/libGL.a is present on your system.
349 This prevents linking to OpenGL. Delete the file and restart configure.])
350 fi
351
352 AC_CHECK_HEADERS(GL/gl.h GL/glx.h)
353 if test "$ac_cv_header_GL_gl_h" = "yes" -a "$ac_cv_header_GL_glx_h" = "yes"
354 then
355 AC_CHECK_HEADERS(GL/glext.h,,,[#include <GL/glx.h>])
356 dnl Check for some problems due to old Mesa versions
357 AC_CACHE_CHECK([for up-to-date OpenGL version], wine_cv_opengl_version_OK,
358 AC_TRY_COMPILE(
359 [#include <GL/gl.h>],
360 [GLenum test = GL_UNSIGNED_SHORT_5_6_5;],
361 [wine_cv_opengl_version_OK="yes"],
362 [wine_cv_opengl_version_OK="no"]
363 )
364 )
365
366 if test "$wine_cv_opengl_version_OK" = "yes"
367 then
368 rizwank 1.1 dnl Check for the presence of the library
369 AC_CHECK_LIB(GL,glXCreateContext,
370 OPENGL_LIBS="-lGL"
371 ,,
372 $X_LIBS -lXext -lX11 -lm $X_EXTRA_LIBS)
373
374 if test "$ac_cv_lib_GL_glXCreateContext" = "yes"
375 then
376 OPENGLFILES='$(OPENGLFILES)'
377 AC_DEFINE(HAVE_OPENGL, 1, [Define if OpenGL is present on the system])
378 fi
379 dnl Check for GLU32 library.
380 AC_CHECK_LIB(GLU,gluLookAt,
381 [OPENGL_LIBS="$OPENGL_LIBS -lGLU"
382 GLU32FILES='$(GLU32FILES)']
383 ,,
384 $OPENGL_LIBS $X_LIBS $X_PRE_LIBS -lXext -lX11 -lm $X_EXTRA_LIBS
385 )
386 fi
387
388 dnl Check for glut32 library.
389 rizwank 1.1 AC_CHECK_LIB(glut,glutMainLoop,
390 [AC_SUBST(GLUT_LIBS,"-lglut -lXmu -lXi")
391 AC_SUBST(GLUT32FILES,'$(GLUT32FILES)')],,
392 $OPENGL_LIBS $X_LIBS $X_PRE_LIBS -lXmu -lXi -lX11 $X_EXTRA_LIBS)
393 fi
394 fi
395
396 dnl **** Check for NAS ****
397 AC_SUBST(NASLIBS,"")
398 AC_CHECK_HEADERS(audio/audiolib.h,
399 [AC_CHECK_HEADERS(audio/soundlib.h,,,[#include <audio/audiolib.h>])
400 AC_CHECK_LIB(audio,AuCreateFlow,
401 [AC_DEFINE(HAVE_NAS,1,[Define if you have NAS including devel headers])
402 NASLIBS="-laudio -lXt $X_LIBS -lXext -lX11 $X_EXTRA_LIBS"],,
403 [-lXt $X_LIBS -lXext -lX11 $X_EXTRA_LIBS])])
404
405 CPPFLAGS="$ac_save_CPPFLAGS"
406 XFILES='$(XFILES)'
407 else
408 XLIB=""
409 X_CFLAGS=""
410 rizwank 1.1 X_LIBS=""
411 fi
412
413 dnl **** Check which curses lib to use ***
414 CURSESLIBS=""
415 if test "x$with_curses" != "xno"
416 then
417 AC_CHECK_HEADERS(ncurses.h,
418 [AC_CHECK_LIB(ncurses,waddch,
419 [AC_DEFINE(HAVE_LIBNCURSES, 1, [Define if you have the ncurses library (-lncurses)])
420 CURSESLIBS="-lncurses"],
421 [AC_CHECK_HEADERS(curses.h,
422 [AC_CHECK_LIB(curses,waddch,
423 [AC_DEFINE(HAVE_LIBCURSES, 1, [Define if you have the curses library (-lcurses)])
424 CURSESLIBS="-lcurses"])])])])
425 fi
426 AC_SUBST(CURSESLIBS)
427
428 dnl **** Check for SANE ****
429 AC_CHECK_PROG(sane_devel,sane-config,sane-config,no)
430 if test "$sane_devel" = "no"
431 rizwank 1.1 then
432 SANELIBS=""
433 SANEINCL=""
434 else
435 SANELIBS="`$sane_devel --libs`"
436 SANEINCL="`$sane_devel --cflags`"
437 ac_save_CPPFLAGS="$CPPFLAGS"
438 ac_save_LIBS="$LIBS"
439 CPPFLAGS="$CPPFLAGS $SANEINCL"
440 LIBS="$LIBS $SANELIBS"
441 AC_CHECK_HEADER(sane/sane.h,
442 [AC_CHECK_LIB(sane,sane_open,
443 [AC_DEFINE(HAVE_SANE, 1, [Define if we have SANE development environment])],
444 [SANELIBS=""
445 SANEINCL=""])],
446 [SANELIBS=""
447 SANEINCL=""])
448 LIBS="$ac_save_LIBS"
449 CPPFLAGS="$ac_save_CPPFLAGS"
450 fi
451 AC_SUBST(SANELIBS)
452 rizwank 1.1 AC_SUBST(SANEINCL)
453
454 dnl **** Check for the ICU library ****
455 AC_CHECK_HEADERS(unicode/ubidi.h)
456 if test "$ac_cv_header_unicode_ubidi_h" = "yes"
457 then
458 saved_libs="$LIBS"
459 ICU_LIB_DIR="${ICU_LIB_DIR-/usr/lib}"
460 ICUUC_LIB="${ICUUC_LIB-$ICU_LIB_DIR/libsicuuc.a}"
461 ICUDATA_LIB="${ICUDATA_LIB-$ICU_LIB_DIR/libsicudata.a}"
462 AC_MSG_CHECKING(whether can link with ICU libraries $ICUUC_LIB and $ICUDATA_LIB)
463 LIBS="$LIBS $ICUUC_LIB $ICUDATA_LIB -lstdc++ -lgcc_s"
464 AC_TRY_LINK([#include <unicode/ubidi.h>],[ubidi_open()],
465 [AC_DEFINE(HAVE_ICU,1,[Define to 1 if the ICU libraries are installed])
466 AC_SUBST(ICULIBS,"$ICUUC_LIB $ICUDATA_LIB -lstdc++ -lgcc_s")
467 AC_MSG_RESULT(yes)],
468 [AC_MSG_RESULT(no)])
469 LIBS="$saved_libs"
470 fi
471
472 dnl **** Check for FreeType 2 ****
473 rizwank 1.1 AC_CHECK_LIB(freetype,FT_Init_FreeType,ft_lib=yes,ft_lib=no,$X_LIBS)
474 if test "$ft_lib" = "no"
475 then
476 FREETYPELIBS=""
477 FREETYPEINCL=""
478 wine_cv_msg_freetype=no
479 else
480 AC_CHECK_PROG(ft_devel,freetype-config,freetype-config,no)
481 if test "$ft_devel" = "no"
482 then
483 AC_CHECK_PROG(ft_devel2,freetype2-config,freetype2-config,no)
484 if test "$ft_devel2" = "freetype2-config"
485 then
486 ft_devel=$ft_devel2
487 fi
488 fi
489 if test "$ft_devel" = "no"
490 then
491 FREETYPELIBS=""
492 FREETYPEINCL=""
493 wine_cv_msg_freetype=yes
494 rizwank 1.1 else
495 FREETYPELIBS=`$ft_devel --libs`
496 FREETYPEINCL=`$ft_devel --cflags`
497 ac_save_CPPFLAGS="$CPPFLAGS"
498 CPPFLAGS="$FREETYPEINCL $CPPFLAGS"
499 AC_CHECK_HEADERS(ft2build.h \
500 freetype/freetype.h \
501 freetype/ftglyph.h \
502 freetype/tttables.h \
503 freetype/ftnames.h \
504 freetype/ftsnames.h \
505 freetype/ttnameid.h \
506 freetype/ftoutln.h \
507 freetype/ftwinfnt.h \
508 freetype/internal/sfnt.h,,,
509 [#if HAVE_FT2BUILD_H
510 #include <ft2build.h>
511 #endif])
512 AC_TRY_CPP([#include <ft2build.h>
513 #include <freetype/fttrigon.h>],
514 [AC_DEFINE(HAVE_FREETYPE_FTTRIGON_H, 1,
515 rizwank 1.1 [Define if you have the <freetype/fttrigon.h> header file.])
516 wine_cv_fttrigon=yes],
517 wine_cv_fttrigon=no)
518 CPPFLAGS="$ac_save_CPPFLAGS"
519 dnl Check that we have at least freetype/freetype.h
520 if test "$ac_cv_header_freetype_freetype_h" = "yes" -a "$wine_cv_fttrigon" = "yes"
521 then
522 AC_DEFINE(HAVE_FREETYPE, 1, [Define if FreeType 2 is installed])
523 wine_cv_msg_freetype=no
524 else
525 FREETYPELIBS=""
526 FREETYPEINCL=""
527 wine_cv_msg_freetype=yes
528 fi
529 fi
530 fi
531 AC_SUBST(FREETYPELIBS)
532 AC_SUBST(FREETYPEINCL)
533
534 dnl Only build the fonts dir if we have both freetype and fontforge
535 if test "$FONTFORGE" != "false" -a -n "$FREETYPELIBS"
536 rizwank 1.1 then
537 AC_SUBST(FONTSSUBDIRS,"fonts")
538 fi
539
540 dnl **** Check for parport (currently Linux only) ****
541 AC_CACHE_CHECK([for parport header/ppdev.h], ac_cv_c_ppdev,
542 AC_TRY_COMPILE(
543 [#include <linux/ppdev.h>],
544 [ioctl (1,PPCLAIM,0)],
545 [ac_cv_c_ppdev="yes"],
546 [ac_cv_c_ppdev="no"])
547 )
548 if test "$ac_cv_c_ppdev" = "yes"
549 then
550 AC_DEFINE(HAVE_PPDEV, 1, [Define if we can use ppdev.h for parallel port access])
551 fi
552
553 dnl **** Check for va_copy ****
554 AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy,
555 AC_TRY_LINK(
556 [#include <stdarg.h>],
557 rizwank 1.1 [va_list ap1, ap2;
558 va_copy(ap1,ap2);
559 ],
560 [ac_cv_c_va_copy="yes"],
561 [ac_cv_c_va_copy="no"])
562 )
563 if test "$ac_cv_c_va_copy" = "yes"
564 then
565 AC_DEFINE(HAVE_VA_COPY, 1, [Define if we have va_copy])
566 fi
567 AC_CACHE_CHECK([for __va_copy], ac_cv_c___va_copy,
568 AC_TRY_LINK(
569 [#include <stdarg.h>],
570 [va_list ap1, ap2;
571 __va_copy(ap1,ap2);
572 ],
573 [ac_cv_c___va_copy="yes"],
574 [ac_cv_c___va_copy="no"])
575 )
576 if test "$ac_cv_c___va_copy" = "yes"
577 then
578 rizwank 1.1 AC_DEFINE(HAVE___VA_COPY, 1, [Define if we have __va_copy])
579 fi
580
581 dnl **** Check for sigsetjmp ****
582 AC_CACHE_CHECK([for sigsetjmp], ac_cv_c_sigsetjmp,
583 AC_TRY_LINK(
584 [#include <setjmp.h>],
585 [sigjmp_buf buf;
586 sigsetjmp( buf, 1 );
587 siglongjmp( buf, 1 );],
588 [ac_cv_c_sigsetjmp="yes"],
589 [ac_cv_c_sigsetjmp="no"])
590 )
591 if test "$ac_cv_c_sigsetjmp" = "yes"
592 then
593 AC_DEFINE(HAVE_SIGSETJMP, 1, [Define to 1 if you have the sigsetjmp (and siglongjmp) function])
594 fi
595
596 dnl **** Check for pthread_rwlock_t ****
597 AC_CHECK_TYPES([pthread_rwlock_t, pthread_rwlockattr_t],,,[#define _GNU_SOURCE
598 #include <pthread.h>])
599 rizwank 1.1
600 dnl **** Check for pthread functions ****
601 ac_save_LIBS="$LIBS"
602 LIBS="$LIBS $LIBPTHREAD"
603 AC_CHECK_FUNCS(\
604 pthread_getattr_np \
605 pthread_get_stackaddr_np \
606 pthread_get_stacksize_np \
607 )
608 LIBS="$ac_save_LIBS"
609
610 dnl **** Check for Open Sound System ****
611 AC_CHECK_HEADERS(sys/soundcard.h machine/soundcard.h soundcard.h, break)
612
613 AC_CACHE_CHECK([for Open Sound System],
614 ac_cv_c_opensoundsystem,
615 AC_TRY_COMPILE([
616 #if defined(HAVE_SYS_SOUNDCARD_H)
617 #include <sys/soundcard.h>
618 #elif defined(HAVE_MACHINE_SOUNDCARD_H)
619 #include <machine/soundcard.h>
620 rizwank 1.1 #elif defined(HAVE_SOUNDCARD_H)
621 #include <soundcard.h>
622 #endif
623 ],[
624
625 /* check for one of the Open Sound System specific SNDCTL_ defines */
626 #if !defined(SNDCTL_DSP_STEREO)
627 #error No open sound system
628 #endif
629 ],ac_cv_c_opensoundsystem="yes",ac_cv_c_opensoundsystem="no"))
630
631 if test "$ac_cv_c_opensoundsystem" = "yes"
632 then
633 AC_DEFINE(HAVE_OSS, 1, [Define if you have the Open Sound system])
634 fi
635
636 AC_CACHE_CHECK([for Open Sound System/MIDI interface],
637 ac_cv_c_opensoundsystem_midi,
638 AC_TRY_COMPILE([
639 #if defined(HAVE_SYS_SOUNDCARD_H)
640 #include <sys/soundcard.h>
641 rizwank 1.1 #elif defined(HAVE_MACHINE_SOUNDCARD_H)
642 #include <machine/soundcard.h>
643 #elif defined(HAVE_SOUNDCARD_H)
644 #include <soundcard.h>
645 #endif
646 ],[
647
648 /* check for one of the Open Sound System specific SNDCTL_SEQ defines */
649 #if !defined(SNDCTL_SEQ_SYNC)
650 #error No open sound system MIDI interface
651 #endif
652 ],ac_cv_c_opensoundsystem_midi="yes",ac_cv_c_opensoundsystem_midi="no"))
653
654 if test "$ac_cv_c_opensoundsystem_midi" = "yes"
655 then
656 AC_DEFINE(HAVE_OSS_MIDI, 1, [Define if you have the Open Sound system (MIDI interface)])
657 fi
658
659 dnl **** Check for aRts Sound Server ****
660 AC_PATH_PROG(ARTSCCONFIG, artsc-config)
661 if test x$ARTSCCONFIG != x -a x$ARTSCCONFIG != x'"$ARTSCCONFIG"';
662 rizwank 1.1 then
663 ARTSC_CFLAGS=""
664 for i in `$ARTSCCONFIG --cflags`
665 do
666 case "$i" in
667 -I*) ARTSC_CFLAGS="$ARTSC_CFLAGS $i";;
668 esac
669 done
670 ARTSC_LIBS=`$ARTSCCONFIG --libs`
671 save_CFLAGS="$CFLAGS"
672 CFLAGS="$CFLAGS $ARTSC_CFLAGS"
673 AC_TRY_COMPILE([#include <artsc.h>],[arts_stream_t stream;],
674 [AC_SUBST(ARTSLIBS, $ARTSC_LIBS)
675 AC_SUBST(ARTSINCL, $ARTSC_CFLAGS)
676 AC_DEFINE(HAVE_ARTS, 1, [Define if you have ARTS sound server])])
677 CFLAGS="$save_CFLAGS"
678 fi
679
680 dnl **** Check for ALSA 1.x ****
681 AC_SUBST(ALSALIBS,"")
682 AC_CHECK_HEADERS(alsa/asoundlib.h sys/asoundlib.h, break)
683 rizwank 1.1 if test "$ac_cv_header_sys_asoundlib_h" = "yes" -o "$ac_cv_header_alsa_asoundlib_h" = "yes"
684 then
685 AC_CHECK_LIB(asound,snd_pcm_hw_params_get_access,
686 [AC_TRY_COMPILE([#ifdef HAVE_ALSA_ASOUNDLIB_H
687 #include <alsa/asoundlib.h>
688 #elif defined(HAVE_SYS_ASOUNDLIB_H)
689 #include <sys/asoundlib.h>
690 #endif],
691 [int ret = snd_pcm_hw_params_get_access(NULL, NULL)],
692 [AC_DEFINE(HAVE_ALSA,1,[Define if you have ALSA 1.x including devel headers])
693 ALSALIBS="-lasound"])])
694 fi
695
696 dnl **** Check for libaudioio (which can be used to get solaris audio support) ****
697
698 AC_SUBST(AUDIOIOLIBS,"")
699 AC_CHECK_HEADERS(libaudioio.h,
700 [AC_CHECK_LIB(audioio,AudioIOGetVersion,
701 [AUDIOIOLIBS="-laudioio"
702 AC_DEFINE(HAVE_LIBAUDIOIO, 1, [Define if you have libaudioIO])])])
703
704 rizwank 1.1 dnl **** Check for capi4linux ****
705
706 AC_CHECK_HEADERS(capi20.h,[
707 AC_CHECK_HEADERS(linux/capi.h,[
708 AC_CHECK_LIB(capi20,capi20_register,[
709 AC_DEFINE(HAVE_CAPI4LINUX,1,[Define if you have capi4linux libs and headers])
710 ])
711 ])
712 ])
713
714 dnl **** Check for broken glibc mmap64 ****
715
716 AC_CACHE_CHECK( [whether mmap64 works defined as mmap], ac_cv_mmap64_works,
717 AC_TRY_RUN([
718 #define _FILE_OFFSET_BITS 64
719 #include <stdio.h>
720 #include <unistd.h>
721 #include <fcntl.h>
722 #include <sys/mman.h>
723 #include <errno.h>
724
725 rizwank 1.1 int main(int argc,char **argv) {
726 int fd = open("conftest.map",O_CREAT|O_RDWR,0600);
727 if (fd == -1) exit(1);
728
729 unlink("conftest.map");
730
731 write(fd,"test",4);
732
733 if ((-1 == mmap(0,4,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0)) &&
734 (errno == EINVAL)
735 ) {
736 exit(1);
737 }
738 close(fd);
739 fprintf(stderr,"success!\n");
740 exit(0);
741 }
742
743 ],
744 ac_cv_mmap64_works="yes",
745 ac_cv_mmap64_works="no",
746 rizwank 1.1 ac_cv_mmap64_works="no") )
747
748 if test "$ac_cv_mmap64_works" = "yes"
749 then
750 AC_DEFINE(_FILE_OFFSET_BITS, 64, [Set this to 64 to enable 64-bit file support on Linux])
751 fi
752
753 dnl **** Check for gcc specific options ****
754
755 AC_SUBST(EXTRACFLAGS,"")
756 if test "x${GCC}" = "xyes"
757 then
758 EXTRACFLAGS="-Wall -pipe"
759
760 dnl Check for strength-reduce bug
761 AC_CACHE_CHECK( [for gcc strength-reduce bug], ac_cv_c_gcc_strength_bug,
762 AC_TRY_RUN([
763 int L[[4]] = {0,1,2,3};
764 int main(void) {
765 static int Array[[3]];
766 unsigned int B = 3;
767 rizwank 1.1 int i;
768 for(i=0; i<B; i++) Array[[i]] = i - 3;
769 for(i=0; i<4 - 1; i++) L[[i]] = L[[i + 1]];
770 L[[i]] = 4;
771
772 exit( Array[[1]] != -2 || L[[2]] != 3);
773 }],
774 ac_cv_c_gcc_strength_bug="no",
775 ac_cv_c_gcc_strength_bug="yes",
776 ac_cv_c_gcc_strength_bug="yes") )
777 if test "$ac_cv_c_gcc_strength_bug" = "yes"
778 then
779 EXTRACFLAGS="$EXTRACFLAGS -fno-strength-reduce"
780 fi
781
782 dnl Check for -fshort-wchar
783 AC_CACHE_CHECK([for gcc -fshort-wchar support], ac_cv_c_gcc_fshort_wchar,
784 [WINE_TRY_CFLAGS([-fshort-wchar],
785 ac_cv_c_gcc_fshort_wchar="yes",ac_cv_c_gcc_fshort_wchar="no")])
786 if test "$ac_cv_c_gcc_fshort_wchar" = "yes"
787 then
788 rizwank 1.1 AC_DEFINE(CC_FLAG_SHORT_WCHAR, "-fshort-wchar", [Specifies the compiler flag that forces a short wchar_t])
789 fi
790
791 dnl Check for -mpreferred-stack-boundary
792 AC_CACHE_CHECK([for gcc -mpreferred-stack-boundary=2 support], ac_cv_c_gcc_stack_boundary,
793 [WINE_TRY_CFLAGS([-mpreferred-stack-boundary=2],
794 ac_cv_c_gcc_stack_boundary="yes",ac_cv_c_gcc_stack_boundary="no")])
795 if test "$ac_cv_c_gcc_stack_boundary" = "yes"
796 then
797 EXTRACFLAGS="$EXTRACFLAGS -mpreferred-stack-boundary=2"
798 fi
799
800 dnl Check for -fno-strict-aliasing
801 AC_CACHE_CHECK([for gcc -fno-strict-aliasing support], ac_cv_c_gcc_no_strict_aliasing,
802 [WINE_TRY_CFLAGS([-fno-strict-aliasing],
803 ac_cv_c_gcc_no_strict_aliasing="yes",ac_cv_c_gcc_no_strict_aliasing="no")])
804 if test "$ac_cv_c_gcc_no_strict_aliasing" = "yes"
805 then
806 EXTRACFLAGS="$EXTRACFLAGS -fno-strict-aliasing"
807 fi
808
809 rizwank 1.1 dnl Check for -gstabs+ option
810 AC_CACHE_CHECK([for gcc -gstabs+ support], ac_cv_c_gcc_gstabs,
811 [WINE_TRY_CFLAGS([-gstabs+],ac_cv_c_gcc_gstabs="yes", ac_cv_c_gcc_gstabs="no")])
812 if test "$ac_cv_c_gcc_gstabs" = "yes"
813 then
814 EXTRACFLAGS="$EXTRACFLAGS -gstabs+"
815 fi
816
817 dnl Check for noisy string.h
818 saved_CFLAGS="$CFLAGS"
819 CFLAGS="$CFLAGS -Wpointer-arith -Werror"
820 AC_CACHE_CHECK([for broken string.h that generates warnings], ac_cv_c_string_h_warnings,
821 AC_TRY_COMPILE([#include <string.h>],[],
822 [ac_cv_c_string_h_warnings=no],[ac_cv_c_string_h_warnings=yes]))
823 CFLAGS="$saved_CFLAGS"
824 if test "$ac_cv_c_string_h_warnings" = "no"
825 then
826 EXTRACFLAGS="$EXTRACFLAGS -Wpointer-arith"
827 fi
828 fi
829
830 rizwank 1.1 dnl **** Check how to define a function in assembly code ****
831
832 AC_CACHE_CHECK([how to define a function in assembly code], ac_cv_asm_func_def,
833 WINE_TRY_ASM_LINK(
834 ["\t.globl _ac_test\n\t.def _ac_test; .scl 2; .type 32; .endef\n_ac_test:\t.long 0"],,,
835 ac_cv_asm_func_def=".def",
836 [WINE_TRY_ASM_LINK(["\t.globl _ac_test\n\t.type _ac_test,@function\n_ac_test:\t.long 0"],,,
837 ac_cv_asm_func_def=".type @function",
838 [WINE_TRY_ASM_LINK(["\t.globl _ac_test\n\t.type _ac_test,2\n_ac_test:\t.long 0"],,,
839 ac_cv_asm_func_def=".type 2",
840 ac_cv_asm_func_def="unknown")])]))
841
842 AH_TEMPLATE(__ASM_FUNC,[Define to a macro to generate an assembly function directive])
843 case "$ac_cv_asm_func_def" in
844 ".def")
845 AC_DEFINE([__ASM_FUNC(name)], [".def " __ASM_NAME(name) "; .scl 2; .type 32; .endef"]) ;;
846 ".type @function")
847 AC_DEFINE([__ASM_FUNC(name)], [".type " __ASM_NAME(name) ",@function"]) ;;
848 ".type 2")
849 AC_DEFINE([__ASM_FUNC(name)], [".type " __ASM_NAME(name) ",2"]) ;;
850 *)
851 rizwank 1.1 AC_DEFINE([__ASM_FUNC(name)], [""]) ;;
852 esac
853
854 dnl **** Check for underscore on external symbols ****
855
856 AC_CACHE_CHECK([whether external symbols need an underscore prefix], ac_cv_c_extern_prefix,
857 WINE_TRY_ASM_LINK([".globl _ac_test\n_ac_test:\t.long 0"],
858 [extern int ac_test;],
859 [if (ac_test) return 1],
860 ac_cv_c_extern_prefix="yes",ac_cv_c_extern_prefix="no"))
861
862 AH_TEMPLATE(__ASM_NAME,[Define to a macro to generate an assembly name from a C symbol])
863 if test "$ac_cv_c_extern_prefix" = "yes"
864 then
865 AC_DEFINE([__ASM_NAME(name)], ["_" name])
866 else
867 AC_DEFINE([__ASM_NAME(name)], [name])
868 fi
869
870 dnl **** Check how to do strings in assembler ****
871
872 rizwank 1.1 AC_CACHE_CHECK([for assembler keyword for ASCII strings], ac_cv_c_asm_string,
873 WINE_TRY_ASM_LINK([".data\\n\\t.string \\"test\\"\\n\\t.text"],,,ac_cv_c_asm_string=".string",
874 WINE_TRY_ASM_LINK([".data\\n\\t.asciz \\"test\\"\\n\\t.text"],,,ac_cv_c_asm_string=".asciz",
875 WINE_TRY_ASM_LINK([".data\\n\\t.ascii \\"test\\"\\n\\t.text"],,,ac_cv_c_asm_string=".ascii",
876 AC_MSG_ERROR([could not discover how to produce C strings with assembler.])))))
877
878 AC_DEFINE_UNQUOTED(__ASM_STRING, ["$ac_cv_c_asm_string"],
879 [Define to the assembler keyword used to specify an ASCII string])
880
881 dnl **** Check for .short in assembler ****
882
883 AC_CACHE_CHECK([for assembler keyword for word values], ac_cv_c_asm_short,
884 WINE_TRY_ASM_LINK([".data\\n\\t.short 1\\n\\t.text"],,,ac_cv_c_asm_short=".short",
885 WINE_TRY_ASM_LINK([".data\\n\\t.half 1\\n\\t.text"],,,ac_cv_c_asm_short=".half",
886 AC_MSG_ERROR([could not discover how to specify word values with assembler.]))))
887
888 AC_DEFINE_UNQUOTED(__ASM_SHORT, ["$ac_cv_c_asm_short"],
889 [Define to the assembler keyword used to specify a word value])
890
891 dnl **** Check for .size in assembler ****
892
893 rizwank 1.1 AC_CACHE_CHECK([for .size in assembler], ac_cv_c_asm_size,
894 WINE_TRY_ASM_LINK([".globl _ac_test\n.size _ac_test, . - _ac_test"],,,
895 ac_cv_c_asm_size="yes",ac_cv_c_asm_size="no"))
896
897 if test "$ac_cv_c_asm_size" = "yes"
898 then
899 AC_DEFINE(HAVE_ASM_DOT_SIZE, 1, [Define if the assembler keyword .size is accepted])
900 fi
901
902 dnl **** Check for working dll ****
903
904 AC_SUBST(DLLEXT,"")
905 AC_SUBST(DLLFLAGS,"-D_REENTRANT")
906 AC_SUBST(DLLIBS,"")
907 AC_SUBST(LDSHARED,"")
908 AC_SUBST(LDDLLFLAGS,"")
909 AC_SUBST(LIBEXT,"so")
910 AC_SUBST(IMPLIBEXT,"def")
911
912 case $host_os in
913 cygwin*|mingw32*)
914 rizwank 1.1 AC_CHECK_TOOL(DLLTOOL,dlltool,false)
915 AC_CHECK_TOOL(DLLWRAP,dllwrap,false)
916 if test "$DLLWRAP" = "false"; then
917 LIBEXT="a"
918 else
919 dnl FIXME - check whether dllwrap works correctly...
920 LIBEXT="dll"
921 fi
922 IMPLIBEXT="a"
923 dnl We can't build 16-bit NE dlls
924 WIN16_FILES=""
925 WIN16_INSTALL=""
926 ;;
927 *)
928 AC_CHECK_HEADERS(dlfcn.h,
929 [AC_CHECK_FUNCS(dlopen,,
930 [AC_CHECK_LIB(dl,dlopen,
931 [AC_DEFINE(HAVE_DLOPEN,1,[Define if you have dlopen])
932 DLLIBS="-ldl"],
933 [LIBEXT="a"])])],
934 [LIBEXT="a"])
935 rizwank 1.1
936 if test "$LIBEXT" = "so"
937 then
938 DLLFLAGS="$DLLFLAGS -fPIC"
939 DLLEXT=".so"
940 AC_CACHE_CHECK([whether we can build a GNU style ELF dll], ac_cv_c_dll_gnuelf,
941 [WINE_TRY_SHLIB_FLAGS([-fPIC -shared -Wl,-soname,conftest.so.1.0,-Bsymbolic],
942 ac_cv_c_dll_gnuelf="yes",ac_cv_c_dll_gnuelf="no")])
943 if test "$ac_cv_c_dll_gnuelf" = "yes"
944 then
945 LDSHARED="\$(CC) -shared \$(SONAME:%=-Wl,-soname,%)"
946 LDDLLFLAGS="-shared -Wl,-Bsymbolic"
947 AC_CACHE_CHECK([whether the linker accepts -z defs], ac_cv_c_dll_zdefs,
948 [WINE_TRY_CFLAGS([-fPIC -shared -Wl,-Bsymbolic,-z,defs],
949 ac_cv_c_dll_zdefs="yes",ac_cv_c_dll_zdefs="no")])
950 if test "$ac_cv_c_dll_zdefs" = "yes"
951 then
952 LDDLLFLAGS="$LDDLLFLAGS,-z,defs"
953 fi
954
955 AC_CACHE_CHECK([whether the linker accepts -init and -fini], ac_cv_c_dll_init_fini,
956 rizwank 1.1 [WINE_TRY_CFLAGS([-fPIC -shared -Wl,-Bsymbolic,-init,__wine_spec_init,-fini,__wine_spec_fini],
957 ac_cv_c_dll_init_fini="yes",ac_cv_c_dll_init_fini="no")])
958 if test "$ac_cv_c_dll_init_fini" = "yes"
959 then
960 LDDLLFLAGS="$LDDLLFLAGS,-init,__wine_spec_init,-fini,__wine_spec_fini"
961 fi
962
963 AC_CACHE_CHECK([whether the linker accepts version scripts], ac_cv_c_ld_version_scripts,
964 [echo '{ global: *; };' >conftest.map
965 WINE_TRY_CFLAGS([-fPIC -shared -Wl,--version-script=conftest.map],
966 ac_cv_c_ld_version_scripts="yes",ac_cv_c_ld_version_scripts="no")
967 rm -f conftest.map])
968 if test "$ac_cv_c_ld_version_scripts" = "yes"
969 then
970 LDSHARED="$LDSHARED \$(VERSCRIPT:%=-Wl,--version-script=%)"
971 fi
972
973 AC_CACHE_CHECK([whether the linker accepts --export-dynamic], ac_cv_c_export_dynamic,
974 [WINE_TRY_CFLAGS([-fPIC -Wl,--export-dynamic],
975 ac_cv_c_export_dynamic="yes",ac_cv_c_export_dynamic="no")])
976 if test "$ac_cv_c_export_dynamic" = "yes"
977 rizwank 1.1 then
978 AC_SUBST(LDEXECFLAGS,["-Wl,--export-dynamic"])
979 fi
980
981 case $host_cpu in
982 *i[[3456789]]86*)
983 AC_CACHE_CHECK([whether we can relocate the executable to 0x77f00000], ac_cv_ld_reloc_exec,
984 [WINE_TRY_CFLAGS([-Wl,--section-start,.interp=0x77f00400],
985 ac_cv_ld_reloc_exec="yes", ac_cv_ld_reloc_exec="no")])
986 if test "$ac_cv_ld_reloc_exec" = "yes"
987 then
988 LDEXECFLAGS="$LDEXECFLAGS -Wl,--section-start,.interp=0x77f00400"
989 fi
990 ;;
991 esac
992
993 else
994 AC_CACHE_CHECK(whether we can build a UnixWare (Solaris) dll, ac_cv_c_dll_unixware,
995 [WINE_TRY_SHLIB_FLAGS([-fPIC -Wl,-G,-h,conftest.so.1.0,-B,symbolic],
996 ac_cv_c_dll_unixware="yes",ac_cv_c_dll_unixware="no")])
997 if test "$ac_cv_c_dll_unixware" = "yes"
998 rizwank 1.1 then
999 LDSHARED="\$(CC) -Wl,-G \$(SONAME:%=-Wl,-h,%)"
1000 LDDLLFLAGS="-Wl,-G,-B,symbolic"
1001
1002 else
1003 AC_CACHE_CHECK(whether we can build a Mach-O (Mac OS X/Darwin) dll, ac_cv_c_dll_macho,
1004 [WINE_TRY_SHLIB_FLAGS([-bundle], ac_cv_c_dll_macho="yes", ac_cv_c_dll_macho="no")])
1005 if test "$ac_cv_c_dll_macho" = "yes"
1006 then
1007 LIBEXT="dylib"
1008 LDDLLFLAGS="-bundle -flat_namespace -undefined suppress"
1009 LDSHARED="\$(CC) -dynamiclib"
1010 CFLAGS="$CFLAGS -ffixed-r13 -no-cpp-precomp"
1011 STRIP="$STRIP -u -r"
1012 dnl Relocate wine executable
1013 AC_SUBST(LDEXECFLAGS,"-seg1addr 0x120000")
1014 dnl Relocate libwine.dyld too
1015 AC_SUBST(LDLIBWINEFLAGS,"-seg1addr 0x140000")
1016 dnl declare needed frameworks
1017 AC_SUBST(COREFOUNDATIONLIB,"-framework CoreFoundation")
1018 AC_SUBST(IOKITLIB,"-framework IOKit")
1019 rizwank 1.1 dnl using IOKit imply we use CoreFoundation too
|
1021 rizwank 1.1 else
1022 AC_CACHE_CHECK(whether we can build an HP-UX dll, ac_cv_c_dll_hpux,
1023 [WINE_TRY_SHLIB_FLAGS([-shared], ac_cv_c_dll_hpux="yes", ac_cv_c_dll_hpux="no")])
1024 if test "$ac_cv_c_dll_hpux" = "yes"
1025 then
1026 LIBEXT="sl"
1027 DLLEXT=".sl"
1028 LDDLLFLAGS="-shared -fPIC"
1029 LDSHARED="\$(CC) -shared"
1030 fi
1031 fi
1032 fi
1033 fi
1034 fi
1035
1036 dnl Check for cross compiler to build test programs
1037 AC_SUBST(CROSSTEST,"")
1038 if test "$cross_compiling" = "no"
1039 then
1040 AC_CHECK_PROGS(CROSSCC,i586-mingw32msvc-gcc i386-mingw32msvc-gcc i386-mingw32-gcc mingw-gcc,false)
1041 AC_CHECK_PROGS(DLLTOOL,i586-mingw32msvc-dlltool i386-mingw32msvc-dlltool i386-mingw32-dlltool mingw-dlltool,false)
1042 rizwank 1.1 AC_CHECK_PROGS(CROSSWINDRES,i586-mingw32msvc-windres i386-mingw32msvc-windres i386-mingw32-windres mingw-windres,false)
1043 if test "$CROSSCC" != "false"; then CROSSTEST="\$(CROSSTEST)"; fi
1044 fi
1045 ;;
1046 esac
1047
1048 if test "$LIBEXT" = "a"; then
1049 AC_MSG_ERROR(
1050 [could not find a way to build shared libraries.
1051 It is currently not possible to build Wine without shared library
1052 (.so) support to allow transparent switch between .so and .dll files.
1053 If you are using Linux, you will need a newer binutils.]
1054 )
1055 fi
1056
1057 case $build_os in
1058 cygwin*|mingw32*)
1059 AC_SUBST(LDPATH,"PATH=\"\$(TOOLSDIR)/libs/unicode:\$\$PATH\"") ;;
1060 darwin*|macosx*)
1061 AC_SUBST(LDPATH,"DYLD_LIBRARY_PATH=\"\$(TOOLSDIR)/libs/unicode:\$\$DYLD_LIBRARY_PATH\"") ;;
1062 *)
1063 rizwank 1.1 AC_SUBST(LDPATH,"LD_LIBRARY_PATH=\"\$(TOOLSDIR)/libs/unicode:\$\$LD_LIBRARY_PATH\"") ;;
1064 esac
1065
1066 dnl Mingw needs explicit msvcrt for linking libwine and winsock for wininet
1067 case $host_os in
1068 mingw32*)
1069 AC_SUBST(CRTLIBS,"-lmsvcrt")
1070 AC_SUBST(SOCKETLIBS,"-lws2_32")
1071 ;;
1072 esac
1073
1074 case $host_os in
1075 linux*)
1076 case $host_cpu in
1077 *i[[3456789]]86*) AC_SUBST(WINE_BINARIES,"wine-glibc wine-kthread wine-pthread wine-preloader") ;;
1078 *) AC_SUBST(WINE_BINARIES,"wine-glibc wine-kthread wine-pthread") ;;
1079 esac
1080 AC_SUBST(MAIN_BINARY,"wine-glibc")
1081 ;;
1082 darwin*)
1083 AC_SUBST(WINE_BINARIES,"wine-pthread")
1084 rizwank 1.1 AC_SUBST(MAIN_BINARY,"wine-pthread")
1085 ;;
1086 *)
1087 AC_SUBST(WINE_BINARIES,"wine-kthread")
1088 AC_SUBST(MAIN_BINARY,"wine-kthread")
1089 ;;
1090 esac
1091
1092 dnl **** Get the soname for libraries that we load dynamically ****
1093
1094 if test "$LIBEXT" = "so" -o "$LIBEXT" = "dylib"
1095 then
1096 WINE_GET_SONAME(X11,XCreateWindow,[$X_LIBS $X_EXTRA_LIBS])
1097 WINE_GET_SONAME(Xext,XextCreateExtension,[$X_LIBS -lX11 $X_EXTRA_LIBS])
1098 WINE_GET_SONAME(Xi,XOpenDevice,[$X_LIBS -lXext -lX11 $X_EXTRA_LIBS])
1099 WINE_GET_SONAME(Xrender,XRenderQueryExtension,[$X_LIBS -lXext -lX11 $X_EXTRA_LIBS])
1100 WINE_GET_SONAME(Xrandr,XRRQueryExtension,[$X_LIBS -lXext -lX11 $X_EXTRA_LIBS])
1101 WINE_GET_SONAME(freetype,FT_Init_FreeType,[$X_LIBS])
1102 WINE_GET_SONAME(GL,glXQueryExtension,[$X_LIBS $X_EXTRA_LIBS])
1103 WINE_GET_SONAME(txc_dxtn,fetch_2d_texel_rgba_dxt1)
1104 WINE_GET_SONAME(cups,cupsGetDefault)
1105 rizwank 1.1 WINE_GET_SONAME(jack,jack_client_new)
1106 WINE_GET_SONAME(fontconfig,FcInit)
1107 WINE_GET_SONAME(ssl,SSL_library_init)
1108 WINE_GET_SONAME(crypto,BIO_new_socket)
1109 WINE_GET_SONAME(ncurses,waddch)
1110 WINE_GET_SONAME(curses,waddch)
1111 WINE_GET_SONAME(jpeg,jpeg_start_decompress)
1112 WINE_GET_SONAME(ungif,DGifOpen)
1113 WINE_GET_SONAME(gif,DGifOpen)
1114 WINE_GET_SONAME(lcms,cmsOpenProfileFromFile)
1115 WINE_GET_SONAME(capi20,capi20_isinstalled)
1116 fi
1117
1118
1119 dnl **** Check for functions ****
1120
1121 AC_FUNC_ALLOCA()
1122 AC_CHECK_FUNCS(\
1123 _lwp_create \
1124 _lwp_self \
1125 _pclose \
1126 rizwank 1.1 _popen \
1127 _snprintf \
1128 _spawnvp \
1129 _stricmp \
1130 _strnicmp \
1131 _vsnprintf \
1132 chsize \
1133 clone \
1134 epoll_create \
1135 ffs \
1136 finite \
1137 fork \
1138 fpclass \
1139 fstatfs \
1140 fstatvfs \
1141 ftruncate \
1142 futimes \
1143 getnetbyname \
1144 getopt_long \
1145 getpagesize \
1146 getprotobyname \
1147 rizwank 1.1 getprotobynumber \
1148 getpwuid \
1149 getservbyport \
1150 gettid \
1151 gettimeofday \
1152 getuid \
1153 inet_network \
1154 lstat \
1155 memmove \
1156 mmap \
1157 pclose \
1158 popen \
1159 pread \
1160 pwrite \
1161 readlink \
1162 rfork \
1163 sched_yield \
1164 select \
1165 sendmsg \
1166 settimeofday \
1167 sigaltstack \
1168 rizwank 1.1 sigprocmask \
1169 snprintf \
1170 spawnvp \
1171 statfs \
1172 statvfs \
1173 strcasecmp \
1174 strerror \
1175 strncasecmp \
1176 tcgetattr \
1177 timegm \
1178 usleep \
1179 vsnprintf \
1180 wait4 \
1181 waitpid \
1182 )
1183
1184 dnl **** Checks for headers that depend on other ones ****
1185
1186 AC_CHECK_HEADERS(sys/mount.h sys/user.h,,,
1187 [#include <sys/types.h>
1188 #if HAVE_SYS_PARAM_H
1189 rizwank 1.1 # include <sys/param.h>
1190 #endif])
1191
1192 AC_CHECK_HEADERS([net/if.h net/if_arp.h net/if_dl.h net/if_types.h net/route.h],,,
1193 [#include <sys/types.h>
1194 #if HAVE_SYS_SOCKET_H
1195 # include <sys/socket.h>
1196 #endif])
1197
1198 AC_CHECK_HEADERS([resolv.h],,,
1199 [#include <sys/types.h>
1200 #if HAVE_SYS_SOCKET_H
1201 # include <sys/socket.h>
1202 #endif
1203 #if HAVE_NETINET_IN_H
1204 # include <netinet/in.h>
1205 #endif
1206 #if HAVE_ARPA_NAMESER_H
1207 # include <arpa/nameser.h>
1208 #endif])
1209
1210 rizwank 1.1 AC_CHECK_HEADERS(ucontext.h,,,[#include <signal.h>])
1211
1212 dnl **** Check for IPX headers (currently Linux only) ****
1213
1214 AC_CACHE_CHECK([for GNU style IPX support], ac_cv_c_ipx_gnu,
1215 AC_TRY_COMPILE(
1216 [#include <sys/types.h>
1217 #ifdef HAVE_SYS_SOCKET_H
1218 # include <sys/socket.h>
1219 #endif
1220 #include <netipx/ipx.h>],
1221 [((struct sockaddr_ipx *)0)->sipx_family == AF_IPX],
1222 [ac_cv_c_ipx_gnu="yes"],
1223 [ac_cv_c_ipx_gnu="no"])
1224 )
1225 if test "$ac_cv_c_ipx_gnu" = "yes"
1226 then
1227 AC_DEFINE(HAVE_IPX_GNU, 1, [Define if IPX should use netipx/ipx.h from libc])
1228 fi
1229
1230 if test "$ac_cv_c_ipx_gnu" = "no"
1231 rizwank 1.1 then
1232 AC_CACHE_CHECK([for linux style IPX support], ac_cv_c_ipx_linux,
1233 AC_TRY_COMPILE(
1234 [#include <sys/types.h>
1235 #ifdef HAVE_SYS_SOCKET_H
1236 # include <sys/socket.h>
1237 #endif
1238 #include <asm/types.h>
1239 #include <linux/ipx.h>],
1240 [((struct sockaddr_ipx *)0)->sipx_family == AF_IPX],
1241 [ac_cv_c_ipx_linux="yes"],
1242 [ac_cv_c_ipx_linux="no"])
1243 )
1244 if test "$ac_cv_c_ipx_linux" = "yes"
1245 then
1246 AC_DEFINE(HAVE_IPX_LINUX, 1, [Define if IPX includes are taken from Linux kernel])
1247 fi
1248 fi
1249
1250 dnl **** Check for types ****
1251
1252 rizwank 1.1 AC_C_CONST
1253 AC_C_INLINE
1254 AC_CHECK_TYPES([mode_t, off_t, pid_t, size_t, ssize_t, long long, fsblkcnt_t, fsfilcnt_t])
1255 AC_CHECK_TYPES([sigset_t],,,[#include <signal.h>])
1256
1257 AC_CACHE_CHECK([whether linux/input.h is for real],
1258 wine_cv_linux_input_h,
1259 AC_TRY_COMPILE([
1260 #include <linux/input.h>
1261 ] , [
1262 int foo = EVIOCGBIT(EV_ABS,42);
1263 int bar = BTN_PINKIE;
1264 int fortytwo = 42;
1265 ],
1266 wine_cv_linux_input_h=yes,
1267 wine_cv_linux_input_h=no,
1268 no
1269 )
1270 )
1271 if test "$wine_cv_linux_input_h" = "yes"
1272 then
1273 rizwank 1.1 AC_DEFINE(HAVE_CORRECT_LINUXINPUT_H, 1,
1274 [Define if we have linux/input.h AND it contains the INPUT event API])
1275 fi
1276
1277 AC_CACHE_CHECK([for sigaddset],wine_cv_have_sigaddset,
1278 AC_TRY_LINK([#include <signal.h>],[sigset_t set; sigaddset(&set,SIGTERM);],
1279 wine_cv_have_sigaddset=yes,wine_cv_have_sigaddset=no))
1280 if test "$wine_cv_have_sigaddset" = "yes"
1281 then
1282 AC_DEFINE(HAVE_SIGADDSET, 1, [Define if sigaddset is supported])
1283 fi
1284
1285
1286 AC_CACHE_CHECK([whether we can use re-entrant gethostbyname_r Linux style],
1287 wine_cv_linux_gethostbyname_r_6,
1288 AC_TRY_LINK([
1289 #include <netdb.h>
1290 ], [
1291 char *name=NULL;
1292 struct hostent he;
1293 struct hostent *result;
1294 rizwank 1.1 char *buf=NULL;
1295 int bufsize=0;
1296 int res,errnr;
1297 char *addr=NULL;
1298 int addrlen=0;
1299 int addrtype=0;
1300 res=gethostbyname_r(name,&he,buf,bufsize,&result,&errnr);
1301 res=gethostbyaddr_r(addr, addrlen, addrtype,&he,buf,bufsize,&result,&errnr);
1302 ],
1303 wine_cv_linux_gethostbyname_r_6=yes,
1304 wine_cv_linux_gethostbyname_r_6=no
1305 )
1306 )
1307 if test "$wine_cv_linux_gethostbyname_r_6" = "yes"
1308 then
1309 AC_DEFINE(HAVE_LINUX_GETHOSTBYNAME_R_6, 1,
1310 [Define if Linux-style gethostbyname_r and gethostbyaddr_r are available])
1311 fi
1312
1313 if test "$ac_cv_header_linux_joystick_h" = "yes"
1314 then
1315 rizwank 1.1 AC_CACHE_CHECK([whether linux/joystick.h uses the Linux 2.2+ API],
1316 wine_cv_linux_joystick_22_api,
1317 AC_TRY_COMPILE([
1318 #include <sys/ioctl.h>
1319 #include <linux/joystick.h>
1320
1321 struct js_event blub;
1322 #if !defined(JS_EVENT_AXIS) || !defined(JS_EVENT_BUTTON)
1323 #error "no 2.2 header"
1324 #endif
1325 ],/*empty*/,
1326 wine_cv_linux_joystick_22_api=yes,
1327 wine_cv_linux_joystick_22_api=no,
1328 wine_cv_linux_joystick_22_api=no
1329 )
1330 )
1331 if test "$wine_cv_linux_joystick_22_api" = "yes"
1332 then
1333 AC_DEFINE(HAVE_LINUX_22_JOYSTICK_API, 1,
1334 [Define if <linux/joystick.h> defines the Linux 2.2 joystick API])
1335 fi
1336 rizwank 1.1 fi
1337
1338 dnl **** statfs checks ****
1339
1340 if test "$ac_cv_header_sys_vfs_h" = "yes"
1341 then
1342 AC_CACHE_CHECK( [whether sys/vfs.h defines statfs],
1343 wine_cv_sys_vfs_has_statfs,
1344 AC_TRY_COMPILE([
1345 #include <sys/types.h>
1346 #ifdef HAVE_SYS_PARAM_H
1347 # include <sys/param.h>
1348 #endif
1349 #include <sys/vfs.h>
1350 ],[
1351 struct statfs stfs;
1352
1353 memset(&stfs,0,sizeof(stfs));
1354 ],wine_cv_sys_vfs_has_statfs=yes,wine_cv_sys_vfs_has_statfs=no
1355 )
1356 )
1357 rizwank 1.1 if test "$wine_cv_sys_vfs_has_statfs" = "yes"
1358 then
1359 AC_DEFINE(STATFS_DEFINED_BY_SYS_VFS, 1,
1360 [Define if the struct statfs is defined by <sys/vfs.h>])
1361 fi
1362 fi
1363
1364 if test "$ac_cv_header_sys_statfs_h" = "yes"
1365 then
1366 AC_CACHE_CHECK( [whether sys/statfs.h defines statfs],
1367 wine_cv_sys_statfs_has_statfs,
1368 AC_TRY_COMPILE([
1369 #include <sys/types.h>
1370 #ifdef HAVE_SYS_PARAM_H
1371 # include <sys/param.h>
1372 #endif
1373 #include <sys/statfs.h>
1374 ],[
1375 struct statfs stfs;
1376 ],wine_cv_sys_statfs_has_statfs=yes,wine_cv_sys_statfs_has_statfs=no
1377 )
1378 rizwank 1.1 )
1379 if test "$wine_cv_sys_statfs_has_statfs" = "yes"
1380 then
1381 AC_DEFINE(STATFS_DEFINED_BY_SYS_STATFS, 1,
1382 [Define if the struct statfs is defined by <sys/statfs.h>])
1383 fi
1384 fi
1385
1386 if test "$ac_cv_header_sys_mount_h" = "yes"
1387 then
1388 AC_CACHE_CHECK( [whether sys/mount.h defines statfs],
1389 wine_cv_sys_mount_has_statfs,
1390 AC_TRY_COMPILE([
1391 #include <sys/types.h>
1392 #ifdef HAVE_SYS_PARAM_H
1393 # include <sys/param.h>
1394 #endif
1395 #include <sys/mount.h>
1396 ],[
1397 struct statfs stfs;
1398 ],wine_cv_sys_mount_has_statfs=yes,wine_cv_sys_mount_has_statfs=no
1399 rizwank 1.1 )
1400 )
1401 if test "$wine_cv_sys_mount_has_statfs" = "yes"
1402 then
1403 AC_DEFINE(STATFS_DEFINED_BY_SYS_MOUNT, 1,
1404 [Define if the struct statfs is defined by <sys/mount.h>])
1405 fi
1406 fi
1407
1408 dnl **** FIXME: what about mixed cases, where we need two of them? ***
1409
1410 dnl Check for statfs members
1411 AC_CHECK_MEMBERS([struct statfs.f_bfree, struct statfs.f_bavail, struct statfs.f_frsize, struct statfs.f_ffree, struct statfs.f_favail, struct statfs.f_namelen],,,
1412 [#include <sys/types.h>
1413 #ifdef HAVE_SYS_PARAM_H
1414 # include <sys/param.h>
1415 #endif
1416 #ifdef STATFS_DEFINED_BY_SYS_MOUNT
1417 # include <sys/mount.h>
1418 #else
1419 # ifdef STATFS_DEFINED_BY_SYS_VFS
1420 rizwank 1.1 # include <sys/vfs.h>
1421 # else
1422 # ifdef STATFS_DEFINED_BY_SYS_STATFS
1423 # include <sys/statfs.h>
1424 # endif
1425 # endif
1426 #endif])
1427
1428 AC_CHECK_MEMBERS([struct statvfs.f_blocks],,,
1429 [#ifdef HAVE_SYS_STATVFS_H
1430 #include <sys/statvfs.h>
1431 #endif])
1432
1433 dnl Check for socket structure members
1434 AC_CHECK_MEMBERS([struct msghdr.msg_accrights, struct sockaddr.sa_len, struct sockaddr_un.sun_len],,,
1435 [#include <sys/types.h>
1436 #ifdef HAVE_SYS_SOCKET_H
1437 # include <sys/socket.h>
1438 #endif
1439 #ifdef HAVE_SYS_UN_H
1440 # include <sys/un.h>
1441 rizwank 1.1 #endif])
1442
1443 dnl Check for siginfo_t members
1444 AC_CHECK_MEMBERS([siginfo_t.si_fd],,,[#include <signal.h>])
1445
1446 dnl Check for struct option
1447 AC_CHECK_MEMBERS([struct option.name],,,
1448 [#ifdef HAVE_GETOPT_H
1449 #include <getopt.h>
1450 #endif])
1451
1452 dnl Check for stat.st_blocks
1453 AC_CHECK_MEMBERS([struct stat.st_blocks])
1454
1455 dnl *** check for the need to define platform-specific symbols
1456
1457 case $host_cpu in
1458 *i[[3456789]]86*) WINE_CHECK_DEFINE([__i386__]) ;;
1459 *alpha*) WINE_CHECK_DEFINE([__ALPHA__]) ;;
1460 *sparc*) WINE_CHECK_DEFINE([__sparc__]) ;;
1461 *powerpc*) WINE_CHECK_DEFINE([__powerpc__]) ;;
1462 rizwank 1.1 esac
1463
1464 case $host_vendor in
1465 *sun*) WINE_CHECK_DEFINE([__sun__]) ;;
1466 esac
1467
1468 dnl **** Generate output files ****
1469
1470 AH_TOP([#define __WINE_CONFIG_H])
1471
1472 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/d3ddevice)
1473 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/dclipper)
1474 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/ddraw)
1475 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/direct3d)
1476 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/dpalette)
1477 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/dsurface)
1478 WINE_CONFIG_EXTRA_DIR(dlls/gdi/enhmfdrv)
1479 WINE_CONFIG_EXTRA_DIR(dlls/gdi/mfdrv)
1480 WINE_CONFIG_EXTRA_DIR(dlls/kernel/messages)
1481 WINE_CONFIG_EXTRA_DIR(dlls/user/dde)
1482 WINE_CONFIG_EXTRA_DIR(dlls/user/resources)
1483 rizwank 1.1 WINE_CONFIG_EXTRA_DIR(dlls/wineps/data)
1484 WINE_CONFIG_EXTRA_DIR(include/wine)
1485 WINE_CONFIG_EXTRA_DIR(misc)
1486 WINE_CONFIG_EXTRA_DIR(programs/regedit/tests)
1487 WINE_CONFIG_EXTRA_DIR(windows)
1488
1489 MAKE_RULES=Make.rules
1490 AC_SUBST_FILE(MAKE_RULES)
1491
1492 MAKE_DLL_RULES=dlls/Makedll.rules
1493 AC_SUBST_FILE(MAKE_DLL_RULES)
1494
1495 MAKE_TEST_RULES=dlls/Maketest.rules
1496 AC_SUBST_FILE(MAKE_TEST_RULES)
1497
1498 MAKE_LIB_RULES=libs/Makelib.rules
1499 AC_SUBST_FILE(MAKE_LIB_RULES)
1500
1501 MAKE_PROG_RULES=programs/Makeprog.rules
1502 AC_SUBST_FILE(MAKE_PROG_RULES)
1503
1504 rizwank 1.1 AC_CONFIG_FILES([
1505 Make.rules
1506 dlls/Makedll.rules
1507 dlls/Maketest.rules
1508 libs/Makelib.rules
1509 programs/Makeprog.rules
1510 Makefile
1511 dlls/Makefile
1512 dlls/advapi32/Makefile
1513 dlls/advapi32/tests/Makefile
1514 dlls/advpack/Makefile
1515 dlls/advpack/tests/Makefile
1516 dlls/amstream/Makefile
1517 dlls/atl/Makefile
1518 dlls/avicap32/Makefile
1519 dlls/avifil32/Makefile
1520 dlls/cabinet/Makefile
|