Newer
Older
dnl Process this file with autoconf to produce a configure script.
dnl Author: Michael Patra <micky@marie.physik.tu-berlin.de>
dnl <patra@itp1.physik.tu-berlin.de>
AC_REVISION([configure.in 1.00])
AC_INIT(controls/edit.c)
# We want these before the checks, so the checks can modify their values.
dnl Default values
MAIN_TARGET=emu
LIB_TARGET=libwine.a
AC_ARG_ENABLE(emulator,
[ --disable-emulator build only the Wine library, not the emulator],
[if test "$enableval" = "no"; then MAIN_TARGET="lib"; fi])
AC_ARG_ENABLE(dll,
[ --enable-dll build the Wine library as a DLL],
[if test "$enableval" = "no"; then : ; else LIB_TARGET="libwine.so.1.0"; fi])
dnl AC_ARG_WITH(ipc,
dnl [ --enable-ipc use inter-process communication for DDE],
dnl [if test "$enableval" = "no"; then : ; else OPTIONS="-DCONFIG_IPC"; fi])
AC_ARG_WITH(reentrant-x,
[ --without-reentrant-x Compile for use with non-reentrant X libraries])
AC_CHECK_LIB(i386,i386_set_ldt)
dnl Check for -lw for Solaris
AC_CHECK_LIB(w,iswalnum)
dnl Check for XFree86 DGA extension
AC_CHECK_LIB(Xxf86dga,XF86DGAQueryExtension,AC_DEFINE(HAVE_LIBXXF86DGA) X_PRE_LIBS="$X_PRE_LIBS -lXxf86dga",,$X_LIBS -lXext -lX11)
dnl **** Check for Open Sound System ****
AC_CHECK_HEADERS(sys/soundcard.h machine/soundcard.h)
AC_CACHE_CHECK("for Open Sound System",
ac_cv_c_opensoundsystem,
AC_TRY_COMPILE([
#ifdef HAVE_SYS_SOUNDCARD_H
#include <sys/soundcard.h>
#endif
#ifdef HAVE_MACHINE_SOUNDCARD_H
#include <machine/soundcard.h>
#endif
],[
/* 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)
fi
dnl **** Check for union semun ****
AC_CACHE_CHECK("for union semun", ac_cv_c_union_semun,
AC_TRY_COMPILE([#include <sys/types.h>
#include <sys/sem.h>],[union semun foo],
ac_cv_c_union_semun="yes", ac_cv_c_union_semun="no"))
if test "$ac_cv_c_union_semun" = "yes"
then
AC_DEFINE(HAVE_UNION_SEMUN)
fi
dnl **** If ln -s doesn't work, use cp instead ****
if test "$ac_cv_prog_LN_S" = "ln -s"; then : ; else LN_S=cp ; 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,
AC_TRY_RUN([
int main(void) {
for(i=0; i<B; i++) Array[[i]] = i - 3;
exit( Array[[1]] != -2 );
}],
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
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)
fi
dnl **** Check for .string in assembler ****
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)
fi
DLLFLAGS=""
if test "$LIB_TARGET" = "libwine.so.1.0"
then
AC_CACHE_CHECK("whether we can build a dll",
ac_cv_c_dll,
[saved_cflags=$CFLAGS
CFLAGS="$CFLAGS -fPIC -shared -Wl,-soname,conftest.so.1.0"
AC_TRY_LINK(,[return 1],ac_cv_c_dll="yes",ac_cv_c_dll="no")
CFLAGS=$saved_cflags
])
if test "$ac_cv_c_dll" = "yes"
then
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
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.
AC_CACHE_CHECK( "for reentrant X libraries", wine_cv_x_reentrant,
[ if test "x$with_reentrant_x" = "xno"
then
wine_cv_x_reentrant=no
else
libX11_ckeck=none
for dir in "$x_libraries" /usr/lib /usr/local/lib /lib; do
if test -e $dir/libX11.so; then
libX11_check="-D $dir/libX11.so"
break 1
fi
if test -e $dir/libX11.a; then
libX11_check="$dir/libX11.a"
break 1
fi
done
if test "$libX11_check" != "none"; then
if nm $libX11_check | grep -q __errno_location; then
wine_cv_x_reentrant=yes
else
wine_cv_x_reentrant=no
fi
else
wine_cv_x_reentrant=unknown
fi
fi ] )
if test "$wine_cv_x_reentrant" = "no"
then
AC_DEFINE(NO_REENTRANT_X11)
fi
AC_CHECK_FUNCS(clone getpagesize memmove sigaltstack strerror stricmp tcgetattr timegm usleep wait4 waitpid)
AC_CHECK_HEADERS(wctype.h sys/syscall.h syscall.h sys/param.h sys/vfs.h sys/mount.h sys/statfs.h float.h linux/cdrom.h sys/cdio.h sys/filio.h)
AC_HEADER_STAT()
AC_C_CONST()
AC_TYPE_SIZE_T()
dnl **** statfs checks ****
if test "$ac_cv_header_sys_vfs_h" = "yes"
then
AC_CACHE_CHECK( "whether sys/vfs.h defines statfs",
wine_cv_sys_vfs_has_statfs,
AC_TRY_COMPILE([
#ifdef HAVE_SYS_PARAM_H
# include <sys/param.h>
#endif
memset(&stfs,0,sizeof(stfs));
],wine_cv_sys_vfs_has_statfs=yes,wine_cv_sys_vfs_has_statfs=no
)
if test "$wine_cv_sys_vfs_has_statfs" = "yes"
then
AC_DEFINE(STATFS_DEFINED_BY_SYS_VFS)
fi
fi
if test "$ac_cv_header_sys_statfs_h" = "yes"
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
AC_CACHE_CHECK( "whether sys/statfs.h defines statfs",
wine_cv_sys_statfs_has_statfs,
AC_TRY_COMPILE([
#include <sys/types.h>
#ifdef HAVE_SYS_PARAM_H
# include <sys/param.h>
#endif
#include <sys/statfs.h>
],[
struct statfs stfs;
],wine_cv_sys_statfs_has_statfs=yes,wine_cv_sys_statfs_has_statfs=no
)
)
if test "$wine_cv_sys_statfs_has_statfs" = "yes"
then
AC_DEFINE(STATFS_DEFINED_BY_SYS_STATFS)
fi
fi
if test "$ac_cv_header_sys_mount_h" = "yes"
then
AC_CACHE_CHECK( "whether sys/mount.h defines statfs",
wine_cv_sys_mount_has_statfs,
AC_TRY_COMPILE([
#include <sys/types.h>
#ifdef HAVE_SYS_PARAM_H
# include <sys/param.h>
#endif
#include <sys/mount.h>
],[
struct statfs stfs;
],wine_cv_sys_mount_has_statfs=yes,wine_cv_sys_mount_has_statfs=no
)
)
if test "$wine_cv_sys_mount_has_statfs" = "yes"
then
AC_DEFINE(STATFS_DEFINED_BY_SYS_MOUNT)
fi
dnl **** FIXME: what about mixed cases, where we need two of them? ***
AC_CACHE_CHECK( "for statfs.f_bfree", wine_cv_statfs_bfree,
[ if test "x$statfs_bfree" = "xno"
then
wine_cv_statfs_bfree=no
else
AC_TRY_COMPILE([
#ifdef HAVE_SYS_PARAM_H
# include <sys/param.h>
#endif
#else
# ifdef STATFS_DEFINED_BY_SYS_VFS
# include <sys/vfs.h>
# else
# ifdef STATFS_DEFINED_BY_SYS_STATFS
# include <sys/statfs.h>
# endif
# endif
#endif
],[
struct statfs stfs;
stfs.f_bfree++;
],wine_cv_statfs_bfree=yes,wine_cv_statfs_bfree=no
)
fi ] )
if test "$wine_cv_statfs_bfree" = "yes"
then
AC_DEFINE(STATFS_HAS_BFREE)
fi
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
AC_CACHE_CHECK( "for statfs.f_bavail", wine_cv_statfs_bavail,
[ if test "x$statfs_bavail" = "xno"
then
wine_cv_statfs_bavail=no
else
AC_TRY_COMPILE([
#include <sys/types.h>
#ifdef HAVE_SYS_PARAM_H
# include <sys/param.h>
#endif
#ifdef STATFS_DEFINED_BY_SYS_MOUNT
# include <sys/mount.h>
#else
# ifdef STATFS_DEFINED_BY_SYS_VFS
# include <sys/vfs.h>
# else
# ifdef STATFS_DEFINED_BY_SYS_STATFS
# include <sys/statfs.h>
# endif
# endif
#endif
],[
struct statfs stfs;
stfs.f_bavail++;
],wine_cv_statfs_bavail=yes,wine_cv_statfs_bavail=no
)
fi ] )
if test "$wine_cv_statfs_bavail" = "yes"
then
AC_DEFINE(STATFS_HAS_BAVAIL)
fi
dnl *** check for working sigaltstack
dnl glibc 2.0x defines it, but it always fails... so it is useless for us.
AC_CACHE_CHECK("for working sigaltstack",
ac_cv_c_working_sigaltstack,
AC_TRY_RUN([
#include <stdio.h>
#include <time.h> /* <sys/time.h> ? bad magic without end */
#include <sys/types.h>
#include <sys/signal.h>
#ifdef HAVE_SYS_PARAM_H
# include <sys/param.h>
#endif
#ifdef HAVE_SYSCALL_H
# include <syscall.h>
#else
# ifdef HAVE_SYS_SYSCALL_H
# include <sys/syscall.h>
# endif
#endif
unsigned char *xaltstack;
int
main(int argc,char **argv) {
struct sigaltstack ss;
xaltstack = malloc(16384);
ss.ss_sp = xaltstack;
ss.ss_size = 16384;
ss.ss_flags = 0;
if (sigaltstack(&ss, NULL) < 0) {
/* this catches the glibc case */
perror("sigaltstack");
return (1); /* aka exit(1) aka fail */
}
/* assume it works. */
return 0; /* OK */
}
],
ac_cv_c_working_sigaltstack="yes",
ac_cv_c_working_sigaltstack="no",
ac_cv_c_working_sigaltstack="no"
))
if test "$ac_cv_c_working_sigaltstack" = "yes"
then
AC_DEFINE(HAVE_WORKING_SIGALTSTACK)
fi
AC_OUTPUT([
Make.rules
Makefile
controls/Makefile
debugger/Makefile
graphics/win16drv/Makefile
graphics/x11drv/Makefile
if1632/Makefile
ipc/Makefile
library/Makefile
libtest/Makefile
loader/Makefile
memory/Makefile
misc/Makefile
miscemu/Makefile
echo
echo "Configure finished. Do 'make depend; make' to compile Wine."
echo
dnl Local Variables:
dnl comment-start: "dnl "
dnl comment-end: ""
dnl comment-start-skip: "\\bdnl\\b\\s *"