~ubuntu-branches/ubuntu/precise/alsa-driver/precise

« back to all changes in this revision

Viewing changes to .pc/fix_version_check.patch/configure.in

  • Committer: Bazaar Package Importer
  • Author(s): Luke Yelavich
  • Date: 2010-06-04 11:52:55 UTC
  • mfrom: (3.1.9 sid)
  • Revision ID: james.westby@ubuntu.com-20100604115255-tu8woz22vgmcyrql
Tags: 1.0.23+dfsg-1ubuntu1
* Merge from debian alsa-driver svn, remaining changes:
  - Script paths (/usr/sbin -> /sbin, /usr/bin -> /bin);
  - debian/rules:
    + Don't install snddevices and program-wrapper
    + install alsa-base apport hook
    + Package separate USB card list file
  - Vcs and maintainer fields mangling
  - Rename blacklist files in /etc/modprobe.d to be consistant with the rest
    of the distro
  - debian/alsa-base.init:
    + create /var/run/alsa if it doesn't exist
    + Run alsactl store before force unloading modules
    + Run alsactl restore after reloading unloaded modules
  - debian/linux-sound-base.postrm: Remove /etc/modprobe.d/blacklist* files
    on package removal
  - Add missing $CMDLINE_OPTS to all install rules.
  - Replace -Q with --quiet.
  - Add --use-blacklist to all rules so the blacklist still takes effect.
  - debian/alsa-base.postinst: Do not run snddevices
  - retain patches:
    + add_suspend_quirk_hp_nc6220_nw8240.patch,
    + refix_lp_68659_by_disabling_dxs_for_0x1458a002.patch.
  - Drop kernel-package recommends to a suggests in order to be able to demote
    kernel-package to universe

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
dnl Process this file with autoconf to produce a configure script.
 
2
dnl
 
3
dnl Copyright (c) by Jaroslav Kysela <perex@perex.cz>
 
4
 
 
5
AC_PREREQ(2.59)
 
6
AC_INIT(acore/sound.patch)
 
7
AC_PREFIX_DEFAULT(/usr)
 
8
CONFIG_SND_VERSION="1.0.23"
 
9
 
 
10
dnl Checks for programs.
 
11
AC_PROG_CC
 
12
AC_PROG_RANLIB
 
13
AC_PROG_INSTALL
 
14
 
 
15
dnl the following should be checked, but they are not used...
 
16
AR=ar
 
17
AS=as
 
18
AC_SUBST(AR)
 
19
AC_SUBST(AS)
 
20
 
 
21
dnl Checks for header files.
 
22
AC_HEADER_STDC
 
23
AC_CONFIG_HEADER(include/config.h include/config1.h include/version.h include/autoconf-extra.h)
 
24
dnl AC_CHECK_HEADERS(linux/fs.h)
 
25
 
 
26
dnl Checks for typedefs, structures, and compiler characteristics.
 
27
AC_C_CONST
 
28
AC_C_INLINE
 
29
AC_HEADER_TIME
 
30
 
 
31
dnl Checks for library functions.
 
32
AC_PROG_GCC_TRADITIONAL
 
33
 
 
34
dnl Check for current directory
 
35
AC_MSG_CHECKING(for current directory)
 
36
SRCDIR=`/bin/pwd`
 
37
AC_SUBST(SRCDIR)
 
38
AC_MSG_RESULT($SRCDIR)
 
39
 
 
40
ALSA_TOPLEVEL_INIT
 
41
 
 
42
dnl Check for cross compile...
 
43
AC_MSG_CHECKING(cross compile)
 
44
AC_ARG_WITH(cross,
 
45
  [  --with-cross=dir        give the cross-compile prefix],
 
46
  crossprefix="$withval",
 
47
  crossprefix="")
 
48
CROSS_COMPILE="$crossprefix"
 
49
AC_SUBST(CROSS_COMPILE)
 
50
AC_MSG_RESULT($CROSS_COMPILE)
 
51
 
 
52
if test "$crossprefix"; then
 
53
# modify CC, CPP and maybe some other variables. CC is set to
 
54
# e.g. /usr/local/bin/gcc by autoconf - this is then modified 
 
55
# to arm-linux-/usr/local/bin/gcc in Makefile.conf - that is bad - so
 
56
# cut the path out (but save optional params - e.g. gcc -E for CPP) 
 
57
echo $CC | grep ' ' >/dev/null && CC_save=`echo "$CC" | cut -d' ' -f2-` 
 
58
CC="`basename $CC` $CC_save"
 
59
 
 
60
echo $CPP | grep ' ' >/dev/null && CPP_save=`echo "$CPP" | cut -d' ' -f2-`
 
61
CPP="`basename $CPP` $CPP_save"
 
62
fi
 
63
 
 
64
dnl Check for directory with current ALSA linux kernel sources...
 
65
AC_MSG_CHECKING(for directory with ALSA kernel sources)
 
66
AC_ARG_WITH(alsakernel,
 
67
  [  --with-alsakernel=dir   give the directory with ALSA kernel sources]
 
68
  [                        [[../alsa-kmirror]]],
 
69
  [alsakerneldir="$withval"],
 
70
  [alsakerneldir="../alsa-kmirror"]
 
71
)
 
72
ALSAKERNELDIR=""
 
73
if test -d "$alsakerneldir"; then
 
74
  ALSAKERNELDIR=$(cd "$alsakerneldir" && pwd)
 
75
elif test -d "alsa-kernel"; then
 
76
  ALSAKERNELDIR=$(cd "alsa-kernel" && pwd)
 
77
fi
 
78
if test -z "$ALSAKERNELDIR"; then
 
79
  cat << EOF
 
80
The directory $alsakerneldir does not exist.
 
81
Please obtain the ALSA linux kernel tree (alsa-kmirror or alsa-kernel).
 
82
EOF
 
83
  exit 1
 
84
fi
 
85
AC_MSG_RESULT($alsakerneldir)
 
86
AC_SUBST(ALSAKERNELDIR)
 
87
 
 
88
dnl Check for directory with kernel top-level makefile...
 
89
AC_MSG_CHECKING(for directory with kernel top-level makefile)
 
90
if test -d "/lib/modules/`uname -r`/source" -o -L "/lib/modules/`uname -r`/source"; then
 
91
  DEFAULT_KERNEL_DIR="/lib/modules/`uname -r`/source"
 
92
  DEFAULT_KERNEL_BUILD="/lib/modules/`uname -r`/build"
 
93
elif test -d "/lib/modules/`uname -r`/build" -o -L "/lib/modules/`uname -r`/build"; then
 
94
  DEFAULT_KERNEL_DIR="/lib/modules/`uname -r`/build"
 
95
else
 
96
  DEFAULT_KERNEL_DIR="/usr/src/linux"
 
97
fi
 
98
AC_ARG_WITH(kernel,
 
99
  [  --with-kernel=dir       give the directory with kernel top-level makefile]
 
100
  [                        [[/usr/src/linux]]],
 
101
  [kerneldir="$withval"
 
102
   DEFAULT_KERNEL_BUILD=""],
 
103
  [kerneldir="$DEFAULT_KERNEL_DIR"]
 
104
)
 
105
if test -d "$kerneldir"; then
 
106
  CONFIG_SND_KERNELDIR=$(cd "$kerneldir" && pwd)
 
107
else
 
108
  cat << EOF
 
109
Please install the package with full kernel sources for your distribution
 
110
or use --with-kernel=dir option to specify another directory with kernel
 
111
sources (default is $DEFAULT_KERNEL_DIR).
 
112
EOF  
 
113
  exit 1
 
114
fi
 
115
AC_MSG_RESULT($kerneldir)
 
116
 
 
117
dnl Check for directory with kernel source/headers...
 
118
AC_MSG_CHECKING(for directory with kernel headers)
 
119
dir="$(mktemp -d)"
 
120
if test -z "$dir"; then
 
121
  echo >&2 "failed to create temporary directory"
 
122
  exit 1
 
123
fi
 
124
echo "\$(warning KBUILD_SRC=\$(KBUILD_SRC))" > "$dir"/Makefile
 
125
kernelsrc=$(make -C "$CONFIG_SND_KERNELDIR" M="$dir" 2>&1 >/dev/null | \
 
126
            sed -n "s#^$dir/Makefile:.*: KBUILD_SRC=\(.*\)\$#\1#; T; p; q")
 
127
rm -rf "$dir"
 
128
if test -z "$kernelsrc"; then
 
129
  AC_MSG_RESULT(failed)
 
130
  exit 1
 
131
else
 
132
  CONFIG_SND_KERNELSRC="$kernelsrc"
 
133
  AC_MSG_RESULT($kernelsrc)
 
134
fi
 
135
 
 
136
dnl Check for directory with kernel build tree...
 
137
AC_MSG_CHECKING(for directory with kernel build)
 
138
AC_ARG_WITH(build,
 
139
  [  --with-build=dir        give the directory with kernel build tree],
 
140
  kernelbuild="$withval",
 
141
  kernelbuild="$DEFAULT_KERNEL_BUILD"
 
142
)
 
143
CONFIG_SND_KERNELBUILD="$kernelbuild"
 
144
AC_MSG_RESULT($kernelbuild)
 
145
 
 
146
AC_DEFUN([CHECK_REQUIRED_KERNEL_HEADER], [
 
147
  $1="$2"
 
148
  AC_MSG_CHECKING(for kernel $2 $3)
 
149
  if ! test -r $CONFIG_SND_KERNELSRC/include/$2; then
 
150
    if test -z "$kernelbuild" -o ! -f $kernelbuild/include/$2; then
 
151
      if test -n "$3"; then
 
152
        $1="$3"
 
153
        if ! test -r $CONFIG_SND_KERNELSRC/include/$3; then
 
154
          if test -z "$kernelbuild" -o ! -f $kernelbuild/include/$3; then
 
155
            AC_MSG_RESULT(no)
 
156
            cat << EOF
 
157
The file $CONFIG_SND_KERNELSRC/include/$2 does not exist.
 
158
The file $CONFIG_SND_KERNELSRC/include/$3 does not exist.
 
159
Please install the package with full kernel sources for your distribution
 
160
or use --with-kernel=dir option to specify another directory with kernel
 
161
sources (default is $DEFAULT_KERNEL_DIR).
 
162
EOF
 
163
            exit 1
 
164
          fi
 
165
        fi
 
166
      else
 
167
        AC_MSG_RESULT(no)
 
168
        cat << EOF
 
169
The file $CONFIG_SND_KERNELSRC/include/$1 does not exist.
 
170
Please install the package with full kernel sources for your distribution
 
171
or use --with-kernel=dir option to specify another directory with kernel
 
172
sources (default is $DEFAULT_KERNEL_DIR).
 
173
EOF
 
174
        exit 1
 
175
      fi
 
176
    fi
 
177
  fi
 
178
  AC_MSG_RESULT($$1)
 
179
])
 
180
CHECK_REQUIRED_KERNEL_HEADER([INCLUDE_VERSION_H], [linux/version.h])
 
181
CHECK_REQUIRED_KERNEL_HEADER([INCLUDE_AUTOCONF_H], [linux/autoconf.h],
 
182
                             [generated/autoconf.h])
 
183
 
 
184
AC_DEFUN([CHECK_POSSIBLE_KERNEL_HEADER], [
 
185
  $1=""
 
186
  AC_MSG_CHECKING(for kernel $2 $3)
 
187
  if test -r $CONFIG_SND_KERNELSRC/include/$2; then
 
188
    $1="$2"
 
189
  else
 
190
    if test -n "$kernelbuild" -a -f $kernelbuild/include/$2; then
 
191
      $1="$2"
 
192
    else
 
193
      if test -n "$3"; then
 
194
        if test -r $CONFIG_SND_KERNELSRC/include/$3; then
 
195
          $1="$3"
 
196
        else
 
197
          if test -n "$kernelbuild" -a -f $kernelbuild/include/$3; then
 
198
            $1="$3"
 
199
          fi
 
200
        fi
 
201
      fi
 
202
    fi
 
203
  fi
 
204
  if ! test -z "$$1"; then
 
205
    AC_MSG_RESULT($$1)
 
206
  else
 
207
    AC_MSG_RESULT(no)
 
208
  fi
 
209
])
 
210
CHECK_POSSIBLE_KERNEL_HEADER([INCLUDE_UTSRELEASE_H], [linux/utsrelease.h],
 
211
                             [generated/utsrelease.h])
 
212
 
 
213
dnl Check for kernel version...
 
214
AC_MSG_CHECKING(for kernel version)
 
215
KERNEL_INC="-I$CONFIG_SND_KERNELSRC/include"
 
216
MAKE_ADDS=""
 
217
if test -n "$kernelbuild"; then
 
218
  kpath=""
 
219
  if test -d "$kernelbuild/include"; then
 
220
    kpath="-I$kernelbuild/include"
 
221
  fi
 
222
  if test -d "$kernelbuild/include2"; then
 
223
    kpath="$kpath -I$kernelbuild/include2"
 
224
    MAKE_ADDS="O=$kernelbuild"
 
225
  fi
 
226
  KERNEL_INC="$kpath $KERNEL_INC"
 
227
fi
 
228
HACK_KERNEL_INC=""
 
229
ac_save_CFLAGS="$CFLAGS"
 
230
CFLAGS="$CFLAGS $KERNEL_INC $HACK_KERNEL_INC"
 
231
if test -n "$kernelbuild" -a -f $kernelbuild/include/$INCLUDE_VERSION_H; then
 
232
  KERNDIR=$kernelbuild
 
233
else
 
234
  KERNDIR=$CONFIG_SND_KERNELSRC
 
235
fi
 
236
AC_TRY_RUN([
 
237
#include <stdio.h>
 
238
#include <ctype.h>
 
239
#include <stdlib.h>
 
240
#include "$KERNDIR/include/$INCLUDE_VERSION_H"
 
241
#ifndef UTS_RELEASE
 
242
#include "$KERNDIR/include/$INCLUDE_UTSRELEASE_H"
 
243
#endif
 
244
int main()
 
245
{
 
246
 FILE *f;
 
247
 char kversion[128];
 
248
 char kpatchlevel[128];
 
249
 char ksublevel[128];
 
250
 char kextra[128];
 
251
 char *ptr, *dptr;
 
252
#ifdef UTS_RELEASE
 
253
 f=fopen("./conftestdata","w");
 
254
 if (f) {
 
255
   for (ptr = UTS_RELEASE, dptr = kversion; *ptr != '\0' && isdigit(*ptr); ptr++, dptr++)
 
256
     *dptr = *ptr;
 
257
   *dptr = '\0';
 
258
   if (*ptr == '.')
 
259
     ptr++;
 
260
   for (dptr = kpatchlevel; *ptr != '\0' && isdigit(*ptr); ptr++, dptr++)
 
261
     *dptr = *ptr;
 
262
   *dptr = '\0';
 
263
   if (*ptr == '.')
 
264
     ptr++;
 
265
   for (dptr = ksublevel; *ptr != '\0' && isdigit(*ptr); ptr++, dptr++)
 
266
     *dptr = *ptr;
 
267
   *dptr = '\0';
 
268
   for (dptr = kextra; *ptr != '\0'; ptr++, dptr++)
 
269
     *dptr = *ptr;
 
270
   *dptr = '\0';   
 
271
   fprintf(f,"%s:%s:%s:%s\n",kversion,kpatchlevel,ksublevel,kextra);
 
272
   fclose(f);
 
273
   }
 
274
 exit(0);
 
275
#else
 
276
 exit(1);
 
277
#endif
 
278
}],kaversion=`cat conftestdata`,
 
279
kaversion="",
 
280
kaversion="")
 
281
CFLAGS="$ac_save_CFLAGS"
 
282
kversion=`echo $kaversion | cut -d : -f 1`
 
283
kpatchlevel=`echo $kaversion | cut -d : -f 2`
 
284
ksublevel=`echo $kaversion | cut -d : -f 3`
 
285
kextraversion=`echo $kaversion | cut -d : -f 4`
 
286
kversion=`expr $kversion + 0`
 
287
kpatchlevel=`expr $kpatchlevel + 0`
 
288
ksublevel=`expr $ksublevel + 0`
 
289
if test "$kversion" = "0" -a "$kpatchlevel" = "0" -a "$ksublevel" = "0"; then
 
290
  AC_MSG_RESULT(failed)
 
291
  echo "  (probably missing $CONFIG_SND_KERNELSRC/include/linux/version.h or"
 
292
  echo "                    $CONFIG_SND_KERNELSRC/include/linux/utsrelease.h or"
 
293
  echo "                    $CONFIG_SND_KERNELSRC/include/generated/utsrelease.h)"
 
294
  exit 1
 
295
fi
 
296
kaversion="$kversion.$kpatchlevel.$ksublevel$kextraversion"
 
297
AC_SUBST(kaversion)
 
298
AC_SUBST(kversion)
 
299
AC_SUBST(kpatchlevel)
 
300
AC_SUBST(ksublevel)
 
301
AC_SUBST(kextraversion)
 
302
AC_MSG_RESULT($kaversion)
 
303
 
 
304
dnl Check for GCC version...
 
305
if false; then
 
306
AC_MSG_CHECKING(for GCC version)
 
307
ac_save_CFLAGS="$CFLAGS"
 
308
CFLAGS="$CFLAGS $KERNEL_INC $HACK_KERNEL_INC"
 
309
if test -n "$kernelbuild" -a -f $kernelbuild/include/linux/compile.h; then
 
310
  KERNDIR=$kernelbuild
 
311
else
 
312
  KERNDIR=$CONFIG_SND_KERNELSRC
 
313
fi
 
314
 
 
315
AC_TRY_RUN([
 
316
#include <stdio.h>
 
317
#include <ctype.h>
 
318
#include <string.h>
 
319
#include "$KERNDIR/include/linux/compile.h"
 
320
int main()
 
321
{
 
322
 FILE *f;
 
323
 char compiler[128];
 
324
 char *ptr, *dptr;
 
325
#ifdef LINUX_COMPILER
 
326
 f=fopen("./conftestdata","w");
 
327
 if (f) {
 
328
for (ptr = LINUX_COMPILER, dptr = compiler; *ptr != '\0' && *ptr != ' ' && *ptr != '\t'; ptr++, dptr++)
 
329
     *dptr = *ptr;
 
330
   if (*ptr != '\0' && (*ptr == ' ' || *ptr == '\t'))
 
331
     ptr++;
 
332
   if (!strncmp(ptr, "version", 7))
 
333
        ptr += 7;
 
334
   if (*ptr != '\0' && (*ptr == ' ' || *ptr == '\t'))
 
335
     ptr++;
 
336
   *dptr++ = ' ';
 
337
   for (; *ptr != '\0' && *ptr != '\n'; ptr++, dptr++)
 
338
     *dptr = *ptr;
 
339
   *dptr = '\t';
 
340
   *dptr = '\0';
 
341
   if (!strcmp(compiler, " "))
 
342
        compiler[0] = '\0';
 
343
   fprintf(f,"%s\n",compiler);
 
344
   fclose(f);
 
345
   }
 
346
 exit(0);
 
347
#else
 
348
 exit(1);
 
349
#endif
 
350
}],kernel_compiler=`cat conftestdata`,
 
351
kernel_compiler="",
 
352
kernel_compiler="")
 
353
CFLAGS="$ac_save_CFLAGS"
 
354
my_compiler=`$CROSS_COMPILE$CC --version | head -n 1`
 
355
fi
 
356
dnl
 
357
dnl Test section, uncomment any of these double lines to verify the bellow code:
 
358
dnl
 
359
dnl kernel_compiler="gcc-Version 3.3"
 
