Newer
Older
dnl Process this file with autoconf to produce a configure script.
dnl Original author: Michael Patra
dnl See ChangeLog file for detailed change history.
m4_define(WINE_VERSION,regexp(m4_include(VERSION),[version \([-.0-9A-Za-z]+\)],[\1]))
AC_PREREQ(2.53)
AC_INIT([Wine],WINE_VERSION)
AC_CONFIG_SRCDIR(server/atom.c)
AC_CONFIG_HEADERS(include/config.h)
LIBEXT=so # library type .so or .a
AC_ARG_ENABLE(debug, AC_HELP_STRING([--disable-debug],[compile out all debugging messages]))
AC_ARG_ENABLE(trace, AC_HELP_STRING([--disable-trace],[compile out TRACE messages]))
AC_ARG_ENABLE(opengl,AC_HELP_STRING([--enable-opengl],[force usage of OpenGL even if the latter is thread-safe via pthread]))
AC_ARG_WITH(curses, AC_HELP_STRING([--without-curses],[do not use curses]))
AC_ARG_WITH(reentrant-x,AC_HELP_STRING([--without-reentrant-x],[compile for use with non-reentrant X libraries]))
if test "x$enable_debug" = "xno"
AC_DEFINE(NO_DEBUG_MSGS,1,[Define to disable all debug messages.])
fi
if test "x$enable_trace" = "xno" -o "x$enable_debug" = "xno"
then
AC_DEFINE(NO_TRACE_MSGS,1,[Define to disable trace messages.])
AC_CANONICAL_TARGET
dnl **** Just additional warning checks, since AC_PROG just sets 'yacc' even
dnl **** without one present.
AC_CHECK_PROGS(XYACC,$YACC bison yacc,none)
if test "$XYACC" = "none"
then
AC_MSG_ERROR([no suitable bison/yacc found. Please install the 'bison' package.])
AC_CHECK_PROGS(XLEX,$LEX flex lex,none)
if test "$XLEX" = "none"
then
AC_MSG_ERROR([no suitable lex found. Please install the 'flex' package.])
AC_CHECK_PROG(C2MAN,c2man,c2man,\$(TOPSRCDIR)/tools/c2man.pl)
AC_PATH_PROG(LDCONFIG, ldconfig, true, /sbin:/usr/sbin:$PATH)
dnl Check for lint
AC_CHECK_PROGS(LINT, lclint lint)
if test "$LINT" = "lint"
then
LINTFLAGS="$LINTFLAGS -errchk=%all,no%longptr64 -errhdr=%user -Ncheck=macro -Nlevel=4"
dnl LINTFLAGS='-D_SIZE_T "-Dsize_t=unsigned long" -errchk=longptr64'
fi
AC_SUBST(LINT)
AC_SUBST(LINTFLAGS)
case $host_os in
*cygwin*) LDCOMBINE="ld -r --enable-stdcall-fixup" ;;
*) LDCOMBINE="ld -r" ;;
esac
AC_SUBST(LDCOMBINE)
AC_CHECK_LIB(m,sqrt)
dnl Check for -lossaudio for NetBSD
AC_CHECK_LIB(ossaudio,_oss_ioctl)
AC_CHECK_FUNCS(iswalnum,,AC_CHECK_LIB(w,iswalnum))
dnl Check for -lnsl for Solaris
AC_CHECK_FUNCS(gethostbyname,,AC_CHECK_LIB(nsl,gethostbyname))
dnl Check for -lsocket for Solaris
AC_CHECK_FUNCS(connect,,AC_CHECK_LIB(socket,connect))
dnl Check for -lresolv for Solaris
AC_CHECK_FUNCS(inet_aton,,AC_CHECK_LIB(resolv,inet_aton))
dnl Check for -lmmap for OS/2
AC_CHECK_LIB(mmap,mmap)
UTILLIBS=""
AC_SUBST(UTILLIBS)
[AC_CHECK_LIB(util,openpty,
[AC_DEFINE(HAVE_OPENPTY)
AC_CHECK_HEADERS(dlfcn.h,
[AC_CHECK_FUNCS(dlopen,,
[AC_CHECK_LIB(dl,dlopen,
[AC_DEFINE(HAVE_DLOPEN,1,[Define if you have dlopen])
LIBEXT="a"
)
JPEGLIB=""
AC_SUBST(JPEGLIB)
AC_CHECK_HEADERS(jpeglib.h,
AC_CHECK_LIB(jpeg,jpeg_start_decompress,
AC_DEFINE(HAVE_LIBJPEG,1,[Define if you have libjpeg including devel headers])
JPEGLIB="-ljpeg"
)
)
AC_SUBST(XLIB)
if test "$have_x" = "yes"
then
ac_save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
dnl *** All of the following tests require X11/Xlib.h
dnl *** Check for X keyboard extension
AC_CHECK_HEADERS(X11/XKBlib.h,
[ dnl *** If X11/XKBlib.h exists...
AC_CHECK_LIB(X11, XkbQueryExtension,
AC_DEFINE(HAVE_XKB, 1, [Define if you have the XKB extension]),,
$X_LIBS -lXext -lX11 $X_EXTRA_LIBS)
],
AC_MSG_WARN([[Xkb extension not found, Wine will be built without it]])
dnl *** Check for X Shm extension
AC_CHECK_HEADERS(X11/extensions/XShm.h,
[ dnl *** If X11/extensions/XShm.h exists...
AC_CHECK_LIB(Xext, XShmQueryExtension,
AC_DEFINE(HAVE_LIBXXSHM, 1, [Define if you have the X Shm extension]),,
$X_LIBS -lXext -lX11 $X_EXTRA_LIBS)
],
AC_MSG_WARN([[XShm extension not found, Wine will be built without it]]),
[#include <X11/Xlib.h>])
dnl *** Check for X shape extension
AC_CHECK_HEADERS(X11/extensions/shape.h,
[ dnl *** If X11/extensions/shape.h exists...
AC_CHECK_LIB(Xext,XShapeQueryExtension,
AC_DEFINE(HAVE_LIBXSHAPE, 1, [Define if you have the X Shape extension]),,
$X_LIBS -lXext -lX11 $X_EXTRA_LIBS)
],
AC_MSG_WARN([[XShape extension not found, Wine will be built without it]]),
[#include <X11/Xlib.h>])
dnl *** Check for XFree86 DGA / DGA 2.0 extension
AC_CHECK_HEADERS(X11/extensions/xf86dga.h,
[ dnl *** If X11/extensions/xf86dga.h exists, check
dnl *** for XDGAQueryExtension()...
AC_CHECK_LIB(Xxf86dga, XDGAQueryExtension,
[ dnl *** If found...
AC_DEFINE(HAVE_LIBXXF86DGA2, 1,
[Define if you have the Xxf86dga library version 2])
X_PRE_LIBS="$X_PRE_LIBS -lXxf86dga"
],
[ dnl *** If not found, look for XF86DGAQueryExtension()
dnl *** instead (DGA 2.0 not found)...
AC_CHECK_LIB(Xxf86dga, XF86DGAQueryExtension,
[ AC_DEFINE(HAVE_LIBXXF86DGA, 1,
[Define if you have the Xxf86dga library version 1])
X_PRE_LIBS="$X_PRE_LIBS -lXxf86dga"
],,
$X_LIBS -lXext -lX11 $X_EXTRA_LIBS
)
],
$X_LIBS -lXext -lX11 $X_EXTRA_LIBS
)
],
AC_MSG_WARN([[DGA extension not found, Wine will be built without it]]),
[#include <X11/Xlib.h>])
dnl *** Check for XFree86 VMODE extension
AC_CHECK_HEADERS(X11/extensions/xf86vmode.h,
[ dnl *** If X11/extensions/xf86vmode.h exists...
AC_CHECK_LIB(Xxf86vm, XF86VidModeQueryExtension,
[ AC_DEFINE(HAVE_LIBXXF86VM, 1, [Define if you have the Xxf86vm library])
X_PRE_LIBS="$X_PRE_LIBS -lXxf86vm"
],,
$X_LIBS -lXext -lX11 $X_EXTRA_LIBS
)
],
AC_MSG_WARN([[XFree86 VMODE extension not found, Wine will be built without it]]),
[#include <X11/Xlib.h>])
dnl *** Check for XVideo extension supporting XvImages
AC_CHECK_HEADERS(X11/extensions/Xvlib.h,
[ dnl *** If X11/extensions/Xvlib.h exists...
AC_CHECK_LIB(Xv, XvShmCreateImage,
[ AC_DEFINE(HAVE_XVIDEO, 1, [Define if the X libraries support XVideo])
X_PRE_LIBS="$X_PRE_LIBS -lXv"
],,
$X_LIBS -lXext -lX11 $X_EXTRA_LIBS
)
],
AC_MSG_WARN([[XVideo extension not found, Wine will be built without it]]),
[#include <X11/Xlib.h>])
dnl *** Check for XRender extension
AC_CHECK_HEADERS(X11/extensions/Xrender.h,
[ dnl *** If X11/extensions/Xrender.h exists...
AC_CHECK_LIB(Xrender, XRenderQueryExtension,
[ AC_DEFINE(HAVE_LIBXRENDER, 1, [Define if you have the XRender extension library])
X_PRE_LIBS="$X_PRE_LIBS -lXrender"
],,
$X_LIBS -lXext -lX11 $X_EXTRA_LIBS
)
],
AC_MSG_WARN([[XRender extension not found, Wine will be built without it]]),
[#include <X11/Xlib.h>])
]
) dnl *** End of X11/Xlib.h check
if test "x$enable_opengl" != "xno"
if test -f /usr/X11R6/lib/libGL.a -a ! -f /usr/X11R6/lib/libGL.so

Alexandre Julliard
committed
then
AC_MSG_ERROR([/usr/X11R6/lib/libGL.a is present on your system.
This prevents linking to OpenGL. Delete the file and restart configure.])
fi
AC_CHECK_HEADERS(GL/gl.h GL/glx.h)
if test "$ac_cv_header_GL_gl_h" = "yes" -a "$ac_cv_header_GL_glx_h" = "yes"
AC_CHECK_HEADERS(GL/glext.h,,,[#include <GL/glx.h>])
dnl Check for some problems due to old Mesa versions
AC_CACHE_CHECK([for up-to-date OpenGL version], wine_cv_opengl_version_OK,
AC_TRY_COMPILE(
[#include <GL/gl.h>],
[GLenum test = GL_UNSIGNED_SHORT_5_6_5;],
[wine_cv_opengl_version_OK="yes"],
[wine_cv_opengl_version_OK="no"]
)
dnl Check for the thread-safety of the OpenGL library
AC_CACHE_CHECK([for thread-safe OpenGL version],
[saved_libs=$LIBS
LIBS="$X_LIBS -lGL"
AC_TRY_LINK([],[pthread_getspecific();],
[wine_cv_opengl_version_threadsafe="yes"],
[wine_cv_opengl_version_threadsafe="no"])
LIBS=$saved_libs]
if test "$wine_cv_opengl_version_OK" = "yes" -a \( "$wine_cv_opengl_version_threadsafe" = "no" -o "x$enable_opengl" = "xyes" \)
dnl Check for the presence of the library
AC_CHECK_LIB(GL,glXCreateContext,
X_PRE_LIBS="$X_PRE_LIBS -lGL"
,,
$X_LIBS -lXext -lX11 -lm $X_EXTRA_LIBS)

Alexandre Julliard
committed
if test "$ac_cv_lib_GL_glXCreateContext" = "yes"
AC_DEFINE(HAVE_OPENGL, 1, [Define if OpenGL is present on the system])
AC_CHECK_LIB(GL,glXGetProcAddressARB,
AC_DEFINE(HAVE_GLX_GETPROCADDRESS, 1,
[Define if the OpenGL library supports the glXGetProcAddressARB call]),,
$X_LIBS -lXext -lX11 -lm $X_EXTRA_LIBS)

Alexandre Julliard
committed
if test "$ac_cv_lib_GL_glXGetProcAddressARB" = "yes"
AC_CACHE_CHECK([for OpenGL extension functions prototypes], wine_cv_extension_prototypes,
[AC_TRY_COMPILE([#include <GL/gl.h>
#ifdef HAVE_GL_GLEXT_H
# include <GL/glext.h>
#endif
],
[wine_cv_extension_prototypes="yes"],

Alexandre Julliard
committed
if test "$wine_cv_extension_prototypes" = "yes"
AC_DEFINE(HAVE_GLEXT_PROTOTYPES, 1,
[Define if the OpenGL headers define extension typedefs])
dnl Check for GLU32 library.
AC_CHECK_LIB(GLU,gluLookAt,
[X_PRE_LIBS="$X_PRE_LIBS -lGLU"
GLU32FILES='$(GLU32FILES)']
,,
$X_LIBS $X_PRE_LIBS -lXext -lX11 -lm $X_EXTRA_LIBS
)
fi
fi
else
XLIB=""
X_CFLAGS=""
X_LIBS=""
fi
dnl **** Check which curses lib to use ***
CURSESLIBS=""
if test "x$with_curses" != "xno"
AC_CHECK_HEADERS(ncurses.h,
[AC_CHECK_LIB(ncurses,waddch,
[AC_DEFINE(HAVE_LIBNCURSES, 1, [Define if you have the ncurses library (-lncurses)])
CURSESLIBS="-lncurses"],
[AC_CHECK_HEADERS(curses.h,
[AC_CHECK_LIB(curses,waddch,
[AC_DEFINE(HAVE_LIBCURSES, 1, [Define if you have the curses library (-lcurses)])
CURSESLIBS="-lcurses"])])])])
saved_libs="$LIBS"
LIBS="$CURSESLIBS $LIBS"
AC_CHECK_FUNCS(getbkgd resizeterm)
LIBS="$saved_libs"
fi
AC_SUBST(CURSESLIBS)
CUPSLIBS=""
dnl **** Check for CUPS ****
wine_cv_warn_cups_h=no
[AC_CHECK_HEADER(cups/cups.h,
[AC_DEFINE(HAVE_CUPS, 1, [Define if we have CUPS])
CUPSLIBS="-lcups"],
wine_cv_warn_cups_h=yes)]
dnl **** Check for SANE ****
AC_CHECK_PROG(sane_devel,sane-config,sane-config,no)
if test "$sane_devel" = "no"
then
SANELIBS=""
SANEINCL=""
else
SANELIBS="`$sane_devel --libs`"
SANEINCL="`$sane_devel --cflags`"
ac_save_CPPFLAGS="$CPPFLAGS"
ac_save_LIBS="$LIBS"
CPPFLAGS="$CPPFLAGS $SANEINCL"
LIBS="$LIBS $SANELIBS"
AC_CHECK_HEADER(sane/sane.h,
[AC_CHECK_LIB(sane,sane_open,
[AC_DEFINE(HAVE_SANE, 1, [Define if we have SANE development environment])],
[SANELIBS=""
SANEINCL=""])],
[SANELIBS=""
SANEINCL=""])
LIBS="$ac_save_LIBS"
CPPFLAGS="$ac_save_CPPFLAGS"
fi
AC_SUBST(SANELIBS)
AC_SUBST(SANEINCL)
AC_CHECK_LIB(freetype,FT_Init_FreeType,ft_lib=yes,ft_lib=no,$X_LIBS)
if test "$ft_lib" = "no"
then
FREETYPEINCL=""
wine_cv_msg_freetype=no
else
AC_CHECK_PROG(ft_devel,freetype-config,freetype-config,no)
if test "$ft_devel" = "no"
then
AC_CHECK_PROG(ft_devel2,freetype2-config,freetype2-config,no)
if test "$ft_devel2" = "freetype2-config"
then
ft_devel=$ft_devel2
fi
fi
if test "$ft_devel" = "no"
then
FREETYPEINCL=""
wine_cv_msg_freetype=yes
else
FREETYPEINCL=`$ft_devel --cflags`
ac_save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$FREETYPEINCL $CPPFLAGS"
AC_CHECK_HEADERS(freetype/freetype.h \
freetype/ftglyph.h \
freetype/tttables.h \
freetype/ftnames.h \
freetype/ftsnames.h \
freetype/ttnameid.h \
freetype/ftoutln.h \
freetype/internal/sfnt.h)

Alexandre Julliard
committed
AC_TRY_CPP([#include <ft2build.h>
#include <freetype/fttrigon.h>],
[AC_DEFINE(HAVE_FREETYPE_FTTRIGON_H, 1,
[Define if you have the <freetype/fttrigon.h> header file.])
wine_cv_fttrigon=yes],
wine_cv_fttrigon=no)
CPPFLAGS="$ac_save_CPPFLAGS"
dnl Check that we have at least freetype/freetype.h
if test "$ac_cv_header_freetype_freetype_h" = "yes" -a "$wine_cv_fttrigon" = "yes"
then
AC_DEFINE(HAVE_FREETYPE, 1, [Define if FreeType 2 is installed])
wine_cv_msg_freetype=no
else
FREETYPEINCL=""
wine_cv_msg_freetype=yes
fi
fi
fi
AC_SUBST(FREETYPEINCL)
dnl **** Check for parport (currently Linux only) ****
AC_CACHE_CHECK([for parport header/ppdev.h], ac_cv_c_ppdev,
AC_TRY_COMPILE(
[#include <linux/ppdev.h>],
[ioctl (1,PPCLAIM,0)],
[ac_cv_c_ppdev="yes"],
[ac_cv_c_ppdev="no"])
)
if test "$ac_cv_c_ppdev" = "yes"
then
AC_DEFINE(HAVE_PPDEV, 1, [Define if we can use ppdev.h for parallel port access])
dnl **** Check for IPX (currently Linux only) ****
AC_CACHE_CHECK([for GNU style IPX support], ac_cv_c_ipx_gnu,
AC_TRY_COMPILE(
[#include <sys/socket.h>
#include <netipx/ipx.h>],
[((struct sockaddr_ipx *)0)->sipx_family == AF_IPX],
[ac_cv_c_ipx_gnu="no"])
)
AC_DEFINE(HAVE_IPX_GNU, 1, [Define if IPX should use netipx/ipx.h from libc])
if test "$ac_cv_c_ipx_gnu" = "no"
then
AC_CACHE_CHECK([for linux style IPX support], ac_cv_c_ipx_linux,
AC_TRY_COMPILE(
[#include <sys/socket.h>
#include <asm/types.h>
#include <linux/ipx.h>],
[((struct sockaddr_ipx *)0)->sipx_family == AF_IPX],
[ac_cv_c_ipx_linux="no"])
)
AC_DEFINE(HAVE_IPX_LINUX, 1, [Define if IPX includes are taken from Linux kernel])
fi
AC_CHECK_HEADERS(sys/soundcard.h machine/soundcard.h soundcard.h, break)
AC_CACHE_CHECK([for Open Sound System],
#if defined(HAVE_SYS_SOUNDCARD_H)
#elif defined(HAVE_MACHINE_SOUNDCARD_H)
#elif defined(HAVE_SOUNDCARD_H)
#include <soundcard.h>
/* check for one of the Open Sound System specific SNDCTL_ defines */
#if !defined(SNDCTL_DSP_STEREO)
#error No open sound system
#endif
],ac_cv_c_opensoundsystem="yes",ac_cv_c_opensoundsystem="no"))
if test "$ac_cv_c_opensoundsystem" = "yes"
then
AC_DEFINE(HAVE_OSS, 1, [Define if you have the Open Sound system])
AC_CACHE_CHECK([for Open Sound System/MIDI interface],
ac_cv_c_opensoundsystem_midi,
AC_TRY_COMPILE([
#if defined(HAVE_SYS_SOUNDCARD_H)
#include <sys/soundcard.h>
#elif defined(HAVE_MACHINE_SOUNDCARD_H)
#include <machine/soundcard.h>
#elif defined(HAVE_SOUNDCARD_H)
#include <soundcard.h>
#endif
],[
/* check for one of the Open Sound System specific SNDCTL_SEQ defines */
#if !defined(SNDCTL_SEQ_SYNC)
#error No open sound system MIDI interface
#endif
],ac_cv_c_opensoundsystem_midi="yes",ac_cv_c_opensoundsystem_midi="no"))
if test "$ac_cv_c_opensoundsystem_midi" = "yes"
then
AC_DEFINE(HAVE_OSS_MIDI, 1, [Define if you have the Open Sound system (MIDI interface)])
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
dnl **** Check for aRts Sound Server ****
AC_PATH_PROG(ARTSCCONFIG, artsc-config)
AC_CACHE_CHECK([for aRts Sound server],
ac_cv_c_artsserver,
if test x$ARTSCCONFIG = x -o x$ARTSCCONFIG = x'"$ARTSCCONFIG"';
then
ac_cv_c_artsserver=no
else
ARTSC_CFLAGS=`$ARTSCCONFIG --cflags`
ARTSC_LIBS=`$ARTSCCONFIG --libs`
ac_cv_c_artsserver=no
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $ARTSC_CFLAGS"
AC_TRY_COMPILE([
#include <artsc.h>
],[
arts_stream_t stream;
],[
ac_cv_c_artsserver=yes
])
CFLAGS="$save_CFLAGS"
fi)
if test "$ac_cv_c_artsserver" = "yes"
then
AC_SUBST(ARTSLIBS, $ARTSC_LIBS)
AC_SUBST(ARTSINCL, $ARTSC_CFLAGS)
AC_DEFINE(HAVE_ARTS, 1, [Define if you have ARTS sound server])
fi
dnl **** Check for broken glibc mmap64 ****
AC_CACHE_CHECK( [whether mmap64 works defined as mmap], ac_cv_mmap64_works,
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
AC_TRY_RUN([
#define _FILE_OFFSET_BITS 64
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/mman.h>
#include <errno.h>
int main(int argc,char **argv) {
int fd = open("conftest.map",O_CREAT|O_RDWR,0600);
if (fd == -1) exit(1);
unlink("conftest.map");
write(fd,"test",4);
if ((-1 == mmap(0,4,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0)) &&
(errno == EINVAL)
) {
exit(1);
}
close(fd);
fprintf(stderr,"success!\n");
exit(0);
}
],
ac_cv_mmap64_works="yes",
ac_cv_mmap64_works="no",
ac_cv_mmap64_works="no") )
if test "$ac_cv_mmap64_works" = "yes"
then
AC_DEFINE(_FILE_OFFSET_BITS, 64, [Set this to 64 to enable 64-bit file support on Linux])
fi
dnl **** Check for gcc strength-reduce bug ****
if test "x${GCC}" = "xyes"
then
CFLAGS="$CFLAGS -Wall"
AC_CACHE_CHECK( [for gcc strength-reduce bug], ac_cv_c_gcc_strength_bug,
int L[[4]] = {0,1,2,3};
for(i=0; i<4 - 1; i++) L[[i]] = L[[i + 1]];
L[[i]] = 4;
exit( Array[[1]] != -2 || L[[2]] != 3);
}],
ac_cv_c_gcc_strength_bug="no",
ac_cv_c_gcc_strength_bug="yes",
ac_cv_c_gcc_strength_bug="yes") )
if test "$ac_cv_c_gcc_strength_bug" = "yes"
then
CFLAGS="$CFLAGS -fno-strength-reduce"
fi
dnl Check for -mpreferred-stack-boundary
AC_CACHE_CHECK([for gcc -mpreferred-stack-boundary=2 support],
ac_cv_c_gcc_stack_boundary,
[saved_cflags=$CFLAGS
CFLAGS="$CFLAGS -mpreferred-stack-boundary=2"
AC_TRY_COMPILE(,[return 0],ac_cv_c_gcc_stack_boundary="yes",ac_cv_c_gcc_stack_boundary="no")
CFLAGS=$saved_cflags
])
if test "$ac_cv_c_gcc_stack_boundary" = "yes"
then
CFLAGS="$CFLAGS -mpreferred-stack-boundary=2"
fi
dnl **** Check if we need to place .type inside a .def directive ****
AC_CACHE_CHECK([whether .type must sit inside a .def directive],
ac_cv_c_type_in_def,
[saved_libs=$LIBS
LIBS="conftest_asm.s $LIBS"
cat > conftest_asm.s <<EOF
.globl _ac_test
.def _ac_test; .scl 2; .type 32; .endef
_ac_test:
.long 0
EOF
AC_TRY_LINK(,,ac_cv_c_type_in_def="yes",ac_cv_c_type_in_def="no")
LIBS=$saved_libs])
if test "$ac_cv_c_type_in_def" = "yes"
then
AC_DEFINE(NEED_TYPE_IN_DEF, 1, [Define if .type asm directive must be inside a .def directive])
fi
dnl **** Check for underscore on external symbols ****
AC_CACHE_CHECK([whether external symbols need an underscore prefix],
ac_cv_c_extern_prefix,
[saved_libs=$LIBS
LIBS="conftest_asm.s $LIBS"
cat > conftest_asm.s <<EOF
.globl _ac_test
_ac_test:
.long 0
EOF
AC_TRY_LINK([extern int ac_test;],[if (ac_test) return 1],
ac_cv_c_extern_prefix="yes",ac_cv_c_extern_prefix="no")
LIBS=$saved_libs])
if test "$ac_cv_c_extern_prefix" = "yes"
then
AC_DEFINE(NEED_UNDERSCORE_PREFIX, 1,
[Define if symbols declared in assembly code need an underscore prefix])
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
dnl **** Check whether stdcall symbols need to be decorated ****
AC_CACHE_CHECK([whether stdcall symbols need to be decorated],
ac_cv_c_stdcall_decoration,
[saved_libs=$LIBS
LIBS="conftest_asm.s $LIBS"
if test "$ac_cv_c_extern_prefix" = "yes"
then
cat > conftest_asm.s <<EOF
.globl _ac_test@0
_ac_test@0:
EOF
else
cat > conftest_asm.s <<EOF
.globl ac_test@0
ac_test@0:
EOF
fi
AC_TRY_LINK([extern void __attribute__((__stdcall__)) ac_test(void);],
[ac_test(); return 0],
ac_cv_c_stdcall_decoration="yes",ac_cv_c_stdcall_decoration="no")
LIBS=$saved_libs])
if test "$ac_cv_c_stdcall_decoration" = "yes"
then
AC_DEFINE(NEED_STDCALL_DECORATION, 1,
[Define if stdcall symbols need to be decorated])
fi
AC_CACHE_CHECK([whether assembler accepts .string],
ac_cv_c_asm_string,
[saved_libs=$LIBS
LIBS="conftest_asm.s $LIBS"
cat > conftest_asm.s <<EOF
.string "test"
EOF
AC_TRY_LINK(,,ac_cv_c_asm_string="yes",ac_cv_c_asm_string="no")
LIBS=$saved_libs])
if test "$ac_cv_c_asm_string" = "yes"
then
AC_DEFINE(HAVE_ASM_STRING, 1, [Define to use .string instead of .ascii])
Todd Vierling
committed
LDSHARED=""
if test "$LIBEXT" = "so"
AC_CACHE_CHECK([whether we can build a GNU style ELF dll],
CFLAGS="$CFLAGS -fPIC -shared -Wl,-soname,conftest.so.1.0,-Bsymbolic"
AC_TRY_LINK(,[return 1],ac_cv_c_dll_gnuelf="yes",ac_cv_c_dll_gnuelf="no")
if test "$ac_cv_c_dll_gnuelf" = "yes"
LDSHARED="\$(CC) -shared \$(SONAME:%=-Wl,-soname,%)"
AC_CACHE_CHECK(whether we can build a UnixWare (Solaris) dll,
ac_cv_c_dll_unixware,
Todd Vierling
committed
[saved_cflags=$CFLAGS
CFLAGS="$CFLAGS -fPIC -Wl,-G,-h,conftest.so.1.0,-B,symbolic"
AC_TRY_LINK(,[return 1],ac_cv_c_dll_unixware="yes",ac_cv_c_dll_unixware="no")
Todd Vierling
committed
CFLAGS=$saved_cflags
])
if test "$ac_cv_c_dll_unixware" = "yes"
Todd Vierling
committed
then
LDSHARED="\$(CC) -Wl,-G \$(SONAME:%=-Wl,-h,%)"
Todd Vierling
committed
fi
fi
if test "$ac_cv_c_dll_gnuelf" = "no" -a "$ac_cv_c_dll_unixware" = "no"
Todd Vierling
committed
then
AC_CHECK_PROG(DLLWRAP,dllwrap,dllwrap,false)
if test "$DLLWRAP" = "dllwrap"; then
dnl FIXME - check whether dllwrap works correctly...
case $host_os in
*cygwin*)
LIBEXT="dll"
;;
esac
if test "$LIBEXT" = "a"; then
AC_MSG_ERROR(
[could not find a way to build shared libraries.
It is currently not possible to build Wine without shared library
(.so) support to allow transparent switch between .so and .dll files.
If you are using Linux, you will need a newer binutils.]
)
if test "$LIBEXT" = "so"; then
DLLFLAGS="-fPIC"
DLLEXT=".so"
LDPATH="LD_LIBRARY_PATH=\"\$(TOPOBJDIR)/unicode:\$\$LD_LIBRARY_PATH\""
elif test "$LIBEXT" = "dll"; then
#DLLFLAGS="-fPIC" # -fPIC doesn't work(at least in cygwin-b20) - FIXME
DLLEXT=""
LDPATH="PATH=\"\$(TOPOBJDIR)/unicode:\$\$PATH\""
AC_SUBST(DLLEXT)
Todd Vierling
committed
AC_SUBST(LDSHARED)
AC_SUBST(LDPATH)
dnl **** Check for reentrant libc ****
dnl
dnl For cross-compiling we blindly assume that libc is reentrant. This is
dnl ok since non-reentrant libc is quite rare (mostly old libc5 versions).
AC_DEFUN([WINE_CHECK_ERRNO],
[
AC_CACHE_CHECK(for reentrant libc: $1, wine_cv_libc_r_$1,
int *$1(){return &myerrno;}
wine_cv_libc_r_$1=yes, wine_cv_libc_r_$1=no,
wine_cv_libc_r_$1=yes )
if test "$wine_cv_libc_r_$1" = "yes"
wine_cv_libc_reentrant=$1
wine_cv_libc_reentrant=no
dnl Linux style errno location
WINE_CHECK_ERRNO(__errno_location)
dnl FreeBSD style errno location
WINE_CHECK_ERRNO(__error)
dnl Solaris style errno location
WINE_CHECK_ERRNO(___errno)
dnl UnixWare style errno location
WINE_CHECK_ERRNO(__thr_errno)
dnl NetBSD style errno location
WINE_CHECK_ERRNO(__errno)
if test "$wine_cv_libc_reentrant" != "no"
AC_DEFINE_UNQUOTED(ERRNO_LOCATION,$wine_cv_libc_reentrant,
[Define to the name of the function returning errno for reentrant libc])
dnl **** Check for reentrant X libraries ****
dnl
dnl This may fail to determine whether X libraries are reentrant if
dnl AC_PATH_XTRA does not set x_libraries. In this case manual configuration
dnl is possible with the --without-reentrant-x option.
if test "$have_x" = "yes" -a "$wine_cv_libc_reentrant" != "no"
AC_CACHE_CHECK( [for reentrant X libraries], wine_cv_x_reentrant,
[ if test "x$with_reentrant_x" = "xno"
for dir in "$x_libraries" /usr/lib /usr/local/lib /lib; do
libX11_check="$dir/libX11.a"
break 1
fi
done
if test "$libX11_check" != "none"; then
if nm $libX11_check | grep $wine_cv_libc_reentrant >/dev/null 2>&1
wine_cv_x_reentrant=yes
else
wine_cv_x_reentrant=no
fi
else
wine_cv_x_reentrant=unknown
fi
fi ] )
else
wine_cv_x_reentrant=no
fi
AC_DEFINE(NO_REENTRANT_X11, 1,
[Define if X libraries are not reentrant (compiled without -D_REENTRANT)])
dnl **** Check for functions ****
_pclose \
_popen \
_stricmp \
_strnicmp \
finite \
fpclass \
getnetbyaddr \
getnetbyname \
getprotobyname \
getprotobynumber \
getservbyport \
getsockopt \
inet_network \
pclose \
popen \
tcgetattr \
timegm \
usleep \
vfscanf \
wait4 \
waitpid \
)
dnl **** Check for header files ****
AC_CHECK_HEADERS(\
direct.h \
elf.h \
float.h \
io.h \
linux/input.h \
linux/joystick.h \
linux/ucdrom.h \
net/if.h \
netinet/in_systm.h \
netinet/ip.h \
sched.h \
socket.h \
strings.h \
sys/cdio.h \
sys/errno.h \
sys/file.h \
sys/filio.h \
sys/modem.h \
sys/mount.h \
sys/ptrace.h \
sys/signal.h \
sys/shm.h \
sys/socket.h \
sys/sockio.h \
sys/statfs.h \
sys/strtio.h \
sys/syscall.h \
sys/time.h \
sys/user.h \
sys/wait.h \
sys/v86.h \
sys/v86intr.h \
unistd.h \