1dnl Process this file with autoconf to produce a configure script.
2
3AC_INIT(WhySynth, 20120903, musound-at-jps-dot-net)
4
5AC_CONFIG_SRCDIR(src/whysynth.h)
6AM_INIT_AUTOMAKE
7AM_CONFIG_HEADER(config.h)
8
9AC_PROG_CC
10
11AC_ENABLE_STATIC(no)
12AC_ENABLE_SHARED(yes)
13AC_LIBTOOL_DLOPEN
14AC_PROG_LIBTOOL
15
16AC_C_BIGENDIAN
17
18dnl Require DSSI, liblo, and FFTW3
19AC_CHECK_HEADERS(ladspa.h)
20PKG_CHECK_MODULES(COMMON, dssi >= 0.9)
21PKG_CHECK_MODULES(PLUGIN, fftw3f >= 3.0.1)
22PKG_CHECK_MODULES(GUI, liblo >= 0.12)
23
24dnl Check for GTK+
25with_gtk=no
26AM_PATH_GTK_2_0(2.4.0, with_gtk='yes', AC_MSG_WARN([GUI will not be built; GTK+ 2.4 or later needed]))
27AM_CONDITIONAL(BUILD_GUI, test "x${with_gtk}" != 'xno')
28
29dnl developer functions
30AC_ARG_ENABLE(developer, AC_HELP_STRING([--enable-developer], [enable developer functions, default=no]),
31              [ if test $enableval = "yes"; then
32                AC_DEFINE(DEVELOPER, 1, [Define to 1 to enable developer-only functions.])
33                fi ])
34
35dnl OS specific checks
36case "${host_os}" in
37darwin*)
38  darwin=yes
39  PKG_CHECK_MODULES(ALSA, libdssialsacompat)
40  ;;
41freebsd*)
42  darwin=no
43  PKG_CHECK_MODULES(ALSA, libdssialsacompat)
44  ;;
45*)
46  darwin=no
47  PKG_CHECK_MODULES(ALSA, alsa)
48  ;;
49esac
50AM_CONDITIONAL(DARWIN, test x$darwin = xyes)
51
52dnl Check for newlocale() et al.
53AC_MSG_CHECKING(for newlocale in xlocale.h)
54AC_TRY_COMPILE([
55    #include <xlocale.h>
56  ], [newlocale(LC_ALL_MASK, "C", NULL)], use_xlocale=yes, use_xlocale=no)
57if test "$use_xlocale" = "yes"; then
58  AC_DEFINE(THREAD_LOCALE_XLOCALE_H, 1, [Define to 1 if newlocale() is defined in xlocale.h (e.g. on Mac OS X)])
59  AC_MSG_RESULT(yes)
60else
61  AC_MSG_RESULT(no)
62  AC_MSG_CHECKING(for newlocale in locale.h)
63  AC_TRY_COMPILE([
64      #define _XOPEN_SOURCE 700
65      #define _GNU_SOURCE
66      #include <locale.h>
67    ], [newlocale(LC_ALL_MASK, "C", NULL)], use_locale=yes, use_locale=no)
68  if test "$use_locale" = "yes"; then
69    AC_DEFINE(THREAD_LOCALE_LOCALE_H, 1, [Define to 1 if newlocale() is defined in locale.h (e.g. in glibc)])
70    AC_MSG_RESULT(yes)
71  else
72    AC_MSG_WARN([newlocale()/uselocale() not found, patch loading may fail in non-C locales])
73    AC_MSG_RESULT(no)
74  fi
75fi
76
77dnl Use lotsa flags if we have gcc.
78CFLAGS="$CFLAGS $ALSA_CFLAGS $COMMON_CFLAGS"
79LDFLAGS="$LDFLAGS $ALSA_LIBS $COMMON_LIBS"
80changequote(,)dnl
81if test "x$GCC" = "xyes"; then
82  case " $CFLAGS " in
83  *[\ \	]-Wall[\ \	]*) ;;
84  *) CFLAGS="$CFLAGS -Wall" ;;
85  esac
86  case " $CFLAGS " in
87  *[\ \	]-O[1-9][\ \	]*) ;;
88  *) CFLAGS="$CFLAGS -O2" ;;
89  esac
90  case " $CFLAGS " in
91  *[\ \	]-ffast-math[\ \	]*) ;;
92  *)  PLUGIN_CFLAGS="$PLUGIN_CFLAGS -fomit-frame-pointer -funroll-loops -finline-functions -ffast-math"
93      # add '-finline-limit=...' only for GCC 3.x and 4.x:
94      case `$CC -dumpversion 2>/dev/null` in
95      # these --params are also in 3.4.6, but not in 3.3.6
96      4.*) PLUGIN_CFLAGS="$PLUGIN_CFLAGS -finline-limit=5000 --param large-function-growth=4900 --param inline-unit-growth=900" ;;
97      3.*) PLUGIN_CFLAGS="$PLUGIN_CFLAGS -finline-limit=5000" ;;
98      esac
99      if test "x$enable_developer" = "xyes"; then
100        PLUGIN_CFLAGS="$PLUGIN_CFLAGS -Winline"
101      fi ;;
102  esac
103fi
104changequote([,])dnl
105AC_SUBST(PLUGIN_CFLAGS)
106AC_SUBST(PLUGIN_LIBS)
107AC_SUBST(GUI_CFLAGS)
108AC_SUBST(GUI_LIBS)
109
110AC_OUTPUT([
111Makefile
112src/Makefile
113])
114
115