360
dnl my_compiler="gcc (GCC) 3.3"
 
361
dnl 
 
362
dnl kernel_compiler="gcc 3.2"
 
363
dnl my_compiler="gcc (GCC) 3.2"
 
364
dnl
 
365
dnl kernel_compiler="gcc 3.2.2 (Mandrake Linux 9.1 3.2.2-3mdk)"
 
366
dnl my_compiler="gcc-3.2.2 (GCC) 3.2.2 (Mandrake Linux 9.1 3.2.2-3mdk)"
 
367
dnl
 
368
dnl kernel_compiler="gcc egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)"
 
369
dnl my_compiler="egcs-2.91.66"
 
370
dnl
 
371
dnl kernel_compiler="gcc 2.95.3 20010315 (release)"
 
372
dnl my_compiler="2.95.3"
 
373
dnl
 
374
 
 
375
if false; then
 
376
AC_DEFUN([CHECK_COMPILER], [
 
377
  typevar=$2
 
378
  versionvar=$3
 
379
  ac_compiler_type=""
 
380
  ac_compiler_version=""
 
381
  for i in $1; do
 
382
    case $i in
 
383
    gcc-[[0-9]]*|*-gcc-[[0-9]]*)
 
384
      if test -z "$ac_compiler_type"; then
 
385
        ac_compiler_type=gcc
 
386
      fi
 
387
      if test -z "$ac_compiler_version"; then
 
388
        ac_compiler_version=`echo $i | sed -e 's/^.*gcc-\([[0-9.]]\+\).*$/\1/'`
 
389
      fi
 
390
      ;;
 
391
    *gcc*|*GCC*)
 
392
      if test -z "$ac_compiler_type"; then
 
393
        ac_compiler_type=gcc
 
394
      fi
 
395
      ;;
 
396
    egcs-*)
 
397
      ac_compiler_type=egcs
 
398
      if test -z "$ac_compiler_version"; then
 
399
        ac_compiler_version=`echo $i | sed -e 's/egcs-\(.\+\)$/\1/'`
 
400
      fi
 
401
      ;;
 
402
    *cc*)
 
403
      if test -z "$ac_compiler_type"; then
 
404
        ac_compiler_type=cc
 
405
      fi
 
406
      ;;
 
407
    [[0-9]].[[0-9]]*)
 
408
      if test -z "$ac_compiler_version"; then
 
409
        ac_compiler_version=`echo $i | sed -e 's|[[^0-9]]*\([[0-9.]]\+\).*$|\1|'`
 
410
      fi
 
411
      ;;
 
412
    esac
 
413
  done
 
414
  eval $typevar="$ac_compiler_type"
 
415
  eval $versionvar="$ac_compiler_version"
 
416
])
 
417
 
 
418
CHECK_COMPILER($kernel_compiler, kernel_compiler_type, kernel_compiler_version)
 
419
CHECK_COMPILER($my_compiler, my_compiler_type, my_compiler_version)
 
420
if test -z "$my_compiler_type"; then
 
421
  my_compiler_type="gcc"
 
422
fi
 
423
AC_MSG_RESULT(Kernel compiler: $kernel_compiler Used compiler: $my_compiler);
 
424
if test -z "$kernel_compiler"; then
 
425
  echo
 
426
  echo "*** NO PREDEFINED KERNEL COMPILER IS DETECTED"
 
427
  echo "*** Assuming the same compiler is used with the current system compiler."
 
428
  echo
 
429
  echo "*** Please make sure that the same compiler version was used for building kernel."
 
430
  echo
 
431
else
 
432
if test "$my_compiler_type" != "$kernel_compiler_type"; then
 
433
  echo "Fatal error: Compiler type does not match"
 
434
  echo "Decoded kernel compiler: type=$kernel_compiler_type version=$kernel_compiler_version"
 
435
  echo "Decoded used compiler: type=$my_compiler_type version=$my_compiler_version"
 
436
  echo "Please, send ./configure output to <alsa-devel@alsa-project.org>"
 
437
  exit 1
 
438
fi
 
439
if test "$my_compiler_type" = "gcc" ; then
 
440
  kernel_major=`echo $kernel_compiler_version | cut -d '.' -f 1`
 
441
  my_major=`echo $my_compiler_version | cut -d '.' -f 1`
 
442
  if test $kernel_major -eq 2 -a $my_major -eq 3 ; then
 
443
    echo "Fatal error: Kernel is compiled with GCC 2.x and you are trying to use GCC 3.x."
 
444
    echo "             These two version of GCC are incompatible for binary code."
 
445
    exit 1
 
446
  fi
 
447
  if test $kernel_major -eq 3 -a $my_major -eq 2 ; then
 
448
    echo "Fatal error: Kernel is compiled with GCC 3.x and you are trying to use GCC 2.x."
 
449
    echo "             These two version of GCC are incompatible for binary code."
 
450
    exit 1
 
451
  fi
 
452
fi
 
453
fi
 
454
fi
 
455
dnl compiler version check
 
456
 
 
457
AC_DEFUN([CHECK_KERNEL_HEADER], [
 
458
  AC_MSG_CHECKING(for kernel $1)
 
459
  if test -n "$kernelbuild" -a \( -f "$kernelbuild/include/$1" -o -f "$kernelbuild/include2/$1" -o -f "$kernelbuild/arch/$ARCHDIR/include/$1" \) ; then
 
460
    KERNDIR=$kernelbuild
 
461
  else
 
462
    KERNDIR=$CONFIG_SND_KERNELSRC
 
463
  fi
 
464
  if test -n "$3"; then
 
465
    eval $3=""
 
466
  fi
 
467
  if test -f "$KERNDIR/include/$1" -o -f "$KERNDIR/include2/$1" -o -f "$KERNDIR/arch/$ARCHDIR/include/$1"; then
 
468
    AC_MSG_RESULT(yes)
 
469
    if test -f include/$1; then
 
470
      echo "Removing a dummy $1."
 
471
      rm -f include/$1
 
472
    fi
 
473
    if test -n "$3"; then
 
474
      eval $3="y"
 
475
    fi
 
476
  else
 
477
    AC_MSG_RESULT(no)
 
478
    if test ! -f include/$1; then
 
479
      mkdir -p include/linux include/asm include/media
 
480
      mkdir -p include/linux/regulator include/linux/usb
 
481
      if test -z "$2" ; then
 
482
        echo "Creating a dummy <$1>..."
 
483
        touch include/$1
 
484
      else
 
485
        echo "Creating <$1>..."
 
486
        echo "$2" > include/$1
 
487
      fi
 
488
    fi
 
489
  fi
 
490
])
 
491
 
 
492
AC_DEFUN([MODIFY_KERNEL_HEADER], [
 
493
  AC_MSG_CHECKING(to modify of kernel $1)
 
494
  if test -n "$kernelbuild" -a \( -f "$kernelbuild/include/$1" -o -f "$kernelbuild/include2/$1" -o -f "$kernelbuild/arch/$ARCHDIR/include/$1" \) ; then
 
495
    KERNDIR=$kernelbuild
 
496
  else
 
497
    KERNDIR=$CONFIG_SND_KERNELSRC
 
498
  fi
 
499
  if grep -q $2 "$KERNDIR/include/$1" "$KERNDIR/include2/$1" "$KERNDIR/arch/$ARCHDIR/include/$1" > /dev/null 2>&1; then
 
500
    AC_MSG_RESULT(no)
 
501
    if test -f include/$1; then
 
502
      echo "Removing a dummy $1."
 
503
      rm -f include/$1
 
504
    fi
 
505
  else
 
506
    AC_MSG_RESULT(yes)
 
507
    mkdir -p include/linux include/asm include/media
 
508
    echo "#ifndef $2" > include/$1
 
509
    echo "#define $2" >> include/$1
 
510
    cat "$KERNDIR/include/$1" >> include/$1
 
511
    echo "#endif /* $2 */" >> include/$1
 
512
  fi
 
513
])
 
514
 
 
515
dnl Check kernel configurations
 
516
AC_DEFUN([CHECK_KERNEL_CONFIG_BUILTIN], [
 
517
  boolvar="$1"
 
518
  AC_MSG_CHECKING(for $2)
 
519
  ac_save_CFLAGS="$CFLAGS"
 
520
  CFLAGS="$CFLAGS $KERNEL_INC $HACK_KERNEL_INC"
 
521
  if test -n "$kernelbuild" -a -f "$kernelbuild/include/$INCLUDE_AUTOCONF_H"; then
 
522
    KERNDIR=$kernelbuild
 
523
  else
 
524
    KERNDIR=$CONFIG_SND_KERNELSRC
 
525
  fi
 
526
  boolchk=""
 
527
  AC_TRY_RUN([
 
528
#include "$KERNDIR/include/$INCLUDE_AUTOCONF_H"
 
529
int main( void ) {
 
530
#ifndef $boolvar
 
531
  exit(1);
 
532
#else
 
533
  exit(0);
 
534
#endif
 
535
}
 
536
],
 
537
    AC_MSG_RESULT(yes);boolchk="y",
 
538
    AC_MSG_RESULT(no);boolchk="",
 
539
    AC_MSG_RESULT(unknown);boolchk=""
 
540
  )
 
541
  CFLAGS="$ac_save_CFLAGS"
 
542
  eval $boolvar="$boolchk"
 
543
])
 
544
 
 
545
dnl Check kernel configurations
 
546
AC_DEFUN([CHECK_KERNEL_CONFIG], [
 
547
  boolvar="$1"
 
548
  boolvar1="$1_MODULE"
 
549
  AC_MSG_CHECKING(for $2)
 
550
  ac_save_CFLAGS="$CFLAGS"
 
551
  CFLAGS="$CFLAGS $KERNEL_INC $HACK_KERNEL_INC"
 
552
  if test -n "$kernelbuild" -a -f "$kernelbuild/include/$INCLUDE_AUTOCONF_H"; then
 
553
    KERNDIR=$kernelbuild
 
554
  else
 
555
    KERNDIR=$CONFIG_SND_KERNELSRC
 
556
  fi
 
557
  boolchk=""
 
558
  AC_TRY_RUN([
 
559
#include "$KERNDIR/include/$INCLUDE_AUTOCONF_H"
 
560
int main( void ) {
 
561
#if !defined($boolvar) && !defined($boolvar1)
 
562
  exit(1);
 
563
#else
 
564
  exit(0);
 
565
#endif
 
566
}
 
567
],
 
568
    AC_MSG_RESULT(yes);boolchk="y",
 
569
    AC_MSG_RESULT(no);boolchk="",
 
570
    AC_MSG_RESULT(unknown);boolchk=""
 
571
  )
 
572
  CFLAGS="$ac_save_CFLAGS"
 
573
  eval $boolvar="$boolchk"
 
574
])
 
575
 
 
576
dnl Check kernel configurations
 
577
AC_DEFUN([CHECK_KERNEL_TRISTATE_CONFIG], [
 
578
  tristatevar="$1"
 
579
  tristatevar1="$1_MODULE"
 
580
  AC_MSG_CHECKING(for $2)
 
581
  ac_save_CFLAGS="$CFLAGS"
 
582
  CFLAGS="$CFLAGS $KERNEL_INC $HACK_KERNEL_INC"
 
583
  if test -n "$kernelbuild" -a -f "$kernelbuild/include/$INCLUDE_AUTOCONF_H"; then
 
584
    KERNDIR=$kernelbuild
 
585
  else
 
586
    KERNDIR=$CONFIG_SND_KERNELSRC
 
587
  fi
 
588
  tristatechk=""
 
589
  AC_TRY_RUN([
 
590
#include "$KERNDIR/include/$INCLUDE_AUTOCONF_H"
 
591
#include <stdio.h>
 
592
int main(void) {
 
593
        FILE *file = fopen("tristate.result", "w+");
 
594
        if (file == NULL)
 
595
                exit(1);
 
596
#if defined($tristatevar)
 
597
        fprintf(file, "y");
 
598
#endif
 
599
#if defined(${tristatevar}_MODULE)
 
600
        fprintf(file, "m");
 
601
#endif
 
602
        fclose(file);
 
603
        exit(0);
 
604
}
 
605
],
 
606
    tristatechk="`cat tristate.result`",
 
607
    tristatechk="",
 
608
    tristatechk=""
 
609
  )
 
610
  case $tristatechk in
 
611
  y)
 
612
        tristateres="yes"
 
613
        ;;
 
614
  m)
 
615
        tristateres="module"
 
616
        ;;
 
617
  *)
 
618
        tristateres="unknown"
 
619
        ;;
 
620
  esac
 
621
  AC_MSG_RESULT($tristateres)
 
622
  CFLAGS="$ac_save_CFLAGS"
 
623
  rm -f tristate.result
 
624
  eval $tristatevar="$tristatechk"
 
625
])
 
626
 
 
627
dnl Check if symbol is exported
 
628
AC_DEFUN([CHECK_EXPORTED], [
 
629
  AC_MSG_CHECKING(for exported symbol $2)
 
630
  ac_save_CFLAGS="$CFLAGS"
 
631
  boolchk=""
 
632
  if grep EXPORT_SYMBOL "$CONFIG_SND_KERNELSRC/kernel/ksyms.c" | grep "$2" > /dev/null; then
 
633
    AC_MSG_RESULT(yes);boolchk="y"
 
634
    AC_DEFINE($1)
 
635
  else
 
636
    AC_MSG_RESULT(no);boolchk="",
 
637
  fi
 
638
  eval $boolvar="$boolchk"
 
639
])
 
640
 
 
641
if test "$kversion.$kpatchlevel" = "2.6"; then
 
642
  NEW_KBUILD=y
 
643
  AC_SUBST(NEW_KBUILD)
 
644
fi
 
645
 
 
646
dnl Check builtin ALSA on 2.6 kernel
 
647
CHECK_KERNEL_CONFIG_BUILTIN(CONFIG_SND, [built-in ALSA])
 
648
if test "$CONFIG_SND" = "y"; then
 
649
  AC_MSG_ERROR(You have built-in ALSA in your kernel.)
 
650
fi
 
651
CHECK_KERNEL_CONFIG(CONFIG_SND_MODULE, [existing ALSA module])
 
652
test "$CONFIG_SND_MODULE" = "y" && AC_DEFINE(CONFIG_SND_MODULE)
 
653
 
 
654
dnl Check for forced Red Hat kernels
 
655
AC_MSG_CHECKING(for Red Hat kernel)
 
656
AC_ARG_WITH(redhat,
 
657
  [  --with-redhat=no,yes,auto  specify Red Hat kernel build],
 
658
  redhat_kernel="$withval", redhat_kernel="auto")
 
659
RED_HAT_LINUX_KERNEL="auto"
 
660
if test "$redhat_kernel" = "yes"; then
 
661
  RED_HAT_LINUX_KERNEL="y"
 
662
  AC_MSG_RESULT(yes)
 
663
else
 
664
  if test "$redhat_kernel" = "no"; then
 
665
    RED_HAT_LINUX_KERNEL="n"
 
666
    AC_MSG_RESULT(no)
 
667
  else
 
668
    AC_MSG_RESULT(auto)
 
669
    CHECK_KERNEL_CONFIG(RED_HAT_LINUX_KERNEL, [Red Hat kernel])
 
670
  fi
 
671
fi
 
672
 
 
673
dnl Check for forced SUSE kernels
 
674
AC_MSG_CHECKING(for SUSE kernel)
 
675
AC_ARG_WITH(suse,
 
676
  [  --with-suse=no,yes,auto  specify SUSE kernel build],
 
677
  suse_kernel="$withval", suse_kernel="auto")
 
678
CONFIG_SUSE_KERNEL="auto"
 
679
if test "$suse_kernel" = "yes"; then
 
680
  CONFIG_SUSE_KERNEL="y"
 
681
  AC_MSG_RESULT(yes)
 
682
else
 
683
  if test "$suse_kernel" = "no"; then
 
684
    CONFIG_SUSE_KERNEL=""
 
685
    AC_MSG_RESULT(no)
 
686
  else
 
687
    AC_MSG_RESULT(auto)
 
688
    CHECK_KERNEL_CONFIG(CONFIG_SUSE_KERNEL, [SUSE kernel])
 
689
  fi
 
690
fi
 
691
 
 
692
dnl define kernel directory now
 
693
AC_DEFINE_UNQUOTED(CONFIG_SND_KERNELDIR, "$CONFIG_SND_KERNELDIR")
 
694
AC_SUBST(CONFIG_SND_KERNELDIR)
 
695
AC_DEFINE_UNQUOTED(CONFIG_SND_KERNELSRC, "$CONFIG_SND_KERNELSRC")
 
696
AC_SUBST(CONFIG_SND_KERNELSRC)
 
697
AC_SUBST(MAKE_ADDS)
 
698
 
 
699
dnl update include/sound/version.h
 
700
AC_MSG_CHECKING(for updating alsa-kernel version.h)
 
701
AC_ARG_ENABLE(update-version,
 
702
  AS_HELP_STRING([--disable-update-version], [disable updating alsa-kernel version]),
 
703
  update_version="$enableval", update_version="yes")
 
704
AC_MSG_RESULT($update_version)
 
705
 
 
706
dnl Check experimental drivers...
 
707
AC_MSG_CHECKING(for CONFIG_EXPERIMENTAL)
 
708
AC_ARG_ENABLE(experimental,
 
709
  AS_HELP_STRING([--disable-experimental], [disable CONFIG_EXPERIMENTAL]),
 
710
  config_experimental="$enableval", config_experimental="yes")
 
711
if test "$config_experimental" = "yes"; then
 
712
  CONFIG_EXPERIMENTAL=y 
 
713
  AC_MSG_RESULT(yes)
 
714
else
 
715
  CONFIG_EXPERIMENTAL=
 
716
  AC_MSG_RESULT(no)
 
717
fi
 
718
AC_SUBST(CONFIG_EXPERIMENTAL)
 
719
 
 
720
dnl Remove header hacks
 
