1dnl TiMidity++ -- MIDI to WAVE converter and player
2dnl Copyright (C) 1999-2002 Masanao Izumo <mo@goice.co.jp>
3dnl Copyright (C) 1995 Tuukka Toivonen <tt@cgs.fi>
4dnl
5dnl This program is free software; you can redistribute it and/or modify
6dnl it under the terms of the GNU General Public License as published by
7dnl the Free Software Foundation; either version 2 of the License, or
8dnl (at your option) any later version.
9dnl
10dnl This program is distributed in the hope that it will be useful,
11dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
12dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13dnl GNU General Public License for more details.
14dnl
15dnl You should have received a copy of the GNU General Public License
16dnl along with this program; if not, write to the Free Software
17dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18
19dnl configure.in created from configure.scan
20dnl by URABE, Shyouhei <root@mput.dip.jp> on 2002.07.06
21
22dnl variable note:
23dnl CFLAGS	- Flags for compile.
24dnl CPPFLAGS	- Flags for cpp
25dnl LDFLAGS	- Flags for linker
26dnl		ac_cpp:	    $CPP $CPPFLAGS
27dnl		ac_compile: ${CC-cc} -c $CFLAGS $CPPFLAGS
28dnl		ac_link:    ${CC-cc} -o * $CFLAGS $CPPFLAGS $LDFLAGS *.c $LIBS
29dnl EXTRACFLAGS - Extra flags to compile.  Adds to CFLAGS.
30dnl EXTRADEFS	- Extra define macros.	Adds to CPPFLAGS.
31dnl EXTRALIBS	- Extra libraries  Adds to LIBS.
32dnl SYSEXTRAS	- Additional source codes to compile.
33dnl lib_*_opt	- Optional libraries. Adds to LIBS.
34dnl LIBRARY_PATH
35dnl		- add to -L LDFLAGS
36dnl C_INCLUDE_PATH
37dnl		- add to -I CPPFLAGS
38dnl MSYS	- `yes' if cygnus or Mingw windows environment.
39dnl TCLSH	- tclsh
40dnl LN_S	- ln -s
41dnl tcltk_dep	- make dependencies for tcl/tk interface
42dnl
43dnl so		- File extension of shared object library.
44dnl SHLD	- Linker to make shared object library.
45dnl SHLDFLAGS	- Link flags to link shared object library.
46dnl SHCFLAGS	- Additional flags to compile shared object library.
47dnl		  (such as -fPIC)
48
49# This is a autoscan-generated configure.scan.
50# AC_PREREQ(2.56)
51
52# "AC_INIT(timidity/timidity.c)" is obsolate yet.
53AC_INIT([TiMidity++],[2.15.0],[timidity-talk@lists.sourceforge.net],[TiMidity++])
54AC_CONFIG_AUX_DIR([autoconf])
55AC_CANONICAL_TARGET
56AM_INIT_AUTOMAKE([gnu dist-bzip2])
57AC_CONFIG_SRCDIR([timidity/timidity.c])
58AC_CONFIG_HEADERS([config.h interface.h])
59AM_MAINTAINER_MODE
60
61SHELL=${CONFIG_SHELL-"/bin/sh"}
62TCLSH=${TCLSH-"tclsh"}
63
64dnl to use contains() macro (see autoconf/acinclude.m4)
65CONTAINS_INIT
66
67# Check for compiler options -- such as debug flags.
68
69dnl "--enable-debug" turnes -g on.
70AC_MSG_CHECKING(if --enable-debug option specified)
71AC_ARG_ENABLE(debug,
72	      AS_HELP_STRING([--enable-debug], [Build a debugging version.]),
73	      [timidity_cv_debug="yes"], [timidity_cv_debug="no"])
74if test "x$timidity_cv_debug" = "xyes"; then
75  AC_DEFINE(DEBUG,1,Define to 1 if you are in debug mode)
76  CFLAGS=${CFLAGS-"-g"}
77fi
78if test "x$timidity_cv_debug" = "xno"; then
79  AC_DEFINE(NDEBUG,1,Define to 1 if you are NOT in debug mode)
80fi
81AC_MSG_RESULT($timidity_cv_debug)
82
83if test "x$CFLAGS" = "x"; then
84  NOCFLAGS="yes"
85fi
86
87dnl --with-x turns on if `--with-x' is NOT specified.
88if test "x$with_x" = x; then
89  with_x=yes
90else
91  x_config_flag=yes
92fi
93
94# Checking gcc environment
95for i in `echo $LIBRARY_PATH|sed -e 's,:, ,g'`; do
96  LDFLAGS="$LDFLAGS -L${i}"
97done
98for i in `echo $C_INCLUDE_PATH|sed -e 's,:, ,g'`; do
99  CPPFLAGS="$CPPFLAGS -I${i}"
100done
101
102# add $prefix if specified.
103if test "x$prefix" != xNONE -a "x$prefix" != "x$ac_default_prefix" -a "x$prefix" != "x/usr"; then
104  LDFLAGS="-L$prefix/lib $LDFLAGS"
105  SHLDFLAGS="-L$prefix/lib $SHLDFLAGS"
106  CPPFLAGS="-I$prefix/include $CPPFLAGS"
107fi
108
109dnl add --with-includes, --with-libraries
110AC_ARG_WITH(includes,
111  AS_HELP_STRING([--with-includes=DIR], [Specify include directories (colon separated)]),
112  [ j=' '
113    for i in `echo "$withval"|sed -e 's,:, ,g'`; do
114      j="${j}-I${i} "
115    done
116    CPPFLAGS="$j$CPPFLAGS"
117  ])
118
119AC_ARG_WITH(libraries,
120  AS_HELP_STRING([--with-libraries=DIR], [Specify library directories (colon separated)]),
121  [ j=' '
122    for i in `echo "$withval"|sed -e 's,:, ,g'`; do
123      j="${j}-L${i} "
124    done
125    LDFLAGS="$j$LDFLAGS"
126  ])
127
128
129dnl a bit hairly yet.(20020718:mput)
130dnl CPPFLAGS="$CPPFLAGS \$(DEF_PKGDATADIR) \$(DEF_PKGLIBDIR) \$(DEF_DEFAULT_PATH)"
131AC_ARG_WITH(default-path,
132  AS_HELP_STRING([--with-default-path=DIR], [Where timidity.cfg is  (PREFIX/share/timidity)]),
133  [pkgdatadir=$withval],
134  [
135   if test "x$prefix" != "xNONE"; then
136      pkgdatadir='${prefix}/share/timidity'
137   else
138      pkgdatadir='/usr/local/share/timidity'
139   fi
140  ])
141tmpdefpath="`eval \"echo ${pkgdatadir}\"`"
142AC_DEFINE_UNQUOTED(DEFAULT_PATH,"$tmpdefpath",place to install patches)
143AC_DEFINE(PKGDATADIR,DEFAULT_PATH,a compatibility matter. ignore it.)
144
145AC_ARG_WITH(module-dir,
146  AS_HELP_STRING([--with-module-dir=DIR], [Where to install interfaces (PREFIX/lib/timidity)]),
147  [pkglibdir=$withval],
148  [
149   if test "x$prefix" != "xNONE"; then
150      pkglibdir='${prefix}/lib/timidity'
151   else
152      pkglibdir='/usr/local/lib/timidity'
153   fi
154  ])
155tmplibdir="`eval \"echo ${pkglibdir}\"`"
156AC_DEFINE_UNQUOTED(PKGLIBDIR,"$tmplibdir",place to install modules)
157
158AC_ARG_WITH(xaw-resource-prefix,
159  AS_HELP_STRING([--with-xaw-resource-prefix=DIR], [What prefix to install X resource files to (optional, used by Xaw/Motif interfaces)]),
160  [xawresdir=$withval], [])
161AM_CONDITIONAL(XAW_INSTALL_RESOURCE_FILES, test "x$xawresdir" != "x")
162AC_SUBST(xawresdir)
163
164# Checks for programs.
165AM_PATH_LISPDIR
166AC_PROG_CC
167AC_PROG_GCC_TRADITIONAL
168AC_PROG_INSTALL
169AC_PROG_AWK
170AC_PROG_RANLIB
171AC_PROG_LN_S
172CHECK_COMPILER_OPTION(rdynamic)
173
174if test "x$NOCFLAGS" = "xyes"; then
175  if test "x$GCC" = "xyes"; then
176    CFLAGS="-O2"
177  else
178    CFLAGS=""
179  fi
180fi
181
182# Checks for target dependencies
183
184AC_ARG_WITH(elf,
185  AS_HELP_STRING([--with-elf], [create ELF shared object instead of AOUT]),
186  [ ELFFORMAT=$withval ], [ ELFFORMAT="yes" ])
187
188# AC_ARG_WITH(simd,
189#  AS_HELP_STRING([--with-simd], [create SIMD friendly binary (default is no) ]),
190#  [ SIMD=$withval ], [ SIMD="no" ])
191
192case "$target" in
193  *-*-hpux*)
194    EXTRADEFS="-DHPUX"
195    test -n "$SHLD" || SHLD="ld -b"
196    so="sl"
197    ;;
198  *-sgi-irix*)
199    dnl IRIX cc needs -signed option
200    case ".$CC" in .cc*) EXTRACFLAGS="-signed";; esac
201    test -n "$SHLD" || SHLD="cc -shared -all"
202    so="so"
203    ;;
204  *-*-netbsd*)
205    test -n "$SHLD" || SHLD="$CC -shared -nostartfiles"
206    so="so"
207    ;;
208
209  *-*-freebsd2*)
210    dnl EXTRALIBS="$EXTRALIBS -lxpg4"
211    test -n "$SHLD" || SHLD="ld -Bshareable"
212    so="so"
213    ;;
214  *-*-freebsd*)
215    if test "$ELFFORMAT" = yes; then
216	test -n "$SHLD" || SHLD="ld -Bshareable"
217    else
218	SHCFLAGS=-aou
219	SHLDFLAGS="-L/usr/X11R6/lib/aout $SHLDFLAGS"
220	test -n "$SHLD" || SHLD="env OBJFORMAT=aout ld -shared"
221    fi
222    dnl EXTRALIBS="$EXTRALIBS -lxpg4"
223    so="so"
224    ;;
225
226#  *-*-freebsd*)
227#    EXTRALIBS="$EXTRALIBS -lxpg4"
228#    test -n "$SHLD" || SHLD="ld -Bshareable"
229#    so="so"
230#  ;;
231
232  *-*-cygwin*|*-*-mingw*)
233    EXTRADEFS="-D__W32__"
234    # ??
235    case "x${CC} " in
236      "xbcc32 "*|xbcc32)
237#        test -n "$SHLD" || SHLD="tlink32 -Tpd"
238        test -n "$SHLD" || SHLD="BCC32 -WD"
239        BORLANDC=yes
240        BORLANDC_LDFLAGS="kernel32.lib winspool.lib comdlg32.lib advapi32.lib oleaut32.lib uuid.lib odbc32.lib ws2_32.lib user32.lib shell32.lib cw32mt.lib"
241        BORLANDC_START='C0X32.OBJ'
242        CFLAGS="$CFLAGS  -tWM -VM"
243        EXTRADEFS="$EXTRADEFS -D_WINDOWS -DWIN32"
244        ;;
245      "xcc "*|xcc)
246        test -n "$SHLD" || SHLD="polink -DLL"
247        POCC=yes
248         case " $CFLAGS " in
249           *" -MT "*)  NODEF="-nodefaultlib:pocrt.lib -nodefaultlib:crt.lib -defaultlib:crtmt.lib"  ;;
250           *" -MD "*)  NODEF="-nodefaultlib:crtmt.lib -nodefaultlib:crt.lib -defaultlib:pocrt.lib"  ;;
251           *) CFLAGS="$CFLAGS -MT"; NODEF="-nodefaultlib:pocrt.lib -nodefaultlib:crtmt.lib -defaultlib:crt.lib" ;;
252         esac
253        POCC_LDFLAGS="$NODEF winmm.lib ws2_32.lib user32.lib kernel32.lib shell32.lib gdi32.lib comctl32.lib comdlg32.lib ole32.lib advapi32.lib oldnames.lib"
254        CFLAGS="$CFLAGS -Ze -D__POCC__OLDNAMES"
255        EXTRADEFS="$EXTRADEFS -D_WINDOWS -DWIN32"
256        ;;
257      "xdmc "*|xdmc)
258        test -n "$SHLD" || SHLD="dmc -WD"
259        DMC=yes
260        DMC_LDFLAGS="winmm.lib ws2_32.lib user32.lib kernel32.lib shell32.lib gdi32.lib comctl32.lib comdlg32.lib ole32.lib advapi32.lib"
261        CFLAGS="$CFLAGS  -mn -j0"
262        DLLFLAG=" "
263        EXTRADEFS="$EXTRADEFS -D_WINDOWS -DWIN32"
264        ;;
265      "xwcc386_w.sh "*|xwcc386)
266         WATCOM_C=yes
267         CFLAGS="$CFLAGS -br -bm -5s -zk0 -zp=16 -w=4 -D_WINDOWS -DWIN32 -DINCLUDE_WINDOWS_H"
268         DLLFLAG=" "
269         WATCOM_LDFLAGS=
270         EXTRALIBS="$EXTRALIBS kernel32.lib winspool.lib comdlg32.lib advapi32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ws2_32.lib user32.lib shell32.lib"
271         ;;
272      "xcl "*|xcl)
273         test -n "$SHLD" || SHLD="link -dll"
274         VCPP=yes
275         case " $CFLAGS " in
276           *" -MT "*)  NODEF="-nodefaultlib:msvcrt.lib -nodefaultlib:msvcrtd.lib -nodefaultlib:libcmtd.lib -nodefaultlib:libc.lib -nodefaultlib:libcd.lib"  ;;
277           *" -MD "*)  NODEF="-nodefaultlib:libcmt.lib -nodefaultlib:libcmtd.lib -nodefaultlib:msvcrtd.lib -nodefaultlib:libc.lib -nodefaultlib:libcd.lib"  ;;
278           *" -MTd "*) NODEF="-nodefaultlib:msvcrt.lib -nodefaultlib:msvcrtd.lib -nodefaultlib:libcmt.lib -nodefaultlib:libc.lib -nodefaultlib:libcd.lib"  ;;
279           *" -MDd "*) NODEF="-nodefaultlib:libcmt.lib -nodefaultlib:libcmtd.lib -nodefaultlib:msvcrt.lib -nodefaultlib:libc.lib -nodefaultlib:libcd.lib"  ;;
280           *) CFLAGS="$CFLAGS -MT"; NODEF="-nodefaultlib:msvcrt.lib -nodefaultlib:msvcrtd.lib -nodefaultlib:libcmtd.lib -nodefaultlib:libc.lib -nodefaultlib:libcd.lib"  ;;
281         esac
282         VCPP_LDFLAGS="-nologo -incremental:no  $NODEF kernel32.lib winspool.lib comdlg32.lib advapi32.lib oleaut32.lib uuid.lib  ws2_32.lib user32.lib shell32.lib"
283         CFLAGS="$CFLAGS -nologo -Zp16 -W3 -GX  -Ob2"
284         EXTRADEFS="$EXTRADEFS -DNDEBUG -D_WINDOWS -DWIN32 -DMBCS -D_MT -YX  -FD -c"
285         ;;
286      x*gcc*) test -n "$SHLD" || SHLD="gcc -mdll"; MINGWGCC=yes ;;
287      *) test -n "$SHLD" || SHLD="unknown" ;;
288    esac
289    so="dll"
290    MSYS=yes
291    lib_user32_test=-luser32
292    ;;
293  *-dec-*)
294    EXTRADEFS="-DDEC"
295    test -n "$SHLD" || SHLD="ld -Bdynamic -G"
296    so="so"
297    ;;
298  *-*-solaris*)
299    EXTRADEFS="-DSOLARIS"
300    test -n "$SHLD" || SHLD="/usr/ccs/bin/ld -G"
301    so="so"
302    ;;
303  *-*-nextstep*)
304    test -n "$SHLD" || SHLD="/usr/ccs/bin/ld -G"
305    so="so"
306    ;;
307  *-*-darwin*)
308    if test "x$SIMD" = "xyes"; then
309       AC_DEFINE(USE_ALTIVEC,1,Define to 1 if you use altivec)
310       # EXTRACFLAGS="$EXTRACFLAGS -faltivec -mabi=altivec -maltivec" # for GCC3.
311       EXTRACFLAGS="$EXTRACFLAGS -faltivec"
312    else
313       AC_DEFINE(USE_ALTIVEC,0,Define to 1 if you use altivec)
314    fi
315    CPPFLAGS="$CPPFLAGS -no-cpp-precomp"
316    LDOPTS="-dynamic -undefined suppress -flat_namespace $LDOPTS"
317    test -n "$SHLD" || SHLD="$CC -dynamic -bundle -undefined suppress -flat_namespace $LDFLAGS"
318    so="bundle"
319    ;;
320  *)
321    test -n "$SHLD" || \
322      if test "x$GCC" = xyes; then
323	SHLD="$CC -shared"
324      else
325	SHLD="ld -Bdynamic -G"
326      fi
327    so="so"
328    ;;
329esac
330
331dnl For .exe
332dnl AC_EXEEX # obsolate
333
334# Checks for libraries.
335AC_CHECK_LIB(m,sqrt)
336AC_CHECK_LIB(socket,socket)
337AC_CHECK_LIB(dl,dlopen,lib_dl_opt=-ldl)
338AC_CHECK_LIB(objc,NSLinkModule,lib_dl_opt=-lobjc) # Mac OS X need this.
339if test "x$VCPP" != "xyes" && test "x$BORLANDC" != "xyes" && test "x$WATCOM_C" != "xyes" && test "x$POCC" != "xyes"; then
340AC_CHECK_LIB(xpg4,setlocale) # Mac OS X (and maybe NetBSD) need this.
341fi
342AC_CHECK_FUNCS(gethostbyname,,[ AC_CHECK_LIB(nsl,gethostbyname) ])
343AC_PATH_XTRA
344
345dnl Xft for trace window
346AC_ARG_ENABLE(xft,
347  AS_HELP_STRING([--enable-xft], [Enable use of Xft in X trace mode]))
348
349AC_ARG_WITH(xawlib,
350  [  --with-xawlib=lib     Try to link to these xaw widget libraries by the
351                           order specified by the comma separated value list:
352                             xaw: libXaw
353                             xaw3d: Xaw3d
354                             neXtaw: neXtaw
355                             XawPlus: XawPlus
356                             default is --with-xawlib=xaw3d,xaw],
357  [ with_xawlib="$withval" ], [ with_xawlib="xaw3d,xaw" ])
358
359# Checks for X
360if test "x$with_x" = xyes; then
361  if test "x$have_x" = xno; then
362    if test "x$x_config_flag" = xyes; then
363      AC_MSG_ERROR(Could not configure X)
364    else
365      AC_MSG_WARN(Could not configure X)
366    fi
367  fi
368fi
369if test "x$with_x" = xyes -a "x$have_x" = xyes; then
370  if test "x$x_libraries" != x; then
371    ldflags_x_opt="-L$x_libraries"
372    LDFLAGS="$LDFLAGS $ldflags_x_opt"
373    SHLDFLAGS="$SHLDFLAGS $ldflags_x_opt"
374  else
375    ldflags_x_opt=
376  fi
377  if test "x$x_includes" != x; then
378    CPPFLAGS="$CPPFLAGS -I$x_includes"
379  fi
380
381  AC_CHECK_LIB(X11,XOpenDisplay,
382  AC_DEFINE(HAVE_LIBX11,1,Define to 1 if you have the `X11' library (-lX11).))
383  AC_MSG_CHECKING(X11 version 6)
384  AC_CACHE_VAL(timidity_cv_x11_version_6,
385    AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <X11/Xlib.h>]], [[
386#if XlibSpecificationRelease < 6
387fail;
388#endif
389]])],[timidity_cv_x11_version_6=yes],[timidity_cv_x11_version_6=no]))
390  if test "$timidity_cv_x11_version_6" = "yes"; then
391    AC_MSG_RESULT(6 or newer)
392    dnl AC_DEFINE(HAVE_X11R6)
393  else
394    AC_MSG_RESULT(before 6)
395  fi
396
397  dnl checking order required
398  KEEPLIBS=$LIBS
399  AC_CHECK_LIB(Xext,XShapeCombineMask,have_xext=yes; LIBS="-lXext $LIBS",have_xext=no)
400  AC_CHECK_LIB(ICE,IceConnectionNumber)
401  AC_CHECK_LIB(SM,SmcOpenConnection,have_xprelibs=yes; LIBS="-lSM $LIBS",have_xprelibs=no)
402  AC_CHECK_LIB(Xt,XtVaAppInitialize,have_xt=yes; LIBS="-lXt $LIBS",have_xt=no)
403  AC_CHECK_LIB(Xmu,XmuInternAtom,LIBS="-lXmu $LIBS")
404  AC_CHECK_FUNCS(XmuRegisterExternalAgent)
405  if test "x$enable_xft" = "xyes"; then
406    AC_CHECK_LIB(Xft,XftInit,
407                 AC_DEFINE(HAVE_LIBXFT,1,Define to 1 if you have the 'Xft' library.),
408                 enable_xft=no)
409  fi
410  for i in `echo $with_xawlib | sed 's/,/ /g'`; do
411  case "$i" in
412  "xaw")
413    AC_CHECK_LIB(Xaw,XawInitializeWidgetSet,have_xaw=yes,have_xaw=no)
414    ;;
415  "xaw3d")
416    AC_CHECK_LIB(Xaw3d,XawInitializeWidgetSet,
417      [ have_xaw=3d;
418          AC_CHECK_HEADER(X11/Xaw3d/Tip.h,
419          AC_DEFINE(HAVE_XAW3D_TIP,1,Define to 1 if you have the <X11/Xaw3d/Tip.h> header file.),
420          )
421      ],
422      have_xaw=no
423    )
424    ;;
425  "neXtaw")
426    AC_CHECK_LIB(neXtaw,XawInitializeWidgetSet,have_xaw=next,have_xaw=no)
427    ;;
428  "XawPlus")
429    AC_CHECK_LIB(Xpm,XpmCreatePixmapFromData)
430    AC_CHECK_LIB(XawPlus,XawInitializeWidgetSet,have_xaw=plus,have_xaw=no)
431    ;;
432  *)
433    have_xaw=no
434    ;;
435  esac
436  if test "x$have_xaw" != "xno"; then break; fi
437  done
438  AC_CHECK_LIB(Xm,XmCreateForm,have_xm=yes,have_xm=no)
439  AC_CHECK_FUNCS(XShmCreatePixmap)
440  LIBS=$KEEPLIBS
441fi
442dnl End of X configure
443
444# Checks for header files.
445AC_HEADER_STDC
446#AC_HEADER_STDBOOL
447AC_HEADER_SYS_WAIT
448if test "x$WATCOM_C" != xyes ; then
449AC_HEADER_TIME
450fi
451AC_HEADER_DIRENT
452AC_CHECK_HEADERS( \
453  [arpa/inet.h \
454  errno.h \
455  getopt.h \
456  glob.h \
457  dlfcn.h \
458  fcntl.h \
459  inttypes.h \
460  limits.h \
461  machine/endian.h \
462  malloc.h \
463  memory.h \
464  netdb.h \
465  netinet/in.h \
466  nlist.h \
467  stddef.h \
468  stdlib.h \
469  stdint.h \
470  string.h \
471  strings.h \
472  stropts.h \
473  soundcard.h \
474  alsa/asoundlib.h \
475  sys/asoundlib.h \
476  sys/audioio.h \
477  sys/awe_voice.h\
478  sys/ioctl.h \
479  sys/ipc.h \
480  sys/param.h \
481  sys/shm.h \
482  sys/socket.h \
483  sys/soundcard.h \
484  sys/param.h \
485  sys/time.h \
486  sys/types.h \
487  sys/stat.h \
488  sys/sysctl.h \
489  termios.h \
490  X11/Xlib.h])
491
492if test "x$DMC" != xyes ; then
493AC_CHECK_HEADERS([ \
494  unistd.h \
495  ])
496fi
497
498AC_CHECK_HEADERS(\
499  [X11/extensions/XShm.h X11/Xmu/ExtAgent.h],[],[],[
500#ifdef HAVE_X11_XLIB_H
501#include <X11/Xlib.h>
502#endif
503  ])
504AC_CHECK_HEADER(string.h,, [ AC_DEFINE(NO_STRING_H,1,Define to 1 if you do not have <string.h>.)])
505
506# Checks for typedefs, structures, and compiler characteristics.
507if test "x$WATCOM_C" != xyes ; then
508AC_C_BIGENDIAN
509fi
510AC_C_CHAR_UNSIGNED
511AC_C_CONST
512AC_C_INLINE
513AC_C_VOLATILE
514AC_C_STRINGIZE
515AC_C_PROTOTYPES
516AC_STRUCT_TM
517if test "x$DMC" != xyes ; then
518AC_TYPE_SIZE_T
519fi
520if test "x$POCC" != xyes ; then
521AC_TYPE_OFF_T
522AC_TYPE_PID_T
523fi
524
525# Older versions of MinGW do not define ssize_t in sys/types
526AC_MSG_CHECKING([for ssize_t])
527AC_CACHE_VAL(ac_cv_type_$1,
528[AC_EGREP_CPP([ssize_t@<:@^a-zA-Z_0-9@:>@],
529[#include <sys/types.h>
530#if STDC_HEADERS
531#include <stdlib.h>
532#include <stddef.h>
533#endif], [ac_cv_type_ssize_t=yes], [ac_cv_type_ssize_t=no])])
534
535AC_MSG_RESULT([$ac_cv_type_ssize_t])
536if test $ac_cv_type_ssize_t = yes; then
537  AC_DEFINE(HAVE_SSIZE_T, 1,
538    [Define to 1 if the system has the type `ssize_t'.])
539fi
540
541dnl keyword "volatile" check
542AC_CACHE_CHECK(volatile declaration,timidity_cv_type_volatile,
543  AC_COMPILE_IFELSE([AC_LANG_PROGRAM(, [[volatile int x]])],[timidity_cv_type_volatile=yes],[timidity_cv_type_volatile=no]))
544if test $timidity_cv_type_volatile = no; then
545  AC_DEFINE(NO_VOLATILE,1,Define to 1 if you cannot use volatile keyword)
546fi
547
548dnl union usenum check
549AC_CACHE_CHECK(union semun declaration,timidity_cv_type_union_semun,
550  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
551#include <sys/types.h>
552#include <sys/ipc.h>
553#include <sys/sem.h>
554]], [[union semun x]])],[timidity_cv_type_union_semun=yes],[timidity_cv_type_union_semun=no]))
555if test $timidity_cv_type_union_semun = yes; then
556  AC_DEFINE(HAVE_UNION_SEMUN,1,Define to 1 if you use semun keyword)
557fi
558
559dnl Cygnus and Mingw memory struct optiontest
560if test "x$MSYS" = xyes ; then
561	case "x${CC}" in
562	"xgcc"*)
563		msnative_struct=''
564	    AC_MSG_CHECKING([how to get MSVC-compatible struct packing])
565	    if test -z "$ac_cv_prog_CC"; then
566			our_gcc="$CC"
567		else
568			our_gcc="$ac_cv_prog_CC"
569		fi
570		case `$our_gcc --version | sed -e 's,\..*,.,' -e q` in
571			2.)
572		if $our_gcc -v --help 2>/dev/null | grep fnative-struct >/dev/null; then
573	  		msnative_struct='-fnative-struct'
574		fi
575		;;
576			*)
577		if $our_gcc -v --help 2>/dev/null | grep ms-bitfields >/dev/null; then
578			msnative_struct='-mms-bitfields'
579		fi
580		;;
581		esac
582		if test x"$msnative_struct" = x ; then
583			AC_MSG_RESULT([no way])
584			AC_MSG_WARN([produced binary will be incompatible with windows' GUI ])
585		else
586			CFLAGS="$CFLAGS $msnative_struct"
587			CPPFLAGS="$CPPFLAGS $msnative_struct"
588			AC_MSG_RESULT([${msnative_struct}])
589		fi
590		;;
591	*)
592		;;
593	esac
594fi
595dnl Cygnus Mingw32 mmsystem check
596if test "x$MSYS" = xyes ; then
597  AC_CACHE_CHECK(Cygwin new mmsystem,timidity_cv_header_new_mmsystem,
598    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
599#include <windows.h>
600#include <mmsystem.h>
601]], [[return WOM_OPEN != 0x3BB]])],[timidity_cv_header_new_mmsystem=yes],[timidity_cv_header_new_mmsystem=no]))
602  if test $timidity_cv_header_new_mmsystem = yes; then
603    AC_DEFINE(HAVE_NEW_MMSYSTEM,1,Define to 1 if you have <mmsystem.h> file)
604  fi
605fi
606
607# Checks for library functions.
608AC_FUNC_ERROR_AT_LINE
609if test "x$DMC" != xyes ; then
610AC_FUNC_FORK
611fi
612AC_FUNC_MEMCMP
613if test "x$DMC" != xyes ; then
614AC_FUNC_MMAP
615fi
616AC_FUNC_SETVBUF_REVERSED
617AC_TYPE_SIGNAL
618if test "x$VCPP" != xyes && test "x$BORLANDC" != xyes && test "x$WATCOM_C" != "xyes" && test "x$POCC" != "xyes"; then
619AC_FUNC_VPRINTF
620fi
621AC_CHECK_FUNCS( \
622  [alarm \
623  dup2 \
624  floor \
625  getcwd \
626  gethostbyname \
627  getopt \
628  gettimeofday \
629  getwd \
630  isatty \
631  memchr \
632  memmove \
633  memset \
634  mkstemp \
635  modf \
636  munmap \
637  popen \
638  pow \
639  select \
640  signal \
641  socket \
642  sleep \
643  vsnprintf \
644  snprintf \
645  sqrt \
646  strchr \
647  strdup \
648  strstr \
649  strerror \
650  strcasecmp \
651  strncasecmp \
652  strrchr \
653  strstr \
654  strtol \
655  strlcat \
656  strlcpy \
657  usleep])
658if test "x$VCPP" = xyes; then
659  AC_DEFINE(RETSIGTYPE,int)
660  AC_DEFINE(HAVE_GETCWD,1)
661fi
662if test "x$POCC" = xyes; then
663  AC_DEFINE(HAVE_GETCWD,1)
664  AC_DEFINE(HAVE_GETHOSTBYNAME,1)
665  AC_DEFINE(HAVE_POPEN,1)
666  AC_DEFINE(HAVE_SELECT,1)
667  AC_DEFINE(HAVE_SNPRINTF,1)
668  AC_DEFINE(HAVE_STRDUP,1)
669  AC_DEFINE(HAVE_STRERROR,1)
670  AC_DEFINE(HAVE_STRCASECMP,1)
671  AC_DEFINE(HAVE_STRSTR,1)
672  AC_DEFINE(HAVE_SOCKET,1)
673  AC_DEFINE(HAVE_VSNPRINTF,1)
674  AC_DEFINE(HAVE_GETOPT,1)
675  AC_DEFINE(TIMID_VERSION,[$(PACKAGE_VERSION)],[for windows gui])
676fi
677if test "x$VCPP" = xyes || test "x$BORLANDC" = xyes || test "x$WATCOM_C" = xyes; then
678  AC_DEFINE(HAVE_GETHOSTBYNAME,1)
679  AC_DEFINE(HAVE_POPEN,1)
680  AC_DEFINE(popen,_popen,[for VC])
681  AC_DEFINE(pclose,_pclose,[for VC])
682  AC_DEFINE(HAVE_SELECT,1)
683  AC_DEFINE(HAVE_SNPRINTF,1)
684  AC_DEFINE(HAVE_STRDUP,1)
685  AC_DEFINE(HAVE_STRERROR,1)
686  AC_DEFINE(HAVE_STRNCASECMP,1)
687  AC_DEFINE(HAVE_STRSTR,1)
688  AC_DEFINE(snprintf,_snprintf,[for VC])
689  AC_DEFINE(HAVE_SOCKET,1)
690  AC_DEFINE(HAVE_VSNPRINTF,1)
691dnl  AC_DEFINE(vsnprintf,_vsnprintf,[for VC])
692  AC_DEFINE(TIMID_VERSION,[$(PACKAGE_VERSION)],[for windows gui])
693fi
694
695AC_CHECK_FUNC(getopt_long,
696	 AC_DEFINE([HAVE_GETOPT_LONG],1,[Define to 1 if you have `getopt_long' function])
697	 tm_cv_needgetopt="no",
698	 tm_cv_needgetopt="yes")
699AM_CONDITIONAL([NEEDGETOPT], test "x$tm_cv_needgetopt" = "xyes")
700
701AC_CHECK_FUNC(open_memstream, [
702	 AC_DEFINE([HAVE_OPEN_MEMSTREAM],1,[Define to 1 if you have `open_memstream' function])
703	 ])
704
705dnl ***
706dnl *** va_copy checks (from GLIB)
707dnl ***
708
709AC_CACHE_CHECK([for an implementation of va_copy()],lib_cv_va_copy,[
710	AC_RUN_IFELSE([AC_LANG_SOURCE([[
711	#include <stdarg.h>
712	void f (int i, ...) {
713	va_list args1, args2;
714	va_start (args1, i);
715	va_copy (args2, args1);
716	if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
717	  exit (1);
718	va_end (args1); va_end (args2);
719	}
720	int main() {
721	  f (0, 42);
722	  return 0;
723	}]])],
724	[lib_cv_va_copy=yes],
725	[lib_cv_va_copy=no],[])
726])
727
728AC_CACHE_CHECK([for an implementation of __va_copy()],lib_cv___va_copy,[
729	AC_RUN_IFELSE([AC_LANG_SOURCE([[
730	#include <stdarg.h>
731	void f (int i, ...) {
732	va_list args1, args2;
733	va_start (args1, i);
734	__va_copy (args2, args1);
735	if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
736	  exit (1);
737	va_end (args1); va_end (args2);
738	}
739	int main() {
740	  f (0, 42);
741	  return 0;
742	}]])],
743	[lib_cv___va_copy=yes],
744	[lib_cv___va_copy=no],[])
745])
746
747if test "x$lib_cv_va_copy" = "xyes"; then
748  va_copy_func=va_copy
749else if test "x$lib_cv___va_copy" = "xyes"; then
750  va_copy_func=__va_copy
751fi
752fi
753
754if test -n "$va_copy_func"; then
755  AC_DEFINE_UNQUOTED(VA_COPY,$va_copy_func,[A 'va_copy' style function])
756fi
757
758AC_CACHE_CHECK([whether va_lists can be copied by value],lib_cv_va_val_copy,[
759	AC_RUN_IFELSE([AC_LANG_SOURCE([[
760	#include <stdarg.h>
761	void f (int i, ...) {
762	va_list args1, args2;
763	va_start (args1, i);
764	args2 = args1;
765	if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
766	  exit (1);
767	va_end (args1); va_end (args2);
768	}
769	int main() {
770	  f (0, 42);
771	  return 0;
772	}]])],
773	[lib_cv_va_val_copy=yes],
774	[lib_cv_va_val_copy=no],[])
775])
776
777if test "x$lib_cv_va_val_copy" = "xno"; then
778  AC_DEFINE(VA_COPY_AS_ARRAY,1, ['va_lists' cannot be copies as values])
779fi
780
781# Checks on cygnus and MSYS
782if test "x$MSYS" = xyes ; then
783  case "$ac_cv_header_dirent_dirent_h$ac_cv_header_dirent_sys_ndir_h$ac_cv_header_dirent_sys_dir_h$ac_cv_header_dirent_ndir_h" in
784  *yes*)
785    AC_CHECK_FUNC(opendir,,
786  [ EXTRADEFS="$EXTRADEFS -D__W32READDIR__"
787    W32READDIR=yes ])
788    ;;
789  *)EXTRADEFS="$EXTRADEFS -D__W32READDIR__"
790    W32READDIR=yes
791    ;;
792  esac
793  if test "x$VCPP" = xyes || test "x$BORLANDC" = xyes || test "x$WATCOM_C" = xyes || test "x$DMC" = xyes || test "x$POCC" = xyes; then
794    EXTRALIBS="$EXTRALIBS  ws2_32.lib"
795    EXTRADEFS="$EXTRADEFS -DWINSOCK"
796  else
797    AC_CHECK_FUNC(socket,,
798     WAPI_CHECK_LIB(ws2_32,WSAStartup,
799  	   [#include <winsock.h>],
800  	   [WSAStartup(0,0);],
801       [ EXTRALIBS="$EXTRALIBS -lws2_32"
802        EXTRADEFS="$EXTRADEFS -DWINSOCK" ]
803     )
804    )
805  fi
806fi
807
808# Checks on extra paths
809
810dnl tcltk paths
811AC_ARG_WITH(tcl-includes,
812  AS_HELP_STRING([--with-tcl-includes=DIR], [Tcl include file path]),
813  [ if test ! -d $withval; then
814      AC_MSG_WARN($withval is not found.)
815    fi
816    tcl_include_dir="-I$withval"
817  ])
818AC_ARG_WITH(tcl-libs,
819  AS_HELP_STRING([--with-tcl-libs=DIR], [Tcl library file path]),
820  [ if test ! -d $withval; then
821      AC_MSG_WARN($withval is not found.)
822    fi
823    tcl_libdir="-L$withval" ])
824AC_ARG_WITH(tk-includes,
825  AS_HELP_STRING([--with-tk-includes=DIR], [Tk include file path]),
826  [ if test ! -d $withval; then
827      AC_MSG_WARN($withval is not found.)
828    fi
829    tk_includes="-I$withval" ])
830AC_ARG_WITH(tk-libs,
831  AS_HELP_STRING([--with-tk-libs=DIR], [Tk library file path]),
832  [ if test ! -d $withval; then
833      AC_MSG_WARN($withval is not found.)
834    fi
835    tk_libdir="-L$withval" ])
836
837dnl offix paths
838AC_ARG_WITH(offix-includes,
839  AS_HELP_STRING([--with-offix-includes=DIR], [Offix include file path]),
840  [ if test ! -d $withval; then
841      AC_MSG_WARN($withval is not found.)
842    fi
843    offix_include_dir="-I$withval" ])
844AC_ARG_WITH(offix-libs,
845  AS_HELP_STRING([--with-offix-libs=DIR], [Offix include file path]),
846  [ if test ! -d $withval; then
847      AC_MSG_WARN($withval is not found.)
848    fi
849    offix_lib_dir="-L$withval" ])
850
851
852#
853# audio section
854#
855dnl default(d): auto selection
856dnl oss(d):     OSS /dev/dsp
857dnl alsa(d):    ALSA pcm device
858dnl sun(d):     SunOS /dev/audio
859dnl hpux(d):    HPUX /dev/audio
860dnl irix(d):    IRIX audio
861dnl mme(d):     OSF/1 MME
862dnl sb_dsp(d):  BSD/OS 2.0 /dev/sb_dsp
863dnl w32(d):     Windows MMS
864dnl darwin(d):  Mac OS X pcm device
865dnl alsa(s):    ALSA pcm device
866dnl alib(A):    HPUX network audio (Alib)
867dnl nas(n):     Network Audio System
868dnl arts(R):	aRts
869dnl esd(e):     EsounD
870dnl portaudio(p) PortAudio
871dnl npipe(N)   Windows named pipe;
872dnl vorbis(v):  Ogg Vorbis
873dnl flac(F):    FLAC / OggFLAC
874dnl speex(S):   Ogg Speex
875dnl gogo(g):    MP3 GOGO
876dnl jack(j):    JACK
877dnl ao(O):      Libao
878
879audio_targets='default oss alsa sun hpux irix mme sb_dsp w32 alib nas arts esd vorbis flac gogo portaudio npipe jack ao'
880
881AC_ARG_WITH(nas-library,
882  AS_HELP_STRING([--with-nas-library=library], [NAS absolute library path(Don't use -laudio)]))
883AC_ARG_WITH(nas-includes,
884  AS_HELP_STRING([--with-nas-includes=DIR], [NAS include files are in dir]))
885
886
887AC_ARG_ENABLE(audio,
888  [  --enable-audio[=mode_list] Enable audio (Specify comma separated mode list):
889                              default:   Automatically select audio device.
890                              oss:       OSS /dev/dsp
891                              sun:       SunOS /dev/audio
892                              hpux:      HPUX /dev/audio
893                              irix:      IRIX audio library
894                              mme:       OSF/1 MME
895                              sb_dsp:    BSD/OS 2.0 /dev/sb_dsp
896                              w32:       Windows MMS
897                              darwin:    Darwin CoreAudio
898                              alsa:      ALSA pcm device
899                              alib:      HPUX network audio (Alib)
900                              nas:       NAS - Network Audio System
901                              arts:      aRts
902                              esd:       EsounD - Enlightened Sound Daemon
903                              portaudio: PortAudio
904                              npipe:     Named Pipe(windows)
905                              jack:      JACK
906                              ao:        Libao
907                              vorbis:    Ogg Vorbis
908                              flac:      FLAC / OggFLAC
909                              speex:     Ogg Speex
910                              gogo:      MP3 GOGO (Only Windows is supported)
911],
912  [ enable_audio=$enableval
913    have_audio_opt=yes ],
914  [ enable_audio=yes
915    have_audio_opt=no ])
916
917dnl yes -> default
918test "x$enable_audio" = xyes && enable_audio=default
919
920if test "x$enable_audio" != xno; then
921  for i in `echo $enable_audio | sed 's/,/ /g'`; do
922    eval "au_enable_$i=yes"
923  done
924fi
925
926dnl Turn on default output mode
927DEFAULT_PLAYMODE=
928AC_ARG_WITH(default-output,
929  AS_HELP_STRING([--with-default-output=<mode>],
930  [Specify default output mode (optional):
931                                (default|alsa|alib|arts|nas|
932                                esd|wav|au|aiff|list|vorbis|flac|speex|
933                                gogo|portaudio|npipe|jack|ao)]),
934  [ if test "$enable_audio" != no; then
935    DEFAULT_PLAYMODE=$withval
936    eval "au_enable_$DEFAULT_PLAYMODE=yes"
937  else
938    AC_MSG_WARN([--with-default-output=$withval: audio is not enabled])
939  fi])
940
941dnl compatibility matters.
942dnl AC_ARG_ENABLE(esd,
943dnl   [  --enable-esd         EsounD (Obsoleted.  Use --enable-audio=esd)],
944dnl   [ au_enable_esd=$enableval ])
945dnl AC_ARG_ENABLE(nas,
946dnl   [  --enable-nas         NAS  (Obsoleted.  Use --enable-audio=nas)],
947dnl   [ au_enable_nas=$enableval ])
948dnl AC_ARG_ENABLE(alsa,
949dnl   [  --enable-alsa        ALSA   (Obsoleted.  Use --enable-audio=alsa)],
950dnl   [ au_enable_alsa=$enableval ])
951
952dnl target-specific defaults
953if test "x$au_enable_default" = xyes; then
954  case "$target" in
955  *-*-linux*|*-*-freebsd*)
956    au_enable_oss=yes
957    ;;
958  *-*-bsdi2.0)
959    au_enable_sb_dsp=yes
960    ;;
961  *-*-bsdi2.1|*-*-bsdi3.?|*-*-bsdi4.?)
962    au_enable_oss=yes
963    ;;
964  *-*-hpux*)
965    au_enable_hpux=yes
966    ;;
967  *-dec-*)
968    au_enable_mme=yes
969    ;;
970  *irix*)
971    au_enable_irix=yes
972    ;;
973  *-*-sunos4*)
974    au_enable_sun=yes
975    ;;
976  *-*-solaris*)
977    au_enable_sun=yes
978    ;;
979  *-*-netbsd*)
980    au_enable_sun=yes
981    ;;
982  *-*-openbsd*)
983    au_enable_sun=yes
984    ;;
985  *-*-cygwin*)
986    au_enable_w32=yes
987    ;;
988  *-*-mingw*)
989    au_enable_w32=yes
990    ;;
991  *-*-darwin*)
992    au_enable_darwin=yes
993    ;;
994  *)
995    AC_MSG_WARN(No --enable-audio=default audio for $target)
996    ;;
997  esac
998fi
999
1000
1001# Each audio mode's configurations
1002dnl oss
1003AC_MSG_CHECKING(enable_audio=oss)
1004if test "x$au_enable_oss" = xyes; then
1005  EXTRADEFS="$EXTRADEFS -DAU_OSS"
1006  SYSEXTRAS="$SYSEXTRAS oss_a.c"
1007  if test "x$ac_cv_header_sys_soundcard_h" = xyes; then
1008    AC_MSG_RESULT(yes - <sys/soundcard.h>)
1009  else
1010    case "$target" in
1011      *linux*|*freebsd*)
1012        dnl <linux/soundcard.h> or <machine/soundcard.h>
1013        AC_MSG_RESULT(yes)
1014        ;;
1015      *)
1016        if test "x$ac_cv_header_soundcard_h" = xyes; then
1017          AC_MSG_RESULT(yes - <soundcard.h>)
1018        else
1019          AC_MSG_WARN(<sys/soundcard.h> is not found)
1020        fi
1021	;;
1022    esac
1023  fi
1024  AC_CHECK_LIB(ossaudio,open)
1025
1026  dnl Why OpenBSD use /dev/audio instead of /dev/dsp for OSS
1027  case "$target" in
1028    *openbsd*)
1029      if test ! -e "/dev/dsp"; then
1030        oss_device=/dev/audio
1031      fi
1032      ;;
1033  esac
1034else
1035  AC_MSG_RESULT(no)
1036fi
1037
1038dnl SunOS's
1039AC_MSG_CHECKING(enable_audio=sun)
1040if test "x$au_enable_sun" = xyes; then
1041  case "$target" in
1042    *-*-sunos4*)
1043      if test -f /usr/demo/SOUND/libaudio.a; then
1044        EXTRALIBS="$EXTRALIBS /usr/demo/SOUND/libaudio.a"
1045	AC_MSG_RESULT(yes)
1046      else
1047	AC_MSG_RESULT(Notice: libaudio.a is not found [(ignore)])
1048      fi
1049      ;;
1050    *-*-solaris*)
1051      if test -f /usr/demo/SOUND/lib/libaudio.a; then
1052        EXTRALIBS="$EXTRALIBS /usr/demo/SOUND/lib/libaudio.a"
1053	AC_MSG_RESULT(yes)
1054      else
1055        AC_MSG_RESULT(Notice: libaudio.a is not found [(ignore)])
1056      fi
1057      ;;
1058    *)   AC_MSG_RESULT(yes)
1059      ;;
1060  esac
1061  EXTRADEFS="$EXTRADEFS -DAU_SUN"
1062  SYSEXTRAS="$SYSEXTRAS sun_a.c"
1063else
1064  AC_MSG_RESULT(no)
1065fi
1066
1067dnl HP-UX's
1068AC_MSG_CHECKING(enable_audio=hpux)
1069if test "x$au_enable_hpux" = xyes; then
1070  case "$target" in
1071    *-*-hpux*) AC_MSG_RESULT(yes) ;;
1072    *) AC_MSG_WARN(may not work on $target) ;;
1073  esac
1074  EXTRADEFS="$EXTRADEFS -DAU_HPUX_AUDIO"
1075  SYSEXTRAS="$SYSEXTRAS hpux_d_a.c"
1076else
1077  AC_MSG_RESULT(no)
1078fi
1079
1080dnl Irix's
1081AC_MSG_CHECKING(enable_audio=irix)
1082if test "x$au_enable_irix" = xyes; then
1083  case "$target" in
1084    *-sgi-irix5*|*-sgi-irix6.2)
1085      EXTRADEFS="$EXTRADEFS -DAU_AUDRIV -DSGI_OLDAL"
1086      AC_MSG_RESULT(yes)
1087      ;;
1088    *-sgi-irix6*)
1089      EXTRADEFS="$EXTRADEFS -DAU_AUDRIV -DSGI_NEWAL"
1090      AC_MSG_RESULT(yes)
1091      ;;
1092    *) AC_MSG_WARN(may not work on $target) ;;
1093  esac
1094  SYSEXTRAS="$SYSEXTRAS audriv_a.c audriv_al.c"
1095  EXTRALIBS="$EXTRASLIBS -laudio"
1096else
1097  AC_MSG_RESULT(no)
1098fi
1099
1100dnl OSF/1 MME
1101AC_MSG_CHECKING(enable_audio=mme)
1102if test "x$au_enable_mme" = xyes; then
1103  case "$target" in
1104    *-dec-*) AC_MSG_RESULT(yes) ;;
1105    *) AC_MSG_WARN(may not work on $target) ;;
1106  esac
1107  EXTRADEFS="$EXTRADEFS -DAU_DEC -DAU_AUDRIV"
1108  SYSEXTRAS="$SYSEXTRAS audriv_a.c audriv_mme.c"
1109  CPPFLAGS="$CPPFLAGS -I/usr/opt/MME210/include"
1110  EXTRALIBS="$EXTRALIBS /usr/opt/MME220/lib/libmme.a"
1111else
1112  AC_MSG_RESULT(no)
1113fi
1114
1115dnl BSD/OS's sb_dsp
1116AC_MSG_CHECKING(enable_audio=sb_dsp)
1117if test "x$au_enable_sb_dsp" = xyes; then
1118  case "$target" in
1119    *-*-bsdi2.0) AC_MSG_RESULT(yes) ;;
1120    *) AC_MSG_WARN(may not work on $target) ;;
1121  esac
1122  EXTRADEFS="$EXTRADEFS -DAU_BSDI -DDEFAULT_RATE=22500"
1123  SYSEXTRAS="$SYSEXTRAS bsd20_a.c"
1124else
1125  AC_MSG_RESULT(no)
1126fi
1127
1128dnl Windows' MME
1129AC_MSG_CHECKING(enable_audio=w32)
1130if test "x$au_enable_w32" = xyes; then
1131  case "$target" in
1132    *-*-cygwin*)
1133     AC_MSG_RESULT(yes)
1134     ;;
1135    *-*-mingw32)
1136     AC_MSG_RESULT(yes)
1137     ;;
1138    *)
1139     AC_MSG_WARN(may not work on $target)
1140     ;;
1141  esac
1142  SYSEXTRAS="$SYSEXTRAS w32_a.c"
1143  if test "x$VCPP" = xyes || test "x$BORLANDC" = xyes || test "x$WATCOM_C" = xyes || test "x$DMC" = xyes || test "x$POCC" = xyes; then
1144  	EXTRALIBS="$EXTRALIBS winmm.lib"
1145  else
1146    EXTRALIBS="$EXTRALIBS -lwinmm"
1147  fi
1148  EXTRADEFS="$EXTRADEFS -DAU_W32"
1149else
1150  AC_MSG_RESULT(no)
1151fi
1152
1153dnl Mac OS X / darwin-x86
1154AC_MSG_CHECKING(enable_audio=darwin)
1155if test "x$au_enable_darwin" = xyes; then
1156  EXTRADEFS="$EXTRADEFS -DAU_DARWIN"
1157  SYSEXTRAS="$SYSEXTRAS darwin_a.c"
1158  EXTRALIBS="$EXTRALIBS -framework CoreAudio"
1159  dnl just say yes or no :-P
1160  case "$target" in
1161    *-*-darwin*)
1162     AC_MSG_RESULT(yes);;
1163   *)
1164     AC_MSG_WARN(may not work on $target)
1165     ;;
1166  esac
1167else
1168  AC_MSG_RESULT(no)
1169fi
1170
1171
1172dnl alsa - Advanced Linux Sound Architecture
1173AC_MSG_CHECKING(enable_audio=alsa)
1174if test "x$au_enable_alsa" = xyes; then
1175  AC_MSG_RESULT([yes, configuring alsa])
1176  KEEPCFLAGS=$CFLAGS
1177  KEEPLIBS=$LIBS
1178  KEEPLDFLAGS=$LDFLAGS
1179  AM_PATH_ALSA()
1180  if test "x$alsa_found" = "xyes" ; then
1181    dnl AC_MSG_RESULT(yes)
1182    EXTRADEFS="$EXTRADEFS -DAU_ALSA"
1183    SYSEXTRAS="$SYSEXTRAS alsa_a.c"
1184    EXTRACT_CPPFLAGS(CPPFLAGS,CFLAGS,$ALSA_CFLAGS)
1185    LIBS="$LIBS $ALSA_LIBS"
1186    AC_CHECK_FUNCS(snd_seq_port_info_set_timestamping)
1187  else
1188    AC_MSG_WARN(Couldn't configure alsa.)
1189    CFLAGS=$KEEPCFLAGS
1190    LIBS=$KEEPLIBS
1191    LDFLAGS=$KEEPLDFLAGS
1192  fi
1193else
1194  AC_MSG_RESULT(no)
1195fi
1196
1197dnl HP-UX Alib
1198AC_MSG_CHECKING(enable_audio=alib)
1199if test "x$au_enable_alib" = xyes; then
1200  case "$target" in
1201    *-*-hpux*) AC_MSG_RESULT(yes) ;;
1202    *) AC_MSG_WARN(may not work on $target) ;;
1203  esac
1204  SYSEXTRAS="$SYSEXTRAS hpux_a.c"
1205  EXTRADEFS="$EXTRADEFS -DAU_HPUX_ALIB"
1206  if test -d /opt/audio/include; then
1207    CPPFLAGS="$CPPFLAGS -I/opt/audio/include"
1208  fi
1209  if test -d /opt/audio/lib; then
1210    EXTRALIBS="$EXTRALIBS -L/opt/audio/lib"
1211  fi
1212  EXTRALIBS="$EXTRALIBS -lAlib"
1213else
1214  AC_MSG_RESULT(no)
1215fi
1216
1217dnl nas
1218AC_MSG_CHECKING(enable_audio=nas)
1219if test "x$au_enable_nas" = xyes; then
1220  if test "x$with_x" != xyes; then
1221    AC_MSG_ERROR(nas: --with-x option must be specified)
1222  fi
1223  EXTRADEFS="$EXTRADEFS -DAU_NAS"
1224  SYSEXTRAS="$SYSEXTRAS nas_a.c"
1225
1226  dnl -laudio conflicts another audio library,
1227  dnl so I specify NAS library with absolete path.
1228
1229  if test "x$with_nas_library" != x; then
1230    AC_MSG_RESULT($with_nas_library);
1231    EXTRALIBS="$EXTRALIBS $with_nas_library"
1232  else
1233    AC_MSG_RESULT()
1234    MY_SEARCH_LIBS(AuOpenServer,
1235	[$x_libraries/libaudio.a \
1236	 /usr/lib/libaudio.so \
1237	 /usr/lib/libaudio.a ],
1238	[ AC_MSG_RESULT(NAS: $timidity_cv_search_AuOpenServer)
1239	  EXTRALIBS="$EXTRALIBS $timidity_cv_search_AuOpenServer"],
1240	[AC_MSG_WARN(NAS library is not found.)])
1241  fi
1242  test "x$with_nas_includes" != x && CPPFLAGS="$CPPFLAGS -I$with_nas_includes"
1243  lib_xt_opt=-lXt
1244  if test "x$have_xext" = xyes; then
1245    lib_xext_opt=-lXext
1246  fi
1247  if test "x$have_xprelibs" = xyes; then
1248    lib_xprelibs_opt='-lSM -lICE'
1249  fi
1250else
1251  AC_MSG_RESULT(no)
1252fi
1253
1254dnl aRts of KDE
1255AC_MSG_CHECKING(enable_audio=arts)
1256if test "x$au_enable_arts" = xyes; then
1257  AC_MSG_RESULT([yes, configuring aRts])
1258  dnl **** Check for aRts Sound Server ****
1259  AC_PATH_PROG(ARTSCCONFIG, artsc-config)
1260  if test x$ARTSCCONFIG != x -a x$ARTSCCONFIG != x'"$ARTSCCONFIG"';
1261  then
1262    ARTSC_CFLAGS=""
1263    for i in `$ARTSCCONFIG --cflags`
1264    do
1265      case "$i" in
1266        -I*) ARTSC_CFLAGS="$ARTSC_CFLAGS $i";;
1267      esac
1268    done
1269    ARTSC_LIBS=`$ARTSCCONFIG --libs`
1270    save_CFLAGS="$CFLAGS"
1271    CFLAGS="$CFLAGS $ARTSC_CFLAGS"
1272    AC_TRY_COMPILE([#include <artsc.h>],[arts_stream_t stream;],
1273        [AC_SUBST(ARTSLIBS, $ARTSC_LIBS)
1274         AC_SUBST(ARTSINCL, $ARTSC_CFLAGS)
1275         AC_DEFINE(HAVE_ARTS, 1, [Define if you have ARTS sound server])
1276	 have_arts="yes"
1277         ])
1278    CFLAGS="$save_CFLAGS"
1279  fi
1280
1281  if test "$have_arts" = "yes"; then
1282    dnl AC_MSG_RESULT(aRts: Enabled)
1283    EXTRADEFS="$EXTRADEFS -DAU_ARTS"
1284    SYSEXTRAS="$SYSEXTRAS aRts_a.c"
1285    EXTRACT_CPPFLAGS(CPPFLAGS,CFLAGS,$ARTSC_CFLAGS)
1286    LIBS="$LIBS $ARTSC_LIBS"
1287  else
1288    AC_MSG_WARN(aRts: Couldn't configure)
1289  fi
1290else
1291  AC_MSG_RESULT(no)
1292fi
1293
1294dnl EsounD
1295AC_MSG_CHECKING(enable_audio=esd)
1296if test "x$au_enable_esd" = xyes; then
1297  AC_MSG_RESULT([yes, configuring esd])
1298  KEEPCFLAGS=$CFLAGS
1299  KEEPLIBS=$LIBS
1300  KEEPLDFLAGS=$LDFLAGS
1301  AM_PATH_ESD()
1302  CFLAGS=$KEEPCFLAGS
1303  LIBS=$KEEPLIBS
1304  LDFLAGS=$KEEPLDFLAGS
1305  if test "x$no_esd" = x; then
1306    dnl AC_MSG_RESULT(EsounD: Enabled)
1307    EXTRADEFS="$EXTRADEFS -DAU_ESD"
1308    SYSEXTRAS="$SYSEXTRAS esd_a.c"
1309    EXTRACT_CPPFLAGS(CPPFLAGS,CFLAGS,$ESD_CFLAGS)
1310    LIBS="$LIBS $ESD_LIBS"
1311  else
1312    AC_MSG_WARN(EsounD: Couldn't configure)
1313  fi
1314else
1315  AC_MSG_RESULT(no)
1316fi
1317
1318dnl portaudio
1319AC_MSG_CHECKING(enable_audio=portaudio)
1320if test "x$au_enable_portaudio" = xyes; then
1321  AC_MSG_RESULT(yes)
1322  if test "x$MSYS" = xyes ; then
1323	SYSEXTRAS="$SYSEXTRAS portaudio_a.c w32_portaudio_dll.c"
1324  	EXTRALIBS="$EXTRALIBS -lportaudio"
1325  	EXTRADEFS="$EXTRADEFS -DAU_PORTAUDIO -DAU_PORTAUDIO_DLL"
1326  else
1327  	SYSEXTRAS="$SYSEXTRAS portaudio_a.c"
1328  	EXTRALIBS="$EXTRALIBS -lportaudio"
1329  	EXTRADEFS="$EXTRADEFS -DAU_PORTAUDIO"
1330  fi
1331else
1332  AC_MSG_RESULT(no)
1333fi
1334
1335dnl npipe (windows named pipe)
1336AC_MSG_CHECKING(enable_audio=npipe)
1337if test "x$au_enable_npipe" = xyes; then
1338  AC_MSG_RESULT(yes)
1339  	SYSEXTRAS="$SYSEXTRAS npipe_a.c"
1340  	EXTRADEFS="$EXTRADEFS -DAU_NPIPE"
1341else
1342  AC_MSG_RESULT(no)
1343fi
1344
1345
1346dnl JACK
1347AC_MSG_CHECKING(enable_audio=jack)
1348if test "x$au_enable_jack" = xyes; then
1349  AC_MSG_RESULT(yes)
1350  SYSEXTRAS="$SYSEXTRAS jack_a.c"
1351  EXTRALIBS="$EXTRALIBS $(pkg-config --libs jack)"
1352  EXTRADEFS="$EXTRADEFS -DAU_JACK $(pkg-config --cflags jack)"
1353else
1354  AC_MSG_RESULT(no)
1355fi
1356
1357dnl AO
1358AC_MSG_CHECKING(enable_audio=ao)
1359if test "x$au_enable_ao" = xyes; then
1360  AC_MSG_RESULT([yes, configuring ao])
1361  XIPH_PATH_AO()
1362  if test "x$no_ao" = "x" ; then
1363    # AC_MSG_RESULT(yes)
1364    EXTRADEFS="$EXTRADEFS -DAU_AO"
1365    SYSEXTRAS="$SYSEXTRAS ao_a.c"
1366    EXTRACT_CPPFLAGS(CPPFLAGS,CFLAGS,$AO_CFLAGS)
1367    LIBS="$LIBS $AO_LIBS"
1368  else
1369    AC_MSG_WARN(Couldn't configure libao.)
1370  fi
1371else
1372  AC_MSG_RESULT(no)
1373fi
1374
1375dnl ogg's vorbis
1376AC_MSG_CHECKING(enable_audio=vorbis)
1377if test "x$au_enable_vorbis" = xyes; then
1378  AC_MSG_RESULT([yes, configuring vorbis])
1379  if test "x$MSYS" = "xyes" && test "x$MINGWGCC" != "xyes" ; then
1380    AC_CHECK_HEADER(vorbis/vorbisenc.h,, [
1381    EXTRADEFS="-DAU_VORBIS_DLL $EXTRADEFS"
1382	SYSEXTRAS="$SYSEXTRAS w32g_vorbisenc_dll.c w32g_vorbis_dll.c w32g_ogg_dll.c"
1383    ])
1384  else
1385  XIPH_PATH_OGG([
1386    XIPH_PATH_VORBIS([
1387      have_vorbis=yes
1388      SYSEXTRAS="$SYSEXTRAS vorbis_a.c"
1389      EXTRADEFS="$EXTRADEFS -DAU_VORBIS $OGG_CFLAGS $VORBIS_CFLAGS"
1390      EXTRALIBS="$EXTRALIBS $VORBIS_LIBS $VORBISENC_LIBS $OGG_LIBS"
1391      if test "x$MSYS" = "xyes" && test "x$MINGWGCC" = "xyes" ; then
1392      EXTRADEFS="-DAU_VORBIS_DLL $EXTRADEFS"
1393	  SYSEXTRAS="$SYSEXTRAS w32g_vorbisenc_dll.c w32g_vorbis_dll.c w32g_ogg_dll.c"
1394      fi
1395    ],[
1396      AC_MSG_WARN([Unable to configure vorbis, but ogg is there (???)])
1397    ])
1398  ],[
1399    AC_MSG_WARN(Unable to configure vorbis!)
1400    have_vorbis=no
1401  ])
1402  fi
1403else
1404  AC_MSG_RESULT(no)
1405fi
1406
1407dnl libFLAC - Free Lossless Audio Codec
1408if test "x$MSYS" = xyes ; then
1409  AC_MSG_CHECKING(enable_audio=flac)
1410  if test "x$au_enable_flac" = xyes; then
1411    AC_MSG_RESULT([yes, configuring flac])
1412    SYSEXTRAS="$SYSEXTRAS flac_a.c w32_libFLAC_dll.c w32_libOggFLAC_dll.c"
1413    AC_CHECK_HEADER(FLAC/all.h, [
1414      EXTRADEFS="$EXTRADEFS -DAU_FLAC -DAU_FLAC_DLL"
1415    ])
1416    AC_CHECK_HEADER(OggFLAC/all.h, [
1417      EXTRADEFS="$EXTRADEFS -DAU_OGGFLAC -DAU_OGGFLAC_DLL"
1418    ])
1419dnl    AM_PATH_LIBFLAC([
1420dnl      EXTRADEFS="$EXTRADEFS -DAU_FLAC -DAU_FLAC_DLL"
1421dnl      EXTRACT_CPPFLAGS(CPPFLAGS,CFLAGS,$LIBFLAC_CFLAGS)
1422dnl      LIBS="$LIBS $LIBFLAC_LIBS"
1423dnl    ])
1424dnl    AM_PATH_LIBOGGFLAC([
1425dnl      EXTRADEFS="$EXTRADEFS -DAU_OGGFLAC -DAU_OGGFLAC_DLL"
1426dnl      EXTRACT_CPPFLAGS(CPPFLAGS,CFLAGS,$LIBOGGFLAC_CFLAGS)
1427dnl      LIBS="$LIBS $LIBOGGFLAC_LIBS"
1428dnl    ])
1429  else
1430    AC_MSG_RESULT(no)
1431  fi
1432else
1433  AC_MSG_CHECKING(enable_audio=flac)
1434  if test "x$au_enable_flac" = xyes; then
1435    AC_MSG_RESULT([yes, configuring flac])
1436    SYSEXTRAS="$SYSEXTRAS flac_a.c"
1437    AM_PATH_LIBFLAC([
1438      EXTRADEFS="$EXTRADEFS -DAU_FLAC"
1439      EXTRACT_CPPFLAGS(CPPFLAGS,CFLAGS,$LIBFLAC_CFLAGS)
1440      LIBS="$LIBS $LIBFLAC_LIBS"
1441    ])
1442    AM_PATH_LIBOGGFLAC([
1443      EXTRADEFS="$EXTRADEFS -DAU_OGGFLAC"
1444      EXTRACT_CPPFLAGS(CPPFLAGS,CFLAGS,$LIBOGGFLAC_CFLAGS)
1445      LIBS="$LIBS $LIBOGGFLAC_LIBS"
1446    ])
1447  else
1448    AC_MSG_RESULT(no)
1449  fi
1450fi
1451dnl ogg's speex
1452AC_MSG_CHECKING(enable_audio=speex)
1453if test "x$au_enable_speex" = xyes; then
1454  AC_CACHE_VAL(timidity_cv_have_speex,
1455  [AC_TRY_LINK([
1456  #include <speex/speex.h>
1457  #include <ogg/ogg.h>
1458  ],
1459  [
1460    SpeexBits *dummy;
1461  ],
1462  [have_speex=yes], [have_speex=no])])
1463  AC_MSG_RESULT($have_speex)
1464  if test "x$have_speex" = xyes; then
1465    SYSEXTRAS="$SYSEXTRAS speex_a.c"
1466    EXTRALIBS="$EXTRALIBS -lspeex -logg"
1467    EXTRADEFS="$EXTRADEFS -DAU_SPEEX"
1468  fi
1469else
1470  AC_MSG_RESULT(no)
1471fi
1472
1473dnl Win32 Gogo-no-coder
1474AC_MSG_CHECKING(enable_audio=gogo)
1475if test "x$au_enable_gogo" = xyes; then
1476  if test "x$MSYS" = "xyes"; then
1477    AC_MSG_RESULT(yes, configuring gogo)
1478  else
1479    AC_MSG_WARN(May be gogo is not supported.  You need hack the gogo_a.c)
1480  fi
1481  AC_CHECK_HEADER(gogo/gogo.h, [
1482    have_gogo=yes
1483  ])
1484  SYSEXTRAS="$SYSEXTRAS gogo_a.c w32_gogo.c"
1485  EXTRADEFS="$EXTRADEFS -DAU_GOGO -DAU_GOGO_DLL"
1486dnl  EXTRALIBS="$EXTRALIBS -lgogo"
1487else
1488  AC_MSG_RESULT(no)
1489fi
1490
1491dnl Pseudo audio device (Undocumented).
1492if test "x$au_enable_none" = xyes; then
1493    EXTRADEFS="$EXTRADEFS -DAU_NONE -DAU_AUDRIV"
1494    SYSEXTRAS="$SYSEXTRAS audriv_a.c audriv_none.c"
1495fi
1496dnl
1497dnl TIMIDITY_OUTPUT_ID
1498dnl
1499AC_MSG_CHECKING(default output mode)
1500if test "x$DEFAULT_PLAYMODE" = x; then
1501  DEFAULT_PLAYMODE=`echo $enable_audio | sed 's/,.*//'`
1502fi
1503case ".$DEFAULT_PLAYMODE" in
1504  .default)  TIMIDITY_OUTPUT_ID=d ;;
1505  .oss)      TIMIDITY_OUTPUT_ID=d ;;
1506  .alsa)     TIMIDITY_OUTPUT_ID=s ;;
1507  .sun)      TIMIDITY_OUTPUT_ID=d ;;
1508  .hpux)     TIMIDITY_OUTPUT_ID=d ;;
1509  .irix)     TIMIDITY_OUTPUT_ID=d ;;
1510  .mme)      TIMIDITY_OUTPUT_ID=d ;;
1511  .sb_dsp)   TIMIDITY_OUTPUT_ID=d ;;
1512  .darwin)   TIMIDITY_OUTPUT_ID=d ;;
1513  .w32)      TIMIDITY_OUTPUT_ID=d ;;
1514  .alib)     TIMIDITY_OUTPUT_ID=A ;;
1515  .nas)      TIMIDITY_OUTPUT_ID=n ;;
1516  .arts)     TIMIDITY_OUTPUT_ID=R ;;
1517  .esd)      TIMIDITY_OUTPUT_ID=e ;;
1518  .portaudio)      TIMIDITY_OUTPUT_ID=p ;;
1519  .npipe)    TIMIDITY_OUTPUT_ID=N ;;
1520  .wav)      TIMIDITY_OUTPUT_ID=w ;;
1521  .au)       TIMIDITY_OUTPUT_ID=u ;;
1522  .aiff)     TIMIDITY_OUTPUT_ID=a ;;
1523  .list)     TIMIDITY_OUTPUT_ID=l ;;
1524  .vorbis)   TIMIDITY_OUTPUT_ID=v ;;
1525  .flac)     TIMIDITY_OUTPUT_ID=F ;;
1526  .speex)    TIMIDITY_OUTPUT_ID=S ;;
1527  .gogo)     TIMIDITY_OUTPUT_ID=g ;;
1528  .jack)     TIMIDITY_OUTPUT_ID=j ;;
1529  .ao)       TIMIDITY_OUTPUT_ID=O ;;
1530  *)         TIMIDITY_OUTPUT_ID= ;;
1531esac
1532AC_MSG_RESULT($DEFAULT_PLAYMODE/$TIMIDITY_OUTPUT_ID)
1533
1534
1535#
1536# Interface Section
1537#
1538
1539interface_targets='dynamic ncurses slang motif tcltk emacs vt100 xaw xskin gtk alsaseq winsyn winsyng portmidisyng npsyn'
1540
1541AC_ARG_ENABLE(interface,
1542  AS_HELP_STRING([--enable-interface=[interface_list]], [Comma separated interface list]),
1543  [ for i in `echo $enableval | sed 's/,/ /g'`; do
1544      eval "enable_$i=yes"
1545    done ])
1546
1547#  Dynamic link configuration
1548AC_ARG_ENABLE(dynamic,
1549  AS_HELP_STRING([--enable-dynamic], [Enable dynamic link interface (default is no)])
1550  AS_HELP_STRING([--enable-dynamic=dynamic_list] [Comma separated dynamic interface list]),
1551  [ dnl --enable-dynamic=yes to --enable-dynamic=dynamic
1552    if test "x$enable_dynamic" = xyes; then
1553      enable_dynamic=dynamic
1554    elif test "x$enable_dynamic" != xno; then
1555      for i in `echo $enableval | sed 's/,/ /g'`; do
1556	eval "enable_$i=dynamic"
1557      done
1558    fi])
1559
1560join_targets=
1561for i in $interface_targets; do
1562  eval "join_targets=$join_targets\$enable_$i"
1563done
1564
1565case ".$join_targets" in
1566.*dynamic*) NEEDDLOPEN=yes;;
1567*)	    NEEDDLOPEN=no;;
1568esac
1569
1570dnl check -fpic option for gcc
1571if test "x$GCC" = xyes; then SHCFLAGS="$SHCFLAGS -fPIC"; fi
1572case "x$enable_ump" in xyes|xdynamic) EXTRACFLAGS="$EXTRACFLAGS -DXP_UNIX $SHCFLAGS";; esac
1573
1574dnl Which type of dynamic loader?
1575if test "$NEEDDLOPEN" = "yes"; then
1576  have_dl=no
1577
1578  WAPI_CHECK_FUNC(LoadLibrary,,[LoadLibrary(0);],have_dl=w32)
1579  test $wapi_cv_func_LoadLibrary = yes && have_dl=w32
1580
1581  if test "$have_dl" = "no"; then
1582    AC_CHECK_FUNC(shl_load,have_dl=hpux)
1583  fi
1584  if test "$have_dl" = "no"; then
1585    dnl darwin has both dyld and libdl: in case user installed dlcompat.
1586    dnl dyld is recommended because libdl is a wrapper for dyld.
1587    AC_CHECK_FUNC(NSLinkModule,have_dl=dyld)
1588  fi
1589  if test "$have_dl" = "no" -a "x$ac_cv_lib_dl_dlopen" = xyes; then
1590    have_dl=dlopen
1591  fi
1592  if test "$have_dl" = "no"; then
1593    AC_CHECK_FUNC(dlopen,have_dl=dlopen)
1594  fi
1595  if test "$have_dl" = "no"; then
1596    AC_CHECK_FUNC(dld_init,have_dl=dld)
1597  fi
1598  if test "$have_dl" = "no"; then
1599    AC_CHECK_LIB(dld,dld_init,have_dl=dld;lib_dl_opt=-ldld)
1600  fi
1601
1602  AC_MSG_CHECKING(dynamic link method)
1603  case "$have_dl" in
1604    dlopen)
1605      AC_MSG_RESULT(use dl_dlopen.c)
1606      SYSEXTRAS="$SYSEXTRAS dl_dlopen.c"
1607      CHECK_DLSYM_UNDERSCORE(AC_DEFINE(DLSYM_NEEDS_UNDERSCORE,1,Define to 1 if you have to add "_" to every identifiers.))
1608      ;;
1609    dld)
1610      AC_MSG_RESULT(use dl_dld.c)
1611      SYSEXTRAS="$SYSEXTRAS dl_dld.c"
1612      ;;
1613    hpux)
1614      AC_MSG_RESULT(use dl_hpux.c)
1615      SYSEXTRAS="$SYSEXTRAS dl_hpux.c"
1616      LDFLAGS="$LDFLAGS -Wl,-E $LDFLAGS"
1617      ;;
1618    w32)
1619      AC_MSG_RESULT(use dl_w32.c)
1620      SYSEXTRAS="$SYSEXTRAS dl_w32.c"
1621      ;;
1622    dyld)
1623      AC_MSG_RESULT(use dl_dyld.c)
1624      SYSEXTRAS="$SYSEXTRAS dl_dyld.c"
1625      ;;
1626    *)
1627      NEEDDLOPEN="no"
1628      AC_MSG_WARN(no method to open a shared object)
1629      ;;
1630  esac
1631fi
1632
1633if test "$NEEDDLOPEN" = "yes"; then
1634  MY_DEFINE(IA_DYNAMIC)
1635  AC_DEFINE_UNQUOTED(SHARED_LIB_EXT,".$so", shared library extention)
1636  dnl needless?
1637  dnl EXTRADEFS="$EXTRADEFS \$(DEF_SHLIB_DIR)"
1638  if test "x$GCC" = xyes; then
1639    if test "x$timidity_cv_ccoption_rdynamic" = xyes; then
1640      timidity_LDFLAGS="-rdynamic"
1641    else
1642      timidity_LDFLAGS="-Wl,--export-dynamic"
1643    fi
1644  fi
1645fi
1646
1647AM_CONDITIONAL(NEEDDLOPEN, test "$NEEDDLOPEN" = "yes")
1648
1649dnl xdnd support
1650AC_ARG_ENABLE(xdnd,
1651  AS_HELP_STRING([--enable-xdnd], [Enable xdnd support             (default is no)]),
1652  [ if test "$enableval" = "yes"; then
1653    AC_DEFINE(XDND,1,Define to 1 if you want xdnd support.)
1654    XDND_SRCS="xdnd.c"
1655    enable_xdnd=yes
1656    fi
1657  ])
1658AM_CONDITIONAL(ENABLE_XDND, test "x$enable_xdnd" = "xyes")
1659
1660dnl
1661dnl Each interface section
1662dnl
1663
1664dnl ncurses
1665AM_CONDITIONAL(ENABLE_NCURSES, false)
1666CONFIG_INTERFACE(ncurses,NCURSES,n,
1667  AS_HELP_STRING([--enable-ncurses], [Enable ncurses interface        (default is no)]),
1668  [ AC_CHECK_HEADERS(ncurses.h ncurses/curses.h curses.h)
1669
1670dnl #include <ncurses/curses.h> is failure on Plamo Linux 1.3/ncurses 1.9.9e
1671dnl because <ncurses/curses.h> includes <unctrl.h>:
1672dnl /usr/include/ncurses/curses.h:34: unctrl.h: No such file or directory
1673dnl But surely there is unctl.h at /usr/include/ncurses/unctrl.h.
1674dnl configure must check ncurses header with -I/usr/include/ncurses option.
1675
1676  case "$ac_cv_header_curses_h$ac_cv_header_ncurses_curses_h$ac_cv_header_ncurses_h" in
1677    *yes*);;
1678    *)	for i in /usr/include /usr/local/include; do
1679	  if test -f "$i/ncurses/curses.h" -a -f "$i/ncurses/unctrl.h"; then
1680	    AC_MSG_WARN(ncurses test is failure.  Please check config.h and common.makefile later)
1681	    CPPFLAGS="$CPPFLAGS -I$i/ncurses"
1682	    break
1683	  fi
1684	done
1685	;;
1686    esac
1687
1688    AC_CHECK_LIB(ncurses,initscr,lib_curses_opt=-lncurses,
1689      [ dnl checking pdcurses
1690	AC_CHECK_LIB(curses,PDC_set_ctrl_break,
1691          [ lib_curses_opt=-lcurses
1692	    AC_DEFINE(USE_PDCURSES,1,Define to 1 if you use PDcurses)
1693	    lib_user32_opt="$lib_user32_test"
1694	    AC_CHECK_LIB(curses, vwprintw,
1695	      AC_DEFINE(HAVE_VWPRINTW, 1,
1696	        [Define to 1 if you have the `vwprintw' function.]))
1697	  ],
1698	  [ dnl checking libpdcurses
1699	    AC_CHECK_LIB(pdcurses,PDC_set_ctrl_break,
1700	    [ lib_curses_opt=-lpdcurses
1701	      AC_DEFINE(USE_PDCURSES,1,Define to 1 if you use PDcurses)
1702	      lib_user32_opt="$lib_user32_test"
1703	      AC_CHECK_LIB(pdcurses, vwprintw,
1704	        AC_DEFINE(HAVE_VWPRINTW, 1,
1705	          [Define to 1 if you have the `vwprintw' function.]))
1706	    ],
1707	    [ dnl OpenBSD use -lcurses instead of -lncurses.
1708	      case "$target" in
1709		*openbsd*)
1710		  AC_CHECK_LIB(curses,initscr,lib_curses_opt=-lcurses,
1711		    [ AC_MSG_WARN(ncurses interface is not enabled)
1712		      enable_ncurses=no ])
1713		  ;;
1714		*)
1715		  if test "x$VCPP" = xyes || test "x$BORLANDC" = xyes || test "x$WATCOM_C" = xyes || test "x$DMC" = xyes || test "x$POCC" = xyes; then
1716		    lib_curses_opt=libpdcurses.lib
1717		    AC_DEFINE(USE_PDCURSES,1,Define to 1 if you use PDcurses)
1718		    AC_CHECK_LIB(pdcurses, vwprintw,
1719		      AC_DEFINE(HAVE_VWPRINTW, 1,
1720		        [Define to 1 if you have the `vwprintw' function.]))
1721		  else
1722		    AC_MSG_WARN(ncurses interface is not enabled)
1723		    enable_ncurses=no
1724		  fi
1725		  ;;
1726	      esac
1727	    ])
1728	],
1729	$lib_user32_test)
1730      ])
1731  ],
1732  [ LIBS="$LIBS $lib_curses_opt"
1733    case "$target" in
1734       *-*-freebsd[123]*)
1735         EXTRALIBS="$EXTRALIBS -lmytinfo"
1736         ;;
1737     esac
1738    INTERFACE_SRCS="$INTERFACE_SRCS ncurs_c.c"
1739  ],
1740  [ n_so_libs="$lib_curses_opt"
1741    case "$target" in
1742       *-*-freebsd[123]*)
1743         EXTRALIBS="$EXTRALIBS -lmytinfo"
1744         ;;
1745     esac])
1746
1747dnl slang
1748AM_CONDITIONAL(ENABLE_SLANG, false)
1749CONFIG_INTERFACE(slang,SLANG,s,
1750  AS_HELP_STRING([--enable-slang], [Enable slang interface          (default is no)]),
1751  [ AC_CHECK_LIB(slang,SLang_init_tty,:,
1752    [ enable_slang=no
1753      AC_MSG_WARN(slang interface is not enabled)
1754    ])
1755    AC_CHECK_HEADERS(slang/slang.h slang.h)
1756  ],
1757  [ case "$target" in
1758       *openbsd*)
1759        AC_CHECK_LIB(termcap,initscr,
1760                     [ LIBS="$LIBS -lslang -ltermcap"
1761                       INTERFACE_SRCS="$INTERFACE_SRCS slang_c.c"
1762                     ]
1763                     [ AC_MSG_WARN(slang interface is not enabled)
1764                       enable_slang=no
1765                     ])
1766        ;;
1767       *)
1768        LIBS="$LIBS -lslang"
1769        INTERFACE_SRCS="$INTERFACE_SRCS slang_c.c"
1770       ;;
1771    esac
1772  ],
1773  [ s_so_libs="-lslang"
1774    AC_CHECK_LIB(termcap,initscr,s_so_libs="$s_so_libs -ltermcap")
1775  ])
1776
1777dnl Motif
1778AM_CONDITIONAL(ENABLE_MOTIF, false)
1779CONFIG_INTERFACE(motif,MOTIF,m,
1780  AS_HELP_STRING([--enable-motif], [Enable motif interface          (default is no)]),
1781  [ if test "x$with_x" != xyes; then
1782	AC_MSG_ERROR(motif: --with-x option must be specified)
1783    fi
1784    if test "x$have_xm" != xyes; then
1785      AC_MSG_WARN(Motif library is not found.)
1786      enable_motif=no
1787    fi
1788  ],
1789  [ lib_xm_opt=-lXm
1790    lib_xt_opt=-lXt
1791    lib_xext_opt=-lXext
1792    if test "x$have_xprelibs" = xyes; then
1793	lib_xprelibs_opt='-lSM -lICE'
1794    fi
1795    INTERFACE_SRCS="$INTERFACE_SRCS motif_c.c motif_i.c motif_p.c"
1796  ],
1797  [ if test x$have_xprelibs = xyes; then
1798      m_so_libs="-lXext -lSM -lICE"
1799    fi
1800    m_so_libs="$ldflags_x_opt -lXm -lXt $m_so_libs -lX11"
1801  ])
1802
1803dnl Tcl/Tk
1804AM_CONDITIONAL(ENABLE_TCLTK, false)
1805CONFIG_INTERFACE(tcltk,TCLTK,k,
1806  AS_HELP_STRING([--enable-tcltk], [Enable tcltk interface          (default is no)]),
1807  [ if test "x$with_x" != xyes; then
1808	AC_MSG_ERROR(tcltk: --with-x option must be specified)
1809    fi
1810
1811    dnl save flags
1812    KEEPCPPFLAGS=$CPPFLAGS
1813    KEEPLDFLAGS=$LDFLAGS
1814    KEEPLIBS=$LIBS
1815
1816    CPPFLAGS="$tcl_include_dir $tk_includes $CPPFLAGS"
1817    LDFLAGS="$tcl_libdir $tk_libdir $LDFLAGS"
1818    LIBS="$LIBS $lib_dl_opt"
1819
1820    tcl_lib=
1821    tk_lib=
1822    for l in tcl tck8.6 tcl8.5 tcl8.4 tcl84 tcl8.3 tcl8.0jp tcl7.6jp tcl80jp tcl76jp tcl8.0 tcl7.6 tcl80 tcl76; do
1823      case "x$tcl_lib" in x) AC_CHECK_LIB($l,Tcl_Init,tcl_lib=-l$l);; esac
1824    done
1825    LIBS="$LIBS $tcl_lib"
1826    for l in tk tk8.6 tk8.5 tk8.4 tcl84 tk8.3 tk8.0jp tk4.2jp tk80jp tk42jp tk8.0 tk4.2 tk80 tk42; do
1827      case "x$tk_lib" in x) AC_CHECK_LIB($l,Tk_Init,tk_lib=-l$l);; esac
1828    done
1829
1830    LIBS=$KEEPLIBS
1831    if test "x$tcl_lib" = x -o "x$tk_lib" = x; then
1832      CPPFLAGS=$KEEPCPPFLAGS
1833      LDFLAGS=$KEEPLDFLAGS
1834      enable_tcltk=no
1835      AC_MSG_WARN(tcl/tk is not enable)
1836    else
1837      tcltk_dep='tclIndex'
1838    fi
1839  ],
1840  [ LIBS="$tk_lib $tcl_lib -lX11 $LIBS"
1841    case "$target" in
1842      *-*-bsdi*)
1843	EXTRALIBS="$EXTRALIBS -lipc"
1844	;;
1845    esac
1846    INTERFACE_SRCS="$INTERFACE_SRCS tk_c.c"
1847  ],
1848  [ k_so_libs="$tcl_libdir $tk_libdir $tcl_lib $tk_lib $lib_dl_opt"
1849    case "$target" in
1850      *-*-bsdi*)
1851	k_so_libs="$k_so_libs -lipc"
1852	;;
1853    esac
1854    k_so_libs="$k_so_libs -lX11 -lm"
1855  ])
1856AM_CONDITIONAL(ENABLE_DYNAMIC_TCLTK, test "x$enable_tcltk" = "xdynamic")
1857
1858dnl Emacs
1859AM_CONDITIONAL(ENABLE_EMACS, false)
1860CONFIG_INTERFACE(emacs,EMACS,e,
1861  AS_HELP_STRING([--enable-emacs], [Enable emacs interface          (default is no)]),
1862  ,
1863  [ ELFILES="$ELFILES timidity.el"
1864    INTERFACE_SRCS="$INTERFACE_SRCS emacs_c.c"
1865  ],
1866  [ AM_CONDITIONAL(ENABLE_EMACS, true)
1867    ELFILES="$ELFILES timidity.el" ])
1868
1869dnl VT100
1870AM_CONDITIONAL(ENABLE_VT100, false)
1871CONFIG_INTERFACE(vt100,VT100,T,
1872  AS_HELP_STRING([--enable-vt100], [Enable VT100 interface          (default is no)]),
1873  ,
1874  [ INTERFACE_SRCS="$INTERFACE_SRCS vt100_c.c vt100.c" ])
1875
1876dnl X Athena Widget
1877AM_CONDITIONAL(ENABLE_XAW, false)
1878CONFIG_INTERFACE(xaw,XAW,a,
1879  AS_HELP_STRING([--enable-xaw], [Enable athena interface         (default is no)]),
1880  [ if test "x$with_x" != xyes; then
1881	AC_MSG_ERROR(xaw: --with-x option must be specified)
1882    fi
1883    if test "x$have_xaw" = "xno"; then
1884      AC_MSG_WARN(X Athena Widget library is not found.)
1885      enable_xaw=no
1886    fi ],
1887  [ dnl Add -lXext -lSM -lICE -lXmu -lXt {-lXaw|-lXaw3d}
1888    if test "x$have_xext" = xyes; then
1889      lib_xext_opt=-lXext
1890    fi
1891    if test "x$have_xprelibs" = xyes; then
1892      lib_xprelibs_opt='-lSM -lICE'
1893    fi
1894    lib_xmu_opt=-lXmu
1895    lib_xt_opt=-lXt
1896    if test "x$enable_xft" = "xyes" && test "x$have_xaw" != "xno"; then
1897      XFT_CFLAGS="$(pkg-config --cflags xft)";
1898      EXTRACT_CPPFLAGS(CPPFLAGS,CFLAGS,$XFT_CFLAGS)
1899      lib_xft_opt="-lXft";
1900    fi
1901    case "$have_xaw" in
1902      "yes")
1903        lib_xaw_opt=-lXaw
1904	;;
1905      "3d")
1906        AC_DEFINE(XAW3D,1,Define to 1 if you use libXaw3d.)
1907        lib_xaw_opt=-lXaw3d
1908	;;
1909      "plus")
1910        AC_DEFINE(XAWPLUS,1,Define to 1 if you use libXawPlus.)
1911        lib_xaw_opt="-lXpm -lXawPlus"
1912	;;
1913      "next")
1914        AC_DEFINE(NEXTAW,1,Define to 1 if you use libneXtaw.)
1915        lib_xaw_opt=-lneXtaw
1916	;;
1917    esac
1918    INTERFACE_SRCS="$INTERFACE_SRCS xaw_c.c xaw_i.c x_trace.c $XDND_SRCS"
1919  ],
1920  [ if test "x$have_xext" = xyes; then
1921      a_so_libs="-lXext -lX11"
1922    else
1923      a_so_libs="-lX11"
1924    fi
1925    case "$target" in
1926      *darwin*)
1927	a_so_libs="$a_so_libs -lcc_dynamic"
1928	;;
1929    esac
1930    if test "x$have_xprelibs" = xyes; then
1931      a_so_libs="-lSM -lICE $a_so_libs"
1932    fi
1933    case "$have_xaw" in
1934      "yes")
1935        a_so_libs="-lXaw -lXmu -lXt $a_so_libs"
1936	;;
1937      "3d")
1938        AC_DEFINE(XAW3D,1,Define to 1 if you use libXaw3d.)
1939        a_so_libs="-lXaw3d -lXmu -lXt $a_so_libs"
1940	;;
1941      "plus")
1942        AC_DEFINE(XAWPLUS,1,Define to 1 if you use libXawPlus.)
1943        a_so_libs="-lXawPlus -lXpm -lXmu -lXt $a_so_libs"
1944	;;
1945      "next")
1946        AC_DEFINE(NEXTAW,1,Define to 1 if you use libneXtaw.)
1947        a_so_libs="-lneXtaw -lXmu -lXt $a_so_libs"
1948	;;
1949    esac
1950    if test "x$enable_xft" = "xyes" && test "x$have_xaw" != "xno"; then
1951      XFT_CFLAGS="$(pkg-config --cflags xft)";
1952      EXTRACT_CPPFLAGS(CPPFLAGS,CFLAGS,$XFT_CFLAGS)
1953      a_so_libs="$a_so_libs -lXft";
1954    fi
1955    a_so_libs="$ldflags_x_opt $a_so_libs"
1956  ])
1957AM_CONDITIONAL(ENABLE_DYNAMIC_XAW, test "x$enable_xaw" = "xdynamic")
1958
1959dnl X skin
1960AM_CONDITIONAL(ENABLE_XSKIN, false)
1961CONFIG_INTERFACE(xskin,XSKIN,i,
1962  AS_HELP_STRING([--enable-xskin], [Enable X skin interface         (default is no)]),
1963  [ if test "x$with_x" != xyes; then
1964	AC_MSG_ERROR(xskin: --with-x option must be specified)
1965    fi
1966  ],
1967  [ INTERFACE_SRCS="$INTERFACE_SRCS xskin_c.c xskin_i.c xskin_loadBMP.c xskin_spectrum.c" ],
1968  [ i_so_libs="$ldflags_x_opt -lX11" ])
1969
1970dnl GTK+
1971AM_CONDITIONAL(ENABLE_GTK, false)
1972CONFIG_INTERFACE(gtk, GTK, g,
1973  AS_HELP_STRING([--enable-gtk], [Enable GTK+ interface           (default is no)]),
1974  [ AM_PATH_GTK_2_0(2.0.0,
1975    [AC_DEFINE(HAVE_GTK_2,1,Define to 1 if you have GTK+ 2.x)],
1976    [AM_PATH_GTK(1.1.3,,enable_gtk=no)]) ],
1977  [ LIBS="$LIBS $GTK_LIBS"
1978    EXTRACT_CPPFLAGS(CPPFLAGS,CFLAGS,$GTK_CFLAGS)
1979    INTERFACE_SRCS="$INTERFACE_SRCS gtk_c.c gtk_i.c gtk_p.c"
1980  ],
1981  [ if test "x$GCC" = xyes; then
1982	dnl Do not include -rdynamic option in $g_so_libs.
1983	for i in $GTK_LIBS; do
1984	    case "x$i" in
1985		x-rdynamic) ;;
1986		*) g_so_libs="$g_so_libs $i" ;;
1987	    esac
1988	done
1989    else
1990	g_so_libs="$GTK_LIBS"
1991    fi
1992    EXTRACT_CPPFLAGS(CPPFLAGS,CFLAGS,$GTK_CFLAGS) ])
1993
1994dnl TiMidity Network MIDI Server
1995AM_CONDITIONAL(ENABLE_SERVER, false)
1996CONFIG_INTERFACE(server,SERVER,r,
1997  AS_HELP_STRING([--enable-server], [Enable server interface         (default is no)]),
1998  ,
1999  [ INTERFACE_SRCS="$INTERFACE_SRCS server_c.c"
2000    AC_CHECK_HEADERS(sys/soundcard.h)
2001  ])
2002
2003dnl TiMidity ALSA sequencer server
2004AM_CONDITIONAL(ENABLE_ALSASEQ, false)
2005CONFIG_INTERFACE(alsaseq,ALSASEQ,A,
2006  AS_HELP_STRING([--enable-alsaseq], [Enable ALSA sequencer server interface
2007                                                          (default is no)]),
2008  [ INTERFACE_SRCS="$INTERFACE_SRCS alsaseq_c.c"
2009  ],
2010  [ AM_PATH_ALSA
2011  ],
2012  [ MY_DEFINE(IA_ALSASEQ)
2013  ])
2014
2015dnl TiMidity Windows synthesizer server
2016AM_CONDITIONAL(ENABLE_WINSYN, false)
2017CONFIG_INTERFACE(winsyn,WINSYN,W,
2018  AS_HELP_STRING([--enable-winsyn], [Enable Windows Synthesizer interface
2019                                                          (default is no)]),
2020  ,
2021  [ WINSYN="yes"; INTERFACE_SRCS="$INTERFACE_SRCS winsyn_c.c rtsyn_common.c rtsyn_winmm.c" ])
2022
2023dnl TiMidity PortMIDI synthesizer server
2024AM_CONDITIONAL(ENABLE_PORTMIDISYN, false)
2025CONFIG_INTERFACE(portmidisyn,PORTMIDISYN,P,
2026  AS_HELP_STRING([--enable-portmidisyn], [Enable PortMIDI Synthesizer interface
2027                                                          (default is no)]),
2028  ,
2029  [ INTERFACE_SRCS="$INTERFACE_SRCS portmidisyn_c.c rtsyn_common.c rtsyn_portmidi.c" ])
2030
2031dnl TiMidity Windows synthesizer server
2032AM_CONDITIONAL(ENABLE_NPSYN, false)
2033CONFIG_INTERFACE(npsyn,NPSYN,W,
2034  AS_HELP_STRING([--enable-npsyn], [Enable Windows Named Pipe Synthesizer interface
2035                                                          (default is no)]),
2036  ,
2037  [ NPSYN="yes"; INTERFACE_SRCS="$INTERFACE_SRCS npsyn_c.c rtsyn_common.c rtsyn_npipe.c" ])
2038
2039
2040
2041dnl TiMidity Windows GUI synthesizer server
2042AM_CONDITIONAL(ENABLE_W32G_SYN, false)
2043CONFIG_INTERFACE(winsyng,W32G_SYN,W,
2044  AS_HELP_STRING([--enable-winsyng], [Enable Windows GUI Synthesizer interface
2045                                                          (default is no)]),
2046  ,
2047  [
2048  W32G_GUI=yes
2049  if test "x$VCPP" = xyes || test "x$BORLANDC" = xyes || test "x$WATCOM_C" = xyes || test "x$DMC" = xyes || test "x$POCC" = xyes; then
2050    INTERFACE_SRCS="$INTERFACE_SRCS w32g_ini.c w32g_pref.c w32g_syn.c w32g_utl.c winsyn_c.c rtsyn_common.c rtsyn_winmm.c"
2051    lib_w32gui_opt='gdi32.lib comctl32.lib comdlg32.lib ole32.lib'
2052    lib_user32_opt='user32.lib'
2053    if test "x$VCPP" = xyes; then
2054	  VCPP_LDFLAGS="$VCPP_LDFLAGS -subsystem:windows "
2055	fi
2056	if test "x$BORLANDC" = xyes; then
2057	  BORLANDC_START='C0W32.OBJ'
2058	  CFLAGS="$CFLAGS -tW"
2059	  lib_w32gui_opt="-aa $lib_w32gui_opt"
2060	fi
2061	if test "x$WATCOM_C" = xyes; then
2062	  CFLAGS="$CFLAGS -bw"
2063	  WATCOM_LDFLAGS="$WATCOM_LDFLAGS SYS nt_win"
2064	fi
2065	if test "x$DMC" = xyes; then
2066	  DLLFLAG="-WA"
2067	  lib_w32gui_opt="$lib_w32gui_opt -L/exet:nt/su:windows:4.0"
2068	fi
2069    if test "x$POCC" = xyes; then
2070	  POCC_LDFLAGS="$POCC_LDFLAGS -subsystem:windows "
2071    fi
2072  else
2073  	lib_w32gui_opt='-lgdi32 -lcomctl32 -lcomdlg32 -lole32'
2074    lib_user32_opt='-luser32'
2075    LDFLAGS="-mwindows $LDFLAGS"
2076    INTERFACE_SRCS="$INTERFACE_SRCS w32g_ini.c w32g_pref.c w32g_syn_escaped.c w32g_utl.c winsyn_c.c rtsyn_common.c rtsyn_winmm.c"
2077  fi
2078  ])
2079
2080
2081dnl Windows GUI
2082AM_CONDITIONAL(ENABLE_W32GUI, false)
2083CONFIG_INTERFACE(w32gui, W32GUI, w,
2084  AS_HELP_STRING([--enable-w32gui], [Enable Windows GUI interface    (default is no)]),
2085  ,
2086  [
2087  W32G_GUI=yes
2088  if test "x$VCPP" = xyes || test "x$BORLANDC" = xyes || test "x$WATCOM_C" = xyes || test "x$DMC" = xyes || test "x$POCC" = xyes; then
2089 	INTERFACE_SRCS="$INTERFACE_SRCS w32g_c.c w32g_ini.c w32g_i.c w32g_playlist.c w32g_utl.c w32g_pref.c w32g_subwin.c w32g_subwin2.c w32g_subwin3.c w32g_ut2.c w32g_dib.c  wrdt_w32g.c w32g_mag.c"
2090    lib_w32gui_opt='gdi32.lib comctl32.lib comdlg32.lib ole32.lib'
2091    lib_user32_opt='user32.lib'
2092    if test "x$VCPP" = xyes; then
2093	  VCPP_LDFLAGS="$VCPP_LDFLAGS -subsystem:windows "
2094	fi
2095	if test "x$BORLANDC" = xyes; then
2096	  BORLANDC_START='C0W32.OBJ'
2097	  CFLAGS="$CFLAGS -tW"
2098	  lib_w32gui_opt="-aa $lib_w32gui_opt"
2099	fi
2100	if test "x$WATCOM_C" = xyes; then
2101	  CFLAGS="$CFLAGS -bw"
2102	  WATCOM_LDFLAGS="$WATCOM_LDFLAGS SYS nt_win"
2103	fi
2104	if test "x$DMC" = xyes; then
2105	  lib_w32gui_opt="$lib_w32gui_opt -L/SU:window"
2106	  DLLFLAG="-WA"
2107	fi
2108    if test "x$POCC" = xyes; then
2109	  POCC_LDFLAGS="$POCC_LDFLAGS -subsystem:windows "
2110    fi
2111  else
2112    lib_w32gui_opt='-lgdi32 -lcomctl32 -lcomdlg32 -lole32'
2113    lib_user32_opt='-luser32'
2114    LDFLAGS="-mwindows $LDFLAGS"
2115    INTERFACE_SRCS="$INTERFACE_SRCS w32g_c.c w32g_ini.c w32g_i.c w32g_playlist.c w32g_utl.c w32g_pref.c w32g_subwin_escaped.c w32g_subwin2.c w32g_subwin3.c w32g_ut2.c w32g_dib.c  wrdt_w32g.c w32g_mag.c"
2116  fi
2117  ])
2118
2119dnl UMP configuration
2120AM_CONDITIONAL(ENABLE_PLUGIN, false)
2121CONFIG_INTERFACE(ump, PLUGIN, p,
2122  AS_HELP_STRING([--enable-ump], [UMP configuration               (default is no)]),
2123  [ if test ! -d ump; then
2124	AC_MSG_ERROR(UMP Package is not exists.  Can't configure it.)
2125    fi
2126    AC_CHECK_HEADER(X11/xpm.h,,AC_MSG_ERROR([UMP Package needs xpm.h[,] but could not find it.]))
2127    AC_CHECK_LIB(Xpm,XpmCreatePixmapFromData,:,AC_MSG_ERROR([UMP Package needs libXpm.a[,] but could not find it.]))
2128    if test "x$have_xext" = xyes; then
2129      lib_xext_opt=-lXext
2130    fi
2131    if test "x$have_xprelibs" = xyes; then
2132      lib_xprelibs_opt='-lSM -lICE'
2133    fi
2134    lib_xmu_opt=-lXmu
2135    lib_xt_opt=-lXt
2136  ])
2137
2138dnl Window Driver interface
2139AC_ARG_ENABLE(windrv,
2140  AS_HELP_STRING([--enable-windrv], [Windows Driver interface(requires winsyn) ]),
2141  [ if test "$enableval" = "yes"; then
2142      if test "x$VCPP" != "xyes" && test "x$MINGWGCC" != "xyes" && test "x$BORLANDC" != "xyes" && test "x$WATCOM_C" != "xyes" && test "x$DMC" != "xyes" && test "x$POCC" != "xyes"; then
2143	AC_MSG_ERROR(windrv: Only Support VC++ or Mingw or Borland C or Open Watcom PellesC and Digital Mars)
2144	  elif test "x$WINSYN" != "xyes"; then
2145	AC_MSG_ERROR(windrv: Driver must have winsyn interface)
2146	  else
2147    AC_DEFINE(WINDRV,1,Define to 1 if you cpmpile windos driver.)
2148    WINDRV=yes
2149    if test "x$WATCOM_C" = "xyes"; then DLLFLAG="-bd" ;fi
2150    if test "x$DMC" = "xyes"; then DLLFLAG="-WD" ;fi
2151    CFLAGS="$CFLAGS -DANOTHER_MAIN "
2152      fi
2153    fi ])
2154CFLAGS="$CFLAGS $DLLFLAG "
2155
2156dnl Offix support
2157dnl this rely on  CFLAGS and LIBS
2158AC_ARG_ENABLE(offix,
2159  AS_HELP_STRING([--enable-offix], [Enable offix support            (default is no)]),
2160  [ if test "$enableval" = "yes"; then
2161      KEEPCPPFLAGS=$CPPFLAGS
2162      KEEPLIBS=$LIBS
2163      KEEPLDFLAGS=$LDFLAGS
2164      CPPFLAGS="$CPPFLAGS $offix_include_dir"
2165      LDFLAGS="$LDFLAGS $offix_lib_dir"
2166      LIBS="$LIBS $lib_xmu_opt $lib_xt_opt $lib_xprelibs_opt $lib_xext_opt -lX11"
2167      AC_CHECK_LIB(Dnd,DndInitialize,[
2168	LIBS=$KEEPLIBS
2169	lib_offix_opt="-lDnd"
2170	AC_DEFINE(OFFIX,1,Define to 1 if you need offix support)
2171      ],
2172      [ LDFLAGS=$KEEPLDFLAGS
2173	CPPFLAGS=$KEEPCPPFLAGS
2174	LIBS=$KEEPLIBS
2175      ])
2176    fi
2177  ])
2178
2179dnl Network section
2180AC_ARG_ENABLE(network,
2181  AS_HELP_STRING([--enable-network], [Enable network support          (default is no)]),
2182  [ if test "$enableval" = "yes"; then
2183      AC_DEFINE(SUPPORT_SOCKET,1,Define to 1 if you need network support)
2184    fi ])
2185AM_CONDITIONAL(ENABLE_NETWORK, test "x$enable_network" = "xyes")
2186
2187dnl Sound Spectrogram Viewer
2188AC_ARG_ENABLE(spectrogram,
2189  AS_HELP_STRING([--enable-spectrogram], [Enable Sound Spectrogram Viewer (default is no)]),
2190  [ if test "$enableval" = "yes"; then
2191      if test "x$with_x" != xyes; then
2192	AC_MSG_ERROR(spectrogram: --with-x option must be specified)
2193      fi
2194      AC_DEFINE(SUPPORT_SOUNDSPEC,1,Define to 1 if you need spectrogram vewer.)
2195    fi ])
2196AM_CONDITIONAL(ENABLE_SOUND_SPEC, test "x$enable_spectrogram" = "xyes")
2197
2198dnl Wave Spline Interpolations
2199AC_ARG_ENABLE(spline,
2200  AS_HELP_STRING([--enable-spline=[method]],
2201    [Specify spline method.  one of no,linear,cubic,lagrange,newton,gauss (default is linear)]),
2202  [ case "x$enableval" in
2203      xlinear)
2204        AC_DEFINE(DEFAULT_RESAMPLATION,resample_linear,Define resampler.)
2205	;;
2206      xcubic)
2207        AC_DEFINE(DEFAULT_RESAMPLATION,resample_cspline,Define resampler.)
2208	;;
2209      xlagrange)
2210        AC_DEFINE(DEFAULT_RESAMPLATION,resample_lagrange,Define resampler.)
2211	;;
2212      xnewton)
2213        AC_DEFINE(DEFAULT_RESAMPLATION,resample_newton,Define resampler.)
2214	;;
2215      xgauss)
2216        AC_DEFINE(DEFAULT_RESAMPLATION,resample_gauss,Define resampler.)
2217	;;
2218      xno)
2219        AC_DEFINE(DEFAULT_RESAMPLATION,resample_none,Define resampler.)
2220	;;
2221      *)
2222	AC_MSG_ERROR(Invalid method of --enable-spline)
2223	;;
2224    esac ])
2225
2226dnl WRD interface
2227AC_ARG_ENABLE(wrd,
2228  AS_HELP_STRING([--enable-wrd], [Enable WRD interface for X      (default is no)]),
2229  [ if test "$enableval" = "yes"; then
2230      if test "x$with_x" = xyes; then
2231        LIBS="-lX11 $LIBS"
2232      else
2233	AC_MSG_ERROR(wrd: --with-x option must be specified)
2234      fi
2235      AC_DEFINE(WRDT_X,1,Define to 1 if you need wrd support for X.)
2236      enable_sherry_wrd=yes
2237      AC_CHECK_LIB(z,zlibVersion,:,enable_sherry_wrd=no)
2238      AC_CHECK_HEADER(png.h,,enable_sherry_wrd=no)
2239      AC_CHECK_LIB(png,png_init_io,:,enable_sherry_wrd=no,-lz)
2240      if test "$enable_sherry_wrd" = yes; then
2241	AC_DEFINE(ENABLE_SHERRY,1,Define to 1 if you enable Sherry WRD)
2242	lib_zip_opt=-lz
2243	lib_png_opt=-lpng
2244      else
2245	 AC_MSG_WARN([Sherry WRD is disabled: png.h, libpng.a, libz.a are required])
2246      fi
2247      if test "x$have_xext" = xyes; then
2248	lib_xext_opt=-lXext
2249      fi
2250    fi ])
2251
2252
2253dnl end of interfaces
2254
2255
2256#
2257# Finish up
2258#
2259
2260AM_CONDITIONAL(ENABLE_WRD, test "x$enable_wrd" = "xyes")
2261AM_CONDITIONAL(W32G_GUI, test "x$W32G_GUI" = xyes)
2262AM_CONDITIONAL(WINDRV, test "x$WINDRV" = xyes)
2263AM_CONDITIONAL(MSYS, test "x$MSYS" = xyes)
2264AM_CONDITIONAL(VCPP, test "x$VCPP" = xyes)
2265AM_CONDITIONAL(POCC, test "x$POCC" = xyes)
2266AM_CONDITIONAL(BORLANDC, test "x$BORLANDC" = xyes)
2267AM_CONDITIONAL(WATCOM_C, test "x$WATCOM_C" = xyes)
2268AM_CONDITIONAL(DMC, test "x$DMC" = xyes)
2269AM_CONDITIONAL(MINGWGCC, test "x$MINGWGCC" = xyes)
2270
2271AM_CONDITIONAL(W32READDIR, test "x$W32READDIR" = "xyes")
2272
2273SET_UNIQ_WORDS(LDFLAGS,$LDFLAGS)
2274SET_UNIQ_WORDS(SHLDFLAGS,$SHLDFLAGS)
2275SET_UNIQ_WORDS(CFLAGS,$EXTRACFLAGS $CFLAGS)
2276SET_UNIQ_WORDS(CPPFLAGS,$CPPFLAGS $EXTRADEFS)
2277
2278if test "x$oss_device" != x; then
2279  AC_DEFINE_UNQUOTED(OSS_DEVICE,"$oss_device", oss device name)
2280fi
2281
2282if test "x$TIMIDITY_OUTPUT_ID" != x; then
2283  AC_DEFINE_UNQUOTED(TIMIDITY_OUTPUT_ID,"$TIMIDITY_OUTPUT_ID", the output specification)
2284fi
2285
2286if test "x$au_enable_nas"      = "xyes" -o \
2287        "x$enable_motif"       = "xyes" -o \
2288        "x$enable_tcltk"       = "xyes" -o \
2289        "x$enable_xaw"         = "xyes" -o \
2290        "x$enable_xskin"       = "xyes" -o \
2291        "x$enable_spectrogram" = "xyes"; then
2292  dnl Order of X-library is: -lXdnd -lXm -lXaw -lXft -lXmu -lXt -lSM -lICE -lXext -lX11
2293  LIBS="$lib_offix_opt $lib_xm_opt $lib_xaw_opt $lib_xft_opt $lib_xmu_opt $lib_xt_opt $lib_xprelibs_opt $lib_xext_opt -lX11 $LIBS"
2294fi
2295LIBS="$LIBS $lib_dl_opt $lib_png_opt $lib_zip_opt $lib_user32_opt $lib_w32gui_opt $EXTRALIBS"
2296SHLD="$SHLD $SHLDFLAGS"
2297
2298AC_SUBST(BORLANDC_START)
2299AC_SUBST(BORLANDC_LDFLAGS)
2300AC_SUBST(SHELL)
2301AC_SUBST(timidity_LDFLAGS)
2302AC_SUBST(WATCOM_LDFLAGS)
2303AC_SUBST(DMC_LDFLAGS)
2304AC_SUBST(VCPP_LDFLAGS)
2305AC_SUBST(POCC_LDFLAGS)
2306AC_SUBST(SYSEXTRAS)
2307AC_SUBST(EXTRALIBS)
2308AC_SUBST(NETSRCS)
2309AC_SUBST(ELFILES)
2310AC_SUBST(SHLD)
2311AC_SUBST(SHCFLAGS)
2312AC_SUBST(dynamic_targets)
2313AC_SUBST(so)
2314AC_SUBST(LN_S)
2315AC_SUBST(TCLSH)
2316AC_SUBST(tcltk_dep)
2317AC_SUBST(program_transform_name)
2318AC_SUBST(INTERFACE_SRCS)
2319AC_SUBST(pkgdatadir)
2320AC_SUBST(pkglibdir)
2321
2322AC_CONFIG_FILES([
2323  Makefile
2324  autoconf/Makefile
2325  common.makefile
2326  configs/Makefile
2327  doc/Makefile
2328  doc/C/Makefile
2329  doc/ja_JP.eucJP/Makefile
2330  interface/Makefile
2331  interface/motif_bitmaps/Makefile
2332  interface/bitmaps/Makefile
2333  interface/pixmaps/Makefile
2334  libarc/Makefile
2335  libunimod/Makefile
2336  timidity/Makefile
2337  windrv/Makefile
2338  utils/Makefile
2339  script/Makefile
2340])
2341AC_OUTPUT
2342