summaryrefslogtreecommitdiff
path: root/configure.ac
blob: 0ad7b372c02e4fb43184aca187d2122eea35c056 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
# Process this file with autoconf to produce a configure script.
AC_INIT(RtAudio, 3.0, gary@ccrma.stanford.edu, rtaudio)
AC_CONFIG_SRCDIR(RtAudio.cpp)
AC_CONFIG_FILES(tests/Makefile)

# Fill GXX with something before test.
AC_SUBST( GXX, ["no"] )

# Checks for programs.
AC_PROG_CC
AC_PROG_CXX(g++ CC c++ cxx)

# Checks for libraries.
AC_CHECK_LIB(pthread, pthread_create, , AC_MSG_ERROR(RtAudio requires the pthread library!))

# Checks for header files.
AC_HEADER_STDC
AC_CHECK_HEADERS(sys/ioctl.h unistd.h)

# Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST

# Check for debug
AC_MSG_CHECKING(whether to compile debug version)
AC_ARG_ENABLE(debug,
  [  --enable-debug = enable various debug output],
  [AC_SUBST( debug, [-D__RTAUDIO_DEBUG__] ) AC_SUBST( cflags, [-g] ) AC_SUBST( object_path, [Debug] ) AC_MSG_RESULT(yes)],
  [AC_SUBST( debug, [] ) AC_SUBST( cflags, [-O2] ) AC_SUBST( object_path, [Release] ) AC_MSG_RESULT(no)])

# Check compiler and use -Wall if gnu.
if [test $GXX = "yes" ;] then
  AC_SUBST( warn, [-Wall] )
fi

# Checks for package options and external software
AC_CANONICAL_HOST
AC_MSG_CHECKING(for audio API)
case $host in
  *-*-linux*)
  AC_SUBST( sound_api, [_NO_API_] )
  AC_ARG_WITH(jack, [  --with-jack = choose JACK server support (linux only)], [AC_SUBST( sound_api, [-D__LINUX_JACK__] ) AC_MSG_RESULT(using JACK)], )
  if [test $sound_api = -D__LINUX_JACK__;] then
    TEMP_LIBS=$LIBS
    AC_CHECK_LIB(jack, jack_client_new, , AC_MSG_ERROR(JACK support requires the jack library!))
    AC_CHECK_LIB(asound, snd_pcm_open, , AC_MSG_ERROR(Jack support also requires the asound library!))
    LIBS="`pkg-config --cflags --libs jack` $TEMP_LIBS -lasound"
    audio_apis="-D__LINUX_JACK__"
  fi

  # Look for Alsa flag
  AC_ARG_WITH(alsa, [  --with-alsa = choose native ALSA API support (linux only)], [AC_SUBST( sound_api, [-D__LINUX_ALSA__] ) AC_MSG_RESULT(using ALSA)], )
  if [test $sound_api = -D__LINUX_ALSA__;] then
    AC_CHECK_LIB(asound, snd_pcm_open, , AC_MSG_ERROR(ALSA support requires the asound library!))
    audio_apis="-D__LINUX_ALSA__ $audio_apis"
  fi

  # Look for OSS flag
  AC_ARG_WITH(oss, [  --with-oss = choose OSS API support (linux only)], [AC_SUBST( sound_api, [-D__LINUX_OSS__] ) AC_MSG_RESULT(using OSS)], )
  if test $sound_api = -D__LINUX_OSS__; then
    audio_apis="-D__LINUX_OSS__ $audio_apis"
  fi

  # If no audio api flags specified, use OSS
  if [test $sound_api = _NO_API_;] then
    AC_SUBST( sound_api, [-D__LINUX_OSS__] )
    AC_MSG_RESULT(using OSS)
    AC_SUBST( audio_apis, [-D__LINUX_OSS__] )
  fi
  ;;

  *-sgi*)
  AC_SUBST( audio_apis, ["-D__IRIX_AL__ -LANG:std -w"] )
  AC_MSG_RESULT(using IRIX AL)
  AC_CHECK_LIB(audio, alOpenPort, , AC_MSG_ERROR(IRIX audio support requires the audio library!) )
  ;;

  *-apple*)
  # Check for CoreAudio framework
  AC_CHECK_HEADER(CoreAudio/CoreAudio.h,
    [AC_SUBST( audio_apis, [-D__MACOSX_CORE__] )],
    [AC_MSG_ERROR(CoreAudio header files not found!)] )
  AC_SUBST( frameworks, ["-framework CoreAudio"] )
  AC_CHECK_LIB(stdc++, printf, , AC_MSG_ERROR(RtAudio requires the C++ library!) )
  ;;

  *)
  # Default case for unknown realtime systems.
  AC_MSG_ERROR(Unknown system type for realtime support!)
  ;;
esac

# Checks for library functions.
AC_PROG_GCC_TRADITIONAL

AC_OUTPUT