721
rm -f include/linux/*.h
 
722
rm -rf include/linux/usb
 
723
rm -rf include/linux/regulator
 
724
rm -f include/asm/*.h
 
725
 
 
726
 
 
727
dnl Directory for modules
 
728
AC_MSG_CHECKING(for directory to store kernel modules)
 
729
AC_ARG_WITH(moddir,
 
730
  [  --with-moddir=/path     give the path for the alsa driver kernel modules]
 
731
  [                        [[/lib/modules/<KVER>/misc]]],
 
732
  moddir="$withval", 
 
733
  moddir_tree=
 
734
  modsubdir="misc"
 
735
# Special test for RH 5.1
 
736
  if test -d /lib/modules/preferred; then
 
737
    moddir="/lib/modules/preferred/misc"
 
738
  else
 
739
    if test -d /lib/modules/$kaversion/kernel; then
 
740
      modsubdir="kernel/sound"
 
741
      moddir="/lib/modules/$kaversion/$modsubdir"
 
742
      moddir_tree=y
 
743
    else
 
744
      moddir="/lib/modules/$kaversion/misc"
 
745
    fi
 
746
  fi
 
747
)
 
748
case "$moddir" in
 
749
/*)
 
750
  ;;
 
751
*)
 
752
  modsubdir="$moddir"
 
753
  moddir="/lib/modules/$kaversion/$modsubdir"
 
754
  ;;
 
755
esac
 
756
AC_SUBST(moddir)
 
757
AC_SUBST(modsubdir)
 
758
AC_SUBST(moddir_tree)
 
759
AC_MSG_RESULT($moddir)
 
760
 
 
761
dnl Verbose procfs
 
762
AC_MSG_CHECKING(for verbose procfs)
 
763
AC_ARG_ENABLE(verbose-procfs,
 
764
  AS_HELP_STRING([--disable-verbose-procfs], [disable verbose procfs]),
 
765
  verbose_procfs="$enableval", verbose_procfs="yes")
 
766
case "$verbose_procfs" in
 
767
  yes)
 
768
    CONFIG_SND_VERBOSE_PROCFS=y
 
769
    AC_DEFINE(CONFIG_SND_VERBOSE_PROCFS)
 
770
    AC_MSG_RESULT(on)
 
771
    ;;
 
772
  *)
 
773
    AC_MSG_RESULT(off)
 
774
    ;;
 
775
esac
 
776
 
 
777
dnl Verbose printk
 
778
AC_MSG_CHECKING(for verbose printk)
 
779
AC_ARG_ENABLE(verbose-printk,
 
780
  AS_HELP_STRING([--disable-verbose-printk],[disable verbose printk (file + line number)]),
 
781
  verbose_printk="$enableval", verbose_printk="yes")
 
782
case "$verbose_printk" in
 
783
  yes)
 
784
    CONFIG_SND_VERBOSE_PRINTK=y
 
785
    AC_DEFINE(CONFIG_SND_VERBOSE_PRINTK)
 
786
    AC_MSG_RESULT(on)
 
787
    ;;
 
788
  *)
 
789
    AC_MSG_RESULT(off)
 
790
    ;;
 
791
esac
 
792
 
 
793
 
 
794
dnl Debug level
 
795
AC_MSG_CHECKING(for debug level)
 
796
AC_ARG_WITH(debug,
 
797
  [  --with-debug=level      give the debug level (none,basic,full,verbose)],
 
798
  debug="$withval", debug="none")
 
799
case "$debug" in
 
800
  basic)
 
801
    AC_MSG_RESULT(basic)
 
802
    CONFIG_SND_DEBUG=y
 
803
    AC_DEFINE(CONFIG_SND_DEBUG)
 
804
    ;;
 
805
  memory|full)
 
806
    AC_MSG_RESULT(full)
 
807
    CONFIG_SND_DEBUG=y
 
808
    AC_DEFINE(CONFIG_SND_DEBUG)
 
809
    CONFIG_SND_DEBUG_MEMORY=y
 
810
    AC_DEFINE(CONFIG_SND_DEBUG_MEMORY)
 
811
    ;;
 
812
  detect|verbose)
 
813
    AC_MSG_RESULT(verbose)
 
814
    CONFIG_SND_DEBUG=y
 
815
    AC_DEFINE(CONFIG_SND_DEBUG)
 
816
    CONFIG_SND_DEBUG_MEMORY=y
 
817
    AC_DEFINE(CONFIG_SND_DEBUG_MEMORY)
 
818
    CONFIG_SND_DEBUG_VERBOSE=y
 
819
    AC_DEFINE(CONFIG_SND_DEBUG_VERBOSE)
 
820
    ;;
 
821
  *)
 
822
    AC_MSG_RESULT(none)
 
823
    ;;
 
824
esac
 
825
 
 
826
dnl Check for PCI support (for 2.4 kernel)...
 
827
if test $kpatchlevel -ge 3; then
 
828
CHECK_KERNEL_CONFIG(CONFIG_ISA, [ISA support in kernel])
 
829
else
 
830
CONFIG_ISA=probe
 
831
fi
 
832
 
 
833
dnl Check processor type...
 
834
AC_MSG_CHECKING(for processor type)
 
835
CONFIG_X86=
 
836
CONFIG_ALPHA=
 
837
CONFIG_L3=
 
838
CONFIG_ARM=
 
839
CONFIG_ARCH_SA1100=
 
840
CONFIG_ARCH_PXA=
 
841
CONFIG_PPC=
 
842
CONFIG_SPARC32=
 
843
CONFIG_SPARC64=
 
844
CONFIG_SBUS=
 
845
CONFIG_MIPS=
 
846
CONFIG_SND_BIT32_EMUL=
 
847
processor=""
 
848
KCC=$CROSS_COMPILE$CC
 
849
rm -f processor.id
 
850
ac_save_CFLAGS="$CFLAGS"
 
851
CFLAGS="$CFLAGS $KERNEL_INC $HACK_KERNEL_INC"
 
852
if test -n "$kernelbuild" -a -f "$kernelbuild/include/$INCLUDE_AUTOCONF_H"; then
 
853
  KERNDIR=$kernelbuild
 
854
else
 
855
  KERNDIR=$CONFIG_SND_KERNELSRC
 
856
fi
 
857
AC_TRY_RUN([
 
858
#include <stdio.h>
 
859
#include "$KERNDIR/include/$INCLUDE_AUTOCONF_H"
 
860
int main(void) {
 
861
        FILE *file = fopen("processor.id", "w+");
 
862
        if (file == NULL)
 
863
                exit(1);
 
864
#if defined(CONFIG_M386)
 
865
        fprintf(file, "i386");
 
866
#elif defined(CONFIG_M486)
 
867
        fprintf(file, "i486");
 
868
#elif defined(CONFIG_M586)
 
869
        fprintf(file, "i586");
 
870
#elif defined(CONFIG_X86_64) /* this needs to be chcked before K8 */
 
871
        fprintf(file, "x86_64");
 
872
#elif defined(CONFIG_M586TSC)
 
873
        fprintf(file, "i586tsc");
 
874
#elif defined(CONFIG_M586MMX)
 
875
        fprintf(file, "i586mmx");
 
876
#elif defined(CONFIG_MCORE2)
 
877
        fprintf(file, "mcore2");
 
878
#elif defined(CONFIG_M686) || defined(CONFIG_MPENTIUMII) || defined(CONFIG_MPENTIUMIII) || defined(CONFIG_MPENTIUM4) || defined(CONFIG_MPENTIUMM)
 
879
        fprintf(file, "i686");
 
880
#elif defined(CONFIG_MK6)
 
881
        fprintf(file, "k6");
 
882
#elif defined(CONFIG_MK7)
 
883
        fprintf(file, "k7");
 
884
#elif defined(CONFIG_MK8)
 
885
        fprintf(file, "k8");
 
886
#elif defined(CONFIG_MGEODEGX1)
 
887
        fprintf(file, "geodegx1");
 
888
#elif defined(CONFIG_MCRUSOE)
 
889
        fprintf(file, "crusoe");
 
890
#elif defined(CONFIG_MWINCHIPC6) || defined(CONFIG_MWINCHIP2) || defined(CONFIG_MWINCHIP3D)
 
891
        fprintf(file, "mwinchip");
 
892
#elif defined(CONFIG_MCYRIXIII)
 
893
        fprintf(file, "mcyrixiii");
 
894
#elif defined(CONFIG_X86_32)
 
895
        fprintf(file, "x86_32");
 
896
#elif defined(CONFIG_IA64)
 
897
        fprintf(file, "ia64");
 
898
#elif defined(CONFIG_ALPHA_GENERIC)
 
899
        fprintf(file, "alpha_generic");
 
900
#elif defined(CONFIG_ALPHA_SX164)
 
901
        fprintf(file, "alpha_sx164");
 
902
#elif defined(CONFIG_ALPHA_PYXIS)
 
903
        fprintf(file, "alpha_pyxis");
 
904
#elif defined(CONFIG_ALPHA_POLARIS)
 
905
        fprintf(file, "alpha_polaris");
 
906
#elif defined(CONFIG_EV4) || defined(CONFIG_ALPHA_EV4)
 
907
        fprintf(file, "alpha_ev4");
 
908
#elif defined(CONFIG_EV5) || defined(CONFIG_ALPHA_EV5)
 
909
        fprintf(file, "alpha_ev5");
 
910
#elif defined(CONFIG_EV6) || defined(CONFIG_ALPHA_EV6)
 
911
        fprintf(file, "alpha_ev6");
 
912
#elif defined(CONFIG_ALPHA_NONAME) || defined(CONFIG_ALPHA)
 
913
        fprintf(file, "alpha_noname");
 
914
#elif defined(CONFIG_PPC64)
 
915
        fprintf(file, "ppc64");
 
916
#elif defined(CONFIG_PPC)
 
917
        fprintf(file, "ppc");
 
918
#elif defined(CONFIG_CPU_R3000) || defined(CONFIG_CPU_R6000)
 
919
        fprintf(file, "mips");
 
920
#elif defined(CONFIG_CPU_R4300) || defined(CONFIG_CPU_R4X00)
 
921
        fprintf(file, "mips");
 
922
#elif defined(CONFIG_CPU_R5000) || defined(CONFIG_CPU_NEVADA)
 
923
        fprintf(file, "mips");
 
924
#elif defined(CONFIG_CPU_R8000) || defined(CONFIG_CPU_R10000)
 
925
        fprintf(file, "mips");
 
926
#elif defined(CONFIG_SPARC32)
 
927
        fprintf(file, "sparc");
 
928
#elif defined(CONFIG_SPARC64)
 
929
        fprintf(file, "sparc64");
 
930
#elif defined(CONFIG_ARCH_SA1100)
 
931
        fprintf(file, "sa1100");
 
932
#elif defined(CONFIG_ARCH_PXA)
 
933
        fprintf(file, "pxa");
 
934
#elif defined(CONFIG_ARM_AMBA)
 
935
        fprintf(file, "amba");
 
936
#elif defined(CONFIG_PARISC)
 
937
        fprintf(file, "parisc");
 
938
#elif defined(CONFIG_MVIAC3_2)
 
939
        fprintf(file, "viac3_2");
 
940
#elif defined(CONFIG_SUPERH64)
 
941
        fprintf(file, "sh64");
 
942
#elif defined(CONFIG_SUPERH)
 
943
        fprintf(file, "sh");
 
944
#else
 
945
        fclose(file);
 
946
        exit(1);
 
947
#endif
 
948
        fclose(file);
 
949
        exit(0);
 
950
}
 
951
],
 
952
  processor=`cat processor.id`;AC_MSG_RESULT($processor),
 
953
  AC_MSG_RESULT(unknown);processor="",
 
954
  AC_MSG_RESULT(unknown);processor=""
 
955
)
 
956
CFLAGS="$ac_save_CFLAGS"
 
957
rm -f processor.id
 
958
c_opts=""
 
959
KLD=ld
 
960
ARCH=
 
961
case "$processor" in
 
962
  x86_32)
 
963
    ARCH=i386
 
964
    c_opts="-march=i386"
 
965
    ;;
 
966
  i386*)
 
967
    ARCH=i386
 
968
    c_opts="-march=i386"
 
969
    ;;
 
970
  i486*)
 
971
    ARCH=i386
 
972
    c_opts="-march=i486"
 
973
    ;;
 
974
  i586* | mwinchip)
 
975
    ARCH=i386
 
976
    c_opts="-march=i586"
 
977
    ;;
 
978
  i686*)
 
979
    ARCH=i386
 
980
    c_opts="-march=i686"
 
981
    ;;
 
982
  mcore2)
 
983
    ARCH=i386
 
984
    c_opts="-march=i686"
 
985
    if $KCC -mtune=core2 -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then
 
986
      c_opts="$c_opts -mtune=core2"
 
987
    fi
 
988
    ;;
 
989
  k6)
 
990
    ARCH=i386
 
991
    if $KCC -march=k6  -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then
 
992
      c_opts="-march=k6"
 
993
    else
 
994
      c_opts="-march=i586"
 
995
    fi
 
996
    ;;
 
997
  k7|k8)
 
998
    ARCH=i386
 
999
    if $KCC -march=athlon -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then
 
1000
      c_opts="-march=athlon"
 
1001
    else
 
1002
      if $KCC -falign-functions=0 -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then
 
1003
        c_opts="-march=i686 -falign-functions=4"
 
1004
      else
 
1005
        c_opts="-march=i686 -malign-functions=4"
 
1006
      fi
 
1007
    fi
 
1008
    ;;
 
1009
  crusoe)
 
1010
    ARCH=i386
 
1011
    if $KCC -falign-functions=0 -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then
 
1012
      c_opts="-march=i686 -falign-functions=0 -falign-jumps=0 -falign-loops=0"
 
1013
    else
 
1014
      c_opts="-march=i686 -malign-functions=0 -malign-jumps=0 -malign-loops=0"
 
1015
    fi
 
1016
    ;;
 
1017
  mcyrixiii)
 
1018
    ARCH=i386
 
1019
    if $KCC -march=c3 -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then
 
1020
      c_opts="-march=c3"
 
1021
    else
 
1022
      c_opts="-march=i486"
 
1023
    fi
 
1024
    if $KCC -falign-functions=0 -falign-jumps=0 -falign-loops=0 -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then
 
1025
      c_opts="$c_opts -falign-functions=0 -falign-jumps=0 -falign-loops=0"
 
1026
    else
 
1027
      c_opts="$c_opts -malign-functions=0 -malign-jumps=0 -malign-loops=0"
 
1028
    fi
 
1029
    ;;
 
1030
  geodegx1)
 
1031
    ARCH=i386
 
1032
    c_opts="-march=pentium-mmx"
 
1033
    ;;
 
1034
  ia64)
 
1035
    ARCH=ia64
 
1036
    c_opts="-Wa,-x -ffixed-r13 -mfixed-range=f10-f15,f32-f127 -funwind-tables -falign-functions=32"
 
1037
    test "$CONFIG_ISA" = "probe" && CONFIG_ISA=
 
1038
    CONFIG_IA64=y
 
1039
    ;;
 
1040
  alpha*)
 
1041
    ARCH=alpha
 
1042
    c_opts="-mno-fp-regs -ffixed-8"
 
1043
    if $KCC -mcpu=pca56 -S -o /dev/null -xc /dev/null > /dev/null 2>&1; then
 
1044
      have_pca56=yes
 
1045
    fi
 
1046
    if $KCC -mcpu=ev5 -S -o /dev/null -xc /dev/null > /dev/null 2>&1; then
 
1047
      case "$processor" in
 
1048
      alpha_generic)
 
1049
        c_opts="$c_opts -mcpu=ev5"
 
1050
        ;;
 
1051
      alpha_sx164|alpha_polaris)
 
1052
        if test x$have_pca56 = xyes; then
 
1053
          c_opts="$c_opts -mcpu=pca56"
 
1054
        else
 
1055
          c_opts="$c_opts -mcpu=ev56"
 
1056
        fi
 
1057
        ;;
 
1058
      alpha_pyxis)
 
1059
        c_opts="$c_opts -mcpu=ev56"
 
1060
        ;;
 
1061
      alpha_ev4)
 
1062
        c_opts="$c_opts -mcpu=ev4"
 
1063
        ;;
 
1064
      alpha_ev6)
 
1065
        if $KCC -mcpu=ev6 -S -o /dev/null -xc /dev/null > /dev/null 2>&1; then
 
1066
          c_opts="$c_opts -mcpu=ev6"
 
1067
        elif test x$have_pca56 = xyes; then
 
1068
          c_opts="$c_opts -mcpu=pca56"
 
1069
        else
 
1070
          c_opts="$c_opts -mcpu=ev56"
 
1071
        fi
 
1072
        ;;
 
1073
      esac
 
1074
    fi
 
1075
    c_opts="$c_opts -Wa,-mev6"
 
1076
    processor="alpha"
 
1077
    CONFIG_ALPHA=y
 
1078
  cat > $SRCDIR/include/asm/hack-current.h << EOF
 
1079
#ifndef _ALPHA_CURRENT_H
 
1080
#define _ALPHA_CURRENT_H
 
1081
 
 
1082
extern struct task_struct *current;
 
1083
 
 
1084
#endif /* !(_ALPHA_CURRENT_H) */
 
1085
EOF
 
1086
    HACK_KERNEL_INC="$HACK_KERNEL_INC --include $SRCDIR/include/asm/hack-current.h"
 
1087
    ;;
 
1088
  ppc)
 
1089
    ARCH=ppc
 
1090
    if test "$kversion.$kpatchlevel" = "2.6"; then
 
1091
        if test $ksublevel -gt 26; then
 
1092
            ARCH=powerpc
 
1093
        fi
 
1094
    fi
 
1095
    c_opts="-D__powerpc__ -fsigned-char -fno-builtin -msoft-float -ffixed-r2 -Wno-uninitialized -mmultiple -mstring"
 
1096
    if test -d $CONFIG_SND_KERNELSRC/arch/ppc/include; then
 
1097
      KERNEL_INC="$KERNEL_INC -I$CONFIG_SND_KERNELSRC/arch/ppc/include"
 
1098
    fi
 
1099
    CONFIG_PPC=y
 
1100
    CONFIG_PPC32=y
 
1101
    dnl FIXME: it should be checked?
 
1102
    CONFIG_PPC_PMAC=y
 
1103
    test "$CONFIG_ISA" = "probe" && CONFIG_ISA=
 
1104
    ;;
 
1105
  ppc64)
 
1106
    ARCH=ppc64
 
1107
    if test "$kversion.$kpatchlevel" = "2.6"; then
 
1108
        if test $ksublevel -gt 14; then
 
1109
            ARCH=powerpc
 
1110
        fi
 
1111
    fi
 
1112
    c_opts="-D__powerpc__ -fsigned-char -msoft-float -Wno-uninitialized -mminimal-toc -fno-builtin"
 
1113
    CONFIG_SND_BIT32_EMUL=m
 
1114
    CONFIG_PPC=y
 
1115
    CONFIG_PPC64=y
 
1116
    CHECK_KERNEL_CONFIG(CONFIG_PPC_PMAC, [PPC PowerMac])
 
1117
    test "$CONFIG_ISA" = "probe" && CONFIG_ISA=
 
1118
    ;;
 
1119
  mips*)
 
1120
    ARCH=mips
 
1121
    if $KCC -mtune=mips32 -S -o /dev/null -xc /dev/null > /dev/null 2>&1; then
 
1122
      c_opts="-mtune=mips32"
 
1123
    else
 
1124
      c_opts="-mcpu=r4600"
 
1125
    fi
 
1126
    if $KCC -mips32 -mabi=32 -S -o /dev/null -xc /dev/null > /dev/null 2>&1; then
 
1127
      c_opts="$c_opts -mips32 -mabi=32"
 
1128
    else
 
1129
      c_opts="$_opts -mips2"
 
1130
    fi
 
1131
    c_opts="$c_opts -G 0 -fno-pic -mno-abicalls -mlong-calls"
 
1132
    processor="mips"
 
1133
    CONFIG_MIPS=y
 
1134
    test "$CONFIG_ISA" = "probe" && CONFIG_ISA=
 
1135
    ;;
 
1136
  sparc)
 
1137
    ARCH=sparc
 
1138
    CONFIG_SPARC=y
 
1139
    CONFIG_SPARC32=y
 
1140
    IS_EGCS=n
 
1141
    NEW_GAS=n
 
1142
    $KCC -m32 -S -o /dev/null -xc /dev/null >/dev/null 2>&1 || IS_EGCS=y
 
1143
    $CROSS_COMPILE$KLD -V 2>&1 | grep 'elf64_sparc' > /dev/null && NEW_GAS=y
 
1144
    if test $NEW_GAS = y; then
 
1145
      KLD="$KLD -m elf32_sparc"
 
1146
    fi
 
1147
    if test $IS_EGCS = y; then
 
1148
      c_opts="-mno-fpu -fcall-used-g5 -fcall-used-g7"
 
1149
    else
 
1150
      c_opts="-m32 -mno-fpu -fcall-used-g5 -fcall-used-g7"
 
1151
    fi
 
1152
    processor="sparc";
 
1153
    test "$CONFIG_ISA" = "probe" && CONFIG_ISA=
 
1154
    ;;
 
1155
  sparc64)
 
1156
    ARCH=sparc64
 
1157
    CONFIG_SPARC=y
 
1158
    CONFIG_SPARC64=y
 
1159
    $KCC -m64 -S -o /dev/null -xc /dev/null >/dev/null 2>&1 || KCC=sparc64-linux-gcc
 
1160
    NEW_GCC=n
 
1161
    NEW_GAS=n
 
1162
    CC_UNDECL=""
 
1163
    $KCC -m64 -mcmodel=medlow -S -o /dev/null -xc /dev/null >/dev/null 2>&1 && NEW_GCC=y
 
1164
    $CROSS_COMPILE$KLD -V 2>&1 | grep 'elf64_sparc' > /dev/null && NEW_GAS=y
 
1165
    $KCC -c -x assembler /dev/null -Wa,--help | grep undeclared-regs > /dev/null || CC_UNDECL="-Wa,--undeclared-regs"
 
1166
    if test $NEW_GAS != y; then
 
1167
      KLD=sparc64-linux-ld
 
1168
    else
 
1169
      KLD="$KLD -m elf64_sparc"
 
1170
    fi
 
1171
    if test $NEW_GCC=y; then
 
1172
      c_opts="-m64 -mno-fpu -mcpu=ultrasparc -mcmodel=medlow -ffixed-g4 -fcall-used-g5 -fcall-used-g7 -Wno-sign-compare $CC_UNDECL"
 
1173
    else
 
1174
      c_opts="-mno-fpu -mtune=ultrasparc -mmedlow -ffixed-g4 -fcall-used-g5 -fcall-used-g7 -Wno-sign-compare"
 
1175
    fi
 
1176
    processor="sparc64"
 
1177
    CONFIG_SND_BIT32_EMUL=m
 
1178
    CFLAGS="$CFLAGS -ffixed-g4"
 
1179
    test "$CONFIG_ISA" = "probe" && CONFIG_ISA=
 
1180
    ;;
 
1181
  x86_64)
 
1182
    ARCH=x86_64
 
1183
    KLD="ld -m elf_x86_64 -e stext"
 
1184
    c_opts="-mno-red-zone -mcmodel=kernel -fno-reorder-blocks -fno-strength-reduce -finline-limit=2000"
 
1185
    CONFIG_SND_BIT32_EMUL=m
 
1186
    CONFIG_X86_64=y
 
1187
    CONFIG_X86=y
 
1188
    test "$CONFIG_ISA" = "probe" && CONFIG_ISA=
 
1189
    ;;
 
1190
  sa1100)
 
1191
    ARCH=arm
 
1192
    c_opts="-march=armv4 -mtune=strongarm1100 -msoft-float"
 
1193
    CONFIG_ARM=y
 
1194
    CONFIG_L3=y
 
1195
    CONFIG_ARCH_SA1100=y
 
1196
    test "$CONFIG_ISA" = "probe" && CONFIG_ISA=
 
1197
    ;;
 
1198
  pxa)
 
1199
    ARCH=arm
 
1200
    c_opts="-O2 -mapcs-32 -march=armv4 -Wa,-mxscale -mtune=strongarm -mshort-load-bytes -msoft-float"
 
1201
    CONFIG_ARM=y
 
1202
    # CONFIG_L3=y
 
1203
    CONFIG_ARCH_PXA=y
 
1204
    test "$CONFIG_ISA" = "probe" && CONFIG_ISA=
 
1205
    ;;
 
1206
  amba)
 
1207
    ARCH=arm
 
1208
    c_opts="-O2 -mapcs-32 -march=armv4 -Wa,-mxscale -mshort-load-bytes -msoft-float"
 
1209
    CONFIG_ARM=y
 
1210
    # CONFIG_L3=y
 
1211
    CONFIG_ARM_AMBA=y
 
1212
    test "$CONFIG_ISA" = "probe" && CONFIG_ISA=
 
1213
    ;;
 
1214
  parisc)
 
1215
    ARCH=parisc
 
1216
    c_opts="-mno-space-regs -mfast-indirect-calls -mschedule=7200 -mdisable-fpregs"
 
1217
    test "$CONFIG_ISA" = "probe" && CONFIG_ISA=
 
1218
    ;;
 
1219
  viac3_2)
 
1220
    ARCH=i386
 
1221
    if $KCC -march=c3-2 -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then
 
1222
      c_opts="-march=c3-2"
 
1223
    else
 
1224
      c_opts="-march=i686"
 
1225
    fi
 
1226
    ;;
 
1227
  sh)
 
1228
    ARCH=sh
 
1229
    CONFIG_SUPERH=y
 
1230
    CONFIG_ISA=
 
1231
    ;;
 
1232
  sh64)
 
1233
    ARCH=sh64
 
1234
    CONFIG_SUPERH64=y
 
1235
    CONFIG_SUPERH=y
 
1236
    CONFIG_ISA=
 
1237
    ;;
 
1238
  *)
 
1239
    processor="unknown"
 
1240
    test "$CONFIG_ISA" = "probe" && CONFIG_ISA=
 
1241
    ;;
 
1242
esac
 
1243
 
 
1244
if test -n "$ARCH"; then
 
1245
   case "$ARCH" in
 
1246
   i?86|x86_64)
 
1247
      ARCHDIR=x86
 
1248
      ;;
 
1249
   *)
 
1250
      ARCHDIR=$ARCH
 
1251
      ;;
 
1252
   esac
 
1253
   if test -d $CONFIG_SND_KERNELSRC/arch/$ARCHDIR/include; then
 
1254
      KERNEL_INC="$KERNEL_INC -I$CONFIG_SND_KERNELSRC/arch/$ARCHDIR/include"
 
1255
   fi
 
1256
fi
 
1257
 
 
1258
dnl set ia32 (X86)
 
1259
mach_dir=""
 
1260
case "$processor" in
 
1261
  i?86*|k?|crusoe|mcyrixiii|mwinchip|viac3_2|mcore2|geodegx*|x86_32)
 
1262
    if $KCC -mpreferred-stack-boundary=2 -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then
 
1263
      c_opts="-mpreferred-stack-boundary=2 $c_opts"
 
1264
      CONFIG_X86=y
 
1265
      CONFIG_X86_32=y
 
1266
    fi
 
1267
    for i in include/asm-x86 include/asm-i386 include2/asm-x86 include2/asm-i386 arch/x86/include/asm; do
 
1268
      if test -r $CONFIG_SND_KERNELSRC/$i/mach-default/mach_apic.h; then
 
1269
        mach_dir="$CONFIG_SND_KERNELSRC/$i"
 
1270
        break
 
1271
      fi  
 
1272
      if test -n "$kernelbuild" -a -r $kernelbuild/$i/mach-default/mach_apic.h; then
 
1273
        mach_dir="$kernelbuild/$i"
 
1274
        break
 
1275
      fi  
 
1276
    done
 
1277
    ;;
 
1278
  x86_64)
 
1279
    for i in include/asm-x86 include2/asm-x86 arch/x86/include/asm; do
 
1280
      if test -r $CONFIG_SND_KERNELSRC/$i/mach-default/mach_apic.h; then
 
1281
        mach_dir="$CONFIG_SND_KERNELSRC/$i"
 
1282
        break
 
1283
      fi  
 
1284
      if test -n "$kernelbuild" -a -r $kernelbuild/$i/mach-default/mach_apic.h; then
 
1285
        mach_dir="$kernelbuild/$i"
 
1286
        break
 
1287
      fi  
 
1288
    done
 
1289
    ;;
 
1290
esac
 
1291
 
 
1292
dnl Additional include directories
 
1293
if test "$kpatchlevel" = 6 -a "$ksublevel" -ge 27; then
 
1294
    case "$ARCH" in
 
1295
    i386|x86_64)
 
1296
        checkarch="x86"
 
1297
        ;;
 
1298
    *)
 
1299
        checkarch="$ARCH"
 
1300
        ;;
 
1301
    esac
 
1302
    if test -d $CONFIG_SND_KERNELSRC/arch/$checkarch/include; then
 
1303
        KERNEL_INC="$KERNEL_INC -I$CONFIG_SND_KERNELSRC/arch/$checkarch/include"
 
1304
    fi
 
1305
fi
 
1306
 
 
1307
if test -n "$mach_dir"; then
 
1308
  AC_MSG_CHECKING(for i386 machine type)
 
1309
  machine="default"
 
1310
  ac_save_CFLAGS="$CFLAGS"
 
1311
  CFLAGS="$CFLAGS $KERNEL_INC $HACK_KERNEL_INC"
 
1312
  rm -f machine.id
 
1313
  if test -n "$kernelbuild" -a -f "$kernelbuild/include/$INCLUDE_AUTOCONF_H"; then
 
1314
    KERNDIR=$kernelbuild
 
1315
  else
 
1316
    KERNDIR=$CONFIG_SND_KERNELSRC
 
1317
  fi
 
1318
  AC_TRY_RUN([
 
1319
#include <stdio.h>
 
1320
#include "$KERNDIR/include/$INCLUDE_AUTOCONF_H"
 
1321
#include "$KERNDIR/include/$INCLUDE_VERSION_H"
 
1322
int main(void) {
 
1323
        FILE *file = fopen("machine.id", "w+");
 
1324
        if (file == NULL)
 
1325
                exit(1);
 
1326
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 26)
 
1327
#if defined(CONFIG_X86_VOYAGER)
 
1328
        fprintf(file, "voyager");
 
1329
#elif defined(CONFIG_X86_VISWS)
 
1330
        fprintf(file, "visws");
 
1331
#elif defined(CONFIG_X86_NUMAQ)
 
1332
        fprintf(file, "numaq");
 
1333
#elif defined(CONFIG_X86_BIGSMP)
 
1334
        fprintf(file, "bigsmp");
 
1335
#elif defined(CONFIG_X86_SUMMIT)
 
1336
        fprintf(file, "summit");
 
1337
#elif defined(CONFIG_X86_ES7000)
 
1338
        fprintf(file, "es7000");
 
1339
#elif defined(CONFIG_X86_PC9800)
 
1340
        fprintf(file, "pc9800");
 
1341
#else
 
1342
        fprintf(file, "default");
 
1343
#endif
 
1344
#else
 
1345
        fprintf(file, "default");
 
1346
#endif
 
1347
        fclose(file);
 
1348
        exit(0);
 
1349
}
 
1350
],      
 
1351
        machine=`cat machine.id`;AC_MSG_RESULT($machine))
 
1352
        CFLAGS="$ac_save_CFLAGS"
 
1353
        rm -f machine.id
 
1354
        KERNEL_INC="$KERNEL_INC -I$mach_dir/mach-$machine"
 
1355
    fi
 
1356
 
 
1357
if test "$processor" == "x86_64"; then
 
1358
  if test -n "$mach_dir"; then
 
1359
AC_MSG_CHECKING(for i386 machine type)
 
1360
        machine="default"
 
1361
        ac_save_CFLAGS="$CFLAGS"
 
1362
        CFLAGS="$CFLAGS $KERNEL_INC $HACK_KERNEL_INC"
 
1363
        rm -f machine.id
 
1364
        if test -n "$kernelbuild" -a -f "$kernelbuild/include/$INCLUDE_AUTOCONF_H"; then
 
1365
          KERNDIR=$kernelbuild
 
1366
        else
 
1367
          KERNDIR=$CONFIG_SND_KERNELSRC
 
1368
        fi
 
1369
        AC_TRY_RUN([
 
1370
#include <stdio.h>
 
1371
#include "$KERNDIR/include/$INCLUDE_AUTOCONF_H"
 
1372
int main(void) {
 
1373
        FILE *file = fopen("machine.id", "w+");
 
1374
        if (file == NULL)
 
1375
                exit(1);
 
1376
#if defined(CONFIG_X86_VOYAGER)
 
1377
        fprintf(file, "voyager");
 
1378
#elif defined(CONFIG_X86_VISWS)
 
1379
        fprintf(file, "visws");
 
1380
#elif defined(CONFIG_X86_NUMAQ)
 
1381
        fprintf(file, "numaq");
 
1382
#elif defined(CONFIG_X86_BIGSMP)
 
1383
        fprintf(file, "bigsmp");
 
1384
#elif defined(CONFIG_X86_SUMMIT)
 
1385
        fprintf(file, "summit");
 
1386
#elif defined(CONFIG_X86_ES7000)
 
1387
        fprintf(file, "es7000");
 
1388
#elif defined(CONFIG_X86_RDC321X)
 
1389
        fprintf(file, "rdc321x");
 
1390
#elif defined(CONFIG_X86_PC9800)
 
1391
        fprintf(file, "pc9800");
 
1392
#else
 
1393
        fprintf(file, "default");
 
1394
#endif
 
1395
        fclose(file);
 
1396
        exit(0);
 
1397
}
 
1398
],      
 
1399
        machine=`cat machine.id`;AC_MSG_RESULT($machine))
 
1400
        CFLAGS="$ac_save_CFLAGS"
 
1401
        rm -f machine.id
 
1402
        if test -d $mach_dir/mach-$machine; then
 
1403
          KERNEL_INC="$KERNEL_INC -I$mach_dir/mach-$machine"
 
1404
        else
 
1405
          KERNEL_INC="$KERNEL_INC -I$mach_dir/mach-default"
 
1406
        fi
 
1407
    fi
 
1408
 
 
1409
fi
 
1410
 
 
1411
dnl ia32 and alpha
 
1412
test "$CONFIG_ISA" = "probe" && CONFIG_ISA=y
 
1413
 
 
1414
dnl 2.6.12 or newer
 
1415
if test "$kpatchlevel" = 6 -a "$ksublevel" -ge 12; then
 
1416
  CHECK_KERNEL_CONFIG(CONFIG_ISA_DMA_API, [ISA DMA API])
 
1417
else
 
1418
  if test "$CONFIG_ISA" = "y"; then
 
1419
    CONFIG_ISA_DMA_API=y
 
1420
  fi
 
1421
fi
 
1422
 
 
1423
dnl Check for SBUS support for sparc...
 
1424
if test -n "$CONFIG_SPARC32" -o -n "$CONFIG_SPARC64"; then
 
1425
  CHECK_KERNEL_CONFIG(CONFIG_SBUS, [SBUS support in kernel])
 
1426
fi
 
1427
 
 
1428
if test -n "$CONFIG_SND_BIT32_EMUL"; then
 
1429
  if test "$kversion.$kpatchlevel" = "2.6"; then
 
1430
    CHECK_KERNEL_CONFIG(CONFIG_COMPAT, [32bit compat support])
 
1431
    if test -z "$CONFIG_COMPAT"; then
 
1432
      CONFIG_SND_BIT32_EMUL=
 
1433
    fi
 
1434
  fi
 
1435
fi
 
1436
 
 
1437
dnl Check for SGI/MIPS (HAL2) support...
 
1438
CONFIG_SGI=""
 
1439
if test "$CONFIG_MIPS" = "y"; then
 
1440
  AC_MSG_CHECKING(for SGI/MIPS (HAL2) architecture)
 
1441
  if test -r "$CONFIG_SND_KERNELSRC/include/asm/sgi/sgihpc.h"; then
 
1442
    CONFIG_SGI="y"
 
1443
  fi
 
1444
  if test "$CONFIG_SGI" = "y"; then
 
1445
    AC_MSG_RESULT(yes)
 
1446
  else
 
1447
    AC_MSG_RESULT(no)
 
1448
  fi
 
1449
fi
 
1450
AC_SUBST(CONFIG_SGI)
 
1451
 
 
1452
dnl Check options for warnings
 
1453
if $KCC -Wdeclaration-after-statement -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then
 
1454
  c_opts="$c_opts -Wdeclaration-after-statement"
 
1455
fi
 
1456
if $KCC -Wno-pointer-sign -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then
 
1457
  c_opts="$c_opts -Wno-pointer-sign"
 
1458
fi
 
1459
 
 
1460
c_opts="-O2 $c_opts"
 
1461
 
 
1462
AC_SUBST(processor)
 
1463
AC_SUBST(ARCH)
 
1464
AC_SUBST(KLD)
 
1465
AC_SUBST(CONFIG_X86)
 
1466
AC_SUBST(CONFIG_X86_32)
 
1467
AC_SUBST(CONFIG_X86_64)
 
1468
AC_SUBST(CONFIG_ALPHA)
 
1469
AC_SUBST(CONFIG_L3)
 
1470
AC_SUBST(CONFIG_ARM)
 
1471
AC_SUBST(CONFIG_ARCH_SA1100)
 
1472
AC_SUBST(CONFIG_ARCH_PXA)
 
1473
AC_SUBST(CONFIG_PPC)
 
1474
AC_SUBST(CONFIG_SPARC32)
 
1475
AC_SUBST(CONFIG_SPARC64)
 
1476
AC_SUBST(CONFIG_SBUS)
 
1477
AC_SUBST(CONFIG_MIPS)
 
1478
AC_SUBST(CONFIG_ISA)
 
1479
AC_SUBST(CONFIG_ISA_DMA_API)
 
1480
AC_SUBST(CONFIG_PARISC)
 
1481
AC_SUBST(CONFIG_SUPERH)
 
1482
AC_SUBST(CONFIG_SUPERH64)
 
1483
test "$CONFIG_ISA" = "y" && AC_DEFINE(CONFIG_SND_ISA)
 
1484
 
 
1485
dnl Check linux/config.h
 
1486
CHECK_KERNEL_HEADER(linux/config.h, [#ifndef _LINUX_CONFIG_H
 
1487
#define _LINUX_CONFIG_H
 
1488
#ifndef AUTOCONF_INCLUDED
 
1489
#include <$INCLUDE_AUTOCONF_H>
 
1490
#endif
 
1491
#endif
 
1492
])
 
1493
 
 
1494
dnl Check for deprecated linux/config.h
 
1495
AC_MSG_CHECKING(for deprecated linux/config.h)
 
1496
if test -n "$kernelbuild" -a \( -f "$kernelbuild/include/$1" -o -f "$kernelbuild/include2/$1" \) ; then
 
1497
  KERNDIR=$kernelbuild
 
1498
else
 
1499
  KERNDIR=$CONFIG_SND_KERNELSRC
 
1500
fi
 
1501
deprecated_config_h="0"
 
1502
if test -r $KERNDIR/include/linux/config.h ; then
 
1503
  if grep "Including config.h is deprecated." $KERNDIR/include/linux/config.h > /dev/null; then
 
1504
    deprecated_config_h="1"
 
1505
  fi
 
1506
else
 
1507
  deprecated_config_h="1"
 
1508
fi
 
1509
if test -r $KERNDIR/include/generated/autoconf.h ; then
 
1510
  deprecated_config_h="0"
 
1511
  AC_DEFINE(CONFIG_HAVE_GENERATED_AUTOCONF_H)
 
1512
fi
 
1513
CONFIG_HAVE_DEPRECATED_CONFIG_H=$deprecated_config_h
 
1514
if test "$CONFIG_HAVE_DEPRECATED_CONFIG_H" = "1"; then
 
1515
  AC_DEFINE(CONFIG_HAVE_DEPRECATED_CONFIG_H)
 
1516
fi
 
1517
 
 
1518
dnl Check kernel headers for 2.2
 
1519
MODIFY_KERNEL_HEADER(linux/kmod.h, __LINUX_KMOD_H__)
 
1520
CHECK_KERNEL_HEADER(linux/utsrelease.h)
 
1521
CHECK_KERNEL_HEADER(linux/compiler.h)
 
1522
CHECK_KERNEL_HEADER(linux/pm.h)
 
1523
CHECK_KERNEL_HEADER(linux/spinlock.h)
 
1524
CHECK_KERNEL_HEADER(linux/irq.h)
 
1525
CHECK_KERNEL_HEADER(linux/threads.h)
 
1526
CHECK_KERNEL_HEADER(linux/rwsem.h)
 
1527
CHECK_KERNEL_HEADER(linux/gameport.h)
 
1528
CHECK_KERNEL_HEADER(media/v4l2-dev.h)
 
1529
CHECK_KERNEL_HEADER(linux/devfs_fs_kernel.h)
 
1530
CHECK_KERNEL_HEADER(linux/highmem.h)
 
1531
CHECK_KERNEL_HEADER(linux/workqueue.h)
 
1532
if test ! -f include/linux/workqueue.h; then
 
1533
  if test "x$kversion.$kpatchlevel" = "x2.4" -a \
 
1534
          "x$RED_HAT_LINUX_KERNEL" = "xy"; then
 
1535
    echo "It looks like you're using a RedHat 9 kernel."
 
1536
    echo "Disabling their incomplete workqueue.h modification."
 
1537
    mkdir -p include/linux
 
1538
    touch include/linux/workqueue.h
 
1539
  fi
 
1540
fi
 
1541
CHECK_KERNEL_HEADER(linux/dma-mapping.h)
 
1542
CHECK_KERNEL_HEADER(asm/hw_irq.h)
 
1543
CHECK_KERNEL_HEADER(linux/device.h, [#include \"device_compat.h\"
 
1544
])
 
1545
CHECK_KERNEL_HEADER(linux/platform_device.h, [#include \"platform_device_compat.h\"
 
1546
])
 
1547
CHECK_KERNEL_HEADER(linux/isa.h, [#include \"isa_compat.h\"
 
1548
])
 
1549
CHECK_KERNEL_HEADER(linux/jiffies.h, [#include <linux/sched.h>
 
1550
#include <linux/delay.h>
 
1551
])
 
1552
CHECK_KERNEL_HEADER(linux/compat.h, [#include \"compat_64.h\"
 
1553
])
 
1554
CHECK_KERNEL_HEADER(linux/log2.h)
 
1555
dnl PPC headers (for 2.2 kernels)
 
1556
CHECK_KERNEL_HEADER(linux/adb.h, [#include <asm/adb.h>
 
1557
])
 
1558
CHECK_KERNEL_HEADER(linux/cuda.h, [#include <asm/cuda.h>
 
1559
])
 
1560
CHECK_KERNEL_HEADER(linux/pmu.h, [#include <asm/pmu.h>
 
1561
])
 
1562
CHECK_KERNEL_HEADER(linux/io.h, [#include <asm/io.h>
 
1563
])
 
1564
CHECK_KERNEL_HEADER(linux/moduleparam.h)
 
1565
CHECK_KERNEL_HEADER(linux/syscalls.h, [#include \"syscalls_26.h\"
 
1566
])
 
1567
CHECK_KERNEL_HEADER(linux/firmware.h, [#include \"firmware_compat.h\"
 
1568
], HAVE_FIRMWARE_H)
 
1569
CHECK_KERNEL_HEADER(linux/err.h, [#include \"err_compat.h\"
 
1570
])
 
1571
CHECK_KERNEL_HEADER(linux/bitmap.h, [#include \"bitmap_compat.h\"
 
1572
])
 
1573
CHECK_KERNEL_HEADER(linux/mutex.h, [#include \"mutex_compat.h\"
 
1574
])
 
1575
CHECK_KERNEL_HEADER(linux/pm_qos_params.h, [#include \"pm_qos_params_compat.h\"
 
1576
])
 
1577
CHECK_KERNEL_HEADER(linux/kthread.h, [#include \"kthread_compat.h\"
 
1578
])
 
1579
CHECK_KERNEL_HEADER(asm/irq_regs.h)
 
1580
CHECK_KERNEL_HEADER(linux/seq_file.h)
 
1581
CHECK_KERNEL_HEADER(linux/debugfs.h)
 
1582
CHECK_KERNEL_HEADER(linux/gpio.h)
 
1583
CHECK_KERNEL_HEADER(linux/bug.h)
 
1584
CHECK_KERNEL_HEADER(linux/math64.h, [#include \"math64_compat.h\"
 
1585
])
 
1586
CHECK_KERNEL_HEADER(linux/regulator/consumer.h, [#include \"regulator_consumer_compat.h\"
 
1587
])
 
1588
CHECK_KERNEL_HEADER(linux/dmi.h, [#include \"dmi_compat.h\"
 
1589
])
 
1590
CHECK_KERNEL_HEADER(linux/bitrev.h)
 
1591
CHECK_KERNEL_HEADER(linux/hrtimer.h)
 
1592
CHECK_KERNEL_HEADER(linux/gcd.h, [#include \"gcd_compat.h\"
 
1593
])
 
1594
CHECK_KERNEL_HEADER(linux/gfp.h)
 
1595
 
 
1596
dnl Check for dump_stack
 
1597
if test "$kversion.$kpatchlevel" = "2.6"; then
 
1598
  AC_DEFINE(CONFIG_HAVE_DUMP_STACK)
 
1599
else
 
1600
  CHECK_EXPORTED(CONFIG_HAVE_DUMP_STACK, dump_stack)
 
1601
fi
 
1602
 
 
1603
dnl Check for modversions...
 
1604
CHECK_KERNEL_CONFIG(CONFIG_MODVERSIONS, [kernel module symbol versions])
 
1605
CONFIG_SND_MVERSION=$CONFIG_MODVERSIONS
 
1606
AC_SUBST(CONFIG_SND_MVERSION)
 
1607
GENKSYMS="/sbin/genksyms -k $kversion.$kpatchlevel.$ksublevel"
 
1608
 
 
1609
dnl Check for ioport support...
 
1610
CHECK_KERNEL_CONFIG(CONFIG_HAS_IOPORT, [has ioport support])
 
1611
test "$CONFIG_HAS_IOPORT" = "y" && AC_DEFINE(CONFIG_HAS_IOPORT)
 
1612
 
 
1613
dnl Check for PCI support...
 
1614
CHECK_KERNEL_CONFIG(CONFIG_PCI, [PCI support in kernel])
 
1615
AC_SUBST(CONFIG_PCI)
 
1616
 
 
1617
dnl Check for I2C drivers...
 
1618
CHECK_KERNEL_TRISTATE_CONFIG(CONFIG_I2C, [I2C driver in kernel])
 
1619
AC_SUBST(CONFIG_I2C)
 
1620
 
 
1621
if test "$CONFIG_I2C" != ""; then
 
1622
CHECK_KERNEL_TRISTATE_CONFIG(CONFIG_I2C_POWERMAC, [I2C_POWERMAC in kernel])
 
1623
# AC_SUBST(CONFIG_I2C_POWERMAC)
 
1624
fi
 
1625
 
 
1626
dnl Check for firmware loader...
 
1627
if test -n "$HAVE_FIRMWARE_H"; then
 
1628
  CHECK_KERNEL_TRISTATE_CONFIG(CONFIG_FW_LOADER, [firmware loader])
 
1629
else
 
1630
  AC_MSG_CHECKING(for firmware loader)
 
1631
  CONFIG_FW_LOADER="y"
 
1632
  AC_MSG_RESULT(emulated)
 
1633
fi
 
1634
AC_SUBST(CONFIG_FW_LOADER)
 
1635
 
 
1636
dnl Check for input subsystem...
 
1637
if test $kpatchlevel -le 2; then
 
1638
CONFIG_INPUT="y"
 
1639
else
 
1640
CHECK_KERNEL_TRISTATE_CONFIG(CONFIG_INPUT, [input subsystem in kernel])
 
1641
CHECK_KERNEL_CONFIG(CONFIG_PCSPKR_PLATFORM, [pc-speaker platform in kernel])
 
1642
fi
 
1643
AC_SUBST(CONFIG_INPUT)
 
1644
 
 
1645
 
 
1646
dnl Check for SMP...
 
1647
CHECK_KERNEL_CONFIG(CONFIG_SMP, [SMP])
 
1648
if test "$CONFIG_SMP" = "y"; then
 
1649
  GENKSYMS="$GENKSYMS -p smp_"
 
1650
  c_opts="$c_opts -D__SMP__ -DCONFIG_SMP"
 
1651
  msmp=1
 
1652
else
 
1653
  msmp=""
 
1654
fi
 
1655
AC_SUBST(msmp)
 
1656
 
 
1657
dnl Check for video device support... (2.2 kernels excluded due to API incompatibility)
 
1658
if test $kpatchlevel -gt 2; then
 
1659
CHECK_KERNEL_CONFIG(CONFIG_VIDEO_DEV, [Video device support in kernel])
 
1660
AC_SUBST(CONFIG_VIDEO_DEV)
 
1661
fi
 
1662
 
 
1663
dnl Check for ISA PnP driver in kernel...
 
1664
AC_MSG_CHECKING(for ISA PnP driver in kernel)
 
1665
CONFIG_ISAPNP_KERNEL=
 
1666
if test -r $CONFIG_SND_KERNELSRC/include/linux/isapnp.h; then
 
1667
  AC_MSG_RESULT(yes)
 
1668
  AC_DEFINE(CONFIG_ISAPNP_KERNEL)
 
1669
  CONFIG_ISAPNP_KERNEL=y
 
1670
else
 
1671
  AC_MSG_RESULT(no)  
 
1672
fi
 
1673
AC_SUBST(CONFIG_ISAPNP_KERNEL)
 
1674
 
 
1675
dnl Check for PnP layer (2.5+) in kernel...
 
1676
AC_MSG_CHECKING(for PnP driver in kernel)
 
1677
CONFIG_PNP_KERNEL=
 
1678
if test -r $CONFIG_SND_KERNELSRC/include/linux/pnp.h; then
 
1679
  AC_MSG_RESULT(yes)
 
1680
  AC_DEFINE(CONFIG_PNP_KERNEL)
 
1681
  CONFIG_PNP_KERNEL=y
 
1682
else
 
1683
  AC_MSG_RESULT(no)  
 
1684
fi
 
1685
AC_SUBST(CONFIG_PNP_KERNEL)
 
1686
 
 
1687
dnl Check for ISA PnP support...
 
1688
if test "$CONFIG_ISAPNP_KERNEL" = y; then
 
1689
  CHECK_KERNEL_CONFIG(CONFIG_ISAPNP, [Kernel ISA-PnP support])
 
1690
  if test "$CONFIG_ISAPNP" != "y"; then
 
1691
    CHECK_KERNEL_CONFIG(CONFIG_ISAPNP_MODULE, [Kernel ISA-PnP module support])
 
1692
  fi
 
1693
fi
 
1694
 
 
1695
dnl Check for ALSA's own isapnp support
 
1696
dnl available only when pnp is not built in the kernel
 
1697
if test "$CONFIG_PNP_KERNEL" != y; then
 
1698
  if test "$CONFIG_ISAPNP_KERNEL" != y; then
 
1699
    isapnp_choose=y
 
1700
  elif test "$CONFIG_ISAPNP" = y -o "$CONFIG_ISAPNP_MODULE" = y; then
 
1701
    isapnp_choose=y
 
1702
  fi
 
1703
  if test "$isapnp_choose" = y; then
 
1704
    AC_MSG_CHECKING(for ISA PnP support)
 
1705
    AC_ARG_WITH(isapnp,
 
1706
      [  --with-isapnp=yes,no,auto  driver will (not) be compiled with ISA PnP support],
 
1707
      pnp="$withval", pnp="yes")
 
1708
    if test "$pnp" = "auto"; then
 
1709
      if test -f /proc/isapnp; then
 
1710
        pnp=yes
 
1711
      fi
 
1712
    fi
 
1713
  fi
 
1714
  if test "$pnp" = "yes"; then
 
1715
    CONFIG_ISAPNP=y
 
1716
    AC_MSG_RESULT(yes)
 
1717
  else
 
1718
    CONFIG_ISAPNP=
 
1719
    AC_MSG_RESULT(no)
 
1720
  fi
 
1721
fi
 
1722
 
 
1723
AC_SUBST(CONFIG_ISAPNP)
 
1724
if test "$CONFIG_ISAPNP" = "y"; then
 
1725
  AC_DEFINE(CONFIG_SND_ISAPNP)
 
1726
  CONFIG_PNP=$CONFIG_ISAPNP
 
1727
  AC_DEFINE(CONFIG_SND_PNP)
 
1728
else
 
1729
  CONFIG_PNP=""
 
1730
fi
 
1731
AC_SUBST(CONFIG_PNP)
 
1732
 
 
1733
dnl Replacement for AC_TRY_COMPILE using kbuild
 
1734
AC_DEFUN([KBUILD_TRY_COMPILE], [
 
1735
dir="$(mktemp -d)"
 
1736
if test -z "$dir"; then
 
1737
  echo >&2 "failed to create temporary directory"
 
1738
  exit 1
 
1739
fi
 
1740
echo >"$dir"/test.c '[$1]
 
1741
void not_main(void)
 
1742
{
 
1743
        [$2];
 
1744
}'
 
1745
echo >"$dir"/Makefile 'obj-y += test.o
 
1746
EXTRA_CFLAGS := [$5]'
 
1747
if make -C "$CONFIG_SND_KERNELDIR" SUBDIRS="$dir" >&5 2>&1; then
 
1748
  [$3]
 
1749
else
 
1750
  [$4]
 
1751
fi
 
1752
rm -rf "$dir"
 
1753
])
 
1754
 
 
1755
dnl Check for strlcpy...
 
1756
AC_MSG_CHECKING(for strlcpy)
 
1757
strlcpy="0"
 
1758
KBUILD_TRY_COMPILE([
 
1759
#include <linux/kernel.h>
 
1760
#include <linux/string.h>
 
1761
],[
 
1762
  char buf[128];
 
1763
  strlcpy(buf, "abcd", sizeof(buf));
 
1764
],
 
1765
    AC_MSG_RESULT(yes);strlcpy="1",
 
1766
    AC_MSG_RESULT(no);strlcpy="0",
 
1767
    -Werror
 
1768
)
 
1769
CONFIG_HAVE_STRLCPY=$strlcpy
 
1770
dnl AC_SUBST(CONFIG_HAVE_STRLCPY)
 
1771
if test "$CONFIG_HAVE_STRLCPY" = "1"; then
 
1772
  AC_DEFINE(CONFIG_HAVE_STRLCPY)
 
1773
fi
 
1774
 
 
1775
dnl Check for snprintf...
 
1776
AC_MSG_CHECKING(for snprintf)
 
1777
snprintf="0"
 
1778
KBUILD_TRY_COMPILE([
 
1779
#include <linux/kernel.h>
 
1780
],[
 
1781
  char buf[128];
 
1782
  snprintf(buf, sizeof(buf), "abcd");
 
1783
],
 
1784
    AC_MSG_RESULT(yes);snprintf="1",
 
1785
    AC_MSG_RESULT(no);snprintf="0",
 
1786
    -Werror
 
1787
)
 
1788
CONFIG_HAVE_SNPRINTF=$snprintf
 
1789
dnl AC_SUBST(CONFIG_HAVE_SNPRINTF)
 
1790
if test "$CONFIG_HAVE_SNPRINTF" = "1"; then
 
1791
  AC_DEFINE(CONFIG_HAVE_SNPRINTF)
 
1792
fi
 
1793
 
 
1794
dnl Check for vsnprintf...
 
1795
AC_MSG_CHECKING(for vsnprintf)
 
1796
vsnprintf="0"
 
1797
KBUILD_TRY_COMPILE([
 
1798
#include <linux/kernel.h>
 
1799
void f(const char *fmt, ...)
 
1800
{
 
1801
  char buf[128];
 
1802
  va_list ap;
 
1803
  va_start(ap, fmt);
 
1804
  vsnprintf(buf, sizeof(buf), fmt, ap);
 
1805
  va_end(ap);
 
1806
}
 
1807
],[
 
1808
  f("abcd");
 
1809
],
 
1810
    AC_MSG_RESULT(yes);vsnprintf="1",
 
1811
    AC_MSG_RESULT(no);vsnprintf="0",
 
1812
    -Werror
 
1813
)
 
1814
CONFIG_HAVE_VSNPRINTF=$vsnprintf
 
1815
dnl AC_SUBST(CONFIG_HAVE_VSNPRINTF)
 
1816
if test "$CONFIG_HAVE_VSNPRINTF" = "1"; then
 
1817
  AC_DEFINE(CONFIG_HAVE_VSNPRINTF)
 
1818
fi
 
1819
 
 
1820
dnl Check for scnprintf...
 
1821
AC_MSG_CHECKING(for scnprintf)
 
1822
scnprintf="0"
 
1823
KBUILD_TRY_COMPILE([
 
1824
#include <linux/kernel.h>
 
1825
],[
 
1826
  char buf[128];
 
1827
  scnprintf(buf, sizeof(buf), "abcd");
 
1828
],
 
1829
    AC_MSG_RESULT(yes);scnprintf="1",
 
1830
    AC_MSG_RESULT(no);scnprintf="0",
 
1831
    -Werror
 
1832
)
 
1833
CONFIG_HAVE_SCNPRINTF=$scnprintf
 
1834
dnl AC_SUBST(CONFIG_HAVE_SCNPRINTF)
 
1835
if test "$CONFIG_HAVE_SCNPRINTF" = "1"; then
 
1836
  AC_DEFINE(CONFIG_HAVE_SCNPRINTF)
 
1837
fi
 
1838
 
 
1839
dnl Check for sscanf...
 
1840
AC_MSG_CHECKING(for sscanf)
 
1841
sscanf="0"
 
1842
KBUILD_TRY_COMPILE([
 
1843
#include <linux/kernel.h>
 
1844
],[
 
1845
  unsigned int i;
 
1846
  sscanf("2a", "%x", &i);
 
1847
],
 
1848
    AC_MSG_RESULT(yes);sscanf="1",
 
1849
    AC_MSG_RESULT(no);sscanf="0",
 
1850
    -Werror
 
1851
)
 
1852
CONFIG_HAVE_SSCANF=$sscanf
 
1853
dnl AC_SUBST(CONFIG_HAVE_SSCANF)
 
1854
if test "$CONFIG_HAVE_SSCANF" = "1"; then
 
1855
  AC_DEFINE(CONFIG_HAVE_SSCANF)
 
1856
fi
 
1857
 
 
1858
dnl Check for vmalloc_to_page...
 
1859
AC_MSG_CHECKING(for vmalloc_to_page)
 
1860
vmalloc_to_page="0"
 
1861
KBUILD_TRY_COMPILE([
 
1862
#include <linux/time.h>
 
1863
#include <linux/sched.h>
 
1864
#include <linux/interrupt.h>
 
1865
#include <linux/mm.h>
 
1866
],[
 
1867
  struct page * (*func)(void*);
 
1868
  func = vmalloc_to_page;
 
1869
],
 
1870
    AC_MSG_RESULT(yes);vmalloc_to_page="1",
 
1871
    AC_MSG_RESULT(no);vmalloc_to_page="0",
 
1872
)
 
1873
CONFIG_HAVE_VMALLOC_TO_PAGE=$vmalloc_to_page
 
1874
dnl AC_SUBST(CONFIG_HAVE_VMALLOC_TO_PAGE)
 
1875
if test "$CONFIG_HAVE_VMALLOC_TO_PAGE" = "1"; then
 
1876
  AC_DEFINE(CONFIG_HAVE_VMALLOC_TO_PAGE)
 
1877
fi
 
1878
 
 
1879
dnl Check for old kmod...
 
1880
AC_MSG_CHECKING(for old kmod)
 
1881
old_kmod="0"
 
1882
KBUILD_TRY_COMPILE([
 
1883
#include <linux/kmod.h>
 
1884
],[
 
1885
        request_module("abcd", "def", "ixj");
 
1886
],
 
1887
    AC_MSG_RESULT(no);old_kmod="0",
 
1888
    AC_MSG_RESULT(yes);old_kmod="1",
 
1889
)
 
1890
CONFIG_HAVE_OLD_REQUEST_MODULE=$old_kmod
 
1891
dnl AC_SUBST(CONFIG_HAVE_OLD_REQUEST_MODULE)
 
1892
if test "$CONFIG_HAVE_OLD_REQUEST_MODULE" = "1"; then
 
1893
  AC_DEFINE(CONFIG_HAVE_OLD_REQUEST_MODULE)
 
1894
fi
 
1895
 
 
1896
dnl Check for PDE...
 
1897
AC_MSG_CHECKING(for PDE)
 
1898
pde_defined="0"
 
1899
KBUILD_TRY_COMPILE([
 
1900
#include <linux/fs.h>
 
1901
#include <linux/proc_fs.h>
 
1902
],[
 
1903
        struct proc_dir_entry * (*func)();
 
1904
        func = PDE;
 
1905
],
 
1906
    AC_MSG_RESULT(yes);pde_defined="1",
 
1907
    AC_MSG_RESULT(no);pde_defined="0",
 
1908
)
 
1909
CONFIG_HAVE_PDE=$pde_defined
 
1910
dnl AC_SUBST(CONFIG_HAVE_PDE)
 
1911
if test "$CONFIG_HAVE_PDE" = "1"; then
 
1912
  AC_DEFINE(CONFIG_HAVE_PDE)
 
1913
fi
 
1914
 
 
1915
dnl Check for pci_consistent_set_dma_mask()
 
1916
AC_MSG_CHECKING(for pci_set_consistent_dma_mask)
 
1917
pci_consistent_defined="0"
 
1918
KBUILD_TRY_COMPILE([
 
1919
#include <linux/pci.h>
 
1920
],[
 
1921
        int (*func)();
 
1922
        func = pci_set_consistent_dma_mask;
 
1923
],
 
1924
    AC_MSG_RESULT(yes);pci_consistent_defined="1",
 
1925
    AC_MSG_RESULT(no);pci_consistent_defined="0",
 
1926
)
 
1927
CONFIG_HAVE_PCI_CONSISTENT_DMA_MASK=$pci_consistent_defined
 
1928
if test "$CONFIG_HAVE_PCI_CONSISTENT_DMA_MASK" = "1"; then
 
1929
  AC_DEFINE(CONFIG_HAVE_PCI_CONSISTENT_DMA_MASK)
 
1930
fi
 
1931
 
 
1932
dnl Check for pci_set_dev_present()
 
1933
AC_MSG_CHECKING(for pci_dev_present)
 
1934
pci_consistent_defined="0"
 
1935
KBUILD_TRY_COMPILE([
 
1936
#include <linux/pci.h>
 
1937
],[
 
1938
        int (*func)();
 
1939
        func = pci_dev_present;
 
1940
],
 
1941
    AC_MSG_RESULT(yes);pci_dev_present_defined="1",
 
1942
    AC_MSG_RESULT(no);pci_dev_present_defined="0",
 
1943
)
 
1944
CONFIG_HAVE_PCI_DEV_PRESENT=$pci_dev_present_defined
 
1945
if test "$CONFIG_HAVE_PCI_DEV_PRESENT" = "1"; then
 
1946
  AC_DEFINE(CONFIG_HAVE_PCI_DEV_PRESENT)
 
1947
fi
 
1948
 
 
1949
dnl Check for msleep
 
1950
AC_MSG_CHECKING(for msleep)
 
1951
msleep="0"
 
1952
KBUILD_TRY_COMPILE([
 
1953
#include <linux/delay.h>
 
1954
],[
 
1955
  void (*func)(unsigned int);
 
1956
  func = msleep;
 
1957
],
 
1958
    AC_MSG_RESULT(yes);msleep="1",
 
1959
    AC_MSG_RESULT(no);msleep="0",
 
1960
)
 
1961
CONFIG_HAVE_MSLEEP=$msleep
 
1962
dnl AC_SUBST(CONFIG_HAVE_MSLEEP)
 
1963
if test "$CONFIG_HAVE_MSLEEP" = "1"; then
 
1964
  AC_DEFINE(CONFIG_HAVE_MSLEEP)
 
1965
fi
 
1966
 
 
1967
dnl Check for msleep_interrupt
 
1968
if test "$CONFIG_HAVE_MSLEEP" = "1"; then
 
1969
AC_MSG_CHECKING(for msleep_interrupt)
 
1970
msleep_interrupt="0"
 
1971
KBUILD_TRY_COMPILE([
 
1972
#include <linux/delay.h>
 
1973
],[
 
1974
  unsigned long (*func)(unsigned int);
 
1975
  func = msleep_interruptible;
 
1976
],
 
1977
    AC_MSG_RESULT(yes);msleep_interruptible="1",
 
1978
    AC_MSG_RESULT(no);msleep_interruptible="0",
 
1979
)
 
1980
CONFIG_HAVE_MSLEEP_INTERRUPTIBLE=$msleep_interruptible
 
1981
dnl AC_SUBST(CONFIG_HAVE_MSLEEP_INTERRUPTIBLE)
 
1982
if test "$CONFIG_HAVE_MSLEEP_INTERRUPTIBLE" = "1"; then
 
1983
  AC_DEFINE(CONFIG_HAVE_MSLEEP_INTERRUPTIBLE)
 
1984
fi
 
1985
fi
 
1986
 
 
1987
dnl Check for msecs_to_jiffies
 
1988
AC_MSG_CHECKING(for msecs_to_jiffies)
 
1989
msecs_to_jiffies="0"
 
1990
KBUILD_TRY_COMPILE([
 
1991
#include <linux/jiffies.h>
 
1992
#include <linux/time.h>
 
1993
],[
 
1994
  unsigned int (*func)(const unsigned long);
 
1995
  func = msecs_to_jiffies;
 
1996
],
 
1997
    AC_MSG_RESULT(yes);msecs_to_jiffies="1",
 
1998
    AC_MSG_RESULT(no);msecs_to_jiffies="0",
 
1999
    -Iinclude
 
2000
)
 
2001
CONFIG_HAVE_MSECS_TO_JIFFIES=$msecs_to_jiffies
 
2002
dnl AC_SUBST(CONFIG_HAVE_MSECS_TO_JIFFIES)
 
2003
if test "$CONFIG_HAVE_MSECS_TO_JIFFIES" = "1"; then
 
2004
  AC_DEFINE(CONFIG_HAVE_MSECS_TO_JIFFIES)
 
2005
fi
 
2006
 
 
2007
dnl Check for tty->count is the atomic type
 
2008
AC_MSG_CHECKING(for tty->count is the atomic type)
 
2009
tty_count_atomic="0"
 
2010
KBUILD_TRY_COMPILE([
 
2011
#include <linux/tty.h>
 
2012
],[
 
2013
        struct tty_struct tty;
 
2014
        atomic_read(&tty.count);
 
2015
],
 
2016
    AC_MSG_RESULT(yes);tty_count_atomic="1",
 
2017
    AC_MSG_RESULT(no);tty_count_atomic="0",
 
2018
)
 
2019
CONFIG_HAVE_TTY_COUNT_ATOMIC=$tty_count_atomic
 
2020
if test "$CONFIG_HAVE_TTY_COUNT_ATOMIC" = "1"; then
 
2021
  AC_DEFINE(CONFIG_HAVE_TTY_COUNT_ATOMIC)
 
2022
fi
 
2023
 
 
2024
dnl Check for video_get_drvdata()
 
2025
if test "$CONFIG_VIDEO_DEV" = "y"; then
 
2026
AC_MSG_CHECKING(for video_get_drvdata)
 
2027
video_get_drvdata="0"
 
2028
KBUILD_TRY_COMPILE([
 
2029
#include <linux/videodev.h>
 
2030
#include "media/v4l2-dev.h"
 
2031
],[
 
2032
  void *(*func)(struct video_device *);
 
2033
  func = video_get_drvdata;
 
2034
],
 
2035
    AC_MSG_RESULT(yes);video_get_drvdata="1",
 
2036
    AC_MSG_RESULT(no);video_get_drvdata="0",
 
2037
    -Iinclude
 
2038
)
 
2039
CONFIG_HAVE_VIDEO_GET_DRVDATA=$video_get_drvdata
 
2040
dnl AC_SUBST(CONFIG_HAVE_VIDEO_GET_DRVDATA)
 
2041
if test "$CONFIG_HAVE_VIDEO_GET_DRVDATA" = "1"; then
 
2042
  AC_DEFINE(CONFIG_HAVE_VIDEO_GET_DRVDATA)
 
2043
fi
 
2044
fi
 
2045
 
 
2046
dnl Check for video_drvdata()
 
2047
if test "$CONFIG_HAVE_VIDEO_GET_DRVDATA" = "1"; then
 
2048
AC_MSG_CHECKING(for video_drvdata)
 
2049
video_drvdata="0"
 
2050
KBUILD_TRY_COMPILE([
 
2051
#include <linux/videodev.h>
 
2052
#include "media/v4l2-dev.h"
 
2053
],[
 
2054
  void *(*func)(struct file *);
 
2055
  func = video_drvdata;
 
2056
],
 
2057
    AC_MSG_RESULT(yes);video_drvdata="1",
 
2058
    AC_MSG_RESULT(no);video_drvdata="0",
 
2059
    -Iinclude
 
2060
)
 
2061
CONFIG_HAVE_VIDEO_DRVDATA=$video_drvdata
 
2062
dnl AC_SUBST(CONFIG_HAVE_VIDEO_DRVDATA)
 
2063
if test "$CONFIG_HAVE_VIDEO_DRVDATA" = "1"; then
 
2064
  AC_DEFINE(CONFIG_HAVE_VIDEO_DRVDATA)
 
2065
fi
 
2066
fi
 
2067
 
 
2068
dnl Check for CONFIG_VIDEO_V4L1
 
2069
if test "$CONFIG_VIDEO_DEV" = "y"; then
 
2070
if test "$kversion.$kpatchlevel" = "2.6" -a "$ksublevel" -gt 17; then
 
2071
CHECK_KERNEL_CONFIG(CONFIG_VIDEO_V4L1, [V4L1 layer])
 
2072
else
 
2073
CONFIG_VIDEO_V4L1="y"
 
2074
fi
 
2075
fi
 
2076
 
 
2077
dnl Check for CONFIG_VIDEO_V4L2
 
2078
if test "$CONFIG_VIDEO_DEV" = "y"; then
 
2079
if test "$kversion.$kpatchlevel" = "2.6" -a "$ksublevel" -gt 17; then
 
2080
CHECK_KERNEL_CONFIG(CONFIG_VIDEO_V4L2, [V4L2 layer])
 
2081
else
 
2082
CONFIG_VIDEO_V4L2="y"
 
2083
fi
 
2084
fi
 
2085
 
 
2086
dnl Check for old io_remap_page_range()
 
2087
AC_MSG_CHECKING(for io_remap_pfn_range)
 
2088
io_remap_pfn_range="0"
 
2089
KBUILD_TRY_COMPILE([
 
2090
#include <linux/mm.h>
 
2091
],[
 
2092
  static pgprot_t p;
 
2093
  io_remap_pfn_range(NULL, 0, 0, 0, p);
 
2094
],
 
2095
    AC_MSG_RESULT(yes);io_remap_pfn_range="1",
 
2096
    AC_MSG_RESULT(no);io_remap_pfn_range="0",
 
2097
    -Werror-implicit-function-declaration
 
2098
)
 
2099
if test "$io_remap_pfn_range" = "1"; then
 
2100
  AC_DEFINE(CONFIG_HAVE_IO_REMAP_PFN_RANGE)
 
2101
fi
 
2102
 
 
2103
if test "$io_remap_pfn_range" != "1"; then
 
2104
AC_MSG_CHECKING(for new io_remap_page_range)
 
2105
new_io_remap="0"
 
2106
KBUILD_TRY_COMPILE([
 
2107
#include <linux/mm.h>
 
2108
],[
 
2109
  static pgprot_t p;
 
2110
  io_remap_page_range(NULL, 0, 0, 0, p);
 
2111
],
 
2112
    AC_MSG_RESULT(yes);new_io_remap="1",
 
2113
    AC_MSG_RESULT(no);new_io_remap="0",
 
2114
    -Werror-implicit-function-declaration
 
2115
)
 
2116
if test "$new_io_remap" != "1"; then
 
2117
  AC_DEFINE(CONFIG_OLD_IO_REMAP_PAGE_RANGE)
 
2118
fi
 
2119
fi
 
2120
 
 
2121
dnl Check for kcalloc()
 
2122
AC_MSG_CHECKING(for kcalloc)
 
2123
kcalloc="0"
 
2124
KBUILD_TRY_COMPILE([
 
2125
#include <linux/slab.h>
 
2126
],[
 
2127
  void * (*func)(size_t, size_t, int);
 
2128
  func = kcalloc;
 
2129
],
 
2130
    AC_MSG_RESULT(yes);kcalloc="1",
 
2131
    AC_MSG_RESULT(no);kcalloc="0",
 
2132
)
 
2133
CONFIG_HAVE_KCALLOC=$kcalloc
 
2134
dnl AC_SUBST(CONFIG_HAVE_KCALLOC)
 
2135
if test "$CONFIG_HAVE_KCALLOC" = "1"; then
 
2136
  AC_DEFINE(CONFIG_HAVE_KCALLOC)
 
2137
fi
 
2138
 
 
2139
dnl Check for kstrdup()
 
2140
AC_MSG_CHECKING(for kstrdup)
 
2141
kstrdup="0"
 
2142
KBUILD_TRY_COMPILE([
 
2143
#include <linux/string.h>
 
2144
],[
 
2145
  char * (*func)(const char *, int);
 
2146
  func = kstrdup;
 
2147
],
 
2148
    AC_MSG_RESULT(yes);kstrdup="1",
 
2149
    AC_MSG_RESULT(no);kstrdup="0",
 
2150
)
 
2151
CONFIG_HAVE_KSTRDUP=$kstrdup
 
2152
dnl AC_SUBST(CONFIG_HAVE_KSTRDUP)
 
2153
if test "$CONFIG_HAVE_KSTRDUP" = "1"; then
 
2154
  AC_DEFINE(CONFIG_HAVE_KSTRDUP)
 
2155
fi
 
2156
 
 
2157
dnl Check for kstrdup()
 
2158
AC_MSG_CHECKING(for kstrndup)
 
2159
kstrdup="0"
 
2160
KBUILD_TRY_COMPILE([
 
2161
#include <linux/string.h>
 
2162
],[
 
2163
  char * (*func)(const char *, int);
 
2164
  func = kstrndup;
 
2165
],
 
2166
    AC_MSG_RESULT(yes);kstrndup="1",
 
2167
    AC_MSG_RESULT(no);kstrndup="0",
 
2168
)
 
2169
CONFIG_HAVE_KSTRNDUP=$kstrndup
 
2170
dnl AC_SUBST(CONFIG_HAVE_KSTNRDUP)
 
2171
if test "$CONFIG_HAVE_KSTRNDUP" = "1"; then
 
2172
  AC_DEFINE(CONFIG_HAVE_KSTRNDUP)
 
2173
fi
 
2174
 
 
2175
dnl Check for kzalloc()
 
2176
AC_MSG_CHECKING(for kzalloc)
 
2177
kzalloc="0"
 
2178
KBUILD_TRY_COMPILE([
 
2179
#include <linux/slab.h>
 
2180
],[
 
2181
  void * (*func)(size_t, int);
 
2182
  func = kzalloc;
 
2183
],
 
2184
    AC_MSG_RESULT(yes);kzalloc="1",
 
2185
    AC_MSG_RESULT(no);kzalloc="0",
 
2186
)
 
2187
CONFIG_HAVE_KZALLOC=$kzalloc
 
2188
dnl AC_SUBST(CONFIG_HAVE_KZALLOC)
 
2189
if test "$CONFIG_HAVE_KZALLOC" = "1"; then
 
2190
  AC_DEFINE(CONFIG_HAVE_KZALLOC)
 
2191
fi
 
2192
 
 
2193
dnl Check for create_workqueue() with flags
 
2194
if test "$kversion.$kpatchlevel" = "2.6"; then
 
2195
AC_MSG_CHECKING(for create_workqueue with flags)
 
2196
workqueue2="0"
 
2197
KBUILD_TRY_COMPILE([
 
2198
#include <linux/workqueue.h>
 
2199
],[
 
2200
    create_workqueue("abcd", 0);
 
2201
],
 
2202
    AC_MSG_RESULT(yes);workqueue2="1",
 
2203
    AC_MSG_RESULT(no);workqueue2="0",
 
2204
)
 
2205
CONFIG_CREATE_WORKQUEUE_FLAGS=$workqueue2
 
2206
dnl AC_SUBST(CONFIG_CREATE_WORKQUEUE_FLAGS)
 
2207
if test "$CONFIG_CREATE_WORKQUEUE_FLAGS" = "1"; then
 
2208
  AC_DEFINE(CONFIG_CREATE_WORKQUEUE_FLAGS)
 
2209
fi
 
2210
fi
 
2211
 
 
2212
dnl Check for pci_ioremap_bar
 
2213
AC_MSG_CHECKING(for pci_ioremap_bar)
 
2214
pci_ioremap_bar="0"
 
2215
KBUILD_TRY_COMPILE([
 
2216
#include <linux/pci.h>
 
2217
],[
 
2218
  void (*func)(struct pci_dev *, int);
 
2219
  func = pci_ioremap_bar;
 
2220
],
 
2221
    AC_MSG_RESULT(yes);pci_ioremap_bar="1",
 
2222
    AC_MSG_RESULT(no);pci_ioremap_bar="0",
 
2223
)
 
2224
CONFIG_HAVE_PCI_IOREMAP_BAR=$pci_ioremap_bar
 
2225
dnl AC_SUBST(CONFIG_HAVE_PCI_IOREMAP_BAR)
 
2226
if test "$CONFIG_HAVE_PCI_IOREMAP_BAR" = "1"; then
 
2227
  AC_DEFINE(CONFIG_HAVE_PCI_IOREMAP_BAR)
 
2228
fi
 
2229
 
 
2230
dnl Check for saved_config_space in pci_dev
 
2231
AC_MSG_CHECKING(for saved_config_space in pci_dev)
 
2232
pci_saved_config="0"
 
2233
KBUILD_TRY_COMPILE([
 
2234
#include <linux/pci.h>
 
2235
],[
 
2236
  struct pci_dev dev;
 
2237
  dev.saved_config_space[0] = 0;
 
2238
],
 
2239
    AC_MSG_RESULT(yes);pci_saved_config="1",
 
2240
    AC_MSG_RESULT(no);pci_saved_config="0",
 
2241
)
 
2242
CONFIG_HAVE_PCI_SAVED_CONFIG=$pci_saved_config
 
2243
dnl AC_SUBST(CONFIG_HAVE_PCI_SAVED_CONFIG)
 
2244
if test "$CONFIG_HAVE_PCI_SAVED_CONFIG" = "1"; then
 
2245
  AC_DEFINE(CONFIG_HAVE_PCI_SAVED_CONFIG)
 
2246
fi
 
2247
 
 
2248
if test "$CONFIG_HAVE_PCI_SAVED_CONFIG" = "1"; then
 
2249
dnl Check for new pci_save_state()
 
2250
AC_MSG_CHECKING(for new pci_save_state)
 
2251
new_pci_save_state="0"
 
2252
KBUILD_TRY_COMPILE([
 
2253
#include <linux/pci.h>
 
2254
],[
 
2255
  struct pci_dev *pci;
 
2256
  pci_save_state(pci);
 
2257
],
 
2258
    AC_MSG_RESULT(yes);new_pci_save_state="1",
 
2259
    AC_MSG_RESULT(no);new_pci_save_state="0",
 
2260
)
 
2261
if test "$new_pci_save_state" = "1"; then
 
2262
  AC_DEFINE(CONFIG_HAVE_NEW_PCI_SAVE_STATE)
 
2263
fi
 
2264
fi
 
2265
 
 
2266
dnl Check for register_sound_special_device
 
2267
AC_MSG_CHECKING(for register_sound_special_device)
 
2268
msleep="0"
 
2269
KBUILD_TRY_COMPILE([
 
2270
#include <linux/sound.h>
 
2271
],[
 
2272
  void (*func)(struct file_operations *, int, struct device *);
 
2273
  func = register_sound_special_device;
 
2274
],
 
2275
    AC_MSG_RESULT(yes);reg_sp="1",
 
2276
    AC_MSG_RESULT(no);reg_sp="0",
 
2277
)
 
2278
CONFIG_HAVE_REGISTER_SOUND_SPECIAL_DEVICE=$reg_sp
 
2279
dnl AC_SUBST(CONFIG_HAVE_REGISTER_SOUND_SPECIAL_DEVICE)
 
2280
if test "$CONFIG_HAVE_REGISTER_SOUND_SPECIAL_DEVICE" = "1"; then
 
2281
  AC_DEFINE(CONFIG_HAVE_REGISTER_SOUND_SPECIAL_DEVICE)
 
2282
fi
 
2283
 
 
2284
dnl check only on 2.2 kernel..
 
2285
if test $kpatchlevel -le 2; then
 
2286
 
 
2287
dnl Check for old kill_fasync...
 
2288
AC_MSG_CHECKING(for old kill_fasync)
 
2289
oldkfasync="0"
 
2290
KBUILD_TRY_COMPILE([
 
2291
#include <linux/fs.h>
 
2292
],[
 
2293
 struct fasync_struct *fa;
 
2294
 int sig;
 
2295
 kill_fasync(fa, sig);
 
2296
],
 
2297
    AC_MSG_RESULT(yes);oldkfasync="1",
 
2298
    AC_MSG_RESULT(no);oldkfasync="0",
 
2299
)
 
2300
CONFIG_OLD_KILL_FASYNC=$oldkfasync
 
2301
dnl AC_SUBST(CONFIG_OLD_KILL_FASYNC)
 
2302
if test "$CONFIG_OLD_KILL_FASYNC" = "1"; then
 
2303
  AC_DEFINE(CONFIG_OLD_KILL_FASYNC)
 
2304
fi
 
2305
 
 
2306
dnl Check for dma_addr_t
 
2307
AC_MSG_CHECKING(for dma_addr_t)
 
2308
dma_addr_t="0"
 
2309
KBUILD_TRY_COMPILE([
 
2310
#include <asm/types.h>
 
2311
],[
 
2312
 dma_addr_t addr;
 
2313
],
 
2314
    AC_MSG_RESULT(yes);dma_addr_t="1",
 
2315
    AC_MSG_RESULT(no);dma_addr_t="0",
 
2316
)
 
2317
CONFIG_HAVE_DMA_ADDR_T=$dma_addr_t
 
2318
dnl AC_SUBST(CONFIG_HAVE_DMA_ADDR_T)
 
2319
if test "$CONFIG_HAVE_DMA_ADDR_T" = "1"; then
 
2320
  AC_DEFINE(CONFIG_HAVE_DMA_ADDR_T)
 
2321
fi
 
2322
 
 
2323
dnl Check for MUTEX macros
 
2324
AC_MSG_CHECKING(for MUTEX macros)
 
2325
have_mutex_macros="0"
 
2326
KBUILD_TRY_COMPILE([
 
2327
#include <asm/semaphore.h>
 
2328
],[
 
2329
#ifndef init_MUTEX
 
2330
#error not defined
 
2331
#endif
 
2332
exit(0);
 
2333
],
 
2334
    AC_MSG_RESULT(yes);have_mutex_macros="1",
 
2335
    AC_MSG_RESULT(no);have_mutex_macros="0",
 
2336
)
 
2337
CONFIG_HAVE_MUTEX_MACROS=$have_mutex_macros
 
2338
dnl AC_SUBST(CONFIG_HAVE_MUTEX_MACROS)
 
2339
if test "$CONFIG_HAVE_MUTEX_MACROS" = "1"; then
 
2340
  AC_DEFINE(CONFIG_HAVE_MUTEX_MACROS)
 
2341
fi
 
2342
 
 
2343
fi
 
2344
dnl 2.2 kernel
 
2345
 
 
2346
if test "$CONFIG_ISAPNP_KERNEL" = "y"; then
 
2347
  if test -f include/linux/isapnp.h; then
 
2348
    echo "Removing local linux/isapnp.h."
 
2349
    rm include/linux/isapnp.h
 
2350
  fi
 
2351
else
 
2352
  if test ! -f include/linux/isapnp.h; then
 
2353
    echo "Symlinking <linux/isapnp.h>..."
 
2354
    mkdir -p include/linux
 
2355
    ln -sf ../../support/isapnp/isapnp.h include/linux/isapnp.h
 
2356
  fi
 
2357
fi
 
2358
 
 
2359
if test "$CONFIG_PNP_KERNEL" = "y"; then
 
2360
  if test -f include/linux/pnp.h; then
 
2361
    echo "Removing local linux/pnp.h."
 
2362
    rm include/linux/pnp.h
 
2363
  fi
 
2364
else
 
2365
  if test ! -f include/linux/pnp.h; then
 
2366
    echo "Symlinking <linux/pnp.h>..."
 
2367
    mkdir -p include/linux
 
2368
    ln -sf ../../support/pnp/pnp.h include/linux/pnp.h
 
2369
  fi
 
2370
fi
 
2371
 
 
2372
dnl Check for version...
 
2373
AC_MSG_CHECKING(for driver extra-version)
 
2374
AC_ARG_WITH(extra-version,
 
2375
  [  --with-extra-version=VERSION  specifies the extra version string],
 
2376
  extra_version="$withval", extra_version="")
 
2377
AC_MSG_RESULT($extra_version)
 
2378
if test -n "$extra_version"; then
 
2379
  CONFIG_SND_VERSION="$CONFIG_SND_VERSION"-"$extra_version"
 
2380
fi
 
2381
AC_MSG_CHECKING(for driver version)
 
2382
AC_DEFINE_UNQUOTED(CONFIG_SND_VERSION, "$CONFIG_SND_VERSION")
 
2383
AC_SUBST(CONFIG_SND_VERSION)
 
2384
CONFIG_SND_DATE=""
 
2385
AC_DEFINE_UNQUOTED(CONFIG_SND_DATE, "$CONFIG_SND_DATE")
 
2386
AC_SUBST(CONFIG_SND_DATE)
 
2387
AC_MSG_RESULT($CONFIG_SND_VERSION)
 
2388
 
 
2389
dnl Check for dynamic minors...
 
2390
AC_MSG_CHECKING(for dynamic minor numbers)
 
2391
AC_ARG_ENABLE(dynamic-minors,
 
2392
  AS_HELP_STRING([--enable-dynamic-minors],
 
2393
                 [enable dynamic minor numbers for device files (requires udev or devfs)]),
 
2394
  [dynamic_minors="$enableval"], [dynamic_minors="no"])
 
2395
if test "$dynamic_minors" = "yes"; then
 
2396
  CONFIG_SND_DYNAMIC_MINORS=y
 
2397
  AC_DEFINE(CONFIG_SND_DYNAMIC_MINORS)
 
2398
  AC_MSG_RESULT(yes)
 
2399
else
 
2400
  AC_MSG_RESULT(no)
 
2401
fi
 
2402
 
 
2403
dnl Check for sequencer support...
 
2404
AC_MSG_CHECKING(for sequencer support)
 
2405
AC_ARG_WITH(sequencer,
 
2406
  [  --with-sequencer=yes,no  driver will (not) be compiled with sequencer support],
 
2407
  sequencer="$withval", sequencer="yes")
 
2408
if test "$sequencer" = "yes"; then
 
2409
  CONFIG_SND_SEQUENCER="m"
 
2410
  AC_MSG_RESULT(yes)
 
2411
else
 
2412
  AC_MSG_RESULT(no)
 
2413
fi
 
2414
 
 
2415
dnl Check for OSS/Free emulation...
 
2416
AC_MSG_CHECKING(for OSS/Free emulation)
 
2417
AC_ARG_WITH(oss,
 
2418
  [  --with-oss=no,yes       driver will (not) be compiled with OSS/Free emulation],
 
2419
  ossemul="$withval", ossemul="yes")
 
2420
if test "$ossemul" = "yes"; then
 
2421
  CONFIG_SND_OSSEMUL="y"
 
2422
  CONFIG_SND_MIXER_OSS="m"
 
2423
  CONFIG_SND_PCM_OSS="m"
 
2424
  CONFIG_SND_PCM="m"
 
2425
  CONFIG_SND_TIMER="m"
 
2426
  if test "$CONFIG_SND_SEQUENCER" = "m"; then
 
2427
    CONFIG_SND_SEQUENCER_OSS="y"
 
2428
  fi
 
2429
  AC_MSG_RESULT(yes)
 
2430
else
 
2431
  AC_MSG_RESULT(no)
 
2432
fi
 
2433
 
 
2434
if test "$CONFIG_SND_OSSEMUL" = "y"; then
 
2435
 
 
2436
dnl Check for OSS PCM plugin system inclusion...
 
2437
AC_MSG_CHECKING(for OSS PCM plugin system inclusion)
 
2438
AC_ARG_WITH(pcm-oss-plugins,
 
2439
  [  --with-pcm-oss-plugins=no,yes       driver will (not) be compiled with OSS PCM plugins],
 
2440
  ossemulplugins="$withval", ossemulplugins="yes")
 
2441
if test "$ossemulplugins" = "yes"; then
 
2442
  CONFIG_SND_PCM_OSS_PLUGINS="y"
 
2443
  AC_MSG_RESULT(yes)
 
2444
else
 
2445
  AC_MSG_RESULT(no)
 
2446
fi
 
2447
 
 
2448
fi
 
2449
 
 
2450
dnl Check for RTC timer support...
 
2451
CHECK_KERNEL_CONFIG(CONFIG_RTC, [RTC support])
 
2452
AC_SUBST(CONFIG_RTC)
 
2453
 
 
2454
dnl Check for HPET support
 
2455
CHECK_KERNEL_CONFIG(CONFIG_HPET, [HPET support])
 
2456
AC_SUBST(CONFIG_HPET)
 
2457
 
 
2458
dnl Check for procfs
 
2459
CHECK_KERNEL_CONFIG(CONFIG_PROC_FS, [Procfs support])
 
2460
AC_SUBST(CONFIG_PROC_FS)
 
2461
 
 
2462
dnl Check for USB
 
2463
CHECK_KERNEL_CONFIG(CONFIG_USB, [USB support])
 
2464
if test "$CONFIG_USB" != "y"; then
 
2465
  CHECK_KERNEL_CONFIG(CONFIG_USB_MODULE, [USB module support])
 
2466
  CONFIG_USB=$CONFIG_USB_MODULE
 
2467
fi
 
2468
AC_SUBST(CONFIG_USB)
 
2469
 
 
2470
if test -n "$CONFIG_USB"; then
 
2471
  CHECK_KERNEL_HEADER(linux/usb/audio-v2.h, [#include \"usb_audio_v2_compat.h\"
 
2472
  ])
 
2473
  CHECK_KERNEL_HEADER(linux/usb/audio.h, [#include \"usb_audio_compat.h\"
 
2474
  ])
 
2475
  AC_MSG_CHECKING([for valid v1 in linux/usb/audio.h])
 
2476
  usb_audio_valid="0"
 
2477
  ac_save_CFLAGS="$CFLAGS"
 
2478
  ac_save_CC="$CC"
 
2479
  CFLAGS="$KERNEL_CHECK_CFLAGS"
 
2480
  CC=$KCC
 
2481
  AC_TRY_COMPILE([
 
2482
#define __KERNEL__
 
2483
#ifdef CONFIG_HAVE_DEPRECATED_CONFIG_H
 
2484
#include <$INCLUDE_AUTOCONF_H>
 
2485
#else
 
2486
#include <linux/config.h>
 
2487
#endif
 
2488
#include <linux/usb/audio.h>
 
2489
],[
 
2490
  struct uac_as_header_descriptor_v1 tmp;
 
2491
  tmp.bLength = 0;
 
2492
],
 
2493
   AC_MSG_RESULT(yes);usb_audio_valid="1",
 
2494
   AC_MSG_RESULT(no);usb_audio_valid="0",
 
2495
   AC_MSG_RESULT(unknown);usb_audio_valid="0"
 
2496
)
 
2497
  if test "$usb_audio_valid" = "1"; then
 
2498
    AC_MSG_CHECKING([for invalid v2 in linux/usb/audio.h])
 
2499
    AC_TRY_COMPILE([
 
2500
#define __KERNEL__
 
2501
#ifdef CONFIG_HAVE_DEPRECATED_CONFIG_H
 
2502
#include <$INCLUDE_AUTOCONF_H>
 
2503
#else
 
2504
#include <linux/config.h>
 
2505
#endif
 
2506
#include <linux/usb/audio.h>
 
2507
],[
 
2508
  struct uac_as_header_descriptor_v2 tmp;
 
2509
  tmp.bLength = 0;
 
2510
],
 
2511
   AC_MSG_RESULT(yes);usb_audio_valid="0",
 
2512
   AC_MSG_RESULT(no);usb_audio_valid="1",
 
2513
   AC_MSG_RESULT(unknown);usb_audio_valid="0"
 
2514
)
 
2515
  fi
 
2516
  CFLAGS=$ac_save_CFLAGS
 
2517
  CC=$ac_save_CC
 
2518
  if test "$usb_audio_valid" != "1"; then
 
2519
    mkdir -p include/linux/usb
 
2520
    echo "Creating <linux/usb/audio.h>..."
 
2521
    echo "#include \"usb_audio_compat.h\"" > include/linux/usb/audio.h
 
2522
  fi
 
2523
 
 
2524
  CHECK_KERNEL_HEADER(linux/usb/ch9.h)
 
2525
fi
 
2526
 
 
2527
dnl class_simple for old 2.6 kernels
 
2528
if test "$kversion.$kpatchlevel" = "2.6"; then
 
2529
  AC_MSG_CHECKING(for class_simple)
 
2530
  class_simple="0"
 
2531
  KBUILD_TRY_COMPILE([
 
2532
#include <linux/device.h>
 
2533
],[
 
2534
  struct class_simple *(*foo)(struct module *, char *) = class_simple_create;
 
2535
  foo(NULL,NULL);
 
2536
],
 
2537
    AC_MSG_RESULT(yes);class_simple="1",
 
2538
    AC_MSG_RESULT(no);class_simple="0",
 
2539
)
 
2540
  CONFIG_SND_HAVE_CLASS_SIMPLE=$class_simple
 
2541
  dnl AC_SUBST(CONFIG_SND_HAVE_CLASS_SIMPLE)
 
2542
  if test "$CONFIG_SND_HAVE_CLASS_SIMPLE" = "1"; then
 
2543
    AC_DEFINE(CONFIG_SND_HAVE_CLASS_SIMPLE)
 
2544
  fi
 
2545
fi
 
2546
 
 
2547
dnl simplified suspend/resume for 2.6.14+
 
2548
if test "$kversion.$kpatchlevel" = "2.6"; then
 
2549
  AC_MSG_CHECKING(for old driver suspend/resume callbacks)
 
2550
  old_driver_suspend="0"
 
2551
  KBUILD_TRY_COMPILE([
 
2552
#include <linux/device.h>
 
2553
],[
 
2554
  static struct device_driver driver;
 
2555
  driver.resume(NULL, 0);
 
2556
],
 
2557
    AC_MSG_RESULT(yes);old_driver_suspend="1",
 
2558
    AC_MSG_RESULT(no);old_driver_suspend="0",
 
2559
)
 
2560
  CONFIG_SND_OLD_DRIVER_SUSPEND=$old_driver_suspend
 
2561
  dnl AC_SUBST(CONFIG_SND_OLD_DRIVER_SUSPEND)
 
2562
  if test "$CONFIG_SND_OLD_DRIVER_SUSPEND" = "1"; then
 
2563
    AC_DEFINE(CONFIG_SND_OLD_DRIVER_SUSPEND)
 
2564
  fi
 
2565
fi
 
2566
 
 
2567
dnl removal of page-reservation for nopage/mmap (for 2.6.14+)
 
2568
if test "$kversion.$kpatchlevel" = "2.6"; then
 
2569
  AC_MSG_CHECKING(for removal of page-reservation for nopage/mmap)
 
2570
  remove_page_reserve="0"
 
2571
  KBUILD_TRY_COMPILE([
 
2572
#include <linux/mm.h>
 
2573
],[
 
2574
  void (*func)(struct vm_area_struct *, pte_t, unsigned long) = print_bad_pte;
 
2575
],
 
2576
    AC_MSG_RESULT(yes);remove_page_reserve="1",
 
2577
    AC_MSG_RESULT(no);remove_page_reserve="0",
 
2578
)
 
2579
  CONFIG_SND_REMOVE_PAGE_RESERVE=$remove_page_reserve
 
2580
  dnl AC_SUBST(CONFIG_SND_REMOVE_PAGE_RESERVE)
 
2581
  if test "$CONFIG_SND_REMOVE_PAGE_RESERVE" = "1"; then
 
2582
    AC_DEFINE(CONFIG_SND_REMOVE_PAGE_RESERVE)
 
2583
  fi
 
2584
fi
 
2585
 
 
2586
dnl nested class_device for 2.6.14+
 
2587
if test "$kversion.$kpatchlevel" = "2.6"; then
 
2588
  AC_MSG_CHECKING(for nested class_device)
 
2589
  nested_class_device="0"
 
2590
  KBUILD_TRY_COMPILE([
 
2591
#include <linux/device.h>
 
2592
],[
 
2593
  struct class_device dev;
 
2594
  dev.parent = 0;
 
2595
],
 
2596
    AC_MSG_RESULT(yes);nested_class_device="1",
 
2597
    AC_MSG_RESULT(no);nested_class_device="0",
 
2598
)
 
2599
  CONFIG_SND_NESTED_CLASS_DEVICE=$nested_class_device
 
2600
  dnl AC_SUBST(CONFIG_SND_NESTED_CLASS_DEVICE)
 
2601
  if test "$CONFIG_SND_NESTED_CLASS_DEVICE" = "1"; then
 
2602
    AC_DEFINE(CONFIG_SND_NESTED_CLASS_DEVICE)
 
2603
  fi
 
2604
fi
 
2605
 
 
2606
dnl new IRQ handler (2.6.19-rc2)
 
2607
if test "$kversion.$kpatchlevel" = "2.6"; then
 
2608
  AC_MSG_CHECKING(for new IRQ handler)
 
2609
  new_irq_handler="0"
 
2610
  KBUILD_TRY_COMPILE([
 
2611
#include <linux/interrupt.h>
 
2612
],[
 
2613
  irq_handler_t handle = 0;
 
2614
  handle(0, 0);
 
2615
],
 
2616
    AC_MSG_RESULT(yes);new_irq_handler="1",
 
2617
    AC_MSG_RESULT(no);new_irq_handler="0",
 
2618
)
 
2619
  CONFIG_SND_NEW_IRQ_HANDLER=$new_irq_handler
 
2620
  dnl AC_SUBST(CONFIG_SND_NEW_IRQ_HANDLER)
 
2621
  if test "$CONFIG_SND_NEW_IRQ_HANDLER" = "1"; then
 
2622
    AC_DEFINE(CONFIG_SND_NEW_IRQ_HANDLER)
 
2623
  fi
 
2624
fi
 
2625
 
 
2626
dnl Check for gfp_t...
 
2627
AC_MSG_CHECKING(for gfp_t)
 
2628
gfp_t="0"
 
2629
KBUILD_TRY_COMPILE([
 
2630
#include <linux/types.h>
 
2631
#include <linux/gfp.h>
 
2632
],[
 
2633
  gfp_t flags = 0;
 
2634
],
 
2635
    AC_MSG_RESULT(yes);gfp_t="1",
 
2636
    AC_MSG_RESULT(no);gfp_t="0",
 
2637
)
 
2638
CONFIG_HAVE_GFP_T=$gfp_t
 
2639
dnl AC_SUBST(CONFIG_HAVE_GFP_T)
 
2640
if test "$CONFIG_HAVE_GFP_T" = "1"; then
 
2641
  AC_DEFINE(CONFIG_HAVE_GFP_T)
 
2642
fi
 
2643
 
 
2644
dnl Check for GFP_DMA32...
 
2645
AC_MSG_CHECKING(for GFP_DMA32)
 
2646
gfp_dma32="0"
 
2647
KBUILD_TRY_COMPILE([
 
2648
#include <linux/types.h>
 
2649
#include <linux/gfp.h>
 
2650
],[
 
2651
   int flags = GFP_DMA32;
 
2652
],
 
2653
    AC_MSG_RESULT(yes);gfp_dma32="1",
 
2654
    AC_MSG_RESULT(no);gfp_dma32="0",
 
2655
)
 
2656
CONFIG_HAVE_GFP_DMA32=$gfp_dma32
 
2657
dnl AC_SUBST(CONFIG_HAVE_GFP_DMA32)
 
2658
if test "$CONFIG_HAVE_GFP_DMA32" = "1"; then
 
2659
  AC_DEFINE(CONFIG_HAVE_GFP_DMA32)
 
2660
fi
 
2661
 
 
2662
dnl Check for page_to_pfn...
 
2663
AC_MSG_CHECKING(for page_to_pfn)
 
2664
page_to_pfn="0"
 
2665
KBUILD_TRY_COMPILE([
 
2666
#include <linux/types.h>
 
2667
#include <linux/mm.h>
 
2668
],[
 
2669
   struct page *page = NULL;
 
2670
   unsigned int a = page_to_pfn(page);
 
2671
   page = (struct page *)a;
 
2672
],
 
2673
    AC_MSG_RESULT(yes);page_to_pfn="1",
 
2674
    AC_MSG_RESULT(no);page_to_pfn="0",
 
2675
)
 
2676
CONFIG_HAVE_PAGE_TO_PFN=$page_to_pfn
 
2677
dnl AC_SUBST(CONFIG_HAVE_PAGE_TO_PFN)
 
2678
if test "$CONFIG_HAVE_PAGE_TO_PFN" = "1"; then
 
2679
  AC_DEFINE(CONFIG_HAVE_PAGE_TO_PFN)
 
2680
fi
 
2681
 
 
2682
dnl Check for init_utsname...
 
2683
if test "$kversion.$kpatchlevel" = "2.6" -a $ksublevel -ge 19; then
 
2684
  CONFIG_HAVE_INIT_UTSNAME=1
 
2685
else
 
2686
AC_MSG_CHECKING(for init_utsname)
 
2687
  init_utsname="0"
 
2688
  KBUILD_TRY_COMPILE([
 
2689
#include <linux/utsname.h>
 
2690
],[
 
2691
  int *x = (int *)init_utsname();
 
2692
  *x = 0;
 
2693
],
 
2694
    AC_MSG_RESULT(yes);init_utsname="1",
 
2695
    AC_MSG_RESULT(no);init_utsname="0",
 
2696
    -Werror
 
2697
)
 
2698
  CONFIG_HAVE_INIT_UTSNAME=$init_utsname
 
2699
fi
 
2700
dnl AC_SUBST(CONFIG_HAVE_INIT_UTSNAME)
 
2701
if test "$CONFIG_HAVE_INIT_UTSNAME" = "1"; then
 
2702
  AC_DEFINE(CONFIG_HAVE_INIT_UTSNAME)
 
2703
fi
 
2704
 
 
2705
dnl Check for is_power_of_2...
 
2706
if test "$kversion.$kpatchlevel" = "2.6" -a $ksublevel -ge 21; then
 
2707
  CONFIG_HAVE_IS_POWER_OF_2=1
 
2708
else
 
2709
AC_MSG_CHECKING(for is_power_of_2)
 
2710
  is_power_of_2="0"
 
2711
  KBUILD_TRY_COMPILE([
 
2712
#include <linux/log2.h>
 
2713
],[
 
2714
  int a = is_power_of_2(2);
 
2715
  a = 2;
 
2716
],
 
2717
    AC_MSG_RESULT(yes);is_power_of_2="1",
 
2718
    AC_MSG_RESULT(no);is_power_of_2="0",
 
2719
    -Werror
 
2720
)
 
2721
  CONFIG_HAVE_IS_POWER_OF_2=$is_power_of_2
 
2722
fi
 
2723
dnl AC_SUBST(CONFIG_HAVE_IS_POWER_OF_2)
 
2724
if test "$CONFIG_HAVE_IS_POWER_OF_2" = "1"; then
 
2725
  AC_DEFINE(CONFIG_HAVE_IS_POWER_OF_2)
 
2726
fi
 
2727
 
 
2728
dnl __ffs support?
 
2729
if test "$kversion.$kpatchlevel" = "2.6"; then
 
2730
  CONFIG_HAVE_FFS=1
 
2731
else
 
2732
  AC_MSG_CHECKING(for __ffs)
 
2733
  have_ffs="0"
 
2734
  KBUILD_TRY_COMPILE([
 
2735
#include <linux/bitops.h>
 
2736
],[
 
2737
  unsigned long (*x)(unsigned long);
 
2738
  x = __ffs;
 
2739
],
 
2740
    AC_MSG_RESULT(yes);have_ffs="1",
 
2741
    AC_MSG_RESULT(no);have_ffs="0",
 
2742
)
 
2743
  CONFIG_HAVE_FFS=$have_ffs
 
2744
fi
 
2745
dnl AC_SUBST(CONFIG_HAVE_FFS)
 
2746
if test "$CONFIG_HAVE_FFS" = "1"; then
 
2747
  AC_DEFINE(CONFIG_HAVE_FFS)
 
2748
fi
 
2749
 
 
2750
dnl PnP supports suspend/resume?
 
2751
if test "$CONFIG_PNP_KERNEL" = "y"; then
 
2752
  AC_MSG_CHECKING(for PnP suspend/resume)
 
2753
  pnp_suspend="0"
 
2754
  KBUILD_TRY_COMPILE([
 
2755
#include <linux/pnp.h>
 
2756
],[
 
2757
  struct pnp_driver pnp;
 
2758
  pnp.suspend = 0;
 
2759
],
 
2760
    AC_MSG_RESULT(yes);pnp_suspend="1",
 
2761
    AC_MSG_RESULT(no);pnp_suspend="0",
 
2762
)
 
2763
  CONFIG_HAVE_PNP_SUSPEND=$pnp_suspend
 
2764
  dnl AC_SUBST(CONFIG_HAVE_PNP_SUSPEND)
 
2765
  if test "$CONFIG_HAVE_PNP_SUSPEND" = "1"; then
 
2766
    AC_DEFINE(CONFIG_HAVE_PNP_SUSPEND)
 
2767
  fi
 
2768
fi
 
2769
 
 
2770
dnl device_create_drvdata
 
2771
if test "$kversion.$kpatchlevel" = "2.6"; then
 
2772
  AC_MSG_CHECKING(for device_create_drvdata)
 
2773
  device_create_drvdata="0"
 
2774
  KBUILD_TRY_COMPILE([
 
2775
#include <linux/device.h>
 
2776
],[
 
2777
  struct device *(*foo)() = device_create_drvdata;
 
2778
],
 
2779
    AC_MSG_RESULT(yes);device_create_drvdata="1",
 
2780
    AC_MSG_RESULT(no);device_create_drvdata="0",
 
2781
)
 
2782
  CONFIG_SND_HAS_DEVICE_CREATE_DRVDATA=$device_create_drvdata
 
2783
  if test "$CONFIG_SND_HAS_DEVICE_CREATE_DRVDATA" = "1"; then
 
2784
    AC_DEFINE(CONFIG_SND_HAS_DEVICE_CREATE_DRVDATA)
 
2785
  fi
 
2786
fi
 
2787
 
 
2788
 
 
2789
dnl New unlocked/compat_ioctl
 
2790
if test "$kversion.$kpatchlevel" = "2.6"; then
 
2791
  AC_MSG_CHECKING(for new unlocked/compat_ioctl)
 
2792
  new_ioctl="0"
 
2793
  KBUILD_TRY_COMPILE([
 
2794
#include <linux/fs.h>
 
2795
],[
 
2796
  struct file_operations ops;
 
2797
  ops.unlocked_ioctl = NULL;
 
2798
  ops.compat_ioctl = NULL;
 
2799
],
 
2800
    AC_MSG_RESULT(yes);new_ioctl="1",
 
2801
    AC_MSG_RESULT(no);new_ioctl="0",
 
2802
)
 
2803
  CONFIG_SND_HAVE_NEW_IOCTL=$new_ioctl
 
2804
  dnl AC_SUBST(CONFIG_SND_HAVE_NEW_IOCTL)
 
2805
  if test "$CONFIG_SND_HAVE_NEW_IOCTL" = "1"; then
 
2806
    AC_DEFINE(CONFIG_SND_HAVE_NEW_IOCTL)
 
2807
    CONFIG_SND_BIT32_EMUL=    
 
2808
  fi
 
2809
fi
 
2810
 
 
2811
dnl compiler support for _Bool
 
2812
AC_MSG_CHECKING(for builtin _Bool support)
 
2813
builtin_bool="0"
 
2814
KBUILD_TRY_COMPILE([],[
 
2815
  _Bool b;
 
2816
  b = (_Bool)0;
 
2817
],
 
2818
  AC_MSG_RESULT(yes);builtin_bool="1",
 
2819
  AC_MSG_RESULT(no);builtin_bool="0",
 
2820
)
 
2821
CONFIG_SND_HAS_BUILTIN_BOOL=$builtin_bool
 
2822
if test "$CONFIG_SND_HAS_BUILTIN_BOOL" = "1"; then
 
2823
  AC_DEFINE(CONFIG_SND_HAS_BUILTIN_BOOL)
 
2824
fi
 
2825
 
 
2826
AC_SUBST(CONFIG_SND_BIT32_EMUL)
 
2827
test "$CONFIG_SND_BIT32_EMUL" = "m" && AC_DEFINE(CONFIG_SND_BIT32_EMUL_MODULE)
 
2828
 
 
2829
CHECK_KERNEL_CONFIG(CONFIG_X86_PC, [x86-compatible PC])
 
2830
AC_SUBST(CONFIG_X86_PC)
 
2831
dnl need kernel version >= 2.6.22 for the proper high-res timers support
 
2832
if test "$kversion" -ge 2 -a "$kpatchlevel" -ge 6 -a "$ksublevel" -ge 22; then
 
2833
    CHECK_KERNEL_CONFIG(CONFIG_HIGH_RES_TIMERS, [High-Res timers])
 
2834
    AC_SUBST(CONFIG_HIGH_RES_TIMERS)
 
2835
fi
 
2836
 
 
2837
dnl PCMCIA stuff
 
2838
AC_ARG_WITH(pcmcia,
 
2839
  [  --with-pcmcia=kernel,external   support kernel PCMCIA driver or external PCMCIA driver],
 
2840
  pcmcia="$withval", pcmcia="kernel")
 
2841
AC_ARG_WITH(pcmcia_root,
 
2842
  [  --with-pcmcia-root=dir  specify the root directory of external PCMCIA source-tree],
 
2843
  pcmciaroot="$withval", pcmciaroot="")
 
2844
EXTRA_INCLUDES=""
 
2845
if test "$pcmcia" = "kernel"; then
 
2846
  echo "checking for kernel PCMCIA"
 
2847
  CHECK_KERNEL_CONFIG(CONFIG_PCMCIA, [PCMCIA support])
 
2848
  if test "$CONFIG_PCMCIA" != "y"; then
 
2849
    CHECK_KERNEL_CONFIG(CONFIG_PCMCIA_MODULE, [PCMCIA module support])
 
2850
    CONFIG_PCMCIA=$CONFIG_PCMCIA_MODULE
 
2851
  fi
 
2852
else
 
2853
  echo "checking for external PCMCIA"
 
2854
  if test "$pcmciaroot" = ""; then
 
2855
    AC_MSG_ERROR(Please set the PCMCIA root directory via --with-pcmcia-root option)
 
2856
  fi
 
2857
  if test ! -d "$pcmciaroot"; then
 
2858
    AC_MSG_ERROR(PCMCIA root $pcmciaroot is not a directory)
 
2859
  fi
 
2860
  echo "PCMCIA root directory is $pcmciaroot"
 
2861
  EXTRA_INCLUDES="-I$pcmciaroot/include"
 
2862
  CONFIG_PCMCIA=y
 
2863
fi
 
2864
  
 
2865
AC_SUBST(CONFIG_PCMCIA)
 
2866
 
 
2867
dnl Check for PC98 architecture support...
 
2868
CHECK_KERNEL_CONFIG(CONFIG_X86_PC9800, [PC9800 support in kernel])
 
2869
AC_SUBST(CONFIG_X86_PC9800)
 
2870
 
 
2871
dnl Check for parallel port support
 
2872
if test "$kversion.$kpatchlevel" = "2.2"; then
 
2873
  CONFIG_PARPORT=""
 
2874
else
 
2875
  CHECK_KERNEL_CONFIG(CONFIG_PARPORT, [parallel port support])
 
2876
  if test "$CONFIG_PARPORT" != "y"; then
 
2877
    CHECK_KERNEL_CONFIG(CONFIG_PARPORT_MODULE, [parallel port module support])
 
2878
    CONFIG_PARPORT=$CONFIG_PARPORT_MODULE
 
2879
  fi
 
2880
fi
 
2881
AC_SUBST(CONFIG_PARPORT)
 
2882
 
 
2883
dnl Check for PM
 
2884
if test "$kversion.$kpatchlevel" = "2.2"; then
 
2885
  CONFIG_PM="y"
 
2886
else
 
2887
  CHECK_KERNEL_CONFIG(CONFIG_PM, [power management])
 
2888
fi
 
2889
AC_SUBST(CONFIG_PM)
 
2890
 
 
2891
dnl Check for CONFIG_HAS_DMA
 
2892
if test $kpatchlevel -ge 6 -a $ksublevel -ge 23; then
 
2893
  CHECK_KERNEL_CONFIG(CONFIG_HAS_DMA, [CONFIG_HAS_DMA])
 
2894
else
 
2895
  CONFIG_HAS_DMA=y
 
2896
fi
 
2897
AC_SUBST(CONFIG_HAS_DMA)
 
2898
 
 
2899
dnl Check for which cards to compile driver for...
 
2900
CONFIG_SOUND=m
 
2901
ALSA_TOPLEVEL_SELECT
 
2902
 
 
2903
dnl Parse Kconfigs
 
2904
ALSA_PARSE_KCONFIG
 
2905
 
 
2906
dnl Define our config symbols
 
2907
ALSA_TOPLEVEL_DEFINES
 
2908
 
 
2909
dnl OSS emulations
 
2910
if test "$CONFIG_SND_OSSEMUL" = "y"; then
 
2911
  CONFIG_SND_MIXER_OSS="$CONFIG_SND"
 
2912
  CONFIG_SND_PCM_OSS="$CONFIG_SND_PCM"
 
2913
  if test -n "$CONFIG_SND_SEQUENCER"; then
 
2914
    CONFIG_SND_SEQUENCER_OSS="y"
 
2915
  fi
 
2916
fi
 
2917
 
 
2918
dnl Output all stuffs
 
2919
ALSA_TOPLEVEL_OUTPUT
 
2920
 
 
2921
dnl Some late substitutes...
 
2922
c_opts="$c_opts -DLINUX"
 
2923
m_opts=""
 
2924
if test -r /etc/asound/make_opts; then
 
2925
  m_opts="$m_opts `cat /etc/asound/make_opts`"
 
2926
fi
 
2927
AC_SUBST(c_opts)
 
2928
AC_SUBST(m_opts)
 
2929
AC_SUBST(GENKSYMS)
 
2930
AC_SUBST(EXTRA_INCLUDES)
 
2931
AC_SUBST(KERNEL_INC)
 
2932
 
 
2933
dnl Output files...
 
2934
AC_OUTPUT(version Makefile.conf snddevices \
 
2935
          utils/alsa-driver.spec utils/buildrpm toplevel.config \
 
2936
          utils/alsasound utils/alsasound.posix \
 
2937
          include/pci_ids_compat.h include/i2c-id_compat.h)
 
2938
 
 
2939
dnl Make right rights for scripts
 
2940
chmod 755 $srcdir/snddevices
 
2941
 
 
2942
dnl Hack pci_ids.h and i2c-id.h if necessary
 
2943
mkdir -p include/linux
 
2944
ln -sf ../pci_ids_compat.h include/linux/pci_ids.h
 
2945
ln -sf ../i2c-id_compat.h include/linux/i2c-id.h
 
2946
 
 
2947
dnl Hack autoconf.h if necessary
 
2948
if test "$CONFIG_SND_MODULE" = y; then
 
2949
  echo "Hacking autoconf.h..."
 
2950
  rm -f include/linux/autoconf.h include/generated/autoconf.h
 
2951
  mkdir -p include/linux include/generated
 
2952
  if test -n "$kernelbuild" -a -r $kernelbuild/include/$INCLUDE_AUTOCONF_H ; then
 
2953
    kernconf="$kernelbuild/include/$INCLUDE_AUTOCONF_H"
 
2954
  elif test -r  $CONFIG_SND_KERNELSRC/include/$INCLUDE_AUTOCONF_H ; then
 
2955
    kernconf="$CONFIG_SND_KERNELSRC/include/$INCLUDE_AUTOCONF_H"
 
2956
  else
 
2957
      cat << EOF
 
2958
File include/$INCLUDE_AUTOCONF_H does not exist in kernel tree.
 
2959
Fatal error - aborting...
 
2960
EOF
 
2961
      exit 1
 
2962
  fi
 
2963
  grep -v CONFIG_SND_ $kernconf > include/$INCLUDE_AUTOCONF_H
 
2964
  cat include/autoconf-extra.h include/config1.h | grep CONFIG_SND \
 
2965
    | sed -e's@/\* #undef \([A-Za-z0-9_]\+\) .*$@#undef \1@g' \
 
2966
      >> include/$INCLUDE_AUTOCONF_H
 
2967
else
 
2968
  rm -f include/$INCLUDE_AUTOCONF_H
 
2969
fi
 
2970
 
 
2971
dnl avoid changing include/sound/version.h
 
2972
if test "$update_version" != "yes"; then
 
2973
  touch alsa-kernel/include/version.h
 
2974
fi